`
`Microsoft
`
`®
`
`CD-ROM
`
`XMtnd SOAP
`Programming
`BizTalk™
`Servers
`
`for
`
`Build business-to
`
`
`
`business e-commerce
`
`
`
`solutions using XML,
`
`SOAP, and the BizTalk
`Framework
`
`
`
`Brian E. Travis
`
`Zynga Ex. 1018, p. 1
`Zynga v. IGT
`IPR2022-00368
`
`
`
`XMtndSOAP
`Programming
`11111111111
`111111111111111111111111111111111
`11111111
`for BizTalk™ servers
`
`b89075403253a
`
`89075403253
`
`and SOAP to speak the
`Use XML, BizTalk,
`on the Internet!
`language of business
`
`and tools you need to meet the
`information
`Get the work-ready
`time. Well-known
`XML
`in Internet
`of doing business
`challenges
`shares his from
`Brian Travis
`developer
`and solutions
`instructor
`on how to create busines s -to-business
`(B2B)
`the-field experience
`(XML).
`Markup Language
`using extensible
`applications
`e-commerce
`case for XML in the B2B context,
`the business
`He begins by building
`Framework.
`and the BizTalk
`schemas,
`industry
`standards,
`discussing
`stepping
`integration,
`you
`the how-to's of application
`He then tackles
`examples-including
`the
`code and business
`line by line through
`application.
`server
`BizTalk
`of a working
`construction
`
`fo� Visual
`Microsoft SOAP. ifoolk1t
`
`. I. . I I •
`
`Started.
`Volume 1: Getting
`
`....
`. .
`. .
`
`..
`
`• Express
`with simple XML syntax-for
`complex data relationships
`About the Author:
`data exchange
`easy cross-platform
`author,
`regarded
`highly
`Travis-a
`Brian E.
`on XML and related
`and consultant
`instructor,
`standards-specializes
`in real-world
`XML.!
`officer
`and
`As chief technical
`implementations.
`Corporation.
`he
`International
`of Architag
`founder
`gement systems
`creates intelligent
`content-mana
`• Use the Simple Object Access Protocol
`(SOAP) to pass information
`around the world.
`for clients
`firewalls
`and through
`across platforms
`to partners
`
`• Learn how to use XML schemas and the BizTalk
`Framework
`to
`fore-commerce-and
`IQwer
`data and applications
`adapt existing
`your transaction
`costs
`
`• See the play-by-play
`of what happens when you use Extensible
`XRay XML Editor
`on
`the Architag
`(XSL)-and
`Language
`Stylesheet
`from cine schema
`to
`XML documents
`transform
`CD-ROM-to
`another
`
`• Use the BizTalk
`Server 2000 to
`Mapper tool in Microsoft• BizTalk
`transformation-processing
`style sheets
`create your own
`
`• Understand
`and technical requirements
`for BizTalk
`the business
`of a complete
`the development
`walk through
`software-and
`server
`B2B solution
`
`• Get turned on to XML and BizTalk-related
`on line
`resources
`best
`free XML tools,
`schemas,
`of validated
`libraries
`including
`and discussion
`groups
`case studies,
`practices,
`
`ISBN 0-7356-1126-2
`
`U.S.A.
`$49.99
`£32.99 (V.A.T included]
`U.K.
`$72.99
`canada
`[Recommended)
`
`90000
`
`Programmlng/E-Commerce
`
`Microsoft®
`
`Zynga Ex. 1018, p. 2
`Zynga v. IGT
`IPR2022-00368
`
`
`
`Microsoft®
`
`Programming
`
`XM�
`dSOAP.
`forB iz T a lk
`
`Servers
`
`Bus·inc,,.s
`Uiw�-ry
`·&-• .... �.,.,.r
`.... ·1�1/ of V1
`11·�,..-.,,,,;,1·•
`�v1ad:!s,,..w,
`-...,.
`!-,!Jlr.tvic.::, 11 . " .;, .... ,L1r ..
`1 - r .v,,1
`2200 Gr, ,ng;x rM.11
`9"ir5 U-i, ,,,r.si�y
`Avlf:.nue
`M;-� .i'..:-:.•.i.
`.,,·;1 53706 13.23
`
`Brian E.
`Travis
`
`Zynga Ex. 1018, p. 3
`Zynga v. IGT
`IPR2022-00368
`
`
`
`PUBLISHED BY
`
`
`Microsoft Press
`
`
`A Division of Microsoft Corporation
`
`One Microsoft Way
`
`
`Redmond, Washington 98052-6399
`
`
`
`Copyright © 2000 by Brian E. Travis
`
`
`
`
`
`All rights reserved. No part of the contents of this book may be reproduced or transmitted in
`
`
`
`any form or by any means without the written permission of the publisher.
`
`'°BU.S\
`Ql
`,t
`H
`
`'
`2
`
`Library of Congress Cataloging-in-Publication Data
`
`
`
`
`
`XML and SOAP Programming for BizTalk Servers / Brian E. Travis.
`
`
`
`
`
`Travis, Brian E., 1958-
`
`p.cm.
`ISBN 0-7356-1126-2
`
`1.XML (Document markup language)I.Title.
`
`QA76.76.H94 T75 2000
`
`005. 7'2--dc21
`
`00-041582
`
`
`
`Printed and bound in the United States of America.
`
`
`
`3 4 5 6 7 8 9
`MLML 5 4 3 2 1 0
`
`
`
`Distributed in Canada by Penguin Books Canada Limited.
`
`
`
`
`A CIP catalogue record
`
`
`
`
`Library.for this book is av�ilable from the British
`
`Microsoft Press books are available through booksellers and distributors worldwide. For
`
`
`
`
`
`
`
`
`
`
`
`
`further information about international editions, contact your local Microsoft Corporation
`
`
`
`
`
`
`office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web
`
`
`site at mspress.microsoft.com. Send comments to mspinput@microsoft.com.
`
`Simple Object Access Protocol (SOAP) 1.1 copyright © 2000 DevelopMentor, International Busi
`
`
`
`
`
`
`
`ness Machines Corporation, Lotus Development Corporation, Microsoft, UserLand Software.
`
`
`
`
`
`BizTalk Framework 2.0 Draft: Document and Message Specification © 1999-2000, Microsoft
`
`
`
`
`
`
`
`
`Corporation. All rights reserved.
`
`Appendix A is adapted from an article written by OrnniMark. Copyright © OmniMark
`
`
`
`
`
`
`
`
`
`
`Technologies Corporation 1988--2000.
`
`Active Directory, ActiveX, BizTalk, CarPoint, IntelliSense, ]Script, Microsoft, Microsoft Press, MSN,
`
`
`
`
`
`
`
`
`
`
`
`Visual Basic, Visual C++, Visual Studio, and Windows are either registered trademarks or trade
`
`
`
`
`marks of Microsoft Corporation in the United States and/or other countries. Other product and
`
`
`
`
`company names mentioned herein may be the trademarks of their respective owners.
`
`Unless otherwise noted, the example companies, organizations, products, people, and events
`
`
`
`
`
`
`
`
`
`
`
`
`depicted herein are fictitious. No association with any real company, organization, product,
`
`
`person, or event is intended or should be inferred.
`
`David Clark
`
`Acquisitions Editor:
`
`Victoria Thulman
`Project Editor:
`Brian Johnson
`
`Technical Editor:
`
`Rebecca McKay
`Manuscript Editor:
`
`Zynga Ex. 1018, p. 4
`Zynga v. IGT
`IPR2022-00368
`
`
`
`Table of Contents
`
`Acknowledgments
`Introduction
`
`About the Companion CD
`
`xi
`xiii
`xvii
`
`Part I XML for E-commerce
`
`
`chapter
`
`1 The XML Business Perspective
`
`
`
`BUSINESS-TO-BUSINESS E-COMMERCE
`
`
`
`SEPARATION OF DATA FROM PROCESS
`
`XML AND THREE-TIER WEB ARCHITECTURES
`
`
`Data Tier
`Client Tier
`Middle Tier
`XML for Content Providers
`Standards
`
`Building the Page
`
`XML FOR CONTENT MANAGEMENT
`
`XML FOR CONTENT AGGREGATION
`
`THE BACKGROUND OF
`
`ELECTRONIC DOCUMENT INTERCHANGE
`
`XML FOR ELECTRONIC DOCUMENT INTERCHANGE
`
`XML and E-commerce
`Lingua Franca
`
`
`XML and Processing Languages
`
`2 XML Background
`chapter
`
`HTML: THE GOOD STUFF
`
`HTML: THE BAD STUFF
`
`SGML: THE GOOD STUFF
`
`SGML: THE BAD STUFF
`
`WE NEED XML
`XML Myths
`
`3
`
`5
`
`5
`
`6
`7
`
`8
`8
`
`18
`
`22
`25
`
`26
`
`27
`
`30
`
`31
`
`32
`
`32
`
`34
`
`35
`35
`
`36
`
`38
`
`39
`
`40
`41
`
`Zynga Ex. 1018, p. 5
`Zynga v. IGT
`IPR2022-00368
`
`
`
`Table of Contents
`
`Chapter 3 XML Standards
`
`ISO
`
`OASIS
`
`W3C
`W3C Standards
`
`IETF
`
`
`
`STANDARDS BY CONVENTION
`
`
`
`
`
`DEVELOPING INDUSTRY SCHEMAS
`
`
`
`Chapter 4 XML Syntax
`
`THE WELL-FORMED XML DOCUMENT
`
`The XML Declaration
`Start Tags and End Tags
`Root Elements
`Case Sensitivity
`Proper Nesting
`
`Special Characters
`Attributes �
`Empty Elements
`Comments
`
`
`
`Examples of Well-Formed Documents
`
`
`
`THE VALID XML DOCUMENT
`
`The Document Type Definition
`
`NAMES PACES
`
`SCHEMAS
`
`XML Data Reduced
`
`
`Chapter
`
`5 The XML Application
`
`THE DOCUMENT OBJECT MODEL
`
`The DOM in Action
`
`Creating a DOM Object
`
`Accessing the documentE/ement
`
`Getting Items in the Document
`
`
`
`EXERCISE: USING THE DOM IN VISUAL BASIC
`
`
`
`WRITING TO THE DOM
`
`
`
`EVENT-DRIVEN MODELS
`
`43
`
`43
`
`44
`
`44
`45
`
`50
`
`51
`
`51
`
`55
`
`55 11 Par1
`56
`56
`57
`57
`57
`
`58
`59
`60
`61
`61
`
`62
`63
`
`66
`
`71
`72
`
`77
`77
`78
`82
`
`84
`85
`
`88
`
`94
`
`101
`
`Zynga Ex. 1018, p. 6
`Zynga v. IGT
`IPR2022-00368
`
`
`
`
`
`EXERCISE: BUSINESS DOCUMENT TRANSFORMATION
`
`
`
`
`
`103
`
`103
`
`104
`
`106
`
`106
`
`106
`
`110
`
`114
`
`123
`
`133
`
`136
`
`137
`
`141
`
`142
`
`142
`
`144
`
`146
`
`146
`
`147
`
`148
`
`148
`
`154
`
`155
`
`162
`
`169
`
`171
`
`Table of Contents
`
`6 XSL
`Chapter
`
`XSL: THE BACKGROUND
`
`How DOES XSL WORK?
`Microsoft's Implementation of XSL
`
`
`XSL T and XPath Breakout
`
`XSL T OPERATION
`
`Recursive Processing
`XSL T by Example
`
`Part II XML Messaging
`Chapter 7 Web Services
`
`
`
`THE IMPORTANCE OF AGGREGATION
`
`LOOSEL V COUPLED SERVICES
`
`
`Chapter8
`
`
`
`Building a Web Service with SOAP
`
`HTTP
`The GET Method
`The POST Method
`
`PORTS
`
`FIREWALLS
`
`SOAP MESSAGE STRUCTURE
`
`THE XML NEWSFEED EXAMPLE
`
`
`The SOAP Client Application
`
`Implementing a SOAP Server i_n OmniMark
`
`SOAPServer.xom
`getXMLNews.xom
`
`Testing the Service
`
`
`Chapter
`
`9 The BizTalk Framework
`
`
`
`
`THE BIZTALK DOCUMENT AND MESSAGE SPECIFICATION 173
`
`THE BIZT ALK FRAMEWORK IN B2B TRANSACTIONS
`
`
`Preparing the Purchase Order
`
`
`Processing the Purchase Order
`
`Interchange Evolution
`
`174
`
`174
`
`176
`
`177
`
`43
`
`43
`
`44
`
`44
`
`45
`
`50
`
`51
`
`51
`
`55
`
`55
`
`56
`
`56
`
`57
`
`57
`
`57
`
`58
`
`59
`
`60
`
`61
`
`61
`
`62
`
`63
`
`66
`
`71
`
`72
`
`77
`
`77
`
`78
`
`82
`
`84
`
`85
`
`88
`
`94
`
`101
`
`Zynga Ex. 1018, p. 7
`Zynga v. IGT
`IPR2022-00368
`
`
`
`Table of Contents
`
`Ordering by Using the BizTalk Framework
`
`Delivery Receipt
`The Order Confirmation
`
`
`Potential for Automating Procurement
`
`178
`
`182
`
`183
`
`185
`
`
`
`Part Ill The BizTalk Server
`
`
`chapter
`
`1 o BizTalk System Requirements
`
`189
`
`RELIABLE DELIVERY OVER ANY TRANSPORT
`
`SECURITY
`
`ROUTING
`
`WORKFLOW
`
`
`
`SYNCHRONOUS AND ASYNCHRONOUS COMMUNICATION
`
`QUEUING
`
`BATCH SUPPORT
`
`DOCUMENT TRACKING AND ACTIVITY
`
`TRADING PARTNER MANAGEMENT
`
`SCALABILITY
`
`DOCUMENT TRANSFORMATION
`
`
`
`THIRD-PARTY AND ISV EXTENSIBILITY
`
`EDI INTEROPERABILITY
`
`MUL Tl FACETED API
`
`
`
`FUTURE-PROOF FLEXIBILITY
`
`
`
`A Focus ON USER-DRIVEN BUSINESS
`
`
`Chapter
`
`
`
`11 Building a BizTalk Server
`
`PROGRAM AND DATA FLOW
`
`ARCHITECTURE
`
`DATABASES
`
`SYSTEM SETUP
`
`ENTERING A PURCHASE REQUISITION
`prEnter.asp
`prProcess.asp
`ROPE and SDL
`
`190
`
`190
`
`191
`
`192
`
`192
`
`193
`
`193
`
`193
`
`194 II Par
`
`194
`
`195
`
`195
`
`196
`
`196
`
`196
`
`197
`
`199
`
`200
`
`203
`
`206
`
`207
`
`208
`
`208
`
`213
`
`216
`
`Zynga Ex. 1018, p. 8
`Zynga v. IGT
`IPR2022-00368
`
`
`
`Table of Contents
`
`PROCESSING A PURCHASE ORDER
`
`
`
`
`
`Automating Purchase Order Processing
`
`PROCESSING THE PURCHASE ORDER CONFIRMATION
`
`
`chapter
`
`
`
`
`
`12 Microsoft BizTalk Server 2000
`
`THE BIZTALK EDITOR
`
`
`
`Exercise: Creating a Purchase Order Schema
`
`
`
`
`
`THE BIZT ALK MAPPER
`
`Exercise: Mapping Two
`
`
`
`Different Purchase Order Schemas
`
`OTHER BIZT ALK TOOLS
`
`BIZTALK SERVER
`DATA PROCESSING
`2000
`
`Placing an Order
`
`
`Checking Inventory and
`
`Ordering from the Manufacturer
`
`Sending an Acknowledgment to the Requestor
`
`Part 1v References
`
`
`
`Appendix A OmniMark for the Impatient
`
`B BizTalk Framework 2.0
`
`
`Appendix
`
`
`Draft: Document and Message Specification
`327
`
`
`Appendix
`
`C XML and BizTalk Web Sites
`
`226
`
`227
`
`238
`
`243
`
`244
`
`244
`
`247
`
`248
`
`255
`
`255
`
`256
`
`257
`
`259
`
`263
`
`365
`
`371
`
`413
`
`
`Appendix
`
`
`
`
`
`D Simple Object Access Protocol (SOAP) 1.1
`
`
`
`Index
`
`178
`
`182
`
`183
`
`185
`
`189
`
`190
`
`190
`
`191
`
`192
`
`192
`
`193
`
`193
`
`193
`
`194
`
`194
`
`195
`
`195
`
`196
`
`196
`
`196
`197
`
`199
`
`200
`
`203
`
`206
`
`207
`
`208
`
`208
`
`213
`
`216
`
`Zynga Ex. 1018, p. 9
`Zynga v. IGT
`IPR2022-00368
`
`
`
`Acknowledgments
`
`This book was originally my idea, but I feel like I am just a conductor of a very well
`
`
`
`
`
`
`
`oiled publishing machine. The people at Microsoft Press really turned my idea into
`
`
`what I think is a book that holds together quite well and is fairly consistent from
`
`chapter to chapter.
`I'd like to thank Vicky Thulman, who acted as the Hollywood producer, bal
`
`
`
`
`
`
`ancing the need for "the talent" (that would be me) to have creative control against
`
`
`
`
`
`the real-world pressures of the publishing business. Vicky kept me informed through
`
`
`
`
`
`out production of the book, managing the editorial process and keeping me in line.
`
`
`
`
`Brian Johnson, the technical editor, was fabulous at checking all of my facts
`
`
`
`
`and not letting me get away with glossing over a technical issue. Brian also con
`
`
`vinced me to register the domain names mentioned in the book. Now if you go to
`
`
`know who to blame. myduckjokes.com or duckbarjokes.com,�you'll
`
`
`Becka McKay saw the manuscripts first. I wrote this book in about a dozen hotel
`
`
`
`
`rooms and at least as many airplane trips over several months. Consistency suffered
`
`
`
`
`as a result. It was Becka's job to tell you, the reader, what I actually meant. I tend to
`
`
`
`
`use the words "this" and "that" a lot. Becka added a lot of comments like "author is
`
`
`
`saying 'this' again. What do�s he mean this time?"
`
`
`The team at Microsoft Press were the best an author can have. I look forward
`
`to working with them again!
`The good people at OrnniMark Technologies were very supportive of this book,
`
`
`
`
`
`
`
`
`since it showcases their great product. Chief Technical Officer John McFadden pulled
`
`
`
`out all the stops in his organization to get me a working copy of OrnniMark that had
`
`
`
`
`
`
`world-class handling of XML documents and schemas. As always, OrnniMark Tech
`
`
`
`
`
`nologies makes the difficult look easy. The impossible took them a little longer. Mark
`
`
`
`
`Baker at OmniMark worked with my last-minute deadlines on the material for Ap
`
`
`
`
`
`pendix A, "OmniMark for the Impatient." I left it mostly intact, only modifying it for
`
`
`
`the duck-bar theme and adding some information appropriate to the rest of the book.
`
`
`There are several people at Microsoft who helped keep me in the loop about
`
`
`
`
`
`technologies in the book. Kevin McCall, the BizTalk Evangelist, never sleeps. He jets
`
`
`around the world telling people about BizTalk and how they can solve their B2B
`
`
`
`
`problems. It was Kevin who pointed out that the BizTalk Framework spec changed
`
`
`
`
`
`radically after I had shipped chapters to the publisher. Fortunately, Vicky gave me
`
`xi
`
`Zynga Ex. 1018, p. 10
`Zynga v. IGT
`IPR2022-00368
`
`
`
`Acknowledgments
`
`an extension to update the book to the new draft spec. John Montgomery plays a
`
`
`
`
`
`
`similar role for SOAP. Jo� filled me in on the relationship between SOAP and BizTalk.
`
`
`
`
`Robert Coleridge is an Architect at Microsoft working on the ROPE implementation.
`
`
`
`Robert kept me in the loop as new builds came along. There are many others at
`
`
`
`Microsoft who have been a great help, and I'd like to thank them all.
`Mehtap Ozkan helped with a nasty bug in ASP that caused data in a POST
`
`
`method to get lost. She worked intensely to come up with the right combination of
`
`
`
`
`character conversion functions to find the lost data. Mehtap also provided spiritual
`
`
`
`support during the difficult last part of the writing process.
`John Iobst from the Newspaper Association of America was helpful in sorting
`
`
`
`
`
`
`
`
`through the history and politics of what his organization is doing with XML and stan
`
`
`dard schemas for sharing news content.
`
`
`
`I have taught thousands of students over the past couple of years about XML
`
`
`
`and e-commerce applications. These lectures and seminars allow me to test new
`
`
`
`material and see what works and what doesn't. My students' feedback is what made
`
`
`
`the information in this book possible, and it gave me plenty of duck-bar jokes.
`
`And I thank you for buying this book. I hope you enjoy reading it as much as
`
`
`I enjoyed writing it.
`
`Bl
`
`xii
`
`Zynga Ex. 1018, p. 11
`Zynga v. IGT
`IPR2022-00368
`
`
`
`y plays a
`i BizTalk.
`1entation.
`others at
`
`1 a POST
`nation of
`I spiritual
`
`n sorting
`and stan-
`
`,out XML
`test new
`1at made
`okes.
`much as
`
`Introduction
`
`The extensible Markup Language, or XML, is a simple technology that has taken the
`
`
`
`
`
`
`computer world by storm. Even before XML was formally adopted, Microsoft Chair
`
`
`
`
`man Bill Gates called XML a "breakthrough technology" because he saw the value
`
`
`
`of defining data transactions in an open, platform-independent way. Since then, many
`
`
`standards of data interchange have been built on top of XML, each with a particular
`
`purpose and all using XML's simple syntax.
`BizTalk and the Simple Object Access P rotocol (SOAP) are XML-based, open
`
`
`
`
`
`
`
`
`
`initiatives designed to facilitate electronic commerce between systems on the Web.
`
`
`
`
`XML enables syntax, because Both BizTalk and SOAP use XML as their data exchange
`
`
`you to specify data in a very precise way.
`I've wanted to write an XML book for some time. My book, Tbe SGML Implemen
`
`
`
`Guide (Springer Verlag, 1995), was a.,real-world hands-on guide to implementers
`tation
`
`
`
`of SGML in the mid-1990s. When XML came along, I wanted to update my first book
`
`
`
`
`to make it XML-compatible. This was difficult, however. Because of its simplicity,
`
`
`flexibility, and much smaller size, XML can do so much more than SGML. Any book
`that I wrote would have to be XML-specific.
`I have a job that keeps me pretty busy, so I never got around to writing that
`
`
`
`XML book. Over the next year or so, there were plenty of XML books published that
`
`
`
`
`
`covered various topics, and the XML bookshelf at the local book superstore was
`
`
`
`
`getting pretty crowded. I didn't want my XML book to get lost on that shelf.
`
`Then came a couple of great XML applications-BizTalk and SOAP-and I
`
`
`figured it was time to write my first XML book.
`
`
`
`There are similarities between BizTalk and SOAP, but there are also differences.
`
`
`
`
`In this book, I will attempt to explain these differences and give examples of each.
`
`BIZTALK
`The BizTalk initiative was started by Microsoft to address the issue of moving busi
`
`
`
`
`
`
`
`
`
`
`
`ness documents between trading partners in the e-commerce supply chain. BizTalk
`
`
`
`
`
`
`provides an elegant envelope for moving electronic documents around the Internet in
`
`
`
`
`
`
`
`the same way the postal service moves physical envelopes between trading partners.
`
`xiii
`
`Zynga Ex. 1018, p. 12
`Zynga v. IGT
`IPR2022-00368
`
`
`
`Introduction
`
`BizTalk is really four different facets of a single initiative. First there is the BizTalk
`
`
`
`
`
`
`Framework is a set
`
`
`Framework Independent Document
`
`Specification. The BizTalk
`
`
`
`of tags that provides an addressing definition so that you can get your documents
`
`
`from one place to another and cause some kind of processing to happen at each place.
`
`
`
`
`
`
`The BizTalk Framework works like a virtual envelope for sending business documents
`
`to our trading partners.
`Second, BizTalk.org is a Web site that provides a place to learn about e-commerce
`
`
`
`
`
`
`
`
`technologies-XML in general and BizTalk in particular. BizTalk.org hosts discussion
`
`
`
`groups where you can find peer support for developing your own document vocabu
`
`
`
`
`
`laries, named schemas, and help in integrating your schemas into the BizTalk Frame
`
`
`
`
`work. BizTalk.org is also a repository for schemas (definitions for XML documents)
`
`
`
`
`and allows you to post your schemas for others to access. This service is free.
`
`
`
`
`
`Third, to process your BizTalk documents, you will need a BizTalk Framework
`
`
`
`
`
`Compliant (BFC) server. A BFC server is the software that reads BizTalk documents
`
`
`
`and then does something intelligent with them. The intelligent thing it does will
`
`depend on what systems you have in place and what needs to be done to process
`the document.
`And fourth, there is Microsoft BizTalk Server 2000, which runs on Microsoft
`
`
`
`
`
`
`
`Windows 2000 Server. Because of the open nature of the BizTalk Framework speci
`
`
`
`
`
`
`fication, you can create BizTalk messages on a Linux system running a BizTalk ser
`
`
`
`ver written in Java and read the messages on a Microsoft Windows 2000 Advanced
`
`
`Server using BizTalk Server 2000.
`BizTalk is viewed by some as a Microsoft-specific protocol that requires Microsoft
`
`
`
`
`
`
`
`
`
`platforms. This is not the case. The first three facets of BizTalk that I've outlined here
`
`
`
`are not proprietary to Microsoft in any way. Two Java applications can pass data back
`
`
`
`and forth using BizTalk messages. Businesses that run on UNIX can use schemas
`published
`
`
`
`
`to BizTalk.org. A BizTalk server can be written in P erl or any other Inter
`
`
`net-aware programming language.
`In this book, we will write a BizTalk server using OmniMark, an internet-savvy
`
`
`
`
`
`
`
`programming language with built-in support for XML documents.
`
`SOAP
`SOAP started life as a way of invoking DCOM (Distributed COM) methods in a more
`
`
`
`
`
`
`
`
`
`loosely coupled way than regular COM method invocations. It evolved into a speci
`
`
`
`
`
`fication that allowed for methods to be invoked on dissimilar systems across Inter
`
`
`
`net protocols (HTTP, FTP, and so on). SOAP and BizTalk are similar in their approach
`
`
`
`
`
`to interchanging information but each is optimized for different transaction types.
`
`
`
`
`SOAP is at the core of a Microsoft initiative called Web Services. Web Services
`
`
`
`offers a new way of looking at the Web. By using an HTML browser to look at infor
`
`
`
`
`
`
`mation, information consumers force content providers (pretty much anyone on the
`
`xiv
`
`Zynga Ex. 1018, p. 13
`Zynga v. IGT
`IPR2022-00368
`
`
`
`the BizTalk
`)rk is a set
`iocuments
`=ach place.
`iocuments
`
`-commerce
`discussion
`nt vocabu-
`1lk Frame
`xuments)
`free.
`ramework
`locuments
`does will
`oprocess
`
`Microsoft
`Jrk speci
`zTalk ser
`\dvanced
`
`Microsoft
`ined here
`iata back
`schemas
`rier Inter-
`
`1et-savvy
`
`ri a more
`a speci
`>ss Inter
`pproach
`1 types.
`Services
`at infor
`e on the
`
`Introduction
`
`Web) to "dumb down" their data so that human eyes can consume it. By removing
`
`
`
`the formatting requirements for the data, the data can be delivered in a raw format,
`allowing
`
`
`
`
`
`services to aggregate and process that data, ultimately offering it to users
`
`
`
`
`
`with added value. An example of such data is real-time weather. A travel site could
`
`
`
`
`
`combine its content with weather reports to provide next week's travelers with a
`
`
`
`tentative weather forecast. A Web site that provides weather as HTML pages can
`
`
`
`generate extra income by providing the raw weather data as an XML stream in re
`
`
`
`
`
`
`sponse to a real-time request for weather in a particular location to parties who will
`
`pay to repackage that content.
`Like the platform-independent BizTalk, you can send a SOAP method invoca
`
`
`
`
`
`
`
`tion to a Perl script running on Solaris, which in turn invokes a Java class to extract
`
`
`
`data from an Oracle database. The response is sent as an XML document object, which
`
`then can be used in your application. You don't need to know what platform your
`
`
`service is running on.
`To understand BizTalk and SOAP, you need to understand the underlying syn
`
`
`
`
`
`
`tax that makes it all possible-XML. In fact, BizTalk is an extension of SOAP, using
`
`
`
`
`SOAP to deliver a business document over HTTP. When you are using BizTalk, you
`are using SOAP and XML as well.
`Part I of this book is an introduction to XML from a business and technical point
`
`
`
`
`
`
`
`
`of view. The purpose of this introduction is to provide a perspective for building and
`
`
`
`interchanging. business information using XML structures.
`
`
`
`This first part is really the XML book I wanted to write. Even if you don't care
`
`
`about BizTalk or SOAP, I hope you will find some value in the description of XML
`in Part I, which is aimed at the developer.
`Part II of the book discusses the BizTalk Framework and shows how you can
`
`
`
`
`
`
`
`use XML and BizTalk today to create e-commerce applications. In Part III we actu
`
`
`ally build some BFC servers using various Microsoft and non-Microsoft tools.
`
`
`
`
`I enjoyed writing this book because it gave me a chance to discover some great
`
`
`
`stuff happening in the B2B (business-to-business) marketplace. I think SOAP and Web
`
`Services will truly change the way people think about their jobs and even their lives.
`
`
`
`
`
`
`BizTalk will provide companies with a standard, cost-effective way to replace paper
`when doing transactions.
`If we should Now I need to concentrate on my next work, 1,001 Duck-Bar Jokes.
`
`
`
`
`
`meet, let me know your favorite Duck-bar joke and I'll buy you a beer.
`
`xv
`
`Zynga Ex. 1018, p. 14
`Zynga v. IGT
`IPR2022-00368
`
`
`
`About the
`
`Companion CD
`
`The companion CD for this book contains several applications that I want readers
`
`
`
`
`
`
`CD also includes to try out. All of these are mentioned in the book. The companion
`
`
`
`a user interface used to browse the CD and install the sample programs, a fully search
`
`
`
`
`able electronic version of the book, and a PDF version of my book, OmniMark At
`
`Work, Volume 1: Getting Started.
`
`SYSTEM REQUIREMENTS
`you must have the �following software
`
`installed:
`To load the samples,
`
`
`
`■Microsoft Windows 98, Windows NT 4.0, or Windows 2000
`
`To use the Microsoft Visual Basic project (poGen.vbp), you must have the
`
`
`
`
`
`following software installed:
`
`■Microsoft Visual Basic version 6; or Microsoft Visual Studio version 6,
`
`
`
`
`
`
`
`
`Professional or Enterprise Edition.
`
`
`
`
`
`To use the OmniMark programs, you must have the following software loaded:
`
`
`
`
`
`
`
`
`
`■OmniMark C/VM version 6
`
`
`
`
`
`■OmniMark Integrated Development Environment version 2 (Optional)
`
`
`
`
`
`To load the samples, just insert the CD into your CD drive to launch the Autorun
`
`
`
`application, StartCD.exe.
`
`
`The searchable online version of this book is in the \eBook\ folder.
`
`
`
`
`
`The electronic version of OmniMark At Work is in the \References\ folder. The
`file name is Oawvl.pdf.
`
`•
`
`xvii
`
`Zynga Ex. 1018, p. 15
`Zynga v. IGT
`IPR2022-00368
`
`
`
`
`
`About the Companion CD
`
`CODE SAMPLES
`The sample files for all code are installed to C:\TravisBook\ChXX\ (where XX is the
`
`
`
`
`
`
`
`chapter number) on your local drive by default. Some of the OmniMark programs on
`
`
`
`
`
`the companion CD run as CGI programs under Internet Information Services, so the
`
`
`
`OmniMark executable file needs to be mapped before these scripts can be used. See
`
`
`
`
`
`"Configuring Web Servers for OmniMark CGI" in Appendix A for specific instructions.
`
`so,
`
`SOFTWARE INCLUDED ON THE CD
`
`
`
`
`
`
`The following sections describe the software included on the companion CD.
`
`
`
`Microsoft BizTalk Server 2000 Technology Preview
`
`Mic
`
`Microsoft BizTalk Server 2000 is due to be released in late 2000. Microsoft has pro
`
`
`
`
`
`
`
`vided an early release version of the product in the form of a Technology Preview.
`
`
`
`
`
`
`The product can be installed in client or server mode. The client contains some pro
`
`
`
`ductivity tools for users and developers, but it does not process BizTalk transactions.
`
`
`
`
`
`
`The server version creates BizTalk messages and sends them to other BizTalk serv
`
`
`
`ers using a number of different transport protocols and methods.
`
`
`
`
`
`
`components:
`
`The client version requjres one of the following operating systems and
`
`Arc
`
`
`
`■Microsoft Windows 98
`
`
`
`
`
`■Microsoft Windows NT Workstation 4.0
`
`
`
`
`
`■ Microsoft Windows NT Server 4.0
`
`■Microsoft Windows 2000 Professional with the NTFS file system and
`
`
`
`
`
`
`Microsoft Data Access Components (MDAC) 2.5
`
`Windows 2000 Advanced■ Microsoft Windows 2000 Server or Microsoft
`
`
`
`
`
`Server with the NTFS file system, MDAC 2.5, and Distributed Component
`Object Model (DCOM 1.3)
`
`
`
`The server version requires the following software:
`
`
`
`
`
`
`
`■Microsoft Windows 2000 Server or Microsoft Windows 2000 Advanced
`
`
`
`Server with the NTFS file system
`
`
`
`(MDAC) 2.5■ Microsoft Data Access Components
`
`
`■Distributed Component Object Model (DCOM) 1.3
`
`
`
`The install program for the BizTalk Tech Preview is in the folder \Software\
`
`
`
`
`
`
`
`BizTServ\.
`
`xviii
`
`Zynga Ex. 1018, p. 16
`Zynga v. IGT
`IPR2022-00368
`
`
`
`= XX is the
`ograms on
`ces, so the
`: used. See
`1structions.
`
`1 CD.
`
`ft has pro
`y Preview.
`some pro
`msactions.
`:Talk serv-
`
`;terns and
`
`and
`
`11ced
`nent
`
`1ced
`
`Software\
`
`SOAP Toolkit for Visual Studio 6.0
`
`
`
`About the Companion CD
`
`The SOAP Toolkit for Visual Studio 6.0 is a developer tool published by Microsoft. It
`
`
`
`
`
`
`
`
`
`
`has tools to help you create Service Description Language (SDL) files so that you can
`
`
`expose Web services using SOAP. It also contains the Remote Object Proxy Engine
`
`
`
`
`
`(ROPE), that provides client-side or server-side capabilities that enable you to send
`
`and receive SOAP documents.
`A Microsoft manager told me, "If you can create a COM object, you can cre
`
`
`
`
`
`
`
`ate a Web Service" using the SOAP Toolkit. He is right. This is a very powerful
`
`
`
`program. If you are a Visual Studio developer, you should get to know SOAP and
`the SOAP Toolkit.
`
`
`
`
`
`
`
`
`The install program for the SOAP Toolkit is in the folder \Software \SOAPTK\.
`
`
`
`
`
`Microsoft Internet Explorer 5.5
`
`Internet Explorer 5.5 includes an XML parser that you can access programmatically
`
`
`
`
`
`
`
`
`
`
`from Microsoft Visual Basic or from scripting languages such as Microsoft Visual Basic,
`
`
`
`
`
`
`
`Scripting Edition (VBScript). Internet Explorer 5.5 installs on Microsoft Windows 95
`
`
`
`
`or later, Microsoft Windows NT 4.0, and Microsoft Windows 2000. The installer for
`
`
`
`
`
`this program is located in the \Software\IE55\ folder on the companion CD.
`
`
`
`Architag XRay XML Editor
`
`The Architag XR.ay XML Editor, or simply XR.ay, is a real-time validating XML editor.
`
`
`
`
`
`
`
`By real-time, I mean that XR.ay checks an XML document as you type, giving you an
`
`
`
`
`
`indication of any errors in the file. XR.ay was developed as a learning aid for students
`
`
`taking Architag University
`
`
`courses. It's optimized for
`(http://architag.com/university)
`
`
`
`
`
`instruction, allowing you to learn XML syntax quickly with immediate feedback. The
`
`
`
`
`product supports well-formed XML and valid XML according to DTD schema syntax
`
`
`or XML Data Reduced (XDR) schema syntax, which is used by the BizTalk Initiative.
`
`
`
`
`XR.ay can also help in debugging XML-based programs. Some applications use
`
`
`
`XML under the covers. To debug an XML-based system, you might need to take a
`
`
`
`
`
`look at the XML documents that are created. The product is called XR.ay because it
`
`allows you to look inside your XML documents.
`XR.ay also has two features that we use in Architag University classes: an XSL
`
`
`
`
`
`
`Transformation (XSLT) window and an HTML previewer. The XSLT window allows
`
`
`
`you to transform an XML document that is in a currently open window by associat
`
`
`ing it with an XSLT style sheet. If you are transforming to HTML, the output of the
`
`
`
`transformation can be viewed instantly with the HTML preview widow.
`
`
`
`The install program for XR.ay is in the \Software\Xray\ folder.
`
`xix
`
`Zynga Ex. 1018, p. 17
`Zynga v. IGT
`IPR2022-00368
`
`
`
`
`
`About the Companion CD
`
`OmniMark CNM
`
`REI
`
`The OmniMark programming language is featured in this book because I really like the lan
`
`
`
`
`
`
`
`
`
`
`
`
`guage for creating fast, platform-independent, scalable, network-enabled applications. The good
`
`
`
`
`
`
`folks at OmniMark Technologies Corporation have provided me with the latest version of their
`
`
`
`free product, OmniMark C/VM (compiler/virtual machine). OmniMark is documented
`
`
`throughout the book and in Appendix A.
`OmniMark runs under most any popular operating system. The version on the compan
`
`
`
`
`
`
`
`
`
`ion CD is for Microsoft Win32 environments. You can download versions for other platforms
`
`
`
`
`OmniMark also offers a subscription from the OmniMark site at http://w111w.omnimark.com.
`
`
`
`
`
`
`service named the OmniMark Developer's Network (OMDN) that provides telephone and e
`
`
`
`
`
`mail support, plus early access to new versions of software and peer support. If you are an
`
`
`
`OmniMark programmer, you should subscribe to this service.
`The install program for OmniMark C/VM 6.0 is in the \Software\OmniMark\ folder.
`
`
`
`
`
`
`
`
`
`For OmniMark support and for the latest version of the software, go tohttp://111w1JJ.onmima1k.com
`on the World Wide Web.
`
`
`
`OmniMark Integrated Development Environment
`
`
`
`Ml�
`
`The install program for OmniMark IDE 2.0 is in the \Software\OmniMark\ folder.
`
`The OmniMark Integrated Development Environment (IDE) is a tool that you can use to
`
`
`
`
`
`
`
`
`
`
`develop and debug your OmniMark programs. The OmniMark virtual machine (VM) is tightly
`
`
`
`
`integrated with the IDE, which provides you with a set of great features including breakpoints,
`
`
`
`variable watches, and throttled execution.
`The product on the CD is written for Win32 environments. It is a 10-day evaluation
`
`
`
`
`
`
`
`
`
`product. You must link to the OmniMark site to get an �nlocking code for the 10-day trial. This
`
`
`
`
`
`is a great product and definitely worth installing if you are interested in developing OmniMark
`programs.
`
`
`
`
`
`
`
`Adobe Acrobat Reader
`The Adobe Acrobat Reader is included on the companion CD to allow you to read the electronic
`
`
`
`
`
`
`
`
`version of my OmniMark book and some of the specifications available on the CD. You can install
`
`
`the Acrobat Reader from the \Software\Acrobat\ folder.
`
`xx
`
`Zynga Ex. 1018, p. 18
`Zynga v. IGT
`IPR2022-00368
`
`
`
`like the lan-
`1s. The good
`,ion of their
`locumented
`
`he compan
`�r platforms
`.ubscription
`hone and e
`-you are an
`
`[ark\ fol