United States Patent7181731
Pace , ; et al.February 20, 2007

Title

Method, system, and structure for distributing and executing software and data on different network and computer devices, platforms, and environments

Abstract

A method and system for organizing a package involving identifying an asset within an application, wherein the asset is determined by an asset boundary and the asset contains a logic/data part and an extended environment part; identifying the package within the application, wherein the package is a logical division of the application and wherein the package includes a plurality of assets; determining a package boundary identifying the scope of the package, wherein the package boundary may be determined by the asset boundary of at least one asset in the package; and organizing the package according to the package boundary, wherein the package including at least two assets.


Inventors:Pace; Charles P. (North Chittenden, VT), Pizzorni; Paolo R.  (Arlington, TX), Chen; Shuang  (Somers, NY)
Assignee:OP40, Inc. (White Plains, NY)
Appl. No.:09/947,101
Filed:September 4, 2001
PCT Pub Date:February 20, 2007

Current U.S. Class:717/136 717/177 719/328 707/10 707/102 709/203 709/218 709/250 
Current International Class:G06F 9/45 (20060101) G06F 15/16 (20060101) G06F 17/00 (20060101) G06F 9/445 (20060101)
Field of Search:717/120,136,178 707/102,103 713/1,153,165,193 709/206,316 715/513,515 719/328

U.S. Patent Documents
20020065919May 2002Taylor et al.
5692183November 1997Hapner et al.
5754841May 1998Carino, Jr.
5761380June 1998Lewis et al.
6014666January 2000Helland et al.
6026404February 2000Adunuthula et al.
6094688July 2000Mellen-Garnett et al.
6178546January 2001McIntyre
6374358April 2002Townsend
6385643May 2002Jacobs et al.
6411956June 2002Ng
6449627September 2002Baer et al.
6457065September 2002Rich et al.
6567829May 2003Ter Horst et al.
6581088June 2003Jacobs et al.
6591272July 2003Williams
6766371July 2004Hipp et al.
Foreign Patent Documents
0 924 615Jun., 1998EP
Other References
K S. Candan, W. Li, Q. Luo, W. Hsiung, D. Agrawal, "Enabling dynamic content caching for database-driven web sites", May 2001, Proceedings of the 2001 ACM Sigmod international conference on Management of data, vol. 30 Issue 2, pp. 532-543. cited by examiner .
Thomas Phan, Richard Guy, Rajive Bagrodia, "A scalable, distributed middleware service architecture to support mobile internet applications", Jul. 2001, Proceedings of the first workshop on Wireless mobile internet, pp. 27-33. cited by examiner .
Wolfgang Emmerich, "Software engineering and middleware: a roadmap", May 2000, Proceedings of the Conference on The Future of Software Engineering, ISBN:1-58113-253-0, pp. 117, 119-129. cited by examiner .
Alan W. Brown, "Large-Scale, Component-Based Development", May 2000, Prentice Hall PTR, ISBN: 0-13-088720-X, Section 3.3. cited by examiner .
A. D. Joseph, A. F. de Lespinasse, J. A. Tauber, D. K. Gifford, M. F. Kaashoek, "Rover: a toolkit for mobile information access", Dec. 1995, Proc. of the fifteenth ACM symposium on Operating systems principles, vol. 29 Issue 5, ISBN:0-89791-715-4. cited by examiner .
Aho, Sethi, and Ullman, "Compilers: Principles, Techniques, and Tools", 1986, Addison-Wesley, ISBN 0-201-10088-6, Chapter 1. cited by examiner .
"Computer Dictionary", 2002, Microsoft Press, Fifth Edition, ISBN: 0-7356-1495-4, pp. 333 and 429. cited by examiner .
"Achieving Scalability and High Availlability for E-Commerce and Other Web Applicatoins", Jun. 1999, BEA, White paper. cited by examiner .
"Versant enJin For IBM WebSphere", 1999 reprinted in 2001, Versant, White paper. cited by examiner .
McGregor et al. "Collecting Metrics for CORBA-based Distributed Systems", 1999, Empirical Software Engineering, vol. 4 , Issue 3, pp. 217-240, ISSN:1382-3256. cited by examiner .
Kazi et al. "JaViz: A client/server Java profiling tool", Jan. 2000, IBM Systems Journal, vol. 39, Issue 1, pp. 96-117, ISSN:0018-8670. cited by examiner .
Brian Fonseca, "Pioneers push app distribution options", Mar. 2001, ITworld.com, accessed and printed on Aug. 30, 2004 from <http://www.itworld.com/Net/3240/IW010312hnenabler/>. cited by exam- iner.~
Primary Examiner: Dam; Tuan
Assistant Examiner: Rutten; J. Derek
Attorney, Agent or Firm:Adler; Benjamin Aaron

Parent Case Text



PRIORITY DOCUMENTS & RELATED REFERENCES

This application claims priority to provisional U.S. Patent Application Ser. No. 60/229,685, entitled "Distributed Internet Services Provisional Filing", filed on Sep. 1, 2000 to Chen et al. which is incorporated herein by reference in its entirety. Priority is also claimed for the following documents for any matter not disclosed in provisional U.S. Patent Application Ser. No. 60/229,685 incorporated by reference above.

The following references are related to this patent application and are herein incorporated by reference in their entirety: provisional U.S. Patent Application Ser. No. 60/236,864, entitled "Distributed Internet Server" to Pace et al., filed Sep. 29, 2000; provisional U.S. Patent Application Ser. No. 60/237,179, entitled "Business Plan and Business Plan Executive Summary" to Chen et al., filed Oct. 2, 2000; provisional U.S. Patent Application Ser. No. 60/254,377, entitled "Distributed Internet Services provisional filing II" to Pace et al., filed Dec. 8, 2000; provisional U.S. Patent Application Ser. No. 60/262,288, entitled "Data Structure, Architecture, Apparatus, and Program Product Capable of Being Distributed to and Executed on Different Network Tiers and on Various Computer Platforms and Environment" to Pace et al., filed Jan. 17, 2001; U.S. patent application Ser. No. 09/947,140, entitled "Extended Environment Data Structure for Distributed Digital Assets Over Multi-tiered Computer Networks", to Pace et al., filed Sep. 4, 2001; U.S. patent application Ser. No. 09/946,410, entitled "Server System and Method for Discovering Digital Assets in Enterprise Information Systems", to Bobick et al., filed Sep. 4, 2001; U.S. patent application Ser. No. 09/947,122, entitled "Server System and Method for Exporting Digital Assets in Enterprise Information Systems", to Pace et al., filed Sep. 4, 2001; U.S. patent application Ser. No. 09/947,096, entitled "System and Method for Transactional Deployment J2EE Web Components, Enterprise Java Bean Components, and Application Data over Multi-tiered Computer Networks", to Pace et al., filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/946,980, entitled "Server System and Method for Distributing and Scheduling Modules to be Executed on Different Tiers of a Network", to Pace et al., filed Sep. 4, 2001; U.S. patent application Ser. No. 09/946,699, entitled "System and Method for Distributing Assets to Multi-Tiered Network Nodes, to Pizzorni et al. filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/946,438, entitled "Method and System for Deploying An Asset Over a Multi-Tiered Network", to Pace et al. filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/947,161, entitled "System and Method for Translating an Asset for Distribution Over Multi-Tiered Networks (Processing)" to Pace et al. filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/947,163, entitled "System and Method for Synchronizing Assets on Multi-Tiered Networks, to Pace et al. filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/947,016, entitled "Method and System for Deploying an Asset Over a Multi-Tiered Network" to Pace et al. filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/947,095, entitled "System and Method for Adjusting the Distribution of an Asset Over a Multi-Tiered Network", to Pace et al. filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/947,119, entitled "System and Method for Bridging Assets to Network Nodes on Multi-Tiered Networks", to Pace et al. filed on Sep. 4,2001; U.S. patent application Ser. No. 09/947,141, entitled "Method and System for Deploying an Asset Over a Multi-Tiered Network", to Pace et al. filed on Sep. 4, 2001, describing asset streaming; U.S. patent application Ser. No. 09/947,162, entitled "System, Method, and Data Structure for Packaging Assets for Processing and Distribution on Multi-Tiered Networks", to Bobick et al. filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/947,148, entitled System and Method for Transactional and Fault-Tolerant Distribution of Digital Assets Over Multi-Tiered Computer Networks, to Bobick et al. filed on Sep. 4, 2001; U.S. patent application Ser. No. 09/947,149, entitled "System and Method for Collaboration Using Web Browsers", to Chen et al. filed on Sep. 4, 2001; PCT Patent Application No. PCT/US2001/027232, entitled "System and Method for Collaboration Using Web Browsers", to Chen et al. filed on Aug. 31, 2001; PCT Patent Application No. PCT/US2001/027289, entitled "System, Method, Uses, Products, Program Products, and Business Methods for Distributed Internet and Distributed Network Services", to Chen et al. filed on Aug. 31, 2001; and U.S. patent application Ser. No. 09/944,062, entitled "System, Method, Uses, Products, Program Products, and Business Methods for Distributed Internet and Distributed Network Services", to Chen et al. filed on Sep. 4, 2001.

