Perspectives on Web Services: Applying SOAP, WSDL and UDDI to Real-World Projects / Edition 1

Perspectives on Web Services: Applying SOAP, WSDL and UDDI to Real-World Projects / Edition 1

by Olaf Zimmermann, Mark Tomlinson, Stefan Peuser

ISBN-10: 3540009140

ISBN-13: 9783540009146

Pub. Date: 07/25/2005

Publisher: Springer Berlin Heidelberg

"The ongoing Web services trend is ubiquitously featured already – many publications on Web services exist. The first wave of enterprise-scale applications and projects exploiting the benefits of the technology is on its way.

However, there is still a lack of experience in the field – technical decision makers are struggling about when to apply which


"The ongoing Web services trend is ubiquitously featured already – many publications on Web services exist. The first wave of enterprise-scale applications and projects exploiting the benefits of the technology is on its way.

However, there is still a lack of experience in the field – technical decision makers are struggling about when to apply which elements of the technology, and how to do so. This is a variation of the well-known "chicken and egg" problem: no project without an architectural decision, no architectural decision without experience, no experience without a project. This book provides technical guidance and helps the reader to cut the Gordian knot."

Key Topics

- Seven – sometimes controversial – Perspectives on Web services, covering the entire project lifecycle from opportunity identification to design, development, and deployment

- Introduction to Web services architectures as defined by the World Wide Web Consortium (W3C), and their Java 2 Enterprise Edition (J2EE) instantiations

- Understanding the Web services building blocks SOAP, WSDL, and UDDI

- Business scenarios and functional/non-functional requirements for Web services solutions

- Patterns for Web services projects and related architectural decisions

- Sample implementation platform: IBM WebSphere Studio integrated development environment and IBM WebSphere Application Server Version 5

- Full-scope implementation of an end-to-end case study, including hands-on instructions for development and deployment

- Apache SOAP 2.3 as well as JAX-RPC programming through JSR 109 and Apache Axis

- Interoperability between Microsoft .NET C# and Apache SOAP

- Runtime topologies for Web services solutions, deployment to WebSphere, transport layer and Web services security

- Best practices for design and management of Web services projects

- Trends such as Grid computing and the semantic Web


- Project-centric approach including lessons learnt and pitfalls to avoid

- Many sample project deliverables, including checklists to decide whether Web services are an appropriate solution to a given business problem

- Guide to W3C recommendations and other Web services specifications

- Full source code for a complete reference implementation

- Many rich illustrations, website support, and extensive pointers to other Web resources

This book will provide everything that a project team needs to know about design, development and deployment of Web services with the IBM WebSphere product family. Taking a realistic and pragmatic view on the subject, this book will be an essential part of every Java Web service developer’s bookshelf.

Meet fictitious members of the target audience as they find their way through a first-of-a-kind Web services project, and hear their opinions on the topic at hand. Benefit from the real-world experience the authors gained during numerous client projects and workshops.

Product Details

Springer Berlin Heidelberg
Publication date:
Springer Professional Computing Series
Edition description:
1st ed. 2003. Corr. 2nd printing 2005
Product dimensions:
7.01(w) x 10.00(h) x 0.36(d)

Table of Contents

