Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache...

Preview:

Citation preview

Tal Portal

JBoss Enterprise Consultant

talpor@matrix.co.il

JBoss integration and automation

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite(BPM + BRMS)

• Pergola Approval Request Scenario

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite(BPM + BRMS)

• Pergola Approval Request Scenario

SOA

Service Oriented Architecture

The ESB Approach

Enterprise Integration Patterns

What Are Enterprise Integration Patterns?

Enterprise Integration Patterns is a book by Gregor Hohpeand Bobby Woolf and describes 65 design patterns for the use of enterprise application integration and message-oriented middleware in the form of a pattern language.

Enterprise Integration Patterns

This patterns are organized into the following categories:

• Integration Styles• Messaging Systems• Messaging Channels• Message Construction• Message Routing• Message Transformation• Messaging Endpoints• System Management

Enterprise Integration Patterns

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite

• Pergola Approval Request Scenario

This is a monster but it is a light one

Red Hat JBoss Fuse

Red Hat JBoss Fuse

Lightweight, flexible integration platform that enables rapid integration across the extended enterprise on-premise or in the cloud.

JBoss Fuse includes modular integration capabilities, a new style enterprise service bus (ESB)

Red Hat JBoss Fuse

• Apache ActiveMQ (Messaging)• Apache CXF (Web Services/REST)• Apache Karaf (OSGI)• Apache Camel (Routing, EIP)• SwitchYard (SCA*)• Fuse Fabric (Clustering Management)

* Service Component Architecture (SCA) is a set of specifications which describe a model for building applications

and systems using a Service-Oriented Architecture (SOA)

Apache - ActiveMQ

Apache - ActiveMQ

Apache ActiveMQ ™ is the most popular and powerful open source messaging andIntegration Patterns server.

Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features

Language ClientsJMS, ActionScript 3, Ajax, C, C++, C# and .Net, Delphi, Erlang, Flash/ActionScript, Haskell, JavaScript - Ajax or WebSocketsPerl, PHP, Pike, Python, Ruby and Rails support via ActiveMessaging, Smalltalk, WebSockets

Protocols SupportedOpenWire, REST, Stomp, WS Notification, XMPP, AMQPand more

Apache - CXF

Apache CXF is an open source services framework.

CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS.

These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.

Apache - Karaf

Apache Karaf is a small OSGI based runtime which provides a

lightweight container onto which various components and

applications can be deployed.

features supported by the Karaf:

Dynamic configurationLogging SystemProvisioningNative OS integrationExtensible Shell consoleRemote accessSecurity framework based on JAASManaging instances

Based on Apache Felix Framework

Apache Camel

Apache - Camel

Apache Camel is a versatile open-source integration framework based on known Enterprise Integration Patterns.

Camel empowers you to define routing and mediation rules in a variety of domain-specific languages, including a Java-based Fluent API, Spring or Blueprint XML Configuration files, and a Scala DSL. This means you get smart completion of routing rules in your IDE, whether in a Java, Scala or XML editor.

Uses URIs to work directly with any kind of Transport or messaging model such as HTTP, ActiveMQ, JMS, JBI, SCA, MINA or CXF, as well as pluggable Components and Data Format options.

Apache Camel lets you work with the same API regardless which kind of Transport is used.

Apache - Camel

from

A

message

To

B

Apache

ActiveMQWebSphereMQ

Apache - Camel

from

A

from(A).filter(isBlueCar).to(B);

To

B

Apache

ActiveMQWebSphereMQ

Endpoint A = endpoint("activemq:queue:quote");

Endpoint B = endpoint("mq:quote");

Apache - Camel

<camelContext>

<route>

<from uri="activemq:NewOrders"/>

<choice>

<when>

<xpath>/order/product = 'widget'</xpath>

<to uri="activemq:Orders.Widgets"/>

</when>

<otherwise>

<to uri="activemq:Orders.Gadgets"/>

</otherwise>

</choice>

</route>

</camelContext>

Content Based Router - XML DSL

from("file:inbox/orders")

Endpoints as URIs

Apache - CamelStandard JVM object marshalling

Serialization

String

Standard JVM object marshalling

Object marshalling

Avro

JSON

Protobuf

Object/XML marshalling

Castor

JAXB

XmlBeans

XStream

JiBX

Object/XML/Webservice

marshalling

SOAP

