SOA with Java: Realizing Service-Orientation with Java Technologies

Book description

“An outstanding depth-and-breadth resource for IT architects and Java professionals to understand and apply the marriage of SOA and modern Java.”

--Antonio Bruno, Enterprise Architecture and Strategy, digitalStrom

“A great self-contained book on SOA using flexible Java implementations....”

--Roger Stoffers, Hewlett Packard

“Provides clarity on abstract concepts and is filled with concrete examples of implementing SOA principles in Java environments.”

--Sanjay Singh, Certified SOA Architect

“...provides a holistic, comprehensive view on leveraging SOA principles and architecture for building and deploying performant Java services.”

--Suzanne D’Souza, KBACE Technologies

“Thomas Erl’s series of books on services technology have shaped, influenced, and strengthened a whole community of enterprise and solution architects’ thinking and solution development, and the much awaited SOA with Java book is an excellent addition to the series. It is a must-read.”

--Lalatendu Rath, Wipro Technologies

The Definitive Guide to Building Service-Oriented Solutions with Lightweight and Mainstream Java Technologies

Java has evolved into an exceptional platform for building Web-based enterprise services. In SOA with Java, Thomas Erl and several world-class experts guide you in mastering the principles, best practices, and Java technologies you need to design and deliver high-value services and service-oriented solutions.

You’ll learn how to implement SOA with lightweight frameworks, mainstream Java services technologies, and contemporary specifications and standards. To demonstrate real-world examples, the authors present multiple case study scenarios. They further demystify complex concepts with a plain-English writing style. This book will be valuable to all developers, analysts, architects, and other IT professionals who want to design and implement Web-based service-oriented architectures and enterprise solutions with Java technologies.

Topic Areas

  • Applying modern service-orientation principles to modern Java technology platforms

  • Leveraging Java infrastructure extensions relevant to service-oriented solutions

  • Exploring key concepts associated with SOA and service-orientation within the context of Java

  • Reviewing relevant Java platforms, technologies, and APIs

  • Understanding the standards and conventions that REST and SOAP services are built upon in relation to Java implementations

  • Building Java Web-based services with JAX-WS and JAX-RS

  • Applying the eight key principles of service-orientation design using Java tools and technologies

  • Creating Java utility services: architectural, design, and implementation issues

  • Constructing effective entity services: service contracts, messages, data access, and processing

  • Constructing task services, including detailed guidance on service composition

  • Using ESBs to support infrastructure requirements in complex services ecosystems

