Logo

Navigation
  • Home
  • Services
    • ERP Solutions
    • Implementation Solutions
    • Support and Maintenance Solutions
    • Custom Solutions
    • Upgrade Solutions
    • Training and Mentoring
    • Web Solutions
    • Production Support
    • Architecture Designing
    • Independent Validation and Testing Services
    • Infrastructure Management
  • Expertise
    • Microsoft Development Expertise
    • Mobile Development
    • SQL Server Database and BI
    • SAP BI, SAP Hana, SAP BO
    • Oracle and BI
    • Oracle RAC
  • Technical Training
    • Learn Data Management
      • Business Intelligence
      • Data Mining
      • Data Modeling
      • Data Warehousing
      • Disaster Recovery
    • Learn Concepts
      • Application Development
      • Client Server
      • Cloud Computing Tutorials
      • Cluster Computing
      • CRM Tutorial
      • EDI Tutorials
      • ERP Tutorials
      • NLP
      • OOPS
      • Concepts
      • SOA Tutorial
      • Supply Chain
      • Technology Trends
      • UML
      • Virtualization
      • Web 2.0
    • Learn Java
      • JavaScript Tutorial
      • JSP Tutorials
      • J2EE
    • Learn Microsoft
      • MSAS
      • ASP.NET
      • ASP.NET 2.0
      • C Sharp
      • MS Project Training
      • Silverlight
      • SQL Server 2005
      • VB.NET 2005
    • Learn Networking
      • Networking
      • Wireless
    • Learn Oracle
      • Oracle 10g
      • PL/SQL
      • Oracle 11g Tutorials
      • Oracle 9i
      • Oracle Apps
    • Learn Programming
      • Ajax Tutorial
      • C Language
      • C++ Tutorials
      • CSS Tutorial
      • CSS3 Tutorial
      • JavaScript Tutorial
      • jQuery Tutorial
      • MainFrame
      • PHP Tutorial
      • VBScript Tutorial
      • XML Tutorial
    • Learn Software Testing
      • Software Testing Types
      • SQA
      • Testing
  • Career Training
    • Career Improvement
      • Career Articles
      • Certification Articles
      • Conflict Management
      • Core Skills
      • Decision Making
      • Entrepreneurship
      • Goal Setting
      • Life Skills
      • Performance Development
      • Personal Excellence
      • Personality Development
      • Problem Solving
      • Relationship Management
      • Self Confidence
      • Self Supervision
      • Social Networking
      • Strategic Planning
      • Time Management
    • Education Help
      • Career Tracks
      • Essay Writing
      • Internship Tips
      • Online Education
      • Scholarships
      • Student Loans
    • Managerial Skills
      • Business Communication
      • Business Networking
      • Facilitator Skills
      • Managing Change
      • Marketing Management
      • Meeting Management
      • Process Management
      • Project Management
      • Project Management Life Cycle
      • Project Management Process
      • Project Risk Management
      • Relationship Management
      • Task Management
      • Team Building
      • Virtual Team Management
    • Essential Life Skills
      • Anger Management
      • Anxiety Management
      • Attitude Development
      • Coaching and Mentoring
      • Emotional Intelligence
      • Stress Management
      • Positive Thinking
    • Communication Skills
      • Conversation Skills
      • Cross Culture Competence
      • English Vocabulary
      • Listening Skills
      • Public Speaking Skills
      • Questioning Skills
    • Soft Skills
      • Assertive Skills
      • Influence Skills
      • Leadership Skills
      • Memory Skills
      • People Skills
      • Presentation Skills
    • Finding a Job
      • Etiquette Tips
      • Group Discussions
      • HR Interviews
      • Interview Notes
      • Job Search Tips
      • Resume Tips
      • Sample Resumes
 

Client Server : Object Request Brokers

By Exforsys | on July 6, 2007 |
Client Server

Client Server : Object Request Brokers

The Importance of Middleware

Middleware is the connective layer in client-server models. The multi-vendor software is compiled by designers to enable services that allow multiple machines to process multiple requests and interact across a network. It also allows communication across platforms. It is like a translation layer that liberates the client-server model by allowing it to communicate more freely across platforms and networks in standardized languages comprehensible across software or hardware differences.

Middleware provides a more effective API (Application Programming Interface) than operating systems (OS) or network services. APIs are important to middleware because they provide the interface through which clients communicate with servers. APIs aid middleware as a type of programming that allows for data sharing across platforms. It helps toward the open systems goal of complete cross-platform consistency. The most popular types of APIs used in client-server models are RPCs (Remote Procedure Calls), SQL (Standard Query Language), and message delivery. The primary goal of middleware is to allow application to find what they need from another application located on another server or on the Web and interact with that application (or service) to perform a requested task. Middleware is also liberated from network services, not requiring them to communicate with servers across networks.