Claims


What is claimed is:
1. A method for distributing a package over a communications network, comprising the steps of: identifying an asset within an application, wherein the asset is determined by an asset boundary and the asset contains a logic/data part and an extended environment part; identifying the package within the application, wherein the package is a logical division of the application and wherein the package includes at least two assets; determining a package boundary identifying the scope of the package, wherein the package boundary may be determined by the asset boundary of at least one asset in the package; and organizing the package according to the package boundary; transforming the package to function on a target computer node, wherein the target computer node contains at least one of a different computer hardware, software, and operating environment than the computer node for which the application is designed; and distributing the package over the communications network to the target computer node.

2. The method according to claim 1, wherein the package is a subapplication of an enterprise information system application.

3. The method according to claim 1, wherein the package is a nonproprietary subapplication of an enterprise information system application.

4. The method according to claim 1, wherein the asset is at least one of a static content asset, a dynamic content asset, an entity bean asset, a session bean asset, a relational data asset, a reference data asset, an entity data asset, a performance component asset, a presentation component asset, and a transaction component asset.

5. The method according to claim 1, wherein the asset boundary includes at least one of an application programming interface, a component boundary, an Internet protocol, a logical division in a software application, at least one edge of an application program call graph for the software application, an open standard application programming interface, a proprietary standard application programming interface, and an extension framework.

6. The method according to claim 5, wherein the open standard application programming interface includes at least one of a TCP/IP library, a C library, a C++ library, a hypertext markup language, a hypertext transfer protocol, and a wireless markup language.

7. The method according to claim 5, wherein the proprietary standard application programming interface includes at least one of a component object model, a distributed component object, a call interface, a C library, and an ESQL C library.

8. The method according to claim 5, wherein the extension framework includes at least one of a script, a shell script, a batch file, a customer information control system transaction processing program, and a job control language file.

9. The method according to claim 1, wherein the package boundary includes at least one of an application programming interface, a component boundary, an Internet protocol, a logical division in a software application, at least one edge of an application program call graph for the software application, an open standard application programming interface, a proprietary standard application programming interface, and an extension framework.

10. The method according to claim 9, wherein the open standard application programming interface includes at least one of a TCP/IP library, a C library, a C++ library, a hypertext markup language, a hypertext transfer protocol, and a wireless markup language.

11. The method according to claim 9, wherein the extension framework includes at least one of a script, a shell script, a batch file, a customer information control system transaction processing program, and a job control language file.

12. The method according to claim 9, wherein the extension framework includes at least one of a script, a shell script, a batch file, a customer information control system transaction processing program, and a job control language file.

13. The method according to claim 1, wherein at least one asset in the package is a base environment.

14. The method according to claim 13, wherein the base environment includes at least one of a Web server for a static content asset; a servlet engine; an application server for an entity bean asset and a session asset; and a database management system for at least one of a reference data asset, an entity asset, and an entity bean.

15. The method according to claim 1, wherein at least one asset in the package includes at least one of a publishing agent, a subscriber agent, a caching agent, and a computational agent.

16. The method according to claim 1, wherein at least one asset in the package includes an adapter, the adapter including at least one of a discovery adapter, a versioning adapter, an export adapter, a process adapter, a target adapter, a deployment adapter, a synchronization adapter, a bridging adapter, an adjustment adapter, a streaming adapter, a quality of service adapter, and an asset packaging process.

17. The method according to claim 1, wherein the communications network is an Internet.

18. The method according to claim 1, wherein the communications network is at least one of a local area network, a metropolitan area network, a wide area network, a wireless network, a satellite network, a data network, and a public switch telephone network.

19. The method according to claim 1, wherein the at least two assets included in the package comprise: a first asset including a first logic/data part and a first extended environment part and having a first asset boundary, wherein the first asset is at least one of a relational data asset and a static content asset; and a second asset including a second logic/data part and a second extended environment part and having a second asset boundary, wherein the second asset is a presentation component asset for generating content.

20. The method according to claim 19, wherein the at least two assets included in the package further comprise: a third asset including a third logic/data part and a third extended environment part and having a third asset boundary, wherein the third asset is at least one of a transaction component asset and a static content asset.

21. The method according to claim 20, wherein the at least two assets included in the package further comprise a fourth asset including a fourth logic/data part and a fourth extended environment part and having a fourth asset boundary, wherein the fourth asset is a transaction component asset.

22. The method according to claim 21, at least one of the boundary of the first asset, the boundary of the second asset, the boundary of the third asset, and the boundary of the fourth asset defines the package boundary.

23. The method according to claim 20, wherein at least one of the boundary of the first asset, the boundary of the second asset, and the boundary of the third asset defines the package boundary.

24. The method according to claim 20, wherein the third asset is a static content asset and the third logic/data part of the third asset includes a hypertext markup language file.

25. The method according to claim 20, wherein the third asset is a static content asset and the third logic/data part of the third asset includes at least one of a JPEG file, a GIF file, an applet, a scalable vector graphics file, a portable document format file, a tag image file format file, an encapsulated postscript file, a portable network graphics file, an extended markup language file, a wireless markup language file, a bitmap file, an extended hypertext markup language file, a dynamic hypertext markup language file, a motion picture expert group file, and a static content item transferable over a hypertext transfer protocol.

26. The method according to claim 20, wherein the third extended environment part includes a Web server alias.

27. The method according to claim 19, wherein the presentation component asset is at least one of a dynamic content asset, an entity bean, and a session bean.

28. The method according to claim 19, wherein the transaction component asset is at least one of a dynamic content asset, an entity bean, a session bean a reference data, an entity data, and a naming directory.

29. The method according to claim 19, wherein the boundary of the first asset and the boundary of the second asset define the package boundary.

30. The method according to claim 19, wherein the second logic/data part includes at least one of a subsystem, a subapplication, a module, a function, a variable, a data structure, and a subapplication of an enterprise information system.

31. The method according to claim 19, wherein the second logic/data part is based on an object-oriented language and the second logic/data part includes at least one of a component, an object class, an object method, and a data member associated with the object-oriented language.

32. The method according to claim 19, wherein the first asset is a relational data asset and the first logic/data part includes at least one of a data structure, a serialized object, a file, and a set of data from at least one of a relational database, an object-oriented database, a hierarchical database, an enterprise information system, and an XML structure.

33. The method according to claim 19, wherein at least one of the first extended environment part and the second extended environment part is a subset of at least one of an enterprise information system application, a client environment, and an intermediate server environment.

34. The method according to claim 19, further comprising: a first asset interface, the first asset interface capable of enabling communication between an extended environment part of an asset and a base environment of a target computer.

35. The method according to claim 19, wherein the first asset is a reference data asset and the first logic/data part includes data based on at least one database query and the first extended environment part includes a database table schema.

36. The method according to claim 1 wherein at least one asset in the package is an entity data asset, the entity data asset containing a logic/data part and an extended environment part, wherein the logic/data part includes data based on at least one database query and the extended environment part includes a database table schema.

37. The method according to claim 1, wherein at least one asset in the package includes an asset adapter based on a CDS adapter and wherein a logic/data part of the asset includes an asset adapter class file and an extended environment part of the asset includes at least one of versioning data and licensing data.

38. The method according to claim 1, wherein at least one asset in the package is a session bean asset, a logic/data part of the session bean asset including an implementation class file and an extended environment part of the session bean asset including at least one of a stub and skeleton deployment descriptor and a naming directory entry.

39. The method according to claim 1, wherein at least one asset in the package is an entity bean asset, a logic/data part of the entity bean asset including an implementation class file based on a database query and an extended environment part of the entity bean asset including at least one of a stub and skeleton deployment descriptor and a naming directory entry.

40. The method according to claim 1, wherein at least one asset in the package is a Smalltalk asset, a logic/data part of the Smalltalk asset including a Smalltalk image.

41. The method according to claim 1, wherein at least one asset in the package is a C++ asset, a logic/data part of the C++ asset including at least one of an executable C++ file and a dynamic link library and an extended environment part of the C++ asset including at least one of a registry entry and an environment variable.

42. The method according to claim 1, wherein at least one asset in the package is a Perl asset, a logic/data part of the Perl asset including a Perl script and an extended environment part of the Perl asset including an environment variable.

43. The method according to claim 1, wherein at least one asset in the package is a music asset, a logic/data part of the music asset including an MP3 file and an extended environment part of the music asset including at least one of an album data item and a track data item.

44. The method according to claim 1, wherein at least one asset in the package is a video asset, a logic/data part of the video asset including an MPEG file and an extended environment part of the video asset including video production note.

45. The method according to claim 1, wherein at least one asset in the package structure is a document asset, a logic/data part of the document asset including a portable document format file and an extended environment part of the document asset including an authentication certificate.

