Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesOf Teams and Components


May 1997 / International Features / Of Teams and Components

Open software repositories improve component management and make collaborative devleopment projects more efficient.

Dick Pountain

The old saying that many hands make light work still holds true in software development. To keep up with ever-shortening product-development cycles, teamwork is a key ingredient of today's software projects, especially with the move to components. However, many of these projects leave the participants with the feeling that another adage is at least as true: Too many cooks spoil the broth.

Software-tool vendors encounter th is incongruity with team development environments based on shared-database repositories, project-management facilities, and strong synchronization between source code and design models. On the other hand, the current move toward component-based programming adds new complexity to programming projects. As the use of Java applets and ActiveX controls grows, configuration and version cont rol are becoming key requirements. Programmers are faced with questions such as "What components do we have available?," "Which versions are they?," "Where are they stored?," and "What methods do they expose?"

Shared Work

A good solution for taming both sorts of difficulties -- problems with team development and component management -- is a central repository that manages components, design data, and documentation. A central repository manages the availability of the code, code versions, and the specifications of the code. A typical problem, however, is that industry-stan dard development tools, such as C++ and Visual Basic (VB), can't access the proprietary architectures of existing repositories.

Two approaches aim to solve this problem. Companies with a solid background in repository technology, such as the German firm Softlab (Munich), open up their repositories to share meta-data with other vendors' tools. Microsoft, on the other hand, is trying to establish an ActiveX-based meta-data standard, called the Open Information Model (more on this later).

Like so many other industry buzzwords, the term repository means different things to different vendors. In the mainframe world, the term refers to a large shared database of documentation with automatic version and access control. In the CASE-tool industry, it often refers to a shared collection of process and data models (see "Best CASE Scenario: Choosing OO Methods," August 1996 BYTE, International Edition).

The idea of a repository that can track and relate the life histories of every part of a pro ject is a seductive one, but it presents several problems, notably that the different parts -- program code, documents, and modeling diagrams -- tend to come in many different proprietary formats. That can be solved by suitable filters and mapping layers.

But a more serious problem is that, to relate these diverse items together, the repository needs to store a great deal of information about their relationships, such as object version, programmer identity, and build number. So far, there has been no standard format capable of enabling different tools to share this kind of meta-data . However, transparent repository architectures may do wonders here.

An industry-standard repository architecture must cover a description of components; the specification and designs on which they are based; access, usage, and modification privileges; project affiliation; and composition and relationship to other components. Repositories usually also contain project as well as metrics information, such as how many hours developers spend on a project. In the case of a large project, this information can span many different sites across the world and encompass hundreds of different firms working on separate parts of the project. The benefit of a repository is that all these people have a central place where they can find the components that they need, and the project manager can easily keep track of where and how components are used and what the status of the project is.

Use Familiar Tools

A modern software-development repository contains components in source code and in precompiled form, such as C++ libraries, ActiveX components, OpenDoc parts, Smalltalk objects, or Java classes. The big advantage of an industry-standard repository is that tools from various vendors can directly access the information it contains, allowing a project's participants to use the tools they're familiar with. In addition, project managers and technical editors can access this information from word processors, pro ject-management tools, or drawing packages. This means that such a repository must have three different access routes: an interactive browser, for quick navigation through the contents; a SQL-based query interface, for more-intensive retrieval operations; and an open API, so third-party tools can be plugged in.

Most of the repository-based development systems on the market today are derived from CASE tools, which support code-generation and team-development facilities. Examples are Reich Technologies' (Brest, France) Intelligent Software Factory (ISF) and MID's (Nuremberg, Germany) Innovator.

ISF's Intelligent Artifact Repository (IAR) tool builds on the Gemstone object-oriented (OO) database engine. The tool consists of an analysis-and-design module, a project-management program that provides support for Gantt and PERT, and a versioning module that works in conjunction with various commercial development environments, such as IBM's VisualAge, Microsoft Visual C++, and Symantec's Café.