For the purpose of this article, the type of middleware we will be investigating is ORB (Object Request Broker). ORBs manage communication and the exchange of data between objects on distributed systems. This promotes interoperability by allowing users to piece together objects, possibly from different vendors, on different computers that will work together through ORBs. Since ORBs are object-oriented programming, another feature is the hiding of all communication details from users or developers. This allows for easy transparent communication. Users experience a single interface, while applications are being accessed from different locations. This feature enhances maintainability, which is a software application’s ability to detect error and improve performance ‘behind the scenes’ or in the ‘back office’ on the server. ORB technology defines interface features, locates and activates remote objects/services, and provides communication between client and object.

This article will discuss ORB functions and major ORB technologies like OMG’s CORBA, Microsoft’s COM/DCOM, and Java’s RMI.

OMG’s CORBA

CORBA stands for Common Object Request Broker Architecture. It was developed as a product by Object Management Group (OMG) soon after it formed in 1989. OMG’s aim is to develop an open distributed object infrastructure. Distributed objects are software modules that exist on different computer systems on, for example, a private network or the Web. These objects ‘distributed’ across different locations are designed to work together to meet users’ needs. A program on one machine sends a request to an object on another machine in another location to perform some processing task. The results are then sent back to the client’s machine that made the request. CORBA is the software interface that supports this communication. It allows communication between objects regardless of their location on a network on the World Wide Web.

CORBA was the first specification OMG instituted as it developed its Object Management Architecture (OMA). The object architecture model can be described roughly as follows: On the top layer application interfaces, domain facilities and common facilities communicate with the ORB core. The ORB communicates processing requests to object services. Object services/processes return a response to the ORB core, which, in turn, returns the response to users. CORBA programming makes this rough model more sophisticated.

Let us use as an example of object type, the shopping cart function on so many e-commerce web sites. Each object type requires an OMG IDL (Interface Description Language). This IDL offers syntax from the server to specify the task it wants performed. This same interface syntax is used when the response is returned to the client. IDL is an independent programming language, but maps to the most used programming languages, like C, C++, Java, and Python, through OMG standards.

The key to CORBA is the “separation of interface from implementation”. This is facilitated by OMG IDL. It is this separation that produces the interoperability and transparency that mark CORBA. The specificity of interfaces and the object contained within them maintain control. All implementation takes places behind a barrier the client cannot cross.

IDL is compiled into client stubs and object skeletons (also written in IDL), which substitute client requests and server responses, respectively. Implementation and processing objects are written on the server side. Because IDL interfaces are so specific, the client stub has a perfect match or specific function to which it is attached. The interface definition is so strictly defined that the two can originate from different programming languages from different vendors.

Microsoft’s COM

COM or Common Object Model was developed and introduced by Microsoft. It is also known as DCOM (Distributed Common Object Model). Its goal was to create objects that were language-neutral, so that implementation could take place in different environments across hardware and software differences. Much like CORBA, much of the control and specificity of this technology is strictly defined by the interface, whose object must be written in binary code to insure intelligibility across languages and environments. COM defines an API (Application Program Interface), which allows certain data to be entered and processed. These interfaces are written in Microsoft’s IDL, which is an elaboration of the more standardized DCE (Distributed Computer Environment) IDL.

Also like CORBA, COM objects run on the server. These objects can be accessed in three ways: through an in-process server, a local object proxy, and a remote object proxy. Accessing objects through in-process servers is the simplest way because both client and server are in the same process. The client links directly to a library in the in-process server and locates an in-process object that can return the desired processed object. However, when server and client processes are separate, COM must ‘marshal’ or bundle and format data before it can be intelligible to the server, whether local or remote. This is accomplished through ‘proxy’ or ‘stub’ objects. The client communicates with the server interfaces through a proxy object. The proxy marshals the request object and communicates it to the server stub. The server stub unmarshals the proxy object information and executes processing. This completed request is then marshaled by the server stub and returned to the proxy object which then returns the processed object back to the client. When the client and server operate on the same machine COM is used. When they operate on different machines DCOM (Distributed Common Object Model) is used.

COM has several associated technologies. These include OLE (Object Linking and Embedding), a compound document technology that immediately runs respective media players when, for example, video, audio, or graphics are embedded into a document. Other ones include DCOM (discussed above), ActiveX and COM+. There is speculation that COM is being, at least partially, replaced by .NET framework and Microsoft’s increasing support of web services.