46. A system for distributing a package, comprising: a first program memory; a first storage device, wherein the storage device contains at least one of the package and an application; a first processor, wherein the first processor is adapted to at least: (i) load the application into the first program memory from the first storage device; (ii) identify an asset within the application, wherein the asset is determined by an asset boundary and the asset contains a logic/data part and an extended environment part; (iii) identify the package within the application, wherein the package is a logical division of the application and wherein the package includes at least two assets; (iv) determine a package boundary identifying the scope of the package, wherein the package boundary may be determined by the asset boundary of at least one asset in the package; (v) organize the package according to the package boundary; (vi) transform the package to function on a target computer node, wherein the target computer node contains at least one of a different computer hardware, software, and operating environment than the computer node for which the application is designed; and (vii) distribute the package over the communications network to the target computer node; and a second processor, wherein the second processor is adapted to: (i) receive the transformed package from the first processor, and (ii) at least one of load the package into a second program memory and store the package on a second storage device.

Description

FIELD OF THE INVENTION

The present invention relates to the field of distributing networks, Web and server applications, systems, subsystems, applications, subapplications, components, modules, functions, over one or more computer networks.

BACKGROUND INFORMATION

Network applications have evolved over time to take on a multi-tiered client and server arrangement (i.e., architecture). Typically, one or more server computers are connected through their network interfaces by one or more networks to one or more client computers. Networks may include data networks (e.g., Internet), voice networks (e.g., Public Switched Telephone Network--"PSTN"), wired or wireless networks, and any combination of these used to communicate data, voice, programs, general content, and/or other information. Networks may be local to a company or organization, such as a Local Area Network ("LAN") and an intranet, or they may expand over large geographic areas, such as a Wide Area Network ("WAN"), that may even interconnect other networks. One widely used and developing network is the Internet, which includes the World Wide Web ("WWW"). The "WWW" uses Web browser software running on the client computers of the network to execute certain Web-based applications. These Web-based applications may include pages that are served from one or more of the Web servers on the WWW in HyperText Markup Language ("HTML") format.

Many applications on the Internet, and other network environments, use a module or modules of software called "middleware". Broadly, middleware can be any computer software function that is performed between a client and a host system such as a database server and a Web server. However, middleware typically runs on servers that operate between the clients and other servers in a network. For example, these other servers may include an Oracle.RTM. Database, IBM.RTM. DB2 and IBM.RTM. CICS server. Middleware is often used to execute certain computer programs which are meant to off load processing from these other servers, to preprocess information for client computers, and/or to perform a set of functions or services that are commonly needed for certain kinds of applications. Some examples of functions or services that are typically performed by "middleware" would be transaction monitoring and coordination, server load-balancing, host fail-over and other application level services.

A typical Enterprise Information System ("EIS") is comprised of client computers, middleware servers, and database servers. Web servers are included within the EIS when Web browser based clients must be served via the Internet/Intranet. EIS's are generally known and may include application programs that perform the functions required by any given business and/or organization. For example, an EIS may include, inter alia: online customer order entry systems; online retail/wholesale sales, marketing, and inventory systems; enterprise supply chain management systems; product and/or content distribution systems (e.g. television, home video); online financial systems (e.g., mortgage applications, investing, stock trading, loan application, and credit card accounts); service providing systems (including medical, legal, real estate, engineering, education, distance leaning, and technical support); online human resource and payroll services; online banking systems (e.g., deployed by a bank or other financial institutions and/or the retail banking systems used internally by bank personnel); airline reservation systems; and any other general way of transacting business over a network.

Often these functions/application programs are made of parts. For example, an application program can be made of components, modules, or functions (see discussion of FIG. 1F below), which in turn are made of objects. The component, module or function may also include either an expressed or implied order in which to execute the respective objects in the component, module, or function. This order can be shown or defined by an execution graph. Restated, the execution graph may be implied by the "calling structure" of the program.

Execution of one or more of these components, modules, functions and/or entire applications can be performed at various locations over a network. This well known type of program execution is called distributed programming. One primary advantage of distributed programming is to more efficiently utilize the distributed computing resources over the network to achieve improved performance. Performance can be gauged using certain criteria such as execution time, and controlled using certain middleware applications such as fault-tolerance and load balancing. Important computing resources such as CPUs, network bandwidth, software functions and data storage must be well managed in order to achieve customary and generally known system requirements usually referred to as reliability, availability and scalability ("RAS").

Distributed computing can allow programs to run faster because the work of the program is divided among multiple computer systems. Also, specific tasks in the program can be executed on a computer that has the facilities to best execute these tasks. For example, a mathematically intensive task could be run on a computer that has a particularly fast processor for executing mathematical problems and application programs that support a large variety of mathematical functions.

However, distributed programming often fails if the communication among the processors involved gets too complicated. Programs have to be developed and installed to insure that data among the processors is coherent. Some systems cannot tolerate noise or spurious signals on the network. Delays in receiving data from one or more processors could slow the entire system. In order to be distributed, application programs must be written so that tasks can be broken apart and the results of these tasks accurately combined. This often greatly adds to project development costs, assuming that these objectives can be accomplished at all. Communication between the various computers on the network and the programs/protocols the computers are using must be compatible.

Often the network is thought of as being divided into tiers where each of these components, modules, or functions is executed. These tiers are commonly divided by functional (or logical) and/or physical computing levels or sub-tiers. The advantage of dividing the network application system into multiple tiers is to facilitate the development and deployment of the various computing resources. Some times tiers are thought of as physical locations where components, modules, or functions of programs are executed. For example, some components, modules or functions can be executed on the EIS tier or middleware tier, while other components, modules, or functions are executed on the client computers (the client tier). Alternatively, tiers of the network can be divided logically, such as on a small human resource system, where the client and server part of the components, modules, or functions are all on one computer, but logically the components, modules, or functions are still developed and deployed based on the client and the server tier being separate tiers.

Network tiers can also be combinations of physical and logical tiers. For example, take an online banking system that is comprised of a client computer, middleware servers, and various backend database systems. Suppose the client, middleware and database systems are physically separate computer systems (tiers). The middleware tier may be subdivided into logical tiers such as a Web server, an application server, and a transaction server tier.

In much of the existing middleware, objects used are highly interdependent and defined by the function(s) of the middleware. Some well-known middleware objects include: Sun Microsystem's Java Server Page.TM. ("JSP") and Enterprise Java Bean.TM. ("EJB"). The JSP object executes programs, based on requests from one or more clients. The EJB object executes certain programs that are pre-packaged into an "Enterprise Java Bean" format. Other objects may include, for example, general data files, general programs, and general multimedia content files (e.g., text, video, sound, and voice content).

It is often necessary for various servers and clients to communicate even though they may have different runtime environments (i.e., are running different application programs such as middleware) and are running on different platforms (i.e., have different hardware and operating systems). Generally, servers and clients communicate using well-known protocols like HyperText Transfer Protocol ("HTTP") over TCP/IP. Other network communication protocols include Internet Interoperable Protocol ("IIOP") that permits communication between different computer platforms over a network. One example of a technology that uses IIOP would be the Common Object Request Broker Architecture.TM. ("CORBA"). At a high-level CORBA specifies many standards involving application level communication among disparate applications and computing platforms.

The prior art discloses some "open" architectures that permit programmers to develop code that will have general use in a networking environment. Some of these architectures permit communication between programs executing on different systems, different platforms or environments, and even using different programming languages over the network (and network tiers.) An open architecture encourages development of applications that can be used generally with a flexibility to interact with any other architecture based program (component, module, function or object) without regard to what, where, or on what system the other application parts exist or execute.

One such open architecture system is called JINI.TM.. JINI uses Java.TM. technology to wrap these otherwise incompatible programs, particularly driver programs for input/output devices so that these devices can be plugged into a JINI compatible network and operate and communicate with any other device on the network. For example, JINI can be used to permit any pervasive device on a wireless network to communicate with any other JINI compatible pervasive device that comes within the communication range of the wireless network.

FIGS. 1A 1E discussed below are each a block diagram illustrating a prior art middleware computer platform.

FIG. 1A is a block diagram illustrating a general middleware computer system 160 with well-known computer hardware 100, a general network operating system 102 (e.g., Microsoft Windows NT.TM.), a middleware platform 104 (e.g., Microsoft.RTM. Commerce Server), a transactional operating system 106 (e.g., Microsoft.RTM. Transaction Server--"MTS"), and a given application program 108 (e.g., an online ticketing sales application).

FIG. 1B is a block diagram illustrating a generally known Java middleware platform 170 that has computer hardware 100 and a network operating system 102. A middleware platform which supports Enterprise Java Beans.TM. ("EJB") 114 runs on the network operating system 102 that allows Java application programs 118 to run on the system 170.

FIG. 1C is a block diagram illustrating a generally known CORBA middleware platform 180 that has computer hardware 100 and a network operating system 102. The CORBA middleware platform 124 permits general application programs 120 to operate on this platform. For example, these application programs 120 may include Java.TM., C++, COBOL, and Smalltalk programs.

