Open Source SOA

Jeff Davis

Publisher: Manning, 2009, 425 pages

ISBN: 1-933988-54-1

Keywords: Middleware, Java

Last modified: April 7, 2021, 6:30 p.m.

You can now build an enterprise-class SOA solution using just open source applications. But there's a catch. You'll have to decide which products to use and how to integrate them into a working whole. The areas to integrate range from business process management, complex event processing, messaging and middleware, and ESBs, to business rules. The task can be daunting.

If you are a developer or architect who'd like some help with this task, then Open Source SOA is the guide for you. You'll learn key SOA concepts and how these technologies fit into the SOA equation. You'll learn valuable ways to integrate them, based on hard-won experience by the author. And you'll discover why these open source products are a competitive alternative to expensive commercial solutions, and are in many cases superior.

  • Part I History and principles
    1. SOA essentials
      1. Brief history of distributed computing
        • Problems related to RPC-based solutions
        • Understanding SOAP's messaging styles
        • Advent of SOA
      2. The promise of web services for delivering SOA
      3. Understanding the core characteristics of SOA
        • Service interface/contract
        • Service transparency
        • Service loose coupling and statelessness
        • Service composition
        • Service registry and publication
      4. Technologies of a SOA platform
        • Business process management
        • Enterprise decision management
        • Enterprise service bus
        • Java Message Service
        • Registry
        • Service components and compositions
        • Web service mediation
      5. Introducing a SOA maturity model
      6. Summary
    2. Defining the Open SOA Platform
      1. Evaluating open source products
      2. Choosing a BPM solution
        • BPM product evaluation criteria
        • Open source BPM products
        • Selecting a BPM solution
        • Introducing JBoss jBPM
      3. Choosing an enterprise decision management solution
        • EDM product evaluation criteria
        • Open source EDM products
        • Selecting an EDM
        • Introducing JBoss Rules (Drools)
      4. Choosing an ESB
        • ESB product evaluation criteria
        • Open source ESB products
        • Selecting an ESB
        • Introducing Synapse as a lightweight ESB
      5. Choosing an ESP solution
        • What is event stream procesing?
        • Introducing Esper
      6. Choosing a registry
        • Registry evaluation criteria
        • Open source registry products
        • Selecting a registry
        • Introducing WSO2 Registry
      7. Choosing a service components and composites framework
        • Examining the Service Component Architecture
        • Introducing Apache Tuscany
      8. Choosing a web services mediation solution
      9. Summary
  • Part II Assembling components and services
    1. Creating services using Apache Tuscany
      1. What are service components and compositions?
      2. The SCA assembly model
        • Introducing the composite file
        • Configuring components
        • Defining services
        • Working with properties
        • Implementation options
        • Using references for dependency injection
        • Defining available bindings
      3. Summary
    2. Advanced SCA
      1. Configuration using component types
      2. SCA interaction models
        • Using conversations
        • Understanding callbacks
      3. Scripting language support
        • Creating a Ruby component
        • Creating a Java interface using the Ruby method signature
        • Modifying the service implementation class
        • Modifying the composition assembly
      4. Advanced Tuscany/SCA
        • Production deploym,ent
        • Introducing Service Data Objects (SDOs)
        • Advanced SDO features
      5. Summary
  • Part III Business process management
    1. Introducing jBPM
      1. BPM: the “secret sauce” of SOA
      2. History and overview of JBoss jBPM
        • Development lifecycle of a jBPM process
        • Graph-oriented programming and jBPM
      3. Understanding nodes
        • Node nodetype
        • Task-node nodetype
        • State nodetype
        • Mail-node nodetype
        • Decision nodetype
        • Fork and join nodetypes
      4. Using transitions
      5. Extending using actions
        • Action class property instantiation
        • Using action expressions
      6. Using events for capturing lifecycle changes in a process
      7. Managing context using variables
      8. Summary
    2. jBPM tasks
      1. What are tasks?
        • Task management using the jBPM  console
        • task element configuration
      2. Task user management
        • Actors and assignments
        • Understanding swimlanes
      3. Using timers
      4. Task controllers
      5. Developing with the task API
        • Identifying processes within a jBPM instance
        • Identifying running process instances for a given process
        • Finding open tasks  within a process instance
        • Finding all tasks assigned to a user
        • Funding all pooled tasks for an actor
        • Completing a task
      6. Summary
    3. Advanced jBPM capabilities
      1. Important enterprise features of jBPM
        • Superstates for grouping
        • Using subprocesses to manage complexity
        • Managing exceptions
        • Scripting with BeanShell
        • Audit logging
        • Understanding asynchronous continuations
      2. Integration with SCA/SDO
        • Using SCA client components for service integration
        • Service enabling jBPM
        • Developing the ListProcess service operation
        • Developing the CrteateProcesInstance service operation
      3. Summary
  • Part IV Event stream processing, integration, and mediation
    1. Complex events using Esper
      1. Business events in the enterprise
      2. Understanding events
        • BAM and ESP — what's the difference?
        • Event-driven Architecture and SOA
      3. What is Esper?
      4. Getting started with Esper
        • What are event objects?
        • Defining and registering query statements
        • Specifying listeners or subscribers
        • Configuration options
      5. EPL basics
        • Querying events
        • Using variables
        • Understanding views
        • Creating new event streams with named windows
      6. Advanced Esper
        • Extending with functions
        • Applying event patterns
        • Using JDBC for remote connectivity
      7. Service enabling Esper
        • Creating a framework and components
        • Esper service and session manager
        • SCA composite file
        • Testing with soapUI
      8. Summary
    2. Enterprise integration and ESBs
      1. The relationship between ESB and SOA
      2. Historical foundations of ESB
        • Core ESB capabilities
        • Appropriate uses of an ESB
        • Inappropriate uses of an ESB
      3. Introducing Apache Synapse
        • Protocol adapters
        • Message-oriented middleware
        • XML-based messaging
        • Intelligent routing and distribution
        • Message transformation
        • Tasks/timers
        • Quality of service/web mediation
        • Monitoring and administration
        • Extendable API
      4. Basic Apache Synapse message and service mediation
        • Simple message mediation example
        • Simple service mediation example
      5. Summary
    3. ESB implementation with Apache Synapse
      1. Learning Synapse through a case study
        • Phase 1: typical web service mediation using error handling, routing, and transport switching
        • Phase 2: protocol/transport bridging and event propagation
        • Phase 3: using tasks, scripting, and database integration
        • Phase 4: quality of service mediation
      2. Phase 1: simple web service mediation
        • Sales order initiation
        • Configuring the service mediation proxy and using validation mediation
        • Configuring XSLT mediation
        • Transport switching from HTTP to JMS
        • Transport switching from JMS to HTTP
      3. Phase 2: VFS, CSV, email, and message wiretap
        • Using the VFS transport
        • Working with CSV files
        • Exception handling and SMTP transport
        • Using the wiretap message pattern
      4. Phase 3: tasks, DB mediator, and iterator
        • Configuring Synapse tasks
        • Using the iterator mediator to split messages
        • Using the DB mediator
      5. Phase 4: QoS using Synapse
        • Implementing WS-Security
        • Using Synapse throttling mediator
      6. Summary
  • Part V Enterprise decision management
    1. Business rules using JBoss Drools
      1. Understanding business rules
        • Benefits and drivers of the business rule approach
        • Relationship to SOA
        • Characteristics of a rules engine
        • Business rules management systems
      2. Introducing Drools
        • Hello World, Drools!
        • Running Hello World, Drools!
      3. Drools Rule Language (DRL) overview
      4. Drools header elements
        • package
        • import
        • expander
        • global
        • function
      5. Defining rules in Drools
        • Modifying rule behavior with attributes
        • Conditional part of rule statement (when part)
        • Consequence part of rule statement (when part)
      6. Querying facts in Drools
      7. Drools RuleFlow for rule orchestration
      8. Alternatives to using Drools Rule Language
        • Using DSLs for business user authoring
        • Defining rules using decision tables
      9. Summary
    2. Implementing Drools
      1. Case study overview
        • Defining the DRL rules
        • Running as an embedded engine
        • User-friendly rules using a DSL
      2. Rules management using Drools Guvnor
        • Guvnor functionality overview
        • Rule authoring using Guvnor
      3. Developing decision services
        • What are decision services?
        • Designing the decision service
        • Implementing the decision service using Tuscany and Drools
        • Testing
      4. Summary


Open Source SOA

Reviewed by Roland Buresund

Very Good ******** (8 out of 10)

Last modified: May 21, 2010, 2:55 p.m.

This is not so much about OSS as it is about SOA. It is an excellent introduction to SOA concepts and its application thru software that just happens to be OSS.

If you're interested in SOA (and its universe of abbrevations), and at least can understand some XML and Java conceptually, this is for you.

Well worth reading.


There are currently no comments

New Comment


required (not published)