In-Depth

COM momentum builds

The momentum of Microsoft's Component Object Model (COM) technology has spurred the third-party components market to new heights. Even though a formal standard does not exist for a component-based framework or architecture, COM has achieved de facto status. The technology's evolution has taken some twists and turns, though, as Microsoft has evolved its COM architecture through OLE automation, COM and ActiveX to the upcoming COM+ model.

But will this success last? Certainly, COM has many adherents. Just as certain is the impending battle between COM and JavaBeans. And while COM is in some ways more established, its next-generation version, dubbed COM+, has yet to be fully unveiled. Moreover, load balancing and other key ingredients in the transaction-oriented COM+ architecture cannot be fully implemented until Windows NT 5.0 ships to the public.

What is the status of the COM market as this battle starts to brew? According to Saeed Khan, product marketing manager, KL Group Inc., Toronto, it is easy to think of the COM market as one big, homogeneous space. However, Khan said that it can be broken down into three major segments.

"One obvious market is the GUI interface components market," he said. "This would include things like outliners and charts." According to Khan, this is also the most visible market. KL Group, for example, provides Olectra Chart, an ActiveX charting component, in this market.

"It's probably the most crowded space, and the most difficult to compete in, because there are a lot of controls out there," said Khan. "There is a lot of variety and prices are typically low."

A second component market is Design Time Controls, which provide added functionality on top of Microsoft developers' tools. "This is a less-crowded market, but because Microsoft's tools already have such a huge amount of functionality, these products would have to provide something on top of what Microsoft already has," said Khan. KL Group also competes in this segment with Olectra.

The least populated components market, said Khan, is that of server-side products. "These tend to be more logical in nature, and some may attempt to put logic on the server," he said. "This would be a fit for the financial services industry, where you might want to encapsulate some type of business logic."

A major trend right now seems to be the move toward Internet technology. In that environment, said Khan, users may also want to put their business logic on the back end. "In fact, the Internet is typically one of the first things that developers will bring up," he said.

As Robert Gersten, chief technology officer at Platinum Technology Inc., Oakbrook Terrace, Ill., says, "Widespread adoption of Web technologies requires components."

Dealing with COM

In the third-party market, and in the organizations these vendors serve, there are companies that have placed all of their bets on Microsoft. There are also a handful of companies that have invested in both Microsoft's COM and in JavaBeans with Corba.

"In distributed computing development, it's critical for companies to understand the model they want to use," said Liz Barnett, an analyst at Giga Information Group, Cambridge, Mass. "In the client/server world, the tools were based on productivity and that drove the architecture. In distributed computing, it's going to be more important to understand the architecture first," she said.

Much ADO

Microsoft managers say the upcoming COM+ is key to the company's overarching Distributed interNetwork Architecture (DNA), which is, in effect, its n-tier blueprint. In fact, Microsoft intends to extend the COM programming model to the data tier via OLE DB. The next big round of off-the-shelf component releases supporting COM+ will take the form of OLE DB products from ISG, Intersolv and others.

"OLE DB is COM-based," said Robert Green, who manages Microsoft's FoxPro product line. But, he points out, OLE DB is a system-level programming interface to data. Soon to be more familiar to programmers will be an application-level interface to OLE DB known as ADO, or Active Data Objects. These are not to be confused with ActiveX components. ADO's goal, it is said, is to provide an abstraction layer above OLE DB that does not require the API-level code-hacking required of the older ODBC programming model. Many ODBC software makers are looking to develop an OLE DB after-market, as they did with ODBC. An important aspect of the new market is its support for non-relational data types.

ADO, OLE DB, DNA -- to the casual observer it can all seem like a mixed-up stew of acronyms created on the fly. "Microsofties" are ready to cede that the company has been less than adept at naming products and architectures. "We're poor at naming, and change names too often," said Visual Basic Product Manager Chris Flores. The difficulties show in the (sometimes abrupt) renaming of interfaces and the like. OLE became Networked OLE. The Internet happened and Networked OLE (sort of) became ActiveX. COM remained somewhat constant -- although, to distinguish its distributed version, it became DCOM and will soon become COM+.