FIG. 1D is a block diagram illustrating a generally known Windows middleware system 190 that operates on Windows.RTM. compatible hardware 100. A Windows.RTM. DNS (COM/MTS) or MTS system is a middleware system 134 available from the Microsoft Corporation that permits general application program 120 to run on the platform 190.

FIG. 1E is a block diagram illustrating a generally known system 195 that uses hardware 100, a network operating system 102, and a middleware program 144 called TUXEDO.TM. (made by BEA Systems, Inc). This platform 195 runs application programs
146 written in the C programming language.

FIG. 1F is a diagram showing a prior art hierarchical relationship among system and application parts. The largest part is a system 105F that contain one or more complete applications 108. The system 105F also can contain one or more subsystems
106F that each in turn may include one or more applications 108. The application 108 is a group of one or more computer programs. Subapplications 110F are parts of applications 108. Some applications 108 and/or subapplications 110F may include one or more components 120F.

A component 120F may exist at a some significant layer within an application 108. A component 120F may be part of a distributed system that interacts with its environment by exchanging message/information with other components 120F and/or applications (108, 110F). Components 120F may include runnable (i.e., executable) and non-runnable parts. The runnable/executable parts of components 120F are generally called modules 130. Modules 130 in turn comprise one or more functions 140F also known as routines 140F or methods 140F.

Middleware, and for that matter, other prior art programs that function in a network environment, often need to communicate information between logical and/or physical functions in the network. For example, data or programs (e.g. objects) might need to be passed to a program or component, module, or function executing on the same machine as the application program. On the other hand, this information might have to be passed across the network to components, modules, functions, subapplications, or applications that are running on completely different computers. The prior art has various ways of addressing this problem. Some prior art passes information "by value" between components, modules, functions or applications. Thus, information needed is passed, e.g. in a "call statement" or header file to the component, module, function or application requiring the information. Other information, such as the results from a calculation, can be passed back in a same manner. Other prior art uses replication to pass information. In replication, programs and data are copied from one machine (computer) to a second machine where they are executed in an "island" mode.

Some prior art (e.g. Castanet.TM.) is able to package and deploy business applications to computers over the network. Other prior art includes content distribution systems (e.g., those marketed by Akamai, Inc.) that physically locate caching servers throughout the world to cache content from Web sites and provide more local delivery to end user (clients). Similar systems include Digital Island, Ltd's global distribution network, called Footprint, that pushes certain application content through the network to servers located closer to the end-user. Inktomi Traffic Server.TM. is a network cache platform from Inktomi Inc. that delivers certain application content to servers across the network.

Several terms and concepts are defined in the prior art of software analysis, design, and programming languages. Software systems can be composed of one or more applications. These applications can be assembled from one or more components, modules, functions or objects.

In software written using object-oriented techniques, many modules further have a one-to-one correspondence with a class in the particular object-oriented language. A class or set of classes may also be considered a component if the class or set of classes meets the requirements of a specified component system. Examples of component systems are: COM, CORBA, EJB, ActiveX.RTM., XPCOM, and Java Beans.TM..

Classes may be composed of one or more functions or procedures optionally coupled along with one or more variables. The functions or procedures are generally referred to as methods, while the variables are generally referred to as data members.

At runtime, classes are instantiated into objects, which are distinct entities, separate from the definition of the object, that is, the class. The data members represent the data or state of the object. The methods characterize the behavior of the object.

Build systems transform collections of non-runnable computer files into runnable computer modules and assembles them into components and applications. Build systems cannot identify or export required digital assets (hereinafter also termed assets) on an existing Enterprise Information System ("EIS"). Build systems also cannot identify runtime execution and data dependencies in previously installed EIS applications. Build systems generally contain incremental linkers which establish runtime relationships among modules of object code and are an improvement over regular linkers because they re-link only changed modules on command.

Archive utilities (e.g., archive utilities generating Zip, Gzip, and Tar archive files) are used for distributing and storing files. These files may contain one or more program and data files. Usually the archive files are compressed to save space. Archive files make it easy to group files and make transporting and copying these files faster. Typically, archive utilities examine the file types of the files to be zipped and invoke a file type specific compression subroutine to compress the file and add it to the archive.

Other types of software examine computer files and invoke rules based on file type to achieve specific results. Specifically, virus scan software will examine executable programs and based on one or more rules, determine whether there is a virus in the executable routine of the program. Virus scan software (e.g., McAfee virus software) can not be used and is not meant to be used to discover particular software, package the software, and then distribute the software over a network.

Software which may be classified as "enhanced" build systems (e.g., Starbase) control versioning of code and static elements of software products during development, as well as deployment of the completed products of development using various transport mechanisms to destination user computing platforms. Such enhanced build systems are designed to control and deploy only work in progress, ancillary products, and the completed products of development, and the inventory of code, static, and ancillary elements managed by such systems is rigorously constrained and must be rigorously constrained to those purposes. Such enhanced build systems cannot be used and are not meant to be used to discover particular software, package the software, and then distribute the software over the Internet.

The prior art also discloses specifications for deployment of Web components (particularly J2EE Web components), Enterprise Java Bean.TM. ("EJB") components, and J2EE application data. The J2EE specification provides methods of transactional deployment of J2EE Web and EJB components to application server products that otherwise comply with the J2EE specification. There is no provision in the J2EE specification for transactional deployment of J2EE application data.

Using different computing environments and platforms creates many communication and operability problems on the network. For example, many computing environments (including middleware environments) only can operate with programs with which they are specifically designed to operate. Much of the prior art is unable to communicate or share information or programs with any general platform or computing environments. Much of the prior art cannot distribute programs and/or data over one or more networks so that the programs can be executed and the data used on any given platform or environment. Where this distribution occurs, it is only possible with the expenditure of considerable resources and highly trained system designers.

The prior art does not solve the need to be able to distribute data, programs, and portions of programs in a more efficient way over various tiers of a network to operate on any general platform or environment.

Another variation of this problem involves the explanation of middleware's intra-tier distribution versus inter-tier distribution. Middleware application servers are targeted at defining tiers of functionality. These tiers may scale within the tier, but not necessarily utilizing the processing power available in other tiers.

Much of the prior art middleware is constrained. Typically, middleware is only used with a particular EIS and is designed specifically for that EIS's platform and environment. Often this middleware operates in local area networks with 10/100
megabits of bandwidth or less. Most of this middleware cannot effectively function in a wide area network environment, or on the Internet, where bandwidth capabilities are often more restrictive. This middleware cannot communicate with computer systems that do not use the same communication protocols for which the middleware was designed.

Much of the middleware typically operates between the EIS Web server and the EIS database management system ("DBMS"). The result is that the performance of the middleware is limited by the performance of the EIS Web server and/or the EIS DBMS.

Much of the middleware does not work with components, modules or functions that are designed to execute on a platform/environment different than that of the EIS for which the middleware was designed. Therefore, this middleware can't organize, schedule, and/or distribute applications outside of the EIS. This prior art middleware cannot enable the execution of any general component, module, function, and/or application program to be executed on any general computer with any general platform/environment, nor does this middleware suggest how this might be done. The prior art middleware cannot distribute application programs and/or components, modules or functions for execution over different tiers of a network, nor has the prior art recognized the need to do this.

Some prior art architectures (e.g., JINI) permit communication between computers with different platforms/environments. However, much of this communication is used to enable standard interface functions like print, read data, etc. These architectures are not capable of decomposing complex application programs, of the sort found on an EIS, and recomposing these application programs so that they can be executed on any given platform. These prior art architectures cannot organize, schedule, and/or distribute application programs and/or components, modules, or functions across many tiers of a network so that these application programs/components, modules or functions can be executed on any general platform/environment.

Much of the prior art cannot automatically identify and extract subapplications, components, modules, functions, and specific files and data structures from legacy programs located on an EIS in order to export these application parts to other machines connected to the EIS through one or more networks. In addition, the prior art generally fails to identify these application parts by type so that the application parts can be processed in such a manner to include the necessary information and structures particular to the type so that the application part can be transformed and/or executed on various tiers of the network.

SUMMARY OF THE INVENTION

An exemplary embodiment of a component distribution server (CDS) system according to the present invention, connected to at least one network through at least one respective network interface, includes: a package specification process that receives at least one package, the packages being subparts of at least one application program from at least one enterprise information system (EIS), the packages having at least one asset, each asset having an asset type and at least two asset layers, a first asset layer being a logic/data layer and a second asset layer being an extended environment layer, the logic/data layer having information that includes a function of the asset and the extended environment layer being a subset of the EIS and having portions of the EIS necessary to support the respective logic/data layer; a process adapter process that translates at least one of the asset layers so that the asset performs the asset function on at least one target base environment of at least one target computer; and a target process that changes the at least one of the layers of the asset in order to provide specific information for at least one of the specific target computers, whereby a transformed asset is an asset that is translated by the process adapter process and changed by the target process.

