Bean Extender: Overview of Travel Demo Using Network Deployment


Demo Overview

In the scenario used for this demo, there are two developers (Developer 1 and Developer 2) and an end user involved in stocking, listing, and ordering content. Developer 1 has created FlightInfoDap and FlightSelector beans using some builder tool and uses the Network Deployment client to publish them to a Warehouse and add a catalog listing for the content. Developer 2 browses the catalog and selects the beans published by Developer 1 and uses them in the Assembly Surface tool to create an aggregate bean called TravelDemo. Since Network Deployment has been integrated into the Assembly surface tool, he can browse the catalog to select a bean, publish the newly assembled bean to the warehouse, and add a catalog listing for the new bean directly from the Assembly Surface tool. Using the Network Deployment client, the end user orders the TravelDemo bean from a warehouse and runs it on her machine. All warehouse content on which the TravelDemo bean is dependent (beans from Developers 1 and 2) is automatically downloaded along with TravelDemo bean itself.

This section provides information about Network Deployment warehouses, catalogs, and the Network Deployment Client.

It is highly recommended that you look at Bean Extender Configuration before running this demo. For more detailed information on Network Deployment, see Bean Extender Guide to Features: Network Deployment.

Warehouse Overview

Warehouses are used to store and distribute items of digital content, such as Java class files, jar files, and other binary files, Content can be deployed to a warehouse in units referred to as warehouse items. Warehouses enable developers to publish or stock developed content and allows users and other developers to order the desired content.

Warehouses can be configured as peers of one another so that they form one logical warehouse. If a warehouse does not contain a warehouse item being requested, it will forward the request to its peers and transparently return the item to its requestor.

Typically in an enterprise environment, where different teams are developing and using Java software, one or more departments or groups can host warehouses configured as peers of one another. All other developers can publish or order content with these warehouses.

Warehouse content can be listed in catalogs, described below, so that others will learn about the content when they browse the catalog.

For additional information about the Network Deployment warehouse component, refer to the Warehouse section in the Network Deployment User Guide.

Catalog Overview

A catalog component enables users to browse or search for warehouse content. Content is physically stored in a warehouse; a catalog itself stores catalog items, which describe warehouse content. One catalog item describes one or more warehouse items. Any client can browse or query a catalog to find catalog items.

Catalogs can be configured as peers of one another so that they form one logical catalog. Catalogs forward search and retrieval requests to their peers so that information returned to clients represent content from all peer catalogs.

Catalog items are used by the Network Deployment Client component, described below, to access corresponding warehouse content.

For additional information about the Network Deployment catalog component, refer to the Catalog section in the Network Deployment User Guide.

Client Overview

While the Network Deployment Catalog and Warehouse components both have client-side classes, both operate more or less independently. The Network Deployment Client ties these two together from the end user's perspective in the form of a graphical front end which can be used to deploy warehouse and catalog content, browse the catalog for warehouse content, and to order warehouse content. Ordered content can be subscribed so that the content is refreshed on a periodic basis. The refresh is initiated by the Client component. Whenever content is downloaded, all warehouse content identified as a dependency is also downloaded, if necessary.

The Network Deployment Client component also provides additional function, such as management of catalog and warehouse content ordered or added by the end user. This avoids multiple copies of the same content in one client environment.

Also, the Client component includes a network class loader, which Java programs can use to dynamically download and load classes stored as warehouse content.

The Network Deployment client GUI includes a standalone application. It also can be embedded in program builder tools for more seamless operation, as demonstrated by the Assembly Surface.

For additional information about the Network Deployment client, refer to the Client section in the Network Deployment User Guide.

Stock Overview

Developer 1 is going to stock two jar files: FlightInfo.jar and FlightSelector.jar. Content in FlightSelector.jar is dependent on content in FlightInfo.jar. This developer is assumed to be using some builder tool that does not have an integrated Network Deployment client, and is therefore using the standalone Network Deployment client GUI to perform warehouse and catalog operations. Developer 1 has configured the Network Deployment client to connect to Warehouse 1 and Catalog 1.

First, Developer 1 stocks the FlightInfoDap bean (FlightInfo.jar) to the warehouse. Next he adds a catalog item for the FlightInfoDap bean.

