Enterprise Data Integration For Service Oriented Architectures
Enterprise Architect Summit – June, 2004
Christopher Keene – CEO, Persistence Softwarewww.persistence.com
22
Presentation OverviewPresentation Overview
1. SOA requires underlying enterprise data architecture that provides consistent, timely data
2. Data virtualization ensures data consistency for SOA
3. Data services meet performance, scalability, availability needs for SOA
4. Case studies demonstrate benefits of well thought-out data architecture for SOA
33
Distributed Computing CyclesDistributed Computing Cycles
1995 2000 2005
CORBA
Java
SOA
Connectivity: allow any app to talk to any other app
Homogeneity: single, monolithic stack (J2EE)
Virtualization: data from any source to any user
44
The Optimist’s View of SOAThe Optimist’s View of SOA
Messaging Services- SOAP- XML- UDDI/LDAP
Looser coupling of commonly performed tasks
Reuse at long last through shared services
Eliminates tyranny of silos
Everything just works™
SOA
55
SOA Data Consistency ProblemSOA Data Consistency Problem
Data Data
DB2
Check_Avail Place_Order
DB1
Item 3 = “out of stock”Item 3 = “in stock”
Nightly Sync
Data silos can cause inconsistent results
66
SOA Server Migration ProblemSOA Server Migration Problem
Shared Data
Multi-threaded apps share data cache
Multi-host apps each have separate data cache = more database traffic
Data
Big Server = $$$
Grid Servers = $
Data Data
DB DB
Check_Avail
Place_Order
Show_Status
Check_Avail
App
Place_Order Show_Status
DB DB DB DB
77
SOA Data BottlenecksSOA Data Bottlenecks
DB
PotentialData Bottlenecks
•Application level – data wait can erase grid gains
•Network level – greater flexibility can add latency
•Database level – fewer DBs may slow response
•High availability – more dependencies creates more points of failure
Functional Services
Data ServicesData Bottlenecks?
App
Data
App
Data
App
Data
DB DB
Mass-market J2EE and .NET servers do not solve these problems!
88
The Pessimist's View of SOA The Pessimist's View of SOA
Looser coupling of commonly performed tasks…
– But, tighter consistency for commonly used data Reuse at long last through shared services…
– But, lengthier development time for shared services Eliminates tyranny of silos…
– But, lose application boundaries Everything just works™…
– But, nothing ever works as advertised™
99
Platform 6Platform 6 Platform 7Platform 7 Platform 8Platform 8 Platform 9Platform 9 Platform 10Platform 10
Platform 1Platform 1 Platform 2Platform 2 Platform 3Platform 3 Platform 4Platform 4 Platform 5Platform 5
Case Study: Sell-Side BankCase Study: Sell-Side Bank
Real-Time Trading Applications
Application 1Application 1 Application 2Application 2 Application 3Application 3 Application 4Application 4 Application 5Application 5
Complex Legacy Data
Critical Data Spread Across 10 PlatformsConsequences:
Data mapping accounts for up to 50% of each app Each new application adds to data complexity
Developer “Re-Invents” Custom Data Logic for Each App
1010
The Iceberg Model For SOA The Iceberg Model For SOA
SOA Strengths• Loose task coupling• Reuse of shared tasks• Eliminate silos
Messaging Services
Data Services
Functional Services
Legacy Environment
SOA Data Gotchas• Data consistency• Data bottlenecks• Data availability
1111
Presentation OverviewPresentation Overview
1. SOA requires underlying enterprise data architecture that provides consistent, timely data
2. Data virtualization ensures data consistency
3. Data services meet performance, scalability, availability needs for SOA
4. Case studies demonstrate benefits of well thought-out data architecture for SOA
1212
Typical Data Consistency ChallengesTypical Data Consistency Challenges
Many replicated data copies — banks have on average 43 separate counterparty databases, and 37 systems with securities data
Inconsistent data causes errors — banks attribute 45% of automated trade failures are due to inaccurate reference data
Source: Tower Group, 2003
1313
Duplicate Data EverywhereDuplicate Data Everywhere
1414
Data Integration Approaches Data Integration Approaches
Enterprise database: use existing RDBMS to access heterogeneous sources (IBM Information Integrator)
Data warehouse: real-time ETL capabilities blue lines between types of databases (Sybase IQ)
Enterprise Information Integration: new class of data servers with specialized join query (Metamatrix)
O-R Mapping tools: complements other approaches, can integrate a few (3-5) data sources (Persistence)
1515
Data Integration AlternativesData Integration Alternatives
Enterprise Database
EII
Technology Strengths Use if…
O-R Mapping
• Data cleansing/transformation• Complex, on-the-fly analysis
• Automates data layer development
• Ensures applications access data consistently
• Integrates with corporate standard database
• Join across multiple sources
• Need complex transformations and queries
• Building custom business apps• Need read/write data access
• Data sources are homogeneous
R-T Data Warehouse
• Meta-data management• Store any object as opaque
(serialized) structure
• Many heterogeneous data sources
• Few updates
1616
Platform 6Platform 6 Platform 7Platform 7 Platform 8Platform 8 Platform 9Platform 9 Platform 10Platform 10
Platform 1Platform 1 Platform 2Platform 2 Platform 3Platform 3 Platform 4Platform 4 Platform 5Platform 5
Case Study: Sell-Side BankCase Study: Sell-Side Bank
Real-Time Trading Applications
Application 1Application 1 Application 2Application 2 Application 3Application 3 Application 4Application 4 Application 5Application 5
Complex Legacy Data
Critical Data Spread Across 10 PlatformsConsequences:
Data mapping accounts for up to 50% of each app Each new application adds to data complexity
Developer “Re-Invents” Custom Data Logic for Each AppData Services Layer
Single source of truthConsistent data model across applications
1717
Presentation OverviewPresentation Overview
1. SOA requires underlying enterprise data architecture that provides consistent, timely data
2. Data virtualization ensures data consistency
3. Data services meet performance, scalability, availability needs for SOA
4. Case studies demonstrate benefits of well thought-out data architecture for SOA
1818
Reasons For SOA Performance FearsReasons For SOA Performance Fears
Met User Performance Requirements?
(% of all J2EE apps)
Source of Bottleneck?
Inefficient Data Access
Other Bottleneck
YesNo
57%
43%
Source: 2003 Wily J2EE Benchmark Survey (n=360)
60%40%
1919
Data Services Eliminate BottlenecksData Services Eliminate Bottlenecks
Caching EliminatesData Bottlenecks
•Application level – data cache eliminates wait
•Network level – caching reduces network traffic
•Database– caching reduces query volumes
•HA – replication ensures no single point of failure
Distributed caching eliminates bottlenecks between applications and databases
DB
AppAppApp
Cache Cache Cache
Data ServicesDistributed Caching
O-R Mapping
Replication
Functional Services
DB DB
2020
Requirements For Data ServicesRequirements For Data Services
DB
AppAppApp
Cache Cache Cache
Data ServicesDistributed Caching
O-R Mapping
Replication
Functional Services
DB DB
Data Caching Services: stage data with app for performance and scalability
Data Replication Services: position data for distributed computing, high availability
Data Mapping Services: native language bindings for optimal performance
2121
When To Worry: The 50/50 RuleWhen To Worry: The 50/50 Rule
Ob
ject
Mod
el
50+
cla
sses
< 5
0 c
lass
es
Request Rate(Peak transactions/sec)
< 50 TPS 50+ TPS
Data-intensive
applications
Model-intensive
applications
Transaction-intensive
applications
Basic applications
Requires intelligent caching
Requires data services layer
Requires model-driven O/R mapping
2222
Data Services “Stack”Data Services “Stack”
DB 1 DB 3DB 2
•Performance –caching improves response time
•Scalability –cache replication enables scaling
•Availability–reliable sync improves app resilience
Data Integration/EIIVirtual Database
C# AppJava AppC++ App
Compute GridDistributed Execution
Cache Cache Cache
Data ServicesDistributed Caching
2323
Presentation OverviewPresentation Overview
1. SOA requires underlying enterprise data architecture that provides consistent, timely data
2. Data virtualization ensures data consistency
3. Data services meet performance, scalability, availability needs for SOA
4. Case studies demonstrate benefits of well thought-out data architecture for SOA
2424
Data Services Product Example - EdgeXtendData Services Product Example - EdgeXtend
• Linux• NT• Unix
Persistence EdgeXtendData Services
O-R Mapping
Replication
C# AppJava AppC++ App
Compute GridDistributed Execution
Cache Cache Cache
Oracle DB/2Sybase
2525
Case Study (Cont): Sell-Side Bank Business RequirementsCase Study (Cont): Sell-Side Bank Business Requirements
Project requirements
– Front & middle office equity trading: support >40 global apps– High transaction volumes: >5,000 TPS, millions per day– High availability: maximum downtime from failure <30 seconds– High scalability: support 5x volume at minimal cost– Reference data bottlenecks: all applications share common
reference & order book data = huge potential for bottleneck Deployment architecture
– Service Oriented Architecture: trading tasks exposed as shared functional services
– Persistence Data Services: Java binding, replication, caching– Grid Deployment: Unix servers (>100 CPUs), multi-site (US,
Europe, Asia), Tibco RV, MQ, Sybase
2626
NY
Order Service
Reporting Service
NY
Exchange Service
Case Study (cont): Data ArchitectureCase Study (cont): Data Architecture
A-L S-ZM-R
Persistence Data ServicesDistributed Caching
Counterparty ServiceSecurities
Service
Counterparty ServiceSecurities
Service
Counterparty ServiceSecurities
ServiceOrder Book Service
NJ
Partitioned databases
• O/R Mapping• Caching• Replication
App examples• Trading desk• Auto-exec engine• VWAP
Sybase
Vendor Feeds• Reuters• Bloomberg
Validation Workflow• Extract• Transform• Data cleanse• Change mgmt
2727
Case Study (cont): Benefits AchievedCase Study (cont): Benefits Achieved
Scalability: grid data services infrastructure scaled to $7B/day in trades (mainframe savings > $4m/yr)
Availability: stateful failover between grid data services caches helped cut failover time from 5 min to 30 sec
Productivity: SOA delivered 50% productivity through service reuse, required up-front resource (~30% of team)
Grid Data Services: distributed caching required to “grid enable” stateful SOA services to run in compute grid
2828
NetJets Case StudyNetJets Case Study
PlanePlane Crew
Pilot
Limo
CatererTime
Customer
Weather
Business GoalBusiness GoalBusiness GoalBusiness Goal
RequirementsRequirementsRequirementsRequirements
Results With Results With SOASOA
Results With Results With SOASOA
Gain Competitive Advantage Through Improved Customer Service
Enterprise Data Layer Across 20 Flight Mgmt Systems– WW Flight Data Synched– Saved 30 Engineering Years vs. Piece Parts– Will Deploy in Europe and Asia Without Additional DBs
Accuracy – 300 Flight Management and Customer Tables Real-Time Response – Customer Schedule Changes
Including 2,000 Pilots World-Wide Scalable, flexible, reliable 24x7
2929
Complex object modelComplex object model
ContractVariation
(from Contract)
JeppesenJetPlan
(from Flight)
<<Singleton>>
One crew log entry per crew member per
completed leg.
SingleCheckCRO
(from Flight CRO/CUOs)
FeasibilityResultsCRO
(from Flight CRO/CUOs)...)
Task
(from Reservation)
Taskable
(from Reservation)
<<Interface>>... >>
ManualWatch
(from Flight)
ETDOffsetWatch
(from Flight)
LateDepartureWatch
(from Flight)
SingleCheck
(from Flight)
SlotTask
slotID : int
(from Flig...
FlightPlanAlerts
(from Flight)
CruiseMode
(from Flight)
EqualTimePoints
(from Flight)
FlightProfile
(from Flight)
AlternateAirport
(from Flight)
EJCrewLogEntry
(from Crew)
FileAndReleaseF
lightPlanTask(from Flight)
FeasibilityResult
(from Flight)
RequiredSlot(from Flight)
Slot(from Airport)
FlightPlan
(from Flight)
QCReview
(from Flight) FlightRelease
(from Flight)
Maintenance
Release
(from Flight)
LegWatch
(from Flight)
WatchComment
(from Flight)
Watch
(from Flight)
0..n
1
0..n
1
theFeasibilityResult
1
0..1
1
0..1
theSlotTask
0..n
1
0..n
1
applicableFlightPlan
0..n
1
0..n
1
theFlightPlan
0..*
1
0..*
1
theFlightPlan
0..n
1
0..n
1
theFlightPlan
Creates1
0..*
0..1
0..1
0..1
0..1 theDeparturePlan
0..n
0..1
0..n
0..1
theArrivalPlan
0..n1 0..n1 theWatch
PicFlightChecks(from Crew)
PilotAircraftQualification(from Crew)
Training(from Crew)
LockDates(from Crew)
EJCrewMember
(from Crew)
EquipmentTraining(from Crew)
Miscellaneou
sTraining
(from Crew)
NonEJActivityLogEntry
(from Crew)
CrewMember
(from Crew)
ApprovalAndPart135Currency
(from Crew)
NonEJCrew
Member(from Crew)
AccountCrewMember
(from Crew)
EJCrewLogEntry
(from Crew)
CommunicationLog
(from Crew)
SimulationTime
(from Crew)
CommLogEntry
(from Crew)
MessageType
(from Crew)
CharterVendor
CrewMember(from Crew)
MessageSystem
(from Crew)
MessageField(from Crew)
HoursCur
rency(from Crew)
HourlyNotes
(from Crew)
DutyDayNotes
(from Crew)
DutyDay(from Crew)
Designated
DutyRest(from Crew)
CrewMovementRe
questDutyDay(from Crew)
CrewMovementDutyDay
(from Crew)
CrewMovement
(from Crew)
AirlineMovement
(from Crew)
RequestedC
rewHotel
(from Crew)
HotelVendor(from Vendor)
BriefingStatus(from Flight Scheduling))
CrewMovementRequest
(from Crew)
CrewTask
(from Crew)
Task)
GroundMovement
(from Crew)
0..n
1
0..n
1
theEJCrewMember
0..n
1
0..n
1theEJCrewMember
0..1
1
0..1
1
theEJCrewMember
0..1
1
0..1
1
theEJCrewMember
0..n
1
0..n
1
theEJCrewMember
0..1
1
0..1
1
theEJCrewMember
1
0..n
1
0..n
theNonEJActivityLogEntries
+theCrewMember
0..1
+theCrewMember
0..1+theCrewMember1
+XtheCrewMember
1
+theCrewMember
1
1
0..n
1
0..n
approvalAndPart135Currencies
+theEJCrewLogEntries
0..n
1
0..n
1
0..1
1
0..1
theCommLog
1
0..n
1
0..n
theSimulationTime
0..n
1
0..n
1
theCommunicationLog
0..n
1..1
0..n
1..1
theMessageSystem
0..n
0..1
0..n
0..1
theMessageSystem
0..1
0..n
0..1
0..n
theMessageFields
0..1
1
0..1
1
theHoursCurrency
+theHourlyNotes
0..n0..n
1
+theHourlyNote
0..1
+XtheDutyDayNotes0..n
+XtheDutyDay1
+XtheDutyDay
11
0..n
+XtheDutyDay
0..1+XtheDutyDay
0..1
+XtheDutyDays
0..n0..n
1
+XtheDutyDay
1..1
+XtheDutyDay
0..10..1
0..1
+XtheDesignatedDutyRest0..10..1
1
+theCrewMovementRequestDutyDays
0..n
0..1
0..n
+XtheCrewMovementRequestDutyDays
0..n
0..1
0..n
1
0..n
1
0..n
theCrewMovementDutyDays
1
0..n
1
0..ntheCrewMovementDutyDays
+theRequestedCrewHotels
0..n
0..1
0..n
+XtheRequestedCrewHotels
0..n0..n
0..1
0..n
0..1
0..n
0..1
theHotelVendor
0..n
0..1
0..n
0..1
theCrewMovement
0..1
0..n
0..1
0..n
theBriefingStatuses
+XtheBriefingStatuses
0..n
1..1
0..n
1
0..n
1
0..n
theCrewMovementRequestDutyDays
0..1
0..n
0..1
0..n
theBriefingStatuses
0..n
0..1
0..n
0..1
theCrewMovementRequest0..n
0..1
0..n
0..1
theRequestedCrewHotel
GroundVehicleType
(from Vendor)
GroundAirportInfo
(from Vendor)
CateringAirportInfo(from Vendor)
FuelBrand
(from Vendor)
Vendor
(from Vendor)... )
Rankable
(from Vendor)
FBOChain
(from Vendor)
VendorContact
(from Vendor)
CharterVendor
(from Vendor)
1
0..n
1
0..n
theCharterVendorCrewMembers
+theVendorContacts
+theCharterVendor
1..1
0..n
1..1
0..n
StaticDemo
(from Plane)
BaggageArea
(from Plane)
EJMovement
(from Crew)
GroundVendor
(from Vendor)
10..n
+theGroundVendor
1
+theGroundVehicleTypes
0..n
1
0..n
+theGroundVendor
1
+theGroundAirportInfo
0..n
RequestedRentalAuto
(from Reservation)0..n
0..1+theRequestedRentalAuto
0..n
+theGroundVendor
0..1
RequestInstruction
(from Reservation)
SuggestedStop(from Reservation)
SchedulingNote
(from Reservation)
RequestedFuel
(from Reservation)
RequestedOtherGround
(from Reservati...
CateringVendor
(from Vendor)
1
0..n
+theCateringVendor
1
+theCateringAirportInfo
0..n
LegTask
(from Reservation)0..n
0..1
0..n
0..1
theRequiredSlot
0..n
0..1
0..n
0..1
theQCReview
0..1
0..n
0..1
0..n
theLegTasks
FBO(from Vendor)...)1
0..n
+theFBO
1
+theFuelBrand
0..n
0..1
0..n
+theChain
0..1
+theFBOs
0..n
0..n
1
+theStaticDemos0..n
+theFBO
1
0..n
0..1
+theRequestedRentalAutoByFBO
0..n
+theGroundServiceFBO0..1
RequestedLateOps(from Reservation)
0..1
0..n
+theRequestedLateOps
0..1
+theLegTasks
0..n
0..n
1
+theRequestedLateOps
0..n
+theRequestedLocation1
RequestedHangarSpace
(from Reservati... 0..1
0..n
+theRequestedHangarSpace
0..1
+theLegTasks
0..n
0..n
1
+theRequestedHangarSpaces
0..n
+theRequestedLocation
1
RequestedCatering
(from Reservation)... )
0..n
0..1
+theRequestedCatering0..n
+theCateringVendor
0..1
theRequestedCatering
0..1
0..n
+theRequestedCatering
0..1
+theLegTasks
0..n0..n
1
+theRequestedCaterings0..n
+theRequestedLocation
1
0..n
0..1
+theRequestedCateringByFBO0..n
+theCateringServiceFBO
0..1
Requested
Ground(from Reservation)...)
0..n
0..1
+theLegTasks0..n
+theRequestedGround
0..1
1
0..n
+theRequestedLocation
1
+theRequestedGrounds
0..n
Leg(from Flight)
0..n
1
+XtheEJCrewLogEntry
0..n
+XtheLeg1
theLeg
1
0..1
+XtheLeg
1
+XtheFileReleaseFlightPlanTask0..1
theFileReleaseFlightPlanTask
1
0..n
+XtheLeg
1
+XtheFeasibilityResults
0..n
theFeasibilityResults
0..1
0..1
+XtheDepartureRequiredSlot
0..1
+XtheDepLeg
0..1
theDepLeg
0..1
0..1
+XtheArrivalRequiredSlot
0..1
+XtheArrLeg0..1
theArrLeg
0..1
0..1
+XtheDepartureLeg
0..1
+XdepartureSlot0..1
departureSlot
0..1
0..1
+XtheArrivalLeg
0..1
+XarrivalSlot
0..1
arrivalSlot
+0..1
0..1
0..1
+XslotHeldForPrecedingConn
0..1
+XlegHoldingForPrecedingConn
0..1
legHoldingForPrecedingConn
0..1
0..1
+XslotHeldForSucceedingConn0..1
+XlegHoldingForSucceedingConn
0..1
legHoldingForSucceedingConn
+0..1
0..n
1..1
+XtheFlightPlan
0..n
+XtheLeg
1..1
theLeg
1
0..1
+XtheLeg
1
+XtheQCReview0..1
theQCReview
1
0..n
+XtheLeg
1
+XtheLegTasks
0..n
theLegTasks
0..1
1..1
+XtheFlightRelease0..1
+XtheLeg
1..1
theLeg
1..1
0..1
+XtheLeg
1..1+XtheMaintenanceRelease
0..1
theMaintenanceRelease
1
0..n
+XtheLeg
1
+XtheLegWatches
0..n
theLegWatches
0..n
1
+XtheDepartureLeg
0..n
+XtheDepartureFBO
1
0..n
1
+XtheArrivalLeg
0..n
+XtheArrivalFBO
1
1
0..n
+XtheLeg
1
+XtheSuggestedStops
0..n
0..n
0..1
+XtheDepRequestedGround
0..n
+XtheDepartureLeg
0..1
0..n
0..1
+XtheArrRequestedGround
0..n
+XtheArrivalLeg
0..1
1
0..1
+XtheLeg
1
+XtheRequestedFuel
0..1 0..1
0..n
+XtheDepartureLeg0..1
+XtheDepRequestedHangarSpace
0..n
0..1
0..n
+XtheArrivalLeg 0..1
+XtheArrRequestedHangarSpace
0..n
0..1
0..n
+XtheDepartureLeg
0..1
+XtheDepRequestedLateOps
0..n
0..1
0..n
+XtheArrivalLeg
0..1
+XtheArrRequestedLateOps
0..n
0..1
0..n
+XtheCustomerDepartureLeg0..1
+XtheDepRequestedCustomerCatering
0..n
0..1
0..n
+XtheCustomerArrivalLeg0..1
+XtheArrRequestedCustomerCatering
0..n
0..1
0..n
+XtheCrewDepartureLeg0..1
+XtheDepRequestedCrewCatering
0..n0..n
0..1
+XtheArrRequestedCrewCatering
0..n
+XtheCrewArrivalLeg0..1
AuditTrailItem
(from Reservation)
0..n
0..1
+theAuditTrailItems
0..n
+theRequestedLateOps 0..1
0..n
0..1
+theAuditTrailItems
0..n
+theRequestedHangarSpace0..1
0..n
0..1
+theAuditTrailItems
0..n
+theRequestedCatering
0..1
0..n
0..1
+theAuditTrailItems
0..n
+theRequestedGround
0..1
0..1
0..*
+XtheLeg
0..1
+XtheAuditTrailItems
0..*
Individual
)
0..1
1
0..1
1
theIndividual
ContactPerson
(from Reservation)
0..n
0..1
+theContactPersons
0..n
+theIndividual
0..1
Reservation
(from Reservation)... )
+theBookingAgent
+theBookedReservation
0..1
0..1
0..1
0..1
Request
(from Reservation)... )
0..n
1
+theEJMovements
0..n
+theRequest
10..1
0..1
+thePreviousRequest0..1
+theNextRequest
0..1
0..n
1
+XtheLegs
0..n
+XtheRequest
1 0..n
0..1
+theApprovedRequest
0..n
+theApprovedByIndividual
0..1
1
0..n
+theReservation
1
+theRequests
0..n
0..n
1..1
+theRequestInstructions0..n
+theRequest
1..1
0..10..n
+theRequest
0..1
+theSchedulingNotes
0..n
0..1
0..n
+theRequest
0..1
+theAuditTrailItems
0..n
ProgramAirp
ortWaiver
(from Contract)ResponseTimeA
ndCancelMin
(from Contract)
EJCompany(from Common)
1
0..n
1
0..n
theCompanyCrewMember
AircraftTail
(from Plane)
0..n
0..1
+theStaticDemos
0..n
+theAircraftTail 0..1
0..1
0..n +theTail
0..1
+theBaggage
0..n
0..n
0..1
+theAuditTrailItems
0..n
+theTail
0..1
AccrualDate
(from Contract)
AircraftPerDay
(from Contract)
ContractTemplate
(from Contract)
AircraftPerDayCombination
(from Contract)
1
0..n
+theAircraftPerDay1
+theAircraftPerDayCombinations0..n
AircraftShareValue
(from Contract)
1
0..n
+theAircraftPerDayCombination1
+theAircraftShareValues0..n
{number of values = number of contract
associated with Aircraft per day}
ContractHours(from Contract)
Airport
(from Airport)
1
0..n
1
0..n
theArrivalAirlineMovement
1
0..n
1
0..n
theDepartureAirlineMovement
0..1
0..n
0..1
0..n
theArrivalGroundMovement
0..1
0..n
0..1
0..n
theDepartureGroundMovement
0..n
1
0..n
1
theAirport+1
1
0..n
1
0..n
theArrivalCrewMovementRequests
1
0..n
1
0..n
theDepartureCrewMovementRequests
0..n
0..1
0..n
0..1
theAirport
0..1
0..n
+XtheTurnOffLocation
0..1
+XtheDutyDays
0..n
0..n
1
+theGroundAirportInfo
0..n
+theAirport
1
0..n
1
+theSuggestedStops0..n
+theSuggestedAirport
1
Airport
(from Airport)
0..10..n0..1
closestTo
0..n
0..1
0..n
0..1
reportingFor
0..n
0..n
1..1
0..n
1..1
theAlternateAirport
0..n
0..1
0..n
0..1
theHomebase
+0..1
0..1
0..n
0..1
0..n
planPOAAirport 0..1
0..n
0..1
0..n
planPODAirport
0..n
1
+theFBOs
0..n
+theAirport1
{Ordered}
0..n
1
+theCateringAirportInfo
0..n
+theCateringAirport
1
1
0..n
+theAirport
1
+theProgramAirportWaiver
0..n
AirportPair
(from Contract)
0..n
1
+theAirportPair1 0..n
+theAirport1
1
+theAirport2
+theAirportPair2
0..n
1
0..n
1
ContractCha
ngeLog(from Contract)FuelCharge
(from Contract)InternationalPositioningMin
(from Contract)
MonthlyFlatFee(from Contract)
PeakDate(from Contract)
ContractCharge(from Contract)
PrePayment(from Contract)
+XtheContractCharge
+XthePrePayments
0..n
1
0..n
1
ContractBase(from Contract)
1
0..n
+theContractOrTemplate
1+theResponseTimesAndCancelMins
0..n
0..n
1
+theContractHours
0..n
+theContractOrTemplate
1
1
0..n
+theContractOrTemplate1
+theFuelCharges
0..n
1
0..n
+theContractOrTemplate
1
+theInternationalDailyMins
0..n
1
0..n
+XtheContractOrTemplate1
+XtheMonthlyFlatFees
0..n
Interchange
(from Contract)
0..1
0..n
+theContractOrTemplate
0..1
+theInterchanges0..n
AircraftType
(from Plane)
1
0..n
1
0..n
theApprovalAndPart135Currencies
0..n
1
0..n
1
theAircraftType
0..1
0..n
0..1
0..n
theTraining
0..1
0..n
0..1
0..n
thePicLastInstFlightChecks
0..1
0..n
0..1
0..n
theNextInstPicFlightChecks
1
0..n
1
0..n
theLockDates1
0..n
1
0..n
theSimulationTime
1
0..n
+theAircraftType
1
+theStaticDemos
0..n
0..1
0..n
+theType0..1
+theBaggage0..n
0..n
1
+theRequests
0..n
+theRequestedAircraftType
1
0..n
0..1
+theAssocRequests
0..n
+theGuaranteedAircraftType
0..1
0..n
1
+theContractsAndTemplates
0..n
+theAircraftType
1
0..n
1
+theFromInterchanges
0..n
+theFromAircraftType
1
+theToInterchanges
+theToAircraftType
1
0..n
1
0..n
ContractBillingPercentage
(from Reservation)
1
0..n
+theRequest
1+theContractBillingPercentages
0..n
{Sum of all ContractBillingPercentages should = 100%}
Contract
)
0..n
1
+theContracts
0..n
+theAccountingCompany
1
0..n
0..1
+theContracts
0..n
+theAircraftTail
0..1
0..n
1
+theAccrualDates
0..n+theContract
1
0..n
0..1
+theContracts0..n
+theContractTemplate
0..1
0..1
0..n
+theBillingContract
0..1
+theBillingContractVariations0..n
0..1
0..n
+theOperationalContract
0..1
+theOperationalContractVariations0..n
0..1
0..n
+theContractualContract
0..1
+theContractualContractVariations0..n
0..n
1
+theAircraftShareValues
0..n
+theContract
1
0..n
1
+theContractChangeLog0..n
+theContract
1
0..n
1
+thePrePayments
0..n
+theContract
1
Division(from Contract)...)
0..n
1
+thePercentageOfRequestBilled
0..n
+theBilledDivision
1
+theContract
+theDivisions0..n
1
0..n
1
3030
J2EE S
erv
er
IntelliJet2 Logical ArchitectureIntelliJet2 Logical Architecture
PersistenceData Services (Entity Beans)
Functional Services (Session Beans)
Visual Basic .NET
SO
AP
Java Portal JSR 168
Oracle
103,000 function points
300 Entity Beans (implement Data Services)
100 Session Beans (implement Functional Services)
21Gb collected in 6 months
500 concurrent user
30 developers
3 years of development
3131
NetJets ResultsNetJets Results
Best customer service in the industry – NetJets now market leader
Common Data Services layer reduced development task for each new module by 30-50%
Common Functional Services have enabled more agile development cycle = competitive gap is widening
Independent consulting firm estimated Netjets would need 15 engineers to maintain system – with SOA and MDA, they are doing maintenance with just 5 people!
3232
ROI For SOA ROI For SOA
2x Developer productivity: after 2 years, shared services should account for > 50% of new application functionality
3x maintenance productivity: mission-critical system deployed using SOA can be maintained with 75% fewer resources
Grid deployment savings: “virtualization” of data and functional services enables distributed deployment to low cost grid computers, with 40% capital cost savings, 30% annual operating cost savings
3333
SOA Data Architecture RoadmapSOA Data Architecture Roadmap
1. Start with data virtualization: create “golden master” data
2. Add data services: provide consistent language bindings, distributed caching
3. Migrate functionality to SOA: plan to invest 30% of dev resources into shared services
Consolidate SW
infrastructure: eliminate silos,
DBs (2+yrs)
3434
The Iceberg Model For SOA The Iceberg Model For SOA
Messaging• Web Services• MQ, JMS, CORBAMessaging
Services
Data Services
Functional Services
Legacy Environment
Functional Services• Java, J2EE, .NET• Grid deployment
flexibility
Data Services• Data virtualization• O-R mapping• Distributed caching
3535
Q&AQ&A