search for books and compare prices
Tables of Contents for Professional Biztalk
Chapter/Section Title
Page #
Page Count
Introduction
1
3
What This Book is About
4
1
Who Should Use This Book?
4
1
Technologies Used in the Book
4
1
Conventions
5
1
Customer Support
5
4
Source Code and Updates
6
1
Errata
6
3
BizTalk and Application Integration
9
40
Benefits of Enterprise Application Integration
10
1
Challenges of Enterprise Application Integration
11
3
Simple Client-Server Model
11
1
Distributed Business Systems
11
2
Summarizing the Challenges of Enterprise Application Integration
13
1
EAI and B2B Scenarios and Architectures
14
5
Business Process Integration
14
2
Trading Partner Integration
16
1
Electronic Data Interchange (EDI)
16
1
Automated Procurement
17
1
Business to Business Aggregation
18
1
The BizTalk Framework Initiative
19
5
BizTalk Framework
20
1
XML
20
1
SOAP
21
1
BizTalk Messages
21
1
BizTalk.org
22
1
BizTalk Schema Repository
22
1
Other Message Schema Repositories
23
1
BizTalk Servers
24
1
Introducing Microsoft BizTalk Server 2000
24
2
BizTalk Server Features
25
1
BizTalk Server Tools: An Overview
25
1
BizTalk Messaging Services
26
6
Organizations
26
1
Document Definitions
26
1
Envelopes
27
1
Ports and Distribution Lists
27
1
Channels
28
1
Transactions
28
1
Message Transfer
28
1
Open Protocols
29
1
Windows-Specific Communications
29
3
Message Queueing
32
1
BizTalk Server Tools: Introductory Tour
32
13
Defining the Business Workflow: Orchestration Designer
33
1
XLANG Scheduler
34
1
Defining Message Specifications: BizTalk Editor
35
2
WebDAV
37
1
Translating Between Message Specifications: BizTalk Mapper
38
2
Configuring Messaging Services: BizTalk Messaging Manager
40
1
Viewing Run-time Messages: Document Tracking
41
3
Managing BizTalk Server: Server Administration
44
1
Summary
45
4
Applications and Schedules
49
56
The Need for Orchestration
50
2
Orchestration: The Solution
51
1
Implementing Orchestration
52
2
Business Process Diagrams
52
1
Defining the Data Flow Between Messages
53
1
XLANG Schedules
54
1
BizTalk Orchestration Designer
54
37
Orchestration Designer User Interface
55
1
Business Process View
56
1
Data View
57
1
Designing Schedules
58
1
Flowchart Shapes
58
9
Messaging Implementation Shapes
67
1
Transactions
68
5
Binding Message Implementations
73
1
MSMQ Messaging
73
3
COM Components
76
3
Script Components
79
3
BizTalk Messaging
82
3
Connecting Actions to BizTalk or MSMQ Implementations
85
4
Connecting Actions to COM and Script Implementations
89
2
The Wrox Site Managers Application
91
12
The Workflow
92
1
Waiting for Message Arrival
93
1
Binding to MSMQ
94
2
Delivery Decisions
96
2
Binding to BizTalk Messaging
98
2
Configuring the Data Flow through the Schedule
100
1
Loading a Schedule
100
2
Exporting the Schedule for Production Use
102
1
Summary
103
2
Specifications
105
48
What Is a Specification?
106
1
The Role of XDR Schemas in BizTalk Server
107
1
Message Formats
107
4
XML Files
108
1
Elements and Attributes
108
1
Namespaces
109
1
Delimited Flatfiles
109
1
Positional Flatfiles
110
1
Extending Schemas into Specifications
111
3
Message Specifications for XML-Based Messages
112
1
Message Specifications for Flatfile Formats
113
1
Designing Specifications
114
7
Adapting Legacy Formats
115
1
Building a Hierarchical Form
115
2
BizTalk Framework Canonical Form
117
1
Objects and Properties
118
1
Expressing Relationships Between Objects
119
2
An Assessment of the Canonical Form
121
1
BizTalk Editor
121
30
User Interface
122
1
A Quick Recap...
123
1
Specifications
123
1
Schemas
123
1
Records and Fields
123
1
Working with Specifications
124
1
Saving and Retrieving Specifications
124
1
Creating New Specifications
125
1
Adding Records and Fields to a Specification
126
1
Using Tabs to Configure Records and Fields
127
6
Validating and Exporting Specifications
133
1
Specification for the Wrox Site Managers Sample
134
1
Site Service Description: A Sample Specification
135
4
Positional and Delimited Specifications
139
1
The Parse Tab
139
4
Advanced Properties
143
1
The Dictionary Tab
143
2
The Code List Tab
145
1
Cable Installation: A Delimited File Specification
146
2
Yard Work: A Positional File Specification
148
2
EDI Specifications
150
1
Templates Provided with the Editor
150
1
Summary
151
2
Mapping BizTalk Messages
153
54
Why Does BizTalk Need Mapping?
154
2
Run-time Message Translation
156
10
The Mapping Process
156
1
XML to XML
156
1
Flatfiles
157
1
XSLT
158
4
The Intermediate XML Form
162
2
Parsers and Serializers
164
1
Supplied Parsers and Serializers
165
1
BizTalk Mapper
166
18
The User Interface
166
1
Source and Destination Panes
167
1
Source and Destination Attributes
167
1
Functoid Grid
167
1
Results Pane
167
1
Constructing Maps
168
1
Creating Maps
168
1
Mapping Records and Fields
169
2
Functoids
171
1
Cascading Functoids
171
1
Functoids Provided by BizTalk
171
9
Configuring Functoids
180
2
Compiling and Testing Maps
182
1
Compiling Maps
182
1
Testing Maps
183
1
Mapping for Wrox Site Managers
184
4
Site Service Description to Cable Installation
184
3
Site Description to Yard Care
187
1
Developing Your Own Functoid
188
16
How Functoids Work
189
1
Locating Functoid Components
189
1
Querying Functoid Properties
190
1
Serializing Functoid Behavior
190
1
IFunctoid Interface
191
1
IFunctoid Properties
191
1
GetFunctionPararneter Method
191
1
GetScriptBuffer Method
191
1
GetFunctionDescripter Method
192
1
The Enurnerations
192
3
Implementing Cable Business Rule as a Functoid
195
1
Globals
196
1
The FUNCTOIDINFO Structure
197
1
Initializing the Component
197
2
Implementing the Interface
199
3
Registering the Component
202
1
Testing and Using the Component
203
1
Summary
204
3
Managing BizTalk Messaging
207
60
Configuration, Not Programming
208
1
BizTalk Messaging and Transmission Protocols
208
3
Direct Communication with BizTalk
209
1
Generic Protocol Communcations
209
1
Receive Functions
209
1
Transport Services
210
1
What About HTTP, SMTP, and FTP Reception?
210
1
BizTalk Management Concepts
211
5
Organizations
212
1
Document Definitions
212
1
Envelopes
213
1
Messaging Ports
214
1
Distribution Lists
214
1
Channels
215
1
BizTalk Messaging Manager
216
26
User Interface
216
1
Configuring Server Options
217
1
Conducting Searches
217
1
Configuring Organizations
218
1
General
219
1
Identifiers
219
2
Applications (Home Organization)
221
1
Configuring Document Definitions
221
1
General
222
1
Global Tracking
222
2
Selection Criteria
224
1
Envelope Configuration
225
1
Messaging Port Wizard
226
1
Application Messaging Ports
227
4
Organization Messaging Ports
231
1
Distribution Lists
232
1
Channel Wizard
233
1
Channels from an Application
234
6
Channels from an Organization
240
2
Simple BizTalk Programming
242
11
Ilnterchange Interface
242
5
Channel Tester Utility
247
1
The Interface
247
1
Setting Up the Project
248
1
Loading the Document
248
1
Submitting the Document
249
1
Checking for Errors
250
3
Configuring the Wrox Site Management Application
253
5
Organizations
253
1
Documents and Envelopes
253
1
Messaging Ports
254
2
Channels
256
1
Testing the Channels
257
1
Wrox Site Management Client
258
7
User Interface
258
1
Generating XML
259
1
Project Dependencies
260
1
Form Processing
260
2
Submitting Messages
262
1
Watching the Schedule Execute
263
2
Summary
265
2
Advanced Orchestration
267
44
Architecture: Schedules vs. Applications
268
1
Loading Schedules
268
14
Loading Schedule on Message Arrival
269
1
Moniker Syntax
269
2
Programmatic Loading
271
1
Schedules: IWFWorkflowInstance
271
2
Ports: IWFProxy
273
1
Instance Dispatching Example
273
9
Hydration of Schedules
282
5
How It Works
283
1
Persisting Schedule State
283
1
Persistence and COM Components
284
1
Message Latency and Hydration
285
1
Configuring the Database for Long Transactions
286
1
Transactions and Error Recovery
287
14
Enlisting in COM+ Transactions
288
1
Short-Lived Transactions
289
1
Failure of Short-Lived Transactions
289
1
Transaction Failure Recovery
290
1
Short Transaction Example
290
4
Long-Running Transactions
294
1
Why Long-Running Transactions Fail
295
1
Recovery from Long-Running Transactions
295
1
A Test of Long-Running Transactions
295
1
Nested Transactions
296
1
The Dilemma of a Failure in Nested Transactions
296
1
Recovery Revisited: Compensating Nested Transactions
296
1
Compensation Example
297
3
Timed Transactions
300
1
Concurrency
301
2
Concurrency and Transaction Boundaries
301
1
Scalability Issues
302
1
Dynamic Port Binding
303
5
Why Dynamic Binding?
303
1
MSMQ and BizTalk Messaging: A Dynamic Binding Example
303
5
Summary
308
3
Interfacing Messaging with Applications
311
42
Application Integration with BizTalk Server
312
6
Message to Application Integration
312
1
Business Process to Application Integration
313
1
Scenario: Bob's Bolts - Delivering Messages Directly into Microsoft Access.
314
2
Choosing Schemas
316
1
Selecting Transport Protocol
317
1
Bob's Bolts e-Commerce System
317
1
Using IBTSAppIntegration AICs
318
13
Building the IBTSAppIntegration AIC
318
1
Reading XML Data
319
1
Developing Bob's Bolts IBTSAppIntegration AIC
320
5
Deploying the IBTSAppIntegration AIC
325
1
Registering the IBTSAppIntegration AIC
325
2
Adding the IBTSAppIntegration AIC to BizTalk Messaging
327
4
Using IPipelineComponent AICs
331
13
Building the IPipelineComponent AIC
334
1
Developing the Bob's Bolts IPipeline0omponent AIC
334
7
Deploying the IPipelineComponent AIC
341
1
Registering the IPipelineComponent AIC
341
1
Adding the IPipelineComponentAIC to BizTalk Messaging
341
1
Configuring the IPipelineComponent AIC
341
3
Using BizTalk Scriptor AICs
344
5
Disadvantages of Scriptor Components
349
1
Caveats Using AICs
349
1
Summary
350
3
Interfacing Messaging with Schedules
353
54
Activating a New Orchestration from Messaging
355
10
Creating an Orchestration Schedule for the Example
356
4
Configuring BizTalk Messaging for the Example
360
3
Running the Example
363
1
Underneath the covers
363
2
Correlating to an Existing Orchestration
365
40
HTTP-Based Correlation Between Two BizTalk Servers
368
2
Pick-up Internal Instruction and deliver to new Instruction Business Process
370
1
Receiving Internal Instructions into BizTalk Orchestration. Sending Instructions and Receiving Acknowledgements
371
4
Sending Instructions through BizTalk Messaging to a New BizTalk Orchestration via HTTP
375
2
Receiving Instructions and Sending Acknowledgments in BizTalk Orchestration
377
2
Returning the Acknowledgement message to the original instance of the Instruction schedule (Acknowledgement Side)
379
2
Returning the Acknowledgement message to the original instance of the Instruction schedule (Instruction side)
381
2
Running the example
383
1
Non HTTP-based Correlation Between Two BizTalk Servers
384
3
Pick-up Internal Instruction with BizTalk Messaging and deliver to the Instruction Business Process
387
1
Receiving Internal Instructions into BizTalk Orchestration, Sending Internal Instructions and Receiving Acknowledgements
388
3
Sending Instructions through, BizTalk Messaging to a New BizTalk Orchestration via non-HTTP
391
3
Receiving Instructions and Sending Acknowledgments in BizTalk Orchestration
394
1
Returning the Acknowledgement message to the original instance of the Instruction schedule (Acknowledgment side)
395
2
Returning the Acknowledgement message to the original instance of the Instruction schedule (Instruction side)
397
2
Running the example
399
1
HTTP-based XLANG correlation between a BizTalk Server and an external process
400
4
Other Approaches to Correlation
404
1
Summary
405
2
Administration
407
46
Administration versus Management
408
1
BizTalk Groups, Servers, and Shared Data
409
6
BizTalk Servers
410
1
BizTalk Server Groups
411
1
BizTalk Databases
412
1
Queues
413
1
Work Queue
413
1
Scheduled Queue
414
1
Retry Queue
414
1
Suspended Queue
414
1
BizTalk Server Administration User Interface
415
3
Displaying Shared Queue Properties
416
1
Displaying Receive Function Properties
417
1
Displaying Server Properties
417
1
Receive Functions
418
12
Configuring Receive Functions
419
1
Adding a Receive Function
419
2
Advanced Configuration of Receive Functions
421
2
Editing or Disabling Receive Functions
423
1
Using Receive Functions
424
1
File Conversion Processing
424
1
Wrox Site Managers: An Alternative Path for Site Service Description
425
5
Common Administrative Tasks
430
9
Rights and Remote Administration
431
1
Setting Enterprise Properties
431
1
Setting Group Properties
432
1
General Properties
433
1
Database Connections
433
1
Tracking
433
1
Parsers
434
1
Adding a Server Group
434
1
Adding a Server to a BizTalk Server Group
435
1
Deleting and Moving Servers
435
1
Starting and Stopping Servers
436
1
Freeing Interchanges
436
1
Setting Server Properties
437
1
Moving Documents Between Queues
438
1
Exporting Administrative Information
438
1
Tracking Errors through the Administrative Interface
439
3
Checking Group and Server Status
439
1
Viewing Error Information for Suspended Documents
440
1
Information Available in the Event Logs
441
1
Securing BizTalk
442
4
User Roles
442
1
Securing Interchange with Roles
442
3
Securing Remote Users
445
1
Securing Orchestration
445
1
Designing for Scalability
446
5
Deploying the Databases
446
2
Deploying Services and Components
448
1
Separately Deploy Send and Receive Services
448
1
Surges in Demand
449
1
Isolate ASP Applications from BizTalk Receive Functions
450
1
App Center
450
1
Summary
451
2
Routing and Acknowledging Receipts
453
66
Basic Routing Requirements
454
1
Call-based Routing
455
3
Channel Specification
458
1
Self Routing
459
5
Self-Routing Document Specifications
459
2
An Example of Self-Routing
461
1
Creating The Document
461
1
Creating Ports and Channels
462
1
Submitting Documents
463
1
Testing
463
1
Using Open Ports
463
1
Non-Self-Routing Receive Functions
464
2
Routing and the BizTalk Framework
466
11
BizTalk Framework 2.0
466
1
BizTalk Business Document Structure
466
3
Biztalk Receipt Document Structure
469
1
Routing in the Framework
470
1
Delivery
471
2
Reliable Delivery Behavior
473
2
Receipts
475
1
The endpoints Element
476
1
The properties Element
476
1
The deliveryReceipt Element
476
1
Acknowledging Receipt
477
1
Configuring BizTalk Servers to Handle Receipts
478
12
Processing Receipts Using Reliable Messaging
478
1
Configuring the Source System for Reliable Messaging Receipts
478
3
Configuring the Destination System for Reliable Messaging Receipts
481
2
Configuring Channel Properties to Process Receipts
483
1
Configuring the Source to Generate and Receive Receipts
484
1
Configuring the Destination to Generate Receipts
485
3
Working With Tracking and Receipts
488
1
Document Tracking Application Database
489
1
Custom Components
490
7
Why Build Custom Parsers and Serializers?
491
1
Custom Parsers
491
1
IBizTalkParserComponent
491
1
Custom Serializers
492
1
IBizTalkSerializerComponent Interface
493
1
Custom Correlator
493
1
IBizTalkCorrelation
493
1
IBizTalkAcknowledge
494
1
AckDocument() Method
494
1
AckGroup() Method
495
1
AckInterchange() Method
496
1
A BizTalk Framework Routing and Receipt Example
497
18
Example Scenario
498
2
Client Application User Interface: BTFClient.exe
500
1
Form Load Events
501
1
Setting the Endpoints
502
1
Setting Properties
503
1
Setting Time Elements
503
3
Setting the Unique Message Identifier
506
2
Replacing the Body of the Message
508
1
Posting the Document via HTTP
509
1
The HTTP Receive Function
509
1
ReceiveStandard.asp
509
2
Virtual Directory
511
1
When BizTalk Receives The Submission
511
1
Viewing the Receipt
512
1
BTFReceipts.asp
512
1
Testing the Sample and BizTalk Framework Routing
513
1
Preparation
513
1
Configuring the Ports
513
1
Configuring the Channel
514
1
Completing the Test
515
1
BTFReceipts.asp as Receive Function
515
1
Summary
515
4
Tracking
519
40
Capturing Tracking Information
520
12
Configuring BizTalk Messaging Tracking
520
1
Understanding How BizTalk Converts Messages
520
3
Configuring the HR to Accounting System Transfer in BizTalk Messaging
523
2
Tracking the Message Transfer
525
1
Server Group Tracking Options
526
1
Document Definition Tracking Options
527
3
Channel Tracking Options
530
2
Displaying Tracking Information
532
7
Viewing the interchange Meta-data
534
1
Viewing Document-specific Data
535
2
Inside the Tracking Interface
537
2
Programmatic Access to the Tracking Information
539
11
Building a VB Tracking User Interface
543
7
Understanding Document Tracking at the Database Level
550
4
Submission of the Incoming-Document to the Server
552
1
Decoding and Decryption
552
1
Parsing and Validation
552
1
Select Channel and Checkpoint Document
553
1
Mapping
553
1
Select Outgoing Port
553
1
Serialize Output
554
1
Envelope Addition
554
1
Transmission of the Outgoing-Document from the Server
554
1
Preprocessors and Document Tracking
554
1
Managing the Tracking Database
555
1
Configuring BizTalk Orchestration Tracking
555
1
Summary
556
3
Configuration Programming
559
40
Uses for Configuration Programming
560
2
Configuration Export
560
1
Dynamic Configuration
561
1
BizTalk Configuration Object Model
562
29
Making Sense of the Configuration Object Model
563
1
Entering the Configuration Object Model
563
1
Interfaces and Relationships with Other Objects
564
1
Implementation of the Configuration Object Model
565
1
Maintaining Referential Integrity while Working with Configuration Objects
566
1
IBizTalkBase
567
2
IBizTalkConfig Interface
569
3
IBizTalkOrganization Interface
572
3
IBizTalkDocument Interface
575
1
IBizTalkPort Interface
576
2
IBizTalkChannel Interface
578
4
IBizTalkEndPoint Interface
582
1
IBizTalkEnvelope Interface
583
1
IBizTalkPortGroup Interface
584
1
IBizTalkServiceWindowInfo Interface
585
1
IBizTalkTransportInfo Interface
585
2
IBizTalkCertificateInfo Interface
587
1
IbizTalkLoggingInfo Interface
588
1
IDictionary Interface
589
1
ISimpleList Interface
590
1
URL Concordance Example
591
5
User Interface
591
1
Setting Up the Project
592
1
Enumerating Channels
593
1
Accessing Port Information
594
1
Transport Information
594
2
Summary
596
3
Appendix A: Setup and Installation
599
10
System Requirements
599
2
Minimum Recommended Hardware Configuration
599
1
Hardware Recommendations for Performance
600
1
Software Dependencies
600
1
Manual Installation and Setup
601
3
Installation Types
601
3
Installing to a Server Group: Silent Installation
604
5
Security Settings for Document Tracking
606
3
Appendix B: XSLT and XPath
609
60
What is XSLT?
610
1
The Transformation Process
611
2
XSLT as a Programming Language
613
4
XML Syntax
613
1
Rule-based
613
1
XPath Queries
614
1
Functional Programming
615
1
Data Types
615
2
The XPath Data Model
617
5
Names and Namespaces
621
1
XPath Expressions
622
16
Context
622
1
Primaries
623
1
Operators
623
1
Comparing Node-sets
624
1
Location Paths
625
1
Example location paths
625
1
Syntax rules for location paths
626
1
Steps
626
1
Axis Names
627
1
Node-tests
628
1
Predicates
628
1
Abbreviations
629
1
XPath Functions
629
1
boolean(arg1)
630
1
ceiling(arg1)
630
1
concat(arg1, arg2, ...)
630
1
contains(arg1, arg2)
630
1
count(arg1)
630
1
current()
631
1
document(arg1 [, arg2])
631
1
element-available(arg1)
631
1
false()
632
1
floor(arg1)
632
1
format-number(arg1, arg2 [, arg3])
632
1
function-available(arg1)
633
1
generate-id((arg1])
633
1
id(arg1)
633
1
key(arg1, arg2)
634
1
lang(arg1)
634
1
last()
634
1
local-name([arg1])
634
1
name([arg1])
634
1
namespace-uri([arg1])
635
1
normalize-space([arg1])
635
1
not(arg1)
635
1
number([arg1])
635
1
position()
635
1
round(arg1)
635
1
starts-with(arg1, arg2)
636
1
string([arg1])
636
1
string-length(arg1)
636
1
substring(arg1, arg2 [, arg3])
636
1
substring-after(arg1, arg2)
636
1
substring-before(arg1, arg2)
637
1
sum(arg1)
637
1
system-property(arg1)
637
1
translate(arg1, arg2, arg3)
637
1
true()
638
1
unparsed-entity-uri(arg1)
638
1
Stylesheets, Templates, and Patterns
638
6
The <xslatylesheet> Element
638
1
The <xsl:template> Element
639
3
Patterns
642
1
Selecting a Template Rule
642
1
Parameters
643
1
The Contents of a Template
644
10
Attribute Value Templates
645
1
XSLT Instructions
645
1
<xsl:apply-imports>
645
1
<xsl:apply-templates>
645
1
<xsl:attribute>
646
1
<xsl:call-template>
646
1
<xsl:choose>
646
1
<xsl:comment>
647
1
<xsl:copy>
647
1
<xsl:copy-of>
647
1
<xsl:element>
647
1
<xsl:fallback>
648
1
<xsl:for-each>
648
1
<xsl:if>
649
1
<xsl:message>
649
1
<xsl:number>
650
1
<xsl:processing-instruction>
651
1
<xsl:text>
651
1
<xsl:value-of>
651
1
<xsl:variable>
652
1
Literal Result Elements
653
1
Sorting
654
1
Top-level Elements
654
6
<xsl:attribute-set>
655
1
<xsl:decimal-format>
655
1
<xsl:import>
656
1
<xsl:include>
656
1
<xsl:key>
656
1
<xsl:namespace-alias>
657
1
<xsl:output>
658
1
<xsl:param>
659
1
<xsl:preserve-space> and <xsl:strip-space>
659
1
<xsl:template>
660
1
<xsl:variable>
660
1
Some Working Examples
660
7
Example: Displaying Soccer Results
660
1
Source
660
1
The First Stylesheet
661
2
Stylesheet 2
663
3
Selecting a Stylesheet Dynamically
666
1
Summary
667
2
Appendix C: BizTalk Framework 2.0 Messages
669
14
BizTalk Envelope Structure
669
2
Purpose and Origins
670
1
Structure
670
1
Header
671
1
Endpoints
671
1
Properties
672
1
Services
673
1
Manifest
674
1
Process
675
2
A Sample BizTalk Framework Message
677
1
Receipt Documents
678
5
Delivery Receipts
678
1
Commitment Receipts
679
4
Index
683