Online Sample Chapter
XML: Extending the Enterprise
Table of Contents
Foreword.
Preface.
Acknowledgments.
About the Author.
Introduction.
1. XML: Extending the Enterprise.
XML: Extending the Enterprise.
Extending the Enterprise.
The Role of XML.
XML: Just Tags?
The XML Advantage.
XML: Design by Omission.
XML and the Web.
SOAP.
Web Services.
.NET and J2EE.
XML: The Three Revolutions.
The Data Revolution.
The Architectural Revolution.
The Software Revolution.
Combination and Collaboration.
Summary.
Resources.
Article.
Web.
2. The XML Technology Family. XML Technologies.
Leveraging the XML Technology Family.
XML 1.0.
XML Namespaces.
Structuring with Schemas.
DTD.
XML Schema.
XML Processing.
DOM.
SAX.
Presentation Technologies.
CSS.
XSL.
XFORMS.
XHTML.
VoiceXML.
Transformation.
XSLT.
XLINK.
XPATH.
Xquery.
XML Infrastructure Technologies.
Infoset.
RDF.
Summary.
Resources.
Books.
Web.
3. XML in Practice. The Dimensions of XML in Practice.
The XML Application Spectrum.
Wave One: Vertical Industry Data Descriptions.
Finance: OFX.
Human Resources and HR-XML.
Mortgage Banking: MISMO.
Tracking XML Standards.
Wave Two: Configuration and Action.
EJB and XML.
SVG.
VoiceXML.
SMIL.
From Action to Combination.
The Third Wave: Power Through Combination.
The British Government GovTalk Initiative.
Resources.
4. SOAP. What Is SOAP and Why Is it Important?
The Road to SOAP.
HTTP.
POST Me Some Data.
XML-RPC.
Data Typing.
ZwiftBooks and XML-RPC.
XML-RPC Responses.
SOAP.
SOAP Background.
The SOAP Protocol.
SOAP Overview.
SOAP Message Structure.
SOAP Messaging Example.
Message Paths.
SOAP Intermediaries.
SOAP and Actors.
SOAP Design Patterns.
SOAP Faults.
SOAP with Attachments.
SOAP and Firewalls.
The W3C and SOAP.
Taking SOAP to the Next Level.
Summary.
Resources.
Web.
Book.
5. Web Services. What Is Web Services?
What Qualifies as Web Services?
Opportunity and Risk.
Web Services: A ZwiftBooks Perspective.
Web Services Technologies.
The Web Services Architecture.
Key Technologies.
UDDI.
UDDI: Public versus Private Registries.
Using UDDI to Make the ZwiftBooks Connection.
WSDL.
A ZwiftBooks WSDL Example.
Web Services Caveats.
ebXML.
ebXML Technologies.
ZwiftBooks and ebXML.
Summary.
Resources.
6. .NET, J2EE, and Beyond. SOAP, Web Services, and E-Commerce.
Transactions.
Security.
Identity.
.NET and J2EE.
.NET.
The .NET Platform.
The .NET Framework.
What about Transactions?
J2EE.
Sun ONE and Web Services.
IBM.
BEA.
HP.
Oracle.
Adapters.
Summary.
Resources.
7. XML Security. Security Overview.
Single-Key Cryptography.
Public-Key Cryptography.
Digital Signatures.
Managing Certificates and Private Keys.
Why Is XML Special?
Canonicalization.
The XML Security Framework.
XML Encryption.
Encrypting XML Data.
XML Digital Signature.
Digital Signature Elements.
Steps in Signature Generation.
XKMS.
XKMS Structure.
Guidelines for Signing XML Documents.
Summary.
Resources.
8. Back to the Future. Change.
Convergence.
Collaborative and P2P Computing.
What Is P2P?
P2P Software.
Other P2P Initiatives.
ZwiftBooks and P2P.
Legacy Systems.
Connection Challenges.
Legacy's New Position.
Summary.
Resources.
Article.
Web.
Appendix A: XML Language Basics. Appendix B: SOAP Version 1.2 Specification. Glossary. Index. 0201776413T03012002
Preface
The aim of this book is to try to tell the story that we're now all a part of--a story not just about emerging technologies such as XML and Web services, but also about how these technologies are coming together and combining in new ways, creating new applications for which the requirements have yet to be written.
Structure of the Book
Except for the first and last chapters, the book is essentially a bottom-up view of the XML-driven, open systems world in which we now find ourselves. Chapter 1 describes the big picture: how XML and the Web have changed our perspective about data so that instead of regarding data as something to be stored in a database and shuttled across networks by object systems locked in a tight transport protocol embrace, data is now free (thanks to XML and its family of standards) to move about the Web and create new synergies based on asynchronous loose coupling. After the next six chapters have described the current state of the technology, Chapter 8 then takes a top-down look at where we have arrived and explores some of the new kinds of interactions to expect in environments made up of traditional client-server networks, even more traditional mainframe applications, and the Web.
Chapter Overviews
Chapter 1 is an attempt to draw the big picture: how the Web and a data description technology known as XML have initiated fundamental changes in computing through a shift in focus from tightly coupled computing environments to loosely coupled networks centered around the Web and XML. The effect of this shift has been to spawn three revolutions. The first revolution, the data revolution, is the story of XML and its impact on how data businesses represent data. Although initially viewed as a data description language, XML in combination with HTTP, the Web transport protocol, quickly took on emergent properties, giving rise to SOAP. Today SOAP is the basis for communicating across loosely coupled Web space and is the key driver behind Web services. The second revolution is about software architectures and the move to loosely coupled distributed systems that are both an alternative and a complement to the more tightly coupled systems such as Common Object Request Broker Architecture (CORBA), Distributed Component Object Model (DCOM), or Remote Method Invocation (RMI). The third revolution, the software revolution, involves a changing model of software construction influenced by the World Wide Web Consortium (W3C) in its effort to build a universal Web. Instead of trying to construct software that "does it all," this new era of software assembly is based on the principles of simplicity and modularity, encouraging combination with other software entities.
Chapter 2 covers the core XML technologies, XML 1.0 and namespaces, and explores the family of technologies surrounding this core that provides the support system for delivering structured content across the Web. We examine the applicability of the various support technologies from the perspective of a fictitious company, ZwiftBooks, that has decided to adopt XML in an effort to build its business around Web standards and protocols. The chapter focuses on two important categories of XML support: presentation and transformation. For data presentation we look at cascading style sheets, Extensible Stylesheet Language (XSL), Extensible Hypertext Markup Language, and VoiceXML, each offering options for delivering XML to a variety of devices in different formats. For XML manipulation we look at XSL Transformations, XPath, and XQuery, three technologies used to transform, process, and query XML data. Finally, to round out our tour, we look at Resource Description Framework and the XML Information Set, which permit different XML technologies to integrate more effectively, helping foster what the W3C refers to as the seamless Web.
Chapter 3 looks at XML in practice: how XML has been put to use in a variety of ways, from simple industry-driven data description languages, to vocabularies for configuration and action, to the use of XML as a protocol language that has changed the fundamental assumptions about distributed object computing.
Chapter 4 takes a detailed look at the forces and technologies behind SOAP. SOAP is an example of what can happen when you put two technologies such as the Web and XML together. True to the Web's spirit of emergent behavior, SOAP has created a framework for building loosely coupled confederations of servers that communicate by exchanging XML data over XML protocols. The surprise here is a new set of options that provide alternatives to the tightly coupled network islands of CORBA, DCOM, and RMI. SOAP and its associated protocol, XML Remote Procedure Call, have the balance of power in the computer industry, creating new paradigms based on message-oriented middleware and dynamic discovery and interaction that are the basis for Web services.
Chapter 5 examines the playing field of Web services. Building on a framework of loosely coupled networks, Web services takes object technology's goal of reusability to the next level, by defining XML protocols for discovery and connection. These protocols include Universal Description, Discovery, and Integration (UDDI) and Web Services Description Language (WSDL). UDDI is a protocol for the discovery and deployment of Web services. WSDL describes how to connect to Web services. We examine details of both UDDI and WSDL to get a sense of how these technologies combine to create a new, developing framework for Web services.
Chapter 6 looks at how the software industry is reacting and adapting to the changes brought about by XML-driven loosely coupled networks and the emergence of Web services. Throughout the 1990s, the major network players--Microsoft, Sun, and the Object Management Group (OMG)--have been competing with their respective object-technology-based alternatives for distributed computing. Microsoft's DCOM, the OMG's CORBA and Sun's Java 2 Enterprise Edition (J2EE) represent competing options for building tightly coupled distributed networks. The advantage of these distributed networks is that they provide efficient communication and handle the complex interactions required for transactions and security. The downside is that each comes with its own object model and transport technology, so that connection outside their own universes is possible only with gateway software. Thus, what we're seeing--in Microsoft's .NET initiative, and in various J2EE implementations from Sun, IBM, HP, BEA, and others--are attempts to bridge the gap between tightly coupled, transaction-aware space (DCOM and J2EE) and the loosely coupled, XML-driven, message-centric space of the Web.
Chapter 7 is about securing the XML traffic as it travels across the loose fabric of the Web. XML's ability to structure data provides both opportunities and challenges for applying encryption, authentication, and digital signatures to XML-encoded data. For example, in a workflow environment where XML documents move between participants, and where a digital signature implies some commitment or assertion, participants may wish to sign only parts of a document to minimize liability. Existing secure Web standards, such as the HyperText Transfer Protocol over Secure Socket Layer, that support secure Web transmissions are not able to address XML-specific issues relating to partial document signing or to deal with the fact that XML documents may be processed in stages along loosely coupled network paths. To deal with this reality, three new XML-related security initiatives are explored: XML Encryption, for encoding individual parts of an XML document; XML Signature, for managing the integrity of XML as it moves across the Web; and the XML Key Management Specification for dealing with public key verification and validation.
Chapter 8 takes a high-level look at some of the forces driving the new hybrid world in which we now find ourselves, an amalgam of three architectures: (1) loosely coupled Web space driven by SOAP messaging, (2) tightly coupled transaction-capable; object systems with their own transport protocols; and (3) legacy applications, mostly mainframe based, that have long been difficult to integrate into client-server systems. The irony here is that the central repository model made possible by the mainframe, and made obsolete by client-server network computing, is now undergoing a renewed interest due to the need to manage collaborative peer-to-peer efforts over the loosely coupled Web.
0201776413P03012002
Index
A
- Abbreviations, namespace, 40
- Accredited Standards Committee X12 (ASC X12) group, 114, 167
- ACID properties of transactions, 177-78
- Acknowledged Submission (W3C), 26
- Active Server Pages (ASP), 182
- actor attribute information item, 134, 135, 271-72
- Actors, SOAP, 134-35, 259-60
- Adapters, Oracle, 193-94
- Adobe SVG Viewer, 98
- AlphaWorks web site, 189
- American National Standards Institute (ANSI), 114
- Animation, 97
- SVG support for, 98
- Apache Batik SVG browser, 98
- APIs
- tree-based, 49
- in Web Services Pack, 187-88
- Application assembly information, EJB, 97
- Applications of XML, 81-108
- dimensions of, 81-82
- horizontal industry applications, 81-82, 93
- (.*?)EJB, 82, 95-97
- SMIL, 82, 101-3
- SVG, 97-99
- VoiceXML, 31, 58-60, 82, 99-101
- protocols, 103-7
- (.*?)combinatoric capability of XML and, 104-5
- GovTalk initiative, 105-7
- Simple Object Access Protocol. See SOAP
- XML Remote Procedure Call (XML-RPC), 105, 119-24
- spectrum of, 82-83
- vertical industry data descriptions, 83-94
- (.*?)elements vs. attributes issue in, 84
- in finance, 84, 85-86
- in human resources, 86-90
- in mortgage banking, 90-92
- "Architectural Principles of the Internet" (Carpenter), xxix-xxx
- Architectural revolution, 13, 14, 19-20. See also Loosely coupled systems
- Architecture patterns, software, 135-37
- Ariba, 154
- ASP, 182
- Assertions, 48
- Atomicity in transactions, 177
- Attachments, SOAP with, 138-39
- Attribute information items, 266
- in SOAP header block, 270-71
- Attributes, 5
- in DTDs, 244-47
- (.*?)attribute types, 245-46
- default values, 246
- implied attributes, 247
- elements vs., 36, 84, 240-41
- empty element as container for, 238-39
- Authentication, 197, 198, 200, 201
B
- B2B connections, 2-3, 4, 8-9
- B2B data interchange, 14, 91, 114
- B2C connection, 2-3
- B2E connection, 2-3
- BEA, 191
- Berners-Lee, Tim, 22-23, 75, 116
- Bidirectional Web linking, 65
- binding element, 161
- bindingKey, 158
- Bindings, WSDL, 160, 161-63
- bindingTemplate, 156-57, 158
- BizTalk, 182
- Body, SOAP, 257, 263, 272-73
- Body element information item, 131, 272-73
- British government GovTalk initiative, 105-7
- Broker, 12
- Web services, 152
- Brokerage information, downloading of, 85-86
- Browser, xxviii
- voice, 99
- VoiceXML, 59
- Web, as GUI, 106
- businessEntity structure, 156
- Business messages, ebXML, 170-71
- Business processes, ebXML, 168, 170
- Business Service Interface, 170
- Business-to-business (B2B) connection, 2-3, 4, 8-9
- Business-to-business data exchange, 14, 91, 114
- Business-to-consumer (B2C) connection, 2-3
- Business-to-employee (B2E) connection, 2-3
C
- Candidate Recommendation (W3C), 26-27
- Canonicalization, 205-6, 207, 216
- CanonicalizationMethod element, 212
- Carpenter, Bob Brian, xxix-xxx
- Cascading style sheets (CSS), 31, 51-52, 54, 55
- XSLT and, 64
- CDATA, 204, 206, 242-43
- Certificate authorities (CAs), 203
- Certificate management, 203
- Change, XML-driven, 220
- CheckFree, 85
- Client-server systems, 231, 232
- CLR, 184, 185
- COBOL, 16, 17, 184-85, 219
- XML connection with, 230-31
- Code as data, 18-19
- Code culture, 16-17
- Collaboration. See also Peer-to-peer (P2P) technologies
- combination and, 24
- software model based on, 20-21
- Collaboration Protocol Agreement (CPA), 171
- Collaboration protocol profile (CPP), 168-69, 170
- Collaborative applications, 226
- Combination of technologies, 20-24, 103-7
- collaboration and, 24
- GovTalk initiative, 105-7
- power of surprise and, 21-23
- simplicity and, 103
- Commerce on the Web, key ingredients for, 12. See also E-commerce
- Common Language Runtime (CLR), 184, 185, 233
- Component assembly, 148
- Component Object Model (COM+), 182
- Components, 17-18
- Confidentiality, 197, 198, 200-201
- Configuration management, Web services and, 165-66
- Conformance testing, 93
- Connectivity, universal, 19
- Consistency in transactions, 177
- Content encryption, 209
- Convergence, 220
- Conversion utilities, 84
- CORBA (Common Object Request Broker Architecture), xv, xvi, 9,10, 14,15, 17-19, 111-13, 119, 127, 221, 232-233
- Core components, ebXML, 168-69, 170
- Core Library, 171
- Coupling concept in SOAP, 125-26
- CPA, 171
- CPP, 168-69, 170
- Cross-Process Objects (CPO) Workgroup, 87
- Cryptography, 198-99
- private-key, 198
- public-key, 198, 200, 203-4, 207
- single-key, 199
- CSIRO Pocket SVG Viewer, 98
- CSS, 31, 51-52, 54, 55
- XSLT and, 64
- CSS1 specification, 52
- CSS2 specification, 52
D
- Data
- code as, 18-19
- encrypting, 208-11
- extended enterprise and, 3
- registries of, 188
- (.*?)ebXML, 168-69, 170
- UDDI, 154-55
- Web services, 150, 192
- storage in XML, 5
- synchronized, 85
- Data culture, 16-17
- Data definitions, user requirements and, 87-88
- Data encapsulation in SOAP, 256-57
- DataEncodingUnknown faultcode, 277
- Data exchange
- B2B, 14, 91, 114
- financial, 86
- point-to-point solutions to, 114-15
- with SOAP, 110-13
- Data exchange vs. data storage approach, 84-85, 86
- Data flow diagrams, 120
- Data independence, distributed computing and, 14-15
- Data integrity, 197, 198, 201-2
- Data interchange
- B2B, 91
- HR-XML initiative, 86-87
- Data representation, stakeholder consensus in, 87
- Data revolution, xx, 13-19
- defined, xvi
- Data standards, 84
- Data typing
- omission of, 7
- in XML-RPC, 121
- Data typing technologies, 30-31, 40-50
- document type definitions (DTDs), 30, 41-43, 48, 242, 243-47
- (.*?)defining attributes in, 244-47
- for financial data exchange, 86
- for MISMO, 91-92
- for Person element in HR-XML, 88-90
- XML processing and, 48
- XML Schema, 30-31, 41, 43-48
- DCOM, 10, 18-19, 111-12
- Decentralization, 23
- Declarations, namespace, 38-39
- Descriptor file, 96-97
- Design-by-omission principles of XML, 6-7
- Design patterns, SOAP, 135-37
- detail element information item, 138, 275-76
- Develop-Mentor, 126
- Development tools, .NET, 182
- Devices, .NET-enabled, 183
- Dialogs, VoiceXML, 60
- Digest, 201
- DigestMethod element, 213
- DigestValue element, 213
- Digital hashing, 201
- Digital signatures, 202, 205, 207
- guidelines for, 216-17
- special XML constraints on, 205
- XML Digital Signature, 197, 206, 212-13
- Display capabilities, omission of, 7
- Distributed Component Object Model (DCOM), 10, 18-19, 111-12
- Distributed computing, 104
- based on message passing and peer-to-peer interaction, 20
- data independent and, 14-15
- SOAP and, 10, 175-76
- tightly coupled networks, 125
- XML protocols and, 105
- Distributed object systems, 233
- Distributed state machine, 283
- DLL problem, 165-66
- Document culture, 16-17
- Document information item, 267-68, 284
- Document Type Declaration. See DTDs
- DOM (Document Object Model), 48-49
- DOM levels, 49
- ds:KeyInfo element, 215
- DSSSL, 51
- DTDNotSupported faultcode, 267, 277
- DTDs, 30, 41-43, 48, 242, 243-47
- defining attributes in, 244-47
- (.*?)attribute types, 245-46
- default values, 246
- implied attributes, 247
- for financial data exchange, 86
- for MISMO, 91-92
- for Person element in HR-XML, 88-90
- Durability in transactions, 177-78
- Dynamic link library (DLL) problem, 165-66
E
- ebXML, 141-42, 166-70
- key players behind, 166-67
- support for, 167
- technologies, 167-68
- terminology, 170-71
- Eclipse, 190-91
- E-commerce, 175-80
- forms in, 54
- identity issues in, 178-80
- mortgage industry, 90-92
- security issues in, 178
- transactions requirement of, 176-77, 178
- Economy, global, 84
- EDI (Electronic Data Interchange), 13, 18-19, 110, 113-15
- EJB deployment descriptor, 96-97
- EJB (Enterprise JavaBeans), 82, 95-97
- Electronic Business XML. See ebXML
- Electronic commerce. See E-commerce
- Element(s), 237-41
- attributes vs., 36, 84, 240-41
- empty, 69-70
- encryption of, 210-11
- namespaces and, 39
- naming rules, 239-40
- Person, in HR-XML data definition, 87-90
- in SMIL, 102
- timeline, 102
- uses of, 237-39
- Element information items, 263, 266, 267-68, 285
- Embedded style sheet, 216
- Emergence, phenomenon of, xv, xxix-xxx, 146-47
- Empty elements, 69-70
- encodingStyle attribute information item, 268-69
- Encryption, 197, 206, 207-11. See also Cryptography; Security
- of data, 208-11
- End tags, 5, 6
- Enterprise computing, .NET and J2EE as frameworks for, 180-81
- Enterprise JavaBeans (EJB), 82, 95-97
- Entities, 241-42
- Enumeration constraint, 44
- Envelope, SOAP, 253, 256, 267-80
- body, 257, 263, 272-73
- encoding and versioning, 268-69
- faults, 135, 137-38, 257, 264-65, 273-80
- (.*?)detail, 138, 275-76
- Fault, 137, 273-74
- faultactor, 274-75
- faultcode, 138, 274, 276-78
- faultstring, 138, 274
- MustUnderstand, 264, 277, 278-80
- VersionMismatch, 277, 293-94
- header, 135, 256, 261-62, 269-72
- envelope element information item, 130, 293
- "E-Services," 192
- e-speak, 192
- Event handlers, 101
- Execution adapters, 194
- Explicit grouping, restructuring by, 68-69
- Extensibility, 141
- SOAP model of, 291-92
- Extensible Hypertext Markup Language (XHTML), 31, 57-58
- modularization, 103
- Extensible Markup Language. See XML
- Extensible Stylesheet Language (XSL) formatting, 31, 53-54
- External style sheet, 216
- Extraction, database, 66-67
F
- Fannie Mae, 90
- Fanning, Shawn, 223
- Faults, SOAP, 135, 137-38, 257, 264-65, 273-80
- detail, 138, 275-76
- faultactor, 274-75
- faultcode, 138, 274, 276-78
- faultstring, 138, 274
- MustUnderstand, 264, 277, 278-80
- VersionMismatch, 277, 293-94
- field elements, 101
- Filter chains, 50
- Finance
- mortgage banking, 90-92
- XML applications in, 84, 85-86
- Firewalls, 164
- SOAP and, 139
- Flattening function in XQuery, 67-68
- Formatting objects, 53
- XSL (XSL-FO), 31, 64
- form element, 101
- Forms
- HTML, 54-55
- VoiceXML, 60, 100-101
- XForms, 31, 54-57
- Freddie Mac, 90
G
- Gelertner, David, 227
- get_bindingTemplate API call, 158
- GET command, 116, 117
- GIF format, 97
- Global Commerce Initiative, 167
- Global economy, 84
- Glossary, 317-39
- Google, 71
- GovTalk initiative, 105-7
- Graphics, SVG, 97-99
- Green pages, Web services, 151
- Groove Networks, 219, 225-27
- GUI, Web browser as, 106
H
- Hashing, digital, 201
- Header, SOAP, 135, 256, 261-62, 269-72
- Header block, SOAP, 256, 260-61, 265, 270
- Header element information item, 130-31, 270
- Hewlett-Packard (HP), 192-93
- Horizontal industry applications, 81-82, 93
- EJB, 82, 95-97
- SMIL, 82, 101-3
- (.*?)advantages of, 101-2
- elements in, 102
- modularization of, 102-3
- SVG, 97-99
- VoiceXML, 31, 58-60, 82, 99-101
- (.*?)forms and menus, 60, 100-101
- HR-XML, 86-90
- HR-XML Consortium, 84, 85, 86-90
- HTML, xxviii
- HTML forms, 54-55
- HTTP, xxviii, 22, 104, 109
- SOAP and, 115-19, 124
- Web services and, 145, 146
- Human resources, XML applications in, 86-90
I
- IBM, 113, 154
- J2EE implementation by, 189-91
- Identity, 178-80
- in Web commerce, 12
- Independence of RDF properties, 74
- Independent invention, test of, 23
- InfoSet, 31, 69-70
- in SOAP messages, 266
- Infrastructure technologies, 69-70
- Input and output adapters, 193
- input element, 163
- Interactive behavior, 97
- Interchangeability of RDF statements, 74
- Intermediary, SOAP, 134, 137, 258
- Intermediate Langauge (IL), 185
- Internet alignment, 106
- Internet Engineering Task Force (IETF), 24
- Internet Inter-ORB Protocol (IIOP), 111-12
- Interoperability specifications and standards, 93
- Intuit, 85
- Invention, test of independent, 23
- iPlanet integration platform, 189
- Isolation in transactions, 177
J
- J2EE (Java 2 Enterprise Edition), 12-13, 180-81, 186-94
- evolution of, 186-87
- as framework for enterprise computing, 180-81
- legacy systems and, 233-34
- .NET compared to, 180-81
- SOAP and, 178
- vendors implementing, 188
- (.*?)BEA, 191
- HP, 192-93
- IBM, 189-91
- Oracle, 193-94
- Sun ONE, 113, 189
- Web Services Pack and, 186-88
- Java API for XML Messaging (JAXM), 187, 188
- Java API for XML Processing (JAXP), 187
- Java API for XML Registries (JAXR), 188
- Java API for XML Remote Procedure Calls (JAX-RPC), 188
- Java Architecture for XML Binding (JAXB), 187-88
- Java Community Process (JCP), 21, 24, 186
- Java Connection Architecture, 233-34
- Java Remote Method Protocol (JRMP), 112
- JavaSpaces, 227-29
- JPEG format, 97
K
- KeyInfo element, 212-13
L
- Language basics. See XML language basics
- Language profile, 103
- Layers Pattern, 135-36
- Least power, principle of, 23
- Legacy systems, xxiii, 219, 221, 230-34
- bridging gap to, 230-31
- connection challenges, 232-33
- new position of, 233-34
- SOAP and, 233-34
- Liberty Alliance Project, 180
- Linda distributed operating system, 227-28
- Loans, mortgage, 90-92
- Loose coupling, xv, 19
- Loosely coupled systems, xvi-xvii, xx, xxvii, 19-20
- ad hoc interaction between network nodes, 222
- interplay between tightly coupled systems and, 180, 221-22. See also J2EE (Java 2 Enterprise Edition); .NET
- transactional capabilities required by, 176-77
- universal connectivity and, 19
- Loosely coupled Web space, xxiii
M
- Mainframe model, 224
- Mainframes, 230-32
- Manipulation technologies, 31, 60-69
- XLink, 31, 65
- XPath, 31, 64, 65, 66
- XQuery, 31, 65-69
- (.*?)flattening function in, 67-68
- in practice. See Applications of XML
- restructuring in, 68-69
- select-and-extract using, 66-67
- sorting in, 69
- tag variables in, 69
- XSL Transformation (XSLT), 31, 60-64
- (.*?)CSS and, 64
- template rules in, 61-64
- Markup languages, proprietary, 57-58
- Menus in VoiceXML, 60, 100-101
- Message Oriented Middleware, 7
- Message passing, distributed computing based on, 20
- Message path, SOAP, 133, 257
- Messages, SOAP, 120, 164, 256
- examples of, 131-33, 254-55
- exchange model, 258-66
- processing, 263-66
- sender and receiver concepts, 257-58
- structure of, 130-31
- XML Information Set in, 266
- Messaging
- ebXML, 168, 170
- in Web commerce, 12
- Messaging middleware, 7
- Metadata, 71-72
- Metainformation, 31
- methodCall element, 123
- methodResponse element, 123
- Microsoft, xxii, 85, 113, 126, 154
- Microsoft .NET. See .NET
- Microsoft Passport, 179-80
- Microsoft Transaction Server (MTS), 186
- Middleware, 109, 125, 177
- messaging, 7
- MISMO (Mortgage Industry Standards Maintenance Organization), 84, 187-88, 239
- Modularity, xv, xxx, 22-23
- Modularization
- in SMIL, 102-3
- XHTML, 57, 58, 103
- Modules, coupling of, 125
- Mortgage-backed securities, 90
- Mortgage banking, XML applications in, 90-92
- Mozquito XForms Preview, 56-57
- MP3 files, 223
- Multimedia presentations, SMIL for, 82, 101-3
- Multi-Purpose Internet Mail Extensions (MIME) multipart/related message, 139
- Multitier Pattern, 136
- Music industry, Napster and, 223-24
- mustUnderstand attribute information items, 135, 262, 272
- MustUnderstand fault, 264, 277, 278-80
- Myers, Glenford, 125
N
- Namespace(s), 29, 30, 36-40
- abbreviations, 40
- declarations, 38-39
- SOAP, 266-67
- Napster, xxx, 23, 219, 223-24
- Nesting, in XQuery, 68
- .NET, 12-13, 113, 180-86, 221
- architecture of, 182-83
- Common Language Runtime (CLR), 184, 185, 233
- as framework for enterprise computing, 180-81
- J2EE compared to, 180-81
- legacy systems and, 233, 234
- security capabilities of, 178
- transactions in, 185-86
- .NET Enterprise Servers, 183
- .NET Framework, 184-85
- .NET Platform, 183-84
- Network lock-in, 114
- Networks, emergence of, xxviii
- Note (W3C document), 26
O
- OASIS (Organization for the Advancement of Structured Information Standards), 57-58, 93-94, 166-67
- Object Management Group (OMG), xxii
- Object-oriented languages, 17
- Object Remote Procedure Call (ORPC), 112
- Object Request Broker (ORB), 113
- Object Transaction Monitor, 186
- OFX (Open Financial Exchange), 84, 85-86
- Open Applications Group Inc., 167
- operation element, 160, 161
- Oracle9i Web Services Framework, 193-94
- output element, 163
- Ozzie, Ray, 225-26
P
- P2P technologies. See Peer-to-peer (P2P) technologies
- Parameter entities, 242
- Parnas, Dave, 125
- Parsers, XML, 48. See also DOM (Document Object Model); SAX
- Passport, 179-80
- Pattern, XSL, 53
- Peer-to-peer (P2P) technologies, 219-30
- defined, 222
- distributed computing based on, 20
- Groove Networks, 219, 225-27
- JavaSpaces, 227-29
- Napster, 219, 223-24
- options in, 224-25
- servers and, 222
- software, 225-27
- TSpaces, 227-29
- Personal computer (PC), xxvii-xxviii
- Person element in HR-XML data definition, 87-90
- Pipe and Filter Pattern, 136-37
- Pipelines, SAX support of, 50
- Point-to-point solutions to data exchange, 114-15
- Port 80, security risks of, 139, 164
- Ports, WSDL, 159-61
- portType element, 161
- POST command, 117-18
- Predefined entities, 241-42
- Presentation technologies, 34, 50-60
- cascading style sheets (CSS), 31, 51-52, 54, 55, 64
- Extensible Hypertext Markup Language (XHTML), 31, 57-58, 103
- Extensible Stylesheet Language (XSL) formatting, 31, 53-54
- VoiceXML, 31, 58-60, 82, 99-101
- (.*?)forms and menus, 100-101
- XForms, 31, 54-57
- Pretty Good Privacy (PGP), 215
- "Principles of Design" (Berners-Lee), 22-23
- Private keys management, 203
- Procedures, 120
- Profiling, 103
- Project Gutenberg, 58
- prompt elements, 101
- Properties, RDF, 73, 74-75
- Proposed Recommendation (W3C), 26
- Protocol adapters, 193
- Protocols, 103-7
- combinatoric capability of XML and, 104-5
- GovTalk initiative, 105-7
- security, 178
- Simple Object Access Protocol. See SOAP
- XML Remote Procedure Call (XML-RPC), 105, 119-24
- (.*?)data typing in, 121
- responses in, 123-24
- scalar parameter types for, 121
- in SOAP messages, 139
- Public-key cryptography, 198, 200, 203-4, 207
R
- RDF, 31, 71-75
- characteristics of, 74-75
- properties, 73, 74-75
- resources, 72-73, 74-75
- statements, 73-74, 75
- vocabularies, 74
- Receiver, SOAP, 257, 258
- Receiver faultcode, 278
- "Recommendation" in W3C parlance, 25, 27
- Recording Industry Association of America, 223-24
- Reference element, 212
- Registries of data, 188
- ebXML, 168-69, 170
- UDDI, 154-55
- Web services, 150
- HP, 192
- Remote Method Invocation (RMI), 10, 18-19, 111-12
- Repositories. See ebXML; Web services
- Resources, RDF, 72-73, 74-75
- Restriction constraint, 44
- Restructuring in XQuery, 68-69
- RosettaNet, 167
S
- SAX, 49-50
- SAX2, 50
- Scalability, 98
- of RDF statements, 74
- of single-key cryptography, 199
- Scalable Vector Graphics (SVG), 82
- Schemas, 40-50. See also XML Schema
- defined, 41
- in practice, 48
- Scripting, SVG support for, 98
- Seamless Web, xxi
- Search engines, 71
- Searching images library, 98
- Secure communication, InfoSet and, 70
- Secure Sockets Layer (SSL), 178, 204
- Securing XML traffic, xxii-xxiii
- Securities, mortgage-backed, 90
- Security, 197-218
- authentication, 197, 198, 200, 201
- Canonicalization, 205-6, 207, 216
- certificate and private keys management, 203
- confidentiality, 197, 198, 200-201
- cryptography, 198-99
- (.*?)private-key, 198
- public-key, 198, 200, 203-4, 207
- single-key, 199
- data integrity, 197, 198, 201-2
- digital signatures, 202, 205, 207
- (.*?)guidelines for, 216-17
- special XML constraints on, 205
- XML Digital Signature, 197, 206, 212-13
- in E-commerce, 178
- in J2EE, 178
- in .NET, 178
- SOAP and, 178, 197, 204-5
- special requirements of XML regarding, 204
- W3C framework for, 206-7
- in Web commerce, 12
- of Web services, 164
- XKMS, 197, 214-15
- of XML documents, 164, 204
- XML Encryption, xxiii, 197, 206, 207-11
- (.*?)of data, 208-11
- Selection, database, 66-67
- Selector, 51
- Semantic Web, 71, 75
- Sender, SOAP, 257, 258
- Sender faultcode, 277
- Server(s)
- .NET Enterprise, 183
- peer-to-peer technologies and, 222
- SOAP-compliant, 134-35
- Service provider, 11, 152
- Service requester, 11, 152
- SGML, 15-16, 81
- SignatureMethod element, 212
- Signatures, digital, 202, 205, 207
- guidelines for, 216-17
- special XML constraints on, 205
- XML Digital Signature, 197, 206, 212-13
- SignedInfo element, 212
- Simple API for XML. See SAX
- Simple Object Access Protocol. See SOAP
- Simplicity, xv, xxx, 22
- combination and, 103
- software model based on, 20
- Single-key cryptography, 199
- SMIL, 82, 101-3
- advantages of, 101-2
- elements in, 102
- modularization of, 102-3
- SOAP, xv-xvi, xx, xxi, 105, 109-44, 220, 249-316
- actors, 134-35, 259-60
- with Attachments, 138-39
- change log, 297-312
- coupling concept in, 125-26
- data encapsulation concepts, 256-57
- data movement between partners through, 110-13
- design goals of, 253
- design patterns, 135-37
- development of, 126-27
- distributed computing and, 10, 175-76
- document status, 250-51
- ebXML initiative and, 171
- Electronic Business XML (ebXML) and, 141-42
- elements, 263
- envelope, 253, 256, 267-80
- (.*?)body, 257, 263, 272-73
- encoding and versioning, 268-69
- faults, 135, 137-38, 257, 264-65, 273-80
- header, 135, 256, 261-62, 269-72
- evolution of, 113-15
- extensibility model of, 291-92
- firewalls and, 139
- header block, 256, 260-61, 265, 270
- HTTP and, 115-19, 124
- impact of, 113
- importance of, 109-13
- intermediary, 134, 137, 258
- legacy systems and, 233-34
- message path, 133, 257
- messages, 120, 164, 256
- (.*?)examples of, 131-33, 254-55
- exchange model, 258-66
- processing, 263-66
- sender and receiver concepts, 257-58
- structure of, 130-31
- XML Information Set in, 266
- namespaces, 266-67
- node, 256, 259-60
- notational conventions, 245
- overview of, 129-30
- protocol binding framework, 253, 255, 280-86
- (.*?)binding to application-specific protocol, 285-86
- distributed state machine in, 283
- goals of, 282-83
- protocol concepts, 127-29, 255-56
- receiver, 257, 258
- security and, 178, 197, 204-5
- sender, 257, 258
- URIs in, 286-87
- version transition from 1.1 to 1.2, 290-94
- W3C and, 140-41
- Web services and, 10, 141-42, 145, 146, 153-54, 155, 175-80
- XML and, 4-5, 9-10, 266-67
- XML schema changes, 313-15
- soap:binding element, 161
- soap:body element, 163
- soap:operation element, 162
- soapAction attribute, 162
- Software architecture, xxvii, 135-37
- revolution in, xx
- Software combination, 20-24
- Software configuration, 95
- Software industry, xxii
- Software interaction, Web services and, 10-11
- Software revolution, xx, 13, 14, 20-24
- Software specification and design, collaboration on, 24
- Sorting in XQuery, 69
- Speech-enabled applications, 58-60
- SSL, 178, 204
- Standard Generalized Markup Language (SGML), 15-16, 81
- Standards, tracking XML, 93-94
- Start tags, 5, 6
- State maintenance in SAX, 50
- Statements, RDF, 73-74, 75
- Structural information, EJB, 97
- Structure, 30-31
- Style sheets
- cascading (CSS), 31, 51-52, 54, 55
- (.*?)XSLT and, 64
- embedded, 216
- external, 216
- Subelement encryption, 209
- Submission to W3C, 25-26
- Sun, xxii, 113, 186-87
- Sun Open Net Environment (Sun ONE), 113, 189
- Surprise and combination, power of, 21-23
- SVG, 97-99
- Synchronized Multimedia Integration Language (SMIL), 82, 101-3
- advantages of, 101-2
- elements in, 102
- modularization of, 102-3
T
- Tags, 5-6
- Tag variables, in XQuery, 69
- TCP/IP, xxviii, 19, 21, 104
- Technical Committee Process (OASIS), 93
- Technology family, XML, 29-80
- data typing, 30-31, 40-50
- (.*?)document type definitions (DTDs), 30, 41-43, 48, 86, 88-90, 91-92, 242, 243-47
- XML Schema, 30-31, 41, 43-48, 161
- leveraging, 32-40
- manipulation and transformation, 31, 60-69
- (.*?)XLink, 31, 65
- XPath, 31, 64, 65, 66
- XQuery, 31, 65-69
- XSL Transformation (XSLT), 31, 60-64
- presentation, 34, 50-60
- (.*?)cascading style sheets (CSS), 31, 51-52, 54, 55, 64
- Extensible Hypertext Markup Language (XHTML), 31, 57-58, 103
- Extensible Stylesheet Language (XSL) formatting, 31, 53-54
- VoiceXML, 31, 58-60, 82, 99-101
- XForms, 31, 54-57
- RDF, 31, 71-75
- (.*?)characteristics of, 74-75
- properties, 73, 74-75
- resources, 72-73, 74-75
- statements, 73-74, 75
- vocabularies, 74
- structure and, 30-31
- XML Information Set (InfoSet), 31, 69-70, 266
- XML processing and, 48
- Template rule, 53
- Templates
- XSL, 53
- XSLT, 61-64
- Tiered systems, 136
- Tightly coupled systems, 125
- interplay between loosely coupled systems and, 221-22
- Time-related processing, 48
- tModel, 157
- Trading partner profiles and agreements, ebXML, 168
- Transaction-capable object systems, xxiii
- Transactions
- ACID properties of, 177-78
- integrity of, 180
- in .NET, 185-86
- risks of, 164
- Web commerce, 12
- Transformation technologies, 31, 60-69
- content alterations due to, 216-17
- XLink, 31, 65
- XPath, 31, 64, 65, 66
- XQuery, 31, 65-69
- XSL Transformation (XSLT), 31, 60-64
- Transforms element, 213
- Transport, omission of, 7
- Transport Layer Security (TLS), 178, 204
- Tree-based APIs, 49
- Tree structures, XML, 65, 66
- TSpaces, 227-29
- TupleSpace, 227-28
U
- UDDI, xxi-xxii, 150, 151, 153, 154-58
- failure and recovery, 157-58
- interaction scenario, 156-57
- registries, 154-55
- repository, 150, 151
- specifications family, 156
- UDDI4J, 189
- Uniform Resource Identifiers (URIs), 37
- in SOAP, 286-87
- Uniform Resource Locator (URL), 37-38
- Union constraint, 44, 46
- United Nations Centre for Trade Facilitation and Electronic Business, 166
- United Nations Directories for Electronic Data Interchange for Administration, Commerce and Transport Working Group, 167
- Universal Character Set UTF-8, 206
- Universal Description, Discovery, and Integration. See UDDI
- Upgrade element information item, 292-93
- uriReference data type, 48
- User requirements, data definitions and, 87-88
- User validation, 178-80
V
- Validation, user, 178-80
- Values functioning as resources, 75
- Versioning, 48, 268-69
- VersionMismatch fault, 277, 293-94
- Vertical industry applications, 83-94
- elements vs. attributes issue in, 84
- in finance, 84, 85-86
- in human resources, 86-90
- in mortgage banking, 90-92
- VisualStudio.NET (VS.NET), 183-84
- Vocabularies, RDF, 74
- Voice browser, 99
- Voice dialogs, 58-60
- VoiceXML, 31, 58-60, 82, 99-101
- forms and menus, 100-101
- von Neumann, John, 94
W
- W3C, xx, 20, 24, 25-27
- framework for security, 206-7
- "Recommendation" by, 25, 27
- SOAP and, 140-41
- SVG compatibility with initiatives, 98-99
- Web, the, 232
- architectural philosophy underlying, xxix
- as example of power of combination, 20-21
- extended enterprise enabled by, 2-3
- rapid emergence of, xxviii
- seamless, xxi
- XML and, xxvii, 7-9
- Web browser as GUI, 106
- Web commerce, key ingredients for, 12. See also E-commerce
- Web linking, bidirectional, 65
- WebLogic E-Business Platform (BEA), 191
- Web services, xxi-xxii, xxvii, 145-73. See also J2EE (Java 2 Enterprise Edition); .NET
- architecture of, 152, 153
- BEA, 192
- emergence of, 8-9
- exploiting (example), 149-52
- frameworks, 113
- HP, 192-93
- HTTP and, 145, 146
- IBM, 189-91
- major aspects to, 11-12
- model of, 147
- nature and functions of, 145-47
- opportunity and risk in, 148-49
- Oracle, 193-94
- qualifications for, 148
- risks in, 163-66
- (.*?)configuration management, 165-66
- maturity, 163
- security, 164
- transactions, 164
- SOAP and, 10, 141-42, 145, 146, 153-54, 155, 175-80
- software interaction and, 10-11
- Sun ONE and, 189
- technologies, 152-63
- (.*?)UDDI, xxi-xxii, 150, 151, 153, 154-58
- WSDL, xxi-xxii, 153, 158-63
- XML and, 10-12
- Web Services Description Language. See WSDL
- Web Services Pack, 186-88
- WebSphere, 190
- White pages, Web services, 151
- Winer, Dave, 112-13, 119, 124, 126
- Wireless Markup Language (WML), 31
- Working Draft (W3C), 26
- World Wide Web Consortium. See W3C
- WSDL, xxi-xxii, 153, 158-63
- bindings, 160, 161-63
- ports or network endpoints, 159-61
X
- X.509, 215
- XForms, 31, 54-57
- XHTML, 31, 57-58
- modularization, 103
- X-KISS, 214-15
- XKMS, xxiii, 197, 214-15
- X-KRSS, 214, 215
- XLink, 31, 65
- XML, 1-28
- advantages of, 6
- architectural revolution and, 13, 14, 19-20
- data revolution and, 13-19
- design-by-omission principles of, 6-7
- as driver of change, 220
- extending enterprise, 2-3
- .NET and J2EE and, 12-13
- origins and culture of, 15-16
- role of, 3-5
- SOAP and, 4-5, 9-10, 266-67
- software revolution and, 13, 14, 20-24
- tags and content components of, 5-7
- the Web and, xxvii, 7-9
- Web services and, 10-12
- XML 1.0, 33-35
- XML4J parser, 189
- XML core, 30
- XML documents, guidelines for signing, 216-17
- XML Encryption, xxiii, 197, 206, 207-11
- of data, 208-11
- XML Information Set (InfoSet), 31, 69-70
- in SOAP messages, 266
- XML Key Information Service Specification (X-KISS), 214-15
- XML Key Management Specification (XKMS), xxiii, 197, 214-15
- XML Key Registration Service Specification (S-KRSS), 214, 215
- XML language basics, 237-47
- attributes, 240-41, 244-47
- CDATA, 242-43
- DTDs and, 243-47
- (.*?)defining attributes in, 244-47
- elements, 237-41
- (.*?)attributes vs., 36, 84, 240-41
- naming rules, 239-40
- uses of, 237-39
- entities, 241-42
- processing instructions, 243
- XML processing, 48
- XML Protocol Working Group, 140
- XML Query Working Group, 65-66
- XML Remote Procedure Call (XML-RPC), 105, 119-24
- data typing in, 121
- responses in, 123-24
- scalar parameter types for, 121
- in SOAP messages, 139
- XML Schema, 30-31, 41, 43-48, 161
- changes in, 313-15
- complex types, 46
- data type hierarchy, 44, 45
- derivation rules, 44-46
- XML processing burden and, 44
- XML Signature, xxiii
- XPath, 31, 64, 65, 66
- XQuery, 31, 65-69
- flattening function in, 67-68
- in practice. See Applications of XML
- restructuring in, 68-69
- select-and-extract using, 66-67
- sorting in, 69
- tag variables in, 69
- Xsi:type attribute, 48
- XSL, 31, 53-54
- XSL Formatting Objects (XSL-FO), 31, 64
- XSL Transformation (XSLT), 31, 60-64
- CSS and, 64
- template rules in, 61-64
- XSL Working Group, 53
- X-Smiles, 56
Y
- Y2K problems, 232
- Yahoo, 71
- Yellow pages, Web services, 150-52
Z
- Zooming images, 98