The Starship Fleet: From Point to Multipoint
-
Upload
mike-nowakowski -
Category
Technology
-
view
158 -
download
1
Transcript of The Starship Fleet: From Point to Multipoint
THE STARSHIP FLEET
FROM POINT TO MULTIPOINT
Mike Nowakowski
@mike_nowakowski
JUNE 2015
THE STARSHIP FLEET
A long time ago…
In a galaxy far away…
There was an elite fleet of starships…
THE STARSHIP FLEET
Point-to-Point
C = 3
THE STARSHIP FLEET
Point-to-Point
M2T
Ship B
M1
Ship A
THE STARSHIP FLEET
Point-to-Point
C = 10
THE STARSHIP FLEET
Point-to-Point
C = 45
THE STARSHIP FLEET
Point-to-Point
N(N-1)2
3 ships, C = 3
5 ships, C = 10
10 ships, C = 45
25 ships, C = 300
Maximum Connections
THE STARSHIP FLEET
Point-to-Point
➔ Highly coupled!
➔ Communication
◆ Ships
THE STARSHIP FLEET
Deep out in space…
There was a beacon of hope…
A ship so powerful and mighty…
Hub and Spoke
THE STARSHIP FLEET
Hub and Spoke
THE STARSHIP FLEET
Hub and Spoke
Maximum Connections
N
THE STARSHIP FLEET
Hub and Spoke
THE STARSHIP FLEET
Hub and Spoke
➔ Loose Coupling!
➔ Communication
◆ Enterprise
ENTERPRISE SERVICE BUS
Components
Service
EndpointM2
ENTERPRISE SERVICE BUS
Components
HUB
T M1
ENTERPRISE SERVICE BUS
Components
HUB
TM1 M2
Service
EndpointChannel
ENTERPRISE SERVICE BUS
Components
Event / Message
Header
Attributes
Body
Channel
TCP / UDPHTTPFTP...
Endpoint
DatabaseWeb ServiceIoT Device
...
THE STARSHIP FLEET
What’s wrong with this picture?
THE STARSHIP FLEET
What’s wrong with this picture?
➔ Dependency
➔ Single-point of Failure
➔ Scalability and Performance
THE STARSHIP FLEET
Enterprise Service Bus
S1
S2
S3
Services
=
THE STARSHIP FLEET
Enterprise Service Bus
=
S1
S2
S3
ENTERPRISE SERVICE BUS
An enterprise service bus (ESB) is a software architecture model used for
designing and implementing communication between mutually
interacting software applications in a service-oriented architecture (SOA).
- Wikipedia
What is it?
ENTERPRISE SERVICE BUS
What is it?
SOAenables
ESB
ENTERPRISE SERVICE BUS
Systems View
App 2App 1 API 1
API 2
App 3MySQL
CSVXML JSON
XMLJSON
JDBC
ESB
ENTERPRISE SERVICE BUS
Business View
CreateInvoice
Process Order
Create Order
ESB
UpdateInventory
ENTERPRISE SERVICE BUS
Multiple
CreateInvoice
Process Order
Create Order
ESB 1
UpdateInventory
TorontoESB 2
ENTERPRISE SERVICE BUS
➔ Connectivity
➔ Routing
➔ Reliability
➔ Data Transformation
➔ Administration
➔ Standards
➔ Security
Characteristics
ENTERPRISE SERVICE BUS
➔ Priority
◆ How important is the message?
◆ Levels (Low, High, etc.)
➔ Types
◆ Content-Based
◆ Conditional
◆ Policy-Based
Routing
ENTERPRISE SERVICE BUS
➔ Types◆ Content-Based (CBR)
Routing
App 1
998-456-1234
App 2
1-997-678-1234
App 3
M
M T
ESB
ESB
ENTERPRISE SERVICE BUS
➔ Types◆ Conditional
Routing
M
App 1
98125
T
App 2
500
App 3
M
< 100
App 4
ENTERPRISE SERVICE BUS
➔ Types◆ Policy-Based
Routing
M
Store 1
Return T-shirt
T
Store 2
Return T-shirt
Return Hat
Department 1
M Department 2
ESB
ENTERPRISE SERVICE BUS
➔ QoS (Quality of Service)
◆ Bandwidth
◆ Latency
◆ Throughput
➔ Monitoring and Logging
➔ Scalability
➔ Performance
Reliability
ENTERPRISE SERVICE BUS
➔ Message Exchange Patterns (MEPs)◆ One-Way
Reliability
App 1 App 2ESBRequest Request
ENTERPRISE SERVICE BUS
➔ Message Exchange Patterns (MEPs)◆ Request/Response
Reliability
App 1
Request
App 2Response
ESB
ENTERPRISE SERVICE BUS
➔ Message Exchange Patterns (MEPs)
◆ Request/Callback
◆ Publish/Subscribe
Reliability
ENTERPRISE SERVICE BUS
➔ Formats
➔ Data Mapping
◆ Look-up tables, Subsets, Custom Functions
Data Transformation
App 1
Order IDCountry Code
CA
T
App2
Order IDCountryCanada
ESB
ENTERPRISE SERVICE BUS
➔ Accounts & Users
➔ Configuration
➔ Change Management
➔ Capacity Management
➔ Governance
Administration
ENTERPRISE SERVICE BUS
➔ Audits
➔ Attack Surface / Vectors
➔ Access Control
➔ Confidentiality
➔ Compliance
➔ Data Retention
➔ Data Ownership
Security
ENTERPRISE SERVICE BUS
➔ XML
Standards
<order><id>10000</id><quantity>1</quantity><amount>$1000.00</amount><product>Laptop</product>
</order>
ENTERPRISE SERVICE BUS
➔ XML
◆ XPath and XQuery
Standards
Input
<orders><order>1</order><order>2</order>
</orders>
T
Query
/orders/order[2]
Output
<order>2</order>
ENTERPRISE SERVICE BUS
➔ XML
◆ WSDL
◆ SOAP
Standards
ENTERPRISE SERVICE BUS
➔ JSON
◆ RAML
● RESTful API Modeling Language
● YAML and JSON
Standards
ENTERPRISE SERVICE BUS
➔ Technical
◆ Maintainability
◆ Scalability
◆ Performance
◆ Security
Benefits
ENTERPRISE SERVICE BUS
➔ Business
◆ Agility
◆ Value
◆ Solutions
◆ Lower Costs
Benefits
ENTERPRISE SERVICE BUS
What’s out there?
2000 2010 20152005
Microsoft BizTalk
Red Hat JBoss Fuse
Microsoft Azure Bus
Oracle Service Bus
MuleSoft
ENTERPRISE SERVICE BUS
➔ Red Hat JBoss Fuse
➔ MuleSoft
➔ Oracle Service Bus
➔ Microsoft BizTalk
➔ Microsoft Azure Service Bus
What’s out there?
REFERENCES
Chappell, David. 2004. Enterprise Service Bus. Sebastopol,
California. O’Reilly Media.
Enterprise Service Bus. In Wikipedia. Retrieved March 13, 2015, from
http://en.wikipedia.org/wiki/Enterprise_service_bus.
Josuttis, Nicolai. 2007. SOA in Practice: The Art of Distributed
System Design. Sebastopol, California. O’Reilly Media.