DESIGNING AND DEVELOPING HIGHER PERFORMANCE WEB SERVICES – GTWB04

Course Description

Building a web service is easy. Many products provide WS APIs right out of the box. Those that do not can readily be service-enabled. Virtually any modern homegrown application can be made to expose a service interface with the addition of a handful of annotations. As a last resort, applications can be service-enabled by crafting a simple Web service wrapper. Building services is easy. Building good services is another story.

The course offers practical knowledge regarding how to effectively design and develop high performance Web services. Students will be introduced to the theory, best practices, and strategies associated with Web service performance.

Concepts in this workshop are re-enforced through a combination of group discussion and hands-on exercises lab exercises.

TOPICS

  • Service elements and attributes
  • Performance, scalability, and reliability
  • XML limitations
  • XML performance options
  • Web service performance strategies
  • Non-XML services
  • Non-HTTP services
  • Topology, tools, and infrastructure
  • Requirements, testing, and verification
  • Designing for performance
  • Governing service performance

Objectives

After completing this course, the student should be able to:

  • Identify the key elements of a service and debunk service myths
  • Understand the tradeoffs, ambiguity, and common confusion regarding responsiveness, scalability, and reliability
  • Describe the limitations inherent in XML-based communication
  • Identify the options available for optimizing and accelerating XML messaging
  • Work with non-XML services
  • Identify key strategies for designing higher performing web services
  • Identify key components within a service oriented infrastructure and various vendor offerings
  • Gather responsiveness, scalability, and reliability requirements
  • Test Web services and record performance metrics
  • Govern Web services from a performance and scalability perspective

^^

Duration

2 days

^^

Target Audience

This course is applicable to Architects, Developers, Systems Administration personnel, and anyone else involved in designing, developing, and supporting high performance Web service environments.

^^

Course Prerequisites

A working knowledge of XML, WSDL, SOAP, and HTTP is required. An understanding of other WS standards and technologies is helpful, but not required. Previous hands-on experience is recommended, but not explicitly required.

^^

Suggested Follow on Courses

There are a number of options of suitable follow-on courses, depending on your business needs. Please contact us for further details.

^^

Course Content

CHAPTER 1. UNDERSTANDING SERVICES

Objects, components, services

When do I need a service?

Defining Services

Service Communication Analogy

Three Key Service Questions

Connecting the Dots

Anatomy of a Service

Dispelling Service Myths

CHAPTER 2. RESPONSIVENESS, SCALABILITY, AND RELIABILITY

Defining Performance

Understanding Responsiveness

Actual Responsiveness

Perceived Responsiveness

Understanding Scalability

Scalability Guidance

Understanding Reliability

Reliability Guidance

CHAPTER 3. XML PERFORMANCE

Historical Context for XML Performance

Parsing Strategies

XML Parsing Strategies – DOM

XML Parsing Strategies – SAX

XML Parsing Strategies – Pull

Comparing Parsing Strategies

Optimizing and Accelerating XML Messaging

Asynchronous Messaging

Web 1.0 vs Web 2.0

Asynchronous Performance

Performance Best Practices

CHAPTER 4. XML STRUCTURE AND SCHEMA STRUCTURE

XML Schema

XML Schema Impact

Schema and Web Services

Top down vs. Bottom up

Best Practices – Shorter Names

Avoid Excessive Nesting

Attributes vs. Elements

Primitive Types

Arrays

Review

CHAPTER 5. HIGH PERFORMANCE WEB SERVICES

WS Performance Strategies

Strategy #1 – Improve XML Performance

Key Elements

Analysis

Strategy #2 – Improve Transport Performance

Key Elements

Analysis

Strategy #3 – Non-XML Message Format

Key Elements

Analysis

Strategy #4 – Non-HTTP Protocol

Key Elements

Analysis

Strategy #5 – Scale the System

Key Elements

Analysis

Comparing the Strategies

CHAPTER 6. HIGH PERFORMANCE INFRASTRUCTURE

SOA Infrastructure and Tools

Network Appliances

Enterprise Service Bus

Service Container

Business Rules Engine

Business Activity Monitoring

Service & Policy Management

Business Process Engine

Service Registry

Service Repository

Development Tools

Tool Combinations

Performance Tools

CHAPTER 7. REQUIREMENTS, TESTING, AND VERIFICATION

Collecting performance expectations

Collecting performance expectations (cont’d)

Identifying performance requirements

Good vs. Bad Requirements

Documenting performance requirements

Contracts, policies, and SLAs: OASIS SOA-RM View

Governance by Policy

Policy Types

Policy Scope

Service Contracts

Service Contract Types

What About WSDL?

Service Level Agreements (SLAs)

Defining Service Levels

Testing Service Performance: Testing Introduction

Testing service performance (per request)

Testing service performance (load-based)

Verifying and Protecting SLAs and Upholding Contracts: Stages of Governance

Supporting Infrastructure

CHAPTER 8. GOVERNING SERVICE PERFORMANCE

Defining performance expectations

Identifying objective metrics and remediation

Enterprise-wide performance governance

Governance Life Cycle Stages

Design-time performance governance

Change-time performance governance

Run-time performance governance

Performance governance recommendations

Performance governance gotchas

CHAPTER 9. USING JAX-WS TO PARSE THE RAW XML

Working With Raw XML

Raw XML: Server Side

XML Handling Strategies

Parsing Using SAX

Parsing Using SAX (cont)

Parsing Using DOM

Raw XML: Client Side

Client Side Example

CHAPTER 10. REST SERVICES

Many Flavors of Services

Understanding REST

Principles of RESTful Services

REST Resource Examples

SOAP Equivalent Examples

REST vs SOAP Communication

More REST vs SOAP

REST vs SOAP

Famous RESTful Services

Additional Resources

^^

See more Web Services courses