Direct JSON / XML marshalling

XmlJson

Flat data structure marshalling

BeanIO

Bindy

CSV

EDI

Flatpack DataFormat

Domain specific marshalling

HL7 DataFormat

Compression

GZip data format

Zip DataFormat

Zip File DataFormat

Security

Crypto

PGP

XMLSecurity DataFormat

Misc.

Base64

Custom DataFormat - to use your own custom implementation

RSS

TidyMarkup

SysLog

ICal

Apache - Camel

X

Error Handling

Apache - Camel

Apache - Camel

Apache - Camel

Apache - CamelEnterprise Integration Patterns

Apache - Camel

Apache - Camel

SwitchYard is a component-baseddevelopment framework focused on building structured, maintainable services and applications using the concepts and best practices of SOA.

A uniform application model augments Apache Camel, joining Java EE, BPM, rules, orchestration, and routing into a cohesive development model and runtime.

Switchyard

Composite can contain

Internal logic + exposed + consumed services

Switchyard

Fuse Fabric

Fuse Fabric technology enable distributed

management of large clusters of ESBs.

Fuse has a Management Console from which you can manage the installation of your software across a cluster.

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite(BPM + BRMS)

• Pergola Approval Request Scenario

Redhat BPM Suite

Redhat BPM Suite

BRMS - business rules management system

Redhat BPM Suite

BPM - Business process management

BRMS - business rules management system

• A combination of modeling, automation, execution, control, measurement and optimization of business activity flows.

• Modeling - Identify, define, and make a representation of the complete process

• Automation - The work that is done to assure the smooth execution of the process instances

• Execution - Instances of a process are performed

• Control, Measurement - Making sure that the process follows the designed course and determine how well the process is working

• Optimization - discipline of BPM is an ongoing activity that builds over time to steadily improve the measures of the process.

BPM - Business Process Management

Redhat BPM Suite

What is BPM?

Business Process Management

Redhat BPM Suite

A business process - process that describes the order in which a series

of steps need to be executed, using a flow chart.

Extend palette with domain-specific, declarative service nodes

Domain-specific Processes

Redhat BPM Suite

Timer

Redhat BPM Suite

BAM / Reporting – Process

Redhat BPM Suite - Reporting

Redhat BRMS

When

The bank account move is more then 50k

and

The account has more then 5 moves in the past 30 days

Then

Send alert to reports log

Redhat BRMS

ExtractConvert

Data Model

Facts

JVM

GIT

Knowledge base

Rule Engine

Raw Data

Results

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite(BPM + BRMS)

• Pergola Approval Request Scenario

Pergola Approval Request Scenario

בקשה להיתר

בניית פרגולה

WEBמערכת מייצרת קובץ בקשה

תיקיית קבצי בקשה

pergola-approval-request.xml

,מפעיל חוקים לבדיקת הפנייהBPMה

פונה לוועדה מקומית לאישור הבקשה

ESBומחזיר תשובה ל

פונה לוועדה מקומית לאישור הבקשה

בודק באמצעות חוקים את נתוני הבקשהREST

גודל הפרגולה•

גג/גודל החצר•

עיר•

רחוב•

•...

<PergolaApprovalRequest>

<HomeAddress>

<City>Tel Aviv</City>

<Street>Hyarden 5</Stree

<ApartmentNumber>10</ApartmentNumber>

</HomeAddress>

<IsOnYard>true</IsOnYard> - האם בחצר

<IsOnRoof>false</IsOnRoof> - האם בגג

<PergolaSize>25</PergolaSize>

<YardOrRoofSize>160</YardOrRoofSize> - גודל הגג או החצר

</PergolaApprovalRequest>

<PergolaApprovalRequest>

<HomeAddress>

<City>Tel Aviv</City>

<Street>Hyarden 5</Street>

<ApartmentNumber>10</ApartmentNumber>

</HomeAddress>

<IsOnYard>true</IsOnYard> - האם בחצר

<IsOnRoof>false</IsOnRoof> - האם בגג

<PergolaSize>25</PergolaSize> - גודל הפרגולה המבוקש

<YardOrRoofSize>160</YardOrRoofSize> - גודל הגג או החצר

</PergolaApprovalRequest>

Pergola Approval Request Scenario

Thank You

Tal Portal

JBoss Enterprise Consultant

talpor@matrix.co.il

Recommended