Top 3 Products & Services


Dated: Aug. 13, 2004

Related Categories

ActiveX Controls

By Najmi

The Component Object Model (COM) is a software architecture that allows applications to be built frombinary software components. COM is the under lying architecture that forms the foundation for higher-level software services, like those provided by OLE. OLE services span various aspects of commonly needed system functionality, including compound documents, custom controls, interapplications cripting, data transfer, and other software interactions.

In information technology, a compound document is an organized collection of user interfaces that form asingle integrated perceptual environment. A compound document includes a data structure that contains different data types, such as text, audio files, and motion video files. A compound document is also an application environment containing program objects that can be interlinked and interacted with by a user.

Compound documents can be formed of information parts that originate from different sources and that are assembled on the fly. Microsoft's Internet Explorer desktop uses the compound document concept. Microsoft's Object Linking and Embedding is a frame work for assembling and managing compound documents. OpenDoc is an alternative standard. Component Object Model (COM) is Microsoft's frame work for developing and supporting program component objects. In object-oriented programming and distributed object technology, a component is are usable program building block that can be combined with other components in the same or other computers in a distributed network to form an application.

Component Object Model

Examples of a component include: 

  • a single button in agraphical user interface
  • a small interest calculator
  • an interface to a database manager

Components can be deployed on different servers in a network and communicate with each other for needed services. A component runs within a context called a container. Examples of containers include pages on a Web site, Web browsers, and word processors.

It is aimed at providing similar capabilities to those defined in the Common Object Request Broker Architecture (COBRA), a framework for the interoperation of distributed objects in a networkt hat is supported by other major companies in the computer industry. Where as Microsoft's Object Linking and Embedding provides services for the compound document that users see on their display, COM provides the underlying services of interface negotiation, lifecycle management (determining when an object can be removed from a system), licensing, and event services (putting one object into service as the result of an event that has happened to another object).

The reason for the broad use of COM technologies is simple: for a tremendously wide range of problems, COM allows the creation of better software. Using COM, objects (or classes) and their methods and associated data are compiled into binary executable modules, that are, in fact, files with a dynamic link library (DLL) or EXE file name suffix. A module can contain more than one class.COM allows components of an application to be split up among different, computers. Because of COM local and remote transparency the client access a component without the knowledge or concern of where the component is running. Here are some of the facts about COM today:

  • COM is in use on well over 150 million systems worldwide.
  • COM consists of a well-defined, mature, stable, and freely available specification, as well as a reference implementation, which has been widely tested and adopted worldwide as a de-facto standard.
  • COM provides the richest set of existing services for applications today, as well as the largest set of development tools available from a wide variety of vendors.
  • COM supports the only currently viable component marketplace. The market for third-party components based on COM has been estimated at US$670 million dollars in 1998, with a projected 65 percent compound annual growth rate, growing to approximately US$3 billion dollars by 2001. (Source: Giga InformationGroup)
  • COM supports thousands of available applications,including all of today's highest volume applications.Major system vendors such as Hewlett Packard, DigitalEquipment Corporation, Siemens-Nixdorf, and SiliconGraphics have announced plans to ship COM on UNIX andother operating systems within the year, with morevendor commitments on the way.
  • COM is supported by the largest number ofdevelopment tools available for any component orobject model on the market.

COM includes COM+, Distributed Component Object Model (DCOM), and ActiveX interfaces and programming tools.The Component Object Model (COM) and its relatedCOM-based technologies of DCOM, COM+, MTS and ActiveX® comprise the most widely-used component software modeling the world.


ActiveX is the name Microsoft has given to a set of"strategic" object-oriented programming technologies and tools. The main technology is the Component ObjectModel (COM). Used in a network with a directory and additional support, COM becomes the DistributedComponent Object Model (DCOM). The main thing that you create when writing a program to run in the ActiveX environment is a component, a self-sufficient program that can be run anywhere in your ActiveX network (currently a network consisting of Windows and Macintosh systems). This component is known as an ActiveX control. ActiveX is Microsoft's answer to the Java technology from Sun Microsystems.

An ActiveX control is roughly equivalent to a Java applet. If you have a Windows operating system on your personal computer, you may notice a number of Windows files with the "OCX" file name suffix. OCX stands for "Object Linking and Embedding control." Object Linking and Embedding (OLE) was Microsoft's program technology for supporting compound documents such as the Windows desktop. The Component Object Model now takes in OLEas part of a larger concept. Microsoft now uses the term "ActiveX control" instead of "OCX" for the component object.

One of the main advantages of a component is that itcan be re-used by many applications (referred to ascomponent containers). A COM component object (ActiveXcontrol) can be created using one of several languagesor development tools, including C++ and Visual Basic,or PowerBuilder, or with scripting tools such as VBScript.

Currently, ActiveX controls run in Windows95/98/NT/2000 and in Macintosh. Microsoft plans to support ActiveX controls for UNIX.


DCOM (Distributed Component Object Model) is a set of Microsoft concepts and program interfaces in whichclient program objects can request services from server program objects on other computers in a network. DCOM is based on the Component Object Model(COM), which provides a set of interfaces allowing clients and servers to communicate within the same computer (that is running Windows 95 or a laterversion).

