ebook img

Visual Basic and COM+ by example PDF

486 Pages·7.094 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Visual Basic and COM+ by example

00 0789724588 fm 10/25/00 5:03 PM Page i VViissuuaall BBaassiicc aanndd CCOOMM++ PPrrooggrraammmmiinngg B Y E X A M P L E 201 West 103rd Street Peishu Li Indianapolis, Indiana 46290 00 0789724588 fm 10/25/00 5:03 PM Page ii Visual Basic and COM+ Programming Acquisitions Editor Gretchen Ganser by Example Development Editor Copyright 2001 by Que Sean Dixon Managing Editor All rights reserved. No part of this book shall be reproduced, Tom Hayes stored in a retrieval system, or transmitted by any means, elec- tronic, mechanical, photocopying, recording, or otherwise, with- Project Editor out written permission from the publisher. No patent liability is Heather McNeill assumed with respect to the use of the information contained Copy Editor herein. Although every precaution has been taken in the prepa- Chuck Hutchinson ration of this book, the publisher and author assume no respon- Indexer sibility for errors or omissions. Nor is any liability assumed for damages resulting from the use of the information contained Chris Barrick herein. Proofreader Harvey Stanbrough International Standard Book Number: 0-7897-2458-8 Technical Editors Library of Congress Catalog Card Number: 00-107936 Vince Mayfield Printed in the United States of America Steve White Team Coordinator First Printing: November, 2000 Cindy Teeters 01 00 99 4 3 2 1 Interior Designer Karen Ruggles Trademarks Cover Designer All terms mentioned in this book that are known to be trade- Rader Design marks or service marks have been appropriately capitalized. Que cannot attest to the accuracy of this information. Use of a term Copywriter in this book should not be regarded as affecting the validity of Eric Borgert any trademark or service mark. Editorial Assistant Angela Boley Warning and Disclaimer Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied. The information provided is on an “as is” basis. The author and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book. 00 0789724588 fm 10/25/00 5:03 PM Page iii iii Contents at a Glance Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Part I Welcome to COM+ 5 1 What COM+ Is All About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 2 Windows DNA2000 and COM+ . . . . . . . . . . . . . . . . . . . . . . . . . . .31 3 Introduction to Microsoft Message Queuing Services (MSMQ) . . .71 4 Introduction to Visual Basic COM Programming . . . . . . . . . . . . .111 5 Using the Component Services MMC Snap-In . . . . . . . . . . . . . . .147 Part II Developing COM+ Application Components 171 6 Writing Transactional Components . . . . . . . . . . . . . . . . . . . . . . .173 7 Compensating Resource Manager (CRM) . . . . . . . . . . . . . . . . . . .215 8 COM+ Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 9 Queued Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 10 COM+ Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 11 Administering COM+ Applications Programmatically . . . . . . . . .349 12 More on COM+ Programming . . . . . . . . . . . . . . . . . . . . . . . . . . .387 Part III Building Real-World COM+ Services Applications 409 13 Northwind Traders Online: ACOM+ Enabled Windows DNA2000 Application . . . . . . . . . . . . . . . . . . . . . . . . . .411 14 ACase Study: COM+ and Enterprise Application Integration (EAI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .443 Appendix A: COM+ and Related Web Resources . . . . . . . . . . . . . . . .467 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .470 00 0789724588 fm 10/25/00 5:03 PM Page iv Table of Contents Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Who Should Use This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 This Book’s Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Part I Welcome to COM+ 5 1 What COM+ Is All About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 COM: The Component Object Model . . . . . . . . . . . . . . . . . . . . . . . .8 What Is COM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 COM Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 The Virtual Function Table (vtable) . . . . . . . . . . . . . . . . . . . .13 COM Threading Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Distributed COM (DCOM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 In-Process Servers Versus Out-of-Process Servers . . . . . . . . .18 DCOM Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Microsoft Transaction Server (MTS) . . . . . . . . . . . . . . . . . . . . . . .20 MTS Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 MTS Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . .21 MTS Security Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 MTS Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 What Is COM+? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 Core COM+ Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 New COM+ Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 COM+ Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . .27 2 Windows DNA2000 and COM+ . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Windows DNA2000 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . .32 Internet Applications and Their Challenges . . . . . . . . . . . . .32 Three-Tiered Application Architecture . . . . . . . . . . . . . . . . . .33 Infrastructure Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 Where COM+ Fits In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 Microsoft Data Access Components (MDAC) . . . . . . . . . . . . . . . . .44 MDAC and Universal Data Access (UDA) . . . . . . . . . . . . . . .44 Internet Information Services (IIS) and Active Server Pages (ASP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64 00 0789724588 fm 10/25/00 5:03 PM Page v v 3 Introduction to Microsoft Message Queuing Services (MSMQ) . . .71 Limitations of the Synchronous Processing Model . . . . . . . . . . . . .72 Message Queuing and MSMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 Asynchronous Processing and Message Queuing . . . . . . . . . .73 MSMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 MSMQ Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 Domain Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 Workgroup Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Journaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 Programming MSMQ in Visual Basic . . . . . . . . . . . . . . . . . . . . . . .81 MSMQ COM Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . .81 Basic MSMQ Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 Advanced MSMQ Techniques . . . . . . . . . . . . . . . . . . . . . . . . .90 An Asynchronous Ordering Application . . . . . . . . . . . . . . . . .99 4 Introduction to Visual Basic COM Programming . . . . . . . . . . . . .111 Visual Basic COM Programming Primer . . . . . . . . . . . . . . . . . . .112 Types of COM Components . . . . . . . . . . . . . . . . . . . . . . . . .112 AVisual Basic COM DLLProject . . . . . . . . . . . . . . . . . . . . .113 Writing a Simple COM Component . . . . . . . . . . . . . . . . . . .118 Building Visual Basic ActiveX DLLs . . . . . . . . . . . . . . . . . . . . . .120 Interfaces Revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 Properties, Methods, and Events . . . . . . . . . . . . . . . . . . . . .127 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 Debugging and Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134 Designing COM Components . . . . . . . . . . . . . . . . . . . . . . . . . . . .136 Special Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . .142 Granularity of Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . .142 Stateful Versus Stateless . . . . . . . . . . . . . . . . . . . . . . . . . . .142 Passing Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143 Scripting Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143 Designing Windows DNAComponents . . . . . . . . . . . . . . . . .143 COM+ Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144 00 0789724588 fm 10/25/00 5:03 PM Page vi vi 5 Using the Component Services MMC Snap-In . . . . . . . . . . . . . . .147 Introduction to COM+ Applications . . . . . . . . . . . . . . . . . . . . . . .148 Types of COM+ Applications . . . . . . . . . . . . . . . . . . . . . . . .148 ACloser Look at a COM+ Application . . . . . . . . . . . . . . . . .149 Developing a COM+ Application . . . . . . . . . . . . . . . . . . . . .150 Creating a COM+ Application . . . . . . . . . . . . . . . . . . . . . . . . . . .151 Creating a New COM+ Application . . . . . . . . . . . . . . . . . . .151 Installing New Components . . . . . . . . . . . . . . . . . . . . . . . . .154 Deleting Components from a COM+ Application . . . . . . . . .156 Importing Existing Components . . . . . . . . . . . . . . . . . . . . .157 Removing COM+ Applications . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Configuring COM+ Applications . . . . . . . . . . . . . . . . . . . . . . . . . .158 Configuring Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . .159 Configuring Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161 Configuring JIT Activation . . . . . . . . . . . . . . . . . . . . . . . . . .164 Configuring Queuing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 Configuring Other COM+ Attributes . . . . . . . . . . . . . . . . . .168 Deploying COM+ Applications . . . . . . . . . . . . . . . . . . . . . . . . . . .168 Converting MTS Packages into COM+ Applications . . . . . . . . . .169 Part II Developing COM+ Application Components 171 6 Writing Transactional Components . . . . . . . . . . . . . . . . . . . . . . .173 Introduction to Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . .174 Transaction Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174 ACID Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174 Transaction Managers (TMs) . . . . . . . . . . . . . . . . . . . . . . . .175 Distributed Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 Two-Phase Commit Protocol . . . . . . . . . . . . . . . . . . . . . . . . .177 Microsoft Distributed Transaction Coordinator (MS DTC) .177 COM+ Automatic Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . .177 Transactional Components . . . . . . . . . . . . . . . . . . . . . . . . . .178 Determining the Transaction Output . . . . . . . . . . . . . . . . . .178 ASample Transaction Application . . . . . . . . . . . . . . . . . . . . . . . .179 Application Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 The Workflow of Placing an Order . . . . . . . . . . . . . . . . . . . .181 Application Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185 00 0789724588 fm 10/25/00 5:03 PM Page vii vii Taking the Application for a Test Drive . . . . . . . . . . . . . . . .210 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 7 Compensating Resource Manager (CRM) . . . . . . . . . . . . . . . . . . .215 Resource Dispensers Versus Resource Managers . . . . . . . . . . . . .216 The Compensating Resource Manager (CRM) . . . . . . . . . . . . . . .216 Limitation of the MTS SDK . . . . . . . . . . . . . . . . . . . . . . . . .216 What Is the CRM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 The CRM Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 Developing a CRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 ASample CRM Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222 Using Microsoft Access Resources . . . . . . . . . . . . . . . . . . . .223 The Northwind CRM Sample Application . . . . . . . . . . . . . .227 CRM Development Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 Idempotence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 Other Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 8 COM+ Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 COM+ Security Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . .258 Role-Based Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 Designing Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 Using Roles to Authorize Clients . . . . . . . . . . . . . . . . . . . . .260 Authorization Versus Authentication . . . . . . . . . . . . . . . . . . . . . .273 Impersonation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274 Impersonating Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275 Cloaking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275 Security in Three-Tiered Applications . . . . . . . . . . . . . . . . . . . . .276 Security at the Middle Tier . . . . . . . . . . . . . . . . . . . . . . . . .276 Security at the Database . . . . . . . . . . . . . . . . . . . . . . . . . . .276 Mixed Security Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . .277 Other Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . .277 Audit Trails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277 Security for Library Applications . . . . . . . . . . . . . . . . . . . . .278 Security for Queued Components (QC) . . . . . . . . . . . . . . . .278 00 0789724588 fm 10/25/00 5:03 PM Page viii viii 9 Queued Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 Introduction to Queued Components . . . . . . . . . . . . . . . . . . . . . .282 DCOM Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282 What About MSMQ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282 Queued Components Architecture . . . . . . . . . . . . . . . . . . . .283 The Benefits of Queued Components . . . . . . . . . . . . . . . . . .284 Queued Components and Transactions . . . . . . . . . . . . . . . .285 Poison Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287 Developing Queued Components . . . . . . . . . . . . . . . . . . . . . . . . .288 Queued Components Development Constraints . . . . . . . . . .288 Building a Simple Queued Component . . . . . . . . . . . . . . . .289 Configuring a Queued Component . . . . . . . . . . . . . . . . . . . .290 Activating a Queued Component . . . . . . . . . . . . . . . . . . . . .293 Building a Client to Test the Queued Component . . . . . . . .295 Other Considerations About Queued Components . . . . . . . .299 Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 Server-Side Error Handling . . . . . . . . . . . . . . . . . . . . . . . . .301 Client-Side Error Handling . . . . . . . . . . . . . . . . . . . . . . . . .302 The Exception Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302 Queued Components Security . . . . . . . . . . . . . . . . . . . . . . . . . . .304 Making the Northwind Ordering Application Queueable . . . . . . .304 The System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . .305 The Shipping Database . . . . . . . . . . . . . . . . . . . . . . . . . . . .306 The Queued Components . . . . . . . . . . . . . . . . . . . . . . . . . . .308 Creating and Configuring the Queueable COM+ Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309 Modifying Order2 Components . . . . . . . . . . . . . . . . . . . . . .310 Taking the Application for a Test Drive . . . . . . . . . . . . . . . .314 10 COM+ Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 Introduction to COM+ Events . . . . . . . . . . . . . . . . . . . . . . . . . . .318 Event Notification Models . . . . . . . . . . . . . . . . . . . . . . . . . .318 The COM+ Event Architecture . . . . . . . . . . . . . . . . . . . . . . .320 ASample LCE Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323 The EventClass Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323 The Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325 The Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329 Running the Sample Application . . . . . . . . . . . . . . . . . . . . .331 00 0789724588 fm 10/25/00 5:03 PM Page ix ix Adding LCE to the Northwind Application . . . . . . . . . . . . . . . . .332 The Northwind Inventory EventClass . . . . . . . . . . . . . . . . .332 The Northwind Inventory Event Subscriber . . . . . . . . . . . .334 The Event Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335 ATest Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340 Advanced COM+ Events Topics . . . . . . . . . . . . . . . . . . . . . . . . . .341 Event Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341 Parallel Event Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . .345 LCE and Queued Components (QC) . . . . . . . . . . . . . . . . . . .345 Other Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346 11 Administering COM+ Applications Programmatically . . . . . . . . .349 The COM+ Catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350 The Registration Database and the COM+ Catalog . . . . . . .350 The Catalog Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350 Authority Concerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350 The COM+ Admin Objects Model . . . . . . . . . . . . . . . . . . . . . . . . .350 The COMAdmin Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 COM+ Administration Collections . . . . . . . . . . . . . . . . . . . .352 Important Methods and Properties . . . . . . . . . . . . . . . . . . .352 Basic COM+ Administration with the COMAdmin Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355 Retrieving Information from COM+ Applications . . . . . . . .355 Retrieving Subscription Information . . . . . . . . . . . . . . . . . .361 Registering a Subscription . . . . . . . . . . . . . . . . . . . . . . . . . .363 Using the RelatedCollectionInfo Collection . . . . . . . . . . . . .365 Creating and Configuring COM+ Applications for Northwind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366 Configuring Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . .367 Configuring Compensating Resource Manger . . . . . . . . . . .371 Installing an EventClass . . . . . . . . . . . . . . . . . . . . . . . . . . .373 Subscribe to the Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . .375 Configuring Queued Components . . . . . . . . . . . . . . . . . . . . .378 Using the Windows Scripting Host to Automate COM+ Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .382 What Is the Windows Scripting Host? . . . . . . . . . . . . . . . . .382 Using the WSH to Configure Northwind Event Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .382 00 0789724588 fm 10/25/00 5:03 PM Page x x 12 More on COM+ Programming . . . . . . . . . . . . . . . . . . . . . . . . . . .387 Object Constructor Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .388 Shared Property Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396 Debugging COM+ Components . . . . . . . . . . . . . . . . . . . . . . . . . .401 Object Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .406 Missing Pieces of COM+ 1.0 Beta Release . . . . . . . . . . . . . . . . . .407 Part III Building Real World COM+ Services Applications 409 13 Northwind Traders Online: ACOM+ Enabled Windows DNA2000 Application . . . . . . . . . . . . . . . . . . . . . . . . . .411 Northwind Traders Online: Welcome to the Web . . . . . . . . . . . . .412 The Purpose of the Web Application . . . . . . . . . . . . . . . . . . .412 ABrief Tour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .412 Putting It All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .414 The N-Tiered Application Architecture . . . . . . . . . . . . . . . .414 The Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .415 The Presentation Tier: User Services . . . . . . . . . . . . . . . . . .418 The Middle Tier: Business Services . . . . . . . . . . . . . . . . . . .419 The Data Tier: Data Services . . . . . . . . . . . . . . . . . . . . . . . .423 Building the Northwind Traders Online Web Site . . . . . . . . . . . .423 The Login Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .423 The Product Selection Page . . . . . . . . . . . . . . . . . . . . . . . . .430 The Ordering Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431 The Confirmation Page . . . . . . . . . . . . . . . . . . . . . . . . . . . .434 Testing the COM+ Enabled Web Application . . . . . . . . . . . .437 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .440 14 ACase Study: COM+ and Enterprise Application Integration (EAI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .443 Introduction to Enterprise Application Integration . . . . . . . . . . .444 The Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444 The Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444 Original Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .445 The Solution: COM+ and XML . . . . . . . . . . . . . . . . . . . . . . . . . . .447 An XMLPrimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .449 What Is XML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .449 Dealing with XMLDocuments . . . . . . . . . . . . . . . . . . . . . . .450

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.