Yet there is order in Microsoft's world view, a world that revolves around Windows. COM will be the thread, said the Microsoft crew, and DNA the blueprint. Use of COM, they added, will stretch from client components to mid-tier servers to back-end databases.

- Jack Vaughan

According to Giga's data, the demand for third-party components based on COM was an estimated $410 million in 1996. However, the research firm projects a $3 billion market by 2001.

"Microsoft's offerings have been more sophisticated than they have been in the past," said Barnett. "Their COM architecture is driven by component development [issues]. Even if you don't want to use Microsoft technology, you have to be aware of it."

Certainly, each technology has its strengths and weaknesses. Java's component architecture has been described by some as newer, but not as coherent as the Microsoft strategy. On the other hand, Java will support more enterprise platforms than Microsoft. In Microsoft's corner, is the upcoming combination of Microsoft Transaction Server (MTS) with COM that will form the highly anticipated COM+. COM+ is expected to bring about new services while helping to reduce the existing complexities of COM.

Development issues

According to Platinum's Gersten, one concern is the lack of management tools to administrate distributed systems across the enterprise. "With distributed systems, you must be sure that multiple servers are up and tuned, and that management tools are available to keep them up. MTS should help alleviate this by acting as a general purpose application server transparently hosting COM components," he said.

"We do believe that Microsoft COM technology has improved," added Gersten. "It's not completely mature and robust, and has a way to go in terms of reliability, but there is incredible promise over the long term."

Language support is another issue, and an area that has also been investigated by Platinum. "We've found that the Visual C++ market is more sophisticated, so we've been putting a bit more into ActiveX," said Gersten. "Visual C++ is somewhat ahead of Visual Basic in respect to component technology; it has richer support of object orientation and components."

Corba support in Version 8 of Aion, Platinum's rule-based object-oriented environment, will be used somewhat in Java, according to Gersten. "Our goal was to deploy intelligent components with a variety of middleware," he said. "We don't have a lot of practical experience with Java yet, because there hasn't been a lot of demand from our customers."

Gersten also finds the Java computing model somewhat splintered between Java- Beans, native Java and Corba. "[Platinum] believed that Corba is the right way to go," he said of the competing standards. "But Microsoft's strategy is more coherent.

"There is no question, it's a struggle and it gets dicey when looking across the enterprise," he continued. "We've been surprised that a number of our customers have already made the Microsoft COM decision. We've found tremendous support for COM, and there have been a few transactions that we've won due to our support of the COM technology. Even though it has a way to go in [terms of] maturity, we do think Corba would better embrace the enterprise."

Ever-changing technologies

To sum up Microsoft components technology, Scott Grinis, Platinum's lab director, explained that COM allows lightweight components to communicate with each other, while DCOM is the same technology designed to run across distributed computers.

COM and DCOM can be both client and server components, and are independent of whatever tier a user is working on. ActiveX is very much a presentation tier, Grinis noted, is heavier weight and allows visual components to plug in together on the client.

Microsoft Transaction Server is an application server that lives on the middle tier. Its main role is to start the components running, and to let them talk to each other. Increasingly, MTS will be associated with the NT operating system. Microsoft Transaction Server coordinates activities with the database, and, according to Grinis, is very important to the component world and for enabling three-tier or n-tier environments.

Platinum's Aion product is COM- and Corba-compliant, and supports both server- and client-side COM, DCOM and ActiveX components. The intelligent component may run on the client or on the middle tier where DCOM would be used instead of COM.

Steve Skinner, a systems architect at CPI Corp., St. Louis, said his company chose Aion to help develop information systems because it provides abstract rules that go into the COM object. "You can have the business rules isolated; because Aion supports rules within objects, it's a perfect fit," he said. "You don't have to write complex algorithms, and when you change something, the inference engine handles that for you."

CPI, which owns Sears Portrait Studios and Prints Plus, a retailer that sells pictures in shopping malls, develops point-of-sale software and executive information system (EIS) applications for its business.

