Spreadsheet

Business alliance identification in a web architecture framework

6721713

Abstract

A system, method and article of manufacture are provided for identifying alliances among a plurality of business entities in components of a network framework. First, alliances are identified among a plurality of business entities in terms of components of a current network framework. Next, a pictorial representation is displayed of the current network framework and the components. The alliances are then conveyed by indicia coding the components of the current network framework in which the alliances exist.


Claims

What is claimed is:

1. A system of identifying alliances among a plurality of business entities in components of a network framework comprising:

(a) device for identifying at least one alliance among a plurality of business entities in terms of components of a current network framework;

(b) device for displaying a pictorial representation of the current network framework and the components; and

(c) device for conveying the at least one alliance by indicia coding the components of the current network framework in which the at least one alliance exists.

2. A computer program embodied on a computer readable medium for identifying alliances among a plurality of business entities in components of a network framework comprising:

(a) a code segment that identifies at least one alliance among a plurality of business entities in terms of components of a current network framework;

(b) a code segment that displays a pictorial representation of the current network framework and the components; and

(c) a code segment that conveys the at least one alliance by indicia coding the components of the current network framework in which the at least one alliance exists.

3. A computer program for identifying alliances among a plurality of business entities in components of a network framework as recited in claim 2, wherein the at least one alliance that is conveyed relates to features of the components of the current network framework.

4. A computer program for identifying alliances among a plurality of business entities in components of a network framework as recited in claim 3, wherein the features are listed in terms of the components to which the features relate.

5. A computer program for identifying alliances among a plurality of business entities in components of a network framework as recited in claim 4, wherein the features are indicia coded to convey the at least one alliance.

6. A computer program for identifying alliances among a plurality of business entities in components of a network framework as recited in claim 2, wherein the components of the current network framework are selected from the group of components including security services, network services, web services, client services, integration capabilities, data services, directory services, management services, operation services, and developer services.

7. A computer program for identifying alliances among a plurality of business entities in components of a network framework as recited in claim 2, wherein the components of the current network framework are selected from the group of components including commerce-related services, content-related services, administration-related services, customer-related services, and education-related services.

8. A computer program for identifying alliances among a plurality of business entities in components of a network framework as recited in claim 2, wherein the indicia coding is selected from the group of indicia coding including texture coding, color coding, and shading coding.

9. A computer program for identifying alliances among a plurality of business entities in components of a network framework as recited in claim 2, wherein the current network framework is a web architecture framework.

10. A computer program for identifying alliances among a plurality of business entities in components of a network framework as recited in claim 2, wherein a legend is presented which defines the indicia coding with respect to the business entities.


Description

FIELD OF THE INVENTION

The present invention relates to conveying information regarding a web architecture framework and more particularly to identifying alliances of various business entities in a system.

BACKGROUND OF THE INVENTION

It is common in presentations and the like to present and convey information through graphic representations. These representations may take a variety of forms, such as alphanumeric characters, various sorts of graphs, as well as images of physical objects rendered on various mediums such as a computer display, paper product, transparency, etc. For example, various graphics such as line graphs, bar charts and pie charts have been quite popular in the presentation of business data such as sales, budgets and the like.

Typically, a person can absorb and manipulate information placed in a visual or graphical context much faster than if the same information is represented merely by alphanumeric text or conveyed verbally. The person is also much more likely to retain that information. However, a balance must be maintained between presenting information in a manner so as to be more likely to be retained by the viewer and keeping the graphic presentation simple enough to be easily and quickly comprehended.

Traditional graphs and charts, such as bar and pie charts, work well only for small amounts of information and are typically only useful for presenting statistical information. Attempting to produce such graphs and charts for large amounts of information leads to presenting the information in such small increments, such as bars (in a bar chart) or wedges (in a pie chart), as to lead to confusion, not to mention the greatly reduced chance that a viewer would retain the information presented.

Further, when similar types of information are being grouped together as a divisible unit, such as in the same bar or wedge of a chart, the confusion is compounded. Still further adding to the confusion would be the addition of indicia coding to selected information in the divisible unit, such as attempting to indicia code certain portions of a bar (in a bar chart) already having four components while ensuring that the individual components remain identifiable.

Nor do such charts and graphs do well in providing the overall picture of how the information is organized as a whole, such as how the divisible units (each formed of a variety of different types of information) are related to each other. Simply stating that two or more charts or portions of charts are related may not be enough to enable a viewer to comprehend the interrelationship of the information presented.

There is thus the need for a way to create and display information in a graphic representation that presents the information concisely and in a well organized manner in order to reduce the likelihood of confusion and maximize retention in a viewer and further to increase the viewer's understanding of the organization and interrelation of the various pieces of information with each other. There is further a particular need for such a system in the art of conveying information regarding network frameworks such as a web architecture framework.

SUMMARY OF THE INVENTION

A system, method and article of manufacture are provided for identifying alliances among a plurality of business entities in components of a network framework. First, alliances are identified among a plurality of business entities in terms of components of a current network framework. Next, a pictorial representation is displayed of the current network framework and the components. The alliances are then conveyed by indicia coding the components of the current network framework in which the alliances exist.

In one aspect of the present invention, the alliances that are conveyed relate to features of the components of the current network framework. As an option, the features may be listed in terms of the components to which the features relate. Further, the features may be indicia coded to convey the alliances.

In yet another aspect of the present invention, the present invention may be used to convey information regarding components of the current network framework such as security services, network services, web services, client services, integration capabilities, data services, directory services, management services, operation services, or developer services. In the alternative, the components of the current network framework may include commerce-related services, content-related services, administration-related services, customer-related services, or education-related services.

In still yet another aspect of the present invention, the indicia coding may be selected from the group of indicia coding including texture coding, color coding, and shading coding. As an option, a legend may be presented which defines the indicia coding with respect to the business entities.

BRIEF DESCRIPTION OF DRAWINGS

The invention will be better understood when consideration is given to the following detailed description thereof. Such description makes reference to the annexed drawings wherein:

FIG. 1 is a flow chart depicting multiple coding methods for conveying various information relating to a system such as web architecture framework;

FIG. 2 is a flowchart illustrating the method for identifying redundancies and omissions among components of a web based architecture in accordance with one embodiment of the present invention;

FIG. 3 is a flowchart providing more detail of the method for identifying redundancies and omissions among components of a web based architecture in accordance with one embodiment of the present invention;

FIG. 4 is a flowchart illustrating the method of conveying which components of a system are required for implementation of technology in accordance with one embodiment of the present invention;

FIG. 5 is a flowchart providing more detail of the method of conveying which components of a system are required for implementation of technology in accordance with one embodiment of the present invention;

FIG. 6 is a flowchart illustrating the method of prioritizing components of a system that are required for implementation of technology in accordance with one embodiment of the present invention;

FIG. 7 is a flowchart providing more detail of the method of prioritizing components of a system that are required for implementation of technology in accordance with one embodiment of the present invention;

FIG. 8 is a flowchart illustrating the method of indicia coding system components to be delivered in different phases in accordance with one embodiment of the present invention;

FIG. 9 is a flowchart providing more detail of the method of indicia coding system components to be delivered in different phases in accordance with one embodiment of the present invention;

FIG. 10 is a flowchart illustrating the method of comparatively analyzing network entities in accordance with one embodiment of the present invention;

FIG. 11 is a flowchart providing more detail of the method of comparatively analyzing network entities in accordance with one embodiment of the present invention;

FIG. 12 is a flowchart illustrating the method for selling products in accordance with one embodiment of the present invention;

FIG. 13 is a flowchart providing more detail of the method for selling products in accordance with one embodiment of the present invention;

FIG. 14 is a flowchart illustrating the method of identifying various components of a system for building, management, and support purposes in accordance with one embodiment of the present invention;

FIG. 15 is a flowchart providing more detail of the method of identifying various components of a system for building, management, and support purposes in accordance with one embodiment of the present invention;

FIG. 16 is a flowchart illustrating the method for mapping products or services in a network framework in accordance with one embodiment of the present invention;

FIG. 17 is a flowchart providing more detail of the method for mapping products or services in a network framework in accordance with one embodiment of the present invention;

FIG. 18 is a flowchart illustrating the method of identifying alliances among a plurality of business entities in accordance with one embodiment of the present invention;

FIG. 19 is a flowchart illustrating the method for planning the testing of network components in accordance with one embodiment of the present invention;

FIG. 20 is a flowchart providing more detail of the method for planning the testing of network components in accordance with one embodiment of the present invention;

FIG. 21, divided into the partitions FIGS. 21A-21F, is an illustration of one implementation of operations 10 and 24 of FIG. 1;

FIGS. 21A-21F provide a detailed illustration of one segment of the implementation of operations 10 and 24 of FIG. 1, as partitioned in FIG. 21;

FIG. 22 is an illustration of one implementation of operations 10 and 24 of FIG. 1;

FIG. 23, divided into the partitions FIGS. 23A-23F, is an illustration of one implementation of operations 12, 20, 22 and 26 of FIG. 1;

FIGS. 23A-23F provide a detailed illustration of one segment of the implementation of operations 12, 20, 22 and 26 of FIG. 1, as partitioned in FIG. 23;

FIG. 24, divided into the partitions FIGS. 24A-24F, is an illustration of one implementation of operations 14, 16 and 18 of FIG. 1;

FIGS. 24A-24F provide a detailed illustration of one segment of the implementation of operations 14, 16 and 18 of FIG. 1, as partitioned in FIG. 24;

FIG. 25, divided into the partitions FIGS. 25A-25F, is an illustration of one implementation of operations 14,16, 18 and 30 of FIG. 1;

FIGS. 25A-25F provide a detailed illustration of one segment of the implementation of operations 14, 16, 18 and 30 of FIG. 1, as partitioned in FIG. 25;

FIG. 26, divided into the partitions FIGS. 26A-26D, is an illustration of one implementation of operation 22 of FIG. 1.

FIGS. 26A-26D provide a detailed illustration of one segment of the implementation of operation 22 of FIG. 1, as partitioned in FIG. 26;

FIG. 27, divided into the partitions FIGS. 27A-27F, is an illustration of one implementation of operation 28 of FIG. 1;

FIGS. 27A-27F provide a detailed illustration of one segment of the implementation of operation 28 of FIG. 1, as partitioned in FIG. 27;

