Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent
6615166
Guheen , ; et al.
September 2, 2003
Title
Prioritizing components of a network framework required for implementation of technology
Abstract
A system and method are provided for prioritizing components of an existing network framework. First, a plurality of components required for implementation of a predetermined technology using an existing network framework are provided. Next, a priority listing of the components is complied such that the relative position of the components on the priority listing corresponds to a temporal priority among the components. The existing network framework and the components are pictorially represented. Next, a first component of the existing network framework is indicia coded in order to indicate that the first component must be installed first based on the component's position on the priority listing. Thereafter, a second component and any remaining components of the existing network framework is indicia encoded in order to indicate that the second component and any remaining components must be installed after the first component based on the second component's position on the priority listing.
Inventors:
Guheen; Michael F.
(Tiburon,
CA
)
, Mitchell; James D.
(Manhattan Beach,
CA
)
, Barrese; James J.
(San Jose,
CA
)
Assignee:
Accenture LLP
(Palo Alto,
CA
)
Appl. No.:
321274
Filed:
May 27, 1999
Current U.S. Class:
703/27
709/220
709/223
709/231
717/140
719/316
703/26
Current International Class:
G06Q 10/00 (20060101)
Field of Search:
703/27,26 345/356,357,735,736 707/10,104 709/231,223,316,220,226 717/140,176,177 370/412
U.S. Patent Documents
4674043
June 1987
Hernandez et al.
4937863
June 1990
Robert et al.
5023907
June 1991
Johnson et al.
5204955
April 1993
Kagei et al.
5216593
June 1993
Dietrich et al.
5579222
November 1996
Bains et al.
5615312
March 1997
Kohler
5710887
January 1998
Chelliah et al.
5740549
April 1998
Reilly et al.
5745681
April 1998
Levine et al.
5752238
May 1998
Dedrick
5799151
August 1998
Hoffer
5819092
October 1998
Ferguson et al.
5826242
October 1998
Montulli
5848396
December 1998
Gerace
5870559
February 1999
Leshem et al.
5873069
February 1999
Reuhl et al.
5890137
March 1999
Koreeda
5895477
April 1999
Orr et al.
6144962
November 2000
Weinberg et al.
6208345
March 2001
Sheard et al.
6269398
July 2001
Leong et al.
6324647
November 2001
Bowman-Amuah
6332163
December 2001
Bowman-Amuah
6473794
October 2002
Guheen et al.
6519571
February 2003
Guheen et al.
6536037
March 2003
Guheen et al.
Foreign Patent Documents
6-274504
Sep., 1994
JP
Other References
Chuah, M. et al., "Information Rich Glyphs for Software Management Data", Information Visualization, pp. 24-29 (Jul./Aug. 1998). .
DiCesare, F. et al., "An Interactive Multimedia Learning Module for Manufacturing Scheduling", IEEE, pp. 770-776 (Nov. 18, 1996). .
Hawley, J. et al., "Paperless Assembly Using Touchscreen Based Graphics", IEEE/CHMT '91 IEMT Symposium, pp. 231-234 (Sep. 16, 1991). .
Imhof, K. et al., "Show It With Colors. Connectivity, Status, and Value Information in Energy Management Systems", IEEE Computer Applications in Power, pp. 11-16 (Oct. 1990)..~
Primary Examiner:
Lim; Krisna
Assistant Examiner:
Phan; Thai
Attorney, Agent or Firm:
Oppenheimer Wolff & Donnelly LLP
Claims
What is claimed is:
1. A method for prioritizing components of an existing network framework comprising the steps of: (a) providing a plurality of components required for implementation of a predetermined technology using an existing network framework; (b) compiling a priority listing of the plurality of components such that the relative position of the plurality of components on the priority listing corresponds to a temporal priority among the plurality of components, the temporal priority being indicative of the order in which the plurality of components are installed for optimal component function; (c) pictorially representing the existing network framework and the plurality of components; (d) indicia coding a first component of the existing network framework in order to indicate that the first component must be installed first based on the first component's first position on the priority listing; and (e) indicia coding a second component of the existing network framework in order to indicate that the second component must be installed after the first component based on the first component's first position and the second component's second position on the priority listing.
2. A method for prioritizing components of an existing network framework as recited in claim 1, wherein a legend is presented which defines the indicia coding with respect to the priority of the components required in the implementation of the predetermined technology.
3. A method for prioritizing components of an existing network framework as recited in claim 1, wherein the components of the existing 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.
4. A method for prioritizing components of an existing network framework as recited in claim 1, wherein the components of the existing 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.
5. A method for prioritizing components of an existing network framework as recited in claim 1, wherein the indicia coding is selected from the group of indicia coding including texture coding, color coding, and shading coding.
6. A method for prioritizing components of an existing network framework as recited in claim 1, wherein the existing network framework is a web architecture framework.
7. A computer program embodied on a computer readable medium for prioritizing components of an existing network framework comprising: (a) a code segment that provides a plurality of components required for implementation of a predetermined technology using an existing network framework; (b) a code segment that compiles a priority listing of the plurality of components such that the relative position of the plurality of components on the priority listing corresponds to a temporal priority among the plurality of components, the temporal priority being indicative of the order in which the plurality of components are installed for optimal component function; (c) a code segment that pictorially represents the existing network framework and the plurality of components; (d) a code segment that indicia codes a first component of the existing network framework in order to indicate that the first component must be installed first based on the first component's first position on the priority listing; and (e) a code segment that indicia codes a second component of the existing network framework in order to indicate that the second component must be installed after the first component based on the first component's first position and the second component's second position on the priority listing.
8. A computer program for prioritizing components of an existing network framework as recited in claim 7, wherein a legend is presented which defines the indicia coding with respect to the priority of the components required in the implementation of the predetermined technology.
9. A computer program for prioritizing components of an existing network framework as recited in claim 7, wherein the components of the existing 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.
10. A computer program for prioritizing components of an existing network framework as recited in claim 7, wherein the components of the existing 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.
11. A computer program for prioritizing components of an existing network framework as recited in claim 7, wherein the indicia coding is selected from the group of indicia coding including texture coding, color coding, and shading coding.
12. A computer program for prioritizing components of an existing network framework as recited in claim 7, wherein the existing network framework is a web architecture framework.
13. A system for prioritizing components of an existing network framework comprising: (a) logic for providing a plurality of components required for implementation of a predetermined technology using an existing network framework; (b) logic for compiling a priority listing of the plurality of components such that the relative position of the plurality of components on the priority listing corresponds to a temporal priority among the plurality of components, the temporal priority being indicative of the order in which the plurality of components are installed for optimal component function; (c) logic for pictorially representing the existing network framework and the plurality of components; (d) logic for indicia coding a first component of the existing network framework in order to indicate that the first component must be installed first based on the first component's first position on the priority listing; and (e) logic for indicia coding a second component of the existing network framework in order to indicate that the second component must be installed after the first component based on the first component's first position and the second component's second position on the priority listing.
14. A system for prioritizing components of an existing network framework as recited in claim 13, wherein a legend is presented which defines the indicia coding with respect to the priority of the components required in the implementation of the predetermined technology.
15. A system for prioritizing components of an existing network framework as recited in claim 13, wherein the components of the existing 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.
16. A system for prioritizing components of an existing network framework as recited in claim 13, wherein the components of the existing 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.
17. A system for prioritizing components of an existing network framework as recited in claim 13, wherein the indicia coding is selected from the group of indicia coding including texture coding, color coding, and shading coding.
18. A system for prioritizing components of an existing network framework as recited in claim 13, wherein the existing network framework is a web architecture framework.
Description
FIELD OF THE INVENTION
The present invention relates to conveying information regarding a web architecture framework and more particularly to demonstrating priority among components of a system that are required for implementation of technology.
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 and method are provided for prioritizing components of an existing network framework. First, a plurality of components required for implementation of a predetermined technology using an existing network framework are provided. Next, a priority listing of the components is complied such that the relative position of the components on the priority listing corresponds to a temporal priority among the components. The existing network framework and the components are pictorially represented. Next, a first component of the existing network framework is indicia coded in order to indicate that the first component must be installed first based on the component's position on the priority listing. Thereafter, a second component and any remaining components of the existing network framework is indicia encoded in order to indicate that the second component and any remaining components must be installed after the first component based on the second component's position on the priority listing.
In one aspect of the present invention, the present invention may be used to convey information regarding components of the existing 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 existing network framework may include commerce-related services, content-related services, administration-related services, customer-related services, or education-related services.
In 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 priority of the components required in the implementation of the predetermined technology.
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. 1A is a flow chart depicting multiple coding methods for conveying various information relating to a system such as web architecture framework;
FIG. 1B 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. 1B-1 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. 1C 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. 1C-1 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. 1D 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. 1D-1 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. 1E 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. 1E-1 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. 1F is a flowchart illustrating the method of comparatively analyzing network entities in accordance with one embodiment of the present invention;
FIG. 1F-1 is a flowchart providing more detail of the method of comparatively analyzing network entities in accordance with one embodiment of the present invention;
FIG. 1G is a flowchart illustrating the method for selling products in accordance with one embodiment of the present invention;
FIG. 1G-1 is a flowchart providing more detail of the method for selling products in accordance with one embodiment of the present invention;
FIG. 1H 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. 1H-1 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. 1I 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. 1I-1 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. 1J 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. 1K is a flowchart illustrating the method for planning the testing of network components in accordance with one embodiment of the present invention;
FIG. 1K-1 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. 1L is an illustration of one implementation of operations 10 and 24 of FIG. 1A;
FIG. 1L-1 is an illustration of one implementation of operations 10 and 24 of FIG. 1A;
FIG. 1M is an illustration of one implementation of operations 12, 20, 22 and 26 of FIG. 1A;
FIG. 1N is an illustration of one implementation of operations 14, 16 and 18 of FIG. 1A;
FIG. 1P is an illustration of one implementation of operations 14, 16, 18 and 30 of FIG. 1A;
FIG. 1Q is an illustration of one implementation of operation 22 of FIG. 1A;
FIG. 1R is an illustration of one implementation of operation 28 of FIG. 1A;
FIG. 1S is an illustration of one implementation of operation 28 of FIG. 1A;
FIG. 1T is an illustration of one implementation of operation 28 of FIG. 1A;
FIG. 1U is an illustration of one implementation of operation 28 of FIG. 1A;
FIG. 1V is an illustration of one implementation of operation 28 of FIG. 1A;
FIG. 1W is an illustration of one implementation of operation 28 of FIG. 1A;
FIG. 1X is an illustration of one implementation of operation 28 of FIG. 1A;
FIG. 1Y is an illustration of one implementation of operation 28 of FIG. 1A;
FIG. 1Z is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AA is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AB is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AC is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AD is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AE is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AF is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AG is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AH is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AI is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AJ is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AK is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AL is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AM is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AN is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 1AO is an illustration of an architecture diagram for one implementation of operation 28 of FIG. 1A;
FIG. 2A is a schematic diagram of a hardware implementation of one embodiment of the present invention;
FIG. 2B is an illustration of the Integrated Development Environment Architecture (IDEA).
FIG. 2C is an illustration showing a Development Organization Framework in accordance with one embodiment of the present invention;
FIG. 3 is an illustration showing a security organization functional according to one embodiment of the present invention;
FIG. 4 is an illustration showing the responsibilities of an Environmental Management Team;
FIG. 5 is an illustration showing the responsibilities of an Application Team structure;
FIG. 6 is an illustration showing a model migration plan in accordance with one embodiment of the present invention;
FIG. 7 is an illustration showing a single release capability development pipeline in accordance with one embodiment of the present invention;
FIG. 8 is an illustration showing a multiple release capability development pipeline in accordance with one embodiment of the present invention;
FIG. 9 is an illustration showing a multiple release capability development pipeline with code base synchronization among three pipelines;
FIG. 10 is an illustration showing a Development Tools Framework in accordance with one embodiment of the present invention;
FIG. 11 is an illustration showing information captured in the Repository and reused;
FIG. 12 is an illustration showing the Repository's central role in the development environment;
FIG. 13 is an illustration showing an Operational Architecture Framework in accordance with one embodiment of the present invention;
FIG. 14 is a block diagram of a Web Architecture Framework in accordance with one embodiment of the present invention;
FIG. 15 is a flowchart illustrating the commerce-related web application services in accordance with one embodiment of the present invention;
FIG. 16 is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction;
FIG. 16A is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction by comparing different products and services;
FIG. 16B 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. 17 is an illustration of one embodiment of the present invention for facilitating a virtual shopping transaction by ascertaining needs of a user;
FIG. 17A 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. 18 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. 19 is an illustration of one embodiment of the present invention for advertising in a virtual shopping environment;
FIG. 19A is an illustration of one embodiment of the present invention for advertising in a virtual shopping environment;
FIG. 20 is an illustration of yet another embodiment of the present invention;
FIG. 21 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. 21A 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. 22 is a flowchart illustrating the content channels-related web application services in accordance with one embodiment of the present invention;
FIG. 23 is a flowchart illustrating the customer relationship management-related web application services in accordance with one embodiment of the present invention;
FIG. 23A 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. 23B 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. 24 is a flowchart illustrating the content management and publishing-related web application services in accordance with one embodiment of the present invention;
FIG. 25 is a flowchart illustrating the education-related web application services in accordance with one embodiment of the present invention;
FIG. 25A 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. 25B 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. 26 is a flowchart illustrating the web customer-related web application services in accordance with one embodiment of the present invention;
FIG. 26A is a flowchart illustrating one component of the web customer-related web application services in accordance with one embodiment of the present invention;
FIG. 27 is a flowchart illustrating the security services in accordance with one embodiment of the present invention;
FIG. 28 is a flowchart illustrating the network services in accordance with one embodiment of the present invention;
FIG. 29 is a flowchart illustrating the internet services in accordance with one embodiment of the present invention;
FIG. 30 is a flowchart illustrating the client services in accordance with one embodiment of the present invention;
FIG. 31 is a flowchart illustrating the data services in accordance with one embodiment of the present invention;
FIG. 32 is a flowchart illustrating the integration capabilities in accordance with one embodiment of the present invention;
FIG. 33 is a flowchart illustrating the miscellaneous services in accordance with one embodiment of the present invention;
FIG. 34 is a flowchart illustrating the directory services in accordance with one embodiment of the present invention;
FIG. 35 is a flowchart illustrating the management and operations services in accordance with one embodiment of the present invention; and
FIG. 36 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. 1A, 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. 1L 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. 14. 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. 1L-1, 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. 1L 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. 1L 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. 1A, 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. 1M. 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. 1B, 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. 1L. 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. 1B-1. 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. 1L, is prepared, as described above in operation 32. Then, referring to FIG. 1M, 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. 1A 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. 1C. Operation 34 of FIG. 1C displays a pictorial representation of a system including a plurality of components, again, such as the pictorial representation shown in FIG. 1L. 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. 1N. 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. 1B-2. 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. 1A, 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. 1D. To accomplish this, referring to FIG. 1D-1, 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. 1D, 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. 1A. Referring to FIG. 1E, 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. 1E-1, 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. 1P, an exemplary first set of components is identified in the legend under "First Delivery". In FIG. 1P, second and third sets of components are identified in the legend under "Second Delivery" and "Third Delivery".
Operation 20 of FIG. 1A 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. 1F 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. 1L. 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. 1F-1 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. 1M 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. 1A 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. 1G, 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.
1G-1, 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. 1M shows an example of operation 22 of FIG. 1A. 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. 1Q, 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. 1A, 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. 1H. FIG. 1L 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. 1H-1, 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. 1H. 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. 1H, 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. 1H.
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. 1A, 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. 1M 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. 1I. 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. 1I-1. 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. 1A, 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. 1J. 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. 1A, 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. 1N. 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. 1K, 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. 1K-1, 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. 1A, and more particularly to FIG. 1J and FIGS. 1R-1Y, it is seen that FIG. 1R 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. 1S, 1U, and 1W are provided to illustrate the products or services offered by each individual entity.
The legends of FIGS. 1T, 1V, and 1X 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. 1T in this example, it is seen that Business 1 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. 1Y 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. 1Z through 1AO 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 (www.business1.com)
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 management of enterprise Server 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 Mail A family of Internet mail server products that securely handles mail messages Server (SIMS) in a variety of formats. SIMS also provides a 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 News Targeted for internet service providers, the Internet News Server is a full- Server featured news 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 browser for devices that WebAccess run the PersonalJava platform. Personal Web Access is designed for Browser 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 designed for OEMs Browser and developers who create web-enabled devices and applications. Product3 A secure, standards-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 Web Server The first commercially available Java service based on the JavaServer API framework for Java 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 Services A multi-protocol, scalable global directory for 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 smart 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 goods 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 Card A card that is embedded with either a microprocessor 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 Server A server that allows the use of electronic checks 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 Product A range of security-based hardware and software that offers packet filtering, Suite encryption, security 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 Server Designed to manage large-scale enterprise 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 Internet A web server package solution that includes third-party Internet and security Server Software products including the following: Bundle Product5 Administration Software -- provides server 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 VirusWall -- virus scanning software that verifies and filters out viruses in communications such as files and emails that interact with the Product5 Internet Server. Business1 Internet Mail Server -- a family of Internet mail server products that securely handles mail messages in a variety of formats. Network Associates WebStalker-First Intrusion Detection -- software that provides around-the-clock monitoring and response to intrusions and misuse 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
ISP Serv Targeted for internet service providers, Business1's Product2 ISP Server Bundle provides users with a bundle of platform extensions including the following: Internet Administrator -- provides secure, remote management of distributed ISP services Internet 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 that enables efficient Management network resource management. By preventing a small number of Tools 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 and Business1 offers a variety of development and testing tools including the Testing Tools following: Development 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 and support for the Java Management platform on PC-based thin client devices. JavaPC is targeted at OEMs Tools 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 applications 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 (www.business2.com)
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/ Category Product Details Business2 A suite of pre-built applications that run on Business2's Application Server. Commerce These applications include buying, selling, merchandising, and delivering Product1 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 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 a 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 Produc A comprehensive set of components that integrates 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 providers, hardware OEMs, and others to create customized versions 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 for deploying the largest- Enterprise Server scale web sites. 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 development and deployment of Application transactional, business-critical Internet applications. Business2 Application Server 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 Directo A directory server that acts as the central repository for customer, supplier and Server employee 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 Proxy A system for caching and filtering web content, log analysis, and boosting Server network performance. Bussiness2 Calend A calendar server that supports the scheduling of meetings, appointments, and Server resources for thousands of users. Bussiness2 Chat A newsgroup server that provides collaboration services through discussion Server groups. Business2 Chat Server also supports the moderation of content and administration of discussion groups. Bussiness2 An email server that delivers messages with embedded sound, graphics, video Messaging Server files, HTML forms, Java applets, and desktop applications. Other Directory Business2 sells a range of products that provide a user and security & Security management infrastructure 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 Bussiness2 Process Manager -- Enables enterprises to automate and modify business Products processes such as contract 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 features 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 (www.business3.com)
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 to access their Business3 NetMail 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 for creating forms and image maps Integrated browsing and editing simultaneously "Check Links" function to fix broken links Database interaction Permissions 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 Instant A software application that provides online chatting capabilities, directory Product1 services for user profiles, and personalized news. Client3 Browser A browser based upon Microsoft's Internet Explorer which supports common internet services such as graphics, sound, meta-tags, plug-ins, security, FTP, HTTP. Client3 Client A software application installed on end-user's machines to obtain access to Business3's private network. Business3 Business communicates with a host in Virginia through a proprietary protocol. Client3 Caching A server software that determines if a web page object should be cached and Server when it should be 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 or UNIX based workstation. A representative hardware environment is depicted in FIG. 2A, 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. 2A includes a Random Access Memory (RAM) 73, Read Only Memory (ROM) 74, an I/O adapter 75 for connecting 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 connecting the workstation to a communication network (e.g., a data processing network) and a display adapter 84 for connecting 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 Operating System (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system. Those skilled in the art will appreciate 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. Berners-Lee, D. Connoly, "RFC 1866: Hypertext Markup Language-2.0" (November 1995); and R. Fielding, H, Frystyk, T. Berners-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. 2B 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. 2C 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, th