An exemplary method executed by a computer server connected to at least one network according to the present invention includes the steps of: receiving at least one package from at least one enterprise information system (EIS), the packages being subparts of at least one application program, the packages having at least one asset, each asset having an asset type and at least two asset layers, a first asset layer being a logic/data layer and a second asset layer being an extended environment layer, the logic/data layer having information that includes a function of the asset and the extended environment layer being a subset of the EIS and having portions of the EIS necessary to support the respective logic/data layer; translating at least one of the asset layers so that the asset can perform the asset function on at least one target base environment of at least one target computer; and changing at least one of the layers of the asset in order to provide specific information for at least one specific target computer.

An exemplary embodiment of a computer server according to the present invention includes: an arrangement configured to receive at least one package from at least one enterprise information system (EIS), the packages being subparts of at least one application program, the packages having at least one asset, each asset having an asset type and at least two asset layers, a first asset layer being a logic/data layer and a second asset layer being an extended environment layer, the logic/data layer having information that includes a function of the asset and the extended environment layer being a subset of the EIS and having portions of the EIS necessary to support the respective logic/data layer; an arrangement configured to translate at least one of the asset layers so that the asset can perform the asset function on at least one target base environment of at least one target computer; and an arrangement configured to change at least one of the layers of the asset in order to provide specific information for at least one specific target computer.

In an exemplary embodiment of a computer memory storage device storing a computer program according to the present invention, the computer program includes the steps of: receiving at least one package from at least one enterprise information system (EIS), the packages being subparts of at least one application program, the packages having at least one asset, each asset having an asset type and at least two asset layers, a first asset layer being a logic/data layer and a second asset layer being an extended environment layer, the logic/data layer having information that includes a function of the asset and the extended environment layer being a subset of the EIS and having portions of the EIS necessary to support the respective logic/data layer; translating at least one of the asset layers so that the asset can perform the asset function on at least one target base environment of at least one target computer; and changing at least one of the layers of the asset in order to provide specific information for at least one specific target computer.

An exemplary method and/or exemplary embodiment of the present invention provides an improved system and method for extracting and exporting digital assets of an EIS so that EIS systems, sub systems, applications, sub applications, components, modules, or functions, and/or objects can be packaged, distributed, deployed, executed, synchronized, and/or managed through a lifecycle over a multi-tiered network. Another exemplary method and/or exemplary embodiment of the present invention provides an improved system and method for extracting and exporting as a means of distributing, deploying, and/or executing web applications, components, modules or functions and/or objects over the Internet. Another exemplary method and/or embodiment of the present invention provides an improved system and method for extracting and exporting types of digital assets that are extracted from one or more EIS/source and identifying those digital assets according to their respective type so that the digital asset can be exported, e.g., in packages, from the EIS/source to be distributed, deployed, executed, synchronized, and/or managed through a lifecycle over tiers of the network. Another exemplary method and/or embodiment of the present invention provides a system, method, article of manufacture, and a computer program product that locates and categorizes identified member objects of one or more computer system parts in an Enterprise Information System (EIS) or other sources for export to either a packaging process or to another computer system over tiers of one or more networks. The exemplary method and/or embodiment begins by traversing an intermediate representation of one or more parts of a computer system while applying one or more context rules to determine a context of the parts. The context may be either a standard specified context or a non-specified context. If a standard specified context is determined, a directed search is performed to acquire any of the set of runnable and/or non-runnable member objects in one or more locations in an Enterprise Information System (EIS) or other sources as identified in the intermediate representation and specified by the context. If a non-specified context is determined, an implicit traversal search is performed for any of the set of runnable and/or non-runnable member objects in one or more locations in an Enterprise Information System (EIS)/source identified in the intermediate representation. One or more of the set of runnable and/or non-runnable member objects are then accessed at their respective locations in the EIS/source. A preliminary package specification may be made for the accessed set of the runnable and/or non-runnable member objects. Digital assets in an asset inventory that correspond to the respective runnable and non-runnable member objects, may be listed in the preliminary package specification and updated by adding one or more export descriptors to the extended environment of the respective digital assets. In another exemplary method and/or embodiment, one or more entries in an asset definition data structure corresponding to each of the respective digital assets are updated. An exemplary embodiment and/or exemplary method of the present invention provide a computer system and a method for transactional deployment of one or more components over a multi-tier network, which computer system has one or more J2EE application server programs which are stored on one or more memories of the system and which are executed by one or more central processing units (CPUs). One or more J2EE applications can be executed on the J2EE application servers, and one or more J2EE application containers are contained within each J2EE application server. In turn, each J2EE application container contains one or more J2EE application container components, and one or more Java EJB containers or Java web containers are contained within each J2EE application container. One or more J2EE components are delivered to the J2EE application server over one or more tiers of the network. There are one or more logical connections to one or more databases located on the network. The at least one J2EE application server program, the at least one J2EE application, the at least one J2EE application container, the at least one J2EE application container component, the at least one delivered J2EE component and the logical connection define a sphere of control managing a transactional deployment of the at least one delivered J2EE component and an update of the database to keep the data consistent with the J2EE application. In accordance with the exemplary method of the present invention, the sphere of control achieves the steps of: accessing the database; initiating a deployment of a latest version of a data object to the database; determining whether the deployment of the data object is successful; deploying at least one file containing a latest version of the delivered J2EE component into the at least one J2EE application container; and determining whether the latest version of the delivered J2EE component is successfully deployed into the at least one J2EE application container. In addition, a previous version or the latest version of the delivered J2EE component is stored for rollback in case of subsequent deployment failures involving the data object and/or the delivered J2EE component. Furthermore, the previous version of delivered J2EE component and a previous version of the data object are discarded only if both the deployment of the latest version of the data object and the deployment of the latest version of the delivered J2EE component into the J2EE application container are successful. An exemplary method and/or exemplary embodiment of the present invention provides for bridging assets over a multi-tiered network. An asset may represent network and/or application components (e.g., data, objects, applications, program modules, etc.) that may be distributed among the various resources of the network. Generally, communications can be maintained between executable assets residing on different network nodes by bridging the execution context of the two nodes. In an embodiment, a mapping layer can be generated for assets that have run-time dependencies; the mapping layer uses a distribution system to bridge the execution context of a first environment with that of a second environment. The asset executing in the first environment is able to access another resource located in the second environment, even though the asset does not have local access to the resource in the second environment. A fault is detected when at least one asset deployed on a local node attempts to access at least one resource on a remote node through an application programming interface. The fault is then be handled appropriately. An exemplary method and/or exemplary embodiment of the present invention distributes an asset to a multi-tiered network node. An asset may represent network and/or application components (e.g., data, objects, applications, program modules, etc.) that may be distributed among the various resources of the network. In an embodiment, a pending notice is received from a distribution server. If the notice indicates that at least one asset is pending (i.e., awaiting deployment), an asset descriptor manifest is received from the distribution server. The asset descriptor manifest identifies at least one asset to be deployed to the node, and includes an offset associated with the asset identifier. The asset descriptor manifest is stored in a memory on the node. A fragment, associated with the asset, is received and stored in the memory. The offset associated with the asset is marked with the end of the fragment, and another fragment, beginning at the offset, is then received. Additional fragments are received, and the offset updated, until the entire asset is deployed to the node. In an alternative embodiment, the entire asset is received in the first fragment. In another embodiment, multiple assets are received in the first fragment. The present invention provides a system and method for translating an asset for distribution to a multi-tiered network node. An asset may represent network and/or application components (e.g., data, objects, applications, program modules, etc.) that may be distributed among the various resources of the network. In an embodiment, an asset has a logic/data section and an extended environment section. The logic/data section defines a function of the digital asset along with the asset's type, while the extended environment section supports the function of the logic/data section within at least one source environment. The asset type is determined and a process asset adapter, associated with the asset type and a target environment, is selected. The asset is then translated into a processed asset having a processed extended environment section supporting the function of the logic/data section in the target environment. An exemplary method and/or exemplary embodiment of the present invention synchronizes an asset over a multi-tiered network. An asset may represent network and/or application components (e.g., data, objects, applications, program modules, etc.) that may be distributed among the various resources of the network. Synchronization addresses the restoration of asset coherency in a distributed system, i.e. bringing changes made to assets on one distributed node into harmonization with changes made to assets on another distributed node. In an embodiment, a synchronization call having a data argument and an asset type is received, an adapter associated with the asset type is selected, and the data argument is passed to the adapter. The asset type is determined, as well as a table associated with the asset type. A synchronization information object is retrieved from a target environment on a target node, and a synchronization asset is created based on the synchronization information. A connection is established between the target node and the asset's original source node, and the synchronization asset is sent from the target node to the source node. One embodiment of the present invention is a method for distributing changes to digital assets across a network. The method includes determining an asset type of a first digital asset and comparing the first digital asset to a prior digital asset to determine one or more deltas, the prior digital asset being a prior version of the first digital asset and the delta being a difference between the first digital asset and the prior digital asset. The method further includes evaluating the one or more of the deltas with one or more criteria to determine if the one or more delta assets should be created, the delta asset being a second digital asset containing the respective delta, the criteria determined by the asset type. The method further includes that if the delta meets the criteria, creating the delta asset, and marking the delta asset as a first delta asset of the first digital asset. One embodiment of the present invention is a method of operating a computer system for targeting one or more digital assets on a distribution server connected to one or more networks so that the digital assets are compatible with one or more target nodes connected to the networks. The method includes examining the one or more digital assets to determine an asset type of the digital asset and, if the asset type is Relational Data (RD), retrieving one or more where clauses of the digital asset. The method further includes executing a token replacement operation on the where clause to create a transformed where clause and running a query on one or more tables specified in the digital asset using the transformed where clause, the query returning one or more returned records and the returned records correlating with the target node. The method further includes storing the returned record in the digital asset. An exemplary embodiment of a system for distributing at least one infrastructure description record (IDR) over at least one tier of a network according to the present invention includes at least one network interface that receives the infrastructure description records (IDRs) and the IDRs being enqueued on at least one incoming, transactional, persistent queue (ITPQ), at least one transactional, persistent store, and at least one transactional process that dequeues the IDR from the ITPQ and accesses the IDR to create an accessed IDR, the accessed IDR being stored in the transactional, persistent store in the system.