1 The Business Perspective.- 1.1 The Sponsor's View... and a Few Other Opinions l.- 1.2 Web Services — Holy Grail or Déjà Vu?.- l.2.1 Business Drivers and Benefits.- l.2.2 Requirements for Application-to-Application Communication.- l.2.3 Additional Advantages.- l.2.4 Litmus Test (a.k.a. Applicability Filter).- 1.3 Usage Scenarios.- 1.3.1 Enterprise Application Integration (EAI).- 1.3.2 Business-to-Business (B2B).- 1.3.3 Common Services.- 1.3.4 Miscellaneous Scenarios.- 1.4 Potential Inhibitors.- 1.4.1 Over-Enthusiastic Expectations.- 1.4.2 Goal Conflicts.- 1.4.3 Skepticism about New Technology.- 1.4.4 Security and Performance Concerns.- 1.4.5 Logistical and Organizational Issues.- 1.4.6 Skill Deficiencies.- 1.4.7 Roll-Your-Own (RYO) Temptation.- 1.4.8 So Do the Inhibitors Really Inhibit Us?.- 1.5 Introduction to the Case Study.- 1.5.1 Background Information.- 1.5.2 The Business Problem.- 1.5.3 Solution Outline.- 1.6 Summary.- 1.6.1 Key Messages.- 1.6.2 Where to Find More Information.- 1.6.3 What's Next.- 2 The Training Perspective.- 2.1 The Trainer's View... And What the Trainees Think.- 2.2 Web Services Concepts in a Nutshell.- 2.2.1 Roles and Relationships.- 2.2.2 A First Look at the Case Study Solution.- 2.2.3 Where to Go from Here.- 2.3 XML, XML Namespaces and XML Schema.- 2.3.1 An XML Overview.- 2.3.2 XML Namespaces.- 2.3.3 XML Schema.- 2.3.4 Summary and Next Steps.- 2.4 Understanding SOAP.- 2.4.1 The SOAP Message Format.- 2.4.2 The SOAP Section 5 Encoding.- 2.4.3 SOAP Communication Styles.- 2.4.4 Summary and Next Steps.- 2.5 Understanding WSDL.- 2.5.1 The WSDL Building Blocks.- 2.5.2 The Containment Structure of a WSDL Document.- 2.5.3 The Logical Relationships between WSDL Elements.- 2.5.4 The SOAP Binding.- 2.5.5 Summary and Next Steps.- 2.6 Understanding UDDI.- 2.6.1 The UDDI Registry Structure.- 2.6.2 Linking WSDL Documents to a UDDI Registry.- 2.6.3 A Brief UDDI API Overview.- 2.6.4 Private versus Public UDDI Registries.- 2.6.5 Summary.- 2.7 Summary.- 2.7.1 Key Messages.- 2.7.2 Where to Find More Information.- 2.7.3 What's Next.- 3 The Architecture Perspective.- 3.1 The Architect's View.- 3.2 Introduction to Web Services Architectures.- 3.2.1 Motivation.- 3.2.2 Introduction to the W3C Web Services Architecture.- 3.2.3 Service-Oriented Architecture and Java.- 3.3 Web Services Principles and Patterns.- 3.3.1 General Architectural Principles and Design Patterns.- 3.3.2 Business Patterns.- 3.3.3 Architectural Patterns.- 3.4 Architectural Decisions.- 3.4.1 Service Modeling: WSDL and XML Schema.- 3.4.2 Service Messaging: SOAP.- 3.4.3 Service Matchmaking: UDDI and WSIL.- 3.4.4 General Decisions.- 3.4.5 Software Architecture for the Case Study.- 3.5 Non-Functional Requirements (NFRs).- 3.5.1 Performance.- 3.5.2 Scalability.- 3.5.3 Availability.- 3.5.4 Robustness.- 3.5.5 Portability.- 3.6 Gaps and Countermeasures.- 3.6.1 The XML Language Binding and Encoding Maze.- 3.6.2 Security.- 3.6.3 Web Service Management.- 3.6.4 Transactional and Context Semantics.- 3.6.5 Process Orchestration and Workflow.- 3.7 Frequently Asked Questions.- 3.8 Summary.- 3.8.1 Key Messages.- 3.8.2 Where to Find More Information.- 3.8.3 What's Next.- 4 The Development Perspective.- 4.1 A Developer's View.- 4.2 Introduction to Developing Web Services in Java.- 4.2.1 IBM Development Tools Supporting Web Services.- 4.2.2 Getting Started with Eclipse and WebSphere Studio.- 4.2.3 Selecting a Web Services Implementation.- 4.2.4 Conclusions.- 4.3 Preparing the Sample Application.- 4.3.1 Background to the Sample.- 4.3.2 Current Implementations.- 4.3.3 Constructing the New Applications.- 4.3.4 Configuring the Sample Application.- 4.3.5 Summary.- 4.4 Building rpc/encoded Services from Java.- 4.4.1 Introduction.- 4.4.2 Building EJB Web Services with Apache SOAP.- 4.4.3 Building EJB Web Services with JAX-RPC and JSR 109.- 4.4.4 Conclusions.- 4.5 Building Web Service Clients.- 4.5.1 Introduction.- 4.5.2 Web Service Clients using Apache SOAP.- 4.5.3 Web Service Clients using JAX-RPC and JSR 109.- 4.5.4 Conclusions.- 4.6 Building rpc/encoded Services from WSDL.- 4.6.1 Introduction.- 4.6.2 Creating Web Services from WSDL using Apache SOAP.- 4.6.3 Creating Web Services from WSDL using JAX-RPC/JSR 109.- 4.6.4 Conclusions.- 4.7 Programmatic Access to WSDL.- 4.7.1 Introduction to Working with WSDL in Java.- 4.7.2 Creating JWSDL Clients with Apache SOAP.- 4.7.3 Creating JWSDL Clients with JAX-RPC and JSR 109.- 4.7.4 Conclusions.- 4.8 Using WS-Inspection to Build Service Indices.- 4.8.1 Introduction to Using WS-Inspection from Java.- 4.8.2 Using WS-Inspection with Apache SOAP.- 4.8.3 Using WS-Inspection with JAX-RPC and JSR 109.- 4.8.4 Conclusions.- 4.9 Using UDDI.- 4.9.1 Introduction to UDDI Access from Java and Browsers.- 4.9.2 Using UDDI with Apache SOAP.- 4.9.3 Using UDDI with JAX-RPC and JSR 109.- 4.9.4 Conclusions.- 4.10 Using Other Web Services Bindings.- 4.10.1 Introduction to the Web Services Invocation Framework.- 4.10.2 Working with WSIF and Apache SOAP.- 4.10.3 Using WSIF with JAX-RPC and JSR 109.- 4.10.4 Conclusions.- 4.11 Creating a document/literal Service from WSDL.- 4.11. l Introduction.- 4.11.2 Defming the document/literal Service Interface.- 4.11.3 Document/literal Services with Apache SOAP.- 4.1 1.4 Document/literal Services with JAX-RPC and JSR 109.- 4.11.5 Conclusions.- 4.12 Creating a document/literal Service Client.- 4.12.1 Introduction.- 4.12.2 Document/literal Clients with Apache SOAP.- 4.12.3 Document/literal Clients with JAX-RPC and JSR 109.- 4.12.4 Conclusions.- 4.13 Orchestrating Web Services.- 4.13.1 Introduction.- 4.13.2 Creating Services and the Public Service Interface.- 4.13.3 Completing the Process Implementation.- 4.13.4 Other Features in the Process Editor.- 4.13.5 Deploying the Orchestrated Service.- 4.13.6 Testing the Orchestrated Service.- 4.13.7 Conclusions.- 4.14 Using Attachments with SOAP.- 4.14.1 Introduction.- 4.14.2 Creating SOAP Attachments with Apache SOAP.- 4.14.3 Creating SOAP Attachments with JAX-RPC and JSR 109.- 4.14.4 Conclusions.- 4.15 Using SOAP Headers.- 4.15.1 Introduction.- 4.15.2 Implementing Headers with Apache SOAP.- 4.15.3 Implementing Headers with JAX-RPC and JSR 109.- 4.15.4 Conclusions.- 4.16 Exporting the Completed Sample.- 4.17 Summary.- 4.17.1 Key Messages.- 4.17.2 Where to Find More Information.- 4.17.3 What's Next.- 5 The Operational Perspective.- 5.1 The System Administrator's View.- 5.2 System Architectures for Web Services Solutions.- 5.2.1 Introduction.- 5.2.2 Basic Topology.- 5.2.3 Standalone Topology.- 5.2.4 Placement of Additional Components.- 5.2.5 Clustered and Managed Topology.- 5.2.6 System Architecture for PremierQuotes.- 5.2.7 Summary.- 5.3 Deploying Web Services.- 5.3.1 Introduction to WebSphere Application Server.- 5.3.2 Deployment Overview.- 5.3.3 Configuring the Application Server.- 5.3.4 Deploying Services.- 5.3.5 Working with the Private UDDI Registry.- 5.3.6 Testing the Service.- 5.3.7 Clustering.- 5.3.8 Working with the IBM HTTP Server.- 5.4 Securing a Web Services Implementation.- 5.4.1 Security Threats and Countermeasures.- 5.4.2 WS-Security.- 5.4.3 Securing Web Services with HTTPS and SSL.- 5.5 The Web Services Gateway.- 5.5.1 Introduction.- 5.5.2 Configuring the Gateway.- 5.5.3 Deploying a Web Service to the Gateway.- 5.5.4 Updating the Client and Testing.- 5.6 Summary.- 5.6.1 Key Messages.- 5.6.2 Where to Find More Information.- 5.6.3 What's Next.- 6 The Engagement Perspective.- 6.1 The Project Manager's View.- 6.2 Planning a Web Services Development Project.- 6.2.1 Step 1: Identify Business Need.- 6.2.2 Step 2: Outline Requirements and High Level Design.- 6.2.3 Step 3: Plan and Staff the Project.- 6.2.4 Step 4: Run the Project.- 6.2.5 Success Factors and Elements of Risk.- 6.2.6 A Final Look at the Case Study.- 6.2.7 Wrap Up.- 6.3 Lessons Learned and Design Advice.- 6.3.1 Lessons Learned.- 6.3.2 Best Practices.- 6.4 Summary.- 6.4.1 Key Messages.- 6.4.2 Where to Find More Information.- 6.4.3 What's Next.- 7 The Future Perspective.- 7.1 An Optimistic and a Pessimistic View.- 7.2 Emerging Specifications.- 7.2.1 SOAP Version 1.2.- 7.2.2 WSDL Version 1.2.- 7.2.3 UDDI Version 3.0.- 7.2.4 J2EE and Web Services.- 7.2.5 Business Process Execution Language for Web Services.- 7.2.6 Other Specification Work.- 7.3 Web Services and Grid Computing.- 7.3.1 Motivation for Grid Computing.- 7.3.2 What is a Grid?.- 7.3.3 Grid Services.- 7.3.4 A Services Execution Platform.- 7.3.5 A Few Grid Services Examples.- 7.3.6 Summary and Outlook.- 7.4 A Quick Look at the Semantic Web.- 7.4.1 The Semantic Web “Stack”.- 7.4.2 Resource Description Framework (RDF).- 7.4.3 Web Ontology Language (OWL).- 7.4.4 The Semantic Web and Web Services.- 7.4.5 Where to Find More Information.- 7.5 Concluding Thoughts.- 7.5.1 A Final Look at Specifications and Implementations.- 7.5.2 Coming Up.- 7.5.3 Web Services — Holy Grail or Déjà Vu?.- 7.5.4 Where to Find More Information.- 7.5.5 What's Next.- A Creating the Sample Applications.- A.1 Building the PremierQuotes Policy System.- A.1.1 Configuring a Cloudscape Environment.- A.1.2 Creating a New Database.- A.1.3 Creating the Project Structures in WebSphere Studio.- A.1.4 EJB-RDBMS Mapping Approaches.- A.1.5 Creating the Database Schema.- A.1.6 Generating Entity EJBs from the Database Schema.- A.1.7 Creating a WebSphere Server to Deploy the Application.- A.1.8 Binding the EJBs to the New Data Source.- A.1.9 Populating the Database with Sample Data.- A.1.10 Data for PremierQuotes Cloudscape Database.- A.2 Updating the PremierQuotes Policy System.- A.2.1 Completing the Entity EJB Implementations.- A.2.2 Creating the Session EJB.- A.2.3 Creating Value Objects to Return from the Session Bean.- A.2.4 Inserting the Business Logic.- A.2.5 Creating a Local EJB Reference to the Address Entity.- A.2.6 Deploying the Application.- A.2.7 Testing the New PremierQuotes Policy System.- A.3 Building the DirtCheap Policy System.- A.3.1 Creating the New Database.- A.3.2 Creating the Project Structure in WebSphere Studio.- A.3.3 Copying a Database Schema.- A.3.4 Defming a New JDBC Data Source.- A.3.5 Deploying the New Enterprise Application.- A.3.6 Populating the Database with Sample Data.- A.3.7 Data for DirtCheap Insurance Cloudscape Database.- A.4 Updating the DirtCheap Policy System.- A.4.1 Building JDBC Wrappers.- A.4.2 Defming a JDBC Resource Reference.- A.4.3 Testing the New DirtCheap Insurance Policy System.- A.5 Configuring the WebSphere SDK for Web Services.- A.5.1 Setting up the Command Line Environment.- A.5.2 Updating the Server Classpath.- A.5.3 Changing the Default Classloading Behavior.- A.5.4 Resolving Problems with the Default UDDI Data Source.- A.5.5 Changing Java 2 Security Privileges for Libraries.- A.5.6 Configuring the Application Server.- A.5.7 Installing the Universal Test Client.- A.5.8 Script to Remove JDBC Providers.- B Java to XML Mapping Reference.- B.1 Apache SOAP 2.3 Mappings.- B.2 JAX-RPC Mappings.- C Appendix C#.- C.1 Overview to Building.NET Web Service Clients.- C.2 Developing rpc/encoded Clients in C#.- C.3 Developing document/literal Clients in C#.- Sources of Information.- References.- Trademarks.- Copyright Notices.

Customer Reviews

Average Review:

Write a Review

and post it to your social network


Most Helpful Customer Reviews

See all customer reviews >