(Free) Web Services Programming (with Passion!) Hands-on Online Course

 Sang Shin, www.javapassion.com/webservices, class forum

From March 14th, 2006:



Message to potential attendees to this course from Sang Shin

The new and 6th session will starts on July. 15th, 2009.  Just like other online courses I teach, this course is offered online only.   For those of you who are not sure what it's like to take this course online, please see What it's like to take Sang Shin's online course.  Just to set the expectation correctly, there is no real-time webcasting.  

   Graduates of this course

How to register for this course

In order to register for this course, all you have to do is sending a blank email to the following email subscription address.   We are now using Google alias not Yahoo alias.  Please register yourself again if you have not subscribed this new alias.  Thanks much.  

Basically, when you send a blank email to the above, you are subscribing our class forum. This forum can be used for posting questions/answers either by email or through the website.  Please use this forum for all class related communication (technical or non-technical).  It is strongly recommended you don't send an email directly to me.

Please read the FAQ below before you ask questions on how this course works!!!!   Once you sent an email to the subscription alias above then you are registered, so there is no need to send another email to the course alias asking for "Add me to this course!".


Topics and Schedule

Note that only the topics with the dates assigned will be covered in this course.  It is my plan to provide presentation slides and hands-on labs for the topics that do not have dates whenever I find time.  The technologies we will have special focus in this course are highlighted in bold fontSoftware and sample codes we are going to use are mentioned below. Some of the sampel codes are converted to "native" NetBeans projects.   Please note that we will have one-week break for every two weeks.


Software Required


Please install the specific version of JDK and NetBeans mentioned below for now in order to minimize the possible surprise in running the sample applications. 


Web Services Overview

This topic cover high-level overview of what Web service is.   If you already have reasonable idea what a Web service is, you can skip this topic. There is no homework for this topic.

1. Presentation slides (1.5 hour)

2. Resources
                                                                                                                                               return to the topics


 XML Namespace


XML namespace is like a packaging concept of Java programming language - basically to avoid the name collision.  Namespace is extensively used in all Web services related documents.   You will also learn the basic concept of default namepace.  The concept of target namespace is dealt with in XML schema presentation.  There is no homework for this topic.

1. Presentation slides

2. Resources
                                                                                                                                               return to the topics


 XML Schema

Given that most Web services exchange data in the form of XML document, whose syntax is constrained by a XML schema,  having a good command on XML schema is very important for the development of Web services.

1. Presentation slides

2. Lab
3. Resources
                                                                                                                                               return to the topics


 XML Schema Design Patterns

This topic covers several XML schema design patterns that have been identified.   There is no homework for this topic.  

1. Presentation slides

2. Lab 2 - 0.5 hour (You can just create a new NetBeans project and then add the sample XML schema)
3. Resources
                                                                                                                                               return to the topics

XPath


XPath is a XML language you can use to make references to the part of your XML document - actually a set of nodes. XPath is used by XPath and other XML language as a way of making references to the XML document.

1. Presentation slides

2. Resources

                                                                                                                                               return to the topics

XSLT


XSLT lets you perform transformation of your source XML document to another XML document, HTML document, or even a plain text.  In many cases, he XML document you have received need to be transformed to a different format, in which case you will use XSLT for that.

1. Presentation slides

2. Lab (1 hour) and homework
3. Resources
      

                                                                                                                                               return to the topics

XSLT 2


In this session, you are going to learn a bit more advanced usage of XSLT.

1. Presentation slides



                                                                                                                                               return to the topics

JAXP, SAX, and DOM


JAXP provides standard Java API for XML parsing and transformation based on pluggable framework.  It does support SAX and DOM.  In general, the usage of JAXP/SAX/DOM is getting replaced by StAX.

1. Presentation slides on SAX

2. Presentation slides on DOM
3. Lab (0.5 hour) and homework
4. Resources
                                                                                                                                               return to the topics

StAX


StAX provides Streaming API for XML parsing and Transformation. 

1. Presentation slides

