A survival guide in the complex landscape of open source SOA.
Until recently, many of the software technologies used for developing SOA-based solutions were limited to expensive, commercial offerings. However, that has now changed, and a compelling open source SOA platform can be implemented exclusively with open source products. Open Source SOA identifies a suite of open source products that can be used for a building SOA environment, and describes how they can be integrated by practitioners. It includes a hands-on introduction to the products selected; a multitude of source code examples; and implementation through real-life case studies.
about this book
Part I History and principles
1. SOA essentials
1.1. Brief history of distributed computing
1.2. The promise of web services for delivering SOA
1.3. Understanding the core characteristics of SOA
1.4. Technologies of a SOA platform
1.5. Introducing a SOA maturity model
2. Defining the Open SOA Platform
2.1. Evaluating open source products
2.2. Choosing a BPM solution
2.3. Choosing an enterprise decision management solution
2.4. Choosing an ESB
2.5. Choosing an ESP solution
2.6. Choosing a registry
2.7. Choosing a service components and composites framework
2.8. Choosing a web services mediation solution
Part II Assembling components and services
3. Creating services using Apache Tuscany
3.1. What are service components and compositions?
3.2. The SCA assembly model
4. Advanced SCA
4.1. Configuration using component types
4.2. SCA interaction models
4.3. Scripting language support
4.4. Advanced Tuscany/SCA
Part III Business process management
5. Introducing jBPM
5.1. BPM: the "secret sauce" of SOA
5.2. History and overview of JBoss jBPM
5.3. Understanding nodes
5.4. Using transitions
5.5. Extending using actions
5.6. Using events for capturing lifecycle changes in a process
5.7. Managing context using variables
6. jBPM tasks
6.1. What are tasks?
6.2. Task user management
6.3. Using timers
6.4. Task controllers
6.5. Developing with the task API
7. Advanced jBPM capabilities
7.1. Important enterprise features of jBPM
7.2. Integration with SCA/SDO
Part IV Event stream processing, integration, and mediation
8. Complex events using Esper
8.1. Business events in the enterprise
8.2. Understanding events
8.3. What is Esper?
8.4. Getting started with Esper
8.5. EPL basics
8.6. Advanced Esper
8.7. Service enabling Esper
9. Enterprise integration and ESBs
9.1. The relationship between ESB and SOA
9.2. Historical foundations of ESB
9.3. Introducing Apache Synapse
9.4. Basic Apache Synapse message and service mediation
10. ESB implementation with Apache Synapse
10.1. Learning Synapse through a case study
10.2. Phase 1: simple web service mediation
10.3. Phase 2: VFS, CSV, email, and message wiretap
10.4. Phase 3: tasks, DB mediator, and iterator
10.5. Phase 4: QoS using Synapse
Part V Enterprise decision management
11. Business rules using JBoss Drools
11.1. Understanding business rules
11.2. Introducing Drools
11.3. Drools Rule Language (DRL) overview
11.4. Drools header elements
11.5. Defining rules in Drools
11.6. Querying facts in Drools
11.7. Drools RuleFlow for rule orchestration
11.8. Alternatives to using Drools Rule Language
12. Implementing Drools
12.1. Case study overview
12.2. Rules management using Drools Guvnor
12.3. Developing decision services
About the Technology
Service Oriented Architecture, or SOA, has become embraced by many organizations as a means of improving reusability of software assets; providing better alignment between business and IT; and, increasing agility for responding to demands in the marketplace. This is accomplished by breaking individual units of functionality into services that can then be exposed through open protocols and standards.
- History and fundamentals of SOA.
- Evaluation criteria for selecting open source SOA products.
- Using Apache Tuscany to create protocol-neutral services:
- Understanding the Service Component Architecture (SCA).
- Defining services declaratively.
- Wiring together of service components.
- Deployment and production using Tuscany.
- Developing components using scripting languages.
- Understanding callbacks and message exchange patterns.
- Creating business processes using jBPM.
- Understanding and using tasks.
- Extending and integrating jBPM.
- Service-enabling jBPM using Apache Tuscany.
- Understanding ESP and its essential role in SOA.
- Using the Esper Query Language.
- Patterns for filtering and monitoring business events.
- Service-enabling Esper using Apache Tuscany.
- Integrating Esper with jBPM.
- Appropriate uses of an ESB in SOA.
- Core features and capabilities of Synapse.
- Using Synapse for service mediation.
- WS-Security, policies and service discrimination using Synapse.
- Complete end-to-end use case demonstrating Synapse in action.
- Role of business rules in SOA.
- Developing rules using the Drools Rule Language.
- Creating user-friendly rules using DSLs and decision tables.
- Using the Guvnor Business Rule Management System (BRMS).
- Exposing Drools as a decision services using Apache Tuscany.
An invaluable guide...excellent examples.
The in-depth comparisons of various open source SOA products are worth the price of the book.
...applicable to any SOA project, regardless of the platform.
Practical SOA solution that integrates key open source technologies.