Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards) Michael P. Papazoglou (INFOLAB/CRISM, Tilburg University, The Netherlands) (Image Golden Pagoda Kyoto) Table of Contents I. BASICS 1. Introduction to Web Services 1. Introduction 2. The Concept of Software as a Service 3. What are Web Services? 4. Web services: Types and Characteristics 4.1 Types of Web Services 4.2 Service Characteristics 4.2.1 Well-defined Interfaces 4.2.2 Functional and Non-Functional Properties 4.2.3 State Properties 4.2.4 Loose Coupling 4.2.5 Complexity and Granularity 4.2.6 Synchronicity 4.2.7 Service Usage Context 5. Services, Interfaces and Components 6. The Service Oriented Architecture (SOA) 6.1 Roles of Interaction in the Service Oriented Architecture 6.2 Operations in the Service Oriented Architecture 6.2.1 Publish 6.2.2 Find 6.2.3 Bind 6.3 SOA: an Example Involving Aggregated Services 6.4 Layers in an SOA 7. The Web Services Technology Stack 8. Quality of Service 9. Web Services Interoperability 10. Web Services versus Components 11. Impact and Shortcomings of Web Services 12. Summary
II. ENABLING INFRASTRUCTURE 2. Distributed Computing Infrastructure 1 Distributed Computing and Internet protocols 1.1 Internet Protocols 1.1.1 The Open Systems Interconnection Reference Model 1.1.2 The TCP/IP Network Protocol 1.2 Middleware 2 The Client/Server Model 3 Characteristics of Inter-Process Communication 3.1 Messaging 3.2 Message Destinations and Sockets 3.3 Synchronous and Asynchronous Forms of Message Communication 3.3.1 Store and Forward Messaging 3.3.2 Publish/Subscribe Messaging 4 Synchronous Forms of Middleware 4.1 Remote Procedure Calls (RPCs) 4.2 Remote Method Invocation (RMI) 5 Asynchronous Forms of Middleware 5.1 Event-Driven Processing Mechanisms 5.2 Point-to-point Queuing 6 Request/Reply Messaging 7 Message Oriented Middleware 7.1 Integration brokers 7.2 The Java Message Service (JMS) 8 Transaction Oriented Middleware 9 Summary 3. Brief Overview of XML 1 XML Document Structure 1.1 XML Declaration 1.2 Elements 1.3 Attributes 2 URIs and XML Namespaces 3 Defining Structure in XML Documents 3.1 The XML Schema Definition Language 3.2 The XML Schema Document 3.3 Type Definitions, Element and Attribute Declarations 3.3.1 Element Declarations 3.3.2 Attribute Declarations 3.4 Simple Types 3.5 Complex Types 4 XML Schema Reuse 4.1 Deriving Complex Types
4.1.1 Complex Type Extensions 4.1.2 Complex Type Restrictions 4.1.3 Polymorphism 4.2 Importing and Including Schemas 4.2.1 Including Schemas 4.2.2 Importing Schemas 5 Document Navigation and Transformation 5.1 The XML Path Language 5.2 Using XSLT to Transform Documents 6 Summary III. CORE FUNCTIONALITY & STANDARDS 4. SOAP: Simple Object Access Protocol 1 Inter-Application Communication and Wire Protocols 1.1 SOAP as a Wire Representation 2 SOAP as a Messaging Protocol 3 Structure of a SOAP Message 3.1 SOAP Envelope 3.2 SOAP Header 3.2.1 SOAP Intermediaries 3.3 SOAP Body 4 The SOAP Communication Model 4.1 PRC-style Web Services 4.2 Document (Message)-style Web Services 4.3 Communication Modes and Massaging Exchange Patterns 5 Error Handling in SOAP 6 SOAP over HTTP 7 Advantages and Disadvantages of SOAP 8 Summary 5. Describing Web Services 1. Why is a Service Description Needed? 2. WSDL: Web services Description Language 2.1 Web service Interface Definition 2.2 WSDL Implementation 2.3 WSDL Message Exchange Patterns 3. Using WSDL to Generate Client Stubs 4. Non-functional Descriptions in WSDL 5. Summary 6. Registering and Discovering Web Services 1 Service Registries 2 Service Discovery
3 UDDI: Universal Description, Discovery, and Integration 3.1 UDDI Data Structures 3.1.1 Service Provider Information 3.1.2 Web Service Information 3.1.3 Web Service Access Information 3.1.4 The Publisher Assertion Structure 3.2 WSDL to UDDI Mapping Model 3.2.1 Publishing Service Interfaces and Service Bindings 3.2.2 Publishing Service Implementations 3.2.3 Summary of WSDL to UDDI Mapping Model 3.3 The UDDI Application Programming Interface 3.3.1 Enquiry API 3.3.2 Publishing API 3.4 Querying the UDDI Model 3.5 UDDI Usage Model and Deployment Variants 4 Summary IV. NOTIFICATION & SERVICE ORIENTED ARCHITECTURES 7. Reliable Messaging and Notification 1. Reliable Messaging 1.1 Definition and Scope of Reliable Messaging 1.2 WS-Reliable Messaging 1.2.1 Structure of Reliable Messaging 1.2.2 Ws-Messaging Examples 2. Web Services and Stateful Resources 3. Introduction to the WS-Resource Framework 3.1 WS-Addressing 3.2 WS-Resource 3.3 Resource Properties 3.4 Resource Lifecycle 3.5 Service Groups 4. Notification 4.1 Peer-to-peer Notification 4.1.1 WS-BaseNotification Interfaces 4.1.2 Subscription Filtering 4.2 Notification Topics 4.3 Brokered Notification 5. Eventing 6. Summary 8. Service-Oriented Architecture 1. What is a Software Architecture 1.1 System Quality Attributes 1.2 Common Architectural Concerns
2. The Service Oriented Architecture Revisited 3. Service Roles in an SOA 4. The Enterprise Service Bus 4.1 The Event-Driven SOA 4.2 Key Capabilities of an Enterprise Service Bus 4.3 Elements of an Enterprise Service Bus Solution 4.3.1 Integration Brokers 4.3.2 Application Servers 4.3.3 Business Process Management 4.3.4 Enterprise Service Bus Transport-level Choices 4.4 Connectivity and Translation Infrastructure 4.5 Leveraging Legacy Assets 4.6 Scalability Issues in an Enterprise Service Bus 4.7 Integration Examples using an Enterprise Service Bus 5. The Extended Service Oriented Architecture 6. Summary V. PROCESES, WORKFLOWS & SERVICE TRANSACTIONS 9. Web Services and Workflows 1. Business Processes and their Management 1.1 Characteristics of Business Processes 2. Workflows 3. Business Process Integration and Management 4. Cross-enterprise Business Processes and Web Services 5. Service Composition Meta-model 5.1 Flow Modelling Concepts 5.2 Composing Web Services 6. Web services Orchestration and Choreography 6.1 Orchestration versus Choreography 7. The Business Process Execution Language (BPEL) 7.1 BPEL Structure 7.1.1 Abstract and Executable Processes 7.1.2 Message Flow 7.1.3 Control Flow 7.1.4 Data Flow 7.1.5 Process Orchestration 7.1.6 Message Correlation 7.1.7 Fault Handling 7.1.8 Event Handling 7.2 A Simple Example in BPEL 8. Choreography 8.1 Uses of Choreography Description 8.2 Web Services Choreography Description Language 9. Other Initiatives and Languages 10. Summary
10. Web Services Transactions 1. Introduction: what is a transaction? 1.1 Properties of Transactions 1.2 Concurrency Control Mechanisms 2. Distributed Transactions 2.1 Distributed Transaction Architectures 2.2 Two-Phase Commit Protocol Phase I: Preparation Phase II: Commitment/Abortion 3. Nested Transactions 3.1 Closed Nested Transactions 3.1.1 Two-phase Commit Protocol 3.1.2 Concurrency Control 3.2 Open Nested Transactions 3.2.1 Transactional Workflows 3.2.2 Recovery Mechanisms 4. Transactional Web Services 4.1 Definitions and General Characteristics 4.2 Operational Characteristics of Business Transactions 4.3 Business Transaction Types 4.3.1 Atomic Actions 4.3.2 Long-duration Transactions 4.4 Consensus Groups and Interposition 4.5 States of Web Services Transactions 4.6 The Need for a Business Transaction Framework 5. Business Transaction Protocol (BTP) 5.1 Conceptual Model 5.2 Business Transaction Types 5.3 Business Transaction Coordination 5.4 BTP and Web Services 6. Web Services Coordination and Transaction 6.1 WS-Coordination 6.1.1 Activation Service 6.1.2 Registration Service 6.1.3 Typical Message Exchange between two Applications 6.1.4 Completion 6.2 WS-Transaction 6.2.1 Atomic Transaction 6.2.2 Business Activity 7. Web Service Composite Application Framework (WS-CAF) 7.1 Web Service Context (WS-CTX) 7.2 Web Service Coordination Framework (WS-CF) 7.3 Web Services Transaction Management (WS-TXM) 8. Summary
VI. SERVICE SECURITY & POLICIES 11. Web Services Security 1. Web Services Security Considerations 1.1 Security Threats for Web Services 1.2 Countermeasures 2. Network Level Security Mechanisms 2.1 Firewalls 2.1.1 Firewall Architectures 2.2 Intrusion detection systems and vulnerability assessment 2.3 Securing Network Communications 2.3.1 Symmetric Encryption 2.3.2 Asymmetric Encryption 2.3.3 Digital Certificates and Signatures 3. Application-level Security Mechanisms 3.1 Authentication 3.1.1 Protection Domains 3.1.2 Web Resource Protection 3.2 Authorization 3.3 Integrity and Confidentiality 3.4 Non-repudiation 3.5 Auditing 3.6 Widely Used Authentication Protocols 3.6.1 Secure Sockets Layer (SSL) 3.6.2 Internet Protocol Security (IPSec) 3.6.3 Kerberos 3.7 Security Infrastructures 3.7.1 Public Key Infrastructure (PKI) 3.7.2 Directory Services 4. XML Trust Services Overview 4.1 XML Signature 4.2 XML Encryption 4.3 XML Key Management Specification (XKMS) 4.3.1 XML Key Information Service Specification (X-KISS) 4.3.2 XML Key Registration Service Specification (X-KRSS) 4.4 Security Assertions Markup Language 4.5 XML Access Control Markup Language 5. Security for Web Services 5.1 Web Services Application-level Security Challenges 5.2 Web Services Security Roadmap 5.3 Web Services Security Model 5.4 A Use Case for Web Services Security 5.5 Web Services Security (WS-Security) 5.5.1 Integrating Web Services Security in Service Oriented Architectures 5.5.2 WS-Security Features 5.6 Managing Security Policies 5.7 Managing Secure Conversations 5.8 Managing Trust
5.9 Managing Privacy 5.10 Managing Federated Identities 5.11 Managing Authorization 6. Summary 12. Policies and Agreements 1. What are Policies and why are they Needed? 2. Types of Policies 3. Policies and Web Services Standards 4. WS-Policy Framework 4.1 WS-Policy Overview 4.1.1 Policy Expressions 4.2 Policy Assertions 4.3 Combining and Comparing Policies 4.3.1 Merging Policies 4.3.2 Policy Intersection 4.4 Policy Attachments 4.4.1 XML/WSDL Policy Attachment 4.4.2 External Policy Attachment 5. Service Agreements 5.1 WS-Agreement Structure 5.2 Conceptual Agreement Model 5.3 Agreement Language 6. Summary VII. SERVICE SEMANTICS & BUSINESS PROTOCOLS 13. Semantics and Web Services 1 The semantic interoperability problem 2 The Role of Metadata 3 Resource Description Framework 3.1 The RDF Data Model 3.2 RDF Syntax 3.3 The RDF Schema 4 Richer Schema Languages 5 WS-Metadata Exchange 6 Summary 14. Business Protocols 1 The Supply Chain Business EcoSystem 2 Semantic Problems at the Business Process-Level 3 Business Standards and Protocols 3.1 Electronic Data Interchange (EDI) 3.2 RosettaNet
3.2.1 The RosettaNet Business Architecture 3.2.2 RosettaNet and Web Services 3.3 The Electronic Business XML Initiative 3.3.1 ebxml Reference Architecture 3.3.2 ebxml Functional Phases 3.3.3 ebxml and Web Services 4 XML in Vertical Organizations 5 Summary VIII. SERVICE DESIGN & DEVELOPMENT 15. Web Services Development Lifecycle 1. Why is a Web Services Development Methodology Needed? 2. Web Services Development and Related Methodologies 3. System Development Life Cycle 4. Characteristics of Service-oriented Design and Development 5. Web Services Development Life Cycle Methodology Baseline 6. Factors for Service-oriented Design and Development 7. Service-oriented Design and Development Principles 7.1 Service coupling 7.2 Service cohesion 7.3 Granularity concerns 8. Phases of the Service-oriented Design and Development Methodology 8.1 The Planning Phase 8.2 The Analysis Phase 8.2.1 Process Identification 8.2.2 Process Scoping 8.2.3 Business Gap Analysis 8.2.4 Process Realization Analysis 9. The Service Design Phase 9.1 Service Design Concerns 9.1.1 Managing Service and Component Granularity 9.1.2 Designing for Service Reusability 9.1.3 Designing for Service Composability 9.2 Specifying Services 9.2.1 Structural and Behavioural Service Specification 9.2.2 Service Programming Style 9.2.3 Service Policy Concerns 9.3 Specifying Business Processes 9.3.1 Describing the Business Process Structure 9.3.2 Describing Business Roles 9.3.3 Non-Functional Business Process Concerns 10. The Service Construction Phase 10.1 Constructing a Service: The Provider Perspective 10.2 Constructing Services: The Requester Perspective 11. The Service Test Phase
12. The Service Provisioning Phase 12.1 Service Governance 12.2 Service Certification 12.3 Service Metering and Rating 12.4 Service Billing Strategies 13. The Service Deployment Phase 14. The Service Execution Phase 15. The Service Monitoring Phase 16. Final Words about the Methodology 17. Summary IX. SERVICE MANAGEMENT 16. Web Services Management 1. Managing Distributed Systems 1.1 Purpose of Distributed Systems Management 1.2 Distributed Management for Web Services 1.3 Quality Requirements 2. Enterprise Management Frameworks 3. Conceptual Management Architecture 3.1 Management Capabilities and Functions 4. Standard Distributed Management Frameworks 4.1 Simple Network Management Protocol 4.2 Web-based Enterprise Management/Common Information Model 5. Features of Web Services Management 6. Web Services Management 6.1 Service Management Approaches 6.2 Management Infrastructure Services 6.3 Connecting Service Management and Application Channels 7. The Web Services Distributed Management Initiative 7.1 Management Using Web Services (MUWS) 7.2 Management of Web Services (MOWS) 8. Summary X. EMERGING TRENDS 17. Recent Trends and Developments 1. Grid Computing 1.1 A Brief Overview of Grid Computing 1.2 Features and Requirements of Grid Systems 1.3 Grid Application Considerations 1.4 Grid Services 2. Mobile Computing 2.1 Elements of Mobile Infrastructure
2.2 Wireless Protocols and Initiatives 2.2.1 Wireless Application Protocol 2.2.2 I-Mode 2.3 Mobile Web Services 2.3.1 Mobility Considerations 2.3.2 Field Web services 2.4 Mobile Web Services Standard Initiatives 2.4.1 The Open Mobile Alliance Initiative 2.4.2 Mobile Web Services Framework 3. Summary