home
NEWS       BLOGS       FORUMS       NEWSLETTERS       RESEARCH       EVENTS       DIGITAL LIBRARY       CAREERS  
Network Computing Network Computing Powered by InformationWeek Business Technology Network

IMMERSE YOURSELF:

SOA

  |

Data Center

  |

802.11n

  |

Data Privacy

  |
APO  |

Virtualization

  |

NAC

  |

Security

  |

Network Mgmt

  |

Enterprise Apps

  |

Storage & Servers



Distributed Objects (CORBA and OLE/ActiveX)
February 8, 1999

ActiveX: Going Beyond OLE

7.5 ActiveX: Going Beyond OLE

7.5.1 Overview

In March 1996, Microsoft announced its "ActiveX" strategy which goes far beyond OLE by combining the desktop services with the World Wide Web. In other words, ActiveX combines Web browsers and Java applets with the desktop services such as Word documents, spreadsheets, transaction support, scripting, and many other (still evolving) capabilities. Like OLE, DCOM (Distributed Component Object Model) serves as a core technology for remote communications between ActiveX components. Figure 7.16 shows a conceptual view of the interrelationships between OLE, ActiveX, and DCOM.

Microsoft is making it clear that ActiveX is not just a compound-document technology. Instead, Microsoft is positioning ActiveX as a complete environment for components and distributed objects. Almost everything coming out of Microsoft at the time of this writing is being based on ActiveX. Although ActiveX provides many capabilities, from a distributed objects point of view, the following features are significant (we will see the details in the following subsections):

l All ActiveX components communicate with each other by using DCOM. So a Java applet (an ActiveX component) can call a remotely located Microsoft Word document (another ActiveX component) over DCOM. See Section 7.5.2.

 

Figure 7.16 OLE, ActiveX and DCOM

l The Web browser can behave as a container. For example, the Microsoft Internet Explorer can contain components such as Word documents, Java applets, C code, and Excell spreadsheets. See Section 7.5.3.

l Web technologies (browsers, HTML pages Java applets) can be intermixed with desktop tools (spreadsheets, word processors) for distributed applications. See Section 7.5.4.

l Serve facilities such as SQL servers and legacy access gateways can be invoked from ActiveX clients. See Section 7.5.5.

7.5.2 DCOM (Distributed Component Object Model) as an ORB

As discussed previously, ActiveX uses DCOM (the distributed version of COM) to provide communications between remote ActiveX components. In this sense, DCOM is the ORB for ActiveX. The basic scenario is that Windows will be a huge collection of ActiveX components and interfaces, with DCOM serving as the ORB. It is expected that all system services will be written as DCOM objects. These, and other services, can be provided by Microsoft or any third-party vendors.

DCOM provides the basic brokerage services for ActiveX. It supports APIs for static as well as dynamic invocation of objects. DCOM uses DCE RPC for interactions between DCOM objects. DCOM’s object model is somewhat limited because DCOM does not support multiple inheritance. In other words, DCOM supports inheritance through pointers that link different interfaces together. Figure 7.17 shows the role of DCOM in ActiveX.

Figure 7.17 Communications Between ActiveX Components

The following facilities of DCOM should be noted (see the sidebar "DCOM versus CORBA" for additional discussion):

l Interface Definition Language (IDL). DCOM uses interfaces that are very similar, in concept, to the CORBA interfaces. Basically, an interface defines a set of related functions.The DCOM IDL is used to define an interface, the method it supports, and the parameters used by each method. DCOM IDL can be used to define your own interfaces, in addition to the Microsoft provided interfaces. For example, at the time of this writing, OLE/ActiveX consists of more than 100 interfaces, each supporting about six functions. In addition, more than 100 Win32-style APIs are supported.

l Object Definition Language (ODL) and Type Libraries. DCOM supports an Object Definition Language (ODL) that is used to describe metadata. The interface specifications and metadata are stored in a repository, known as Type Library. Type Libraries are equivalent to the CORBA Interface Repositories.

l Object Services. DCOM provides very rudimentary object services at the time of this writing. Examples of the services provided are a basic licensing mechanism, a local directory service based on the Windows Registery, a basic life cycle facility, persistence services for file systems, and a very simple event service called connectable objects. This is in addition to the naming services provided by the Type Libraries. However, the overall ActiveX Platform is expected to support other services such as X.500 directories.

 

DCOM versus CORBA: Similarities and Differences

We will start with the typical disclaimer about technology comparisons, i.e., both technologies are evolving at the time of this writing and consequently the similarities/dissimilarities will also change with time. Our objective is to present, what appears to be, the philosophical and fundamental approaches being used by the two technologies.

At a high level, there are several similarities between CORBA and DCOM. However, several differences appear when you look closely.