For example, you can create a page for a Web site that contains a script or program that can be processed (before being sent to a requesting user) not on theWeb site server but on another, more specialized server in the network. Using DCOM interfaces, the Webserver site program (now acting as a client object) can forward a Remote Procedure Call (RPC) to the specialized server object, which provides the necessary processing and returns the result to the Webserver site. It passes the result on to the Web page viewer.

DCOM can also work on a network within an enterpriseor on other networks besides the public Internet. It uses TCP/IP and Hypertext Transfer Protocol. DCOMcomes as part of the Windows operating systems. DCOM is or soon will be available on all major UNIX platforms and on IBM's large server products. DCOM replaces OLE Remote Automation.

DCOM is generally equivalent to the Common Object Request Broker Architecture (COBRA) in terms of providing a set of distributed services. DCOM is Microsoft's approach to a network-wide environment for program and data objects. COBRA is sponsored by the rest of the information technology industry under the auspices of the Object Management Group (OMGDCOM is simply "COM with a longer wire"-a low-levelextension of the Component Object Model, the core object technology within Microsoft® ActiveX®.

Major development tools vendors-including Microsoft, Borland,  Powersoft/Sybase, Symantec, ORACLE, IBM, andMicro Focus-already sell software development tools that produce ActiveX components. These tools and the applications they produce automatically support DCOM, providing the broadest possible industry support. Additionally, over 1,000 existing commercial software components that will work with DCOM are already available for use by developers. 


COM+ is an extension of Component Object Model (COM), Microsoft's strategic building block approach for developing application programs. COM+ is both an object-oriented programming architecture and a set of operating system services. It adds to COM a new set ofsystem services for application components while they are running, such as notifying them of significant events or ensuring they are authorized to run. COM+ is intended to provide a model that makes it relatively easy to create business applications that work well with the Microsoft Transaction Server (MTS) in a Windows NT or subsequent system. It is viewed as Microsoft's answer to the Sun Microsystems-IBM-Oracle approach known as Enterprise Java Beans (EJB).

Among the services provided by COM+ are:

  • An event registry that allows components to publish the possibility of an event and other components to subscribe to be notified when the event takes place. For example, when a sales transaction is completed, it could trigger an event that would allow other programs to be notified for subsequent processing.
  • The interception of designated system requests for the purpose of ensuring security.
  • The queues of asynchronously received requests for a service.

A "component" is a building block program that isself-describing. This means that it can be run with amix of other components and each will be able to understand the capabilities and characteristics of the other components. Practically, this means that a new application can be built by reusing components already known to exist and without having to compile the application. It also makes it relatively easy to distribute different components of an application among different computers in a network. Microsoft's Distributed Component Object Model (DCOM) adds interfaces to do this.

In addition to its self-description, a component consists of one or more classes that describe objects and the methods or actions that can be performed on an object. A class (or coclass in COM+ terminology) has properties described in an interface (or cointerface).The class and its interface are language-neutral. Associated with the class are one or more methods and fields that are implemented in a specific language such as C++ or Java or a visual programming environment. When you instantiate a class, you create an object (something real that can be executed in the computer). Sometimes the term "class" is also used for the instantiated object (which can be confusing).


Microsoft® Transaction Server (MTS) is the transaction service in the Windows NT® operating system. First available in 1996, MTS is now in use at many organizations. Enterprise JavaBeans (EJB) is a specification for a Java-based transaction service.

Created by a group of companies led by SunMicrosystems Inc., the initial specification for EJB was released in spring 1998. Both Microsoft Transaction Server and Enterprise JavaBeans target the creation of component-based, transaction-oriented applications. This paper provides a comparison oft hese two technologies. More specifically, the paper analyzes the similarities and differences between the ways the two component models handle objects, transaction support, controlling complexity, portability, interoperability, language choice and administration.

Put simply, a transaction can be thought of as a set of events that are committed or rolled back as a unit-either all of the events happen, or none of them do. For example, transferring $100 from your savings account to your checking account requires both subtracting the money from your savings account and adding it to your checking account. To achieve a consistent result, either both operations should occuror neither one should. Transaction-oriented applications like this are very common, and so many vendors provide software that makes writing transactional applications easier. And because transactional applications often need to handle hundreds or thousands of clients (i.e., users at work stations), services that make it easier to build scalable applications are commonly built into products that support transactions.

Both Microsoft Transaction Server and Enterprise Java Beans support transactional applications and provide services for scalability. Because the two technologies attempt to solve many of the same problems, they have much in common. The easiest way to illustrate their similarities is to describe the basic architecture and terminology of each MTS is based on the Component Object Model (COM), and an MTS application is implemented as one or more components.

Now that you've gotten free know-how on this topic, try to grow your skills even faster with online video training. Then finally, put these skills to the test and make a name for yourself by offering these skills to others by becoming a freelancer. There are literally 2000+ new projects that are posted every single freakin' day, no lie!

Previous Article

Next Article

jayson's Comment
there are so many changes about the computer. �jayson
14 Mon Jun 2010
Admin's Reply:

right, this article is old...from 2004.