Table of contents

  1. About This eBook
  2. Title Page
  3. Copyright Page
  4. Dedication Page
  5. Contents at a Glance
  6. Contents
  7. Foreword by Mark Little
  8. Acknowledgments
  9. Chapter 1. Introduction
    1. 1.1 About This Book
    2. 1.2 Prerequisite Reading
    3. 1.3 How Principles and Patterns Are Used in This Book
    4. 1.4 Symbols and Figures
    5. 1.5 Additional Information
  10. Chapter 2. Case Study Examples
    1. 2.1 How Case Study Examples Are Used
    2. 2.2 Case Study Background: NovoBank
    3. 2.3 Case Study Background: SmartCredit Co.
  11. Part I: Fundamentals
    1. Chapter 3. Fundamental SOA Concepts
      1. 3.1 Basic Terminology and Concepts
      2. 3.2 Further Reading
    2. Chapter 4. Basic Java Distributed Technologies
      1. 4.1 Java Distributed Computing Basics
      2. 4.2 Java Distributed Technologies and APIs
      3. 4.3 XML Standards and Java APIs
      4. 4.4 Building Services with Java Components
      5. 4.5 Java Vendor Platforms
    3. Chapter 5. Web-Based Service Technologies
      1. 5.1 SOAP-Based Web Services
      2. 5.2 REST Services
    4. Chapter 6. Building Web-Based Services with Java
      1. 6.1 JAX-WS
      2. 6.2 Java Implementations of WS-* Standards
      3. 6.3 JAX-RS
  12. Part II: Services
    1. Chapter 7. Service-Orientation Principles with Java Web-Based Services
      1. 7.1 Service Reusability
      2. 7.2 Standardized Service Contract
      3. 7.3 Service Loose Coupling
      4. 7.4 Service Abstraction
      5. 7.5 Service Composability
      6. 7.6 Service Autonomy
      7. 7.7 Service Statelessness
      8. 7.8 Service Discoverability
    2. Chapter 8. Utility Services with Java
      1. 8.1 Inside the Java Utility Service
      2. 8.2 Utility Service Design and Implementation
      3. 8.3 Utility Service Types
    3. Chapter 9. Entity Services with Java
      1. 9.1 Inside the Java Entity Service
      2. 9.2 Java Entity Service Design and Implementation
  13. Part III: Service Composition and Infrastructure
    1. Chapter 10. Task Services with Java
      1. 10.1 Inside a Task Service
      2. 10.2 Building Task Services
    2. Chapter 11. Service Composition with Java
      1. 11.1 Inside Service Compositions
      2. 11.2 Java Service Composition Design and Implementation
      3. 11.3 Service and Service Composition Performance Guidelines
    3. Chapter 12. ESB as SOA Infrastructure
      1. 12.1 Basic Traditional Messaging Frameworks
      2. 12.2 Basic Service Messaging Frameworks
      3. 12.3 Common ESB Features Relevant to SOA
  14. Part IV: Appendices
    1. Appendix A. Case Study Conclusion
      1. A.1 NovoBank
      2. A.2 SmartCredit Co.
    2. Appendix B. Service-Orientation Principles Reference
    3. Appendix C. SOA Design Patterns Reference
      1. Agnostic Capability
      2. Agnostic Context
      3. Agnostic Sub-Controller
      4. Asynchronous Queuing
      5. Atomic Service Transaction
      6. Brokered Authentication
      7. Canonical Expression
      8. Canonical Protocol
      9. Canonical Resources
      10. Canonical Schema
      11. Canonical Schema Bus
      12. Canonical Versioning
      13. Capability Composition
      14. Capability Recomposition
      15. Compatible Change
      16. Compensating Service Transaction
      17. Composition Autonomy
      18. Concurrent Contracts
      19. Content Negotiation
      20. Contract Centralization
      21. Contract Denormalization
      22. Cross-Domain Utility Layer
      23. Data Confidentiality
      24. Data Format Transformation
      25. Data Model Transformation
      26. Data Origin Authentication
      27. Decomposed Capability
      28. Decoupled Contract
      29. Direct Authentication
      30. Distributed Capability
      31. Domain Inventory
      32. Dual Protocols
      33. Endpoint Redirection
      34. Enterprise Inventory
      35. Enterprise Service Bus
      36. Entity Abstraction
      37. Entity Linking
      38. Event-Driven Messaging
      39. Exception Shielding
      40. Federated Endpoint Layer
      41. File Gateway
      42. Functional Decomposition
      43. Idempotent Capability
      44. Intermediate Routing
      45. Inventory Endpoint
      46. Legacy Wrapper
      47. Lightweight Endpoint
      48. Logic Centralization
      49. Message Screening
      50. Messaging Metadata
      51. Metadata Centralization
      52. Multi-Channel Endpoint
      53. Non-Agnostic Context
      54. Official Endpoint
      55. Orchestration
      56. Partial State Deferral
      57. Partial Validation
      58. Policy Centralization
      59. Process Abstraction
      60. Process Centralization
      61. Protocol Bridging
      62. Proxy Capability
      63. Redundant Implementation
      64. Reliable Messaging
      65. Reusable Contract
      66. Rules Centralization
      67. Schema Centralization
      68. Service Agent
      69. Service Broker
      70. Service Callback
      71. Service Data Replication
      72. Service Decomposition
      73. Service Encapsulation
      74. Service Façade
      75. Service Grid
      76. Service Instance Routing
      77. Service Layers
      78. Service Messaging
      79. Service Normalization
      80. Service Perimeter Guard
      81. Service Refactoring
      82. State Messaging
      83. State Repository
      84. Stateful Services
      85. Termination Notification
      86. Three-Layer Inventory
      87. Trusted Subsystem
      88. UI Mediator
      89. Uniform Contract
      90. Utility Abstraction
      91. Validation Abstraction
      92. Version Identification
    4. Appendix D. The Annotated SOA Manifesto
      1. The Annotated SOA Manifesto
  15. About the Authors
    1. Thomas Erl
    2. Andre Tost
    3. Satadru Roy
    4. Philip Thomas
  16. About the Foreword Contributor
    1. Mark Little
  17. About the Contributors
    1. Raj Balasubramanian
    2. David Chou
    3. Thomas Plunkett
  18. Index

Product information

  • Title: SOA with Java: Realizing Service-Orientation with Java Technologies
  • Author(s): Thomas Erl, Andre Tost, Satadru Roy, Philip Thomas, Raj Balasubramanian, David Chou, Thomas Plunkett
  • Release date: June 2014
  • Publisher(s): Pearson
  • ISBN: 9780133859096