An exemplary embodiment of a system that includes a transactional unit of work (TUW) for distributing at least one infrastructure description record (IDR) over at least one tier of a network according to the present invention includes at least one incoming, transactional, persistent queue (ITPQ), at least one first transactional, persistent store, and at least one first transactional process that stores the IDR in the first transactional, persistent store in the system, and produces the IDR by sending the IDR from the transactional, persistent store through the network interface over the network.

An exemplary embodiment of a system that includes a transactional unit of work (TUW) for distributing at least one digital asset over at least one tier of a network according to the present invention includes at least one incoming, transactional, persistent queue (ITPQ), at least one first transactional, persistent store, and at least one first transactional process that stores the digital assets in the first transactional, persistent store in the system, and produces the digital asset by sending the digital asset from the transactional, persistent store through the network interface over the network, the digital assets having a Logic/Data (LD) section and an Extended Environment (EE) section.

An example embodiment of a transactional unit of work chain (TCHAIN) of at least two transactional units of work (TUW) for transactional and fault-tolerant distribution of at least one infrastructure description record (IDR) over at least one tier of a network according to the present invention includes:

a first TUW including:

at least one first incoming, transactional, persistent queue (ITPQ);

at least one first transactional, persistent stores;

at least one first network interface that consumes the infrastructure description records (IDRs) by receiving the IDR and enqueuing the IDR on the first incoming, transactional, persistent queue (ITPQ); and

at least one first transactional process that dequeues the IDR from the first ITPQ, accesses the IDR to create an accessed IDR, stores the accessed IDR in the first transactional, persistent store in the system, and produces the accessed IDR by sending the accessed IDR from the first transactional, persistent store through the first network interface over the network; and

a second TUW including:

at least one second incoming, transactional, persistent queue (ITPQ);

at least one second transactional, persistent store;

at least one second network interface that consumes the accessed IDR by receiving the accessed IDR from the first TUW and enqueuing the accessed IDR on the second incoming, transactional, persistent queues (ITPQ); and

at least one second transactional process that dequeues the IDR from the second ITPQ, accesses the IDR to create a second accessed IDR, stores the second accessed IDR in the second transactional, persistent store in the system, and produces the second accessed IDR by sending the second accessed IDR from the second transactional, persistent store through the second network interface over the network.

An exemplary embodiment of a transactional unit of work matrix (TMATRIX) for transactional and fault-tolerant distribution of at least one infrastructure description record (IDR) and at least one digital asset over at least one tier of a network according to the present invention includes:

a first TUW including:

at least one first incoming, transactional, persistent queue (ITPQ);

at least one first transactional, persistent store;

at least one first network interface that consumes the infrastructure description records (IDRs) by receiving the IDR and enqueuing the IDR on the first incoming, transactional, persistent queues (ITPQ), and consumes the digital assets by receiving the digital assets and enqueuing the digital assets on the first incoming, transactional, persistent queues (ITPQ); and

at least one first transactional process that dequeues the IDR from the first ITPQ, accesses the IDR to create a first IDR, stores the first IDR in the first transactional, persistent store in the system, and produces the first IDR by sending the first IDR from the first transactional, persistent store through the first network interface over the network, and the first transactional processes further dequeue the digital assets from the first ITPQ, access the digital assets to create first digital assets, store the first digital assets in the first transactional, persistent store in the system, and produce the first digital assets by sending the first digital assets from the first transactional, persistent store through the first network interface over the network; and

a second TUW including:

at least one second incoming, transactional, persistent queue (ITPQ);

at least one second transactional, persistent store;

at least one second network interface that consumes the first IDR by receiving the first IDR from the first TUW and enqueuing the first IDR on the second incoming, transactional, persistent queues (ITPQ), and consumes at least one of the digital assets by receiving the digital assets and enqueuing the digital assets on the second incoming, transactional, persistent queues (ITPQ);

at least one second transactional process that dequeues the first IDR from the second ITPQ, accesses the first IDR to create a second IDR, stores the second IDR in the second transactional, persistent store in the system, and produces the second IDR by sending the second IDR from the second transactional, persistent store through the second network interface over the network, and the second transactional processes further dequeue the digital assets from the second ITPQ, access the digital assets to create second digital assets, store the second digital assets in the second transactional, persistent store in the system, and produce the second digital assets by sending the second digital assets from the second transactional, persistent store through the second network interface over the network;

a third TUW including:

at least one third incoming, transactional, persistent queue (ITPQ);

at least one third transactional, persistent store;

at least one third network interface that consumes the first digital assets by receiving the first digital assets from the first TUW and enqueuing the first digital assets on the third incoming, transactional, persistent queues (ITPQ); and

at least one third transactional process that dequeues the first digital assets from the third ITPQ, accesses the first digital assets to create third digital assets, stores the third digital assets in the third transactional, persistent store in the system, and produces the third digital assets by sending the third digital assets from the third transactional, persistent store through the third network interface over the network, and produces third IDRs by sending the third IDR from the third transactional, persistent store through the third network interface over the network;

a fourth TUW including:

at least one fourth incoming, transactional, persistent queue (ITPQ);

at least one fourth transactional, persistent store;

at least one fourth network interface that consumes the second digital assets by receiving the second digital assets from the second TUW and enqueuing the second digital assets on the fourth incoming, transactional, persistent queues (ITPQ), and that consumes third IDRs by receiving the third IDR from the third TUW and enqueuing the third IDR on the fourth incoming, transactional, persistent queues (ITPQ),

at least one fourth transactional process that dequeues the second digital assets from the fourth ITPQ, accesses the second digital assets to create fourth digital assets, stores the fourth digital assets in the fourth transactional, persistent store in the system, and produces the fourth digital assets by sending the fourth digital assets from the fourth transactional, persistent store through the fourth network interface over the network, the fourth transactional processes further dequeue the third IDR from the fourth ITPQ, access the third IDR to create a fourth IDR, store the fourth IDR in the fourth transactional, persistent store in the system.

An exemplary method for distributing at least one infrastructure description record (IDR) over at least one tier of a network according to the present invention includes the steps of receiving at least one of the infrastructure description records (IDRs), enqueuing the IDRs on at least one incoming, transactional, persistent queue (ITPQ), dequeuing the IDR from the ITPQ, accessing the IDR to create an accessed IDR, and storing the accessed IDR in a transactional, persistent store.

An exemplary embodiment of a system for distributing at least one infrastructure description record (IDR) over at least one tier of a network according to the present invention includes an arrangement configured to receive at least one of the infrastructure description records (IDRs), an arrangement configured to enqueue the IDRs on at least one incoming, transactional, persistent queue (ITPQ), an arrangement configured to dequeue the IDR from the ITPQ, an arrangement configured to access the IDR to create an accessed IDR, and an arrangement configured to store the accessed IDR in a transactional, persistent store.

An exemplary embodiment of a computer program product stored on a memory includes the steps of receiving at least one infrastructure description record (IDR), enqueuing the IDRs on at least one incoming, transactional, persistent queue (ITPQ), dequeuing the IDR from the ITPQ, accessing the IDR to create an accessed IDR, and storing the accessed IDR in a transactional, persistent store.

An object of an exemplary embodiment and/or exemplary method of the present invention is directed to an improved data structure for defining digital assets.