IAR holds two separate subrepositories. The design repository comprises analysis, documentation, project-management, and testing data. The code-reuse repository manages class libraries, code patterns, and binary components.

MID's Innovator workbench deploys a multiuser client/server repository that can operate on WANs. Innovator also integrates with many other vendors' tools and supports exportation of project information. Project managers can customize Innovator's repository using the TCL public-domain scripting language.

Although these team development environments successfully integrate with a wide range of development tools, their meta-data structure is not open to third parties. In an effort to make third-party-tool integration more efficient, Softlab has opened up the repository architecture of its Maestro II tool and now markets the technology in a repository management system called Enabler. It's designed to integrate the data structures of mainframes, LAN-based desktop systems under Win dows 95 and NT, and Web-based applications composed of HTML code, ActiveX controls, and Java applets.

Enabler is based on Softlab's Object Management System (OMS) technology, which is a general-purpose OO storage engine. In an OMS data store, you build models that describe objects and their attributes, relationships between objects, and the attributes of these relationships. Everything in the repository is tied together. The real-world objects that such a model describes can be anything at all: people, machines, documents, or program components.

OMS uses a pure OO approach, where all objects are instances of classes, but it incorporates the concept of versioning at the heart of its object schema. The object classes that you define as versionable store a graph of all the successive versions of their instances; whenever you create a new version of a versionable object, its predecessor becomes automatically protected against further modification so that only leaf nodes in the version graph are editab le.

OMS handles configurations , defined as groupings of versions of a set of ob-jects, that can have only one version of any given object as a member and that cannot contain nonversionable objects. OMS automatically maintains a Working Configuration containing the latest versions of all objects, and it lets you distribute and maintain many versions of a configuration. It also supports workspaces to control the visibility of contexts.

A Terabyte of Data

An Enabler repository can contain up to a terabyte of data and is open to other vendors to integrate their development tools via a number of routes. All Enabler functions are accessible to tool writers through the Softlab Foundation Classes C++ class library. All its functions are also made available through an OLE Automation interface, including remote accesses via the Distributed Common Object Model (DCOM). Important repository services are also exposed as a series of ActiveX controls.

Enabler can object-wrap ordi nary files so that they appear as a standard file system within the repository. Users can access and navigate this file system with file-oriented tools, such as Windows Explorer, without any conversion. Users can also customize access to the data in an Enabler repository using VB as a script language. A subset of VB, called BasicScripting , is also available on the server side. Finally, users can query the Enabler repository and read (but not write) its data using SQL, opening it up to ODBC-capable nonrepository development tools.

Softlab is positioning its repository technology as an integration framework aimed at business-system development, spanning mainframe, desktop, and Web applications. John Kopcke, chief technology officer of Softlab, says, "In the future, legacy-system environments, office workgroup environments, and Web development can be managed by using a common Enabler-based platform."

The Professional and Enterprise editions of Microsoft's VB 5.0 will, for the first time, shi p with a repository. Microsoft Repository 1.0 is based on the aforementioned Open Information Model, which defines an exchange format, a standardized component description, and a common API for accessing components as well as descriptions. The SQL Server database engine provides the common storage facility for the components and descriptions. This open architecture allows other software-development tools and office applications to share components from the repository and use them correctly.

Says David Vaskavitch, Microsoft's vice president of database technology, "The adoption of an open, industry-standard repository will enable more collaborative and productive applications development. Developers will now be able to share models, components, and data, regardless of the tools with which they were built."

ActiveX Interfaces

The Open Information Model is a set of ActiveX-based interfaces that objects need to expose in order to plug into the repository -- a component becomes a rep ository object by exposing the appropriate set of Microsoft Repository interfaces, allowing it to read and write properties and relationships to other objects. For example, developers might design component catalog browsers to have an ActiveX interface called iCatalog, which causes the catalog to include any component that exposes an ActiveX interface, such as iCatalogable Item.

