Contents

Foreword

CHAPTER 1: Introduction

1.1 About This Book

Objectives of This Book

Who This Book Is For

What This Book Does Not Cover

1.2 Prerequisite Reading

How This Book Is Organized

Part I: Fundamentals

Chapter 3: Fundamental SOA Concepts

Chapter 4: Basic Java Distributed Technologies

Chapter 5: Web-Based Service Technologies

Chapter 6: Building Web-Based Services with Java

Part II: Services

Chapter 7: Service-Orientation Principles with Java Web-Based Services

Chapter 8: Utility Services with Java

Chapter 9: Entity Services with Java

Part III: Service Composition and Infrastructure

Chapter 10: Task Services with Java

Chapter 11: Service Composition with Java

Chapter 12: ESB as SOA Infrastructure

Part IV: Appendices

Appendix A: Case Study Conclusion

Appendix B: Service-Orientation Principles Reference

Appendix C: SOA Design Patterns Reference

Appendix D: The Annotated SOA Manifesto

1.3 How Principles and Patterns Are Used in This Book

1.4 Symbols and Figures

1.5 Additional Information

Updates, Errata, and Resources (www.servicetechbooks.com)

Referenced Specifications (www.servicetechspecs.com)

The Service Technology Magazine (www.servicetechmag.com)

Service-Orientation (www.serviceorientation.com)

What Is REST? (www.whatisrest.com)

What Is Cloud? (www.whatiscloud.com)

SOA and Cloud Computing Design Patterns (www.soapatterns.org, www.cloudpatterns.org)

SOA Certified (SOACP) Professional (www.soaschool.com)

Cloud Certified Professional (CCP) (www.cloudschool.com)

Big Data Science Certified Professional (BDSCP) (www.bigdatascienceschool.com)

Notification Service

CHAPTER 2: Case Study Examples

2.1 How Case Study Examples Are Used

Style Characteristics

Relationship to Abstract Content

Code Samples

2.2 Case Study Background: NovoBank

Technical Infrastructure

Automation Solutions

Business Obstacles and Goals

Future IT Roadmap

1. Build Reusable Business Services

2. Consolidate Information

3. Improve Channel Experience

4. Build Services Infrastructure

2.3 Case Study Background: SmartCredit Co.

Technical Infrastructure

Automation Solutions

Business Goals

Future IT Roadmap

PART I: FUNDAMENTALS

CHAPTER 3: Fundamental SOA Concepts

3.1 Basic Terminology and Concepts

Service-Oriented Computing

Service-Orientation

Service-Oriented Architecture (SOA)

SOA Manifesto

Services

Cloud Computing

IT Resources

Service Models

Agnostic Logic and Non-Agnostic Logic

Service Inventory

Service Portfolio

Service Candidate

Service Contract

Service-Related Granularity

Service Profiles

SOA Design Patterns

3.2 Further Reading

CHAPTER 4: Basic Java Distributed Technologies

4.1 Java Distributed Computing Basics

Java SE Architecture

Java EE Architecture

The Beginning of Java EE

Application Packaging and Deployment

Deployment Descriptors

Java EE Architectural Tiers

4.2 Java Distributed Technologies and APIs

Java SE APIs

RMI

RMI / IIOP

JNDI

JDBC

Java EE APIs

Contexts and Dependency Injection

JTA

Java EE Connector Architecture

EJB

Session EJBs

Persistence Entities

Service-Orientation Principles and the EJB Model

JMS

Message-Driven Beans

Security in Java EE

4.3 XML Standards and Java APIs

XML

XML Schema Definition

XSLT

JAXP

JAXB

4.4 Building Services with Java Components

Components as Services

Application Protocols

Service Contracts

Location

Operations

Messages

Further Considerations

Components as Services and Service-Orientation

Standardized Service Contract

Service Loose Coupling

Service Abstraction

Service Discoverability

4.5 Java Vendor Platforms

GlassFish Enterprise Server

IBM WebSphere Application Server

IBM WebSphere Application Server Community Edition

Oracle WebLogic Server

CHAPTER 5: Web-Based Service Technologies

5.1 SOAP-Based Web Services

Extensibility of Web Services Standards (WS-*)

WS-Addressing

SOAP with Attachments (SwA)

WS-ReliableMessaging

WS-Transaction

WS-Security

WS-Policy

Web Services Distributed Management

Common Web Services Middleware

Enterprise Service Bus (ESB)

Orchestration

Management and Monitoring

Registries and Repositories

Service Construction and Assembly

5.2 REST Services

HTTP Response Codes

Resources and Addresses

Service Request

Service Response

Service Request

Service Response

HTTP Methods

Resource Representations

The ACCEPT Header

CHAPTER 6: Building Web-Based Services with Java

6.1 JAX-WS

SAAJ

Handlers

Web Services Engines and Toolkits

JAXR

6.2 Java Implementations of WS-* Standards

Advanced Web Services Standards and Frameworks

Service Component Architecture

Spring-WS

6.3 JAX-RS

Implementing JAX-RS

Implementing REST Services

Scalability

Statelessness

Uniform Contract

Cacheability

Addressability

Security

REST Service Support

PART II: SERVICES

CHAPTER 7: Service-Orientation Principles with Java Web-Based Services

7.1 Service Reusability

Agnostic Functional Contexts

