RAD Review
RAD Development Tools
Perspectives and Editors
Server Configurations
Debugging Tools
Project Properties
Web Services Basics
Service-Oriented Architecture (SOA)
What are Web Services?
Web Services Advantages
Interactions and Components
Web Services Standards: XML, SOAP, WSDL and UDDI
Web Services Interoperability (WS-I)
Java Web Services Developer Pack (Java WSDP)
RAD: Web Service Development
Development Approaches
Runtime Environments: IBM SOAP, Apache Axis and IBM WebSphere
WS-I Compliance
Creating a Web Service from a JavaBean
Exposing a Stateless Session Bean as a Web Service
Creating an Axis Web Service
Generated Files
Testing the Web Service
Defining Deployment: webservices.xml, ibm-webservices-bnd.xmi and ibm-webservices-ext.xmi
Editing WSDL
Using the Web Services Explorer
SOAP
SOAP Processing Model
SOAP Messages
SOAP Message Elements (Envelope, Header, Body and Fault)
Communication Styles (Document Style & RPC Style)
Encoding
Java/SOAP Mappings
SOAP Bindings
Error Handling
SOAP Implementations
RAD TCP/IP Monitor
What is the TCP/IP Monitor?
TCP/IP Monitor Configuration
Controlling the Monitor
Using the TCP/IP Monitor View
Examining Requests and Responses
Examining SOAP Messages
WSDL
What is WSDL?
Java/WSDL Mapping
Abstract vs. Concrete Descriptions
WSDL Document Structure
WSDL Elements (Types, Ports, Services, Messages, Operations and Port Types)
Bindings and Extensibility Elements
WSDL Style/Use
Service and Port Definitions
Binding to a Service (Early vs. Late Binding)
UDDI
UDDI Overview
Registries
UDDI Interactions
UDDI Data Model
Data Types: businessEntity, businessService, bindingTemplate and tModel
UDDI4J
UDDI Clients
RAD: Web Services Explorer
Overview of the Publishing Process
Web Services Explorer Functions
Launching the Web Services Explorer
Accessing a UDDI Registry
Publishing a Business Entity, Business Service and Service Interface
Locating Web Services
JAX-RPC
JAX-RPC Overview (JSR 101)
Why Use JAX-RPC?
JAX-RPC Model
Service Endpoint Definition
Development Steps
The ServiceLifeCycle Interface
Service Deployment
Java/XML and XML/Java Mappings
Web Service Clients (Static Stub, Dynamic Proxy and Dynamic Invocation Interface)
The javax.xml.rpc.Service Interface
Handlers
Data Type Mapping
JAX-RPC Implementations
RAD: Web Services Client Development
Web Service Client Wizard
Generating a Proxy
Client Types
Generating Sample JSPs
Testing the Proxy
Generated Files
Using the Generated Proxy
Adding Service Reference Entries
Axis
History of Axis
Axis Engine
Axis Framework
Handler Chains
Axis Services
Deployment Options (JWS and WSDD)
Mapping Tools (Java2WSDL and WSDL2Java)
Generated Files
Axis Development Process
Handlers
Axis Clients
Custom Type Mapping
TCP Monitor Tool (tcpmon)
Web Services for J2EE
Web Services for J2EE Architecture (JSR 192)
Port Definition
Managing Ports
Requirements for Exposing Session Beans and Java Classes
Service Implementation Bean Lifecycle
Container Responsibilities
Web Services Deployment Descriptor (webservices.xml)
JAX-RPC Mapping
Client Development
Service References
Security
WebSphere Support
Application Assembly and Packaging
J2EE Deployable Units
Assembly Process
J2EE Modules
Assembling J2EE Applications
Packaging Checklist
Deployment Descriptor Elements (EJB, Web, Connector, Client and Application)
IBM Extensions and Bindings
Web Services Security Concepts
Web Service Security Risks
Encryption and Decryption
Cryptography
Certificates
Digital Signatures
Security: Message Level vs. Transport Level
SSL/TLS
WS-Security
Defining Web Services Security
WebSphere Security Model for Web Services
WS-Security Authentication
Enabling Authentication
Message Integrity Using XML Signatures
Configuring Integrity
WS-Security Confidentiality
Configuring Confidentiality
Deploying Web services in WebSphere Application Server
WebSphere Architecture
WebSphere Administrative Console
Web Services Support in WebSphere
Creating Required Resources
Deploying a Web Service to WebSphere Application Server
Managing Deployed Applications
Emerging Technologies
Web Services Flow Language (WSFL)
Web Services Inspection Language (WS-Inspection )
Relationship between UDDI and WSIL
WSIL4J
Java API for XML Registries (JAXR)
Java Architecture for XML Binding (JAXB)
Java API for XML Messaging (JAXM)
WSIF
JMS Application Development
JMS Capabilities and Messaging Styles
JMS Interactions and Participants
JMS Runtime Environment
JMS Application Steps
Message-Driven Beans
RAD JMS Support
Configuring JMS Resources
JMS Deployment
JMS and Transactions
SOAP Over JMS
Why Use SOAP Over JMS?
Communication Styles
Using Queues and Topics
Web Service Development Process
Web Services Wizard
Generated Resources
Generated WSDL
Using the Endpoint Enabler to Enable SOAP/JMS
SOAP Messages with Attachments
The Need for SOAP Attachments
Attachments vs. Encoding
What is MIME?
MIME Header Fields
Multipart/Related Content Type
SOAP Message Package
Referencing Attachments
Related Java APIs
JAX-RPC Mappings: MIME to Java
javax.activation.DataHandler
WSDL MIME Binding
WebSphere Support
Appendix: XML Basics
The History of XML
XML Documents: Markup and Data
XML Document Components and Structure
XML Tags
Well-Formed XML
Elements and Attributes
Names and Name Tokens
Namespaces
Entities and Escape Sequences
CDATA Sections and Comments
Appendix: Namespaces
The Need for Namespaces
Declaring Namespaces
Qualified Names
Namespace Scoping
Default Namespaces
Appendix: Validating XML With DTDs
Approaches to Validation
DOCTYPE Declaration
Element Declarations and Element Content
Modifiers
Mixed Content
Attribute Declarations
Entities
Notation Declarations
Validating vs. Non-Validating Parsers
Appendix: Validating XML With XML Schemas
XML Schema Structure
Element Declarations
Built-in Data Types
Creating and Extending Types
Defining Restrictions
List Types and Union Types
Anonymous Types
Complex Types
Occurrence Constraints
Defining Attributes and Attribute Groups
Global Elements & Attributes
Declaring Mixed Content