API Design & Management

Artificial Intelligence (AI)

Big Data


Business Technology

Cloud Computing




Digital Transformation

Internet of Things (IoT)

Machine Learning


Robotic Process Automation (RPA)

Service Governance

Service Security

Service-Oriented Architecture (SOA)

Spanish Courses & Exams

Arcitura Patterns Site

Arcitura on YouTube

Arcitura on LinkedIn

Arcitura on Facebook

Arcitura on Twitter

Community Home

Arcitura Books Published by Pearson Education

Partner Program

Onsite / Online Exams

Onsite / Online Training

Trainer Development

Home Study Solutions

Contact Arcitura


Workshop Scheduler

Download Catalog (PDF)




Artificial Intelligence Specialist

Big Data Architect

Big Data Consultant

Big Data Engineer

Big Data Governance Specialist

Big Data Professional

Big Data Science Professional

Big Data Scientist

Blockchain Architect

Business Technology Professional

Cloud Architect

Cloud Governance Specialist

Cloud Professional

Cloud Security Specialist

Cloud Storage Specialist

Cloud Technology Professional

Cloud Virtualization Specialist

Containerization Architect

Cybersecurity Specialist

DevOps Specialist

Digital Transformation Data Science Professional

Digital Transformation Data Scientist

Digital Transformation Intelligent Automation Professional

Digital Transformation Intelligent Automation Specialist

Digital Transformation Security Professional

Digital Transformation Security Specialist

Digital Transformation Specialist

Digital Transformation Technology Architect

Digital Transformation Technology Professional

IoT Architect

Machine Learning Specialist

Microservice Architect

RPA Specialist

Service API Specialist

Service Governance Specialist

Service Security Specialist

Service Technology Consultant

SOA Analyst

SOA Architect

SOA Professional

Acclaim/Credly Badges

Pearson Vue Exams


The Pearson Digital Enterprise Series From Thomas Erl

SOA with JAVA: Realizing Service-Orientation with Java Technologies

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 (
Referenced Specifications (
The Service Technology Magazine (
Service-Orientation (
What Is REST? (
What Is Cloud? (
SOA and Cloud Computing Design Patterns (,
SOA Certified (SOACP) Professional (
Cloud Certified Professional (CCP) (
Big Data Science Certified Professional (BDSCP) (
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

Chapter 3: Fundamental SOA Concepts

3.1 Basic Terminology and Concepts
Service-Oriented Computing
Service-Oriented Architecture (SOA)
SOA Manifesto
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
Java EE APIs
Contexts and Dependency Injection
Java EE Connector Architecture
Session EJBs
Persistence Entities
Service-Orientation Principles and the EJB Model
Message-Driven Beans
Security in Java EE
4.3 XML Standards and Java APIs
XML Schema Definition
4.4 Building Services with Java Components
Components as Services
Application Protocols
Service Contracts
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-*)
SOAP with Attachments (SwA)
Web Services Distributed Management
Common Web Services Middleware
Enterprise Service Bus (ESB)
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
Web Services Engines and Toolkits
6.2 Java Implementations of WS-* Standards
Advanced Web Services Standards and Frameworks
Service Component Architecture
6.3 JAX-RS
Implementing JAX-RS
Implementing REST Services
Uniform Contract
REST Service Support

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
Spring MVC
Commons Logging and Log4J
Utility Services as Web-Based Services
Sending XML Data as a String
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

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

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