FIG. 28, divided into the partitions FIGS. 28A-28F, is an illustration of one implementation of operation 28 of FIG. 1;

FIGS. 28A-28F provide a detailed illustration of one segment of the implementation of operation 28 of FIG. 1, as partitioned in FIG. 28;

FIG. 29, divided into the partitions FIGS. 29A-29F, is an illustration of one implementation of operation 28 of FIG. 1;

FIGS. 29A-29F provide a detailed illustration of one segment of the implementation of operation 28 of FIG. 1, as partitioned in FIG. 29;

FIG. 30, divided into the partitions FIGS. 30A-30F, is an illustration of one implementation of operation 28 of FIG. 1;

FIGS. 30A-30F provide a detailed illustration of one segment of the implementation of operation 28 of FIG. 1, as partitioned in FIG. 30;

FIG. 31, divided into the partitions FIGS. 31A-F, is an illustration of one implementation of operation 28 of FIG. 1;

FIGS. 31A-31F provide a detailed illustration of one segment of the implementation of operation 28 of FIG. 1, as partitioned in FIG. 31;

FIG. 32, divided into the partitions FIGS. 32A-32F, is an illustration of one implementation of operation 28 of FIG. 1;

FIGS. 32A-32F provide a detailed illustration of one segment of the implementation of operation 28 of FIG. 1, as partitioned in FIG. 32;

FIG. 33, divided into the partitions FIGS. 33A-33F, is an illustration of one implementation of operation 28 of FIG. 1;

FIGS. 33A-33F provide a detailed illustration of one segment of the implementation of operation 28 of FIG. 1, as partitioned in FIG. 33;

FIG. 34, divided into the partitions FIGS. 34A-34B, is an illustration of one implementation of operation 28 of FIG. 1.

FIGS. 34A-34B provide a detailed illustration of one segment of the implementation of operation 28 of FIG. 1, as partitioned in FIG. 34;

FIG. 35 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 36 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 37 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 38 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 39 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 40 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 41 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 42 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 43 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 44 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 45 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 46 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 47 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 48 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 49 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 50 is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1;

FIG. 51 is a schematic diagram of a hardware implementation of one embodiment of the present invention;

FIG. 52 is an illustration of the Integrated Development Environment Architecture (IDEA).

FIG. 53 is an illustration showing a Development Organization Framework in accordance with one embodiment of the present invention;

FIG. 54 is an illustration showing a security organization functional according to one embodiment of the present invention;

FIG. 55 is an illustration showing the responsibilities of an Environmental Management Team;

FIG. 56 is an illustration showing the responsibilities of an Application Team structure;

FIG. 57 is an illustration showing a model migration plan in accordance with one embodiment of the present invention;

FIG. 58 is an illustration showing a single release capability development pipeline in accordance with one embodiment of the present invention;

FIG. 59 is an illustration showing a multiple release capability development pipeline in accordance with one embodiment of the present invention;

FIG. 60 is an illustration showing a multiple release capability development pipeline with code base synchronization among three pipelines;

FIG. 61 is an illustration showing a Development Tools Framework in accordance with one embodiment of the present invention;

FIG. 62 is an illustration showing information captured in the Repository and reused;

FIG. 63 is an illustration showing the Repository's central role in the development environment;

FIG. 64, divided into the partitions FIGS. 64A-64B, is an illustration showing an Operational Architecture Framework in accordance with one embodiment of the present invention;

FIGS. 64A-64B provide a detailed illustration of an Operational Architecture Framework in accordance with one embodiment of the present invention, as partitioned in FIG. 64;

FIG. 65, divided into the partitions FIGS. 65A-65F, is a block diagram of a Web Architecture Framework in accordance with one embodiment of the present invention;

FIGS. 65A-65F provide a detailed illustration of a block diagram of a Web Architecture Framework in accordance with one embodiment of the present invention, as Partitioned in FIG. 65;

FIG. 66 is a flowchart illustrating the commerce-related web application services in accordance with one embodiment of the present invention;

FIG. 67 is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction;

FIG. 68 is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction by comparing different products and services;

FIG. 69 is an illustration of one embodiment of the present invention for creating a hierarchy of the features of the items selected in accordance with the customer's profile;

FIG. 70 is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction by ascertaining needs of a user;

FIG. 71 is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction by generating a solution based on the requirements of the user;

FIG. 72 is an illustration of one embodiment of the present invention for allowing a user to customize an item for purchase in a virtual shopping environment;

FIG. 73 is an illustration of one embodiment of the present invention for advertising in a virtual shopping environment;

FIG. 74 is an illustration of one embodiment of the present invention for advertising in a virtual shopping environment;

FIG. 75 is an illustration of yet another embodiment of the present invention;

FIG. 76 is an illustration of one embodiment of the present invention for automatically generating a contract between an owner of software and a user of the software;

FIG. 77 is an illustration of one embodiment of the present invention for automatically generating a contract between an owner of software and a user of the software

FIG. 78 is a flowchart illustrating the content channels-related web application services in accordance with one embodiment of the present invention;

FIG. 79 is a flowchart illustrating the customer relationship management-related web application services in accordance with one embodiment of the present invention;

FIG. 80 is a flowchart illustrating a profile management service of the customer relationship management-related web application services in accordance with one embodiment of the present invention;

FIG. 81 is a flowchart illustrating a profile management service of the customer relationship management-related web application services in accordance with one embodiment of the present invention;

FIG. 82 is a flowchart illustrating the content management and publishing-related web application services in accordance with one embodiment of the present invention;

FIG. 83 is a flowchart illustrating the education-related web application services in accordance with one embodiment of the present invention;

FIG. 84 is a flowchart illustrating one manner of generating an educational curriculum in the education-related web application services in accordance with one embodiment of the present invention;

FIG. 85 is a flowchart illustrating one manner of generating an educational curriculum in the education-related web application services in accordance with one embodiment of the present invention;

FIG. 86 is a flowchart illustrating the web customer-related web application services in accordance with one embodiment of the present invention;

FIG. 87 is a flowchart illustrating one component of the web customer-related web application services in accordance with one embodiment of the present invention;

FIG. 88 is a flowchart illustrating the security services in accordance with one embodiment of the present invention;

FIG. 89 is a flowchart illustrating the network services in accordance with one embodiment of the present invention;

FIG. 90 is a flowchart illustrating the internet services in accordance with one embodiment of the present invention;

FIG. 91 is a flowchart illustrating the client services in accordance with one embodiment of the present invention;

FIG. 92 is a flowchart illustrating the data services in accordance with one embodiment of the present invention;

FIG. 93 is a flowchart illustrating the integration capabilities in accordance with one embodiment of the present invention;

FIG. 94 is a flowchart illustrating the miscellaneous services in accordance with one embodiment of the present invention;

FIG. 95 is a flowchart illustrating the directory services in accordance with one embodiment of the present invention;

FIG. 96 is a flowchart illustrating the management and operations services in accordance with one embodiment of the present invention; and

FIG. 97 is a flowchart illustrating the web developer services in accordance with one embodiment of the present invention.

DISCLOSURE OF INVENTION

The present invention includes a system, method, and article of manufacture for providing a web architecture framework and further a system, method, and article of manufacture for conveying various aspects of such web architecture framework. This may be done for presentation purposes or with any other objective in mind. For example, the present invention may be employed in optimally conveying to a client or customer information relating to a specific web architecture framework in order to make a point or for sales purposes. In the present description, the details of the presentation aspects will first be set forth after which details relating to a specific web architecture framework of the present invention will be described.

As shown in FIG. 1, the presentation method of the present invention first includes displaying a pictorial representation of a system, i.e. web architecture framework, including a plurality of components. Note operation 10. Next, in operations 12-30, the pictorial representation is indicia coded in order to demonstrate any one or more of various aspects of the system. Such indicia coding may take the form of color coding, texture coding, shading coding, or any other coding which is capable of conveying the desired information.

It should be noted that the pictorial representation and indicia coding may be displayed in any manner that conveys the desired information. For example, the pictorial representation may take the form of a transparency with an outline of the various components of the system. Further, the indicia coding may take the form of an overlay removably situated on the transparency such that, together, the transparency and the overlay depict the indicia coding and the pictorial representation in combination. In the alternative, the transparency and overlay may comprise a single unitary display device. Further, such device may take the form of a slide, full size transparency, or any other device that conveys the desired information. In still yet another embodiment, the pictorial representation and indicia coding may be displayed via a computer with any desired presentation software. An example of such pictorial representation will be set forth hereinafter in greater detail.

FIG. 21 shows an example of the aforementioned pictorial representation, or "base chart". In the example where the system is a web architecture framework, such pictorial representation depicts all of the application capabilities and associated infrastructure services required to establish a comprehensive web presence. A plurality of components are shown which are necessary to afford various activities over the Internet. Such components may include: an electronic commerce component, a content channels component, an administrative component, a customer relationship management component, a content management and publishing services component, an education related services component, and a web customer service component. More detail about these and other components is provided below and with reference to FIG. 65. In one embodiment, the pictorial representation may be used alone in order to convey various services which would be provided in a business offering.

To create such a pictorial representation, referring to FIG. 22, each of the primary components of the system, such as the components listed above, are arranged for display in operation 62. Examples of primary components shown in FIG. 21 include "Security Services", "Commerce", and "Data Services". Preferably, the primary components are grouped under descriptive headings, as in operation 63. Examples of such headings shown in FIG. 21 are "Web Application Services" and Common Web Services". Each of the primary components is formed of a group of secondary components. In operation 64, each set of secondary components is positioned towards or over each of the primary components in such a manner that a viewer would visually associate a group of secondary components with the proper primary component. A legend may be provided in operation 65 to provide reference as to what the indicia coding represents. Finally, in operation 66, the components and legend are displayed.

With reference to FIG. 1, operation 12 includes indicia coding in order to provide a diagnostic presentation of a past, current, and/or desired web presence. By this method, redundant efforts and omissions among the components of a particular implementation of a web architecture framework may be effectively conveyed. An example of indicia coding in accordance with the present description is shown in FIG. 23. As shown, components of the web architecture framework without shading indicate that such components are omitted in the framework (i.e., not provided by services of any vendor). On the other hand, components of the web architecture framework with multiple types of shading indicate redundancy in such components (i.e., provided by services of more than one vendor). To accomplish this, referring to FIG. 2, operation 31 determines at least one area of an existing network framework in which redundancies and omissions of business efforts exist. Operation 32 presents a pictorial representation of the existing network framework including a plurality of components, such as the pictorial representation shown in FIG. 21. Then, in operation 33, the redundancies and omissions are highlighted by indicia coding the components of the existing network that reside in the area.