Highly Generic Service Logic

Generic and Extensible Service Contracts

Concurrent Access to Service Logic

7.2 Standardized Service Contract

Top-Down vs. Bottom-Up

Mapping Between Java and WSDL

Wrapped Document/Literal Contracts

Implicit and Explicit Headers

Explicit Headers

Implicit Headers

No Headers

Data Mapping with REST

Conversion Between JSON and POJOs

Binary Data in Web Services

Binary Data in REST Services

Use of Industry Standards

7.3 Service Loose Coupling

Separation of Contract and Implementation

Independent Functional Contexts

Service Consumer Coupling

7.4 Service Abstraction

Abstracting Technology Details

Hiding Service Details

Document Constraints

7.5 Service Composability

Runtime Environment Efficiency

Service Contract Flexibility

Standards-Based Runtime

7.6 Service Autonomy

Well-Defined Functional Boundary

Runtime Environment Control

High Concurrency

7.7 Service Statelessness

Orchestration Infrastructure

Session State

Storing State

7.8 Service Discoverability

Design-Time Discoverability

Runtime Discoverability

Service Registries

CHAPTER 8: Utility Services with Java

8.1 Inside the Java Utility Service

Architectural Considerations

Utility Service Taxonomy

8.2 Utility Service Design and Implementation

Utility Service Design

Utility Services and Java Editions

Utility Services in Java SE

Utility Services in Java EE

Utility Services and Open-Source Frameworks

Spring Framework

Transaction Management

Data Access Objects

Object-Relational Mapping

JMS

JMX

JCA

Spring MVC

Hibernate

Commons Logging and Log4J

Utility Services as Web-Based Services

Sending XML Data as a String

Utilizing <xsd:any/>

Provider-Style Web Service Logic in JAX-WS

Building REST Utility Services

Testing Considerations

Packaging Considerations

8.3 Utility Service Types

Omni Utility Services

Design Considerations

Service Implementation

Service Consumption

Resource Utility Services

Persistence/Data Access Resources

Messaging Resources

Transaction Resources

Design Considerations

Service Implementation

Service Consumption

Micro-Utility Services

Design Considerations

Service Implementation

Service Consumption

Wrapper Utility Services

Design Considerations

Service Implementation

Service Consumption

CHAPTER 9: Entity Services with Java

9.1 Inside the Java Entity Service

Architectural Considerations

Domain Entities vs. Message Entities

Data Aggregation

Data Access Modes

Change Notifications

9.2 Java Entity Service Design and Implementation

Entity Service Design

Designing Domain Entities and Message Entities

Designing Stateless Entity Services

Designing Business-Relevant Entity Services

Designing Generic Entity Services

Designing Aggregating Entity Services

Entity Service Implementation

Java Editions

Entity Services as Web-Based Services

Entity Web Services Using SOAP

REST Entity Services

Read-Only and Read-Write Resources

Resource Granularity

Resource Creation and Location

Request Message

Response Message

Resource Relationships

Request Message

Response Message

Request Message

Resource Collections

Request Message

Response Message

Aggregate Entities

Request Message

Response Message

Open-Source Frameworks

Testing Considerations

Java Packaging Considerations

PART III: SERVICE COMPOSITION AND INFRASTRUCTURE

CHAPTER 10: Task Services with Java

10.1 Inside a Task Service

Performance Considerations

10.2 Building Task Services

Implementation Considerations

Web-Based Task Services

Task Services with SOAP and WSDL

Task Services with REST

Testing Considerations

Packaging Considerations

CHAPTER 11: Service Composition with Java

11.1 Inside Service Compositions

Service Composition Roles

Compositions and MEPs

Synchronous and Asynchronous Invocation

Service Level Agreements (SLAs)

11.2 Java Service Composition Design and Implementation

Composition Logic: Coding vs. Orchestration

REST Service Composition Considerations

Composition Member Endpoints

Error Handling

Schema Type Reuse

Web-Based Services vs. Java Components

Packaging, Testing and Deploying Composed Services

11.3 Service and Service Composition Performance Guidelines

Measuring Performance

Testing Performance

Caching

Data Grids

REST Caching

Scaling Out Services with State

Handling Failures

Parsing and Marshaling

CHAPTER 12: ESB as SOA Infrastructure

12.1 Basic Traditional Messaging Frameworks

RPC vs. Messaging

Technology Coupling

Spatial Coupling

Temporal Coupling

Message Producers and Message Consumers

12.2 Basic Service Messaging Frameworks

Basic Service Message Processing without ESBs

Message Routing without an ESB

Message Transformation without an ESB

Basic Service Message Processing with ESBs

Message Routing with an ESB

Message Transformation with an ESB

12.3 Common ESB Features Relevant to SOA

Service Lookup and Invocation

Service Processing

Service Composition Support

REST API Management Support

PART IV: APPENDICES

APPENDIX A: Case Study Conclusion

A.1 NovoBank

A.2 SmartCredit Co.

APPENDIX B: Service-Orientation Principles Reference

APPENDIX C: SOA Design Patterns Reference

APPENDIX D: The Annotated SOA Manifesto

About the Authors

Thomas Erl

Andre Tost

Satadru Roy

Philip Thomas

About the Foreword Contributor

Mark Little

About the Contributors

Raj Balasubramanian

David Chou

Thomas Plunkett

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset