Upload
soa-symposium
View
435
Download
1
Tags:
Embed Size (px)
Citation preview
22-10-2008
1
Founding Sponsors
This Presentation Courtesy of the
International SOA Symposium
October 7-8, 2008 Amsterdam Arena
www.soasymposium.com
Gold Sponsors
Platinum Sponsors
Silver Sponsors
An SOA Case Study: The ESB Based Flight Data Processing System
Arnaud SimonRed Hat
22-10-2008
2
Flight Data Processing
• Air Traffic Control organization
– Provides navigational services
– Monitors and manages all air traffic within its airspace
– Responsible for the smooth and economic management of its airspace
Aircraft operators are required to submit computerized flight plans ahead of departure
Flight Plan
• Aircraft ID
• Aircraft Type & Suffix
• Airspeed
• Proposed departure time
• Altitude
• Departure airport
• Route
• Destination
22-10-2008
3
Flight Plan Process
ATC Flight Plan Processing Requirements
• Software quality and reusability – Comply with international safety regulatory
requirements
• Large amount of data exchange– About 25,000 flights each day
• Supports several protocols – AMHS , AFTN, CIDIN
• Safety – No data is lost even in the occurrence of failure.
22-10-2008
4
A SOA Approach
• Decision services
• Routing Services
• Transformation Services
• MOM
Decision Service
• Operations
– Assert a fact
– Execute a rule
– Watch the result of a rule execution
22-10-2008
5
Decision Services
• Benefits
– Alleviate other services from encapsulating business rules
– Allow creating more generic and agnostic services
– Provide unified access to different Business Rule Engines
Amendment Rule
IF
FlightPlan.departure_time >= local_night_time
AND
Weather.local_conditions == poor
AND
Plane.navigation_type != electronic
THEN
reschedule_flight
22-10-2008
6
Stateless Decision Service
Stateful Decision Service
22-10-2008
7
Content Based Routing
XML representation of a Flight Plan
22-10-2008
8
XPath Content Based Routing
Content Based Routing with Rules
22-10-2008
9
Routing Rules
rule “Routing rule – Flight Plan message”when
Message( type = MessageType.FlightPlan ) then
destinationService.add( “services:ValidateFlightPlan”)end rule “Routing rule – Alert message”
when Message( type = MessageType.Alert )
thendestinationService.add( “services:Alert”)
end
Decision Services and CBR
Decision services are making business decisions that are dispatched to the right recipient through a CBR
22-10-2008
10
Decision Services and CBR
• Centralized RRE/CBR– Separation of Rules and CBR increases the overall
manageability and agility of the system
• Messages can be totally ignorant of their ultimate endpoint
• Single point of maintenance
• allows automating complex decisions and quickly adapting to changing business requirements
Decision Services and CBR
• Risks
– Central point of failure
Redundant architecture
– Dynamic modification of business
Rule set changes are put through a staging process
Clearly define responsible for system outages
22-10-2008
11
Data Transformation
• Heterogeneous flight plan formats must be accepted
Centralized transformation service
Data Transformation
XSLT Transformation:
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
<resource-config selector=“takeoff">
<resource>ExampleTransformer</resource>
<param name="newName"> departure_time</param>
</resource-config>
</smooks-resource-list>
22-10-2008
12
Data Transformation
• Coordinating aerial firefighting
– the transformation is an integral part of the service business logic
Dedicated bespoke transformation logic
Protocol Gateway
• Need to support disparate transports
– AMHS
– AFTN
– CIDIN
• Intra-service transport of choice: JMS
Use a Protocol Gateway
22-10-2008
13
Protocol Gateway
Coupling of Transformation, Content Based Routing and protocol bridging
22-10-2008
14
MOM
• Decouple service request from invocation
• Provide fault tolerance
• At-least-once delivery
• Not all services are available all the time. With queueing the message simply waits until the service (or a duplicate) is available again.
BusinessService
Client
BusinessService
MOM
• Unpredictable Load
– During peak periods Flight plans are Queued
• Higher priorities for certain flights
• Extremely high priority for alert messages
– Nore hardware can easyly be deployed
ATCProcessing
Client
ATCProcessing
22-10-2008
15
ATC Flight Plan Processing over an ESB
Main ESB components
• Decision– Business Rule Engine
• Transformation – Data: Format change; Versioning; Non XML payload– Protocol: Legacy adapters; Transport bridging
• Queuing – Reliability; asynchronous communication
• Routing – Location transparency; Business Rules
• Governance – Auditing, SLA, Service Discovery