Topics
 
  • XML schema design
  • SOAP
  • WSDL
  • JAX/RPC
  • JSR 109
  • UDDI
  • WS-Security
  • Interoperability issues
  • Deployment in WebSphere
What you will learn
  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 RAD v7.0.
  • 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.
Audience
  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.
Prerequisites
  Java programming. Beginner level knowledge of J2EE and XML.
Duration
  Five days
Lab Setup Guide

Outline for Web Services Development Using Rational Application Developer - RAD - v7.0 Training

Chapter 1 - Introduction to Rational Application Developer (RAD) v7.0

  • The RAD 7 Product
  • Eclipse Platform
  • Rational Web Developer
  • Rational Application Developer
  • Key Features in RAD v7.0
  • Views, Perspective, and Editor Areas
  • Basic Operations with RAD Views and Perspectives
  • The Java Perspective
  • The Debug Perspective
  • Navigator View
  • Package Explorer
  • Outline View
  • Task and Problems View
  • Build and Validation
  • Import and Export Project
  • Code Completion, Templates and Snippets
  • Searching
  • Setup Compiler Class Path
  • JRE Switching
  • Refactoring
  • Changing Class Name
  • Changing Method Name
  • Changing Variable Name
  • Moving a Class to a Different Package
  • Extracting Code to a Method
  • Pull Up and Push Down Methods
  • Migrating Workspace from RAD v6 or WSAD v5.1.2
  • Project Interchange Feature
  • Migrating J2EE Applications
  • J2EE Migration Wizard
  • Summary  

Chapter 2 - J2EE Overview

  • Introduction
  • Why Do We Need J2EE?
  • J2EE Components
  • J2EE Technologies
  • Useful J2SE Technologies
  • Application Artifacts
  • J2EE Architecture
  • J2EE 1.4 Version Levels
  • J2EE Software Packaging
  • Deployment Descriptor
  • Enterprise Archive (EAR)
  • Web Modules and WAR
  • EJB Modules
  • Building Module Dependency

Chapter 3 - J2EE Programming Tools

  • Project Explorer
  • Servers View
  • The J2EE Perspective
  • The Web Perspective
  • Create an Enterprise Application
  • Setup Utility JAR
  • Create an EJB Project
  • Create a Web Project
  • Setup Dependent JAR Files
  • Create Server Instance and Server Configuration
  • Configure Server Instance
  • Add an Enterprise Application Project to the Test Server
  • Start and Stop the Server
  • Test a Servlet
  • Debug a Servlet
  • Test a JSP
  • Debug a JSP
  • Summary

Chapter 4 - Introduction to Web Services

  • 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
  • Typical Development Workflow
  • Advantages of Web Services
  • Web Service Business Models
  • Web Service Business Models
  • Example: Internal System Integration
  • Example: Business Process Externalization
  • Web Services Standards
  • 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

Chapter 5 - XML Programming

  • 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 v. Valid XML Document
  • Enforcing Validity: DTDs
  • Presentation Style
  • Sections of an XML Document
  • 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
  • Persisting XML
  • Summary

Chapter 6 - Introduction to Schema

  • What is an XML Schema?
  • Instance Documents
  • A Simple Instance Document
  • Creating a Schema File
  • Creating a Schema File
  • Defining a Simple Element
  • Defining a Complex Element
  • Defining Element Attributes
  • Referring to an Element From Another Element
  • Adding Restrictions
  • Putting It All Together
  • Putting It All Together
  • Referring to a Schema from an XML Document
  • Referring to a Schema from an XML Document
  • Global Elements vs. Local Elements
  • Summary

Chapter 7 - Web Services Description Language (WSDL)

  • WSDL Overview
  • WSDL Syntax Overview
  • Summary

Chapter 8 - Simple Object Access Protocol (SOAP)

  • SOAP Overview
  • SOAP in Protocol Stack
  • SOAP Document Components
  • Example SOAP Request Document
  • Example SOAP Response Document
  • The Element
  • The Element
  • The Element
  • SOAP Communication Style
  • Setting the Style in WSDL
  • RPC/Encoded Style
  • RPC/Literal Style
  • Document/Literal Style
  • Document/Literal Wrapped Style
  • Summary

