Writing about XML and e-Business is a lot like taking a snapshot of a speeding train. And for those readers who are new to one or both of these subjects, itis a lot like attempting to jump onto that train. In writing this book, Iive attempted to strike a balance between an introduction to these challenging subjects and a practical guide for designing realistic systems.
I make some assumptions about a basic prior knowledge of both XML and UML, but not so much that a motivated reader cannot easily meet these expectations with quick supplemental study. There are dozens of introductory books on both subjects but there is a lack of good explanation about how XML and UML can be combined in the analysis of complex systems. The goal of this book is not only to teach you about XML and UML but also how to use these technologies for practical applications.
Goals of This Book
Over the past twenty-five years of learning, teaching, and working, I have realized that there is a very significant difference between gaining knowledge about a subject and gaining actionable knowledge about that same topic. Knowledge is actionable when it directly and immediately affects what you do and how you do it. While writing this book, I had a note taped to the top of my computer monitor that read "Actionable Knowledge," so that it would continually prompt me to keep this focus in mind.
After reading this book, you will have learned the following actionable knowledge:
Guidelines that you can use to gather key stakeholder input while developing your XML application. How you can integrate XML and UML in current design projects and what this means to achieving your e-business objectives. Steps and criteria to use in the visual analysis and design of XML vocabularies. A detailed guide to how you can generate XML DTDs and Schemas from those vocabularies, plus the trade-offs you must consider while doing so. Substantial, realistic examples to base your own work on. Concrete suggestions about how to apply recently adopted (or almost adopted) XML standards. A deep understanding that is based not on the marketing materials of individual vendors but on common practice that applies to all of them. A solid grounding about how to design XML applications now and many product or system releases in the future. An understanding of what is going to happen next!
Concepts of UML modeling and a streamlined Unified Process are woven throughout this book. e-Business examples demonstrate the breadth of UML modeling capabilities but without overwhelming the primary goal of creating successful applications using XML. As a means to this goal, this book focuses on a consistent, substantial example about the analysis and design of a product catalog application. An XML vocabulary for the Catalog Markup Language (CatML) is designed first in UML, then generated to both DTD and XML Schema languages.
This same catalog example is used to model requirements for the "MyCat" Web portal application, whose content is defined by the CatML vocabulary. An example MyCat portal is demonstrated using the Extensible Stylesheet Language Transformation (XSLT) to produce an HTML presentation from the XML documents, all based on the CatML vocabulary definitions. UML is used throughout the exercise to analyze the application requirements and the vocabulary design. Finally, XSLT is described as a language for transforming the CatML vocabulary to and from RosettaNet product catalog standards. Vocabulary transformation is an essential element in most e-business applications.
Who Should Read This Book?
This book is not a guide to programming XML applications; rather it focuses on the thoughtful analysis and design of XML vocabularies and their use within distributed systems. If you have a need to develop a system using XML, or if you are considering the value of such a system, then you will find this book helpful. Although their use is not restricted to e-business applications, those examples form the central theme throughout all chapters. These examples span the range of XML applied to the content of portal presentations to the specification and transformation of message content for system integration.
System architects will find many valuable points to consider when planning the use of XML. The use case analyses in Chapters 1, 4, and 5 build a business case for e-business integration and portal design using XML. These use cases are described from the perspective of key stakeholders who determine and evaluate the goals of a successful XML application. Each chapter concludes with a list of "Steps for Success" that are especially valuable to an architect.
Complex XML vocabulary definitions are often easier to comprehend and discuss with others when they are expressed graphically. Although a few existing tools provide some assistance in this regard, they are generally limited to a strict hierarchical view of the vocabulary structure. Complex structures may be represented in schemas that are more easily analyzed from an object-oriented perspective. These object-oriented models of schema definition are easily represented using UML class diagrams. This book is valuable to business analysts, who are responsible for the definition of business vocabularies that will be implemented using XML.
Those analysts often team with designers who fine-tune the vocabularies for generation to XML DTDs or Schemas. Chapter 8 provides a detailed comparison of XML DTDs with the new, much richer possibilities available in XML Schema definitions. Chapter 9 includes detailed design heuristics for generating both DTDs and Schemas from UML class models and describes trade-offs for specifying relaxed versus strict schema validation. These decisions are the daily work of XML designers.
Chapter 2 provides an overview of XML terminology using a simple real-world example that is relevant to the topics of this book. The Rich Site Summary (RSS) is described and compared with similar use of news content in HTML. For a more thorough introduction to XML, I recommend:
Simon St. Laurent. XML Elements of Style. New York: McGraw-Hill, 1999.
If you are not familiar with UML, Chapter 3 includes a fast-paced overview of the essential diagrams that are used in this book. Those diagrams are applied to the same RSS XML example that is introduced in Chapter 2. For a good introduction to UML that is short and easy to read, I recommend:
Martin Fowler, Kendall Scott. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Second Edition. Boston: Addison-Wesley, 2000.
Chapters 10 and 11 include substantial examples of XSLT vocabulary transformations. XSLT is a very powerful but somewhat complex language whose detail is beyond the scope of this book. If you are new to XSLT, I recommend the following supplemental references: Neil Bradley. The XSL Companion. Boston: Addison-Wesley, 2000. Michael Kay. XSLT Programmeris Reference. Birmingham, UK: Wrox Press, 2000.
Because no book covering the topics of XML and e-business can promise more than a snapshot of the speeding train, it is equally important to offer a first-class ticket for the ride into the future. A Web site has been especially prepared as the companion site for this book.
eXtensible Markup Language (XML) and Unified Modeling Language (UML) are two of the most significant advances from the fields of Web application development and object-oriented modeling. Modeling XML Applications with UML reveals how to integrate these two technologies to create dynamic, interactive Web applications and achieve optimal business-to-business application integration.
This book focuses on the design and visual analysis of XML vocabularies. It explores the generation of DTD and Schema languages from those vocabularies, as well as the design of enterprise integration and portals--all using UML class diagrams and use case analysis. Also featured are extensive details on the deployment of XML vocabularies and portals, showing how to put these elements to work within distributed e-business systems. You will learn practical techniques that can be applied to both small and large system development projects using either formal or informal processes.
For those who may be new to XML and UML, the book includes a brief overview of these topics, although some background knowledge in these areas is recommended.
Topic coverage includes:
- An overview of XML vocabularies, HTML presentations, and XSLT stylesheets
- An overview of the UML diagrams and the Unified Process
- Defining business vocabulary and creating XML Schemas
- Designing and customizing e-business portals using XML
- Mapping UML to XML, including UML relationships to XML hyperlinks
- Generating XML Schemas from the UML class diagrams
- Transforming custom XML vocabularies into the RosettaNet XML standard
- Transforming XML vocabularies into HTML using XSLT
- Transforming XML documents into Portlets
- Simple Object Access Protocol (SOAP) as an XML-based messaging standard for business-to-business integration
A large-scale example runs throughout the book to illustrate important concepts and techniques. Each chapter also features "Steps for Success," a list of tips and issues to consider when planning for a more effective design effort.