DBMS, May 1998
DBMS Online: Application Architect By David S. Linthicum

Conducting Components

Component Management is a need whose time has come -- so get ready.


Component-based development is setting the middleware world on fire. Once components were visual critters found only on clients; now server-side components give developers a mechanism to create and reuse complex or simple applications. TP monitors and distributed objects are probably the best examples of server-side components today.

The problem is that developers require an integrated view of various components distributed on a network, as well as the ability to manage the componentsı life cycles. Microsoft Repository is certainly one of the best examples of products that do that. However, developers also need tools that allow them to monitor components during run time and provide component access only to authorized users. This is the problem to solve right now. The bottom line is that component management is a newly emerging science brought about by the number of applications now leveraging the component model.

Reemergence of Components

Component-based development is nothing new. Weıve been promoting the use of reusable binary application objects for years. Component-based client/server and Web development differs from the traditional object-oriented programming model in that it mixes in some distributed objects. Developers reuse objects by embedding them inside an application maintaining components in a server-side environment using products such as Microsoft Transaction Server (MTS).

Mixing and matching components means that developers can purchase expertise or functionality they donıt already possess. For instance, vertical market component vendors from petroleum, financial, and retail industries offer developers specialized functionality that requires little or no custom coding. In most cases, developers can extend the components to meet the exact needs of an application by exposing properties of the components. In a sense, the components are becoming analogous to traditional distributed objects. Component standards such as COM/DCOM and CORBA give developers a standard mechanism linking the components together and allowing them to communicate over a network. However, these standards do not provide management layers.

Server-side components can add value by letting the developer tie distributed systems together with components. The transactional components that exist today in products such as MTS and Tuxedo are the best examples of server-side component development. Developers integrate your system by plugging components together as well as by using components as a central location for common business logic.

Object-oriented development, on the other hand, leverages existing objects by inheriting their characteristics into an application and customizing the object to meet the exact requirements of the application. The problem with object-oriented development is that itıs difficult to develop standard interchangeable parts because object-oriented development occurs at a very low level in the language or the tool. For example, you must know how C++ works to use existing C++ libraries or frameworks.

In contrast, components usually contain fewer features and functions than applications, but they provide more services than a simple program function or object. In many respects, components are "retro" ı they adhere more to the modular program model of the past than they do to object-oriented development. Developers use components and the tools that employ them to increase developer productivity and build quality through reuse.

Components arenıt perfect. They donıt provide the reuse granularity of true object-oriented development you get from tools such as Smalltalk, C++, Java, and even PowerBuilder. Instead, components provide reusable features that eliminate the need to know component implementation details. In fact, components usually donıt come with source code, whereas most object libraries and frameworks do. They do, however, expose a set of properties or methods that developers can access to change the componentsı behavior and visual features. This means that developers canıt put the objects into subclasses and customize them to meet the "exact" requirements of the application.

Moving Forward

In addition to new systems using components, systems more than 20 years old are being componentized. The idea is to wrap the code so it appears as standard components and therefore is able to interact with other components using a standard interface (such as COM Automation or CORBA IIOP). This means that we can turn hundreds of existing applications into server-side components that are able to appear as traditional modern components to new client/server applications. While this "wrappering" technology has been slow to appear, developers are creating mechanisms now. This also gets us out of the 3270 screen scraping business that many architects find so convenient but that only provides a stopgap solution in the long run.

This is the idea behind products such as Component Broker from IBM. Component Broker is able to leverage the CORBA distributed object standard to encapsulate legacy systems as well as provide integration with new server-side components or objects. The idea is to provide a component integration environment allowing developers and vendors to create components that layer into a CORBA-based infrastructure. For example, packaged applications could be componentized to snap into such an environment interacting with other components on their native soil.

Other issues include the fact that although most component-based applications are centralized on the back-end servers, the components themselves are distributed across many different platforms. Clients come into play as the visual mechanism of the component story, and they are also another platform to support.

Tools are A-Cominı

Most client/server and Web application development vendors are promoting the notion of component management, and they are all creating different tools to carry out this task. Most major client/server development vendors are promoting future development tools with component management features. Powersoft (a division of Sybase), Microsoft, and Borland will all support component management on the clients, with future releases supporting server-side components.

Visual Component Manager from Microsoft, for example, is available for Visual Basic and Visual Studio developers. Visual Component Manager is able to publish, organize, search, and sort ActiveX components or Visual Basic components. Whatıs more, Visual Component Manager manages design information, source code, application templates, and programming wizards using a unified interface. However, Microsoft is building on the shell of this product, growing it from an "add-on" to a centralized center for working with components across all Microsoft tools. Weıll see this update to Visual Component Manager with the next release of Microsoftıs Visual Studio ı98 tool suite.