Of course, this restricts the contents of the repository to ActiveX-enabled objects; however, presumably Java components will be able to squeeze in by using the JavaBeans APIs. The important point here is that the interaction between repository components depends only on interfaces, not on classes, which frees them from dependencies on any particular programming language.

Softlab's Enabler and Microsoft's Repository are competing technologies in that they use different underlying data models. Enabler uses Softlab's own Common Data Model (CDM), whereas Mi-crosoft uses ActiveX. Enabler, however, also pr ovides OLE Automation and ActiveX interfaces.

Microsoft has been developing its repository technology over the past two years in conjunction with several industry partners. The most notable ones are Texas Instruments (Ashford, U.K.) and CASE-tool vendors Rational Software (Brighton, U.K.) and Select Software Tools (Cheltenham, U.K.).

Select Software Tools

Select Software Tools announced its new Component Manager (CM) system late last year. The system administrates the collaborative reuse of software components over the Web or corporate intranets, and it works with either Softlab's Enabler or Microsoft's Repository as the underlying repository technology. It enables components that are held in a repository to be stored, browsed, searched, and registered for reuse, either locally or at a remote Web site.

CM lets you segment a repository of components into user-, project-, and corporate-level sections, which can reside on the same machine or at remote lo cations connected by the Web. It manages the distribution of components through the concept of catalogs : A supplier publishes available components in catalogs, and developers then browse these catalogs and retrieve components. Developers can register an interest in a particular catalog, and CM automatically sends notification of additions and upgrades via a MAPI-enabled messaging system.

Component management systems like Select Software Tools' CM will play an important role in globally dispersed software development projects because they integrate with open-repository architectures and make collaborative development projects over the Internet much easier. Will there be one standard repository architecture in the near future? Probably not. Most vendors of software tools for the Windows platform will rush to incorporate Open Information Model interfaces. But in a multiplatform environment, Softlab's open-repository initiative has a good chance of becoming the technology of choice.


Where to Find


Microsoft, Ltd.

Winnersh, Berkshire, U.K.
Phone:    +44 1734 270001
Fax:      +44 1734 270002
Internet: 
http://www.microsoft.com


MID

Nuremberg, Germany
Phone:    +49 911 9683666
Fax:      +49 911 9683610
E-mail:   
sales@mid.de


Rational Software Corp.

Brighton, East Sussex, U.K.
Phone:    +44 1273 624814
Fax:      +44 1273 624364
Internet: 
http://www.rational.com


Reich Technologies

Brest, France
Phone:    +33 2 98804899
F
ax:      +33 2 98447772
E-mail:   
101473.1573@compuserve.com

Internet: 
http://www.projexion.com


Select Software Tools

Cheltenham, U.K.
Phone:    +44 1242 229700
Fax:      +44 1242 229701
E-mail:   
sales@selectst.com

Internet: 
http://www.selectst.com


Softlab

Munich, Germany
Phone:    +49 89 99360
Fax:      +49 89 99381
E-mail:   
LSM@softlab.de

Internet: 
http://www.softlab.de


Texas Instruments Software U.K.

Ashford, Middlesex, U.K.
Phone:    +44 1784 212 000
Fax:      +44 1784 212 121
Internet: 
http://www.ti.com


HotBYTEs
 - information on products covered or advertised in BYTE


Microsoft's First Repository

illustration_link (20 Kbytes)

By exposing a set of Microsoft Repository interfaces, an object store describes properties and relationships to other objects.


Select Management

screen_link (54 Kbytes)

Select Software Tools' Component Manager administrates software components over the Web and corporate intranets.


Dick Pountain is a longtime BYTE contributing editor based in London. You can contact him at dickp@bix.com .

Up to the International Features section contentsGo to previous article: The Workflow Reference ModelGo to next article: A Repository's Core FunctionsSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network