Another object of an exemplary embodiment and/or exemplary method of the present invention is directed to an improved data structure for defining digital assets for packaging, distribution, deployment, execution, synchronization, and/or lifecycle management over multi-tiered networks. Exemplary embodiments and/or exemplary methods of the present inventions concern a data structure, program product, and product of manufacture that has an extended environment (EE) data structure that is part of a digital asset. The digital asset is transmittable over one or more multi-tiered networks. The data structure has one or more common descriptors to provide a unique identification of the digital asset on the networks. There are also one or more asset dependency descriptors to identify one or more associated digital assets. Associated digital assets are associated with the digital asset by a joint membership as parts of a whole. The asset further has one or more target server dependencies descriptors to identify a base execution environment on one or more target computers. (The base execution environment is required to execute the digital asset on the respective target computer. The base execution environment comprises zero or more other digital assets deployed to the respective target computer from one or more of the Enterprise Information Systems (EIS) or other sources.) In another exemplary embodiment and/or exemplary method, one or more EIS server dependencies descriptors are included to identify an EIS execution environment on the respective EIS/source from which the asset resides. In still other exemplary embodiments and/or exemplary methods, other descriptors are included in the extended environment data structure.

An exemplary embodiment and/or exemplary method of the present invention is directed to an extended environment data structure that is part of a digital asset, the digital asset being transmittable over one or more multi-tiered networks, the data structure including: one or more common descriptors to provide a unique identification of the digital asset on the multi-tiered networks; one or more base environment descriptors to identify a required base execution environment on one or more target computers, the base execution environment being required to execute the digital asset on a respective target computer, in which the base execution environment includes zero or more other digital assets deployed to the respective target computer from one or more Enterprise Information Systems (EIS).

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the common descriptors include at least one of: a digital asset name of the digital asset, a unique fully qualified name of the digital asset, an address of the digital asset, a size of the digital asset, a volatility descriptor of the digital asset, a common runnable descriptor of the digital asset, a user type descriptor of the digital asset, a security descriptor of the digital asset, a price descriptor of the digital asset, an independent deployment of the digital asset, and a priority of the digital asset.

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the base execution environment includes at least one of: one or more DBMS, one or more application servers, one or more Web servers, one or more JMS implementations, one or more J2EE application servers, one or more browsers, one or more Java Virtual Machine.TM. (JVM) instantiations, one or more operating systems, systems, sub-systems, applications, sub-applications, components, modules, and functions.

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the whole is defined by at least one of: a graph, a containment graph, a tube graph, a call graph, a pure representation expressible as a graph.

Yet another exemplary embodiment and/or exemplary method of the present invention is directed to an extended environment data structure that is part of a digital asset, the digital asset being transmittable over one or more multi-tiered networks, the data structure including: one or more common descriptors to provide a unique identification of the digital asset on the multi-tiered networks; one or more asset dependency descriptors to identify one or more associated digital assets, the associated digital assets being associated with the digital asset by a joint membership as parts of a whole; and one or more base environment descriptors to identify a base execution environment on one or more target computers, the base execution environment being required to execute the digital asset on a respective target computer, in which the base execution environment includes zero or more other digital assets deployed to the respective target computer from one or more Enterprise Information Systems (EIS).

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the asset dependency descriptors include at least one of: one or more names of other digital assets on which the digital asset is dependent, an asset identifier, and one or more unique fully qualified names of other digital assets on which the digital asset is dependent.

