Designing SOA with JBoss tools

download Designing SOA with JBoss tools

If you can't read please download the document

Transcript of Designing SOA with JBoss tools

Designing SOAwithJBoss tools

Eric D. SchabellJBoss Solution Architect08 June 2011

Overview

Design Patterns and SOA

Logical Inventory Layer PatternsUtility serviceJBoss ESB tooling

Entity serivceJBoss Teiid tooling

Task serviceJBoss Savara tooling

JBoss BPEL tooling

JBoss jBPM tooling

Definition of Design Pattern

A proven design solution for a common design problem

Formally documented in a consistent manner

Introduced by GOF 1994, used all over the software industry since then.

Example's of software development design patterns are:Singelton, Adaptor, Decorator Pattern, etc

SOA Design Pattern

A book written by Thomas Erl that quickly became popular within the SOA community

Defines a set of common design problems when implementing SOA

Some patterns can be solved by using a product like JBoss SOA Platform that implement patterns

Some patterns are design concepts and cannot be implement by a product, but may be assisted with tools

Some are pure design principles where tools and products won't help.

Scope of this session

For the scope of this session we will focus on Logical Inventory Layer Patterns:Are a set of patterns to identify and abstract task, utility and entity services.

PatternJBoss Tools

Utility ServiceJava, Bean Shell, EJB, Rules, etc

Entity ServiceHibernate, Data Services

Task ServiceRiftsaw (BPEL)

Overview

Design Patterns and SOA

Logical Inventory Layer PatternsUtility serviceJBoss ESB tooling

Entity serivceJBoss Teiid tooling

Task serviceJBoss Savara tooling

JBoss BPEL tooling

JBoss jBPM tooling

Utility Abstraction - Definition*

Problem: When non-business centric processing logic is packaged together with business specific logic, it results in the redundant implementation of common utility functions across different services

Solution: A service layer dedicated to utility processing is established, providing reusable utility services for the use by other services in the inventory.

* = according to the SOA Design Pattern Book

Utility Abstraction Definition by example

Example: Depending on country of delivery and product type different VAT must be used

Problem: if all services returning a price should calculate taxes independently there are allot of redundant code and multiple locations to maintain this code.

Solution: Create a utility service that depending on country of delivery and product type will return correct VAT.

Tip of the day: Using JBoss SOA-P the VAT utility service can be implemented as a business rule, which is easy to maintain and can be adopted to changes quickly.

Utility Abstraction - Examples

Examples of utility services may be:Notification Service

Logging Service

Audit Service

Tax calculation Service

etc

Utility Abstraction - Implementation

Can be implemented using various technologies like:Native Java

Business Rules

EJB's

etc

Screen shot of ESB Tooling

Demo ESB orchestration

Overview

Design Patterns and SOA

Logical Inventory Layer PatternsUtility serviceJBoss ESB tooling

Entity serivceJBoss Teiid tooling

Task serviceJBoss Savara tooling

JBoss BPEL tooling

JBoss jBPM tooling

Entity Abstraction - Definition*

Problem: Bundling both process-agnostic and process -specific business logic into the same service eventually results in the creation of redundant agnostic business logic across multiple services

Solution: An agnostic business service layer can be established, dedicated to services that base their functional context on existing business entities.

* = according to the SOA Design Pattern Book

Entity Abstraction - Definition by example

Example: Products are stored in a database with base prices, depending of customer discount and VAT the final product price must be calculated.

Problem: A service responsible for getting the prices for products in a quote returns products with the final prices. Another service which are used internally for financial reporting returns the products base price.

Solution: Using entity abstraction a service for returning products with base price are created and then a utility services can be used to calculate TAX etc.

Entity Abstraction - Examples

Business entity are typically good candidates for Entity services, likeProduct

Employee

Order

Invoice

etc

Entity Abstraction - Implementation

Simple cases Hibernate together with JAX-WS

Data virtualization products like JBoss Enterprise Data Services that can combine data from several sources and expose them as Web Services

Screen shot of Teiid designer

Overview

Design Patterns and SOA

Logical Inventory Layer PatternsUtility serviceJBoss ESB tooling

Entity serivceJBoss Teiid tooling

Task serviceJBoss Savara tooling

JBoss BPEL tooling

JBoss jBPM tooling

Process Abstraction - Definition

Problem: Grouping task-centric logic together with task-agnostic logic hinders the governance of the task-specific logic and the reuse of the agnostic logic

Solution: A dedicated parent business process service layer is established to support governance independence and the positioning of task service as potential enterprise resources.

Process Abstraction Definition by example

Example: A Policy Quote Service, which notifies sales about all outgoing quotes. (a task specific service)

Problem: If we don't divide entity and utility we won't achieve service reputability, but dividing them causes allot of complex dependency.

Solution: Using a orchestration solution to implement our task service we can visualize and monitor the interaction between services making it solution less complicated and loosely coupled.

Process Abstraction - Implementation

WS-CDL (using BPEL or BPMN)

jBPM

Screen shot or demo of SAVARA

Screen shot of BPEL Designer

SOA-P Development Workshop (5d)

Ask for it at your local Red Hat Partner Manager!

Demo jBPM5

Review

Design Patterns and SOA

Logical Inventory Layer PatternsUtility serviceJBoss ESB tooling

Entity serivceJBoss Teiid tooling

Task serviceJBoss Savara tooling

JBoss BPEL tooling

JBoss jBPM tooling

Questions?

Add title here

This is a standard slide for your content

Please dont forget to add your name in the footer otherwise there will be the placeholder Presenter Name. You can edit the footer information in the
menu VIEW --> MASTER --> SLIDE MASTER and then click in the text box below

Eric D. Schabell | [email protected] | @ericschabell