WA1652 Modern Web Service Development Using Eclipse Training and Courseware Course Outline
1. Introduction To Eclipse
Overview
The Eclipse Platform
Views, Perspective and Editor Areas
Basic Operations with Eclipse Views and Perspectives
The Java Perspective
The Debug Perspective
WTP
The Tomcat Servlet and JSP Web Container
The JBoss Application Server
Java Primer
XML Primer
Summary
2. Introduction to Web Services
Objectives
A Conceptual Look at Services
Defining Services
Service Communication Analogy
Three Key Service Questions
Connecting the Dots
SOA Runtime Implementation
What is a Web Service?
Enterprise Assets as Services
Typical Development Workflow
Advantages of Web Services
Web Service Business Models
Example: Internal System Integration
Example: Business Process Externalization
Binding via SOAP
SOAP in Protocol Stack
SOAP Structure
SOAP Message Architecture
Applying SOAP
Interface via WSDL
WSDL Structure
Applying WSDL
Locating a Service
UDDI Overview
UDDI Terminology
UDDI Structure
Applying UDDI
WS-I Overview
WS-I Deliverables
Summary
3. Basic XML Schemas
What is XML Schema ?
Goals of Schema
Converting DTDs to Schema
Recall: Namespaces
The equivalent schema
Sample instance document
Documents Needed
XML Schema Namespaces
Link Documents to Schemas
Inline element declarations
XSchema Data Types
XSchema Type Definitions
XSchema Simple Data Types
Primitive Data Types
Simple Types
Facet Restrictions on Element Content
Using the Facet
More Samples
Define Simple Element Type
Element Declaration
Element Occurrence Indicators
Complex Type
Attribute Declaration
Attribute Declarations
Occurrence of Attributes
Value Constraints on Attributes
Sequence Element
Element Choices
Express any order
Annotations
4. Schema Configuration Management
Objectives
Evolving Schema
Managing XML Schema
Management Techniques
Internal Techniques
Schema Version Attribute
Adding An Attribute
Namespace Change
File-Based Mechanisms
External
Which To Use?
Summary
5. JAXB
Objectives
Overview of JAXB
Advantages of JAXB
XML Parsing APIs
Validation using Schemas
Java Binding
Using JAXB
Step 1: Binding XML to a Schema
Binding compiler
Interfaces and Classes
Implementing Classes
Step 2: Compiling the files
Step 3: Use the generated files
Unmarshal
To Unmarshal
Retrieving data
Validation
ObjectFactory
Generating XML from JAXB
Step 1: Bind the schema
Step 2: Create the content tree
Step 3: Marshall the content tree
Marshall the content tree
Validation
Updating an XML
Customizing your application
Advantages
Summary
6. Web services Description Language (WSDL)
Objectives
WSDL Overview
WSDL Document Tags
WSDL Namespaces
Sample WSDL Document Structure
<definitions>
<import>
<types>
<message>
<portType>
<operation>
One-way <operation>
Request-Response <operation>
Solicit-Response <operation>
Notification <operation>
Modeling Simple Operation
Modeling Complex Operation
Modeling Complex Message
<binding>
More on <binding>
<binding> Syntax
SOAP Binding Example
<service> and <port>
More on <port>
WSDL SOAP Binding Extensions
soap:binding
soap:operation
RPC or Document Style?
WSDL API for Java
Summary
7. Configuration Management
Objectives
SOA Configuration Challenges
Service Versioning
XML Schema Versioning
XML Schema Versioning Guidelines
WSDL Versioning
WSDL Versioning (continued)
Standards Work
Vendor Support
Configuration Management Tips
Configuration Management Gotchas
Summary
8. Simple Object Access Protocol (SOAP)
Objectives
SOAP Overview
SOAP in Protocol Stack
SOAP Components
SOAP HTTP Request Example
SOAP HTTP Response Example
Message Envelope
The Header Element
Header Attributes
SOAP Body
SOAP Fault
Communication Style
RPC/Encoded Style
RPC/Literal Style
Enabling RPC Styles
Document/Literal Style
Document/Literal Wrapped Style
Details of the Wrapped Style
Enabling Document Literal Style
Summary
9. JAX-WS Introduction
Objectives
JAX Attack
JAX-WS Origins
JAX-WS Architecture and Tools
Providing a Service
Service Source (Option 1) ...
Service Source (Option 1)
Service-enabling Java
Service Source (Option 2)
Calling a Service
Client Source (Option 1)
Client Source (Option 2) ...
Client Source (Option 2)
Advanced Features
Summary
10. JAX WS 2.1 Details
Objectives
JAX-WS
JAX-WS Scope
JAX-WS and JAXB
JAX-WS Implementers
WSDL-to-Java Mapping
WSDL Files
<definitions>
<portType>
<types>
<operation>
<operation> parameters
<fault>
Customization Binding
Java-to-WSDL Mapping
The Implementation Class
Package Name
Class Name
Methods and Types
JAXB Usage
Exceptions
Available API
Client API - Service
Service
Using Service
Dispatch
Provider
WebServiceContext
Exception Classes
WebServiceFeature
Annotation Support
JAX-WS Annotations
The Handler Framework
Handler Invocation
Handler Types
Using Handlers
Summary
11. JAX-WS Bindings
Objectives
Blessed be the data that binds
JAXB 2.0 Data Binding
The JAXB Data Binding Process
Java Representation of XML Schema
Default Data Type Bindings
Data Binding Factories
Code-first Services
Schema-first Services
Schema-first Binding
Schema-first Advantages
Customizing JAXB Bindings
JAXB customization concepts
Inline and External Customizations
Passing Customization Files to the JAXB Binding Compiler
Scope, Inheritance, and Precedence
Customization Syntax
Global Bindings Declarations
Schema Binding Declarations
Class Binding Declarations
Property Binding Declarations
<javaType> Binding Declarations
Typesafe Enumeration Binding Declarations
<javadoc> Binding Declarations
Customization Namespace Prefix
Tango - .Net Interoperability
Summary
12. Declarative service configuration with Java 5
Configure Eclipse for Annotations
Start-from-Java
JSR-181 defines eight annotations
Core Annotations
Hello Word Example
@WebService Annotation Parameters
@WebMethod Annotation Parameters
@OneWay Annotation
@WebParm Annotation Parameters
@WebResult Annotation Parameters
More Annotations
@HandlerChain Annotation Parameters
@SoapBinding Annotation Parameters
Advanced Hello Word Example
Adv. Hello Word Example Cont.
WSDL Generated
WSDL Generated Cont.
Summary
13. JBoss v4 Support for Web Services
Introduction
Service in a Web Container
Example Java Class
Generated Artifacts
JSR 109 Components
Using wstools
Using wstools Server Side
Using wstools Sample config.xml
Web Services Deployment Descriptor
Example: webservices.xml
The Generated WSDL File
The WSDL Editor
Service in a EJB Container
Web Services Deployment Descriptor
Client Development
Using wstools sample config.xml
Generated Artifacts
The Service Reference
14. Error Handling
Overview
Introduction
Fault
Designing Faults
System Problems
Business Rule Violation
Summary
15. Web Services Security
The Challenges
Public Key Infrastructure (PKI)
Digital Signature
Certificates
Overview of Web Services Security
SOAP Message Security
Message Integrity
Message Confidentiality
Authentication
Transport Level Security
16. Web Services Interoperability (WS-I)
Introduction
Goal
What Comes out of WS-I?
Profiles
Basic Profile 1.1 Highlights
Simple SOAP Binding Profile 1.0 Highlights
Basic Security Profile 1.0
.NET Interoperability
Appendix A. Best Practices
Architecture Best Practices
Data Format Best Practices
Security Best Practices
Programming Model Best Practices