Home About Courses Schedule Services Webinars Contact Search

Mastering SOA and JEE Web Services

SEE SCHEDULE

Duration: 5 Days

Method: Instructor led, Hands-on workshops

Price: $2750.00

Course Code: JA1505



Audience

This is an intermediate and beyond level web services training course, designed for JEE developers and architects who need to identify, design, and implement web services. We will explore and apply the terminology, the specification, the processes and technologies specific to web services.

Description

Geared for experienced developers, Mastering SOA and JEE Web Services Developers Workshop is a five day, lab-intensive SOA and Web Services training course that introduces developers to the fundamentals of Service Oriented Architectures (SOA) and the core standards that enable Web Services.

This course focuses on what separates an ad hoc set of web services (NOT SOA) from a managed, vibrant, reusable catalog of enterprise services (definitely SOA). It provides an overview of the entire spectrum from the promise of cloud computing to the grit of XML content. The course presents a clear portrait of how a service orientation can fundamentally change the dynamics of how software is developed and "lives" within an enterprise.

This lab-intensive course provides students with hands-on experience with implementations of the Java XML and Web Service APIs including JAXP, JAXB, JAX-WS, JAX-RS, WSEE, and XWSS. In terms of Java, the focus is on using the JAX-WS, JAX-RS, and JAXB APIs and implementations as the basic for generating and deploying web services and service clients.

SOA and Web Services represent a groundbreaking evolution in distributed computing. The concepts are not altogether new, but the application of them, and the unanimous acceptance of core standards like HTTP, XML, SOAP, WSDL, and the various WS-* policies, has paved the way for XML Web Services and service-oriented architectures.

An overreaching concern related to services is security. Various aspects of security are woven into this course, allowing students to see the entire spectrum of issues as well as solutions. These include encryption, digital signatures, authentication and authorization assertions, and recognized application security issues such as Cross-Site Scripting and Injection attacks.

Objectives

Upon successful completion of this course, the student will be able to:

  • Today's development environments are increasingly dominated by sophisticated tooling that makes the initial development of web services less arduous. The production-level implementation, deployment, and maintenance of web services are far more complex and demanding.
  • Mastering SOA and JEE Web Services focuses on providing an understanding of the fundamental technologies used in web services. This understanding is critical to being able to diagnose, troubleshoot, tune, and perform other lifecycle activities.
  • Students will leave the course armed with the required skills to design, implement, test, and support JEE web services.
  • Working in a dynamic, interactive discussion and hands-on programming environment, developers will be able to:
  • Understand and apply the basic concepts of SOA to the identification and design of web services
  • Understand and intelligently discuss Web Services and the core technologies involved
  • Understand and apply the basic concepts of SOA to the identification and design of web services
  • Appreciate the concept of layered services including orchestration
  • Understand and intelligently discuss Web Services and the core technologies involved
  • Today's development environments are increasingly dominated by sophisticated tooling that makes the initial development of web services less arduous. The production-level implementation, deployment, and maintenance of web services are far more complex and demanding.
  • Mastering SOA and JEE Web Services focuses on providing an understanding of the fundamental technologies used in web services. This understanding is critical to being able to diagnose, troubleshoot, tune, and perform other lifecycle activities.
  • Students will leave the course armed with the required skills to design, implement, test, and support JEE web services.
  • Working in a dynamic, interactive discussion and hands-on programming environment, developers will be able to:
  • Understand and apply the basic concepts of SOA to the identification and design of web services
  • Understand and intelligently discuss Web Services and the core technologies involved
  • Understand and apply the basic concepts of SOA to the identification and design of web services
  • Appreciate the concept of layered services including orchestration
  • Understand and intelligently discuss Web Services and the core technologies involved
  • Design, develop, and deploy real-world JEE Web Services
  • Expose existing Java components as XML Web Services
  • Write Java components that access remote Web Services hosted by a third party
  • Read and understand a WSDL document
  • Parse, process, and respond to a SOAP message
  • Understand the concepts behind REST and implement a REST-based web service
  • Use JAX-RS as the basis for implementing RESTful services in Java
  • Implement handlers to inject cross-cutting solutions for security, logging, auditing, and other needs
  • Work with WS-Security to protect content, resources, and other assets
  • Understand and utilize web service-related design patterns
  • Prior to digging into the technical aspects of web services, students are given an introduction to Service-Oriented Architectures, providing a broad context for the purpose and goals for identifying and implementing web services.
  • Students will explore at the current state of the art of Web services, what works and what doesn’t work, and also at newer standards, and how they fit into the Web services picture. Web services are still evolving rapidly, and this course will give you a thorough understanding of the current Web services architecture, and the technologies that support Web services including:
  • SOAP – Simple Object Access Protocol - A remote invocation (RPC) and messaging mechanism.
  • WSDL – Web Services Description Language – An XML language that describes the interface and semantics of a Web service.
  • REST- Representational State Transfer - A style of implementing web services that is gaining increasing acceptance and use
  • WS-I –Web Services Interoperability Profiles
  • WS-Security/XWSS – Web Services Security
  • JAX-WS – Accessing Web services using Java
  • JAX-RS – Exposing functionality in a RESTful fashion
  • JAXB – Used for binding XML to Java, increasing interoperability between the two
  • The course provides a solid foundation in basic terminology and concepts, extended and built upon throughout the engagement. Processes and best practices are discussed and illustrated through both discussions and group activities. Attending students will be led through a series of advanced topics comprised of integrated lectures, extensive hands-on lab exercises, group discussions and comprehensive demonstrations.