2. Lab
3. Resources
                                                                                                                                               return to the topics

 SOAP Basics


You are going to learn basic message structure of SOAP messages.  In general, as a developer, you are not going to directly construct or manipulate a SOAP message, but it is still useful to understand how SOAP message is constructed and how it is handled by endpoint.

1. Presentation slides

2. Lab 1
3. Resources
4. Tools

                                                                                                                                               return to the topics


SOAP Processing Model


1. Presentation slides

                                                                                                                                               return to the topics

SOAP Protocol Binding



1. Presentation slides


                                                                                                                                               return to the topics

WSDL Basics


Having a good command on WSDL is important for building and deploying a well-functioning and interoperable Web services. Even though you will use tools for importing existing WSDLs or creating WSDLs from existing Java classes, it is still important for you to have good understanding of it especially when you have to debug the mal-functioning Web services.

1. Presentation slides


2. Lab 1
3. Resources

                                                                                                                                               return to the topics


WSDL Binding (SOAP Binding)


1. Presentation slides

2.  Lab

Try HelloServiceRPCLiteral project and study the generated WSDL document and SOAP messages.  Try HelloServiceDocumentLiteral project and study the generated WSDL document and SOAP messages.


                                                                                                                                               return to the topics

soapUI Basics


1. Presentation slides

2. Lab
3. Resources

                                                                                                                                            return to the topics


JAX-RPC (J2EE 1.4 Web Services)


In general, you are recommended to use JAX-WS to build Web services and clients even if they are going to be deployed over J2EE 1.4 container (Servlet 2.4 container) since Web services that are created using JAX-WS can be deployed over Servlet 2.4 container and they still SOAP 1.1 as communication protocol as a default.

1. Presentation slides

2. Resources

                                                                                                                                               return to the topics



JAX-WS 2.x


JAX-WS 2.x based Web services are easier to develop than JAX-RPC since you build Web services using annotations. JAX-WS 2.x also supports lots of new features.  The focus of this course is JAX-WS (instead of JAX-RPC).

1. Presentation slides

2. Lab 1 (1 hour)
3. Lab  2 (0.5 hour)
4. Resources

                                                                                                                                               return to the topics

JAX-WS 2.0 with Java SE 6 Platform


Java SE 6 now supports JAX-WS, which means you can now deploy a Web service over standalone Java SE platform form. 

1. Presentation slides

2. Lab (1 hour) and homework
3. Resources
                                                                                                                                               return to the topics

JAX-WS 2.0 with EJB



1. Presentation slides

2. Lab (1 hour) and homework

                                                                                                                                               return to the topics

JAX-WS 2.x Advanced


1. Presentation slides

2. Lab (1 hour) and homework
3. Lab 1
4. Lab 2

                                                                                                                                               return to the topics



JAX-WS Features of GlassFish


GlassFish, as the deployment platform of Web services, provides lots of extra features that can be leveraged in production environment.

1. Presentation slides

2. Lab (1 hour) and homework
3. Resources

                                                                                                                                               return to the topics


JAX-WS 2.0 Customization


1. Lab (1 hour) and homework
2. Resources

                                                                                                                                               return to the topics

JAX-WS and Spring Integration


1. Presentation slides

2. Lab (1 hour) and homework
3. Resources
                                                                                                                                               return to the topics 

SAAJ (SOAP with Attachments API for Java)


SAAJ provides Java API for SOAP message creation and manipulation.   In general, you use JAX-WS rather than SAAJ unless you have a need to create and manipulate SOAP messages in your application.

1. Presentation slides

2. Lab
3. Resources
                                                                                                                                               return to the topics


UDDI


1. Presentation slides

2. Presentation slides
3. Lab
4. Resources

                                                                                                                                               return to the topics

JAXR


JAXR is a Java API for registry operations.

1. Presentation slides

2. Resources

                                                                                                                                               return to the topics


JAXB Basics


1. Presentation slides

2. Lab  (1 hour)

3. Lab 2 (1 hour)

4. Resources

                                                                                                                                               return to the topics