Developer 1 then publishes the FlightSelector bean (FlightSelector.jar) in the same manner as FlightInfo.jar--first by stocking the jar file to the warehouse, and then adding a catalog entry for it. When creating the warehouse item, Developer 1 must list FlightInfo.jar as a dependency.

Developer 2 is going to use the Assembly Surface with an integrated Network Deployment Client GUI to create a composite bean and publish warehouse and catalog entries for it. This composite bean will build on content previously published by Developer 1 as well as jar files not found in any warehouse. He has configured his client to connect to Warehouse 2 and Catalog 1. Warehouse 2 has been configured to include Warehouse 1 as a peer warehouse. The figure below shows a peer being configured in the warehouse customization panel.

First, Developer 2 browses the catalog, and selects the FlightSelector bean published by Developer 1. The Assembly Surface uses Developer 2's selected catalog item to obtain the content from the warehouse, and displays the repository icon in the Assembly Surface. Note that the Network Deployment client for Developer 2 is configured to connect to Warehouse 2. Warehouse 2 services the request for FlightSelector.jar by forwarding the request to Warehouse 1 and returning the content back to the client, all transparent to the client. In the same manner, Developer 2 browses the catalog to select FlightInfo.jar. The last jar file required for Developer 2's new bean is Travel.jar, which resides on Developer 2's local file system. He adds this jar file to the Assembly Surface as a file repository.

Developer 2 uses these jar files to build an aggregate bean, TravelDemo. which consists of the FlightInfoDap bean from FlightInfo.jar, the FlightSelector bean from FlightSelector.jar, and the Itinerary bean from Travel.jar.

He stocks the warehouse with the TravelDemo bean (as TravelDemo.jar), and adds a catalog item for the TravelDemo bean. When Developer 2 creates the warehouse item for TravelDemo.jar, the warehouse items for FlightInfo.jar and FlightSelector.jar are automatically listed as dependencies, since the Assembly Surface has this information and conveys it to the integrated Network Deployment client. Some beans, including the Itinerary bean, are also dependencies of TravelDemo, but since they do not reside in any warehouse and thus cannot be downloaded automatically, the catalog item for TravelDemo should mention this fact for the benefit of anyone who wishes to order the TravelDemo bean. If possible, instructions on how to obtain these beans should also be provided. The beans TravelDemo requires in addition to the Itinerary bean are required for runtime support and are stored in the following jar files: awidgets.jar, controls.jar, media.jar, and calendar.jar. Since they do not reside on any warehouse, they too should be mentioned in the catalog item description as dependencies which must be acquired manually.

For additional information about stocking content to warehouses, refer to Stocking Warehouse Content. For additional information about adding catalog items, refer to Stocking Catalog Content.

Order Overview

The end user is going to run the standalone Network Deployment client GUI to browse the catalog and order the TravelDemo bean. The user's Network Deployment client has been configured to connect to Warehouse 2 and Catalog 1.

First, she browses the catalog and places an order for the TravelDemo bean. The TravelDemo.jar file is downloaded to the client machine, along with all dependent warehouse items. All of the jar files are extracted in place. The catalog entry for the TravelDemo also provides directions on how to obtain requisite beans that do not reside on any warehouse.

Next she runs the TravelDemo bean just ordered. A bean viewer included with Bean Extender is com.ibm.beans.tools.BeanLauncher. She uses it to run the TravelDemo bean.

For additional information about ordering Warehouse items, refer to Ordering Warehouse Items.

Restock Overview

Developer 1 modifies the FlightInfoDap bean and restocks the FlightInfo.jar file on Warehouse 1. For the purposes of this demo, a modified version of FlightInfo.jar is provided.

For additional information about stocking content to warehouses, refer to Stocking Warehouse Content.

Order Refresh Overview

The end user contacts Warehouse 2 and refreshes the TravelDemo order. Since FlightInfo.jar is a dependency (direct or indirect) of TravelDemo, and the warehouse version is newer than the version on the user's machine, it is downloaded and the jar file is extracted. All other content is already up-to-date and is not downloaded.

For additional information about updating Warehouse items, refer to Updating Warehouse Items.


[ Top of Page |Previous Page |Next Page | Table of Contents | Documentation Homepage ]