In one exemplary method to determine whether an area of an existing network framework has redundant or omitted components, a database may be created which includes a listing of all of the components of the area. See operation 31a of FIG. 3. Also, listings of all services provided by vendors that correspond to the components of that area of the framework are created in the same or a second database in operation 31b. Then, the listing of the components is compared with the listing of the vendor services corresponding to those components in operation 31c to determine whether and how many vendors supply services to each particular component. A third listing is created in operation 31d. The third listing lists components not being provided by a vendor service. These components have been omitted by business efforts of the vendors. A fourth listing is created in operation 31e. The fourth listing includes all of the components that are provided by services of more than one vendor. These components are being served by redundant business efforts. Alternatively, the fourth listing could include components that are provided by more than one service of the same vendor. A pictorial representation, such as is shown in FIG. 21, is prepared, as described above in operation 32. Then, referring to FIG. 23, each vendor is assigned a unique indicia coding. Each of the components provided by a vendor service is indicia coded to indicate which vendor or vendors provide the services, as performed in operation 33. Any component omitted in the framework has no indicia coding, while any components having redundant business efforts have multiple types of indicia coding.

Operation 14 of FIG. 1 includes indicia coding for effectively conveying which components of a system are required for implementation of technology using the web architecture framework, thereby affording a project definition and an implementation plan. See also FIG. 4. Operation 34 of FIG. 4 displays a pictorial representation of a system including a plurality of components, again, such as the pictorial representation shown in FIG. 21. Then the components of the system are indicia coded in order to indicate required components for the implementation of the system. See operation 35. An example of such indicia coding is shown in FIG. 24. As shown, components of the web architecture framework without indicia coding indicate that such components are not required for implementation of technology using the web architecture framework. In contrast, components of the web architecture framework with indicia coding represent components which are required for implementation of the technology. In the present description, such technology may relate to any sort of use of the web architecture, i.e. specific commerce implementations, etc.

In one exemplary method to determine which components are required for the implementation of the system in order to indicia code them in operation 35, a database may be created which includes a listing of all of the components of the system. See operation 35a of FIG. 5. Also, listings of all components of the framework necessary to the implementation of the system are created in the same or a second database in operation 35b. Then, the listing of the entire set of components is compared with the listing of the required components in operation 35c. In operation 35d, any components that match are indicia coded on the pictorial representation created in operation 34.

As shown in operation 16 of FIG. 1, the indicia coding may be further employed to indicate priority of implementation for components of the system. First, a priority is identified among the plurality of components required for implementation of a predetermined technology. See operation 36 of FIG. 6. To accomplish this, referring to FIG. 7, a listing of all of the components required for implementation of the technology using an existing network framework is compiled in operation 36a. Priority may be determined based on a requirement that certain components be in place before other components will perform properly. In such case, primary components, which should or must be installed before other secondary components will function properly, are positioned forward of, or in an otherwise prioritized relation to, the secondary components in the listing in operation 36b. Further, any tertiary components that should or must be installed after a particular secondary component should be positioned below the corresponding secondary component on the listing, as in operation 36c. Thus, the listing provides a particular order in which the components of the network framework should or must be installed. It should be noted that this procedure can be followed for any particular area of the network framework or the entire network as a whole.

Then, referring back to FIG. 6, a pictorial representation of the existing network framework and its components is generated in operation 37. Operation 38 indicia codes a first component or components of the existing network framework in order to indicate that the first component is a primary component, as selected in operation 36b, which must be implemented first. Operation 39 indicia codes a second component and any remaining components of the existing network framework in order to indicate that the second component and remaining components are secondary components, as determined in operation 36c, and must be implemented after the first component. For example, second components which should be provided only after other necessary first components are in place may be distinguished from the primary components by having indicia coding unique with respect to the indicia coding of the first components, and likewise for tertiary components, etc.

Further, indicia coding may indicate particular phases in which components of the system are delivered, and more particularly the order of delivery of various components of the web architecture framework. Note operation 18 in FIG. 1. Referring to FIG. 8, operation 40 displays a pictorial representation of an existing system including a plurality of components. Then, in operation 41, a first set of components that are to be delivered in a first phase are selected and presented by indicia coding the same. To perform operation 41, for example, referring to FIG. 9, components of the system that are required to create the base framework of the system are selected to be delivered in the first phase in operation 41a. Further, in operation 41b, the remaining components are separated into primary and secondary components, in which the primary components must be installed before the secondary components in order for the secondary components to function properly. The primary components may also be selected to be delivered in the first phase in operation 41c. Finally, in operation 42, a second set of components that are to be delivered in a second phase are selected and presented by indicia coding the same in a manner unique with respect to the indicia coding of the first set of components. Such second set of components may include some or all of the secondary components found in operation 41b. Referring to FIG. 25, an exemplary first set of components is identified in the legend under "First Delivery". In FIG. 25, second and third sets of components are identified in the legend under "Second Delivery" and "Third Delivery".

Operation 20 of FIG. 1 includes indicia coding for effectively comparing a plurality of entities which, in the present description, may refer to any organization including, but not limited to vendors, companies, and/or any other community or the like. In one embodiment, the present method may allow architecture definition and/or software/vendor assessment. In such embodiment, the components of the system are indicia coded in order to compare the services or products such as software of prospective third-party vendors who may stand alone, be part of a partnership, etc. In particular, operation 43 of FIG. 10 determines the structure and/or organization of a current network framework. Operation 44 displays a graphical depiction of the current network framework and a plurality of components thereof, such as the graphical depiction shown in FIG. 21. A comparative analysis of the vendors is presented with indicia coding that highlights aspects of (i.e., services provided by) the vendors. See operation 45. The presentation of the comparative analysis is accomplished in operation 45a of FIG. 11 by assigning each vendor a unique indicia coding. In operation 45b, a database is created that includes all of the products and services of at least two vendors of web-based products or services. The products and services in the database are compared to the components of the network framework in operation 45c. In operation 45d, each component that matches a service or product offered by a vendor is indicia coded on the graphical representation created in operation 44, with the indicia coding corresponding to the vendor of the service. Then a visual comparison of the services offered by each vendor in relation to the entire network framework may be made. FIG. 23 shows one way the present method may be implemented.

As stated above, various vendors may be represented by a unique corresponding indicia coding, i.e. color, for differentiation purposes. As such, one may assess vendors and third parties as a comprehensive, integrated solution. Further, investment opportunities may be assessed by coding their coverage, strengths, and weaknesses in terms of web architecture framework. For example, the instant method may be used to provide a valuable perspective where new start-up companies are positioned in the overall web architecture solution.

Operation 22 of FIG. 1 is provided for effectively conveying which of the components and capabilities of a system have products and services available for sale, thereby serving as a selling tool. This is accomplished by indicia coding the components of the system in order to show which of the components has services and products that can be provided. In particular, referring to FIG. 12, operation 46 determines the organization and components of an existing network framework. A database is also created which includes a compilation of all of the products and/or services offered by the various components. Operation 47 defines a plan which includes improvements to the existing network framework. For example, in operation 47a of FIG. 13, a target market is selected based on buying habits, age, gender or some other criteria. In operation 47b, a sales program is tailored to appeal to the target market by selecting only specific components having products or services likely to be purchased by the target market. Then, in operation 47c, the products or services related to the chosen components are chosen to be offered for sale.

A pictorial representation of the existing network framework and a plurality of components of the existing network framework are displayed in operation 48. In operation 49, the components of the existing network framework which were chosen according to the plan in operation 47c are indicia coded in order to sell at least one of products and services relating to the chosen components of the system in accordance with the improvements. It should be noted that the pictorial representation of the system displays the components which were not selected under the plan without indicia coding, such as if the products and services of the other components are available for sale though not featured, or such components may not be displayed at all.

FIG. 23 shows an example of operation 22 of FIG. 1. As shown, various available components are indicia coded. As an option, the available components, or capabilities, may be broken down in a bulleted format. Note FIG. 26, which is exemplary of a bulleted list of components. It should be noted that such a list may be provided for any combination of components, including all of the components. As an alternative to selecting products and services to sell, the present invention may specifically indicate which specific capabilities are available to potential clients or customers. As such, the present method of indicia coding is effective in showing such prospective clients or customers a comprehensive view of what it takes to implement solutions. Further, new opportunities may be identified through assessment of the displayed information.

In various other embodiments, the present invention may be used to clearly articulate all the services that would be provided in any type of new business offering. In operation 24 of FIG. 1, the components of the system are indicia coded in order to convey information regarding building, managing, and/or supporting the various components of the system. As such, various capabilities may be conveyed in any type of business offering. A pictorial representation of an existing system including a plurality of components is displayed in operation 50 of FIG. 14. FIG. 21 shows an example of such a pictorial representation.

In operation 51, information relating to building the components of the existing system is presented by indicia coding the components on the pictorial representation. For example, all of the components required to build the other components of the system are differentiated from the other components by the indicia. Thus, the skeleton of the system is presented. Information relating to managing the components of the existing system is conveyed by indicia coding the components on the pictorial representation in operation 52. Operation 53 presents information relating to supporting the components of the existing system by indicia coding the components on the pictorial representation.

In more detail, referring to operation 51a of FIG. 15, a database is created having three areas each adapted to contain a group of components of the system. In operation 51b, components of the existing system that are used for building the components of the system are selected and placed in a first group of components in the first area of the database. These components are indicia coded on the pictorial representation in operation 51 of FIG. 14. In operation 51c, components of the existing system that are used for managing the system and its components are selected and placed in a second group of components in the second area of the database. These components are also indicia coded on the pictorial representation, in operation 52 of FIG. 14, but with a unique indicia coding. In operation 51d, components of the existing system that are used for supporting other components of the system are selected and placed in a third group of components in the third area of the database. These components are indicia coded on the pictorial representation, also with a unique indicia coding, in operation 53 of FIG. 14.