JAXB 2.0 (Data Binding)


1. Presentation slides
2. Lab 1 (1 hour)
3. Resources

                                                                                                                                               return to the topics


RESTful Web Service Primer


REST is gaining popularity as another Web services communication model due to simplicity.  In fact, there are still some debate going on "REST vs. SOAP".  Each has its own strengths and weaknesses.  You choose either depending on what you are trying to achieve for your applications.

1. Presentation slides


2. Resources

                                                                                                                                               return to the topics

JAX-RS (Java API for RESTful Web Service)


JAX-RS is on-going effort to define simpler Java API for REST based Web service development and invocation since for now the programming model for building REST based Web service has some room for improvement.

1. Presentation slides

2. Lab

3. Resources

                                                                                                                                               return to the topics

WADL (Web Application Description Language)


1. Presentation slides - WADL Primer

2. Resources
                                                                                                                                               return to the topics


WS-Policy


1. Presentation slides

2. Resources
                                                                                                                                             return to the topics


WS-Addressing


1. Presentation slides

2. Lab
3. Resources
                                                                                                                                             return to the topics

WS-Routing


1. Presentation slides

2. Resources
                                                                                                                                             return to the topics



Binary Attachment Schemes (MTOM/XOP)



1. Presentation slides


2. Lab
3. Resources

                                                                                                                                               return to the topics


WS-I


WS-I is an industry consortium, which define a set of profiles, which constrain existing Web Services standards (such as WSDL or SOAP) so that the implementations from different vendors interoperate.

1. Presentation 1 (WS-I)

2. Presentation 2 (WS-I Basic profile)
3. Presentation 3 (WS-I Usage scenario)
4. Presentation 4 (WS-I sample application architecture)
5. Presnetation 5 (WS-I testing tools)
6. Lab
7. Resources
                                                                                                                                               return to the topics


 Web Services Interoperability Technology (WSIT, code-named Project Tango) Overview


WSIT code-named as Project Tango is an industry effort (between Java and .NET communities) to implement WS-* specifications so that they can interoperate.

1. Presentation slides

2. Lab
3. Resources

                                                                                                                                               return to the topics


Web Services Transaction


1. Presentation slides

2. Lab
3. Resources

                                                                                                                                               return to the topics


Security Basics



1. Presentation slides (1 hour)


2. Resouces

                                                                                                                                               return to the topics

Web Services Security Standards


1. Presentation slides


                                                                                                                                               return to the topics

SSL

1. Presentation slides (1 hour)

2. Resources
  
                                                                                                                                               return to the topics

WSIT (and NetBeans) Security Profiles


1. Presentation slides

2. Lab

3. Lab 2
4. Resources

                                                                                                                                               return to the topics




Web Services Management and Monitoring


1. Presentation slides

2. Labs (2 hours) - last updated (Oct. 2nd, 2006) - updated Oct. 19th, 2006
3. Resources
                                                                                                                                               return to the topic

Functional and Load Testing (using soapUI)


1. Presentation slides

2. Labs (2 hours) - last updated (Oct. 2nd, 2006) - updated Oct. 19th, 2006
3. Resources

                                                                                                                                               return to the topic


Web Services Performance


1. Presentation slides

2. Labs (2 hours) - last updated (Oct. 2nd, 2006) - updated Oct. 19th, 2006
3. Resources

                                                                                                                                               return to the topic





Analyzing Real-life Web Service - Google Checkout



1. Presentation - This is JavaOne 2007 presentation by Tientier Li and Jun Qian
2. Lab
3. Resources

                                                                                                                                             return to the topics



Best Practices


1. Presentation slides (1.5 hour)

2. Resources
                                                                                                                                               return to the topics

Real-life Web Services


1. Presentation slides (1.5 hour)

2. Lab
3. Resources
                                                                                                                                            return to the topics




WSRP


1. Presentation 
2. Resources


                                                                                                                                             return to the topics



Spring framework and Web Services

'
1. Resources

                                                                                                                                             return to the topics