Chapter 9 - JAX-RPC (JSR 101)

  • JAX-RPC Overview
  • JAX-RPC Framework
  • 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 (DII)
  • Dynamic Invocation Interface
  • JAX-RPC Type Mapping
  • 1. Mapping XML Types to Java Types: Simple Types
  • 1. Mapping XML Types to Java Types: Simple Types
  • 1. Mapping XML Types to Java Types: Simple Types
  • 1. Mapping XML Types to Java Types: Complex Types
  • Complex Type Mapping: Example
  • 1. Mapping XML Types to Java Types: Arrays
  • Mapping Arrays: Example
  • Schema Mapping Restrictions
  • Schema Mapping Restrictions
  • 2. Mapping Abstract WSDL Definitions to Java
  • 2. Mapping Abstract WSDL Definitions to Java
  • 2. Mapping Abstract WSDL Definitions to Java
  • 2. Mapping Abstract WSDL Definitions to Java
  • 3. Mapping Concrete WSDL Types to Java Types
  • 3. Mapping Concrete WSDL Types to Java Types
  • Java to WSDL/XML Mapping
  • Mapping Tools
  • Summary

Chapter 10 - Web Services for J2EE

  • Introduction
  • JSR-109: Motivation
  • When Do You Use JSR 109?
  • JSR-109 Roles
  • JSR-109 Roles
  • The Server Programming Model
  • The Service Endpoint Interface
  • Service Endpoint Interface - Example
  • Web Module Service
  • Web Module Service - Example
  • Web Module Port Component Definition - Example
  • Accessing the Service
  • The Mapping File
  • Mapping File - Example
  • Implementation Class Details
  • Lifecycle Callback
  • EJB Module Service
  • Session Bean Entry – Example
  • EJB Module Service
  • EJB Module Port Component Definition – Example
  • EJB Module Service
  • The Client Programming Model
  • Developing a Client
  • Service Reference – Example
  • The Service Interface
  • Service Entry in WSDL – Example
  • Writing a Client
  • Handlers
  • Handlers (Server-Side) - Example
  • Handlers (Client-Side) – Example
  • Summary

Chapter 11 - WebSphere V6.1 Support for Web Services

  • Introduction
  • Web Service Runtimes
  • Service in a Web Container
  • Example Java Class
  • Generated Artifacts
  • How Does the Wizard Generate All That?
  • Web Services Deployment Descriptor
  • Example: webservices.xml
  • webservices.xml Editor
  • The Generated WSDL File
  • The WSDL Editor
  • Service in an EJB Container
  • Generated Artifacts
  • Web Services Deployment Descriptor
  • Client Development
  • Generated Artifacts
  • The Service Reference
  • The Proxy Class
  • Summary

Chapter 12 - Error Handling

  • Introduction
  • Fault
  • Designing Faults
  • System Problems
  • Business Rule Violation
  • Summary

Chapter 13 - Web Services Security (WS-Security)

  • The Challenges
  • Public Key Infrastructure (PKI)
  • Digital Signature
  • Certificates
  • Overview of Web Services Security
  • SOAP Message Security
  • Message Integrity
  • Message Confidentiality
  • Message Confidentiality
  • Symmetric Encryption Example
  • Authentication Using Identity Token
  • Authentication
  • Transport Level Security
  • Audit Tracking
  • Audit Tracking
  • Identity Assertion Using SAML
  • SAML SOAP Example

Chapter 14 - Introduction to UDDI

  • 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 Interactions
  • UDDI in WebSphere
  • Summary

Chapter 15 - 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  

Chapter 16 - Introduction to Service Oriented Analysis & Design (SOAD)

  • Introduction to SOAD
  • Applying OOAD Principles
  • Encapsulation
  • Encapsulation in SOAD
  • Inheritance
  • Inheritance in SOAD
  • Polymorphism
  • Polymorphism in SOAD
  • Why OOAD Is Not Enough
  • Granularity
  • The Need for Loose Coupling
  • The SOAD Methodology
  • The SOAD Methodology Steps
  • Stage 1: Requirements Gathering & Process or Message Flow Modeling
  • Stage 1: Requirements Gathering & Process Modeling
  • Stage 2: Service Identification
  • Stage 3: Service Implementation
  • Stage 4: Process Implementation
  • SOAD Stages and SOA Lifecycle
  • Summary

Chapter 17 - Service Analysis and Design

  • How Is a Service Developed?
  • Bottom-Up Development
  • Web Service Implementation Choices
  • Bottom-Up Technology Choices (Java)
  • Example: JAX-WS Service
  • Bottom-Up Technology Choices (Java)
  • Example: JCA-Based Service
  • Bottom-Up Technology Choices (.NET)
  • Example: ASMX Service
  • Example: Adapter-Based Service
  • Data Mapping
  • Interface Mapping
  • Top Down Development
  • Apply OOAD in New Development
  • Top-Down Summary
  • Top-down or Bottom-up?
  • Service Design Approaches
  • Summary

Chapter 18 - Best Practices

  • Architecture Best Practices
  • Data Format Best Practices
  • Security Best Practices
  • Programming Model Best Practices
  • Summary