Further, the present invention may be employed in product development planning to communicate where new products fit into an overall architecture picture. As shown in operation 26 of FIG. 1, this is accomplished by indicia coding the components of the system in order to convey information pertaining to which components of a system products or services relate. As such, the present embodiment identifies where various products or services are focused in a system. Note FIG. 23 which is representative of an example, where "Vendor 1", "Vendor 2", etc. each represent a service or product. Operation 26 is performed by determining a plurality of network products or services relating to components of a current network framework and presenting the components of the current network framework in a pictorial representation. See operations 54 and 55 of FIG. 16. Operation 56 identifies the components of the current network framework to which each of the network products or services relate by indicia coding the components.

In one example of operation 26, a first database is created in which selected services are compiled. See operation 56a of FIG. 17. In operation 56b, a second database is created. The second database has each of the services offered by the current system grouped by system component. The two databases are compared in operation 56c, and the components which have services matching the services of the first database are listed in operation 56d. The listed components are indicia coded on the pictorial representation in operation 56e.

In operation 28 of FIG. 1, one embodiment of the present invention identifies alliances among various business entities in certain components of a system. To accomplish this, the components of the system are indicia coded to indicate in which components of the system alliances exist between various business entities, i.e. companies, etc. This enables one to effectively discern how to use products in the components of the system where such alliances exist. The procedure for performing operation 28 begins by identifying at least one alliance among a plurality of business entities in terms of components of a current network framework. Note operation 57 of FIG. 18. A pictorial representation of the current network framework and the components is displayed in operation 58. Operation 59 conveys the alliance or alliances by indicia coding the components of the current network framework in which the alliance or alliances exist. More detail is provided below.

Finally, in operation 30 of FIG. 1, it is shown that one embodiment of the present invention may be used in test planning or the like. This is accomplished by indicia coding the components of the system in order to convey the manner in which the components of the system are to be tested. An example of such technique is shown in FIG. 24. The present invention has a broad applicability across all industry groups through customization of the pictorial representation and indicia coding. In operation 60 of FIG. 19, a pictorial representation of an existing network framework including a plurality of components is displayed. In operation 61, the components of the existing network framework are indicia coded in order to convey a plan by which the components of the system are to be tested. Looking to FIG. 20, it is seen that one method of performing operation 61 includes devising a plan for testing the system. See operation 61a. The plan may be based on administrator or programmer testing specifications. In operation 61b, a plurality of components are selected for testing based on the plan. The selected components are then indicia coded on the pictorial representation in operation 61c. Thus, a pictorial depiction of the testing plan is created.

In various alternate embodiments, the indicia coding may be used to differentiate between base capabilities and technologies, indicate support for Internet Protocol, and/or convey any other aspect of implementation of technology. The present invention thus ensures a comprehensive implementation solution.

Referring again to operation 28 of FIG. 1, and more particularly to FIGS. 18 and FIGS. 27-34, it is seen that FIG. 27 provides an exemplary pictorial representation of various components of a web architecture framework, each component being represented by a box. Three business entities are represented in this example as Business1, Business2, and Business3. Each business entity has a unique indicia coding, as shown in the legend. Indicia coding is provided in each component box that has related products or services offered by a business entity. For example, in the Security Services section, the Browser Based Authentication component has all three types of indicia coding. Thus, all three of the business entities provide products or services related to that component. Also in the Security Services section, the Virtual Private Networks component has only two types of indicia coding. Referring to the legend, it is seen that only Business1 and Business2 offer products or services related to that particular component. For clarity, FIGS. 28, 30, and 32 are provided to illustrate the products or services offered by each individual entity.

The legends of FIGS. 29, 32, and 33 illustrate the particular services provided by Business1, Business2, and Business3, respectively. (The chart on the following pages provides more detail as to the services provided by each entity.) Each service has a unique indicia coding, as shown in the legend. Indicia coding is provided in each component box that has a component provided by that service. Looking to FIG. 29 in this example, it is seen that Business1 offers 13 types of services. The Secure Browser Communication component of the Web Services component of the Web Architecture Framework is provided by eight of the services offered by Business1: Netra/ISP Server Bundles, System Management Tools, Business/Java Web Servers, News Server/Forum, Directory Services, Business.net, the Browsers, and the Wallet/Card/eCheck Service.

FIG. 34 is an exemplary data page which provides even more detail for selected components of the Web Architecture Framework. It should be noted that such data pages may be provided to include each of the various components and subcomponents. Each component box has indicia coding again representative of the services which provide that particular component. Alongside each component are various operations associated with that component. Smaller boxes are provided adjacent each operation, one box for each service providing the main component. If a service performs the particular operation, indicia coding representing that service is provided in one of the boxes adjacent that operation. If the service does not perform the particular operation, its representative indicia coding will not appear in a box adjacent that operation.

FIGS. 35 through 50 illustrate exemplary architectures of various components of the systems of Business1 and Business2. These Figures also correlate with the appropriate portions of the following chart.

1.1 Business1

Business1 offers a variety of products in the hardware, networking, architecture, infrastructure, security and development tool areas. These products are used as the foundation to build applications and systems. Business1 offers limited products with out-of-the-box functionality or application capabilities.

                      Product Functionality
    Product Name/
    Category        Product Details
    Application     A platform for the development, delivery and
    Server          management of enterprise network applications.
                    Based on CORBA and JAVA, Product1 uses an
                    open and secure architecture to develop
                    business applications. The Product1 product
                    family consists of the following components:
                    Product1 Studio - a visual integrated development
                    environment tool for developing Java-based
                    applications in Product1 and Java. It
                    incorporates wizards and editors for creating
                    web-based applications, including construction
                    of user interface, data access and PACs. It
                    also integrates with source code control,
                    testing and deployment tools.
                    Product1 Application Server - a Java-and CORBA-
                    based server that provides state and session
                    management, built-in load balancing, processing
                    of application logic and integration with
                    external databases and enterprise systems.
                    Product1 Java Object Framework - a framework
                    of reusable Java and JavaBeans objects. A host
                    of Product1 Java classes and methods are
                    available out-of-the-box for custom development.
                    Product1 Command Center - a Java-based application
                    that provides local and remote management and
                    monitoring of the platform in real-time. This
                    management console provides control of the
                    application server, with the ability to configure
                    a range of properties for each server component
                    and the processes within them. It can also
                    distribute components across multiple systems
                    and manage multiple configurations.
                    The Product1 product family may be extended
                    through these components:
                    PAC SDK - Product1 platform that allows
                    developers to build customized Platform Adapter
                    Components (PACs) for external enterprise
                    systems.
                    PACs - Business1 provides a PAC for SAP and
                    PeopleSoft. Business1 partners deliver other
                    3rd party PACs that can be purchased from
                    partners directly.
    Internet        A family of Internet mail server products
    Mail            that securely handles mail messages in a
    Server          variety of formats. SIMS also provides a
    (SIMS)          secure JAVA Administration Console for
                    centralized and remote administration,
                    backup and restore features. SIMS is a
                    replacement for the UNIX sendmail program
                    which has been the target of frequent
                    system break-ins.
    Internet        Targeted for internet service providers,
    News            the Internet News Server is a full-featured news
    Server          server which offers user-focused interfaces,
                    streamed feeder/reader design, web-based
                    installation and administration and remote access.
                    The Internet News Server is a component of the
                    Product2 ISP Server suite.
    Forum           Workgroup collaboration tools that allow users to
                    communicate in a heterogeneous environment of
                    Business1 workstations, PCs and Macintosh
                    computers. Forum allows users to share a
                    whiteboard and applications with others and
                    seamlessly transfer files and "chat"
                    with co-workers.
    Personal        Personal WebAccess - a customizable, compact web
    WebAccess       browser for devices that run the PersonalJava
    Browser         platform. Personal Web Access is designed for
                    manufacturers who want to provide consumers with
                    an easy way to access the Web and retrieve
                    information from a variety of consumer devices,
                    including screen phones, set-top boxes, and wireless
                    hand-held devices. The browser supports common
                    internet services such as authentication, FTP,
                    applets, audio and media files.
    HotJava         HotJava Browser - a lightweight, customizable
    Browser         browser designed for OEMs and developers who
                    create web-enabled devices and applications.
    Product3        A secure, standard-based web server for
                    accessing, managing, and distributing information
                    over the Internet, extranets, or intranets.
                    Product3 supports Java servlet development and
                    network caching of web pages.
                    Product3 simplifies management of website
                    environments through delegation of administrative
                    privileges such as access rights to administer
                    meta-data components or load-balancing.
    Java            The first commercially available Java service
    Web             based on the JavaServer API framework for Java
    Server          servlets. It uses servlet technology to enable
                    server-side Java applications and provides access
                    control and security features.
                    Java Web Server provides session tracking that
                    provides a mechanism to track how people use
                    and navigate websites. It also provides remote
                    administration and logging features.
    Directory       A multi-protocol, scalable global directory for
    Server          storing information such as user definitions,
                    user profiles, network resource definitions, and
                    configuration parameters. It employs naming,
                    directory, and authentication protocols on top
                    of a shared, distributed, object repository. Users
                    and applications can use the directory to locate
                    and access information from anywhere in the
                    network.
    JavaWallet      Java Electronic Commerce Framework (JECF) is
                    Business1's new initiative to create a
                    standard, secure framework within which to
                    conduct business transactions using any
                    combination of currencies and payment
                    instruments such as credit and debit cards,
                    electronic cash and checks, and small cards.
                    The initial component of the JECF is the
                    JavaWallet, a client-side application that
                    will be distributed as a core component of
                    the Java environment. JavaWallet will allow
                    users of any Java-enabled web browser or
                    operating system to purchase goods and services
                    from JECF-compliant merchant websites.
                    JavaWallet provides a single user interface for
                    electronic transactions, secure from tampering.
                    When a consumer uses a Java-enabled browser to
                    navigate an online mall, selects goods and services
                    for purchase, he can access the JavaWallet for home
                    banking and portfolio management. The consumer
                    owns the JavaWallet that will be used to complete
                    purchases and banking transactions. The user may
                    set spending limits and can monitor spending
                    through an auditable transaction log. Privacy of
                    all data is protected through the use of encryption
                    and digital signatures.
                    Merchants offer good and services for sale on
                    the Internet using applets which adhere to the
                    JavaWallet architecture. These applets may include
                    interfaces to payment processing, security services,
                    customer profile services and database services.
                    The Java Wallet family consists of the following
                    components:
                    Java Commerce Business (JCC) - a client side
                    solution for eCommerce transactions. JCC provides
                    users with a wallet-like user interface, a database,
                    and a platform that enables a variety of payment
                    instruments and protocols.
                    Commerce JavaBeans - enables developers to write
                    components to extend JCC functionality such as
                    interfacing with payment servers and other
                    transaction protocols.
                    Gateway Security Model - allows a secure shield
                    around protected APIs and components.
    Java            A card that is embedded with either a micro-
    Card            processor and a memory chip or only a memory chip
                    with non-programmable logic. The microprocessor
                    card can add, delete, and otherwise manipulate
                    information on the card, while a memory-chip
                    card can only undertake a pre-defined operation.
    echeck          A server that allows the use of electronic checks
    Server          for transactions. Business1 echeck server verifies
                    digital signatures, processes checks according to
                    the business rules of the bank (e.g. a check over
                    $25,000 requires two signatures), returns invalid
                    checks, and settles all valid checks.
    Product4        A range of security-based hardware and software
    Product         that offers packet filtering, encryption, security
    Suite           administration, virtual private network and access
                    restriction. The Product4 Product Suite includes
                    the following components:
                    Product4 Secure Net - a complete set of products
                    designed to establish perimeter defense, secure
                    intranets, secure remote access, and secure
                    extranets including the following:
                    Product4 EFS - firewall and security server
                    software that screens network traffic as
                    defined by the organization's security policy. It
                    also acts as a high-speed encryption server to
                    protect information going over untrusted networks.
                    Product4 SPF-200 - security platform for perimeter
                    defense and electronic commerce. It provides
                    stealthing to help protect an organization from
                    Internet attacks.
                    Product4 SKIP - provides encryption and key
                    management capabilities which enables PCs,
                    workstations, and servers to achieve secure/
                    authenticated communication.
    Business1.net   A remote-access strategy and technology that
                    enables users to securely access all personalized
                    data, application and information from Java-enabled
                    browsers. Business1.net uses recently acquired
                    i-Planet's secure, remote access software.
    Calendar        Designed to manage large-scale enterprise
    Server          calendaring systems, Business1's Calendar Server
                    is integrated with Business1 Internet Mail Server
                    and provides the following features:
                    Maintenance of Personal Calendars
                    Group Scheduling
                    Calendar Security
    Product5        A web server package solution that includes third-
    Internet        party Internet and security products including the
    Server          following:
    Software        Product5 Administration Software - provides server
    Bundle          setup, configuration, and management capabilities
                    through a browser. The Product5 Internet Server can
                    be administered remotely for user access control,
                    email management, software installation and backup
                    and recovery.
                    Checkpoint FireWall-First! - firewall and security
                    software that protects data and network from
                    unauthorized access from the public Internet. It also
                    offers packet-level filtering.
                    Trend Interscan Virus Wall - virus scanning software
                    that verifies and filters out viruses in
                    communications such as files and emails that
                    interact with the Product5 Interent Server.
                    Business1 Internet Mail Server - a family of Internet
                    mail server products that securely handles mail
                    messages in a variety of formats.


