1. 22-10-2008
This Presentation Courtesy of the
International SOA Symposium
October 7-8, 2008 Amsterdam Arena
www.soasymposium.com
info@soasymposium.com
Founding Sponsors
Platinum Sponsors
Gold Sponsors Silver Sponsors
An SOA Case Study: The ESB Based
Flight Data Processing System
Arnaud Simon
Red Hat
1
2. 22-10-2008
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
2
3. 22-10-2008
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.
3
4. 22-10-2008
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
4
5. 22-10-2008
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
5
7. 22-10-2008
Content Based Routing
XML representation of a Flight Plan
7
8. 22-10-2008
XPath Content Based Routing
Content Based Routing with Rules
8
9. 22-10-2008
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 )
then
destinationService.add( “services:Alert”)
end
Decision Services and CBR
Decision services are making business
decisions that are dispatched to the right
recipient through a CBR
9
10. 22-10-2008
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
10
11. 22-10-2008
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>
11
12. 22-10-2008
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
12
13. 22-10-2008
Protocol Gateway
Coupling of Transformation, Content
Based Routing and protocol bridging
13
14. 22-10-2008
MOM
Client
• Decouple service request from
invocation
• Provide fault tolerance
• At-least-once delivery
Business
Service
• Not all services are available all the
time. With queueing the message
simply waits until the service (or a
Business
duplicate) is available again. Service
MOM
• Unpredictable Load
– During peak periods Flight plans are Queued
• Higher priorities for certain flights
Client
• Extremely high priority for alert messages
– Nore hardware can easyly be deployed
ATC ATC
Processing Processing
14
15. 22-10-2008
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
15