If you are a J2EE developer, you can gain complete mastery over Web Services development in the open source platform after taking this course. This course will teach you the theory behind XML schema, WSDL and SOAP. It will proceed to teach you various Java specifications that cover Web Services development (JSR 101 and 109).
All the labs are done using Eclipse and WTP 1.0.2.
You Will Learn How To:
After completing this course, the student should be able to:
Confidently design XML schema and WSDL.
Tell the difference between different SOAP styles (document literal, RPC literal etc.)
Implement a Web Service using Eclipse/WTP.
Write a Web Services client using standard Java specifications.
Register a service in a public or private UDDI registry.
Secure web services.
Learn the interoperability issues especially with the .NET platform.
Course Prerequisites
Java programming. Beginner level knowledge of J2EE and XML.
Who Should Attend?
J2EE developers who will like to learn about how to build a Web Services based solution. This class covers many advanced topics that will help them build a solution appropriate for a large business.
Course Outline
1. Introduction To Eclipse
Overview
The Eclipse Platform
Eclipse 3.0 Java IDE
Views, Perspective and Editor Areas
Basic Operations with Eclipse Views and Perspectives
The Java Perspective
The Debug Perspective
Navigator View
Build and Validation
Templates and Code Completion
Searching
WTP
The Tomcat Servlet and JSP Web Container
The JBoss Application Server
Summary
2. J2EE Overview
Objectives
Goals of Enterprise Applications
What is Java?
What is J2EE?
Role of Application Server
The J2EE Specifications
J2EE Components
What is a Servlet?
What is a JSP?
What is an EJB?
Model-View-Controller Architecture
MVC An Example
Web Client
Applet
Application Client
J2EE Vendor Specifications
Containers
J2EE Blueprint
Summary
Reference
3. Introduction to Web Services
Objectives
Service Oriented Architecture (SOA)
Basic SOA
SOA Runtime Implementation
SOA Runtime Implementation
SOA
Web Services
Typical Development Workflow
Advantages of Web Services
Web Services Business Models
Case Study: Internal System Integration
Case Study: Business Process Externalization
SOAP
UDDI
Web Services Description Language (WSDL)
Web Services Invocation Framework (WSIF)
WSIF and WSDL
Web Services Interoperability (WS-I)
WS-I Deliverables
Web Services Support in Eclipse/WTP
Summary
4. XML Programming
Objectives
XML Overview
Data and Document Structure
An Employee Document
Tags
First XML Document
Markup Languages
What is XML ?
Why XML?
An Example of XML Document
Well-formed vs. Valid XML Document
Enforcing Validity: DTDs
Presentation Style
Sections of an XML Document
XML Elements
Nesting and Hierarchy of XML Elements
Tag Attributes
Naming Rules
Namespaces
Using Namespaces
Java API for XML
The XML Example
Example SAX Handler
Example: Begin Parsing
Once Again With Namespace
Using DOM to Parse
With Namespace Enabled
Example: Build DOM Document
Example: Save DOM Document in a File
Summary
5. XML Schema Basics
Objectives
What is XML Schema?
Creating a Schema File
Defining a Simple Element
Defining a Complex Element
Defining Element Attributes
Referring to an Element From Another Element
Defining Abstract Data Types
Adding Restrictions
Referring to a Schema from a XML Document
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. Simple Object Access Protocol (SOAP)
Objectives
SOAP Overview
SOAP In Protocol Stack
SOAP Components
Message Envelope
Message Envelope - Headers
SOAP HTTP Request Example
SOAP HTTP Response Example
Header Attributes
SOAP Body
SOAP Fault
Communication Style
RPC/Encoded Style
RPC/Literal Style
Document/Literal Style
Document/Literal Wrapped Style
Details of the Wrapped Style
Summary
8. JAX-RPC (JSR 101)
Objectives
JAX-RPC Overview
JAX-RPC Framework
Java to XML Data Conversion
Main Goals of JAX-RPC
Supported Protocols
JAX-RPC Supported Types
JAX-RPC Server
Server Side Artifacts
Generating Server Artifacts
JAX-RPC and WS-I
JAX-RPC Clients
JAX-RPC Client Model
JAX-RPC Client - Static Stub
Generating Client Side Code
Client Programming Model
JAX-RPC Client Dynamic Proxy
Dynamic Invocation Interface
JAX-RPC Type Mapping
Mapping XML Types to Java Types Simple Types
Mapping XML Types to Java Types Simple Types
Mapping XML Types to Java Types Simple Types
Mapping XML Types to Java Types Complex Types
Complex Type Mapping - Example
Mapping XML Types to Java Types Arrays
Mapping Arrays - Example
Mapping abstract WSDL definitions to Java
Mapping concrete WSDL types to Java types
Mapping Concrete WSDL Types to Java Types
Java to WSDL/XML Mapping
Mapping Tools
Summary
9. Web Services for J2EE
Objectives
Introduction
JSR-109 - Motivation
When to Use JSR 109?
JSR-109 Roles
The Server Programming Model
The Service Endpoint Interface
Web Module Service
Accessing the Service
The Mapping File
Implementation Class Details
Lifecycle Callback
EJB Module Service
The Client Programming Model
Developing a Client
The Service Interface
Writing a Client
Handlers
Handlers Example(Server-Side)
Handlers Example(Client-Side)
Summary
10. 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
11. Introduction to UDDI
Objectives
UDDI Overview
UDDI in Web Services Architecture
UDDI
Businesses and Services in UDDI
Static and Dynamic Web Services
UDDI Registry Structure
UDDI Registry Structure -tModel
UDDI Registry Structure
UDDI Interactions
UDDI and Eclipse
Summary
12. Error Handling
Introduction
Fault
Designing Faults
System Problems
Business Rule Violation
13. 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
14. 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
15. Introduction to Service Oriented Analysis & Design (SOAD)