35
Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software www.persistence.com

Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

Embed Size (px)

Citation preview

Page 1: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

Enterprise Data Integration For Service Oriented Architectures

Enterprise Architect Summit – June, 2004

Christopher Keene – CEO, Persistence Softwarewww.persistence.com

Page 2: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 3: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 4: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 5: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 6: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 7: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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!

Page 8: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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™

Page 9: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 10: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 11: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 12: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Charlie Little
This is different stat that the 45% quoted earlier. What is the difference (so I can clarify if necessary)?
Page 13: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

1313

Duplicate Data EverywhereDuplicate Data Everywhere

Page 14: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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)

Page 15: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 16: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 17: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 18: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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%

Page 19: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 20: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 21: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 22: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 23: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 24: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 25: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 26: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 27: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 28: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 29: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 30: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 31: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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!

Page 32: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 33: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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)

Page 34: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

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

Page 35: Enterprise Data Integration For Service Oriented Architectures Enterprise Architect Summit – June, 2004 Christopher Keene – CEO, Persistence Software

3535

Q&AQ&A