OS X Training Solutions Icon

Mastering SOA and JEE Web Services Developers Workshop


5 Days Classroom Session
Classroom Registration
Individual:
$2695.00
Private Onsite Package

This course can be tailored to your needs for private, onsite delivery at your location.

Request a Private Onsite Price Quote

Professional Credits

IIBA (CDU)

ASPE is an IIBA Endorsed Education Provider of business analysis training. Select Project Delivery courses offer IIBA continuing development units (CDU) in accordance with IIBA standards.

NASBA (CPE)

NASBA continuing professional education credits (CPE) assist Certified Public Accountants in reaching their continuing education requirements.

PMI (PDU)

Select courses offer Leadership (PDU-L), Strategic (PDU-S) and Technical PMI professional development units that vary according to certification. Technical PDUs are available in the following types: ACP, PBA, PfMP, PMP/PgMP, RMP, and SP.

Certification
Overview

This course provides you with the understanding of how 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 J2EE web services.

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 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.

Basic concepts of SOA to the identification and design of web services
Web Services and the core technologies involved
Appreciate the concept of layered services including orchestration
Design, develop, and deploy real-world J2EE 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
Implement handlers to inject cross-cutting solutions for security, logging, auditing, and other needs
Upcoming Dates and Locations
Guaranteed To Run

There aren’t any public sessions currently scheduled for this course, but if you fill out the form below, we can tell you about how we can bring this course to you!

Course Outline

Session: Introduction to SOA

Lesson: 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

Lesson: 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

Lesson: 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

Lesson: 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

Session: SOA in Depth

Lesson: 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

Session: SOA Analysis and Design

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

Session: Path to Useful Web Services

Lesson: 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     

Lesson: Web Services, Java, and J2EE

  • XML  and Java APIs at a Glance         
  • XML Signature           
  • XML Digital Signatures          
  • XML Encryption        
  • JAXP               
  • JAXB               
  • JAX-WS         
  • SAAJ                
  • JAX-WSA and XWSS
  • Web Services APIs  
  • Web Services for J2EE (JSR109)          
  • J2EE and Web Services          
  • Web Services Metadata      
  • Web Services Stacks at a Glance     
  • WSIT               
  • Apache Axis2             
  • JBossWS      
  • JWSDP          
  • WebSphere WS        
  • Spring-WS   
  • Key Features              

Lesson: 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

Session: Foundation - XML and Java

Lesson: 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
  • TriveraTunes Purchase Order            
  • 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                
  • 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              

Lesson: 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              

Session: Binding – SOAP/REST    

Lesson: SOAP Overview                  

  • SOAP in a Nutshell  
  • Anatomy of a SOAP Message               
  • SOAP and HTTP          
  • A Typical Scenari-    
  • What is SOAP?           
  • SOAP Specification Provides:              
  • Why do I need SOAP?              
  • Simple Scenari-        
  • Less Simple Scenari-               
  • Uses of SOAP              
  • A Simple Example...                 
  • Remote Procedure Calls      
  • Example of SOAP RPC Call    
  • Example of Response
  • Exercise: SOAP in Action       

Lesson: 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

Lesson: 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)

Session: Description - WSDL        

Lesson: WSDL    

  • Describing Web Services              
  • WSDL in Practice              
  • WSDL Extensibility
  • WSDL/SOAP Namespaces            
  • WSDL Elements                 
  • WSDL Anatomy                  
  • <definitions> element  
  • <documentation> element         
  • <types> element              
  • <portType> and <operation>      
  • <binding> element          
  • <port> and <service> elements                  
  • Looking Ahead – WSDL 2.0
  • Exercise: WSDL in Action

Session: Web Services in Java – JAX-WS 

Lesson: JAX-WS Overview            

  • JAX-WS                  
  • JAX-WS Introduction      
  • JAX-WS Architecture      
  • JAX-WS vs. RMI 
  • What about JAX-RPC?   
  • JAX-WS Under the Hood
  • JAX-WS Basics  
  • JAX-WS Features              
  • Web Service Annotation Examples
  • JAX-WS Programming Model      
  • JAX-WS Handlers