Prerequisites

Students should have 1-2 years of working knowledge with Servlets and JSPs, and should be familiar with XML, Namespaces, and XML Schema.

Topics

  1. Introduction to SOA
    • SOA Overview
    • What is a Service?
    • SOA is Defined in Many Ways
    • Architectural Style: Common Framework
    • Loose Coupling: Spectrum of Options
    • Software Agents: Services
    • Interacting: Orchestrated
    • SOA is Not Revolutionary
    • What is the Difference Between Services and SOA?
    • SOA - Business Perspective
    • SOA – Technical Perspective
    • SOA is Not …
    • Myths and Realities
    • SOA and Web Services
  2. SOA: The Business Proposition
    • Dealing with Change - Motivation for SOA
    • Typical Software Project
    • Typical Software Projects – Why?
    • Business Logic Gets Replicated Over Time
    • Unique Interfaces Build Up Over Time
    • Unique Technologies Build Up Over Time
    • Unique Data Representations Build Up Over Time
    • What are Implications of Each of These Issues?
    • Service Model
    • Service Consumer
    • Service Bus
    • Commonality is Critical Element of SOA
    • Where are We Leveraging That Commonality?
    • Service Provider
    • Business Process: OpenCheckingAcct
    • How Does SOA Address Replication of Logic?
    • How Does SOA Address Unique Interfaces?
    • How Does SOA Address Unique Technologies?
    • How Does SOA Address Unique Data Schemas?
    • How Does SOA Help Deal with Change?
    • Leverage SOA to Empower Customers
    • Leverage SOA to Empower Your Organization
    • Leverage SOA to Support for Strategic Growth and Change
    • Potential Benefits of SOA
    • The Benefits of a Well-Designed SOA
    • SOA Maturity Models Abound
    • Example: IBM’s SIMM
    • Incremental Adoption of SOA
  3. SOA: An Architectural Perspective
    • Enterprise Application Layers
    • Application Layers at a Glance
    • Services and Their Formal Contracts
    • Services Should be Stateless
    • Objects, Components, and Services
    • What is a Legacy System?
    • The Challenge of Legacy Systems
    • Limitations Associated with Legacy Systems
  4. SOA: A Development Perspective
    • Top-Down: Strategic Orientation
    • Bottom-up: Tactical Strategy
    • Lifecycle Phases
    • SOA Roles and Skills (Existing)
    • SOA Roles and Skills (New)
    • Business is the Starting Point
    • Service-Oriented Analysis and Design (SOAD)
    • Service-Oriented Analysis and Design Process
    • Service Identification
    • Service Modeling Guidelines
    • Model For Cross-Application Reuse
    • Preventing Boundary Logic Creep
    • Target A Balanced Model
  5. Service-Oriented Architecture
    • Technical Principles
    • Logical Components of a SOA
    • Characteristics of a Good Service
    • Generic Nature of Services
    • Business Process-Driven Development
    • SOA Business Modeling
    • SOA Reference Architecture
    • Business Versus Application
    • Service Layers
    • Application Services
    • Functional Services
    • Business Process Services
    • Messaging
    • When is Messaging Used?
    • Two Messaging Models
    • More On Publish/Subscribe
    • Logical View of Publish/Subscribe
    • More On Point-to-Point (P2P)
    • Logical View of Point-To-Point
    • Message Servers
    • Messaging
    • SOAP
    • Common Framework: Addressing Cross-Cutting Concerns
    • Role and Uses of an Enterprise Service Bus
    • What Does the Enterprise Service Bus Do?
    • The Challenge of Handling Transactions
    • The Solution to Handling Transactions
    • Security
    • Governance and Compliance
    • Governance and Expertise
    • Governance and Service Lifecycle
    • Governance and Consumer/Provider Management
    • Challenge of Governance
  6. Lesson: Service-Oriented Analysis and Design Review
    • Review of Lifecycle Phases
    • What is SOAD?
    • Service Identification
    • Service Specification
    • Results: Identification and Specification
    • Service Realization
    • SOA Reference Architecture
    • Results: Realization
    • Systematic Process to Achieving These Results
  7. Web Services Overview
    • Crossing Boundaries
    • What are Web Services?
    • Six Key Components
    • Web Services Characteristics
    • Web Services Architecturally
    • Technology Comparison
    • Architectural Perspective
    • Web Services Enable Decoupling
    • Many Web Services Challenges
    • Secure Services
    • Spec and Standard Evolution
    • Web Services Interoperability Organization
    • WS-I Has Many Deliverables
    • Basic Profile 1.0 Consists of:
    • Has > 100 Requirements and Suggestions
    • .NET Platform & .NET Web Services
    • Java and Web Services
    • Exercise: Web Services in Action
  8. Web Services, Java, and JEE
    • XML and Java APIs at a Glance
    • XML Signature
    • XML Digital Signatures
    • XML Encryption
    • JAXP
    • JAXB
    • JAX-WS
    • JAX-RS
    • SAAJ
    • JAX-WSA and XWSS
    • Web Services APIs
    • Web Services for JEE (JSR109)
    • JEE and Web Services
    • Web Services Metadata
    • Web Services Stacks at a Glance
    • WSIT
    • Apache Axis2
    • JBossWS
    • JWSDP
    • WebSphere WS
    • Spring-WS
    • Key Features
  9. Web Services Quickstart
    • What is WSIT?
    • WSIT Tool Support
    • How is WSIT Used?
    • Web Service Development with WSIT
    • Debugging Web Services
    • TCP/IP Monitors Provide View of Wire
    • Exercise: Implementing a Web Service
    • Exercise: Debugging Web Services
  10. XML, Namespaces, & Schema
    • What is XML?
    • XML Can Provide Application-Specific Information
    • Content: XML Document Syntax Rules
    • Structure: A Document Type Definition
    • XML Transformation to HTML
    • XML Separates Structure, Content and Format
    • Content as MarkUp
    • Tell Parser That Text is Data
    • Use Predefined Entities
    • Well-Formed and Valid XML Documents
    • Why Are These Definitions Important?
    • XML Namespaces
    • Name Collision – Example
    • Inter-Organization Name Collisions
    • W3C’s Solution: Namespaces
    • Uniform Resource Indicator
    • Declaring a Namespace
    • Namespace Scope
    • Parsers Use URI, Not the Alias
    • Default Namespace
    • Attributes and Namespaces
    • Example of Namespaces
    • Namespaces Best Practices
    • Benefits From Valid XML
    • W3C XML Schemas
    • Impacts of Schemas
  11. XML, Namespaces, & Schema Continued
    • General Form of an XML Schema
    • Elements, Attributes, and Types
    • Simple Schema and XML Document
    • Element Definitions
    • Corresponding XML Schema
    • Simple Types - Primitive Datatypes
    • Restricting Simple Types: Facets
    • Complex Types Bring More to Validation
    • Repetition Control
    • Restricting Simple Types
    • Complex Types Can be Derived
    • Derivation by Extension
    • Extension of Phone Number
    • Associating Schemas with XML Instances
    • Using XML Schema with Namespaces
    • Namespaces Provide Thread of Connection
    • Schema Defines a Target Namespace
    • XML Doc Uses Schema-Defined Namespace
    • schemaLocation Links Namespace to Location
    • Relating Schemas to XML
    • Exercise: Namespaces and Schemas
  12. XML in Java - JAXP and JAXB
    • XML Parsers Are Complex and Powerful
    • Parsers Are Integral to XML Processing
    • Parsers and API’s
    • Parser Generates DOM, Then Hands to App
    • Parsing With a DTD or Schema
    • Many Options to Consider
    • XML and Java
    • Security Concerns Relative to Parsing
    • Bridging Application Data and XML
    • JAXP: Java API for XML Processing
    • JAXP and Transformations
    • Challenges to Mapping XML
    • Generating XML is Nondeterministic
    • JAXB: Binding XML to Java
    • JAXB 2.0 Incorporated Changes
    • JAXB 2.0 and Java Versions
    • Defining the Rules in JAXB
    • Turning Rules into Java Classes
    • Using the Generated Classes
    • Creating Content
    • Some JAXB Type Bindings
    • XML Schema for List of Items
    • Corresponding Class Interface
    • A Word about Validation…
    • Exercise: Working With JAXB
  13. . SOAP Overview
    • SOAP in a Nutshell
    • Anatomy of a SOAP Message
    • SOAP and HTTP
    • A Typical Scenario
    • What is SOAP?
    • SOAP Specification Provides:
    • Why do I need SOAP?
    • Simple Scenario
    • Less Simple Scenario
    • Uses of SOAP
    • A Simple Example...
    • Remote Procedure Calls
    • Example of SOAP RPC Call
    • Example of Response
    • Exercise: SOAP in Action
  14. SOAP in Detail
    • Protocols Used With Web Services
    • Request and Response Example
    • The SOAP Envelope
    • SOAP Header
    • SOAP Body
    • SOAP Request/Response Example
    • SOAP Defines a Fault Element
    • SOAP Data Model
    • Example Using XSD Data Type
    • SOAP Styles and Modes
    • SOAP With Attachments
    • SOAP Messaging
    • Endpoint Behavior
    • SOAP Encoding Styles
    • SOAP 1.1 vs. SOAP 1.2
    • What is SAAJ?
    • Understanding SAAJ
    • SOAPElement
    • SOAPElement Methods
    • SOAPMessage
    • SOAPPart
    • SOAPEnvelope
    • SOAPBody
    • SOAPBodyElement
    • SOAPHeaderElement
    • SOAPHeaderElement Methods
    • SOAPFault
    • Connections
    • Security Concerns Relative to SOAP
    • Exercise: Creating a SOAP Message
    • Exercise: Accessing a Service with a Servlet
  15. REST
    • Representational State Transfer
    • REST Characteristics
    • REST Elements
    • REST in Web Service Terms
    • REST: Another Option for Binding
    • Characterizing REST
    • REST Example
    • REST Design Principles
    • REST/SOAP Comparison
    • SOAP vs. REST
    • RESTing in Java
    • Security Concerns Relative to REST
    • Exercise: Working With REST (Optional)
  16. Designing RESTful Services
    • Effectively Designing RESTful Services
    • Best Practices for Endpoint Definition
    • Using Query Parameters
    • Best Practices for Exchanging Data
    • Working with HTTP GET and DELETE
    • Working with HTTP PUT
    • Working with HTTP POST
    • Scenario Used for RESTful Operations Discussion
    • Best Practices for HTTP Methods
    • Approaches to Handling Additional Operations
  17. Implementing REST with JAX-RS
    • JAX-RS and RESTful Services
    • Process for JAX-RS Implementation
    • JAX-RS Service Lifecycle Options
    • JAX-RS Service Class
    • @Path Annotation
    • JAX-RS Service Operation
    • HTTP Method Annotations
    • Content Negotiation
    • @Consumes Annotation
    • @Produces Annotation
    • Content Marshalling
    • JAX-RS Service Operation Implementation
    • Parameters
    • Implementing User Retrieval
    • Working with Parameters
    • Handling Exceptions
    • Consuming RESTful Services - Basic
    • Consuming RESTful Services – Advanced
    • JAX-RS Implementations
    • Exercise: Implementing REST with JAX-RS