Web Services has become a widely used integration technology in modern software systems. It facilitates interoperable machine-to-machine interaction over computer networks. As a Service Oriented Architecture (SOA) implementation technology and a cloud computing enabler, Web Services receives prime consideration in enterprise computing.
Java Enterprise Edition supports implementation of Web Services with the two specifications JAX-WS and JAX-RS. However, many Web Services implementation stacks (like JBoss WS, Apache CXF, Glassfish Metro, Apache Axis2, XFire, commercial stacks) provide additional support for many WS-* standards since the scope of JAX-WS and JAX-RS is limited and not sufficient for the implementation of complex Web Services usage scenarios.
This training on Web Services with Java is designed to provide Java developers the knowledge they need in implementing standards compliant and secure Web Services. The training also covers a selected set of WS-* standards. Due prominence has been given to all the pillar technologies behind Web Services (HTTP, XML, XML Schema, SOAP, WSDL) for their importance in implementing Web Services irrespective of the complexity.
At the end of the training, participants will be able to
- Develop Web Services using the code-first approach (JAX-WS, JAX-RS).
- Develop Web Services using the contract-first approach (Starting from WSDL).
- Work with different SOAP styles.
- Describe complex Web Services usage scenarios.
- Use advanced features of XML.
- Write XML Schema files and WSDL files.
- Implement RESTFul Web Services.
- Secure Web Services with transport level security (HTTPS).
- Secure Web Services with message level security (message signing/encryption).
- Secure Web Services with user name/password or digital certificates.
- Java developers
- Non-Java developers may also find this training program useful to learn the Web Services concepts and related standards.
- Participants should be familiar with Java Standard Edition.
- If you are a non-Java developer, you may still participate in the training without any familiarity with Java Standard Edition to learn the Web Services concepts and related standards which are programming language and platform independent.
- Familiarity with Java Enterprise Edition is NOT a prerequisite.
4 days (~32 hours)
Kamal Wickramanayake (Profile)
- This training is delivered with hands-on lab exercises.
- The Web Services stack used during the training revolves around JBoss WS which also provides integration with Apache CXF and Glassfish Metro stacks. Anyone who needs guidelines about using Apache Axis2 can also be provided. Exercises during the training do not use Apache Axis2 due to some technical issues it has.
Introduction to Web Services
- Defining a Web Service
- Relationship with SOA
- Web Services usage scenarios
- Styles of Web Services (RPC, Document)
- Code-first Vs Contract-first Web Services
- Anatomy of an HTTP request/response
- HTTP verbs
- Anatomy of an XML file
- Validity and well formedness
- Information set
- Complex types and simple types
- Anonymous type definition
- Global, local declarations
- Namespaces and qualification
- Occurence constraints
- Restriction facets
- Anatomy of a SOAP message
- Usage scenarios (RPC, Conversational, Intermediaries)
- Header/Header blocks
- Processing model (role, mustUnderstand, relay attributes)
- Fault notification
- Protocol bindings (HTTP, Overview of email)
- Encoding schemes
Web Services Description Language
- What to be described in a Web Service?
- Abstract and concrete service description
- WSDL binding styles
- WSDL 1.1 Vs WSDL 2.0
- Endpoint requirements
- JAX-WS Annotations
- Types supported
- Transport level Vs message level addressing
- Endpoint references
- Message addressing properties
- Message signing
- Message level security and transport level security
- User name token
- X.509 certificate token
- Security token referencing mechanisms
- Overview of other tokens available
RESTFul Web Services
- Web architecture and Representational State Transfer
- RESTFul Vs SOAP + WSDL Web Services
- Implementing RESTFul Web Services
JAX-RS RESTFul Web Services (Java EE 6 Feature)
- Root resource classes
- @Path annotation
- URI path templates
- Request method designator annotations
- Request parameters
- Entity providers
- Customizing requests and responses