- 23/11/2012
- Posted by: essay
- Category: Free essays
CORBA specifies the interoperability of components (objects) at representative level and application level of OSI model. It allows considering all the applications in a distributed system as objects. Moreover, objects can simultaneously play the role of both client and server: the role of client, if the object is the initiator of method invocation of another object; and the role of server, if another object invokes any method in it. Thus, using CORBA, it is possible to build much more flexible systems than the client-server system based on two- and three-level architecture (Pic.4) (Lin & Veeravalli, 2003).
Pic.4: OMG’s Object Management Architecture
Common Object Services are a set of services provided with object interfaces and supporting basic functions of objects. Common Facilities form a set of classes and objects that support function useful in many application systems. Application objects represent application systems of end-users and provide functions unique for a given application system. Application Objects are application business objects and applications which are the main consumers of the whole CORBA infrastructure.
Object Request Broker determines the CORBA object bus. It allows objects to directly produce and respond to requests from other objects located both locally (on the same computer, but in different processes) and remotely. Client is not interested in communication and other mechanisms which provide objects interaction, calling and storage of server components. CORBA-specification cover only IDL, the mapping in other languages, APIs to interact with ORB and services provided by ORB (Bing & Chun, 2010).
CORBA ORB provides a wide range of distributed middleware services. ORB bus allows objects to find each other during the process and invoke various services from each other. It is a much more subtle system than any other client/server middleware-system, such as RPC (Remote Procedure Calls) or MOM (Message-Oriented Middleware). E.g., using RPC one can invoke a certain function, but through ORB one can invoke a method from a particular object, i.e. RPC lacks specification of invocation in the sense it occurs in the ORB.
In theory, CORBA is presented as the best client/server middleware-system, but in practice it is only as good as the products that implement it. The main commercial ORB include: Orbix by IONA Technologies; DSOM by IBM; ObjectBroker by Digital; JOE by Sun; Visibroker by Visigenic and Netscape; ORB+ by HP (Bonsangue & Johnsen, 2007).
A small list of the benefits of every CORBA ORB: static and dynamic method invocations; mapping in high-level languages: C, C++, SmallTalk, Java and Ada; self-describing system; transparency; built-in security; polymorphism in method invocations.
CORBA and WWW
The answer to the question posed in the introduction – how to integrate information systems, based on WWW technology, with other (including distributed) information systems? – is as following: to link the technology of distributed objects (i.e. CORBA) with WWW technology. This paper also aims to examine the connection of CORBA and WWW in more details. We see two different solutions to the problem. The first solution is based on the usage of CGI technology, and the second one – on the use of Java technology. As part of this work, the practical application of these technologies, using Orbix products and OrbixWeb of IONA Technologies, was investigated (Tomoya, Masashi & Makoto, 2010).
CORBA-CGI
Pure CGI technology consists in the following: for the formation of HTML-page Web-server runs a CGI-script, a separate executable application that can implement rather complex functional logic.
CORBA-CGI solution is based on the fact that the executable CGI-script is also a component of a distributed system. The main difference from the CGI technology is that the CGI-script is not simply an executable module, but also a CORBA-client. In a sense, the script serves as an Input and Output in a distributed system, within which different processes can occur.
The advantages of this technology include virtually all the advantages of using CORBA. In addition, the user works with the usual HTML-pages, which is especially important when working with big volume of text information. Practice shows that the drawbacks of this technology include: low efficiency of the system due to the necessity to re-execute CGI-script when reloading the page; and the user participates in the system solely as a client. Besides, difficulties also occur in the creation of complex, branched user interfaces, which raises the necessity of strict control over the current state of information system. A solution of the problem of CGI-query implementation effectiveness (especially in multi-user system) can be the extending of the functionality of the Web-server by adding the respective functions into it. In this area, the work has been done by embedding the support to access the Orbix ORB in Web-server Apache (Bonsangue & Johnsen, 2007).
Java-CORBA
The second solution to the problem of binding CORBA and WWW technologies is Java-language. OMG has standardized mapping from IDL to Java. There are software products that implement the communication of CORBA and Java, e.g., OrbixWeb, Visibroker, etc. Java-technology is based on the fact that at the detection of <APPLET> tag, the browser uploads all needed Java-classes and runs this applet. In this case, the client machine runs Java Virtual Machine (JVM), within which the downloaded applet is executed. A CORBA-client Java-applet installs all necessary connections with other server system applications, and plays the role of the user interface for the distributed system; the number of running applets is not limited (Tomoya, Masashi & Makoto, 2010).
Advantages of Java-CORBA technology include: Java as a platform-independent language; possibility to create complex user interfaces; applets can serve as both client and server; all the advantages of both technologies; absence of problems with simultaneous multiple users. Java-CORBA disadvantages are: need for sufficient computing resources; absence of Java, or its latest versions’ support by some browsers.
Still, Java-CORBA technology allows the creation of “living” pages, where the information is changing almost constantly. The data exchange between the applets occurs through two different CORBA mechanisms of communication – Push and Pull mechanisms. Reasonable combination of information system components supporting PUSH/PULL model allows achieving high level of flexibility and performance of a created information systems.
Thus, the practice shows that Java-CORBA technology is mostly suitably for creating WWW-CORBA-clients which: have non-standard or non-HTML-like user interface; actively interact with other components of an information system; and participate in the system both as client and server. CORBA-CGI technology is advantageous while working with large volumes of textual information, or if system resources on the client side are of small power.
Despite the fact that the benefits of Java-CORBA technology are significant and its scope is wider, both technologies could be applied for combining WWW-systems and client/server systems. CORBA-CGI technology extends the capabilities of CGI, and Java-CORBA technology – the capabilities of WWW up to the level of distributed object systems.
Conclusion
The research has shown that currently of Java and CORBA technologies perfectly complement each other as a unique, powerful tool for solving the problems of integration of WWW technology-based systems with similar, in particular, distributed information systems.
However, soon CORBA technology can face a very dangerous competitor – DCOM technology promoted by Microsoft, which has already pushed CORBA from the market of Windows-oriented systems. RMI technology, on the contrary, makes steps towards CORBA. Starting with JDK1.2version, RMI protocol will be implemented over the protocol IIOP, which is beneficial to all Java and CORBA developers.
The massive use of Java-CORBA technology will bring the Internet to a whole new level of interaction. Internet will become more like a huge object distributed system. This will finally complete the shift from Web to a new object network – ObjectWeb.
References
Bing, D., & Chun, R. (2010). “Robust performance modelling and scheduling of distributed real-time systems”. The Journal of Supercomputing. 53(1): 122-137.
Bonsangue, M.M., & Johnsen, E.B. (2007). Formal Methods for Open Object-Based Distributed Systems: 9th IFIP WG 6.1 International Conference, FMOODS 2007, Paphos, Cyprus, June 6-8, 2007, Proceedings. Springer.
Lin, W, & Veeravalli, B. (2003). Object Management in Distributed Database Systems for Stationary and Mobile Computing: A Competitive Approach. Springer.
Tanenbaum, A., & Steen, M. (2002). Distributed Systems: Principles and Paradigms. Prentice Hall.
Tomoya, E., Masashi, S., & Makoto, T. (2010). “A transactional agent model for distributed object systems”. International Journal of Applied Systemic Studies. 3(1): 4-15.
Leave a Reply
You must be logged in to post a comment.