Course Topics
An Introduction to Web Services
Explaining the need for web services
Defining web services
Explaining the characteristics of a web service
Explaining the use of both XML and JSON in web services
JSon is the fat free alternative to XML.
Identifying the two major approaches to developing web services
Advantages of REST:
native HTTP
lightweight and efficient
secure: supports HTTPS
modern: Twitter, Yahoo, etc.
XML format
Advantages of SOAP
provides a lot of support for many bindings: BasicHttpBinding, WSHttpBinding, WSDualHttpBinding, WSFederationBinding, NetTCPBinding, NetNamedPipedBinding.
Explaining the advantages of developing web services within a Java EE container
XML
Describing the Benefits of XML
Creating an XML Declaration
Assembling the Components of an XML Document
Declaring and Apply XML Namespaces
Validating XML Documents using XML Schemas
Creating XML Schemas
JAXB
Listing the Different Java XML APIs
Explaining the Benefits of JAXB
Unmarshalling XML Data with JAXB
Marshalling XML Data with JAXB
Compiling XML Schema to Java
Generating XML Schema from Java Classes
Applying JAXB Binding Annotations
Creating External Binding Configuration Files
SOAP Web Services
SOAP message structure
Using WSDL files to define web services
WS-I Basic Profile and WS-Policy
Creating JAX-WS Clients
Using tools to generate JAX-WS client artifacts
Calling SOAP web services using JAX-WS in a Java SE environment
Calling SOAP web services using JAX-WS in a Java EE environment
Using JAXB Binding customization with a SOAP web service
Creating a JAX-WS Dispatch client
Creating a client that consumes a WS-Policy enhanced services (WS-MakeConnection)
RESTful Web Services
Describing the RESTful architecture and how it can be applied to web services
Designing a RESTful web service and identify resources
Navigating a RESTful web service using hypermedia
Selecting the correct HTTP method to use when duplicate requests must be avoided
Identifying Web Service result status by HTTP response code
Version RESTful web services
Creating RESTful Clients in Java
Using Java SE APIs to make HTTP requests
Using the Jersey Client APIs to make HTTP requests
Processing XML and JSON in a RESTful web service client
Bottom-Up JAX-WS Web Services
Describing the benefits of Code First Design
Creating JAX-WS POJO Endpoints
Creating JAX-WS EJB Endpoints
Top-Down JAX-WS Web Services
Describing the benefits of WSDL First Design
Generating Service Endpoint Interfaces (SEIs) from WSDLs
Implementing Service Endpoint Interfaces
Customizing SEI Generation
JAX-RS RESTful Web Services
Download, Install, and Configure Jersey
Creating Application Subclasses
Creating Resource Classes
Creating Resource Methods, Sub-Resource Methods, and Sub-Resource Locator Methods
Producing and Consume XML and JSON content with JAX-RS
Web Service Error Handling
Describing how SOAP web services convey errors
Describing how REST web services convey errors
Returning SOAP faults
Returning HTTP error status codes
Mapping thrown Exceptions to HTTP status codes
Handling errors with SOAP clients
Handling errors with Jersey clients
Security Concepts
Explaining Authentication, Authorization, and Confidentiality
Applying Basic Java EE Security by using deployment descriptors (web.xml)
Creating users and groups and map them to application roles
Detailing possible web service attack vectors
WS-Security
Describing the purpose of WS-Policy, WS-SecurityPolicy, WS-Security
Configuring WebLogic Server for WS-Security
Applying WS-Policy to WebLogic JAX-WS Web Services
Signing and Encrypt SOAP Messages using WS-Security
Web Service Security with Jersey
Applying JSR-250 Security Annotations such as @RolesAllowed
Enabling an assortment of filters including the RolesAllowedResourceFilterFactory
Obtaining a SecurityContext and perform programmatic security
Authenticating using the Jersey Client API
OAuth 1.1a with Jersey
Describing the purpose of OAuth
Describing the request lifecycle when using OAuth
Creating OAuth enabled services using Jersey
Creating OAuth enabled clients using Jersey
Binding Transport Protocols
HTTP
-traditional request/response pattern;
-the application (server and client) needs to maintain state; it's stateless;
-interoperability between different languages.
TCP
-end-to-end connection based error detection and connection;
-reliable data delivery;
-handles lost packets and duplicate packets;
-fastest of the bindings;
-TCP provides duplex communication and so can be used to implement duplex contracts, even if the client is behind Network Address Translation (NAT).
NamedPipes
-Ideal for 2 or more WCF applications on a single computer and you want to prevent any other communication from another machine;
-Named pipes are efficient because they tie into the Windows operating system kernel, leveraging a section of shared memory that processes can use for communication.
MSMQ
- MSMQ is allows applications to communicate in a failsafe manner.
- A queue is a temporary storage location from which messages can be sent and received reliably.
- This enables communication across networks and between computers, running Windows, which may not always be connected.
Encoding
-Text;
-Binary;
-MTom;