Network Associates WebStalkers-First Intrusion Detection - software that provides around-the- clock monitoring and response to intrusions and misuses of a site and its files. Business2 SuiteSpot Server including Business2's Calendar, Chat, Enterprise, Messenging and Directory Servers, LiveWire Pro and Informix database. Product2 Targeted for internet service providers, ISP Business1's Product2 ISP Server provides users Serv with a bundle of platform extensions including Bundle the following: Internet Administrator - provides secure, remote management of distributed ISP services Inter Services Monitor - monitors Internet services, identifies and manages network problems Directory Services - provides a multi-protocol, global directory for storing information Host Configuration - provides ISP host configuration features including quick, repeatable installation, Product2 security configuration, intrusion detection, server process monitoring, and log file management. Product4 SKIP - provides encryption and key management capabilities which enables PCs, workstations, and servers to achieve secure/ authenticated communication Network Product2 Bandwidth Manager - a software product Management that enables efficient network resource management. Tools By preventing a small number of applications or users from consuming all available bandwidth, it ensures the quality of service to users and network availability to applications. Product6 Enterprise Manager - Business1's distributed network management foundation that manages large heterogeneous networks. Product6 Enterprise Manager supports and manages Java applications built for various network types. Product6 Site Manager & Product6 Domain Manager - offer centralized management for networks of up to 100 nodes. Product features include the following: Monitoring of events and network health for multiple local and remote environments Distribution of management data Management of file systems, print queues and user groups Balancing of management processing loads across the network Development Business1 offers a variety of development and and testing tools including the following: Testing Development Tools: Tools EmbeddedJava Application Environment JavaBeans Development Kit JavaBlend Java Compiler Complier Java Development Kit Java Dynamic Management Kit (JDMK) JavaHelp Java Management API (JMAPI) Java JIT Compiler Java SDK Java WorkShop NEOWorks Personal Java Application Environment Servlet Development Kit Product6 ASN.1 Compiler Business1 Performance Workshop Fortran Business1 Visual WorkShop C++ Business1 Workshop Teamware Testing Tools: JavaCheck Java Heap Analysis Tool JavaPureCheck JavaScope JavaSpec JavaStar JavaLoad System JavaPC Software - provides central administration Management and support for the Java platform on PC-based thin Tools client devices. JavaPC is targeted at OEMs designing thin-client devices such as transaction terminals, cash registers, kiosks and ATMs. Product2 Management Console - Java-based utility that provides views of servers on the network and application on those servers. It allows administrators to add users, hosts or applications from any client on the network. Product6 Backup - provides automated, backup, recovery and storage management services for files and applications in a wide array of systems on the network including UNIX, NetWare, Windows NT, PC or Apple Macintosh systems. It also provides centralized administration and control through a unified view. Product6 AdminSuite - suite of tools for administering distributed systems and managing user accounts, hosts, groups, administrative data, printer, file system, disk and serial ports. Product5 j Software - browser-based graphical administration tool that provides centralized administration of JavaStation network computers and Java Webtops on PCs. Product5 j provides Java technology clients with connectivity to legacy databases and applications. Business1 Product7 - host-based software used to monitor and administer tape libraries via a Java- enabled Web browser. The Library Monitor allows event logging and notification, remote diagnostics, remote configuration, and remote monitoring of library activity and status.


1.2 Business2

Business2 Communications offer a variety of server products that support the development and deployment of Internet applications. Business2 also provides applications with out-of-the-box functionality such as electronic commerce.
    Product Name/
    Directory       Product Details
    Business2       A suite of pre-built applications that run on
    Commerce        Business2's Application Server. These applications
    Product1        include buying, selling, merchandising, and
                    delivering content over the Internet:
                    ECProduct1 - Software for the integration of
                    eCommerce applications with legacy systems. It
                    provides for the sending, receiving, and encrypted
                    transmission of documents among the heterogeneous
                    systems of trading partners over the Internet.
                    SellerProduct1 - An application designed to
                    support advanced business-to-business selling
                    over the Internet. SellerProduct1 allows for
                    the enforcement of trading partner agreements
                    and business rules. SellerProduct1 provides
                    the capability to create company-specific
                    catalogs which can be set up to present
                    different products to different users
                    based upon purchase eligibility. SellerProduct1
                    includes search features, management tools, and order
                    management (including tax, shipping, and payment
                    services.)
                    BuyerProduct1 - An Internet-based corporate
                    procurement application that automates order
                    and delivery, supports complex trading
                    relationships, and allows for the exchange of
                    information via EDI or the Internet.
                    PublishingProduct1 - An application that utilizes
                    both passive and active customer profiling
                    capabilities to create targeted advertising,
                    and to deliver personalized information for
                    superior customer service. Content management
                    tools are combined with application development
                    tools to allow to host and deploy multiple sites.
                    MerchantProduct1 - An online business-to-consumer
                    merchandising solution that provides the following
                    features:
                    A single shopping cart for each customer, forms
                    filled with predefined account information, tax
                    calculation and discounts, product availability,
                    and up-to-date order status information.
                    Payment systems, catalog creation and
                    administration tools, an order management system,
                    and rapid customization of site's business
                    processes through modifiable business rules and
                    presentation templates.
                    Search capabilities, including hierarchical
                    menus, parametric searches by attribute, and
                    simple keyword searches.
                    BillerProduct1 - An Internet bill presentment
                    and payment (IBPP) solution, particularly for
                    the banking and telecommunications industries.
                    TradingProduct1 - A commerce exchange application
                    that enables trading partners of varying size
                    and technical sophistication to transact business
                    over the Internet through in-context document
                    turnaround capabilities, and customizable
                    prepackaged forms.
    Business2       A comprehensive set of components that integrates
    Product         browsing, email, web-based word processing, chat,
                    and group scheduling to allow users to
                    communicate, share, and access information.
                    Business2 Product2 includes:
                    Product3 - web browser with support for Java,
                    JavaScript, and SSL
                    Product4 - an Internet mail client.
                    Product5 - a web authoring tool.
                    Instant Product4 - enables people to communicate
                    easily and privately in real time over an
                    intranet or the Internet, either one-on-one
                    or in a group.
                    Calendar - delivers group scheduling based on
                    a scalable real-time architecture.
                    Browser Customization
                    Business2 Business Customization Kit - enables
                    Internet service providers, Internet content
                    provides, hardware OEMs, and others to create
                    customized version of Product2.
                    Business2 Mission Control Desktop - cross-
                    platform administration tools to configure,
                    deploy, centrally manage, and update Business2
                    Product2.
    Business2       A high-performance, scalable, web server software
    Enterprise      for deploying the largest-scale web sites.
    Server          Business2 Enterprise Server includes a built-in
                    search engine and supports standard security
                    and authentication. The integrated LiveWire Pro
                    software also adds content management, data access,
                    and session management capabilities.
                    Business2 also offers FastTrack Server - an entry-
                    level enterprise server with limited functionality.
    Business2       A middleware infrastructure that supports the
    Application     development and deployment of transactional,
    Server          business-critical Internet applications. Business2
                    Application Server operates with other Business2
                    products and includes the following two development
                    tools:
                    Application Builder - provides an integrated and
                    productive web development environment that enables
                    developers to rapidly deliver enterprise-class web
                    applications.
                    Extension Builder - allows corporations to develop
                    custom integration with heterogeneous systems
                    and applications across the enterprise.
    Business2       A directory server that acts as the central
    Directory       repository for customer, supplier and employee
    Server          information. Business2 Directory Server enables
                    the integration, storage and management of
                    directory information from disparate data sources.
                    It also provides security, authentication and
                    replication features.
                    A Directory Software Developer's Kit provides
                    application programming interfaces that enable
                    developers to directory-enable their applications.
    Business2       A system for caching and filtering web content,
    Proxy           log analysis, and boosting network performance.
    Server
    Business2       A calendar server that supports the scheduling
    Calend          of meetings, appointments, and resources for
    Server          thousands of users.
    Business2       A newsgroup server that provides collaboration
    Chat            services through discussion groups. Business2
    Server          Chat Server also supports the moderation of
                    content and administration of discussion groups.
    Business2       An email server that delivers messages with
    Messaging       embedded sound, graphics, video files, HTML
    Server          forms, Java applets, and desktop applications.
    Other           Business2 sells a range of products that provide
    Directory       a user and security management infrastructure
    & Security      for large-scale eCommerce, extranet, and intranet
    Products        applications.
                    Business2 Certificate Management System - issues
                    and manages digital certificates for extranet
                    and e-commerce applications.
                    Business2 Directory for Secure E-Commerce -
                    expands the capabilities of Business2 Directory
                    Server to provide additional flexibility of
                    user and security administration for large-
                    scale commerce and extranet applications.
                    Business2 Delegated Administrator - provides
                    customizable self-service administration for
                    customers and partners to manage their own
                    user and account information.
                    Business2 Meta-Directory - enables Business2
                    Directory Server to be automatically synchronized
                    with relational databases as well as network
                    operating system, messaging, and enterprise
                    resource planning system directories
                    Business2 Security Services - enables developers
                    to incorporate standard Internet security
                    technologies into applications.
    Other           Process Manager - Enables enterprises to automate
    Business2       and modify business processes such as contract
    Products        negotiation, bidding and contractor management.
                    Business2 Process Manager supports the development
                    and deployment of processes across extranets and
                    intranets, and manages them for overall efficiency
                    and precision.
                    Process Manager has four components:
                    Business2 Process Manager Builder - a visual
                    design environment for designing business
                    processes using intuitive feature such as
                    drag-and-drop functionality and pick lists.
                    Processes may be stored in Business2's
                    Directory Server.
                    Business2 Process Manager Engine - the server-
                    based engine that hosts processes designed with
                    PM Builder.
                    Business2 Process Manager Express - browser-
                    based user interface to Process Manager business
                    processes.
                    Business2 Process Manager Administrator - browser-
                    based interface for centrally managing Process
                    Manager business processes.
                    Compass Server - A profiling server that offers
                    search, browse and profiling capabilities to
                    help administrators gather and organize
                    enterprise resources scattered across intranets
                    so that users can find and retrieve information
                    more efficiently.
                    Media Server - An audio publishing, broadcasting,
                    and receiving system that enables the creation
                    and delivery of media-rich information, both
                    inside and outside the enterprise.
                    Media server includes four components:
                    Media Server - play real-time audio feeds,
                    provide on-demand access to pre-recorded
                    audio clips, and synchronize audio with
                    HTML documents, Java applets, and JavaScript
                    applications.
                    Media Proxy Server - a transparent intermediary
                    between Media Player and Media Servers which
                    provides safe passage through the firewall for
                    audio connections and operates as a reverse-
                    proxy outside a firewall.
                    Media Converter - compresses and converts
                    different audio formats.
                    Media Player - a plug-in needed to access audio
                    files or a live feed from a Media Server.


