SOA and Web Services with JAX-WS
Private Training Price: $7215 for up to 3 students*
*Additional students subject to a nominal fee
- SOA and Web Services with JAX-WS Training Class Summary
-
Web Services are designed to allow Web-based access to distributed software and business services. They bring a standard, open service architecture to component development that allows them to be accessed over the Web with standard protocols such as HTTP and standard XML formats for messages and service descriptions. This course will give you a thorough understanding of the current Web Services architecture, and the technologies that support Web Services including the new Java APIs such as JAX-WS and JSR-181. Topics include SOAP, WSDL, JAX-WS, SAAJ, and Security. We will look at the current state of the art of Web Services, what works and what doesn’t work, and also at newer standards, and how they fit into the Web Services picture. This course is hands on, and students will actually build and deploy a Web Service during the course. All labs are programmed/deployed with the Eclipse IDE.
Audience: Developers and architects requiring a more thorough understanding of Web Services.
Prerequisites: Experience programming in Java and a good working knowledge of XML are required.
Class Length: 3 days
- SOA and Web Services with JAX-WS Training Class Objectives
-
- Understand the principles of Service Oriented Architecture (SOA)
- Understand how Web Services can be used to build SOA based systems
- Understand the core Web Services technologies, including SOAP and WSDL
- Use Java specifications, including JAX-WS, JSR-181, JAXB, and JSR-109/921 to implement Web Services
- SOA and Web Services with JAX-WS Training Class Detailed Outline
-
- Service Oriented Architecture (SOA) and Web Services
- SOA Overview
- The Challenge of Enterprise Systems
- The Challenge of Legacy Systems
- Service Oriented Architecture (SOA)
- The Evolution of Computing
- SOA Concepts
- Some Advantages of SOA
- Some Issues with SOA
- Web Services Overview
- Web Services Defined
- Value Proposition
- Web Services Defined
- WS-* Web Services Specifications
- The Web Services Stack
- Web Services Stacks
- Architectural Perspective
- Architectural Details
- SOAP and WSDL Concepts
- SOAP Concepts
- Anatomy of a SOAP Message
- A Typical SOAP Scenario
- WSDL Concepts
- Introduction to Java Web Services
- Java Web Services (JWS) Standards
- Java First Web Services
- Java Web Services Platform
- SOA Architecture with Java Web Services
- A Simple Web Service
- Defining a Simple Web Service
- Annotating the Implementation Class
- A Brief Note About Annotations
- Declaring the Web Service in web.xml
- Deploying the Web Applicatin
- WSDL
- Introduction to WSDL
- Overview of WSDL
- WSDL Elements
- WSDL Bindings
- WSDL in Practice
- XML Namespaces and XML Schema
- WSDL Documents are XML Documents
- XML Namespaces
- Namespaces Described
- Names Terminology
- Default Namespaces
- Namespaces in a WSDL Document
- XML Schema
- xsd:complexType
- xsd:complexType in WSDL
- WSDL Structure and Elements
- WSDL Anatomy
- Element
- Element
- Element
- The Generated Types
- Element
- and
- Element
- and Elements
- Operation Type
- SOAP
- SOAP in a Nutshell
- What is SOAP
- SOAP 1.1 vs. 1.2
- What is a SOAP Message
- SOAP Message Structure
- A SOAP Message
- SOAP Detailed Structure
- SOAPMessage
- SOAP Faults
- SOAP Messaging and HTTP Binding
- SOAP Messaging
- SOAP Intermediaries
- SOAP Message Exchange Patterns
- SOAP Binding
- SOAP HTTP Binding
- HTTP Request/Response Details
- SOAP Styles and Encoding
- SOAP Styles
- Literal Encoding
- SOAP Encoding
- The Java Web Service Specifications
- JSR-181: WS-Metadata
- JSR-181 Defines the Web Service
- @WebService Details
- Affecting the Generated WSDL
- Other Important JSR-181 Annotations
- The Service Endpoint Interface (SIE)
- An SEI and an Associated SIB
- @WebMethod Details
- @oneway Details
- @SOAPBinding Details
- WRAPPED vs. BARE
- @WebParam and @WebResult
- JAX-WS Capabilities
- JAX-WS
- WSDL / Java Mapping
- XML Messaging Support
- Handler Framework
- SOAP and HTTP Binding
- JAX-WS Client Side Programming
- Creating JAX-WS Clients
- Client Side Programming Model
- Generated Classes for Service and Port
- Details of the Generated JavaInstructor
- Details of the JavaInstructorService Class
- Writing a JAX-WS Client
- Dynamic Proxies
- The QName and Service Types
- SAAJ
- SAAJ Overview
- SAAJ message Structure
- SOAPMessage
- SOAPPart and AttachmentPart
- SAAJ Classes (in Brief) – In javax.xml.soap
- SAAJ Classes (in Brief)
- Creating SOAP Messages with SAAJ
- Sending a Message with SAAJ
- SOAP Attachments
- DOM
- SAAJ and DOM
- DOM Overview
- JavaTunes Order XML Document
- JavaTunes Order as a Dom Tree
- The DOM Tree
- The DOM Interfaces
- The Node Interface
- Navigating the DOM Tree
- The Document and Other Interfaces
- Extracting Content with SAAJ DOM
- SOAP Handlers
- Handler Processing
- Logical and Protocol Handlers
- The SOAPHandler Interface
- MessageContext
- SOAPMessageContext
- Handler Invocation
- MessageContext Properties
- Configuring Handler Chains
- Returning a Fault
- Logical Handlers
- JAXB
- JAXB Overview
- JAXB Architecture
- Java Web Services and JAXB
- JAXB and WSDL Mapping
- The JAXB Annotations
- Using JAXB with Java Web Services
- Using JAXB
- Starting from WSDL or WSDL & Java
- Starting from WSDL
- Binding Customization
- Other Customizations
- Starting from WSDL and Java
- XML Based Web Services
- XML Services – JAX-WS Providers
- XML Messaging
- JAX-WS Providers
- A SOAP Provider
- How Providers Work
- WebServiceContext
- MessageContext
- XML Clients – The Dispatch Interface
- XML Clients
- Service and Dispatch
- XML/HTTP Messaging and REST
- XML/HTTP Based Messaging
- A Provider Implementation
- WSDL for the HTTP Binding
- A Very Simple XML/HTTP Request
- A Very Simple XML/HTTP Response
- Provider Based Endpoints
- Overview of REST
- REST Details
- REST Characteristics
- Comparison of REST and SOAP
- JAX-WS and REST
- JAX-RS
- Security
- Java EE Security and Web Services
- Security Requirements
- Security in Java EE
- Transport Level Security with HTTPS/SSL
- Java EE Security Overview
- Java EE Security
- Java EE Declarative Security
- Specifying Security Constraints
- Security Constraints – Deployment Descriptor
- Mapping Users to Roles
- HTTP Basic Authentication
- JAX-WS Clients and Basic Authentication
- HTTPS
- HTTPS / SSL – Transport Level Security
- HTTPS / SSL Meets Some Security Needs
- SSL Pros / Cons
- SSL Requires Server Setup
- Requiring HTTPS on a POJO Web Service
- Invoking a Web Service with HTTP
- WS-Security (WSS)
- Message Level Security
- XML Digital Signatures
- XML Encryption
- WS-Security Roadmap
- Recap
- What Else is There
- Resources
- Appendix A - EJB Based Web Services
- EJB Overview
- What is EJB
- EJB Goals
- Types of Enterprise JavaBeans
- EJ Transaction Support
- EJB 3.0 Overview
- Session Bean Capabilities
- Benefits of Using EJB
- SOA Architecture with EJB
- Issues with EJB
- Programming EJB
- What are Session Beans
- Stateless Session Beans (SLSB)
- Defining a Session Bean
- Stateless Session Bean Definition
- Remote Business Interface
- EJB Packaging – ejb-jar File
- The EJB Container
- Server Deployment
- Creating EJB Based Web Services
- EJB Based Web Services
- Why Use EJB for Web Services
- Specifying the Context and Service URLs
- Security in EJB Based Web Services
- Appendix B - UDDI
- UDDI Overview
- UDDI Capabilities
- What is Stored in a Registry?
- Locating and Invoking a Web Service
- UDDI Elements
- Programming in UDDI
- JAXR
- JAXR Overview
- JAXR Architecture
- JAXR Information Model
- JAXR Packages
- ConnectionFactory
- The RegistryService Interface
- Other Common JAXR Types
- Appendix C - WS-* Overview
- The WS-* Specifications
- WS-I Interoperability
- WS-I Profiles
- WS-I Basic Profile
- WS-Addressing
- Service Oriented Architecture (SOA) and Web Services



