Book description
Web services is the integration technology preferred by organizations implementing service-oriented architectures. I would recommend that anybody involved in application development obtain a working knowledge of these technologies, and I'm pleased to recommend Erl's book as a great place to begin.
—Tom Glover, Senior Program Manager, Web Services Standards, IBM Software Group, and Chairman of the Web Services Interoperability Organization (WS-I).
An excellent guide to building and integrating XML and Web services, providing pragmatic recommendations for applying these technologies effectively. The author tackles numerous integration challenges, identifying common mistakes and providing guidance needed to get it right the first time. A valuable resource for understanding and realizing the benefits of service-oriented architecture in the enterprise.
—David Keogh, Program Manager, Visual Studio Enterprise Tools, Microsoft.
Leading-edge IT organizations are currently exploring second generation web service technologies, but introductory material beyond technical specifications is sparse. Erl explains many of these emerging technologies in simple terms, elucidating the difficult concepts with appropriate examples, and demonstrates how they contribute to service-oriented architectures. I highly recommend this book to enterprise architects for their shelves.
—Kevin P. Davis, Ph. D., Software Architect.
Service-oriented integration with less cost and less risk
The emergence of key second-generation Web services standards has positioned service-oriented architecture (SOA) as the foremost platform for contemporary business automation solutions. The integration of SOA principles and technology is empowering organizations to build applications with unprecedented levels of flexibility, agility, and sophistication (while also allowing them to leverage existing legacy environments).
This guide will help you dramatically reduce the risk, complexity, and cost of integrating the many new concepts and technologies introduced by the SOA platform. It brings together the first comprehensive collection of field-proven strategies, guidelines, and best practices for making the transition toward the service-oriented enterprise.
Writing for architects, analysts, managers, and developers, Thomas Erl offers expert advice for making strategic decisions about both immediate and long-term integration issues. Erl addresses a broad spectrum of integration challenges, covering technical and design issues, as well as strategic planning.
Covers crucial second-generation (WS-*) Web services standards: BPEL4WS, WS-Security, WS-Coordination, WS-Transaction, WS-Policy, WS-ReliableMessaging, and WS-Attachments
Includes hundreds of individual integration strategies and more than 60 best practices for both XML and Web services technologies
Includes a complete tutorial on service-oriented design principles for business and technical modeling
Explores design issues related to a wide variety of service-oriented integration architectures that integrate XML and Web services into legacy and EAI environments
Provides a clear roadmap for planning a long-term migration toward a standardized service-oriented enterprise
Service-oriented architecture is no longer an exclusive discipline practiced only by expensive consultants. With this book's help, you can plan, architect, and implement your own service-oriented environments-efficiently and cost-effectively.
About the Web Sites
Erl's Service-Oriented Architecture books are supported by two Web sites. http://www.soabooks.com provides a variety of content resources and http://www.soaspecs.com supplies a descriptive portal to referenced specifications.
Table of contents
- Copyright
- About Prentice Hall Professional Technical Reference
- Preface
-
1. Introduction
- 1.1. Why this guide is important
- 1.2. The XML & Web Services Integration Framework (XWIF)
- 1.3. How this guide is organized
- 1.4. www.serviceoriented.ws
- 1.5. Contact the author
-
I. The technical landscape
- 2. Introduction to XML technologies
-
3. Introduction to Web services technologies
- 3.1. Web services and the service-oriented architecture (SOA)
- 3.2. Web Services Description Language (WSDL)
- 3.3. Simple Object Access Protocol (SOAP)
- 3.4. Universal Description, Discovery, and Integration (UDDI)
-
4. Introduction to second-generation (WS-*) Web services technologies
- 4.1. Second-generation Web services and the service-oriented enterprise (SOE)
- 4.2. WS-Coordination and WS-Transaction
- 4.3. Business Process Execution Language for Web Services (BPEL4WS)
-
4.4. WS-Security and the Web services security specifications
- 4.4.1. General security concepts
- 4.4.2. Specifications
- 4.4.3. XML Key Management (XKMS)
- 4.4.4. Extensible Access Control Markup Language (XACML) and Extensible Rights Markup Language (XrML)
- 4.4.5. Security Assertion Markup Language (SAML) and .NET Passport
- 4.4.6. XML-Encryption and XML-Digital Signatures
- 4.4.7. Secure Sockets Layer (SSL)
- 4.4.8. The WS-Security framework
- 4.4.9. Concepts and syntax
- 4.5. WS-ReliableMessaging
- 4.6. WS-Policy
- 4.7. WS-Attachments
-
II. Integrating technology
-
5. Integrating XML into applications
-
5.1. Strategies for integrating XML data representation
- 5.1.1. Positioning XML data representation in your architecture
- 5.1.2. Think “tree” (a new way of representing data)
- 5.1.3. Easy now… (don't rush the XML document model)
- 5.1.4. Design with foresight
- 5.1.5. Focus on extensibility and reusability
- 5.1.6. Lose weight while modeling! (keeping your documents trim)
- 5.1.7. Naming element-types: performance vs. legibility
- 5.1.8. Applying XML consistently
- 5.1.9. Choosing the right API (DOM vs. SAX vs. Data Binding)
- 5.1.10. Securing XML documents
-
5.1.11. Pick the right tools
- Review auto-generated markup and code
- Identify proprietary markup and code
- Look for proprietary file types
- Understand the orientation of the tool
- Assess the quality of conversion features
- Evaluate functional features
- Understand programmatic extensions
- Look for quality feedback
- Consider existing toolsets
- 5.1.12. Don't try this at home (fringe optimization strategies)
-
5.2. Strategies for integrating XML data validation
- 5.2.1. XSD schemas or DTDs?
- 5.2.2. Positioning DTDs in your architecture
- 5.2.3. Positioning XSD schemas in your architecture
- 5.2.4. Understand the syntactical limitations of XSD schemas
- 5.2.5. Understand the performance limitations of XSD schemas
- 5.2.6. Other fish in the sea (more schema definition languages)
- 5.2.7. Supplementing XSD schema validation
- 5.2.8. Integrating XML validation into a distributed architecture
- 5.2.9. Avoiding over-validation
- 5.2.10. Consider targeted validation
- 5.2.11. Building modular and extensible XSD schemas
- 5.2.12. Understand the integration limitations of your database
-
5.3. Strategies for integrating XML schema administration
- 5.3.1. XML schemas and the silent disparity pattern
-
5.3.2. A step-by-step XWIF process
- Step 1: Assign ownership
- Step 2: Identify sources of auto-generated schemas and standardize the relevant tool set
- Step 3: Standardize on official XML schemas
- Step 4: Create an application review process
- Step 5: Create a development and maintenance process
- Step 6: Communicate the process, standards, and technology
- Step 7: Version control your schemas
- 5.4. Strategies for integrating XML transformation
- 5.5. Strategies for integrating XML data querying
-
5.1. Strategies for integrating XML data representation
-
6. Integrating Web services into applications
- 6.1. Service models
-
6.2. Modeling service-oriented component classes and Web service interfaces
-
6.2.1. Designing service-oriented component classes (a step-by-step XWIF process)
- Step 1: Take inventory of business component classes
- Step 2: Identify logic for which Web service support is limited
- Step 3: Identify opportunities for reuse
- Step 4: Identify interface dependencies
- Step 5: Determine levels of interoperability
- Step 6: Create granular, task-oriented classes
- Step 7: Group methods based on type
- Step 8: Identify service encapsulation candidates
- Step 9: Review non-service classes
- Step 10: Identify cross-task consolidation opportunities
-
6.2.2. Designing Web service interfaces (a step-by-step XWIF process)
- Step 1: Choose a service model
- Step 2: Establish the scope of the service's business function
- Step 3: Identify known and potential service requestors
- Step 4: Identify the required data bodies
- Step 5: Explore application paths
- Step 6: Define the encapsulation boundary
- Step 7: Model the service interface
- Step 8: Map out interaction scenarios
- Step 9: Design the message payload
- Step 10: Refine the service model
-
6.2.1. Designing service-oriented component classes (a step-by-step XWIF process)
-
6.3. Strategies for integrating service-oriented encapsulation
- 6.3.1. Define criteria for consistent logic encapsulation and interface granularity
- 6.3.2. Establish a standard naming convention
- 6.3.3. Parameter-driven vs. operation-oriented interfaces
- 6.3.4. Designing for diverse granularity
- 6.3.5. Utilize generic services consistently
- 6.3.6. Establish separate standards for internal and external services
- 6.3.7. Considering third-party Web services
- 6.4. Strategies for integrating service assemblies
- 6.5. Strategies for enhancing service functionality
- 6.6. Strategies for integrating SOAP messaging
-
7. Integrating XML and databases
- 7.1. Comparing XML and relational databases
-
7.2. Integration architectures for XML and relational databases
- 7.2.1. Storing XML documents as database records
- 7.2.2. Storing XML document constructs as database records
- 7.2.3. Using XML to represent a view of database queries
- 7.2.4. Using XML to represent a view of a relational data model
- 7.2.5. Using XML to represent relational data within an in-memory database (IMDB)
-
7.3. Strategies for integrating XML with relational databases
- 7.3.1. Target only the data you need
- 7.3.2. Avoiding relationships by creating specialized data views
- 7.3.3. Create XML-friendly database models
- 7.3.4. Extending the schema model with annotations
- 7.3.5. Non-XML data models in XML schemas
- 7.3.6. Developing a caching strategy
- 7.3.7. Querying the XSD schema
- 7.3.8. Control XML output with XSLT
- 7.3.9. Integrate XML with query limitations in mind
- 7.3.10. Is a text file a legitimate repository?
- 7.3.11. Loose coupling and developer skill sets
- 7.4. Techniques for mapping XML to relational data
- 7.5. Database extensions
- 7.6. Native XML databases
-
5. Integrating XML into applications
-
III. Integrating applications
-
8. The mechanics of application integration
- 8.1. Understanding application integration
- 8.2. Integration levels
-
8.3. A guide to middleware
- 8.3.1. “EAI” versus “middleware”
- 8.3.2. Shredding the Oreo
- 8.3.3. Common middleware services and products
-
8.3.4. A checklist for buying middleware
- Understand the range of supported integration models
- Beware industry-specific middleware solutions
- Make sure the product manufacturer is progressive
- Business process mapping features are critical
- Deployment and integration effort
- Maintenance considerations
- Usability of administration tools are important
- Scalability considerations
- 8.4. Choosing an integration path
-
9. Service-oriented architectures for legacy integration
- 9.1. Service models for application integration
- 9.2. Fundamental integration components
- 9.3. Web services and one-way integration architectures
- 9.4. Web services and point-to-point architectures
- 9.5. Web services and centralized database architectures
-
9.6. Service-oriented analysis for legacy architectures
- Step 1: Define business requirements and expectations
- Step 2: Assess adapter quality
- Step 3: Identify required functionality
- Step 4: Evaluate development tool support
- Step 5: Estimate usage requirements
- Step 6: Identify additional integration opportunities
- Step 7: Define a high level test strategy
- Step 8: Gauge the required skill set
- Step 9: Estimate the impact
- Step 10: Determine the cost
- Step 11: Understand the alternatives
- Step 12: Justify the project
-
10. Service-oriented architectures for enterprise integration
- 10.1. Service models for enterprise integration architectures
- 10.2. Fundamental enterprise integration architecture components
- 10.3. Web services and enterprise integration architectures
- 10.4. Hub and spoke
- 10.5. Messaging bus
- 10.6. Enterprise Service Bus (ESB)
-
11. Service-oriented integration strategies
- 11.1. Strategies for streamlining integration endpoint interfaces
- 11.2. Strategies for optimizing integration endpoint services
-
11.3. Strategies for integrating legacy architectures
- 11.3.1. Create a transition architecture by adding partial integration layers
- 11.3.2. Data caching with an IMDB
- 11.3.3. Utilizing a queue to counter scalability demands
- 11.3.4. Adding a mini-hub
- 11.3.5. Abstract legacy adapter technology
- 11.3.6. Leveraging legacy integration architectures
- 11.3.7. Appending Web services to legacy integration architectures
- 11.4. Strategies for enterprise solution integration
-
11.5. Strategies for integrating Web services security
- 11.5.1. Learn about the Web services security specifications
- 11.5.2. Build services with a standardized service-oriented security (SOS) model
- 11.5.3. Create a security services layer
- 11.5.4. Beware remote third-party services
- 11.5.5. Prepare for the performance impact
- 11.5.6. Define an appropriate system for single sign-on
- 11.5.7. Don't over-describe your services
- 11.5.8. Fortify or retreat integrated legacy systems
- 11.5.9. Take advantage of granular security
- 11.5.10. Web services and port 80
- 11.5.11. SOAP attachments and viruses
- 11.5.12. Consider the development of security policies
- 11.5.13. Don't wait to think about administration
-
8. The mechanics of application integration
-
IV. Integrating the enterprise
-
12. Thirty best practices for integrating XML
- 12.1. Best practices for planning XML migration projects
- 12.2. Best practices for knowledge management within XML projects
- 12.3. Best practices for standardizing XML applications
-
12.4. Best practices for designing XML applications
- 12.4.1. Develop a system for knowledge distribution
- 12.4.2. Remember what the “X” stands for
- 12.4.3. Design with service-oriented principles (even if not using Web services)
- 12.4.4. Strive for a balanced integration strategy
- 12.4.5. Understand the roles of supplementary XML technologies
- 12.4.6. Adapt to new technology developments
-
13. Thirty best practices for integrating Web services
-
13.1. Best practices for planning service-oriented projects
- 13.1.1. Know when to use Web services
- 13.1.2. Know how to use Web services
- 13.1.3. Know when to avoid Web services
- 13.1.4. Moving forward with a transition architecture
- 13.1.5. Leverage the legacy
- 13.1.6. Sorry, no refunds (Web services and your bottom line)
- 13.1.7. Align ROIs with migration strategies
- 13.1.8. Build toward a future state
- 13.2. Best practices for standardizing Web services
-
13.3. Best practices for designing service-oriented environments
- 13.3.1. Use SOAs to streamline business models
- 13.3.2. Research the state of second-generation specifications
- 13.3.3. Strategically position second-generation specifications
- 13.3.4. Understand the limitations of your platform
- 13.3.5. Use abstraction to protect legacy endpoints from change
- 13.3.6. Build around a security model
- 13.4. Best practices for managing service-oriented development projects
- 13.5. Best practices for implementing Web services
-
13.1. Best practices for planning service-oriented projects
-
14. Building the service-oriented enterprise (SOE)
- 14.1. SOA modeling basics
- 14.2. SOE building blocks
- 14.3. SOE migration strategy
-
12. Thirty best practices for integrating XML
- About the Author
- About the Photographs
Product information
- Title: Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services
- Author(s):
- Release date: April 2004
- Publisher(s): Pearson
- ISBN: 0131428985
You might also like
book
Deciphering Data Architectures
Data fabric, data lakehouse, and data mesh have recently appeared as viable alternatives to the modern …
book
Modern Software Engineering: Doing What Works to Build Better Software Faster
Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David …
book
Become an Effective Software Engineering Manager
Software startups make global headlines every day. As technology companies succeed and grow, so do their …
book
Software Estimation Without Guessing
Estimating software development often produces more angst than value, but it doesn't have to. Identify the …