Similarities:

l Both are based on the object model.

l Both utilize the interface concept and utilize an Interface Definition Language (IDL).

l Both use static and dynamic calls from clients to servers.

l Both use a repository to locate objects and invoke them (CORBA calls it the Interface Repository and DCOM calls it a Type Library).

Dissimilarities:

l DCOM uses, in addition to IDL, Object Definition Language (ODL), for defining metadata. CORBA uses a single IDL for everything.

l DCOM uses the universal unique ID (UUID), based on OSF DCE, to locate and invoke objects. CORBA does not use UUIDs. It uses object references and repository to locate and invoke objects.

l DCOM uses the OSF DCE RPC as the basic transport mechanism between remote objects. CORBA uses several options such as IIOP (Internet Inter-ORB Protocol) that uses TCP/IP sockets and ESIOP (Environment Specific Inter-ORB Protocol) that runs on top of DCE.

l CORBA only uses connection-based (i.e, TCP) services while DCOM favors connectionless (i.e., UDP) services. DCOM does support TCP connections but it favors UDP for purpose of scaling (do not have to keep track of large number of open sessions).

l CORBA 2.0 has specified a very extensive set of services that include transaction management, security, concurrency control, life cycle, query, etc. In comparison, DCOM services at present are somewhat limited (these are being added through the ActiveX Platform).