1.3 Business3

Business3 primarily provides Internet services for web users. It offers a variety of services including internet access, portal sites, links to online shopping, and chatting. Business3 offers a very limited set of Internet products as it focuses on providing Internet services.
    Product Name/
    Category        Product Details
    Business3       A software application that allows Business3 users
    NetMail         to access their Business3 mail through a standard web
                    browser without any Business3 software.
    Business3press  A web publishing tool which may be published to
                    any web server. Business3press offers the following
                    capabilities:
                    WYSIWYG editing
                    Simple interfaces of creating forms and image maps
                    Integrated browsing and editing simultaneously
                    "Check Links" function to fix broken links
                    Database interaction
                    Permission setting
                    Work archive
                    MiniWeb - site management tool that provides
                    graphical overview of website structure. It
                    provides a mechanism to save or move multiple
                    pages while maintaining appropriate links.
    Business3server A multi-threaded web and publishing server
                    that provides the following capabilities:
                    Serves HTML pages and other media files
                    Runs CGI scripts and processes server-side
                    includes
                    Platform for dynamic web applications:
                    Business3server Dynamic Pages (ADPs)
                    Supports Business3server's C and Tcl scripting
                    and APIs
                    Supports database connectivity
                    Allows users to edit content across the network
                    with Business3press or other authoring tools
                    Provides C API plug-in that can be used to serve
                    and rotate web advertisements, as on Business3's
                    site.
                    Supports simultaneous connections through multi-
                    threading and in-memory caching
                    Supports site administration tasks including
                    account management, document management
                    (automatic version control and archiving),
                    link management, and access control
                    Web-based server and page administration
                    Provides support for Art Technology Group's
                    Dynamo server
                    Business3server is used extensively on Business3's
                    sites and a number of other Internet sites including
                    the following: primehost.com, Business3.com,
                    digitalcity.com, tile.net, am.net, worldpages.com.
    Client3         A software application that provides online chatting
    Instant         capabilities, directory services for user profiles,
    Product1        and personalized news.
    Client3         A browser based upon Microsoft's Internet Explorer
    Browser         which supports common internet services such
                    as graphics, sound, meta-tags, plug-ins, security,
                    FTP, HTTP.
    Client3         A software application installed on end-user's
    Client          machines to obtain access to Business3's private
                    network. Business3 Business communicates with a
                    host in Virginia through a proprietary protocol.
    Client3         A server software that determines if a web page
    Caching         object should be cached and when it should be
    Server          check for a new version. This procedure, instituted
                    in the Business3 proxy subsystem improves the
                    performance of a website. Business3 Caching Server
                    detects images and automatically compresses them
                    for quick storage and access.


Now that the details regarding the presentation aspects have been set forth, information will be provided relating to the specific web architecture framework of the present invention. An overview of the hardware and software involved in implementation of the present invention will first be described after which the web architecture will be described in detail.

