WSO2 Enterprise Service Bus is a lightweight, high-performance ESB, which is configuration driven, extensible and scalable to fit enterprise integration needs. It comes with the runtime, tooling, and analytics packed in a single release. The latest version (5.0) includes ESB analytics, mediation debugger, data mapper and support for JMS 2.0 and WebSocket transports.
7. WSO2 Enterprise Service Bus
7
● High
performance:
The
fastest
open
source
ESB,
lightweight
● Comprehensive:
○ Support
for
REST,
SOAP,
WS-‐*
standards
○ Support
for
domain
specific
solu.ons
(SAP,
FIX,
HL7)
○ 150+
Connectors
(Salesforce,
JIRA,
Twi^er,
LDAP,
Facebook
and
more)
● Interoperable:
Supports
wider
range
of
integra.on
scenarios
● Scalable:
Scalable
and
extensible
architecture
8. WSO2 Enterprise Service Bus
8
● Low
footprint:
Lower
processing
power,
memory
and
space
u.liza.on
● Easy
to
use:
Configure
and
re-‐use,
based
on
visual
tooling
● Measurable:
Equipped
with
ESB
specific
analy9cs
● Cost-‐effec7ve:
Open
source,
pay
for
ac.ve
instances
only
● Complete:
Core
of
the
complete
Integra9on
Pla>orm
9. ESB: Part of WSO2 Integration
Platform
9
Complete
Integra.on
Pla:orm
11. Connect with WSO2 ESB
11
● Transports:
Support
for
web
(HTTP),
files
(VFS),
e-‐mail
(POP,
IMAP)
and
more..
● Formats/
Protocols:
XML,
JSON,
CSV,
EDI,
SOAP,
REST
and
more..
● Domain
specific
apps:
Financial
Services
(FIX),
Healthcare
(HL7)..
● COTS:
SAP,
IBM
WebSphere
MQ,
MSMQ
and
more..
● Cloud
apps:
Salesforce,
Google
Apps,
Twi^er,
JIRA
and
more..
● Custom
extensions:
Handles
proprietary/
non-‐standard
integra.on
cases
12. ESB Connectors
12
● ‘Cloud
to
Cloud’
integra.on
● ‘Cloud
to
Enterprise’
integra.on
● 150+
Connectors
from
the
ESB
Connector
Store
○ Download
for
free
h^ps://store.wso2.com/
○ Self-‐contained
&
independent
from
ESB
code
13. Routing
13
● Priori7ze
requests:
Serve
high
priority
traffic
first
● Rou7ng
capabili7es:
Header
based,
content
based,
rule
based,
priority
based
● Acts
as
a
gateway:
For
messages,
services,
APIs
and
as
security
gateway
● Expose
exis7ng
applica7ons
and
services:
○ Service
virtualiza.on
○ Expose
legacy
systems
as
services
○ Convert
any
service
into
an
API
14. Mediation
14
● Basic
Terminology
○ Mediator:
A
component
that
represents
an
ac.on
(enrich,
split,
aggregate,
send,
log)
○ Sequence:
A
logical
container
of
a
set
of
sequen.ally
arranged
mediators/
ac.ons
○ Endpoint:
A
representa.on
of
an
external
des.na.on
for
messages
16. Basic Mediators
16
Name Description
Log Mediator Logs full or part of the message, at various severity levels (Trace, Debug, etc)
Sequence Mediator Invokes existing sequence - Sequence name can be static or dynamic
Send Mediator Sends a message out, using static information or endpoint definition.
Callout Mediator Performs a blocking external service invocation.
Switch Mediator
Evaluates messages contents against regular expression and invokes the
corresponding mediator (switch-case-default)
Validate Mediator
Validates message or parts of message against XML schema (schema can be
local or in registry)
Drop Mediator Stops processing of current message
Fault Mediator Transforms current message into custom Fault message
17. Mediation
17
● Media7on
capabili.es
○ Validate,
log,
audit
○ Database
integra.on
○ Event
publishing
● Extensibility
of
Media.on
Engine
○ Supports
scrip.ng
language
○ Re-‐use
exis.ng
Java
code
○ Can
be
extended
via
custom
mediators
18. Model Enterprise Integration
Patterns
18
Na.ve
support
for
ALL
Enterprise
Integra9on
PaAerns
(EIP)
WSO2
EIP
Guide:
hAp://docs.wso2.org/display/Integra9onPaAerns
Content
based
router
Publisher-‐Subscriber
Point-‐to-‐Point
Channel
Dead-‐leZer
channel
Command
message
Guaranteed
delivery
Request-‐reply
SpliZer
Aggregator
ScaZer-‐gather
Pipe-‐and-‐filters
Message
translator
Event
message
Event
driven
consumer
Durable
subscriber
Content
enricher
Content
filter
20. Transformation
20
● Data
Mappernew:
Convert
and
transform
data
visually
○ Transform
from/to
JSON,
XML
and
CSV
○ Easily
integrate
into
media.on
sequences
as
a
mediator
○ Apply
opera7ons:
■ Common
■ String
■ Arithme.c
■ Boolean
■ Condi.onal
■ Type
conversion
22. Transformation
22
● Transform
via
XSLT,
XQuery
or
Smooks
● Enrich
via
XPATH
● URL/
Headers
Management
Name Description
XSLT Mediator Invokes XSLT transformation on current message (v1.0 and v2.0 are supported)
XQuery Mediator Invokes XQuery transformation on current message
Smooks Mediator
Invokes embedded Smooks Engine (v1.5) - Supports binary transformations (EDI,
CSV, etc.)
Enrich Mediator Enrich message contents using XPATH (replace, append, remove)
URL Rewrite Mediator Rewrite protocol / URL contents
Header Mediator Set / Remove Headers
Payload Factory Override Message Contents / Create Message (XML/JSON)
23. Performance and Stability
23
● Unmatchable
throughput:
TPS
in
1000s
of
concurrent,
non-‐
blocking
HTTP
transac.ons
per
server
● Low
latency:
0.5ms
with
pass-‐through
non-‐blocking
IO
transport
● On-‐demand
message
processing:
Streaming
and
op.miza.on
using
message
relay
● Long
running
stability:
Low
resource
u.liza.on
&
stability
with
long
running
processes
● Caching:
Response
caching,
cache
mediator
25. Governed by Policies (APIs &
Proxies)
25
Create
and
apply
WS-‐Policies
Apply
policies,
stored
in
the
Registry
Security
ThroZling
Caching
26. Security
26
● Authen7ca7on:
HTTP
Basic,
UserName
Token,
SSL,
OAuth,
Kerberos,
OpenID,
SAML
● User
valida7on:
LDAP
Servers,
Microsoj
Ac.ve
Directory,
JDBC
user
stores
● Signing
and
encryp7on:
XML
encryp.on,
Digital
Signatures,
WS-‐
Secure
Conversa.ons
● Policy
enforcement:
PEP
for
fine-‐grained
authoriza.on
(en.tlements)
using
XACML
27. Governance
27
● Embedded
registry:
Maintained
on
the
local
file
system
● Extended
registry:
WSO2
Governance
Registry
○ Configura7on
registry:
Maintains
product
clusters
specific
configura.on/
assets
○ Governance
registry:
Maintains
pla:orm
specific
(common)
configura.on/
assets
28. WSO2 ESB Tooling improved
28
IDE
Support:
WSO2
Developer
Studio,
based
on
eclipse,
familiar
environment
<screenshot>
Graphical
tool
to
design
ESB
flows
ESB
configura.on
editors
29. Developer friendly, easy
deployment
29
● Configure:
Configure
and
re-‐use,
no
code!
○ Shorter
learning
curve
○ No
Java
knowledge
required
● Embed
scrip.ng
language
code
in
Javascript,
JRuby,
Groovy
and
more
as
custom
mediators
● Standard
tools:
Integrated
with
ANT,
Maven,
SVN
and
other
standard
tools
for
development
and
deployment
30. Developer friendly, easy
deployment
30
● Visual
modeling:
Model
integra.on
logic
visually,
drag
n
drop
● More
visibility:
Logging
and
media.on
tracing
● Media7on
debuggingnew:
○ Manage
debug
points
○ Trace
messages
payloads
throughout
the
media.on
flow
○ Inspect
proper.es
(transport/
synapse/
axis2)
at
each
mediator
○ Update
proper.es
while
debugging
32. WSO2 ESB Analytics new
32
● Comprehensive
ESB
specific
analy.cs
for
monitoring
● Drill-‐down
ability
into
media.on
flows
for
be^er
analysis
● Visual
dashboards
for
be^er
interpreta.on
● Configurable
.melines
for
scru.nizing
batches
of
past
stats
● Customizable
layout
to
order
and
priori.ze
charts
● Extensible
to
publish
your
own
customized
sta.s.cs
33. WSO2 ESB Analytics new
33
● Insigh:ul,
visual
dashboard
on
ESB
processing
○ Summary
of
requests
34. WSO2 ESB Analytics new
34
● Key
metrics
in
summary
○ Total
request
count,
success/failure
rate,
overall
TPS,
overall
message
count,
top
ar.facts
by
request
count
35. WSO2 ESB Analytics new
35
● Top
ar.facts
by
request
count
available
for:
○ Proxy
services,
APIs,
endpoints,
sequences,
inbound
endpoints
36. WSO2 ESB Analytics new
36
● Dashboards
for
each
ar.fact
type
with
drill
down
capability
○ Summary
of
requests,
message
count,
latency,
message
status,
message
flow,
mediator
proper.es
37. WSO2 ESB Analytics new
37
● Drill-‐down
into
sta.s.cs
for
be^er
analysis
○ Trace
messages
throughout
media.on
flows
○ Iden.fy
bo^lenecks
in
message
flows,
and
errors
in
mediator
proper.es
easily
38. WSO2 ESB Analytics new
38
● Dashboard
themes
(dark
and
light)
● Configurable
.melines
(hourly,
daily,
monthly,
yearly,
custom
date
range)
● Extensions
to
write
your
own
analy.cs
39. Data as a Service
39
● WSO2
DSS:
Perfect
companion
to
ESB,
used
by
most
ESB
customers
● Expose:
Data
sources
as
services
(DBs,
Google
Docs,
Cassandra)
● Declara7ve:
Service
area
created
declara.vely,
no
code!
● Secure:
Apply
data
security
(via
roles)
● Supports:
SOAP,
REST
41. High availability, scalability and
clustering
41
● Deployment
flexibility
(HA):
○ As
Ac.ve-‐Ac.ve
or
Ac.ve-‐Passive
clusters
● Sta7c
or
Elas7c
scaling:
○ Sta.c
scaling
with
on-‐premise/
Elas.c
scaling
on
Cloud
Load
balancer
Load
balancer
42. Managed deployment
42
● Manager
nodes:
○ In
charge
of
configura.on/
ar.facts
management
● Worker
nodes:
○ Serve
the
produc.on
traffic
43. Deployment options
43
Managed
Cloud:
● WSO2
Opera.ons
team
manages
deployment
and
keeps
it
running
● Dedicated
hos.ng
of
WSO2
ESB/
Pla:orm
solu.ons
● WSO2
Opera.ons
team
manages
deployment
and
keeps
it
running
● 99.99%
up.me
SLA
● Any
AWS
region
of
choice
● Can
be
VPNed
to
local
network
● Includes
monitoring,
backups,
patches,
updates
Self-‐Hosted:
● Your
opera.ons
team
maintains
the
deployment
with
Produc.on
Support
with
WSO2.
● Private
Clouds
(eg:
Kubernetes)
● Public
Clouds
(eg:
AWS)
● Hybrid
deployments