1 / 53

Seán Baker Chief Scientific Officer IONA Technologies PLC

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.

arch
Download Presentation

Seán Baker Chief Scientific Officer IONA Technologies PLC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A database centric update on CORBA Seán Baker Chief Scientific Officer IONA Technologies PLC

  2. 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

  3. 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

  4. Part 1 (A) CORBA and EJB

  5. Software without Boundaries Bridging Islands of Technology

  6. 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

  7. 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

  8. 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?

  9. What kind of boundaries stand in our way?

  10. 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

  11. Each Boundary Creates Software Islands C++ Java COBOL For example, different programming languages

  12. The Internet Boundary... OS390 Solaris NT HP-UX Security W W W Connections Transactions

  13. 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.”

  14. Conclusion: Many Boundaries • Language • Operating System • Network • Messaging Systems • Legacy Systems • Intra/Extra/Internet • Component Systems • Organisational

  15. 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

  16. 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

  17. 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

  18. CORBA Key Architecture for Making Software Work Together

  19. CORBA Overview • CORBA is a standard controlled by the Object Management Group (OMG) • OMG Formed 1989 (10th Anniversary) • Now 1000+ members (Q199)

  20. The First Key To CORBA - Interface Definition Language VB Implementation is Hidden behind interface C++ Java C Service or Contract-oriented View Ada

  21. The Second Key to CORBA: IIOP Protocol for communication: IIOP CORBA Software Bus Interface Definition Language VC++ COBOL Smalltalk

  22. 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

  23. 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

  24. 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

  25. Part 1 (B) C3 : Containers, Components & Connectors A view of current trends in the component and middleware industries.

  26. 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

  27. C3 Architecture C++ COMPONENT DEVELOPMENT LAYER CONTAINER Legacy JAVA CONNECTORS ERP SYSTEMS MICROSOFT ORACLE

  28. 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.

  29. 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.

  30. 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

  31. 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

  32. 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!

  33. A C3 technical architecture GSB COMPONENT FRAMEWORK BROKER OTM ORB, with async comms

  34. 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

  35. 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

  36. Code Generation Demo Part 1 (C) 10 minute demo of code generation

  37. 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.

  38. Overview Of the Process IDL Client developer Server developer IDL compiler IDL compiler Client “stub” Server “skeleton” Client Server

  39. How does it work? Server p->reserveSeat(); Client Airline object remote CORBA call Airline proxy - a local C++ object

  40. CORBA Services Part 1 (D) A set of services that help you to build applications

  41. 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

  42. 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

  43. 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

  44. 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.

  45. 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

  46. 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

  47. Each makes an offer : • service type • set of properties • Send a query : • service type • constraints Trader (maintains a database of offers)

  48. 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.

  49. 1 2 4 3 commit request to OTM Instructions to commit atomically 5 OTS

  50. 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

More Related