A preferred embodiment of a system in accordance with the present invention is preferably practiced in the context of a personal computer such as an IBM compatible personal computer, Apple Macintosh computer of UNIX based workstation. A representative hardware environment is depicted in FIG. 51, which illustrates a typical hardware configuration of a workstation in accordance with a preferred embodiment having a central processing unit 70, such as a microprocessor, and a number of other units interconnected via a system bus 71. The workstation shown in FIG. 51 includes a Random Access Memory (RAM) 73, Read Only Memory (ROM) 74, an I/O adapter 75 for commecting peripheral devices such as disk storage units 76 to the bus 71, a user interface adapter 78 for connecting a keyboard 79, a mouse 80, a speaker 81, a microphone 82, and/or other user interface devices such as a touch screen (not shown) to the bus 71, communication adapter 83 for connection the workstation to a communication network (e.g., a data processing network) and a display adapter 84 for connectin the bus 71 to a display device 85. The workstation typically has resident thereon an operating system such as the MICROSOFT WINDOWS NT or WINDOWS 95 Operatin System (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system, Those skilled in the art wil appreciated that the present invention may also be implemented on platforms and operating systems other than those mentioned.

A preferred embodiment is written using JAVA, C, and the C++ language and utilizes object oriented programming methodology. Object oriented programming (OOP) has become increasingly used to develop complex applications. As OOP moves toward the mainstream of software design and development, various software solutions require adaptation to make use of the benefits of OOP. A need exists for these principles of OOP to be applied to a messaging interface of an electronic messaging system such that a set of OOP classes and objects for the messaging interface can be provided.

OOP is a process of developing computer software using objects, including the steps of analyzing the problem, designing the system, and constructing the program. An object is a software package that contains both data and a collection of related structures and procedures. Since it contains both data and a collection of structures and procedures, it can be visualized as a self-sufficient component that does not require other additional structures, procedures or data to perform its specific task. OOP, therefore, views a computer program as a collection of largely autonomous components, called objects, each of which is responsible for a specific task. This concept of packaging data, structures, and procedures together in one component or module is called encapsulation.

In general, OOP components are reusable software modules which present an interface that conforms to an object model and which are accessed at run-time through a component integration architecture. A component integration architecture is a set of architecture mechanisms which allow software modules in different process spaces to utilize each others capabilities or functions. This is generally done by assuming a common component object model on which to build the architecture. It is worthwhile to differentiate between an object and a class of objects at this point. An object is a single instance of the class of objects, which is often just called a class. A class of objects can be viewed as a blueprint, from which many objects can be formed.

OOP allows the programmer to create an object that is a part of another object. For example, the object representing a piston engine is said to have a composition-relationship with the object representing a piston. In reality, a piston engine comprises a piston, valves and many other components; the fact that a piston is an element of a piston engine can be logically and semantically represented in OOP by two objects.

OOP also allows creation of an object that "depends from" another object. If there are two objects, one representing a piston engine and the other representing a piston engine wherein the piston is made of ceramic, then the relationship between the two objects is not that of composition. A ceramic piston engine does not make up a piston engine. Rather it is merely one kind of piston engine that has one more limitation than the piston engine; its piston is made of ceramic. In this case, the object representing the ceramic piston engine is called a derived object, and it inherits all of the aspects of the object representing the piston engine and adds further limitation or detail to it. The object representing the ceramic piston engine "depends from" the object representing the piston engine. The relationship between these objects is called inheritance.

When the object or class representing the ceramic piston engine inherits all of the aspects of the objects representing the piston engine, it inherits the thermal characteristics of a standard piston defined in the piston engine class. However, the ceramic piston engine object overrides these ceramic specific thermal characteristics, which are typically different from those associated with a metal piston. It skips over the original and uses new functions related to ceramic pistons. Different kinds of piston engines have different characteristics, but may have the same underlying functions associated with it (e.g., how many pistons in the engine, ignition sequences, lubrication, etc.). To access each of these functions in any piston engine object, a programmer would call the same functions with the same names, but each type of piston engine may have different/overriding implementations of functions behind the same name. This ability to hide different implementations of a function behind the same name is called polymorphism and it greatly simplifies communication among objects.

With the concepts of composition-relationship, encapsulation, inheritance and polymorphism, an object can represent just about anything in the real world. In fact, our logical perception of the reality is the only limit on determining the kinds of things that can become objects in object-oriented software. Some typical categories are as follows:

Objects can represent physical objects, such as automobiles in a traffic-flow simulation, electrical components in a circuit-design program, countries in an economics model, or aircraft in an air-traffic-control system.

Objects can represent elements of the computer-user environment such as windows, menus or graphics objects.

An object can represent an inventory, such as a personnel file or a table of the latitudes and longitudes of cities.

An object can represent user-defined data types such as time, angles, and complex numbers, or points on the plane.

With this enormous capability of an object to represent just about any logically separable matters, OOP allows the software developer to design and implement a computer program that is a model of some aspects of reality, whether that reality is a physical entity, a process, a system, or a composition of matter. Since the object can represent anything, the software developer can create an object which can be used as a component in a larger software project in the future.

If 90% of a new OOP software program consists of proven, existing components made from preexisting reusable objects, then only the remaining 10% of the new software project has to be written and tested from scratch. Since 90% already came from an inventory of extensively tested reusable objects, the potential domain from which an error could originate is 10% of the program. As a result, OOP enables software developers to build objects out of other, previously built objects.

This process closely resembles complex machinery being built out of assemblies and sub-assemblies. OOP technology, therefore, makes software engineering more like hardware engineering in that software is built from existing components, which are available to the developer as objects. All this adds up to an improved quality of the software as well as an increased speed of its development.

Programming languages are beginning to fully support the OOP principles, such as encapsulation, inheritance, polymorphism, and composition-relationship. With the advent of the C++ language, many commercial software developers have embraced OOP. C++ is an OOP language that offers a fast, machine-executable code. Furthermore, C++ is suitable for both commercial-application and systems-programming projects. For now, C++ appears to be the most popular choice among many OOP programmers, but there is a host of other OOP languages, such as Smalltalk, Common Lisp Object System (CLOS), and Eiffel. Additionally, OOP capabilities are being added to more traditional popular computer programming languages such as Pascal.

The benefits of object classes can be summarized, as follows:

Objects and their corresponding classes break down complex programming problems into many smaller, simpler problems.

Encapsulation enforces data abstraction through the organization of data into small, independent objects that can communicate with each other. Encapsulation protects the data in an object from accidental damage, but allows other objects to interact with that data by calling the object's member functions and structures.

Subclassing and inheritance make it possible to extend and modify objects through deriving new kinds of objects from the standard classes available in the system. Thus, new capabilities are created without having to start from scratch.

Polymorphism and multiple inheritance make it possible for different programmers to mix and match characteristics of many different classes and create specialized objects that can still work with related objects in predictable ways.

Class hierarchies and containment hierarchies provide a flexible mechanism for modeling real-world objects and the relationships among them.

Libraries of reusable classes are useful in many situations, but they also have some limitations. For example:

Complexity. In a complex system, the class hierarchies for related classes can become extremely confusing, with many dozens or even hundreds of classes.

Flow of control. A program written with the aid of class libraries is still responsible for the flow of control (i.e., it must control the interactions among all the objects created from a particular library). The programmer has to decide which functions to call at what times for which kinds of objects.

Duplication of effort. Although class libraries allow programmers to use and reuse many small pieces of code, each programmer puts those pieces together in a different way. Two different programmers can use the same set of class libraries to write two programs that do exactly the same thing but whose internal structure (i.e., design) may be quite different, depending on hundreds of small decisions each programmer makes along the way. Inevitably, similar pieces of code end up doing similar things in slightly different ways and do not work as well together as they should.

Class libraries are very flexible. As programs grow more complex, more programmers are forced to reinvent basic solutions to basic problems over and over again. A relatively new extension of the class library concept is to have a framework of class libraries. This framework is more complex and consists of significant collections of collaborating classes that capture both the small scale patterns and major mechanisms that implement the common requirements and design in a specific application domain. They were first developed to free application programmers from the chores involved in displaying menus, windows, dialog boxes, and other standard user interface elements for personal computers.

Frameworks also represent a change in the way programmers think about the interaction between the code they write and code written by others. In the early days of procedural programming, the programmer called libraries provided by the operating system to perform certain tasks, but basically the program executed down the page from start to finish, and the programmer was solely responsible for the flow of control. This was appropriate for printing out paychecks, calculating a mathematical table, or solving other problems with a program that executed in just one way.

The development of graphical user interfaces began to turn this procedural programming arrangement inside out. These interfaces allow the user, rather than program logic, to drive the program and decide when certain actions should be performed. Today, most personal computer software accomplishes this by means of an event loop which monitors the mouse, keyboard, and other sources of external events and calls the appropriate parts of the programmer's code according to actions that the user performs. The programmer no longer determines the order in which events occur. Instead, a program is divided into separate pieces that are called at unpredictable times and in an unpredictable order. By relinquishing control in this way to users, the developer creates a program that is much easier to use. Nevertheless, individual pieces of the program written by the developer still call libraries provided by the operating system to accomplish certain tasks, and the programmer must still determine the flow of control within each piece after it's called by the event loop. Application code still "sits on top of" the system.

Even event loop programs require programmers to write a lot of code that should not need to be written separately for every application. The concept of an application framework carries the event loop concept further. Instead of dealing with all the nuts and bolts of constructing basic menus, windows, and dialog boxes and then making these things all work together, programmers using application frameworks start with working application code and basic user interface elements in place. Subsequently, they build from there by replacing some of the generic capabilities of the framework with the specific capabilities of the intended application.

Application frameworks reduce the total amount of code that a programmer has to write from scratch. However, because the framework is really a generic application that displays windows, supports copy and paste, and so on, the programmer can also relinquish control to a greater degree than event loop programs permit. The framework code takes care of almost all event handling and flow of control, and the programmer's code is called only when the framework needs it (e.g., to create or manipulate a proprietary data structure).

A programmer writing a framework program not only relinquishes control to the user (as is also true for event loop programs), but also relinquishes the detailed flow of control within the program to the framework. This approach allows the creation of more complex systems that work together in interesting ways, as opposed to isolated programs, having custom code, being created over and over again for similar problems.

Thus, as is explained above, a framework basically is a collection of cooperating classes that make up a reusable design solution for a given problem domain. It typically includes objects that provide default behavior (e.g., for menus and windows), and programmers use it by inheriting some of that default behavior and overriding other behavior so that the framework calls application code at the appropriate times.

There are three main differences between frameworks and class libraries:

Behavior versus protocol. Class libraries are essentially collections of behaviors that you can call when you want those individual behaviors in your program. A framework, on the other hand, provides not only behavior but also the protocol or set of rules that govern the ways in which behaviors can be combined, including rules for what a programmer is supposed to provide versus what the framework provides.

Call versus override. With a class library, the code the programmer instantiates objects and calls their member functions. It's possible to instantiate and call objects in the same way with a framework (i.e., to treat the framework as a class library), but to take full advantage of a framework's reusable design, a programmer typically writes code that overrides and is called by the framework. The framework manages the flow of control among its objects. Writing a program involves dividing responsibilities among the various pieces of software that are called by the framework rather than specifying how the different pieces should work together.

Implementation versus design. With class libraries, programmers reuse only implementations, whereas with frameworks, they reuse design. A framework embodies the way a family of related programs or pieces of software work. It represents a generic design solution that can be adapted to a variety of specific problems in a given domain. For example, a single framework can embody the way a user interface works, even though two different user interfaces created with the same framework might solve quite different interface problems.

Thus, through the development of frameworks for solutions to various problems and programming tasks, significant reductions in the design and development effort for software can be achieved. A preferred embodiment of the invention utilizes HyperText Markup Language (HTML) to implement documents on the Internet together with a general-purpose secure communication protocol for a transport medium between the client and the Newco. HTTP or other protocols could be readily substituted for HTML without undue experimentation. Information on these products is available in T. Bemers-Lee, D. Connoly, "RFC 1866: Hypertext Markup Language--2.0" (November 1995); and R. Fielding, H, Frystyk, T. Bemers-Lee, J. Gettys and J. C. Mogul, "Hypertext Transfer Protocol--HTTP/1.1: HTTP Working Group Internet Draft" (May 2, 1996). HTML is a simple data format used to create hypertext documents that are portable from one platform to another. HTML documents are SGML documents with generic semantics that are appropriate for representing information from a wide range of domains. HTML has been in use by the World-Wide Web global information initiative since 1990. HTML is an application of ISO Standard 8879; 1986 Information Processing Text and Office Systems; Standard Generalized Markup Language (SGML).

To date, Web development tools have been limited in their ability to create dynamic Web applications which span from client to server and interoperate with existing computing resources. Until recently, HTML has been the dominant technology used in development of Web-based solutions. However, HTML has proven to be inadequate in the following areas:

Poor performance;

Restricted user interface capabilities;

Can only produce static Web pages;

Lack of interoperability with existing applications and data; and

Inability to scale.

Sun Microsystem's Java language solves many of the client-side problems by:

Improving performance on the client side;

Enabling the creation of dynamic, real-time Web applications; and

Providing the ability to create a wide variety of user interface components.

With Java, developers can create robust User Interface (UI) components. Custom "widgets" (e.g., real-time stock tickers, animated icons, etc.) can be created, and client-side performance is improved. Unlike HTML, Java supports the notion of client-side validation, offloading appropriate processing onto the client for improved performance. Dynamic, real-time Web pages can be created. Using the above-mentioned custom UI components, dynamic Web pages can also be created.

Sun's Java language has emerged as an industry-recognized language for "programming the Internet." Sun defines Java as: "a simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, portable, high-performance, multithreaded, dynamic, buzzword-compliant, general-purpose programming language. Java supports programming for the Internet in the form of platform-independent Java applets." Java applets are small, specialized applications that comply with Sun's Java Application Programming Interface (API) allowing developers to add "interactive content" to Web documents (e.g., simple animations, page adornments, basic games, etc.). Applets execute within a Java-compatible browser (e.g., Netscape Navigator) by copying code from the server to client. From a language standpoint, Java's core feature set is based on C++. Sun's Java literature states that Java is basically, "C++ with extensions from Objective C for more dynamic method resolution."

Another technology that provides similar function to JAVA is provided by Microsoft and ActiveX Technologies, to give developers and Web designers wherewithal to build dynamic content for the Internet and personal computers. ActiveX includes tools for developing animation, 3-D virtual reality, video and other multimedia content. The tools use Internet standards, work on multiple platforms, and are being supported by over 100 companies. The group's building blocks are called ActiveX Controls, small, fast components that enable developers to embed parts of software in hypertext markup language (HTML) pages. ActiveX Controls work with a variety of programming languages including Microsoft Visual C++, Borland Delphi, Microsoft Visual Basic programming system and, in the future, Microsoft's development tool for Java, code named "Jakarta." ActiveX Technologies also includes ActiveX Server Framework, allowing developers to create server applications. One of ordinary skill in the art readily recognizes that ActiveX could be substituted for JAVA without undue experimentation to practice the invention.

DEVELOPMENT FRAMEWORK (IDEA)

FIG. 52 is an illustration of the Integrated Development Environment Architecture (IDEA). The Integrated Development Environment Architecture provides a development environment framework and associated guidelines that reduce the effort and costs involved with designing, implementing, and maintaining an integrated development environment. IDEA takes a holistic approach to the development environment by addressing all three Business Integration components: organization, processes, and tools.

The development environment is a production environment for one or several systems development projects as well as for maintenance efforts. It requires the same attention as a similarly sized end-user execution environment.

The purpose of the development environment is to support the tasks involved in the analysis, design, construction, and maintenance of business systems, as well as the associated management processes. The environment should adequately support all the development tasks, not just the code/compile/test/debug cycle. Given this, a comprehensive framework for understanding the requirements of the development environment is be used.

Another reason for the comprehensive framework is that it is important to get the development environment right the first time. Changing the development environment when construction is fully staffed entails serious disruptions and expensive loss of productivity. Experience has shown that within the same medium- to large-size project, with the same people, moving from a poor to a good development environment, productivity is improved by a factor of ten for many tasks. The improvements come in two categories:

The elimination of redundant and non value-added tasks

The streamlining of useful tasks

While it seems intuitive that most tasks can be streamlined, the following list gives a few examples of redundant tasks that must be eliminated:

Analysis to determine how to merge the uncoordinated changes applied by two programmers to the same module

Re-entry of the source code and retesting of a module, which was accidentally deleted

Recurring discussions about "what a design packet should contain" or "what constitutes good programming style in a particular context"

Repeated design, coding, testing, and maintenance of very similar logic (for example, error handling, date conversion and manipulation, main structure of a module)

Searching for the manuals of a particular productivity tool to find information

Remigration to system test of a cycle, because the impact analysis for a change request was incomplete

Requesting support from another team (for example, environment support, information management) and waiting unnecessarily for a response

On a smaller project, these problems can be solved using a brute force approach. This becomes very expensive as the project grows, and finally impossible. A well-designed development environment becomes important as the project team reaches 20-30 people and is absolutely critical with a project size of more than 50 people.

The investment required to design, set up, and tune a comprehensive, good development and maintenance environment is typically several hundred development days. Numbers between 400 and 800 days are commonly seen, depending on the platforms, target environment complexity, amount of reuse, and size of the system being developed and maintained.

DEVELOPMENT ORGANIZATION FRAMEWORK

FIG. 53 is an illustration showing a Development Organization Framework in accordance with one embodiment of the present invention. When designing a business application, it is crucial to keep in mind the organization that will use the system. The same is true of the development environment. The development organization's size, structure, experience, and maturity should strongly influence the choice of tools and the way the tools are integrated. If this link is not understood, the benefit of tool support will be minimal in many areas, and may significantly reduce productivity.

In the same way, when a new business capability is introduced, it is crucial to keep in mind the needs for training and organizational change that which may accompany the technical change. This is also true of the development environment. When a new development environment is put in place, the developers need to learn not only how each individual tool works (for example, how to use the compiler), but also how the tools work together to support the organization as it performs well defined processes.

The Business Integration Methodology (BIM) provides valuable information on organizational issues.

Relying on the Business Integration Methodology and its project organization guidelines (0940--Organize Project Resource Task Package), the following should be prepared:

A list of responsibilities covering both responsibilities for end products and those for on-going processes

A Responsibility, Accountability, and Authority profiles deliverable (RAA) for each role in the Development team, making sure that all the responsibilities listed earlier are covered

The RAA profiles deliverable consists of statements about the responsibilities, accountability, and authority of each of the positions in the development organization. These statements define the role of each position in terms of:

Responsibility--What objectives the position is expected to accomplish

Accountability--How and by whom the performance will be measured

Authority--The position's decision-making capabilities and limits

In accordance with the IDEA Model, the following management teams with responsibilities for the key management functions are defined as:

The Information Management team 202

The Quality team 204

The Environment Management team 206

The Release Management team 208

The Configuration Management team 210

The Problem Management team 212

The Program and Project Management teams 214

The Security Management team 216

Together, these teams support the efforts of the System Building team, which is charged with the analysis, design, build, and test of the system to be developed. These teams represent real roles, and on a given program the same people may play different roles.

Security Management

The evolution of new technologies and expanded access to a virtual world has increased the security risk of conducting business. It is therefore essential to recognize the need for a new unit in the organization, specifically dedicated to ensuring that security is handled appropriately. At the Program level, the Security Management unit needs to:

Ensure all security issues are effectively addressed throughout the program (all business and IT processes).

Act as facilitator and approving body for all new and existing initiatives that contain security components.

Own responsibility for the organization and facilitation of working groups that would address security issues.

Be responsible for development and maintenance of the Security Plan.

FIG. 54 is an illustration showing a security organization according to one embodiment of the present invention. A Security Management Team may have a security management 300, under which are an administration team 302, a projects & planning team 304, and a business process security team 306. The size of the Security Management team, and the way in which it is integrated into the development organization depends on the degree to which security is a factor for each specific environment. For example, the security risks associated with an Internet-based online banking system are far greater than those of a fully isolated client/server system, and therefore warrant a larger team with broader responsibilities and greater influence.

More details about the Security Management team, and other security aspects can be found in the Security in eComerce Executive Planning and Implementation Guides to be published by Global TIS Security.

Information Management

The Information Management team is responsible for ensuring that the project's knowledge capital and information resources are managed effectively. This includes:

Ensuring integrity

Ensuring accessibility

Ensuring quality and consistency

Information Management encompasses Repository management, but generally has a broader scope than merely the repository contents, because most repositories are not capable of holding all the information resources of a project. It is, for example, common to have key project information reside in a combination of repositories, teamware databases, flat files, and paper documents. It is the Information Management team's responsibility to ensure consistency across all these formats.

The responsibilities of the Information Management team therefore cover:

Repository Management

Folder Management

Object Management

Media Content Management

Information and data reuse coordination

In addition to managing the information for the System Building team, the Information Management team must also manage the information resources of the other management processes--quality management, environment management, and project management.

In order to delineate the responsibilities of the Information Management team, it is useful to state those areas that are out of scope. The following are not included:

Performance of daily backups--this is handled by the Environment Management team

Database administration--this is part of the Architecture team responsibilities

Performance tuning of the information repositories--this is handled by Environment Management

Repository Management

The Information Management team is ultimately responsible for the contents of the repository. They need to have an intimate understanding of the repository structure and the rules that govern how different objects should be stored in the repository. Although most of the input to the repository are entered by designers, the Repository Management team must manage this population process. Rather than taking a policing role on the project, they should work as facilitators--helping the designers do things correctly the first time, thereby maintaining the integrity of the repository. Without strong repository management, the benefits of using a repository quickly diminish.

In many situations the Information Management team must make decisions that affect functional areas. To empower the Information Management team, the Application teams should include the Information Management team in relevant design discussions. This facilitates the validation of design outputs.

Folder Management

Folders (or directories) can be very useful in gaining control over the overwhelming amount of information produced on a large project. Their utility greatly increases if they are managed appropriately. This management is based on easy-to-follow, easy-to-enforce standards.

Object Management

The responsibilities involved with object management are very similar to those involved with repository management. However, in order to facilitate and promote reuse, it is recommended to have a librarian whose responsibilities include:

Reviewing designs

Packaging classes and components for reuse

Managing maintenance and upgrades of common components (a strong relationship with Configuration Management team is required)

Media Content Management

The methods of handling media content are somewhat different from those surrounding more traditional development content such as code or documentation, for this reason, a role should be defined that is responsible for the management of all media content.

Quality Management

The Quality team is responsible for defining and implementing the Quality Management Approach, which means defining what Quality means for the Program Leadership, and then implementing the procedures, standards, and tools required to ensure the delivery of a quality program. The Quality Management Approach addresses concepts such as expectation management, quality verification, process management, metrics, and continuous improvement.

Since quality is the result of the interaction of many teams working on multiple processes, the Quality team is responsible for ensuring effective cooperation between teams and good integration of the development processes. The Quality team must therefore forge strong links with all the other project teams.

It is important to note that the Quality team is not only responsible for ensuring the quality of the system building process. The Quality team is also directly involved in ensuring the quality of the other IDEA management processes.

Program & Project Management

The Program Management team is responsible for delivering business capability. In this respect, it is responsible for the System Building and other management teams.

In addition, other management responsibilities that do not have a specific team or role defined within IDEA also belong to the Program Management team. These include:

Contingency Management

Financial Management

Issue Management (decisions to be made regarding the development of the business capability,

not to be confused with problem management)

Program Performance Reporting

Resource Management

Risk Management

Vendor Management

The Project Management team is responsible for producing a deliverable or set of deliverables. As such, it is responsible for:

Planning and control of delivery

Milestones and schedule

Resource consumption

Risk and quality (at deliverable level)

Configuration Management

The Configuration Management team is responsible for defining the approach the program takes to deal with scope, change control, version control, and migration control, and for putting in place the policies, processes, and procedures required to implement this approach.

In other words, the team is responsible for maintaining the integrity of software and critical documents as they evolve through the delivery life cycle from analysis through deployment.

Release Management

Delivering a system on a release-based approach means delivering the system in a series of consecutive releases, increasing or refining functionality progressively. Some of the main drivers to such an approach include:

To release business benefits early

To mitigate impact on the organization

To keep the change program up to date

To optimize processes

To test proof of concept

To reduce risk