Sen Baker Chief Scientific Officer IONA Technologies PLC A database centric update 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 CORBA COM 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 whats new today work with whats 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/390 VB 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++ COBOL Java For example, different programming languages Making Software Work Together 12 IONA Technologies 1998-1999 The Internet Boundary... Solaris NT HP-UX OS390 W
W
W
Security Connections Transactions Making Software Work Together 13 IONA Technologies 1998-1999 Organisational Boundaries Your Org. or Dept. My Org. or Dept.
No, I wont 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 Java ActiveX (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 50 2. Shorter "cycle times" and the need to improve service 42 3. Corporate initiatives such as "supply-chain integration" 40 4. Specific end-user requests 35 5. Mergers and acquisitions 32 6. Links to customers and suppliers for e-commerce 32 7. Consolidation of systems into centralized management 31 8. Pressure on IT costs 31 9. Growth in the "reuse" of existing applications 31 10. 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 Smalltalk Interface 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 Architecture COMPONENT 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 more on this later.
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 components 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 Microsofts 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 of code generation Part 1 (C) Making Software Work Together 37 IONA Technologies 1998-1999 Code Generation Airline .idl IDLgen C++ Genie Airline_i.h Airline_i.cpp client.cpp Makefile IDLgen - the code generation engine This 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 IDL IDL compiler Client stub IDL compiler Server skeleton Client developer Server developer
Server Client Making Software Work Together 39 IONA Technologies 1998-1999 p->reserveSeat();
Client How does it work? Server Airline proxy - a local C++ object remote CORBA call Airline object 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 Management MM 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 c o n s u m e r 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 c o n s u m e r 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 dont 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 properties Send 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 dont want some to commit and others to rollback. PNNESSTT Making Software Work Together 49 IONA Technologies 1998-1999 1 2 3 4 commit request to OTM OTS Instructions to commit atomically 5 Making Software Work Together 50 IONA Technologies 1998-1999 OTS Provides mechanisms to support each of the following: t r a n s a c t i o n
p r o p a g a t i o n
T 1 T 1 T 1 RM RM transaction propagation 2PC protocol + transaction management + 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 ORB Naming COM integration SSL Security Firewall Security Transactions Events Mangement 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 werent available.
The core aspects of distributed computing built on top of IDL and the point to point communication provided by the base ORB