Siêu thị PDFTải ngay đi em, trời tối mất

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
PREMIUM
Số trang
345
Kích thước
12.5 MB
Định dạng
PDF
Lượt xem
1586

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 com￾puting, 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 low￾level 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 post￾graduate 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 Archi￾tecture Council.

xiii

5513fm_final.qxd 8/1/05 1:03 PM Page xiii

5513fm_final.qxd 8/1/05 1:03 PM Page xiv

Tải ngay đi em, còn do dự, trời tối mất!