Application Integration
description
Transcript of Application Integration
Application IntegrationApplication Integration
Gus Björklund,Wizard,Vice President of Technology,Progress Software
FinPUGTurku, Finland, 26-Mar-01
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 2
Integration SubjectsIntegration Subjects
Challenges
Available Technologies
The Progress Way
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 3
Integration - The ChallengesIntegration - The Challenges
Short-termrelationships
Expandingmarkets
Incompatibletechnologies
Incompatibleapplications
Languages
Culturaldifferences
Countryboundaries
Costeffectiveness Legal
Barriers
Speedof light
Need forefficiency
Disintermediation
Legacy infrastructures
PoliticsComplexity
Competitors
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 4
If it is thathard…
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 5
why do it ?why do it ?
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 6
BenefitsBenefits
Extend functionality of internal systems– Buy and tie
Preserve existing, working (“legacy”) systems– Use alongside new systems
– Reduce cost by not replacing Automate inter-company business processes
– Increase efficiency
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 7
Integration – Many TechnologiesIntegration – Many Technologies
XML
CORBA
IIOP
SharedLibraries
J2EE
ADM
JavaBeans
COM EDI
Sockets
DCOM
DLL
EJB
DDESmartObjects
DCOM
SMTP
POP
ONC RPC
RMI
DCE RPC X.12
DCOM HLC
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 8
Two Fundamental Integration Approaches
Two Fundamental Integration Approaches
Procedure Calls– Shared component framework
– One application calls procedure in another
– “Tight” coupling Send and Receive Messages
– Shared messaging framework
– One application sends a message to another
– “Loose” coupling
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 9
Procedure CallsProcedure Calls
status = createCust (3456,“Smith’s Plumbing”,“1 Velvet Lane”):
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 10
Procedure CallsProcedure Calls
status = createCust (3456,“Smith’s Plumbing”,“1 Velvet Lane”):
int createCust (int id,char *namechar *address)
{ return (RET_OK);}
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 11
MessagesMessages
ApplicationApplication11
ApplicationApplication22
return reply
send message
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 12
What’s In The Message ?What’s In The Message ?
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 13
What’s In The Message ?What’s In The Message ?
4:CCUS2:3456
16:Smith’s Plumbing13:1 Velvet Lane
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 14
Integration SubjectsIntegration Subjects
Challenges
Available TechnologiesTightly Coupled Approaches
Loosely Coupled Approaches
The Progress Way
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 15
Component ModelComponent Model
An architecture and framework that enables the construction of modular applications and systems from separately developed pieces
“Plumbing” that allows developers to focus on their application, not on infrastructure.
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 16
Variety of Component PlumbingVariety of Component Plumbing
CICS COM CORBA JavaBeans Enterprise JavaBeans San Francisco Progress ADM, SmartObjects, ICF etc.
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 17
COMCOM
ComponentComponent- DLL is usual- DLL is usual
Interfaces
ApplicationApplication
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 18
COMCOM
Microsoft’s component framework and related infrastructure
Enables components to communicate with each other through declared interfaces
Everything MS builds is based on COM
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 19
DCOMDCOM
COMCOMDCERPCCOMCOM ComponentComponent
Client Machine Server Machine
ApplicationApplication
Network
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 20
DCOMDCOM
Distributed COM Adds remote capabilities to COM Uses DCE RPC for communication
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 21
COM+COM+
What’s already in DCOM, plus the following:– Publish and Subscribe Interface
– Queued components
– Load Balancing
– Integration of MTS (Microsoft Transaction Server
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 22
ApplicationObjects
Object Request Broker (ORB)
Common Object Services
Shared Facilities
CORBA ArchitectureCORBA Architecture
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 23
CORBACORBA
“Common Object Request Broker Architecture”
Plumbing to enable object-oriented programs to make remote method calls
Primarily used with C++ programs, although other language bindings exist
CORBA Services incomplete, extras Attempting to accommodate Java Dead ?
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 24
IIOPIIOP
IIOPORB ORB
Component
Component
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 25
IIOPIIOP
Internet Inter-ORB Protocol A protocol that allows CORBA ORBs to talk to
each other– objects residing in one ORB call methods of
objects in another
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 26
Data
EJB ArchitectureEJB Architecture
EJB Server
Client
EJB Container
EnterpriseBean
EnterpriseBean
Other Apps
DatabaseServer
EnterpriseBean
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 27
EJBEJB
Server component architecture for Java– Plumbing enables distributed JavaBeans
Powerful programming language Good component model Good transaction model Different language for data access
– JDBC and SQL are hard to use Do-it-yourself clients Database not included
– Good or bad, depending on point of view
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 28
User InterfaceUser Interface Business Logic Data Business Logic Data
Progress ADM/SmartObject ArchitectureProgress ADM/SmartObject Architecture
WebServer
WebSpeedMessenge
r
AppServerInternetAdapter
SmartObjectsSmartObjects
Firewall
GUI
Character
JavaActiveX
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 29
Progress ADM/SmartObjectsProgress ADM/SmartObjects
Progress Distributed Component Architecture Powerful, easy-to-learn, easy-to-use
programming language Data model integrated with 4GL Progress database Multiple client types Same language at all layers
– Presentation
– Logic
– Data access
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 30
BREAK !BREAK !
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 31
3-Tier Application Architecture3-Tier Application Architecture
Display andbrowse dataAccept inputSimple validation
Complex validationCalculationGuts of applicationData retrieval andupdate
AccessOrganizeManage data
DatabaseServer
ProcessingLogic
Data AccessLogic
Presentation
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 32
What’s Wrong With Procedure Calls ?What’s Wrong With Procedure Calls ?
status = createCust (3456,“Smith’s Plumbing”,“1 Velvet Lane”):
int createCust (int id,char *namechar *address)
{ return (RET_OK);}
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 33
TroublesTroubles
If one application blocks or fails, all may be affected Each application requires knowledge of what data types
other applications expect Version compatibility - hard Data transformation and routing logic built into each
application Guarantees, quality of service and reliability are your
responsibility Shared resource management sometimes difficult Different component models incompatible When you build some, and others build some, these
problems hard to control
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 34
Integration SubjectsIntegration Subjects
Challenges
Available TechnologiesTightly Coupled Approaches
Loosely Coupled Approaches
The Progress Way
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 35
MessagingMessaging
Asynchronous requests, reports, or events that are produced and consumed in enterprise applications
A formal way for programs to exchange data and request services among each other in a loosely coupled way
Many techniques possible
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 36
File TransferFile Transfer
Works – been done for many years Point-to-point over various protocols
– FTP, HTTP, NFS, Floppy Disk ! But:
– No guaranteed delivery– Detecting errors tricky– Operating system compatibility issues– Hardware Architecture compatibility issues– Performance low for small files
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 37
Do It Yourself Messaging With SocketsDo It Yourself Messaging With Sockets
ApplicationApplication11
ApplicationApplication22
send back reply
send message
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 38
Do It Yourself Messaging With SocketsDo It Yourself Messaging With Sockets
Works Cheap - at first But:
– Guaranteed delivery is hard
– Scalability is hard
– Socket programming is not easy
– Architecture neutrality cumbersome
– Security is hard
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 39
EDIEDI
ApplicationApplication11
ApplicationApplication22
VPN
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 40
EDIEDI
Point-to-point messaging Based on X.12 protocol Uses VPN Popular, estalished But:
– Expensive
– Individual deals often needed for each link
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 41
Connections MultiplyConnections Multiply
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 42
What To Do ?What To Do ?
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 43
Subscriber
Subscriber
Subscriber
Receiver
Message ServersMessage Servers
MessageServer
Publisher
Sender
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 44
Message ServersMessage Servers
Don’t connect to every destination– Just connect to server
Message server figures out– Who is supposed to get which messages
– How to get them there
– Quality of service
– What to do if message cannot be delivered recipient not connected system crashes
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 45
Oldest Message Server: EMAILOldest Message Server: EMAIL
Easy ! Most systems already have infrastructure
– Client-server architecture– Automatic routing
Protocols universal– POP, SMTP, IMAP
Fairly reliable But:
– Delivery not guaranteed– Error detection difficult
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 46
SonicMQ Message ServerSonicMQ Message Server
Subsidiary
SonicMQServer
SonicMQServer
QuotesQuotes
CatalogCatalog
office
SonicMQServer
SonicMQServer
QuotesQuotes
SonicMQ ClusterSonicMQ Cluster
PartnerPurchasingPurchasing
AvailabilityAvailability
ForecastingForecasting
SonicMQServer
SonicMQServer
SonicMQ ClusterSonicMQ Cluster
Headquarters
CatalogCatalog PricingPricing
ShippingShipping
FinanceFinance
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
CatalogCatalog
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
Internet
Internet
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 47
XML And MessagesXML And Messages
Rationalized Form(Human Readable)
Schema Standards
Transformations(XSLT)
Query & Manipulation(XPATH, DOM, XQL)
Support fromVendors/Consortia/Trading Exchanges
StandardSchema
Repositories
Standard Toolkits
XML
ArchitectureNeutral
Adapts toChange
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 48
Integration SubjectsIntegration Subjects
Challenges
Available TechnologiesTightly Coupled Approaches
Loosely Coupled Approaches
The Progress Way
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 49
BusinessLogic
ANYClient
ANY Application
ANY Business
ANYData
Source
Components With Progress ADM and Internet Component Framework (ICF)
Smart Business ObjectSmart Sender/Receiver
Smart B2B ObjectDynamic SDO
New Smart ObjectsInternet Component
FrameworkInternet Component
Framework
Repository
Session Manager
Security Manager
ContextManager
CustomizationManager
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 50
Components With Progress ADM and Internet Component Framework (ICF)Components With Progress ADM and Internet Component Framework (ICF)
Tight Coupling:
Quickly build and deploy applications Reuse existing business logic Assemble applications using multiple
development models Support all e-business deployment models Leverage Progress UAA
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 51
Messaging With 4GL And SonicMessaging With 4GL And Sonic
ActiveX SonicMQ Client– Win32 Only (Client)
ProxyGen to Java (9.x and above)– Client and Server (synchronous)
SonicMQ 4GL Adapter (9.1B)– “Real” SonicMQ integration through
the 4GL SmartProducer/SmartConsumer Objects
– Easy ADM to Sonic integration
Loose Coupling:
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 52
Conclusion:Conclusion:
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 53
Conclusion:Conclusion:
To build modular applications– Use components
SmartObjectsSmartObjects
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 54
Conclusion:Conclusion:
To build modular applications– Use components
To integrate applications– Use messaging
SonicMQ ClusterSonicMQ Cluster
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServerSonicMQ ClusterSonicMQ Cluster
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SmartObjectsSmartObjects
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 55
Conclusion:Conclusion:
To build modular applications– Use components
To integrate applications– Use messaging
Do it with Progress SonicMQ ClusterSonicMQ Cluster
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServerSonicMQ ClusterSonicMQ Cluster
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SonicMQServer
SmartObjectsSmartObjects
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 56
One Last Thing:To Learn More…One Last Thing:To Learn More…
Come to– Washington, DC, USA– June 3 through 7, 2001
A Shameless Plug !
2001Exchange
PROGRESS WORLDWIDE
© 2001, Progress Software CorporationFinPUG, Turku, Finland, March 26, 2001 - Application Integration 57
PROGRESSS O F T W A R E
Engine Crew
Questions?