The CPI project involves mostly server development, with some presentation. The company is using Visual Basic and C++, and, according to Skinner, there have been no problems in using both languages. "Visual Basic is not the best at making components, whereas C++ can do almost anything," he said.

CPI has also been thinking more about Java. "Java has nice characteristics," said Skinner. "But when you design something to 'write once, run everywhere,' it can get a little hairy. I've also found that Sun is not the easiest company to work with."

Because CPI has Unix, Corba is something the company must look at, said Skinner. "Microsoft has a set environment and we're living in a Windows world, so it is helpful. COM is more mature, and the new COM+ will make it easier. MTS and DCOM are getting there. In fact, COM and DCOM are already merged, it's just very complex to use."

The migration toward Microsoft

Spinners Inc., a Boston-based professional services firm, specializes in Internet solutions and also works mostly on the server side. Company President Niraj Shah estimates that 95% of his business is Microsoft Internet technology based mainly on COM.

Spinners typically keeps the browser "plain vanilla." "Functionality is more paramount than sizzle on the user interface," said Shah. "ActiveX runs into problems because of the many different browsers and computers out there. You can't control what people are using on the Internet, and that's where ActiveX could become dangerous," he explained.

Spinners works largely with Visual Basic. "We've done some C++ as well," said Shah. "We found Visual Basic a more open environment, it's plug and play, and the skill sets are out there.

Like Platinum, Spinners found most of its customer base gravitating toward Microsoft. "The battle is on already, with companies having to decide which standard they're interested in," said Shah. "It would be difficult to get down the road and have to switch.

"Corba has been around for a long time, so I think the speed at which COM is growing is interesting," he continued. Microsoft's ease of support is a big win for them, said Shah. "It's cheaper from a hardware and support standpoint."

According to Shah, "the big thing will be MTS. It's a great off-the-shelf application server, and it will push components forward." The latest release is fairly new, he said, and many people have not evaluated it yet, "so if you look at it today, you won't find a lot being done with it. But if you look six months out, I think it's likely to be de facto."

Planet Direct, Andover, Mass., partners with and provides services for some 280 Internet Services Providers (ISPs). The company recently introduced an ISP Value Network based on the second generation of Microsoft technology. Spinners was one of the first organizations to deliver a membership server, a Web-based application for servicing Planet Direct's ISP base.

According to Bob Hammond, Planet Direct's vice president of engineering, the firm brought Spinners in because of their knowledge and background in Microsoft technology. "They were the major force behind our first release and every one since then," he said.

"We wanted to use the most up-to-date, sophisticated servers to allow us to authenticate and provide privilege access rights to customers," said Hammond. "All of this is controlled by the membership server."

Although it was for the Internet, Planet Direct chose a three-tier architecture for its site. The front-end component is ActiveX, for dispensing and presenting data to the user. Behind that is JavaBeans, responsible for the logic accessing the SQL database.

Hammond said that there is a place for both COM and Java with Corba. "I've talked with folks who have done each. We looked at ease of development and at the development environment, and in our case we had logic. So we opted for JavaBeans. Everything went smoothly with Java and COM."

Merging technologies

Scot Wingo co-founded Stingray Software Inc., Morrisville, N.C., in order to provide users with Windows-based object-oriented tools. The firm offers ActiveX components, Java class libraries and add-on libraries for Microsoft Foundation Classes that provide pre-built functionality for GUI controls, grids, diagrams and charts. Stingray's recent merger with Rogue Wave Software Inc., Boulder, Colo., adds these Microsoft technologies to Rogue Wave's object-oriented C++ and Java class libraries and builders.

"We found Visual C++ to be the best way to do component-based development, but we are seeing more of Visual Basic and Java," said Wingo, now vice president of Rogue Wave's Stingray division. COM, in general, is still in the early stages, he noted, but there are "tons" of ActiveX controls available.

