Developer Products - ObjectQ

The product provides a platform designed to make sending and receiving messages over a heterogeneous network transparent to both the sending and receiving applications. The combination of ObjectQ and a queue-based messaging tool may form the standard communication middleware for a whole enterprise.

Today’s applications require constant interaction with other applications. Large resources are expended to define, develop, and maintain interfaces in an application. Often, interfaces between applications are tightly coupled; new features and functionality require intense coordination. One application may not be able to upgrade or change a feature without waiting for a second application to provide some enhancement.

ObjectQ is an off-the-shelf communication middleware product that provides communication between different applications and hides the low-level details of message transmission and message format from the actual application software. ObjectQ components form a middleware back plane that application developers can use as a set of standard services, plugging in elements of code as needed.

What is ObjectQ?

ObjectQ consists of a group of object-oriented C++ classes that provides a framework for building distributed applications. It is based on the premise that there are service providers with public interfaces that can be accessed by any application needing those services. At its most fundamental level:

  • ObjectQ provides a standardized message transport that makes an application independent of its underlying transport mechanism.
  • ObjectQ gives applications the capability of gaining access to distributed objects through a transparent messaging layer.
  • ObjectQ provides a standardized message format to permit de-coupling of client and server code.
  • Services that have been converted to ObjectQ define their objects in a Management Information Base (MIB) available in table form on the World Wide Web.
  • These tables put the service provided by an application into a succinct, easily understood form.

In summary, ObjectQ has the following features:

  1. C++ Library and object-oriented methodology
  2. Message Based Transport
    1. External Vendor supplied
  3. Simple Six Verb API
    1. get, set, create, delete, action, notify
  4. Management Information Base
    1. Published Interface
  5. Loose coupling
    1. Decouples changes in clients from servers and vice versa
  6. Transport independence
  7. Supports different architectures
  8. MIB defines a standard interface

What are the Benefits of ObjectQ?

These are the most immediate benefits of ObjectQ:

  • Reduces requirements, development, and testing effort. Using ObjectQ de-couples the development of front-end and back-end processes. There is less negotiation needed at the requirements stage since the middleware interface is an easily defined quantity.
  • Shortens development and testing cycle times. Because of the object-oriented paradigm, code is more easily reusable. Developers don’t have to reinvent the wheel each release and testers can focus on what’s new in the product.
  • Future growth is easier. Since applications are freed from worrying about issues inside other applications, planning for an existing service migration is simplified. Issues that are local to an application, such as capacity increases or hardware changes can be addressed locally.
  • Supports communication modes other than client-server, e.g., peer-to-peer.
  • Expertise and knowledge of applications is more easily transferred between projects since each application contains at least some subset of a shared common language.