Lesson: Working with JAX-WS    

  • JAX-WS Service
  • JAX-WS Development Process  
  • Bottom-up Building of a Web Service
  • Top-Down Building of a Web Service
  • Exercise: WSDL-Generated Service
  • JAX-WS Client
  • Types of JAX-WS Clients
  • JAX-WS Basic Client Operations                
  • Static Web Service Client             
  • Dynamic JAX-WS Client                  
  • DII JAX-WS Client              
  • SOAP Handlers 
  • Handlers Applied Via Declaration
  • Exercise: WSDL-Generated Client

Lesson: Handlers               

  • Handlers: The Basics     
  • WSEE and Handlers        
  • Handler Life Cycle           
  • Applying Handlers           
  • Handler Interface and Implementation                
  • SOAPMessageContext  
  • Example of Handler Class            
  • Configuring Handlers    
  • Web Service Handler Configuration
  • Using Handlers for Security
  • Exercise: Handlers in Action

Session: Advanced Web Services Topics
Lesson: Web Services for J2EE (WSEE)

  • WSEE & WSEE Server Programming Model
  • Server Programming Model                 
  • Servlets as Web Services    
  • EJBs as Web Services             
  • Routing SOAP requests to an EJB
  • WSDD            
  • WSDD Example         
  • WSEE Client Programming Model
  • Client Programming Model                  
  • Types of WSEE Clients            
  • WSEE Basic Client Operations            
  • Static WSEE Client  
  • Dynamic WSEE Client             
  • DII WSEE Client         
  • WSEE Client Packaging

Session: Discovery           

Lesson: Discovery Overview        

  • Issues with Broadly Scoped Discovery
  • Discovery Options
  • UDDI Overview
  • UDDI Issues                
  • What is WSIL?           
  • What is WS-Discovery?
  • Exercise: Discovery in Action              

Session: Security - WS-Security and Defenses

Lesson: XML Signature and Encryption

  • Cryptography Addresses Many Aspects of Security
  • Common Solutions to Big Three        
  • XML Challenges       
  • XML Signature           
  • XML Digital Signatures          
  • XML Signature Usage             
  • Standard For Digital Signature          
  • XML Encryption        
  • XML Encryption Usage           
  • XML Encryption Protects Data           

Lesson: WS-Security       

  • Securing a Web service        
  • Web Service Security Exposures      
  • Transport-Level Security     
  • Secure Sockets Layer (SSL)  
  • SSL In Action
  • When to Use Transport-Level Security          
  • Message-Level Security       
  • Web Services Security Roadmap     
  • WS-Security Enables Interoperability
  • Security Tokens; Example of Security Token                 
  • Message Authentication     
  • XML Signature  and Encryption          
  • Picture is Evolving  
  • What is XWSS?          
  • XWSS Provides Many Functions        
  • Exercise: XWSS in Action

Lesson: Securing Untrusted Input             

  • Input Data Attacks 
  • Protecting a Web Service    
  • Tenacious D                
  • Defending a Web Service    
  • Responding to Error State   
  • Best Practices for Untrusted Data
  • Defenses to Consider            
  • Additional Types of Attacks
  • Exercise: Insecure Web Services

Session: Best Practices

Lesson: SOA Best Practices

  • Planning
  • Standardizing
  • Designing
  • Managing
  • Implementing

Lesson: SOA Patterns

  • Direct Connections
  • Broker Interactions
  • Serial Process Flows
  • Serial and Parallel Processes

Lesson: SOA Anti-Patterns

  • SOA Adoption antipatterns
  • Service identification & design antipatterns
  • Service realization antipatterns
Who should attend

This is an intermediate and beyond level web services training course, designed for J2EE 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.

Pre-Requisites

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