48
Tal Portal JBoss Enterprise Consultant [email protected] JBoss integration and automation

Tal Portal JBoss Enterprise Consultant [email protected] Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Tal Portal

JBoss Enterprise Consultant

[email protected]

JBoss integration and automation

Page 2: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite(BPM + BRMS)

• Pergola Approval Request Scenario

Page 3: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite(BPM + BRMS)

• Pergola Approval Request Scenario

Page 4: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

SOA

Service Oriented Architecture

Page 5: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

The ESB Approach

Page 6: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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.

Page 7: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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

Page 8: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Enterprise Integration Patterns

Page 9: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite

• Pergola Approval Request Scenario

Page 10: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

This is a monster but it is a light one

Red Hat JBoss Fuse

Page 11: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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)

Page 12: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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)

Page 13: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - ActiveMQ

Page 14: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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

Page 15: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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.

Page 16: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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

Page 17: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache Camel

Page 18: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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.

Page 19: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - Camel

from

A

message

To

B

Apache

ActiveMQWebSphereMQ

Page 20: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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");

Page 21: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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

Page 22: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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

Page 23: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - Camel

X

Error Handling

Page 24: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - Camel

Page 25: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - Camel

Page 26: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - Camel

Page 28: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - CamelEnterprise Integration Patterns

Page 29: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - Camel

Page 30: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Apache - Camel

Page 31: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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

Page 32: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Composite can contain

Internal logic + exposed + consumed services

Switchyard

Page 33: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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.

Page 34: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite(BPM + BRMS)

• Pergola Approval Request Scenario

Page 35: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Redhat BPM Suite

Page 36: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Redhat BPM Suite

BRMS - business rules management system

Page 37: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Redhat BPM Suite

BPM - Business process management

BRMS - business rules management system

Page 38: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

• 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

Page 39: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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.

Page 40: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Extend palette with domain-specific, declarative service nodes

Domain-specific Processes

Redhat BPM Suite

Page 41: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Timer

Redhat BPM Suite

Page 42: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

BAM / Reporting – Process

Redhat BPM Suite - Reporting

Page 43: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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

Page 44: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Redhat BRMS

ExtractConvert

Data Model

Facts

JVM

GIT

Knowledge base

Rule Engine

Raw Data

Results

Page 45: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Agenda

• ESB Background

• JBoss Fuse ESB

• JBoss BPM Suite(BPM + BRMS)

• Pergola Approval Request Scenario

Page 46: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

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>

Page 47: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

<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

Page 48: Tal Portal JBoss Enterprise Consultant talpor@matrix.co Hat Middleware... · Apache - Camel Apache Camel is a versatile open-source integration framework based on known Enterprise

Thank You

Tal Portal

JBoss Enterprise Consultant

[email protected]