Yet another exemplary embodiment and/or exemplary method of the present invention is directed to an extended environment data structure that is part of a digital asset, the digital asset being transmittable over one or more multi-tiered networks, the data structure including: one or more common descriptors to provide a unique identification of the digital asset on the multi-tiered networks; one or more asset dependency descriptors to identify one or more associated digital assets, the associated digital assets being associated with the digital asset by a joint membership as parts of a whole; one or more base environment descriptors to identify a base execution environment on one or more target computers, the base execution environment being required to execute the digital asset on a respective target computer; and one or more EIS server dependencies descriptors to identify an EIS execution environment on a respective EIS on which the digital asset resides. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which one or more EIS server dependencies descriptors identify an EIS execution environment on a respective EIS from which the digital asset is transformed into a neutral environment form. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which one or more EIS server dependencies descriptors identify an EIS execution environment on a respective EIS from which the digital asset is prepared for transformation into a neutral environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the base execution environment includes zero or more other digital assets deployed to a respective target computer from one or more of the Enterprise Information Systems (EIS).

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which one or more EIS server dependencies identified by one or more of the EIS server dependencies descriptors include at least one of: EIS operating systems, EIS database management systems (DBMS), EIS servers, EIS application servers, EIS web application servers, one or more general business applications, one or more accounting applications, customer relationship management systems (CRM), business to business (B2B) systems, supply chain management systems, business to customer (B2C) system, order fulfillment systems, electronic shopping systems, one or more Enterprise Application Integration systems, one or more legacy interfaces, one or more Java Connector Framework.TM. (JCF) connectors, one or more JCF connectors for legacy interfaces, and message oriented middleware applications.

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the EIS server dependencies include at least one of: one or more DBMS products, one or more Oracle.RTM. DBMS, one or more Sybase DBMS, and one or more DB2 DBMS.

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which zero or more of the base environment descriptors and zero or more of the EIS server dependencies descriptors are capable of being compared independently to a neutral form to determine whether a transform of the digital asset is required for the digital asset to be deployed on a respective target computer. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which one or more of the environment base descriptors and one or more EIS server dependencies descriptors are capable of being compared to determine whether a transform of the digital asset is required for the digital asset to be deployed on a respective target computer. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the transform of the digital asset includes a transformation of data in a logic/data section of the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more reference descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the reference descriptors include at least one of: a reference link descriptor, a reference file descriptor, and a reference directory descriptor. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the reference link descriptor provides a world-wide-web (WWW) address having contents used for processing of the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the reference link descriptor provides a world-wide-web (WWW) address having contents used during execution of the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the reference file descriptor is a unique fully qualified name of a file required for reference by the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the reference directory descriptor provides an additional address information for locating one or more of the associated digital assets. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more transform descriptors to enable a transform of the digital asset from an EIS execution environment to the base execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the transform descriptor includes a properties descriptor to provide information required for use of the digital asset on an operating system of the base execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the transform descriptor includes a format descriptor to provide information required for use of the digital asset on an operating system of the base execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the transform descriptor includes a registry descriptor to provide information required for use of the digital asset on a Windows operating system on the base execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more asset type descriptors.

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the asset type descriptors include at least one of: static content (SC), dynamic content (DC), Enterprise JavaBeans.TM. (EJB), reference data (RD), session bean (SB), entity bean (EB), entity data (ED), Java.TM. class (JC), JavaBeans.TM. (JB), Java.TM. Connector Framework (JCF), and Java.TM. applet (JA).

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more asset category descriptors.

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the asset category descriptors include at least one of: a presentational descriptor, a transactional descriptor, an integration connector descriptor, and a relational data descriptor. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the asset category descriptors include at least one of: a content descriptor, a presentational component descriptor, a transactional component descriptor, an integration connector component descriptor, an object data descriptor, and a relational data descriptor. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more asset class descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the asset class descriptors include at least one of: base, Java, non-Java, language, and non-language. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more package relationship descriptors representing a part-whole relationship between the digital asset and one or more packages containing the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the package relationship descriptors represent at least the following three relationships in the part-whole relationship: a mandatory part-whole relationship, a shared part-whole relationship, and a root part-whole relationship. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more security descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the security descriptors include at least one of the following functions: encryption, authentication, authorization, and access control. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more runnable descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more of the runnable descriptors that include a neutral format to enable deferment of an assignment to a target execution environment for the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more of the runnable descriptors that include a target execution environment for the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more of the runnable descriptors that include an EIS execution environment and a target execution environment for the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more non-runnable descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more non-runnable descriptors that include a description of the base execution environment for the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more of the non-runnable descriptors that include a neutral format to enable deferment of an assignment to a target execution environment for the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more non-runnable descriptors that include description of the EIS execution environment and the base execution environment for the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more personalization descriptors to enable the digital asset to be customized upon delivery to one or more of the base execution environments. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the personalization descriptors include one or more data keys, being derived from a directory service, to establish a linkage among data elements in the EIS execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the directory service is one or more of the following in combination or a federated hierarchy: an LDAP server, Single-Sign-On service, and/or JNDI service. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which a linkage of data elements resolve to a DBMS query in which one or more EIS databases are partitionable specifically for the needs of one or more target environments. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which a linkage of data elements resolve to one or more content related assets that are partitionable specifically for the needs of one or more target environments. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which a linkage of data elements resolve to one or more application related assets that are partitionable specifically for the needs of one or more target environments. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the application related assets include at least one of: presentational components and transactional components.

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the application related assets include at least one of: JSP, Java.TM. Servlet, and Java.TM. EJB.

Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the personalization descriptors include one or more data keys to establish a linkage among data elements in an EIS execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the personalization descriptors include one or more data keys to establish a linkage among logic elements in an EIS execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more pricing descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the pricing descriptors describe information about at least one of: a price, a price scheme, a subscription price scheme, a pay to own price scheme, a pay to use price scheme, a one time payment price scheme, a payment detail, payment method, a check description, a credit card description, and a credit card number. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more target information descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the target information descriptors describe at least one of: a well known user, an anonymous user, one or more user groups, an entire user group, a target machine, an identifiable segment of target machines a collection of target machines, an internet protocol address mask, and a group of target computers in a node collection structure. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more schema descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the schema descriptors provide information to describe at least one of: database table names and definitions, database column names and definitions, database key identifiers and value ranges, database view names and definitions, and other well known database schema elements. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more metadata descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the metadata descriptors provide information to describe any or more of: repository object definitions, scope object definitions, module object definitions, operation object definitions, exception object definitions, constant object definitions, properties object definitions, attribute object definitions, relationship object definitions, type object definitions, and other well known metadata object definitions. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, further including one or more distribution logic descriptors, each having one or more transactions rules and one or more concurrency rules. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the transactions rules specify any of a number and a frequency of times that the digital asset is distributable to one or more of the target computers. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the concurrency rules specify whether there are any restrictions on distribution of the digital asset with respect to the distribution of one or more other digital assets. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the data structure is received from one or more network connections. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the data structure is sent over one or more network connections. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the data structure is stored on one or more memories. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which information in the data structure is modified at one or more locations on one or more of the multi-tiered networks as the digital asset is distributed over the multi-tiered networks. Yet another exemplary embodiment and/or exemplary method of the present invention is directed to an extended environment data structure that is part of a digital asset, the digital asset being transmittable over one or more multi-tiered networks, the data structure including: one or more common descriptor apparatus, arrangement or structure for providing a unique identification of the digital asset on the networks; one or more asset dependency descriptor apparatus, arrangement or structure for identifying one or more associated digital assets, the associated digital assets being associated with the digital asset by a joint membership as parts of a whole; and one or more base environment descriptor apparatus, arrangement or structure for identifying a base execution environment on one or more target computers, the base execution environment being required to execute the digital asset on a respective target computer, in which the base execution environment includes zero or more other digital assets deployed to the respective target computer from one or more Enterprise Information Systems (EIS). Yet another exemplary embodiment and/or exemplary method of the present invention is directed to a computer program product having an extended environment data structure that is part of a digital asset, the digital asset being transmittable over one or more multi-tiered networks, the data structure including: one or more common descriptors to provide a unique identification of the digit asset on the multi-tiered networks; one or more base environment descriptors to identify a base execution environment on one or more target computers, the base execution environment being required to execute the digital asset on a respective target computer, in which the base execution environment includes zero or more other digital assets deployed to the respective target computer from one or more Enterprise Information Systems (EIS). Another exemplary embodiment and/or exemplary method of the present invention is directed to the computer program product having the extended environment data structure, further including: one or more asset dependency descriptors to identify one or more associated digital assets, the associated digital assets being associated with the digital asset by a joint membership as parts of a whole. Yet another exemplary embodiment and/or exemplary method of the present invention is directed to a memory structure having an extended environment data structure that is part of a digital asset stored on the memory structure, the digital asset being transmittable over one or more multi-tiered networks, the data structure including: one or more common descriptors to provide a unique identification of the digit asset on the multi-tiered networks; one or more base environment descriptors to identify a base execution environment on one or more target computers, the base execution environment being required to execute the digital asset on a respective target computer, in which the base execution environment includes zero or more other digital assets deployed to the respective target computer from one or more Enterprise Information Systems (EIS). Another exemplary embodiment and/or exemplary method of the present invention is directed to the memory structure having an extended environment data structure, further including: one or more asset dependency descriptors to identify one or more associated digital assets, the associated digital assets being associated with the digital asset by a joint membership as parts of a whole. Another exemplary embodiment and/or exemplary method of the present invention is directed to the extended environment data structure, in which the transform of the digital asset includes a transformation of data in a logic/data section of the digital asset. An object of an exemplary embodiment and/or exemplary method of the present invention is directed to providing an improved system and method for discovering and/or identifying and extracting digital assets from an EIS or other sources so that EIS/source systems, sub systems, applications, sub applications, components, modules, or functions, and/or objects can be packaged, distributed, deployed, executed, synchronized, and/or managed through a lifecycle in a distributed manner. Another object of an exemplary embodiment and/or exemplary method of the present invention is directed to providing an improved system and method for discovering and/or identifying, extracting, packaging, distributing, deploying, and/or exporting, web applications, components, modules or functions and/or objects over the Internet. Another object of an exemplary embodiment and/or exemplary method of the present invention is directed to providing an improved system and method for discovering and/or identifying types of digital assets that are extracted from one or more EISs and identifying those digital assets according to their respective type so that the digital asset can be exported, e.g., in packages, from the EIS as a means of distribution, deployment, and/or execution over tiers of the network. Exemplary embodiments and/or exemplary methods of the present inventions concern a system, method, article of manufacture, and a computer program product that identifies (discovers) member objects of one or more computer system parts in an Enterprise Information System (EIS) or other sources while establishing at least one relationship (e.g., topographical) among the member objects. This involves traversing one or more computer file systems of the EIS/source to find one or more of the member objects. For each member object found, a digital asset identifier of the found member object is placed in an intermediate representation. The intermediate representation is a graph with nodes and edges. Each of the digital asset identifiers corresponds to one of the nodes of the graph. The edges represent the relationship. A digital asset is created from the member object by placing the member object in a logic/data section of the digital asset and attaching an extended environment data structure to the logic/data section. The digital asset is stored in an asset inventory container object. This may be repeated for each found member object until the intermediate representation fully describes the computer system part and the asset inventory container object is a complete inventory of the digital assets of interest in the computer system part. Additional structures describing attributes of the digital asset created can also be constructed. Further, the descriptive information related to the digital asset may be placed in the respective extended environment data structure. An exemplary embodiment and/or exemplary method of the present invention is directed to a discovery method for identifying member objects of one or more computer system parts in an Enterprise Information System (EIS) and for establishing at least one topographical relationship among the member objects, the discovery method being executable by one or more computers, each of the computers having one or more memories and one or more central processing units (CPU), the method including the steps of: (a) traversing one or more computer file systems of the EIS to find one or more of the member objects, the member objects meeting one or more selection criteria; (b) for each member object found, placing a digital asset identifier of the member object in an intermediate representation, the intermediate representation being a graph with nodes and edges, each of the digital asset identifiers corresponding to one of the nodes of the graph, the edges representing the topographical relationship; (c) creating a digital asset from the member object by placing the member object in a logic/data section of the digital asset and attaching an extended environment data structure to the logic/data section; (d) storing the digital asset in an asset inventory container object; and (e) repeating steps (a) through (d) until the intermediate representation sufficiently describes the computer system part, in which the asset inventory container object is a sufficiently complete inventory of the digital assets of the computer system part that meet the selection criteria. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, further including the inserted step (d1) of creating an entry in an asset definition data structure, the entry having descriptions of one or more digital asset attributes of the digital asset, the asset definition data structure being a complete list of the digital assets of the computer system part that meet the selection criteria. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the computer system parts include at least one of the following: a computer system, a computer sub-system, an application, a sub-application, a module, and a function. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, further including the step of storing one or more descriptors in the extended environment data structure after the extended environment data structure is created in step c. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the descriptors include one or more common descriptors to provide a unique identification of the digital asset on the multi-tiered networks. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the common descriptor includes at least one of: a digital asset name of the digital asset, a unique fully qualified name of the digital asset, an address of the digital asset, a unique hash value for the digital asset, a checksum for the digital asset, and a size of the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the descriptors include one or more asset dependency descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the asset dependency descriptors include any at least one of: at least one names of other digital assets on which the digital asset is dependent, an asset identifier, and one or more unique fully qualified names of other digital assets on which the digital asset is dependent. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the descriptors include one or more reference descriptors. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the reference descriptors include at least one of: a reference link descriptor, a reference file descriptor, and a reference directory descriptor. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the reference link descriptor provides a world-wide-web (WWW) address having contents used for processing of the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the reference link descriptor provides a world-wide-web (WWW) address having contents used during execution of the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the reference directory descriptor provides an additional address information for locating one or more of the associated digital assets. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the reference file descriptor is a unique filly qualified name of a file required for reference by the digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the descriptors include one or more runnable descriptors for indicating that the digital asset is a runnable digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which one or more of the runnable descriptors include a description of a neutral execution environment, enabling dynamic targeting of the digital asset for one or

more target environments. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which one or more of the runnable descriptors include a description of an EIS execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the descriptors include one or more non-runnable descriptors for indicating that the digital asset is a non-runnable digital asset. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which one or more of the non-runnable descriptors include a description of an EIS execution environment. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which one or more of the non-runnable descriptors include a description of a neutral execution environment, enabling the dynamic targeting of the digital asset for one or more target environments. Another exemplary embodiment and/or exemplary method of the present invention is directed to the discovery method, in which the asset definition data structure includes at least one of: an asset identification, an asset location, a URL, a name, an asset type, and a version. Yet another exemplary embodiment and/or exemplary method of the present invention is directed to a discovery system for identifying one or more member objects of one or more computer system parts of an Enterprise Information System (EIS) and for establishing at least