Visual Component Manager provides facilities not only to store and reuse components, but also to drill down and get into the design and property details of each component. For example, you can use Visual Component Manager to determine the operations, attributes, events, or methods of a component or group of components. You can use these features to reuse a component or modify a component to meet the exact requirements of applications. Moreover, Visual Component Manager will store relationships as well using the now-standard Unified Modeling Language (UML) constructs within the Microsoft Repository. (See my column on the Microsoft Repository in DBMS, June 1997.) This new version of Visual Component Manager will support Visual Basic, Visual J++, and Visual C++.

In addition to the typical component management features, Visual Component Manager will categorize components leveraging several repositories at the same time. This is key for Microsoft Repository as a strategic investment. Most organizations that I see use a hodgepodge of repositories and any number of tools. This is also critical because we need to push component reuse beyond the project level. Up to this point we havenıt been able to do this on a large scale, in my humble opinion. Visual Component Manager can overlay the repository and become the GUI console, enabling developers to exchange components among the project developers. (See Figure 1.)

When looking at run time, Visual Component Manager leverages the upcoming Microsoft Management Console from the Windows NT sever group. It allows developers to monitor the performance of a component or group of components. The console gets its information from Windows NTıs Active Directory and, using that information, is able to find and manage all components that exist on the network. Using this mechanism, developers use a single tool to monitor, manage, or alter either a group of components or all the components executing on one or more machines connected by a network. You should note that the features of this product may change. Microsoft was only releasing preliminary information at press time.

But Microsoft is not the only vendor chasing the emerging component management market. Sybase is building a suite of component management tools as well. PowerSite Enterprise 1.0 is now available and provides developers with visual development environment for building and managing Web applications. It is a major component of Sybaseıs PowerStudio tool suite.

Whatıs significant about PowerSite is its ability to deliver multiuser component management using a relational database as the repository. PowerSite defines HTML and scripts as well as ActiveX and Java applets as components. PowerSite provides a graphical interface that enables developers to manage the reuse, version, and recovery of components during development. Whatıs more, developers can assign user rights, roles, and authorization levels using a security management layer. PowerSite also has the ability to read Web sites and suck the contents into its component repository.

Other players in the component management arena include Borland and its AppCenter. Expected later this year, AppCenter is built on top of Borland Entera middleware to control distributed applications. As with the other component management tools, AppCenter provides centralized control of components across multiple platforms. AppCenter is actually three components: a graphical viewer for peering into application configurations, a monitor, and a repository server.

When using the viewer, developers are able to stop and start applications from a central console and monitor the components during run time. To do these things, agents reside on servers and manage the components remotely.

Component Manager from Select Software Tools Inc. is another component management platform that allows developers to implement an enterprise-side supplier consumer model.

Selectıs plan is to provide component suppliers that wrap existing applications as components and build new components as required. The consumers are the business users that are able to access and assemble application using these components. You do this through the Select Component Manager visual interface.

There are others on the component manager list as well, including products from SuperNova Inc. and Visual Concepts. You can also count on JavaSoft providing a component management solution once its Enterprise JavaBeans specification turns into a real product.

Birth of CM

What does all this mean to you, the application developer or architect? This is the future of application development as far as Iım concerned. What distributed objects could not do for us, components can do. Component development, however, must have a management story to tell in order to become effective. You must have the mechanism in place to manage the distributed component process, component directory services, performance monitoring, and security services.

So how do you get started? The reality is that most development tools are recasting themselves to support the notion of components and provide the management layers as well as a part of the tool. The tools from Microsoft, Powersoft, and Borland are the best examples. Whether you like it or not, component development and management are in your future. Youıd better get ready. I have.



Figure 1. Visual Component Manager is able to overlay the repository and become the GUI console, allowing developers to exchange components among the project developers.


David S. Linthicum is is the author of David Linthicum's Guide to Client/Server and Intranet Development from John Wiley & Sons (1998). He's a widely published author, speaker, and senior manager with AT&T Solutions Systems Integration Practice in Chantilly, Virginia. You can email David at linthicum@worldnet.att.net.
What did you think of this article? Send a letter to the editor.


Subscribe to DBMS -- It's free for qualified readers in the United States
May 1998 Table of Contents | Other Contents | Article Index | Search | Site Index | Home

DBMS (http://www.dbmsmag.com)
Copyright © 1998 Miller Freeman, Inc. ALL RIGHTS RESERVED
Redistribution without permission is prohibited.
Please send questions or comments to dbms@mfi.com
Updated April 3, 1998