Wingo agrees that there are weaknesses in the COM market. "It's still very complicated to write COM objects. The next generation of Microsoft tools will help that. Also, many people would like to see objects, but Microsoft doesn't have a visual COM yet." Wingo said Stingray plans to provide a visual COM tool with its Visual Case 1.1 product.

"We're starting to see reusability in objects," said Wingo. "You can create a COM object in Visual C++, then go across languages. With COM, you get a nice binary standard, which you can use anywhere, and that's a powerful thing. Long term, we see everything going to COM."

ActiveX in the market

Software Artisans, Brookline, Mass., sells ActiveX components that typically run on the Web server. Some client components are also available from the company, which sells components from its Web site.

"We used to provide more services," said David Wihl, president. "Now, we're working more on the product side to provide things like COM components that live within Active Server pages and allow a standard browser to upload a file to the Web server from local PCs." Software Artisans also offers a server-side calendar component that manages scheduling through a Web page, and a component for the manipulation of archived files.

Wihl has worked with Microsoft COM and Java components, and notes that a lot of what Microsoft says about Microsoft Transaction Server could be exaggerated. "Scalability is really not supported today," he said, "although COM+, when it comes out, may solve that."

ProtoView Development, Cranbury, N.J., is another company that has been in the components business long enough to know the market. ProtoView has been developing software components since 1989 and supplies both ActiveX and JavaBeans components. The company's products are currently all presentation-based, but ProtoView is working on a few that will support the middle tier.

According to Dean Guida, president of ProtoView, the company is building ActiveX GUI components for developers using a wide variety of languages. "It's a challenge for us," he said. "Visual Basic and C++ are two different types of development, and it depends on skills and what is going on in an organization.

"From a product development point of view," he added, "these COM containers are all different for each language. That creates some problems, because they will all behave a little differently."

ProtoView offers Data Explorer, an ActiveX component that allows users to display and edit data in a Microsoft Windows Explorer-style format; and WinX, an ActiveX/OCX user interface components suite. According to Guida, the COM market today shows improvement. "OLE automation was slow, and you wouldn't use it to build mission-critical or enterprise applications," he said.

ProtoView will support COM+ when it is available. "Here's a case where Java-Beans has driven Microsoft to make their components better," said Guida. "COM is everywhere, and you can leverage it across Microsoft technology. Java makes sense when you're building an application that you want to make available across an IP network with access for many types of machines."

Hammers and screwdrivers

While many users have already chosen Microsoft technology, some users who are working closely with these technologies suggest that each has its place in the world. If you ask Dennis Moore, vice president of Apptivity product marketing at Progress Software Corp., Bedford, Mass., for his thoughts on choosing a "side" in the components market, he has a pointed tools analogy.

"Asking someone to choose between COM and JavaBeans or Corba is like giving me a toolbelt and then asking me to choose between a hammer and a screwdriver," he said. "I'd tell them to get lost. You need different tools to do different things."

As companies spiral out from the intranet to the Internet and extranet, Moore said that people are finding that they do not have as much control on the client side. It is in that scenario that a case can be made for Enterprise JavaBeans.

Other key component development issues on the client side include security, size of the components, the ability to support users, and the ability to run on the wide variety of available computing platforms, said Moore.

"Microsoft would have you believe that ActiveX runs everywhere," he said. "But in reality, it doesn't. Some people choose Enterprise JavaBeans over ActiveX Controls for these reasons." He added that while some users choose Microsoft because they think it will give them more consistency, "Corba is there now." Quite often, noted Moore, it just depends on what users are trying to accomplish.

"You really can't choose between Corba and COM+, because COM+ is still vapor," he continued. "Corba is scalable, DCOM isn't, which isn't necessarily a bad thing because it scales down well, and with a small server you wouldn't be using Corba."

Progress products support Microsoft technologies, including ActiveX controls in the Apptivity line of application development tools, as well as client side ActiveX and OCX in the Progress fourth-generation language. Progress is also moving to an approach based on Corba and Enterprise JavaBeans. JavaBeans support is currently provided on the client side in Apptivity, while Corba support is provided on the server side.