Seán Baker Chief Scientific Officer IONA Technologies PLC
description
Transcript of Seán Baker Chief Scientific Officer IONA Technologies PLC
Making Software Work Together ™1 © IONA Technologies 1998-1999
Seán BakerChief Scientific OfficerIONA Technologies PLC
A database centricupdate on CORBA
Making Software Work Together ™2 © IONA Technologies 1998-1999
Topics• Part 1 - CORBA and EJB
– Bridging Boundaries - the reason for CORBA– Intro to CORBA– An example– CORBA Services– New standards: POA in particular– EJB
• Part 2 - CORBA and Databases
Making Software Work Together ™3 © IONA Technologies 1998-1999
Emphasis
• The emphasis will be on CORBA issues– and CORBA + Database issues
• and not on Database issues– e.g., how to map OO to relational, or vice
versa
Making Software Work Together ™4 © IONA Technologies 1998-1999
Part 1 (A)
CORBA and EJB
Making Software Work Together ™5 © IONA Technologies 1998-1999
Software without Boundaries
Bridging Islands of Technology
Making Software Work Together ™6 © IONA Technologies 1998-1999
The Key Driver - Change
• Everything is changing….– Markets– Business Models– Technology
• CIO Mission– Align Information Systems to Business Goals– Increasingly difficult, as rate of change increases
Making Software Work Together ™7 © IONA Technologies 1998-1999
CORBACOM
ASPs
DNA
EJB
MTS
XML
JDBC
JTS
Java
IIOP
SSL
HTTP
Technology Velocity...
HTML
Appservers
CIO Mission : Align Information Systems to Business Goals. Increasingly difficult, as rate of change increases.
CIO
Making Software Work Together ™8 © IONA Technologies 1998-1999
All this new technology creates Technology Boundaries
• How will the new technology work with what I have?
• How will what’s new today work with what’s new tomorrow, next year, next decade?
Making Software Work Together ™9 © IONA Technologies 1998-1999
What kind of boundaries stand in our way?
Making Software Work Together ™10 © IONA Technologies 1998-1999
Language, Operating System, Network Boundaries
W95 and W98
NT
Palm
Solaris
NT
HP-UX
OS/390VB
Java
C++
Java
C
C++
Java
C++
COBOL
PL/I
Making Software Work Together ™11 © IONA Technologies 1998-1999
Each Boundary Creates Software Islands
C++ COBOLJava
For example, different programming languages
Making Software Work Together ™12 © IONA Technologies 1998-1999
The Internet Boundary...
Solaris
NT
HP-UX
OS390W W
W Security
Connections
Transactions
Making Software Work Together ™13 © IONA Technologies 1998-1999
Organisational BoundariesYour Org. or Dept. My Org. or Dept.
“No, I won’t export my database schema!But I will export a high level interface.”
Making Software Work Together ™14 © IONA Technologies 1998-1999
Conclusion: Many Boundaries
• Language• Operating System• Network• Messaging Systems• Legacy Systems• Intra/Extra/Internet• Component Systems• Organisational
Making Software Work Together ™15 © IONA Technologies 1998-1999
Some Challenges in MSWT• Bridging Software Boundaries
– network– different programming languages– different operating systems– legacy– administrational– data paradigm (relational, OO, etc)
• Ease-of-use– MSWT is not just for rocket scientists
• Scaling– E.g., Internet = millions of users, day 1
• Agility– you want a lot of flexibility -- not a straight-jacket!
C++Smalltalk
JavaActiveX (Visual Basic, Delphi, Power Builder)
COBOL
PL/I
Making software work together
Making Software Work Together ™16 © IONA Technologies 1998-1999
Some Types of MSWT• What kind of things must “work together”?
– New In-house and Custom-built applications
– Old In-house and Custom-built applications (legacy, heritage)
– Packaged applications (COTS Packages) - e.g., ERP systems
– The web and Internet technologies
Making Software Work Together ™17 © IONA Technologies 1998-1999
Top 10 list: Why MSWT?
Source: Soundview Technology Group, 1999
Business/technical reason for wanting to Weighted Make Software Work Together rank
1. External Web access to "internal" applications 502. Shorter "cycle times" and the need to improve service 423. Corporate initiatives such as "supply-chain integration" 404. Specific end-user requests 355. Mergers and acquisitions 326. Links to customers and suppliers for e-commerce 327. Consolidation of systems into centralized management 318. Pressure on IT costs 319. Growth in the "reuse" of existing applications 3110. Major implementation of SAP or similar enterprise package 25
Making Software Work Together ™18 © IONA Technologies 1998-1999
CORBA
Key Architecture for Making Software Work Together
Making Software Work Together ™19 © IONA Technologies 1998-1999
CORBA Overview• CORBA is a standard
controlled by the Object Management Group (OMG)
• OMG Formed 1989 (10th Anniversary)
• Now 1000+ members (Q199)
Making Software Work Together ™20 © IONA Technologies 1998-1999
The First Key To CORBA - Interface Definition Language
VB
C++
Java
C
Ada
Implementation is Hidden behind interface
Service or Contract-oriented View
Making Software Work Together ™21 © IONA Technologies 1998-1999
The Second Key to CORBA: IIOP
CORBA Software Bus
VC++ COBOL SmalltalkInterface Definition Language
Protocol for communication: IIOP
Making Software Work Together ™22 © IONA Technologies 1998-1999
The Third Key to CORBA: Services
CORBA Software Bus
VC++
VB
COBOL Smalltalk
Java Naming Naming
Events
Transactions
Security
Trader
Notification
Persistence
Management
Standard IDL for Services
Making Software Work Together ™23 © IONA Technologies 1998-1999
What about CORBA and OS/390?
• The mainframe can be made a first class citizen – it can access components on other machines– other machines can access components running on
OS/390– components can be moved from or to the mainframe
• Native, USS or CICS• C++, Java, COBOL or PL/I
Making Software Work Together ™24 © IONA Technologies 1998-1999
CORBA: Summary• Mature, deployed and scalable
• Significant momentum continues...
• Proven foundation for
– Making Software Work Together
• Helps deliver on our vision
– A World Without Software Boundaries
Making Software Work Together ™25 © IONA Technologies 1998-1999
C3 : Containers, Components & Connectors
A view of current trends in the component and middleware
industries.
Part 1 (B)
Making Software Work Together ™26 © IONA Technologies 1998-1999
Crossing Boundaries - Making Software Work Together
• The high rate of development of new technologies we need a greater emphasis on a framework or
architecture– into which you can plug new technologies as you
adopt them– and which can work with current and legacy
systems• This framework must be a standard.
– it can persist as Technologies, Businesses, Applications change
Making Software Work Together ™27 © IONA Technologies 1998-1999
C3 ArchitectureCOMPONENT DEVELOPMENT LAYER
CONTAINER
MICROSOFT
ORACLE
ERP SYSTEMS
C++
JAVA
CONNECTORS
Legacy
Making Software Work Together ™28 © IONA Technologies 1998-1999
Components• Smarter than your average object
– aware of underlying container infrastructure– can be automatically managed, transactional,
secure, Internet-enabled, etc• and these can be chosen at deployment time
• Mappable to alternative Component Frameworks– CORBA, EJB, Microsoft, and so on as they emerge
Making Software Work Together ™29 © IONA Technologies 1998-1999
Containers• “a runtime environment in which components are
deployed”• Enterprise Platform infrastructure
– Internet, Persistence, Security, Transactions, Naming, load balancing, connection management ...
• Makes it easier to bridge boundaries– languages, platforms, models, OSs, legacy, …
• A component framework– Essentially defines a component’s view of the
container in which it will be running.– It also defines standards for packaging
and deployment.
Making Software Work Together ™30 © IONA Technologies 1998-1999
Containers - my beliefs
• They should be standards-based– avoid building to proprietary models
• They should be build on top of CORBA– proven, powerful, standard– but be able to support many component models
• They should be extensible– even by 3rd parties– they should support system components (as
well as application components)• so - for example - we could change
protocols, or other system level behavior
Making Software Work Together ™31 © IONA Technologies 1998-1999
Connectors• Containers cannot exist in isolation
– must live with alternative infrastructures (no boundaries)– there should be no “technology islands” (no ugly babies)
• Bridging should be as rich as possible– should extend to include transaction, security, naming
models, rich communications, management, …..• Examples of IONA Connectors :
– OrbixCOMet Desktop (MTS integration planned)• to bridge into and out of Microsoft’s world
– CICS, IMS Adapters to connect to mainframe TXs– BAAN, SAP, Finance, Telecom connectors built
for individual customers
Making Software Work Together ™32 © IONA Technologies 1998-1999
CORBA and EJB• These have many common objectives
– definition, packaging and deployment of components
• CORBA has always been component oriented– EJB ideas are being extended and incorporated into CORBA 3– EJB is like CORBA without language independence
• A Java-based CORBA will then be the best EJB– a EJB flavor on the richness of CORBA
• EJB mandates CORBA interoperability– and many EJB services are very close derivatives of their CORBA forerunners.
• Why is this so important?– Because more component frameworks will emerge over time!
Making Software Work Together ™33 © IONA Technologies 1998-1999
A C3 technical architecture
OTM
COMPONENT FRAMEWORK
ORB, with async comms
GSB
BROKER
Making Software Work Together ™34 © IONA Technologies 1998-1999
Three layers of Ease of Use• ORB
– supports interfaces and objects• OTM
– adds services (Security, Transactions, …) • GSB
– uses a component framework to support the separation of application and container code
– and allows you to choose OTM features using a GUI
Making Software Work Together ™35 © IONA Technologies 1998-1999
C3 Summary • Components offer a useful extension to OO
– component development, assembly and deployment• ORB is the underlying integration layer• ORB + OTM + Broker is the Container• GUI layers for ease of use and management
OTM
COMPONENT FRAMEWORK
ORB
GSB
BROKER
Making Software Work Together ™36 © IONA Technologies 1998-1999
Code Generation Demo
10 minute demo ofcode generation
Part 1 (C)
Making Software Work Together ™37 © IONA Technologies 1998-1999
Code Generation
Airline .idl
IDLgen
C++ GenieAirline_i.h
Airline_i.cpp
client.cpp
Makefile
IDLgen - the code generation engineThis calls all of the operations
Prints its arguments and returns random values
Genie - tells IDLgen what to generate.- you can write your own Genies.
Making Software Work Together ™38 © IONA Technologies 1998-1999
Overview Of the Process
IDLIDL
IDLcompiler
Client“stub”
IDLcompiler
Server“skeleton”
Client developer Server developer
ServerClient
Making Software Work Together ™39 © IONA Technologies 1998-1999
p->reserveSeat();Client
How does it work?
Server
Airline proxy -a local C++ object
remoteCORBA
call
Airlineobject
Making Software Work Together ™40 © IONA Technologies 1998-1999
CORBA Services
Part 1 (D)
A set of services that help you to build applications
Making Software Work Together ™41 © IONA Technologies 1998-1999
Naming (look up names to get references to object)
Events (send msgs to multiple receivers)
Transactions (two phase commit)
Security (who can call what objects)
Trading (find objects given a constraint string)
Lifecycle (factories for objects; moving objects)
Time (get time of day; and periodic calls)
Licensing (who can run what)
Notification (filter messages & QoS)
Persistent State (arch. for persistence)
Properties (attach properties to objects)
Relationships (relationships between objects)
Query (query collections of objects)
Concurrency Control (locking)
Externalization (writing objects to byte streams)
Collections (sets, bags, … )
System ManagementMM Streams
These are not of equal importance!
The 8 most important ones:
PNNESSTT
CORBA Services
Making Software Work Together ™42 © IONA Technologies 1998-1999
Naming
• I want to find a cinema object with the name “Odien London”
• Pass that name to the Naming Service, and receive back an object reference
• Some server must have previously registered that name and and object reference with the Naming Service
PNNESSTT
Making Software Work Together ™43 © IONA Technologies 1998-1999
Naming Service
Bind the name and object reference
• To manage names, we create Naming Contexts (directories/folders) within the Naming Service
Resolve the name, to get the object reference
Making Software Work Together ™44 © IONA Technologies 1998-1999
Events Service
cons
umer
s
Producer
• A “publish and subscribe” paradigm.• Useful where the set of recipients is not known or where the “sender” and “receiver” must work independently.
PNNESSTT
Making Software Work Together ™45 © IONA Technologies 1998-1999
Notification Service
cons
umer
s
Producer
• Each consumer can specify a filter on the channel.• Quality of Service can also be specified:
– ordering of messages– timeouts
F
F
PNNESSTT
Making Software Work Together ™46 © IONA Technologies 1998-1999
Trading Service• I don’t know the name of the cinema that I want to
communicate with– BUT I would like the Trading Service to find a cinema
for me that fulfills some constraint• E.g., - find a cinema
– that is showing “Men in Black”– the show must start between 8pm and 9pm today– and it must be within 10 km of some specified town
• The Trader will give me a sequence of one or more object references to choose from
PNNESSTT
Making Software Work Together ™47 © IONA Technologies 1998-1999
Trader(maintains a database of offers)
Each makes an offer :• service type• set of propertiesSend a query :
• service type• constraints
Making Software Work Together ™48 © IONA Technologies 1998-1999
OTS - Object Transaction Service• A client may use several servers, each of which
may update a database– we must be sure that all of the servers’
databases are updated (committed)
– If they all cannot be committed then it would be best for them all to be rolled back.
– certainly don’t want some to commit and others to rollback.
PNNESSTT
Making Software Work Together ™49 © IONA Technologies 1998-1999
1
2
34
commitrequest to OTM
OTS
Instructions to commitatomically
5
Making Software Work Together ™50 © IONA Technologies 1998-1999
OTS• Provides mechanisms to support each of the following:
trans
actio
n pr
opag
atio
n
T1
T1
T1
RM RM
transactionpropagation 2PC protocol+
transactionmanagement +
begin();{ ...}commit();
Making Software Work Together ™51 © IONA Technologies 1998-1999
Security• Augmenting IIOP with SSL. This provides:
– Authentication (security certificates>– Data Privacy– Data Integrity
• The CORBA Security standard, add– Identification and authentication of principals– Authorization and access control– Security auditing– Non-repudiation– Delegation
PNNESSTT
Making Software Work Together ™52 © IONA Technologies 1998-1999
ORBNamingCOM integrationSSL SecurityFirewall SecurityTransactionsEventsMangement
A product bundle
Object Transaction Monitor (OTM)- the transaction monitor for object systems
Making Software Work Together ™53 © IONA Technologies 1998-1999
Services : Summary• A set of services that you would have to write
yourself if they weren’t available.
• The core aspects of distributed computing built on top of IDL and the point to point communication provided by the base ORB
• What’s missing– FT– LB