RIB Deployment Grids


ABSTRACT:
This document describes what a RIB deployment grid is, gives an example of what one looks like, and then shows how you can use RIB to create one. Since a specialized version of the BIDM must be used to enable the grid generation feature, a description of two new classes is also provided. This document concludes by describing how to incorporate data from remote repositories into your local deployment grid by using RIB's interoperation feature.

PLEASE NOTE:
An understanding of the Basic Interoperation Data Model (BIDM) and the RIB administration interface are needed before viewing this document. If you would like to review either of those topics then please see the RIB User Guide.


What is a Software Deployment Grid?

Put simply, a software deployment grid is a table that shows which software packages are available on a set of machines. Using a grid, a team of system administrators can coordinate their activities and monitor each other's progress. A grid also provides useful information to end users of software by giving them a concise listing of where software is available.

Here is an example of what an actual software deployment grid might look like :

  Paul's PC Mike's Macintosh Lisa's Laptop
Microsoft Word waiting on additional hardware installed not started yet
Netscape Navigator almost done installed installation aborted
Quicken installed installed just started

Among other things, this grid tells you that Netscape Navigator has been installed on Paul's PC.


The Underlying Data Model

Two new classes have been added to the standard data model (BIDM) to support the deployment grid. Those classes are the Machine class and the Deployment class. The Machine class has attributes such as Architecture, ClockSpeed, and OperatingSystem. The Deployment class contains attributes such as Status, and UsageInfo. The Deployment class also contains two important relationships: IsDeploymentOf and DeployedOn. The IsDeploymentOf relationship points to an Asset and the DeployedOn relationship points to a Machine.

Here is a graphical depiction of the relevant portion of the data model :

                                   ---------
                                   | Asset |
                                   ---------
                                       ^
                                       |
                                       |
                                 IsDeploymentOf
                                       |
                                       |
   -----------                   --------------
   | Machine |  <--DeployedOn--  | Deployment |
   -----------                   --------------


How to Create a Deployment Grid

If you are familiar with the steps required to create a RIB software catalog then you should quickly understand how the deployment grid feature works. The two processes are very similar.

The first step is to create the relevant objects - Asset, Machine, and Deployment. You should create the Asset and Machine objects first because the Deployment object you create later will require relationships with them. For example, to make the example grid shown above, you would need to first create a Machine object whose Name attribute is "Paul's PC". You would then create an Asset object whose Name attribute is "Microsoft Word". Next you would create a Deployment object, making its Status attribute be "waiting on additional hardware". (Note that what you use for the Name attribute actually doesn't show up in the grid.) Now you are ready to use the IsDeploymentOf relationship to point to the Asset and the DeployedOn relationship to point at the Machine.

At this point, if you clicked on the "Generate Deployment Grid" on your main RIB administration page then you would generate this portion of the deployment grid :

  Microsoft Word
Paul's PC waiting on additional hardware

Each of the remaining entries in the example deployment grid would be added by following the same sequence of steps outlined above. However, you don't need to create a Machine or Asset object if one already exists that suits your needs. For example, to add the "almost done" entry from the example grid to the partial grid shown above you would not need to recreate the Asset object for "Microsoft Word" but you would need to create a Machine object for "Mike's Macintosh".

Customizing the appearance of your deployment grid

Customization of your deployment grid can be done in the same way that you customize the appearance of your software catalog. The program that creates the deployment grid looks for an HTML header and HTML footer which it prepends and appends to the HTML table it produces. You can specify a custom header or footer for your deployment grid by clicking on the "Install" link in the headers or footers section of your repository administration page. If your repository maintains both a software catalog and a deployment grid then it might be a good idea to add a link to the catalog from the header of the deployment grid and vice versa.


Using RIB's Interoperation Feature for Deployment Grids

If you're familiar with RIB's interoperation feature then you know that you don't have to manually enter all of the information that appears in your software catalog. You can create "links" to Assets in foreign repositories that will automatically be retrieved by RIB at catalog generation time and added to your catalog. Or, alternatively, you can "import" a copy of information from a remote repository and save it locally as if you had entered it yourself. The interoperation feature is made possible by the fact that repositories that use a similar configuration file can parse each other's object files. RIB uses a url to retrieve the objects over the Internet.

Using a similar interoperation scheme to the one described above, you can reuse information from a remote repository when you create your deployment grid. The only objects that must be localized in your repository are the Deployment objects. The other objects (Asset and Machine) can in effect be "linked to" by using urls which point to remote objects for the DeployedOn and IsDeploymentOf relationships. If you use this interoperation scheme then just be sure that your repository's configuration file is similar to the configuration file in use at the remote site.


Fri Aug 21 13:57:23 EDT 1998
mcmahan@cs.utk.edu