Web Services Training Overview|
This one-week course prepares Java programmers to develop Web services and clients using the BEA WebLogic Platform(TM), in accordance with prevailing standards such as SOAP, WSDL, and JAX-RPC. Students get an overview of the interoperable and Java-specific Web services architectures, and then learn the standard (J2EE 1.4) APIs for SOAP messaging and WSDL-driven, component-based service development, working extensively with the BEA WebLogic Server to implement, deploy and test Web services. Both document-style and RPC-style messages and services are covered in depth.
The first three chapters provide an overview of the world of Java-based Web services, along with an introduction to the tools available for Web-service development in WebLogic. In these early chapters, students build and run Web services that have already been developed, focusing not on coding but on runtime behavior, SOAP traffic, and WSDL definitions. That is, the early focus is on architecture: the roles that various protocols, APIs, tools, and application components play in a working Web service and/or client.
Students then develop an understanding of the Simple Object Access Protocol (SOAP) 1.1, and skills in using the SOAP with Attachments API for Java (SAAJ) 1.1 to build SOAP-based Web services and clients. Students will learn to read SOAP and to write it by hand, and then will proceed to use SAAJ to develop services that respond to SOAP/HTTP messages.
The course then turns to its main focus, which is the Java API for XML-Based RPC, or JAX-RPC. JAX-RPC abstracts almost all the details of SOAP messaging using WSDL as a description language for interface and implementation; this allows the Java developer to concentrate on application and service specifics. JAX-RPC specifies service development either from WSDL documents as a starting point or beginning with Java code and generating the WSDL for client use; this course addresses both possible development paths and analyzes their relative advantages.
Students learn various intermediate and advanced JAX-RPC features under WebLogic in the final chapters of the course: developing services as EJBs; managing SOAP headers using JAX-RPC message handlers; creating and reading SOAP attachments; asynchronous SOAP messaging using JMS; and Web-service security.
Web Services Training Learning Objectives
Web Services Training Prerequisites
- Describe the interoperable Web services architecture (SOAP, WSDL, and UDDI).
- Describe the Java Web services architecture, and identify the Java APIs that relate to key Web-service protocols (SAAJ, JAX-RPC, JAXR).
- Identify the major Web services tools in the BEA WebLogic Platform, and implement simple services using both: the Workshop and the Server.
- Know the structure and grammar of SOAP, and read and write SOAP messages.
- Understand the role of the SOAP header in extending messaging capabilities and semantics, for instance for routing, security or transaction support.
- Use SAAJ to manage SOAP message content as a graph of Java objects.
- Implement low-level Web services using SAAJ.
- Understand the role of WSDL in providing type information for Web services.
- Write WSDL descriptors to describe messages, interfaces and services.
- Understand the role of JAX-RPC in the Java Web services architecture, and the mapping of WSDL and XML Schema to Java classes and components.
- Discuss the advantages of the two alternative paths for JAX-RPC development – working from implementation language to WSDL or from WSDL to implementation.
- Analyze Java domain models and identify the useful JAX-RPC mappings.
- Build a Web service based on an existing Web application.
- Build a Web service based on an existing WSDL descriptor.
- Build a Web-service client based on a WSDL descriptor.
- Describe the relationship between the EJB 2.1 and JAX-RPC 1.0 specifications, and how EJBs can implement Web-service endpoints.
- Build a Web service based on an existing EJB application.
- Describe the use of the JAX-RPC message context in reading and managing SOAP headers.
- Implement a JAX-RPC message handler chain to adapt an existing Web service.
- Create, send, receive, and read SOAP attachments using SAAJ.
- Implement asynchronous Web services using JMS and JAX-RPC.
- Understand the security issues for Web services and the range of techniques available to secure Java code and SOAP message content.
- Secure an existing Web service by requiring authentication and authorization at the service URI.
- Implement JAX-RPC message handlers to add encryption/decryption of SOAP message content to an existing Web service.
Web Services Training Course duration
- Experience in Java Programming, including object-oriented Java and the Java streams model is essential.
- Some understanding of XML and XML Schema will be helpful, but is not strictly necessary.
Web Services Training Course outline
Web Services Architecture
and Web Services
- Evolution of Web Services
- Motivation for Web Services
- HTTP and XML
- Interoperability Stacks
- The Wire Stack
- Simple Object Access Protocol (SOAP)
- The Description Stack
- Web Service Description Language (WSDL)
- The Discovery Stack
- Universal Description, Discovery and Integration (UDDI)
- Hosting Web Services:
- Observing SOAP Traffic
and Web Services
- The WebLogic Platform
- Web Services Features and Support
- BEA-Speak for Web Services
- The WebLogic Workshop
- Limitations of the Workshop
- The WebLogic Server
- Creating a Domain
- Ant Tasks for Web Services
- Development Process
Simple Object Access Protocol (SOAP)
- Java and Web Services
- Web Services and the J2EE
- WebLogic Support for Standard APIs
- The Java API for XML Processing (JAXP)
- The Java API for XML Binding (JAXB)
- The SOAP With Attachments API for Java (SAAJ)
- The Java API for XML Messaging (JAXM)
- Low-Level Web Services in WebLogic (SAAJ)
- The Java API for XML-Based RPC (JAX-RPC)
- High-Level Web Services in WebLogic ( JAX-RPC)
- WSDL-to-Java vs. Java-to-WSDL
- The Java API for XML Registries (JAXR)
- WebLogic UDDI
Java APIs for SOAP Messaging (SAAJ)
- SOAP Messaging Model
- SOAP Namespaces
- SOAP over HTTP
- The SOAP Envelope
- The Message Header
- The Message Body
- SOAP Faults
- XML Schema
- Validating Message Content
- The SOAP “Section 5” Encoding
- Avoiding Redundant Serialization
- The SAAJ Object Model
- Parsing a SOAP Message
- Reading Message Content
- Bridges to JAXP
- Working with Namespaces
- Creating a Message
- Setting Message Content
- WebLogic SAAJBugs and
Services Description Language (WSDL)
- JAXM vs. WebLogic JMS
- Messaging Scenarios
- Point-to-Point Messaging
- SAAJ Services using JAX-RPC
- Creating a JAXM Connection
- Sending a Message
Java API for XML-Based RPC (JAX-RPC)
- Web Services as Component-Based Software
- The Need for an IDL
- Web Services Description Language
- WSDL Description Model
- The Abstract Model – Service Semantics
- Message Description
- Messaging Styles
- The Concrete Model – Ports, Services, Locations
- Extending WSDL – Bindings
- SOAP Style and Use Attributes
- Service Description
Web Services from Java Code
- The Java Web Services Architecture
- Two Paths
- How It Works - Build Time and Runtime
- Mapping Between WSDL/XML and Java
- Generating from WSDL
- What Gets Generated
- What the Application Sees
- Generating from Java
- Which Way to Go?
- Passing Objects
- Another CORBA?
Generating Java Web
Services from WSDL
- The Java-to-XML Mapping
- Primitive Types and Standard Classes
- Value Types and JavaBeans
- The Java-to-WSDL Mapping
- Service Endpoint Interface
- Scope of Code Generation
- Inheritance Support
- WebLogic JAX-RPCBugs and
- Multi-Tier Application Design
- Analyzing the Domain
- High-Level Ant Tasks
- When Things Don't Fit
- Extensible Type Mapping
Web Services and EJB
- The XML-to-Java Mapping
- Simple and Complex Types
- WebLogic Extended Mappings
- The WSDL-to-Java Mapping
- Mapping Operation Inputs and Outputs
- Building a Service Client
- Locating a Service
- Client-Side Validation
- Interoperability under Java-to-WSDL
- Creating a Web Service
- Mid-Level Ant Tasks
- XML and WSDL Design Guidelines
- Deploying the Service
- Interoperability under WSDL-to-Java
- Controlling Names and URIs
Message Context and
- Enterprise JavaBeans
- Three Tiers for J2EE
- EJB 2.1 and JAX-RPC
- Session Beans as Web Service Endpoints
- How It Works – Build Time and Runtime
- The Bean's Service Endpoint Interface
- SOAP as an RMI Transport
- Adding a SOAP Interface to a Session Bean
- Generating From WSDL
- Handling SOAP Headers
- Servlet Endpoint Context
- EJB Endpoint Context
- Using SAAJ
- JAX-RPC Message Handlers
- Handler Chains
- Processing Model and Patterns
- The <handlerChain> Ant Task
Web Services and JMS
- WebLogic Support for Attachments
- SAAJ Object Model, Revisited
- The SOAPMessage Class
- The Java Activation Framework
- The MimeHeaders Class
- The AttachmentPart Class
- Adding SOAP Attachments
- Identifying Attachments
- Reading Attachments
- Asynchronous Messaging
- The Java Message Service
- Queues and Topics
- Message Types
- Message-Driven Beans
- Asynchronous Web Services
- Message Queues as Web Services
- Ant Tasks and JMS Services
Appendix A. Learning Resources
- Web Services and Security
- Technology and Techniques
- Public Key Encryption
- Digital Signature
- J2EE Techniques
- Securing Web-Service URIs
- XML and SOAP Solutions
- XML Encryption and Signature
- WebLogic Support for WS-Security
- Securing a Service’s Messages
- Key Pairs and Keystores
- Enhancing the Client
Appendix B. Developer’s Quick Reference
Hardware – minimal
Hardware – recommended
- 500MHz, 256 meg RAM, 500 meg HD.
- 1.5gHz, 512 meg RAM, 1 gig HD.
- Tested on Windows 2000 Professional.
- All free downloadable tools