Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Pro Service Oriented smart client with .NET 2.0
Nội dung xem thử
Mô tả chi tiết
Pro Service-Oriented
Smart Clients with
.NET 2.0
Sayed Y. Hashimi and
Scott J. Steffan
5513fm_final.qxd 8/1/05 1:03 PM Page i
Pro Service-Oriented Smart Clients with .NET 2.0
Copyright © 2005 by Sayed Y. Hashimi and Scott J. Steffan
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or by any information storage or retrieval
system, without the prior written permission of the copyright owner and the publisher.
ISBN (pbk): 1-59059-551-3
Printed and bound in the United States of America 987654321
Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence
of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark
owner, with no intention of infringement of the trademark.
Lead Editor: Jonathan Hassell
Technical Reviewer: Jason Mitchell
Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Tony Davis,
Jason Gilmore, Jonathan Hassell, Chris Mills, Dominic Shakeshaft, Jim Sumser
Associate Publisher and Project Manager: Grace Wong
Copy Edit Manager: Nicole LeClerc
Copy Editor: Marilyn Smith
Assistant Production Director: Kari Brooks-Copony
Production Editor: Linda Marousek
Compositor: Linda Weidemann
Proofreader: Liz Welch
Indexer: Valerie Perry
Artist: Kinetic Publishing Services, LLC
Interior Designer: Van Winkle Design Group
Cover Designer: Kurt Krames
Manufacturing Director: Tom Debolski
Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor,
New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail [email protected],
or visit http://www.springeronline.com.
For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA
94710. Phone 510-549-5930, fax 510-549-5939, e-mail [email protected], or visit http://www.apress.com.
The information in this book is distributed on an “as is” basis, without warranty. Although every precaution
has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to
any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly
by the information contained in this work.
5513fm_final.qxd 8/1/05 1:03 PM Page ii
To my parents Sayed A. and Sohayla Hashimi
—Sayed Y. Hashimi
To my wife, Trina, my children, Christin and Lane,
my parents, Herman and Lavinia, and my brother Steven Steffan
—Scott J. Steffan
5513fm_final.qxd 8/1/05 1:03 PM Page iii
5513fm_final.qxd 8/1/05 1:03 PM Page iv
Contents at a Glance
About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
■CHAPTER 1 An Introduction to Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
■CHAPTER 2 Types of Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
■CHAPTER 3 Windows Forms Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
■CHAPTER 4 Microsoft Office Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
■CHAPTER 5 Mobile Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
■CHAPTER 6 Offline Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
■CHAPTER 7 WinForms Smart Client Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
■CHAPTER 8 XML Web Services and Smart Clients. . . . . . . . . . . . . . . . . . . . . . . . . . 209
■CHAPTER 9 Service-Oriented Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
■CHAPTER 10 Service-Oriented Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
■CHAPTER 11 SOSC Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
v
5513fm_final.qxd 8/1/05 1:03 PM Page v
5513fm_final.qxd 8/1/05 1:03 PM Page vi
Contents
About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
■CHAPTER 1 An Introduction to Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Evolution of the Smart Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Stand-Alone Applications: From DOS to Windows . . . . . . . . . . . . . . . . 3
Separation of the Client: Tiered Architecture . . . . . . . . . . . . . . . . . . . . 4
Enter the Internet: Web-Based Clients . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Service-Oriented Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Thick Clients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Thick Client Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Thick Client Anatomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Thick Client User Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Thick Client Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Thick Client Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Thick Client Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Thin Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Thin Client Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Thin Client Anatomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Thin Client User Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Thin Client Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Thin Client Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Smart Client Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Smart Client Anatomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Smart Client User Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Smart Client Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Smart Client Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Smart Client Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
vii
5513fm_final.qxd 8/1/05 1:03 PM Page vii
Service-Oriented Smart Clients (SOSCs) . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
SOSC Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
SOSC Anatomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
SOSC Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
SOSC User Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
SOSC Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
SOSC Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
■CHAPTER 2 Types of Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Overview of Smart Client Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Windows Forms Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Offline Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Deployment Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Office Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
VSTO-Based Office Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IBF-Based Office Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Mobile Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
■CHAPTER 3 Windows Forms Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Getting Started with TaskVision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Installing the TaskVision Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Installing the TaskVision Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Installing the TaskVision Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
TaskVision Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Client and Server Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Server and Database Communication . . . . . . . . . . . . . . . . . . . . . . . . . 49
System Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
TaskVision Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
TaskVision Server: TaskVisionWsCsVs . . . . . . . . . . . . . . . . . . . . . . . . . 50
TaskVision Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
IssueVision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Getting Started with IssueVision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Exploring the Improvements in IssueVision . . . . . . . . . . . . . . . . . . . . 74
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
viii ■CONTENTS
5513fm_final.qxd 8/1/05 1:03 PM Page viii
■CHAPTER 4 Microsoft Office Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Visual Studio Tools for Office (VSTO) Applications . . . . . . . . . . . . . . . . . . . . 77
VSTO Facilities for Smart Client Construction . . . . . . . . . . . . . . . . . . 78
VSTO Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Data Binding and Data Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Custom Actions Panes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
VSTO Wrap-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Information Bridge Framework (IBF) Applications . . . . . . . . . . . . . . . . . . . . 87
IBF Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
IBF Solution Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
IBF Wrap-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
■CHAPTER 5 Mobile Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Windows Mobile Platform Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Mobile Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
The .NET Compact Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Visual Studio 2005 Smart Device Projects . . . . . . . . . . . . . . . . . . . . . . . . . 115
A Pocket PC Smart Client: FotoVision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
FotoVision Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Web Application Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Smart Client Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Smart Device Application Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Smart Device Application Packaging . . . . . . . . . . . . . . . . . . . . . . . . . 136
Over the Air (OTA) Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
MSI Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Sneakernet Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
What’s Coming in Visual Studio 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Smartphone and Emulator Improvements. . . . . . . . . . . . . . . . . . . . . 141
IDE, RAD Development, and Debugging Improvements . . . . . . . . . 142
Language/Runtime, Managed APIs, and
Deployment Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
■CHAPTER 6 Offline Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Designing a Client-Side Cache or Data Store . . . . . . . . . . . . . . . . . . . . . . 145
Identifying Locally Storable Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Refreshing Local Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Implementing Local Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
■CONTENTS ix
5513fm_final.qxd 8/1/05 1:03 PM Page ix
Using Smart Client Tools: Application Blocks . . . . . . . . . . . . . . . . . . . . . . . 152
Adding Offline Capabilities with the Offline Application Block . . . . 152
Caching Data with the Caching Application Block . . . . . . . . . . . . . 159
Maintaining Data Consistency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Choosing a Data Concurrency Approach . . . . . . . . . . . . . . . . . . . . . . 164
Implementing Optimistic Concurrency . . . . . . . . . . . . . . . . . . . . . . . . 166
Synchronizing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Handling Sensitive Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Securing Data Transportation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Applying Authentication and Authorization . . . . . . . . . . . . . . . . . . . . 167
Protecting Client-Side Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
■CHAPTER 7 WinForms Smart Client Deployment . . . . . . . . . . . . . . . . . . . . . 173
No-Touch Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
NTD Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
NTD Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
NTD Advantages and Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . 175
One-Touch Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
OTD Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
OTD Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
OTD Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
OTD Advantages and Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . 182
Microsoft Installer (MSI) Deployment . . . . . . . . . . . . . . . . . . . . . . . . 182
ClickOnce Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
The ClickOnce Deployment Manifest . . . . . . . . . . . . . . . . . . . . . . . . . 183
ClickOnce Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Automatic ClickOnce Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Application Security with ClickOnce . . . . . . . . . . . . . . . . . . . . . . . . . 193
The ClickOnce APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
The Bootstrapper and Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Smart Client Tools: The Application Updater Component and
Updater Application Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
The Application Updater Component . . . . . . . . . . . . . . . . . . . . . . . . . 199
The Updater Application Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
x ■CONTENTS
5513fm_final.qxd 8/1/05 1:03 PM Page x
■CHAPTER 8 XML Web Services and Smart Clients . . . . . . . . . . . . . . . . . . . . 209
Business Case for XML Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Opening Up the Back Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Opening Up the Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
XML Web Services Benefits and Drawbacks . . . . . . . . . . . . . . . . . . . . . . . 214
Benefits of XML Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Drawbacks of XML Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Architecture of XML Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Web Services Definition Language (WSDL) . . . . . . . . . . . . . . . . . . . 232
Universal Discovery, Description and Integration (UDDI). . . . . . . . . 234
DISCO Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
XML Web Service Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
■CHAPTER 9 Service-Oriented Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Service Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Business Modeling and Requirements Analysis . . . . . . . . . . . . . . . . 247
Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
SOA Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
The Problem with Point-to-Point Interoperability . . . . . . . . . . . . . . . 252
The MOM Interoperability Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Service-Oriented Architecture Development . . . . . . . . . . . . . . . . . . . . . . . 258
Creating Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Building a Message-Oriented Architecture . . . . . . . . . . . . . . . . . . . . 260
Discovering and Publishing XML Web Services . . . . . . . . . . . . . . . . 263
Exploiting the SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
■CHAPTER 10 Service-Oriented Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Service-Oriented Smart Client Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
SOSC Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Gaming SOSC Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Logistics SOSC Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Pervasive and Ubiquitous Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Media Agility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Communication Agility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
■CONTENTS xi
5513fm_final.qxd 8/1/05 1:03 PM Page xi
xii ■CONTENTS
Smart Client State and Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
State Maintenance with a Wired Connection . . . . . . . . . . . . . . . . . . 285
State Maintenance with a Wireless Connection . . . . . . . . . . . . . . . . 286
State Maintenance Without a Connection . . . . . . . . . . . . . . . . . . . . . 287
Concurrency with Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Multitasking and Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Background and Foreground Execution . . . . . . . . . . . . . . . . . . . . . . . 292
Thread Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
A Review of Smart Client Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Single-Application Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Multiple-Application Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
SOSCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
■CHAPTER 11 SOSC Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Software Testing Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Integration Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
System Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Test Data Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
SOSC Testing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Communication Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
State Maintenance Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Concurrency Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Smart Agent Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Smart Test Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
5513fm_final.qxd 8/1/05 1:03 PM Page xii
About the Authors
■SAYED Y. HASHIMI was born in Afghanistan and now resides in Jacksonville,
Florida. His has expertise in the areas of health care, logistics, scientific computing, and civil/structural engineering. In his professional career, Sayed has
developed large-scale distributed applications with a variety of programming
languages and platforms, including Fortran, C++, J2EE, and .NET. He has
published articles in major software journals on topics that range from lowlevel programming techniques to high-level architecture concepts. Sayed
holds a Master of Engineering degree from the University of Florida. You can reach Sayed by
visiting http://www.sayedhashimi.com.
■SCOTT J. STEFFAN has worked in IT for more than 20 years. He has been
employed by multiple Fortune 100 companies as an enterprise IT architect
and member of senior technical management. Scott earned his Bachelor
of Science in Engineering and has a Master of Business Administration
degree. He has worked on state-of-the-art computer systems and process
improvements in a variety of industries. He is currently pursuing a postgraduate degree in the fields of control theory and machine intelligence.
Scott is a member of the North Florida Rational User Group and the Central Florida Architecture Council.
xiii
5513fm_final.qxd 8/1/05 1:03 PM Page xiii
5513fm_final.qxd 8/1/05 1:03 PM Page xiv