530 likes | 686 Views
A database centric update on CORBA. Seán Baker Chief Scientific Officer IONA Technologies PLC. 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.
E N D
A database centric update on CORBA Seán Baker Chief Scientific Officer IONA Technologies PLC
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
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
Part 1 (A) CORBA and EJB
Software without Boundaries Bridging Islands of Technology
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
Technology Velocity... CIO • CIO Mission : Align Information Systems to Business Goals. • Increasingly difficult, as rate of change increases. Java CORBA XML COM JDBC DNA MTS SSL JTS ASPs Appservers IIOP HTTP EJB HTML
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?
Language, Operating System, Network Boundaries W95 and W98 OS/390 Solaris VB C++ COBOL Java NT NT Java C++ Palm PL/I Java HP-UX C++ C
Each Boundary Creates Software Islands C++ Java COBOL For example, different programming languages
The Internet Boundary... OS390 Solaris NT HP-UX Security W W W Connections Transactions
Organisational Boundaries Your Org. or Dept. My Org. orDept. “No, I won’t export my database schema! But I will export a high level interface.”
Conclusion: Many Boundaries • Language • Operating System • Network • Messaging Systems • Legacy Systems • Intra/Extra/Internet • Component Systems • Organisational
Some Challenges in MSWT Making software work together • 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
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
Top 10 list: Why MSWT? 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 Source: Soundview Technology Group, 1999
CORBA Key Architecture for Making Software Work Together
CORBA Overview • CORBA is a standard controlled by the Object Management Group (OMG) • OMG Formed 1989 (10th Anniversary) • Now 1000+ members (Q199)
The First Key To CORBA - Interface Definition Language VB Implementation is Hidden behind interface C++ Java C Service or Contract-oriented View Ada
The Second Key to CORBA: IIOP Protocol for communication: IIOP CORBA Software Bus Interface Definition Language VC++ COBOL Smalltalk
The Third Key to CORBA: Services Java VB Naming Naming Events Transactions Security Trader Notification Persistence Management Standard IDL for Services CORBA Software Bus VC++ COBOL Smalltalk
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
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
Part 1 (B) C3 : Containers, Components & Connectors A view of current trends in the component and middleware industries.
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
C3 Architecture C++ COMPONENT DEVELOPMENT LAYER CONTAINER Legacy JAVA CONNECTORS ERP SYSTEMS MICROSOFT ORACLE
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.
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 thecontainer in which it will be running. • It also defines standards for packagingand deployment.
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
Connectors • Containers cannot exist in isolation • must live with alternative infrastructures (noboundaries) • there should be no “technology islands” (no uglybabies) • 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
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!
A C3 technical architecture GSB COMPONENT FRAMEWORK BROKER OTM ORB, with async comms
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
C3 Summary GSB COMPONENT FRAMEWORK BROKER OTM ORB • 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
Code Generation Demo Part 1 (C) 10 minute demo of code generation
Code Generation Makefile This calls all of the operations client.cpp IDLgen - the code generation engine IDLgen Airline .idl Airline_i.h Prints its arguments and returns random values C++ Genie Airline_i.cpp Genie - tells IDLgen what to generate. - you can write your own Genies.
Overview Of the Process IDL Client developer Server developer IDL compiler IDL compiler Client “stub” Server “skeleton” Client Server
How does it work? Server p->reserveSeat(); Client Airline object remote CORBA call Airline proxy - a local C++ object
CORBA Services Part 1 (D) A set of services that help you to build applications
CORBA Services 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, … ) These are not of equal importance! The 8 most important ones: PNNESSTT System Management MM Streams
Naming PNNESSTT • 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
Resolve the name, to get the object reference Bind the name and object reference Naming Service • To manage names, we create Naming Contexts (directories/folders) within the Naming Service
Events Service PNNESSTT Producer consumers • A “publish and subscribe” paradigm. • Useful where the set of recipients is not known • or where the “sender” and “receiver” must work independently.
Notification Service PNNESSTT Producer F consumers F • Each consumer can specify a filter on the channel. • Quality of Service can also be specified: • ordering of messages • timeouts
Trading Service PNNESSTT • 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
Each makes an offer : • service type • set of properties • Send a query : • service type • constraints Trader (maintains a database of offers)
OTS - Object Transaction Service PNNESSTT • 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.
1 2 4 3 commit request to OTM Instructions to commit atomically 5 OTS
OTS • Provides mechanisms to support each of the following: transaction transaction 2PC protocol + + management propagation T 1 T begin(); 1 { transaction propagation ... } commit(); T RM RM 1