RESTful Web Services Development

RESTful Web Services Development

Audience

Programmers, Analysts and Managers who are interested in the development and deployment of Web Services.

Prerequisites

Java or C# programming experience and familiarity with XML.

Duration

5 days.

Course Objectives

This course teaches students how to develop, deploy and secure Web services. Eclipse features that streamline Web services development and deployment are covered in depth. SOAP and RESTful web services are included. The concepts taught in this course are reinforced by hands-on lab exercises.

At the end of this course, students will be able to:

  • Develop Web Services using steps that include develop, secure, deploy, publish and consume simple and advanced Web services tools including AXIS2.
  • Understand publishing and retrieving Web service definitions from a UDDI registry.
  • Use the application development tools provided by Eclipse which automate Web service development.

Course Content

Java/Eclipse Review

  • Java Development
  • Tools
  • Perspectives and Editors
  • Server Configurations
  • Debugging Tools
  • Project Properties

Web Services Basics

  • Service-Oriented Architecture (SOA)
  • What are Web Services?
  • Web Services Advantages
  • Interactions and Components
  • Web Services Standards: XML, SOAP, WSDL and UDDI
  • Web Services Interoperability (WS-I)
  • Java Web Services Developer Pack (Java WSDP)

Web Service Development

  • Development Approaches
  • Runtime Environments: Apache Axis2, Weblogic, and IBM WebSphere
  • WS-I Compliance
  • Creating a Web Service from a JavaBean
  • Exposing a Stateless Session Bean as a Web Service
  • Creating an Axis2 Web Service
  • Generated Files
  • Testing the Web Service
  • Defining Deployment: webservices.xml, ibm-webservices-bnd.xmi and ibmwebservices-ext.xmi
  • Editing WSDL
  • Using the Web Services Explorer

SOAP

  • SOAP Processing Model
  • SOAP Messages
  • SOAP Message Elements (Envelope, Header, Body and Fault)
  • Communication Styles (Document Style & RPC Style)
  • Encoding
  • Java/SOAP Mappings
  • SOAP Bindings
  • Error Handling
  • SOAP Implementations

TCP/IP Monitor

  • Overview
  • TCP/IP Monitor Configuration
  • Controlling the Monitor
  • Using the TCP/IP Monitor View
  • Examining Requests and Responses
  • Examining SOAP Messages

WSDL

  • Overview
  • Java/WSDL Mapping
  • Abstract vs. Concrete Descriptions
  • WSDL Document Structure
  • WSDL Elements (Types, Ports, Services, Messages, Operations and Port Types)
  • Bindings and Extensibility Elements
  • WSDL Style/Use
  • Service and Port Definitions
  • Binding to a Service (Early vs. Late Binding)

UDDI

  • Overview
  • Registries
  • UDDI Interactions
  • UDDI Data Model
  • UDDI4J
  • UDDI Clients

Web Services Explorer

  • Overview of the Publishing Process
  • Web Services Explorer Functions
  • Launching the Web Services Explorer
  • Accessing a UDDI Registry
  • Publishing a Business Entity, Business Service and Service Interface
  • Locating Web Services

JAX-RPC

  • Overview
  • JAX-RPC Model
  • Service Endpoint Definition
  • Development Steps
  • The Service Life Cycle Interface
  • Service Deployment
  • Java/XML Mappings
  • Web Service Clients (Static Stub, Dynamic Proxy and Dynamic Invocation Interface)
  • The javax.xml.rpc.Service Interface
  • Handlers
  • Data Type Mapping
  • JAX-RPC Implementations

Web Services Client Development

  • Web Service Client Wizard
  • Generating a Proxy
  • Client Types
  • Generating Sample JSPs
  • Testing the Proxy
  • Generated Files
  • Using the Generated Proxy
  • Web Services Client Editor

Axis2

  • History
  • Engine
  • Framework
  • Handler Chains
  • Services
  • Deployment Options (JWS and WSDD)
  • Mapping Tools (Java2WSDL and WSDL2Java)
  • Generated Files
  • Development Process
  • Handlers
  • Clients
  • Custom Type Mapping
  • TCP Monitor Tool (tcpmon)

Web Services for JEE

  • JEE Architecture
  • Port Definition
  • Managing Ports
  • Requirements for Exposing Session Beans and Java Classes
  • Service Implementation Bean Lifecycle
  • Container Responsibilities
  • Web Services Deployment Descriptor (webservices.xml)
  • JAX-RPC Mapping
  • Client Development
  • Client Deployment Descriptors
  • Security

Application Assembly Overview

  • Application Assembly and Packaging
  • Deployment Descriptors
  • Bindings

Web Services Security Concepts

  • Web Service Security Risks
  • Encryption and Decryption
  • Cryptography
  • Certificates
  • Digital Signatures
  • Security: Message Level vs. Transport Level
  • SSL/TLS
  • WS-Security

Defining Web Services Security

  • App Server Security Model for Web Services
  • WS-Security Authentication
  • Enabling Authentication
  • Message Integrity Using XML Signatures
  • Configuring Integrity
  • WS-Security Confidentiality
  • Configuring Confidentiality

Deploying Web Services in an Application Server

  • Architecture
  • Administrative Console
  • Web Services Support
  • Creating Required Resources
  • Deploying a Web Service to an Application Server
  • Managing Deployed Applications

SOAP Messages with Attachments

  • The Need for SOAP Attachments
  • Attachments vs. Encoding
  • MIME defined
  • MIME Header Fields
  • Multipart/Related Content-Type
  • SOAP Message Package
  • Referencing Attachments
  • Related Java APIs
  • JAX-RPC Mappings: MIME to Java
  • WSDL MIME Binding

RESTful Web Services

  • The big picture
  • RESTful Events and Event Handlers
  • An Example RESTful Service

Appendix: XML Basics

  • The History of XML
  • XML Documents: Markup and Data
  • XML Document Components and Structure
  • XML Tags
  • Well-Formed XML
  • Elements and Attributes
  • Names and Name Tokens
  • Namespaces
  • Entities and Escape Sequences
  • CDATA Sections and Comments

Appendix: Namespaces

  • The Need for Namespaces
  • Declaring Namespaces
  • Qualified Names
  • Namespace Scoping
  • Default Namespaces

Appendix: Validating XML With DTDs

  • Approaches to Validation
  • DOCTYPE Declaration
  • Element Declarations and Element Content
  • Modifiers
  • Mixed Content
  • Attribute Declarations
  • Entities
  • Notation Declarations
  • Validating vs. Non-Validating Parsers

Appendix: Validating XML With XML Schemas

  • XML Schema Structure
  • Element Declarations
  • Built-in Data Types
  • Creating and Extending Types
  • Defining Restrictions
  • List Types and Union Types
  • Anonymous Types
  • Complex Types
  • Occurrence Constraints
  • Defining Attributes and Attribute Groups
  • Global Elements & Attributes
  • Declaring Mixed Content

Virtual Courses

ALL of our courses can be delivered virtually. And our Bath public schedule of courses are now available as live virtual sessions, using the popular Zoom Virtual Classroom and remote labs. Delegates can test their access at: www.zoom.us/test

On-Site Courses

Can't attend one of our public classes? Booking for multiple people?

All our courses are available on your site! Delivered for your staff, at your premises.

Contact us to find out more...