Java’s RMI

Java’s RMI stands for ‘remote method invocation’. It is a protocol developed by Sun Microsystems for Java. It is an API that uses RPC (Remote Procedure Call) to allow Java objects to be located and stored in a network to be remotely accessed. RPCs are a little old-fashioned since they are synchronous and require client applications to be suspended until the response is returned. However, threads, or parts of programs that can be executed independently, allow for concurrent processing. Like the two other ORB technologies we discussed, it increases interoperability.

However, unlike other ORB technologies, like CORBA and DCOM, RMI can only be used for objects written in Java. It is a means for java applets to communicate with server applications, especially those on the Internet. Also, like other ORB technologies, it is concerned primarily with interface details to create specific stubs and skeleton. Clients create stubs that facilitate communication with the network. The network then creates a skeleton of the processing object requested. The skeleton communicates with the server to complete the request. It is returned to the client through the network to the stub and then to the client.

There are two implementations for this technology. Originally, this technology only supported communication between two JVMs (Java Virtual Machines). Virtual machines are independent operating environments that that function as separate computers. These have no access to host operating systems. They provide system independence and increased system security. JVMs are platform independent and translate Java bytecode into language that is intelligible to the machines that can process its requests. These requests can be processed regardless of server operating systems. Through this sort of RPC implementation, JVMs can only communicate with other JVMs.

The original protocol supporting this sort of communication is Java Remote Method Protocol or JRMP. CORBA developed a protocol later to run in non-Java environments. RMI is used to suggest either the API or the JRMP or both at the same time. The second implementation is RMI-IIOP Internet Inter-ORB Protocol. It refers to the implementation of RMI over CORBA systems. By replacing the Object by Value (OBV) concept that contains CORBA structures, arrays, strings and sequences, RMI-IIOP generates code from remote objects. By using the same GIOP (General Inter-ORB Protocol). Therefore, while IDL is not the main language creating interfaces for this type of exchange, it can be mobilized for increased interoperability between RMI-IIOP and CORBA applications.

« « XML Advantages
SOA 2.0 Event Driven Architecture » »

Author Description

Avatar

Editorial Team at Exforsys is a team of IT Consulting and Training team led by Chandra Vennapoosa.

Free Training

RSSSubscribe 394 Followers
  • Popular
  • Recent
  • Client Server Features

    June 24, 2007 - 0 Comment
  • Client-Server Testing Technology

    August 6, 2007 - 0 Comment
  • Client Server Models in Business Environment

    June 27, 2007 - 0 Comment
  • Peer-to-Peer and Client-Queue-Client Architecture

    August 15, 2007 - 0 Comment
  • Client Server Architecture

    June 30, 2007 - 0 Comment
  • N-Tier Client-Server Architecture

    August 15, 2007 - 0 Comment
  • Client-Server Computing : Butler Model

    July 3, 2007 - 0 Comment
  • Object-Oriented Client-Server Internet

    August 20, 2007 - 0 Comment
  • Server Side Scripting

    July 4, 2007 - 0 Comment
  • Web Services and Client Server Technology

    August 20, 2007 - 0 Comment
  • Ajax and Web Applications

    August 22, 2007 - 0 Comment
  • Java and Client Server Models

    August 22, 2007 - 0 Comment
  • Web Services and Client Server Technology

    August 20, 2007 - 0 Comment
  • Object-Oriented Client-Server Internet

    August 20, 2007 - 0 Comment
  • N-Tier Client-Server Architecture

    August 15, 2007 - 0 Comment
  • Peer-to-Peer and Client-Queue-Client Architecture

    August 15, 2007 - 0 Comment
  • Client-Server Testing Technology

    August 6, 2007 - 0 Comment
  • Virtualization and Client-Server Technology

    August 1, 2007 - 0 Comment
  • Client-Server Trends for 2007

    July 28, 2007 - 0 Comment
  • Client-Server Security

    July 20, 2007 - 0 Comment

Exforsys e-Newsletter

ebook
 

Related Articles

  • Ajax and Web Applications
  • Java and Client Server Models
  • Web Services and Client Server Technology
  • Object-Oriented Client-Server Internet
  • N-Tier Client-Server Architecture

Latest Articles

  • Project Management Techniques
  • Product Development Best Practices
  • Importance of Quality Data Management
  • How to Maximize Quality Assurance
  • Utilizing Effective Quality Assurance Strategies
  • Sitemap
  • Privacy Policy
  • DMCA
  • Trademark Information
  • Contact Us
© 2023. All Rights Reserved.IT Training and Consulting
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptReject Read More
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT