The present invention relates to data processing in general, and to automated deployment of applications to application servers in particular.
Application servers, such as IBM's WebSphere Application Server®, (WAS) support the deployment and management of Web applications ranging from simple Web sites to powerful e-business solutions. In the case of IBM's WebSphere Application Server®, the platform is a Java 2 Platform, Enterprise Edition (J2EE®) Web application server, similar to other application servers, such as BEA WebLogic® Server and Oracle Application Server.
WAS provides the application logic enabling client components to interact with data resources and legacy applications. WAS also collaborates with the Web Server by exchanging client requests and application responses. An administrator can define multiple Application Servers where each would be running in its own Java Virtual Machine (JVM).
Within application servers such as WAS, the application server configuration provides information for starting and managing a server process to handle requests for enterprise applications and their components. WAS uses an administrative console to guide a user through deployment and system administration tasks. Actions taken by the user in the console modify a set of XML configuration files. Administrators can use the console to perform such tasks as adding, deleting, and stopping application servers, deploying new applications to a server, starting and stopping existing applications, and modifying certain configurations. In addition, administrators can use the console to manage variable, shared libraries, database connections, and other configurations that can span multiple application servers, configure product security, and collect data for performance and troubleshooting purposes.
Existing tools offer ways to administer and manage application server tasks without the need for the graphical user interface of the administrative console. Java Command Language (Jacl) is designed to be a universal scripting language for Java. A Jacl interpreter is written completely in Java and can run on any Java Virtual Machine (JVM). Jacl can be used to create Web content or to control Java applications. WAS contains a utility, wsadmin, that implements and extends the base Jacl interpreter allowing an administrator to make additions, changes, or modifications to the server configuration.
In the on-demand service environment, many of the application server administration operations (making additions, changes or modifications to the server configuration) require manual, time consuming steps. Moreover, operations require a dedicated administrator with a specific skill set to perform the tasks when that administrator's skills could be applied to additional responsibilities. For example, to execute a task such as “installing an application,” an administrator must be trained in the existing tool so that he or she understand the controls, becomes familiar with navigation and can follow a series of steps to achieve deploying an Enterprise Archive (EAR) file and start the application. Any small mistake in the detailed process (such as a missed check box or incorrect database version from the installation panel) can cause the installation to fail. In order to enable an application to connect to a database, the administrator would be required to launch the administrative console, login, click the security link in the navigation, and work with such properties as credentials, descriptions, variable entries pointing to the resource provider classes, resource links in the navigation, datasources, database names, connection pool information, and others.
Therefore, a need exists for a tool to automate complex, manual administrative steps in an application server and thereby minimize the time and training required to execute tasks.
The invention that meets the need identified above is an application server administration framework (ASAF) that minimizes the number of manual steps during the installation or modification processes by allowing a user to accomplish the installation or modification by entering values in a property file.
The set up program allows a user to enter data directly into the property files based upon the administrative tasks required. Alternatively, a graphical user interface may be provided so that the user can be prompted to enter data, rather than entering the data directly into the property file.
The deployment script is invoked by an event trigger. An event trigger may be invoked by a manual user selection, a scheduled event, a graphical user interface, or by an external automation process such as Tivoli Intelligent Orchestrator™. When invoked, the deployment script identifies changes in the property files, and invokes appropriate procedures from a procedure script. In addition, the deployment script invokes an error program that performs environmental setting checks, monitors the process, and conducts a final error check. The environmental setting checks involve determining whether the appropriate permissions have been granted, the appropriate paths properly defined, EAR files properly deployed, and other required configurations set. The procedure script links the property file to one or more component scripts so that the values entered by the administrator are populated to the appropriate component scripts. When the values have been populated to the appropriate component scripts, the deployment script invokes the scripting engine which runs the scripts to make the necessary changes to the configuration files for the application server.
An error detection program performs environmental checks, monitors logs throughout the process, and performs a final check. The error detection program identifies errors and accesses a policy script to automatically fix errors in the implementation process.
The policy script provides rules to prevent or cure error by controlling the sequence and order of operations, automatically starting or restarting an application or server when necessary, and including other actions that the component script may not know is required. For example, even if a developer or user implements a component script using an improper order of events (as allowed by the application server), the error detection program will discover the error, access the policy script, and either proceed with the correct order or notify the user.
A simulation program allows operations to be tested on secondary systems to ensure that the change can be successfully executed.
The novel features believed characteristic of the ASAF are set forth in the appended claims. The ASAF itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will be understood best by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
The principles of the ASAF are applicable to a variety of computer hardware and software configurations. The term “computer hardware” or “hardware,” as used herein, refers to any machine or apparatus that is capable of accepting, performing logic operations on, storing, or displaying data, and includes without limitation processors and memory; the term “computer software” or “software,” refers to any set of instructions operable to cause computer hardware to perform an operation. A “computer,” as that term is used herein, includes without limitation any useful combination of hardware and software, and a “computer program” or “program” includes without limitation any software operable to cause computer hardware to accept, perform logic operations on, store, or display data. A computer program may, and often is, comprised of a plurality of smaller programming units, including without limitation subroutines, modules, functions, methods, and procedures. As used herein, a computer program is compiled, immutable and executable by itself. As used herein, a “script” is an uncompiled and mutable text file that is invoked by a program, but that is not executable by itself. As used herein, “environment” means the operating system and any related middleware or software upon which a particular web server application depends. Thus, the functions of the ASAF may be distributed among a plurality of computers, computer programs, and scripts.
Additionally, the ASAF is described below with reference to an exemplary network of hardware devices, as depicted in
ASAF 210 typically is stored in a memory, represented schematically as memory 200 in
An on-demand operating environment is based upon the concepts of a service oriented architecture (SOA). In an SOA, every application or resource is modeled as a service that implements a specific, identifiable function (or set of functions). In an on-demand environment, the services often implement specific business functions, but also may implement interfaces or other operating functions.
Services in SOAs communicate with each other by exchanging structured information, typically through messages or documents. The services' capabilities are defined by interfaces declaring messages they can produce or consume, policy annotations declaring a quality of service required or provided, and choreography annotations declaring behavioral constraints that must be respected in service interactions. The actual implementation of any specific service is hidden from the service requester, which allows new and existing applications to be quickly combined into new contexts.
Typically, a specific on-demand business service relies on many other services in its implementation. All interactions between services flow through an Enterprise Service Bus (ESB) such as ESB 302. ESB 302 facilitates mediated interactions between service end points. ESB 302 supports event-based interactions, as well as message exchange for service request handling. For both events and messages, mediations can facilitate interactions by, for example, locating services that provide requested capabilities, or by handling interface mismatches between requesters and providers that are compatible in terms of their capabilities. ASAF 210 is suitable for inclusion with Infrastructure Services 310 and Configure Services 332.
A preferred form of the invention has been shown in the drawings and described above, but variations in the preferred form will be apparent to those skilled in the art. The preceding description is for illustration purposes only, and the invention should not be construed as limited to the specific form shown and described. The scope of the invention should be limited only by the language of the following claims.
Number | Name | Date | Kind |
---|---|---|---|
6799195 | Thibault et al. | Sep 2004 | B1 |
6816905 | Sheets et al. | Nov 2004 | B1 |
6859882 | Fung | Feb 2005 | B2 |
6973647 | Crudele et al. | Dec 2005 | B2 |
6993763 | Hayes, Jr. | Jan 2006 | B2 |
7206817 | Fanshier et al. | Apr 2007 | B2 |
7228326 | Srinivasan et al. | Jun 2007 | B2 |
7412497 | Viswanath et al. | Aug 2008 | B2 |
20030188208 | Fung | Oct 2003 | A1 |
20030225851 | Fanshier et al. | Dec 2003 | A1 |
20040019663 | Viswanath et al. | Jan 2004 | A1 |
20040230973 | Cundiff et al. | Nov 2004 | A1 |
20050267918 | Gatev et al. | Dec 2005 | A1 |
20050289536 | Nayak et al. | Dec 2005 | A1 |
20060010434 | Herzog et al. | Jan 2006 | A1 |
20060029054 | Breh et al. | Feb 2006 | A1 |
20060053094 | Ravi et al. | Mar 2006 | A1 |
20060111880 | Brown et al. | May 2006 | A1 |
20060136897 | Laxminarayan et al. | Jun 2006 | A1 |
20070006209 | Nguyen et al. | Jan 2007 | A1 |
Number | Date | Country |
---|---|---|
0509945 | Oct 1992 | EP |
1376929 | Feb 2004 | EP |
Number | Date | Country | |
---|---|---|---|
20070240144 A1 | Oct 2007 | US |