Additional discussion about differences between DCOM and CORBA can be found in Orfali [1996], and Foody [1996]. The WWW Consortium held an excellent technical seminar on November 18, 1996, on trade-offs between DCOM and CORBA. Public information discussed in this seminar can be obtained from the Web site (http://www.w3.org).

7.5.3 Web Browsers as Containers of ActiveX Components

An ActiveX component is the basic unit of ActiveX applications. Different components can be combined to develop and deploy new applications. These components may be specifically written for this application or reused from some other project or even purchased off the shelf.

Components by definition cannot survive on their own–they require containers in which to execute. Visual Basic is a common example of a container in the desktop world. Visual Basic applications load needed components from a machine's local disk or a file server. In the Internet World, the Web browsers are a common example of a container–they load Java applets (Java applets are basically components) and provide an environment to run them (i.e., contain them). Let us focus on Web browsers as containers.

Before ActiveX, Web browsers were primarily serving as containers for Java applets. We have discussed Java applets in Chapter 4. These applets are downloaded from Web servers (embedded in HTML pages) and then the Web browser is used as a container. ActiveX has extended the scope of browsers as a container by allowing ActiveX components to be "contained" by Web browsers. At present, the Microsoft Internet Explorer is the main browser that can be used as ActiveX container. This can be very useful. For example, the Web browser can now contain spreadsheets, Word documents, and code written in C++, C, Java, or other programming languages. You can build powerful applications that may, for example, supply specialized viewers with the data to be viewed (the viewer and the data is loaded as needed from the network and runs inside the Web browser as a container).

7.5.4 ActiveX Controls–Building Downloadable Web-based Components

Microsoft's ActiveX Controls (formerly called either OLE controls or OCXs) are the special brand of ActiveX components that perform common tasks in standard ways and have been optimized for Internet use. ActiveX controls are, in principle, very similar to Java applets. For example, ActiveX controls, like Java applets, are self-contained pieces of functionality that run inside some kind of container (e.g., a Web browser). Thus ActiveX controls can be embedded in Web pages and downloaded on demand. However, unlike Java applets, ActiveX controls can be written in various languages such as C, C++, in addition to Java. Unlike Java applets, which are downloaded in a machine-independent format and usually interpreted within the browser, ActiveX controls are binaries. Another difference is that Java applets today are supported primarily by only one kind of container–the Web browsers. ActiveX controls, on the other hand, are supported by different kinds of containers (e.g., Visual Basic applications).

Developers of downloadable Web-based application developers have two basic choices: Java applets or ActiveX Controls. See the sidebar "Java versus ActiveX Controls" for discussion.

A plethora of different ActiveX controls already exist in the marketplace. Examples are the controls that implement spreadsheets, data viewing, mainframe connectivity, voice recognition, and the like. Many of these existing controls can be downloaded and executed within an ActiveX-capable browser. Thus there is an instant supply of available ActiveX components for Web-based applications.

Java versus ActiveX Controls

Java applets and ActiveX Controls are two valid choices for building downloadable Web applications. The leading browsers, Netscape Navigator and Microsoft's Internet Explorer, support both options. Let us discuss the choice between these two options.

Java applets should be chosen if a component must run on heterogeneous client systems, if the Java security exposures are manageable, and if you are not concerned with the performance limitations of the Java interpretive model (interpreters can be slower than binary code).

ActiveX Controls should be chosen if the component is targeted at Microsoft systems, is needed in a wider range of containers than just Web browsers, and must run as efficiently as possible (ActiveX Controls download binary code).

As expected, both of these models will evolve. For example, "just-in-time" compilers for Java will improve the performance by compiling an applet byte code on arrival. The platform independence issue may disappear becuase Microsoft is planning to port ActiveX on multiple platforms. Keep in mind that ActiveX Controls also support Java applets (Java environment is modified so that it uses DCOM).

Source: Chappell, D., "Component Software Meets the Web: Java Applets vs. ActiveX Controls," Network World, May 1996.

7.5.5 ActiveX Server

The ActiveX Server is based on the Microsoft Information Server (IIS) that is integrated with the Windows NT network operating system. The ActiveX Server includes the Microsoft BackOffice family which includes the Microsoft SQL Server and the Microsoft Systems Management Server. ActiveX Server provides scripting and control facilities to tie into legacy systems or to perform other specialized functions on the server side. The scripting capabilities support PERL, JavaScript and Visual Basic Script.

7.5.6 General Observations and Comments

The facilities of ActiveX will evolve with time. However, competitors to ActiveX such as CORBA are expected to mature considerably while ActiveX for distributed objects is still in its very initial stages at the time of this writing. Depending on the market shifts, ActiveX may be combined and "bridged" to CORBA and other technologies. For example, before ActiveX, proposals for uniting OLE and CORBA had been discussed actively in the industrial press (see, for example, Hayes [1994]). At present, DCOM to CORBA bridges are available from companies such as Iona. For example, the Iona COM/CORBA bridge provides two way mapping: it allows DCOM objects to be treated as CORBA and vice versa.

Literature on ActiveX is growing rapidly. The Microsoft Web site (http://www.micro- soft.com) provides access to latest announcements, white papers, and frequently asked questions (FAQs). The book by David Chappell, Understanding ActiveX and OLE, Microsoft Press, 1996, is a good overview of the subject matter.

 


Go Home | Page 1 | 2 | 3 | 4 | 5 | 6 | Next Page


Print This Page


e-mail E-mail this URL





Ready to take that job and shove it?

Function:

Keyword(s):

State:
SPONSOR
RECENT JOB POSTINGS
CAREER NEWS
Go beyond Google and get vertical. These specialized search sites will help you find the business information you need -- fast.

Ari Balogh was named to the post of chief technology officer as the companys for a "realignment" of employees.










InformationWeek U.S. IT Salary Survey 2008
Salaries for business technology professionals are falling. Here's what you need to know in order to make good hiring decisions and personal career choices. Download Today
 
ROLLING RIGHT ALONG
Follow key Network Computing Reviews from conception to completion. This Week: Holistic APM.



Network Computing Reports Emerging Enterprise Podcast Series: Secrets to Success








TechSearch


Microsite of the Week


Powerful Information at Your Fingertips



InformationWeek Business Technology Network
InformationWeekInformationWeek 500InformationWeek 500 ConferenceInformationWeek AnalyticsInformationWeek CIO
InformationWeek EventsInformationWeek ReportsInformationWeek MagazinebMightyByte and SwitchDark Reading
Digital LibraryIntelligent EnterpriseInternet EvolutionNetwork ComputingNo JitterPlug Into The Cloud
space
Techweb Events Network
InteropVoiceConWeb 2.0 ExpoWeb 2.0 SummitEnterprise 2.0 ConferenceMobile Business ExpoSoftware ConferenceCSI - Computer Security Institute
Black HatGTECEnergy CampMashup CampStartup Camp
space
Light Reading Communications Network
Light ReadingLight Reading EuropeUnstrungLight Reading's Cable Digital NewsConstantinopleInternet EvolutionPyramid Research
Heavy ReadingLight Reading Live!Light Reading InsiderEthernet ExpoOptical ExpoTeleco TVTower Technology Summit
space
Financial Technology Network
Advanced TradingBank Systems & TechnologyInsurance & TechnologyWall Street & TechnologyAccelerating Wall StreetBank Systems & Technology Executive SummitBuyside Trading SummitInsurance & Technology Executive Summit
space
Microsoft Technology Network
MSDN MagazineTechNetThe Architecture Journal
space


App Infrastructure   |   Messaging & Collaboration   |   Network & Systems Mgmt   |   Network Infrastructure   |   Security  |   Storage & Servers   |   Wireless   |   Enterprise Apps
About Us  |  Contact Us  |  Site Map  |  Technology Marketing Solutions  |  Advertising Contacts  |   Briefing Centers
Copyright © 2008  United Business Media LLC  |  Privacy Statement  |  Terms of Service  |  Your California Privacy Rights