US20030208548A1 - Application server framework - Google Patents

Application server framework Download PDF

Info

Publication number
US20030208548A1
US20030208548A1 US10/460,221 US46022103A US2003208548A1 US 20030208548 A1 US20030208548 A1 US 20030208548A1 US 46022103 A US46022103 A US 46022103A US 2003208548 A1 US2003208548 A1 US 2003208548A1
Authority
US
United States
Prior art keywords
service
application server
requested
services
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/460,221
Inventor
Paul Wydra
Brendan Haggerty
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CGI Technologies and Solutions Inc
Original Assignee
American Management Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by American Management Systems Inc filed Critical American Management Systems Inc
Priority to US10/460,221 priority Critical patent/US20030208548A1/en
Publication of US20030208548A1 publication Critical patent/US20030208548A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Definitions

  • the present invention is directed to computer systems including application servers generally, and, more particularly, to providing a computer software framework on an application server accommodating transparent porting of application software from a client computer to the application server and transparent execution by the application server rather than by the client computer of the application software.
  • An application server is a computer software application that runs in a client-server environment, but that is distinct from both the client and server applications. Typically, this application performs business rule or other processing that is computationally intensive at the request of the client.
  • Application servers generally, are well known in the art.
  • An example of an application server is IBM WebSphere Application ServerTM, disclosed in About IBM WebSphere Application ServerTM.
  • Another example of an application server is disclosed in U.S. Pat. No. 5,893,106 to Brobst, et al., entitled Object Oriented Server Process Framework with Interdependent-Object Creation.
  • FIG. 1 shows an example of a computer system 10 of the related art having a three-tiered architecture and including an application server 12 .
  • the application server 12 is separate and distinct from clients 14 - 1 through 14 -n and from data base server 16 , but is provided logically between the clients 14 and the data base server 16 .
  • the application server 12 alleviates processing load from the data base server 16 , and, further, provides additional functions such as load balancing and process scheduling within the computer system 10 .
  • one of the clients 14 transmits a request to the application server 12 , which, in turn, reformats the request and transmits it in the form of an OB (outbound) request to the data base server 16 .
  • the data base server 16 returns data to the application server 12 , which reformats the data into an answer transmitted to the requesting client 14 .
  • native PowerBuilderTM facilities insulate the client code from the architecture of the computer system to some degree, these facilities fail to make the architecture completely transparent to the client.
  • the primary issue that prevents complete client transparency is that the client still must explicitly connect to an application server and ask the server to create a remote object.
  • the client would then need to be able to pick the appropriate application server.
  • the client code must be rewritten before it can be successfully ported to and executed by the application servers of the related art.
  • Also known in the art is a job scheduler, which stores a list of jobs with associated schedules, and ensures that the jobs are run according to that schedule.
  • SPS Standard Desktop Procurement System
  • a further object of the present invention is to allow installation of the SPS client software to be independent of whether an application server is running.
  • Yet another object of the present invention is to accommodate job management initiated from a client.
  • Still another object of the present invention is to provide connection security, remote object creation, scheduling and batch processing, and remote server management functions.
  • a still further object of the present invention is to alleviate processing load from the clients and from the data base server.
  • Yet a further object of the present invention is to allow an application server to be installed and operational without altering client code.
  • a yet additional object of the present invention is to allow additional application software modules to be installed without degrading the performance of either the clients or the data base server.
  • a further object of the present invention is to provide a desktop procurement system maintaining a balance between a robust system to accommodate 80% of the procurement users and providing processing efficiencies for intensive processing.
  • the Application Server Framework (ASF) of the present invention provides SPS the efficiencies that the computer systems of the related art would not allow.
  • the Application Server Framework eliminates the problems discussed above and also provides an interface to manage the SPS application servers by taking advantage of PowerBuilderTM 6.0 functionality and tailoring it to the Department of Defense's (DoD) needs.
  • the ASF of the present invention allows installation of the SPS client software independently of whether an application server is running. Further, with the ASF of the present invention, a site can install the latest version of the SPS software without choosing to install an application server and then add the application server executing the ASF later, without making changes to the client code.
  • the plug in capability of the ASF allows additional modules to be added to the Standard Procurement System (SPS) without degrading the performance of the client computers or the database server of the computer system in which the ASF is installed.
  • SPS Standard Procurement System
  • the ASF of the present invention accommodates job management initiated from the client computers. Using the job management option, authorized users create batch, on-demand or scheduled services. These services will be performed on any module that is “plugged into” the ASF of the present invention.
  • the ASF of the present invention is a software system which, when installed on an application server, provides the above-mentioned features and functions to the computer system in which the application server is provided.
  • the ASF of the present invention insulates client code in the form of, for example, computer modules implementing business processes, from communication with a data base server so that the client code can be ported from the client computer to the application server and execute without being altered. Accordingly, through the ASF of the present invention, the client code formerly isolated to being executed by the client computer on which it was installed is made available to all of the client computers interfacing to the application server to which the client code is ported.
  • the computer system includes an application server and a job scheduler integrated with the application server that independently requests execution of services.
  • FIG. 1 shows a three tiered architecture, including an application server, of the related art
  • FIG. 2 shows an overview of a computer system 20 including the Application Server Framework (ASF) of the present invention
  • FIG. 3 is a flowchart showing an overview of the functions provided by the ASF of the present invention.
  • FIG. 4 is a diagram of the software architecture of the ASF startup function
  • FIG. 5 is a diagram of the software architecture of the flow of the ASF for a service requested by an application server
  • FIG. 6 is a diagram of the software architecture of the flow of the ASF for a service requested by a client computer
  • FIG. 7 is a detailed architecture diagram of a computer system including the ASF of the present invention.
  • FIG. 8 shows an example of a service created by the ASF as a service inherited from the services object, in relation to other services also inherited from the services object;
  • FIG. 9 is a diagram showing a relationship between an application server, including the listener, the schedule controller, and the connection controller of the ASF of the present invention, and a process created by the connection controller;
  • FIG. 10 shows an example of a job management screen of the ASF displayed to the users by the ASF of the present invention
  • FIG. 11 shows a jobs list screen of the jobs scheduled to be executed by the application server.
  • FIG. 12 shows a log viewer screen of the ASF of the present invention.
  • the Application Server Framework (ASF) of the present invention includes the following high level responsibilities:
  • ASF Remote object creation—When a client requests a remote object (via the client-side component of the ASF), the ASF responds by creating the object and returning an object handle to the client.
  • C Scheduling and batch processing—In addition to providing a three-tier application framework, the ASF provides the ability to create and schedule batch services. These services do not respond to client requests, but run on a scheduled basis under the control of the ASF itself.
  • the Application Server Framework (ASF) of the present invention which is written in PowerBuilderTM, accommodates on-demand and batch processing, is capable of scheduling and queuing, and can perform load balancing functions.
  • a site can install this application server at the time of installation of the client software or at a later time without having to make changes to the client software.
  • An application server is installed, in a separate installation, directly to the machine (typically a server) where it is desired to reside.
  • a site can install more than one application server on a single machine.
  • the application servers may be established to provide the same or different services. Since the ASF of the present invention provides job scheduling across a single or multiple application servers, allowing multiple application servers to work together, the ASF differs from a typical three tiered architecture application or a distributed architecture.
  • FIG. 2 shows an overview of a computer system 20 including the Application Server Framework (ASF) of the present invention.
  • the computer system 20 includes client computers 22 - 1 through 22 -N, interfacing to an application server 24 , which, in turn, interfaces to a data base server 26 .
  • data base server 26 includes a data base 28 , such as a SybaseTM data base.
  • the ASF of the present invention includes several software modules residing on and executed by an application server, a software module residing on and executed by each client computer coupled to the application server, and 2 files stored on the data base server 26 . More particularly, the ASF of the present invention includes service brokers 30 - 1 through 30 -N, provided on and executed by the client computers 22 - 1 through 22 -N, respectively.
  • the ASF of the present invention also includes a listener 32 , a connection controller (which is also referred to as a connection manager) 34 , and a schedule controller (or job scheduler) 36 , each provided on and executed by the application server 24 .
  • the ASF of the present invention includes, stored on data base server 26 , a schedule 27 of services to be executed and a list 29 of application servers and the jobs that are executable thereon.
  • the ASF also includes a conventional load balancer (not shown in FIG. 2, but shown and discussed with reference to FIG. 9) running on the application server 24 .
  • each of the service broker 30 , the listener 32 , the connection controller 34 , the schedule controller 36 , and the load balancer are software modules written in a conventional computer language, such as PowerBuilderTM.
  • each application server 24 is shown in the computer system 20 of FIG. 2.
  • multiple application servers 24 each executing the ASF of the present invention, may be provided in the same computer system 20 , with the client computers 22 interfacing to each or multiple application servers 24 .
  • the ASF of the present invention determines between the multiple application servers which will execute the service requested by the client.
  • more than one application server 24 may be installed on a single machine.
  • the application servers 24 may be established to provide the same or different services.
  • the client computers 22 , the application server 24 , and the data base server 26 provide services typically provided by conventional client computers, application servers, and data base servers, respectively.
  • the ASF of the present invention can be installed directly to the application server 24 without impacting the client computers 22 or the database server 26 .
  • the client computers 22 request a service to be performed.
  • the service broker 30 section of the ASF determines whether the application server 24 to which the client computer 22 is coupled can execute the requested service. If so, then the service broker 30 interfaces with the listener 32 section of the ASF residing on the application server 24 , and transmits the service request to the listener 32 . Accordingly, through the use of the service broker 30 , the client computer 22 is otherwise relieved of the burden of having to be aware of which application server 24 (particularly, if there are several application servers 24 included in the computer system 20 , as explained herein below) is executing the requested service.
  • the listener 32 then interfaces to the connection controller 34 section of the ASF, which either creates the service or process requested, then executes the service or process, or, if the requested service or process had been created previously, establishes a connection to the service or process.
  • the requested service may require the application server 24 to interface with the data base server 26 or with other application servers (not shown in FIG. 2).
  • the connection controller 34 also interfaces to the schedule controller 36 section of the ASF, which establishes and maintains a schedule for the execution of each requested service, and notifies the client computer 22 requesting the service upon completion of the service.
  • the schedule controller 36 the client computer 22 may request that a service be executed at some future time, and the client computer need not be logged onto the computer system 20 at the requested service execution time for the service to be successfully executed.
  • the service broker 30 section of the ASF determines whether the client computer 22 making the request can also execute the service (i.e., whether the client code required to successfully fulfill the service request resides on the client computer making the service request). If so, then the service broker 30 interfaces with the client code residing on the client computer 22 to fulfill the service request
  • FIG. 3 is a flowchart 100 showing an overview of the functions provided by the ASF of the present invention, including ASF startup in operation 110 , flow 112 (executed when a service request is made by an application server 24 ) and flow 114 (executed when a service request is made by a client computer for immediate execution).
  • startup of the ASF of the present invention includes building a schedule of services to be executed using the schedule controller 36 , establishing connections using the connection controller 34 , and generally ensuring that the data base 28 is accessible by the ASF of the present invention.
  • Operation 110 is typically executed once, upon system startup, whereas flow 112 and flow 114 are each typically executed whenever a service is requested by the application server (for flow 112 ) or by the client computer (for flow 114 ).
  • a timer is set, preferably in one-minute intervals.
  • the ASF then sleeps and wakes up in 118 upon prompting by the timer at each one-minute interval.
  • the ASF in operation 120 , then determines whether an unexecuted process has been requested for execution at or before the current time. If not, then control returns to operation 118 and the ASF continues to sleep/wakeup during the one-minute time intervals.
  • the ASF of the present invention establishes a connection to the process, if needed.
  • a connection would not need to be established if such a connection had been established previously.
  • the requested service is executed in operation 124 , and the application server 24 making the request is notified of completion of the process in operation 126 .
  • the ASF of the present invention executes flow 114 .
  • the service broker 30 determines whether the requested service is executable by the application server 24 , in operation 128 . If so, then operations 122 , 124 , and 126 are executed as in flow 112 , as explained herein above, with one exception: in operation 126 , the client computer 22 (not the application server 24 ) making the service request is notified of the completion of the requested service.
  • the client computer 22 If the service request made by the client computer 22 is not executable by the application server 24 , then the client computer 22 making the request for the process executes in operation 130 the requested service.
  • the software architecture 40 of the ASF shown in FIG. 4 corresponds to function of the ASF shown in operation 110 of FIG. 3.
  • the start up ASF functions of operation 110 shown are provided in the ASF on the application server 24 .
  • a server function 42 initiates building of a schedule of services to be executed, principally by the application server 24 , and, accordingly, the establishment of the schedule controller 36 in communication with the connection controller 34 .
  • the schedule controller 36 initiates processes such as establishing communication with servers and with jobs, using asf_sq1 module 44 .
  • FIG. 5 shows the software architecture 45 of the ASF of the present invention implementing operation 112 of FIG. 3. The functions of the ASF disclosed in FIG. 5 are executed on the application server 24 .
  • the server function 42 in response to a timer, initiates a function of the schedule controller 36 to check jobs (or services) to be executed. If a service is scheduled to be executed at this time, then the schedule controller instructs the connection controller 34 to create an instance of the process, and provides to the connection controller the name of the application server 24 making the request for the process (the handle), along with the object name of the process.
  • the connection controller 34 then establishes a connection 46 (for example, to the data base server 26 ). Establishment of a connection 46 includes providing to the connection 46 process an instruction to connection to the server 26 , along with instruction to create an instance of the process of the object name to execute the service 48 .
  • the schedule controller 36 provides to the service 48 being executed a handle to call back to the schedule controller 36 creating the instance, and instructions to execute the service 48 .
  • the service 48 then notifies the schedule controller 36 of the completion, by name, of the service 48 .
  • FIG. 6 shows the software architecture 49 of the ASF of the present invention implementing operation 114 of FIG. 3.
  • the functions of the ASF disclosed in FIG. 6 are executed on the application server 24 and on client computer 22 .
  • a client application 50 running on a client computer 22 requests of the service broker 30 of the client computer 22 to generate a service to be provided to the client application 50 .
  • the service broker 30 of the client computer 22 then creates an instance of the service, by providing to the connection controller 34 of the application server 24 the server name of the server to execute the service, along with the service name of the service to be provided.
  • the connection controller 34 then connects to the server having the server name provided by the service broker, and creates an instance of the service to be provided, identified by the object name. Accordingly, a connection 46 is established to the service 48 requested.
  • connection controller 34 sets the location (which is remote) of the service 48 to be provided to the client application 50 .
  • the service 48 receives from the service broker 30 requesting the service 48 a callback instruction to notify the service broker 30 upon completion of the service 48 .
  • the service is executed, as shown in FIG. 6, in accordance with instructions and parameters provided to the service by the client application 50 .
  • FIG. 7 is a detailed architecture diagram of the computer system 20 including the ASF of the present invention, shown in FIG. 2.
  • the computer system 20 is executing, for example, the U. S. Department of Defense (DoD) Standard Desktop Procurement System (SPS).
  • DoD U. S. Department of Defense
  • SPS Standard Desktop Procurement System
  • each client computer 22 - 1 through 22 -N is shown, as are multiple application servers 24 - 1 through 24 -M.
  • Client computers 22 - 1 through 22 -N each include the service broker component of the ASF, shown as service brokers 30 - 1 through 30 -N, respectively.
  • each application server 24 - 1 through 24 -M includes a listener 32 , a connection controller 34 , and a schedule controller 36 of the ASF of the present invention.
  • each client computer 22 - 1 through 22 -N is logically coupled to each application server 24 - 1 through 24 -M, either through the listener 32 of a primary application server 24 - 1 (which listener 32 of 24 - 1 is then coupled to each listener 32 of each remaining application server 24 - 2 through 24 -M) or directly to the listener 32 of each application server 24 - 1 through 24 -M.
  • Each application server 24 - 1 through 24 -M is also logically coupled to data base server 26 .
  • communication between the client computers 22 and the application servers 24 occurs between the respective service brokers 30 of the client computers and the respective listeners 32 of the application servers. Likewise, communication among the application servers 24 occurs through respective listeners 32 . Communication between the application servers 24 and the data base server 26 occurs through both the respective connection controllers 34 and the respective schedule controllers 36 .
  • one of the application servers 24 - 1 (for example) is designated as the primary application 24 .
  • the primary application server 24 - 1 communicates with the client computers 22 - 1 through 22 -N, and with the other application servers 24 - 2 through 24 -M included in the computer system 20 . Further, the primary application server 24 - 1 determines which of the application servers 24 - 1 through 24 -M will perform a requested service.
  • the ASF of the present invention is installed ( 200 ) on each of the application servers 24 - 1 through 24 -M of FIG. 7, using the operation disclosed herein above with reference to FIG. 4.
  • the ASF installation operation creates ( 200 ) on each of the application servers 24 a schedule controller 36 and a connection controller 34 .
  • the schedule controller 36 reads ( 202 ) the schedule of services to be provided 27 from the data base server 26 , through a relational data base management system 25 (RDMS). If there are services to be executed by the application server 24 - 1 reading the schedule 27 , then the services are provided in accordance with the flow 112 shown in FIG. 3, using the software architecture 45 of the ASF shown in FIG. 5.
  • the primary application server 24 - 1 monitors through listener 32 each of the client computers 22 - 1 through 22 -N for requests for service.
  • the listener 32 of the primary application server 24 - 1 is coupled to each of the client computers 22 and to the other application servers 24 through a TCP/IP connection. Requests for service received from client computers 22 are executed in accordance with flow 114 shown in FIG. 3, using the software architecture 49 of the ASF shown in FIG. 6.
  • the listener 32 Upon receipt ( 204 ) of a request for service, such as a refresh, from the service brokers 30 - 1 through 30 -N, the listener 32 transmits ( 205 ) the request for service to the schedule controller 36 , which also reads ( 202 ) the schedule 27 of services to be performed.
  • a request for service such as a refresh
  • the schedule 27 is read ( 202 ) by the schedule controller during either of 2 events: startup or refresh.
  • the schedule controller 36 receives ( 206 ) from the operating system 37 , such as WINDOWS, a message of time each minute, based upon the monitoring ( 208 ) by the operating system 37 of the system clock 39 .
  • the operating system 37 such as WINDOWS
  • the schedule controller 36 determines that there are no services requested in the schedule to be performed at the current time, then the schedule controller 36 awaits notification ( 206 ) by the operating system 37 of the passage of another minute, and, upon receipt thereof, the schedule controller 36 again determines whether there are services to be provided during the subsequent minute.
  • the schedule controller 36 notifies ( 210 ) the connection controller 34 of such.
  • the connection controller 34 then creates ( 212 ), if needed, the service 214 to be provided.
  • the service 214 most likely involves interaction ( 216 ) with the data base 28 , through the RDMS 25 .
  • the service 214 may also involve a process wholly contained within the primary application server 24 - 1 , or interaction ( 218 ) with another application server 24 -M, through the listener 32 of the application server 24 -M.
  • the connection controller 34 of the primary application server 24 - 1 determines which of the application servers 24 - 2 through 24 -M will perform the task by reading ( 220 ) through the RDMS 25 the list 29 of application servers 24 - 1 through 24 -M, and the jobs each of the application servers 24 - 1 through 24 -M is capable of executing.
  • the application server 24 -M (for example) selected for executing the requested service would do so consistent with the description of the execution of a service provided herein with respect to application server 24 - 1 .
  • Each service when created, includes a connection and a handle (pointer to or address of the service).
  • the connection controller 34 When the connection controller 34 has created the service to be executed, the connection controller 34 maintains and transmits ( 222 ) to the schedule controller the handle.
  • the schedule controller 36 then instructs ( 224 ) the service 214 to execute asynchronously, in a fire-and-forget mode. At the completion of the service 214 , the schedule controller 36 is notified ( 226 ) of such.
  • the objects created and used during in the service 214 are destroyed, but the shell of the connection is maintained, for possible future re-execution, eliminating the need to repeatedly create the same service if requested again at a later time.
  • the service broker 30 of the ASF of the present invention resides on the client computer 22 , alleviating the client computer 22 of having to be aware of where the requested service is running, interfaces with the application server 24 through the listener 32 of the ASF to get the requested service performed, and provides the handle of the service being performed to the client computer 22 . If the application server 24 cannot perform the requested service, and if none of the application servers 24 in the computer system 20 can perform the requested service, the service broker 30 creates the service on the client computer 22 and still provides the handle of the service being executed to the client computer 22 .
  • Examples of services provided in an application server 24 include electronic document access (EDA), electronic document interfacing (EDI), solicitation services, etc.
  • EDA and EDI are known.
  • Solicitation services are also known and include statements by the U.S. Government of what the U.S. Government wants to buy, and which are sent to industry. The statements, or solicitations, are marked as ready for release to the public at a future date/time, and cannot be released before that date/time. Conventionally, a solicitation is released by the client computer at the designated date/time, but the client computer must be booted up and running to release the solicitation.
  • the solicitation services could be moved from a client computer 22 to an application server 24 executing the ASF so that a user working at a client computer 22 could mark a solicitation for release at a future date/time, which would make a request to the application server 24 executing the ASF of the present invention to execute the solicitation service at the designated date/time. Execution of the requested solicitation service would then be the responsibility of the application server 24 running the ASF, and the client computer 22 could then be turned off.
  • the application server 24 executing the ASF of the present invention would then add the requested service to the schedule of services 27 , by setting flags in the data base 26 (which flags indicate that the requested service should be added to the schedule of services 27 ).
  • the flags include a flag indicating that a solicitation is ready for release at a particular date/time, that an EDI should be transmitted in 10 minutes, etc.
  • the ASF using the schedule controller 36 , would execute the requested service, as explained herein above.
  • client code or components thereof, can be ported to and executed by application servers 24 - 1 through 24 -M.
  • client code must fulfill the following requirements:
  • the ported objects must be non-visual objects only
  • the component of the client code being ported must be extricable from the client code, and, more particularly, the component must be inherited from an existing model of a business process and must be able to be integrated seamlessly into the application server 24 .
  • the services object may itself point to services such as an EDA service, an EDI service, a solicitation service, etc., each of which is itself an object.
  • the service to be executed by the application server 24 must itself be an object inherited from the services object so that the application server 24 can communicate with the service to be executed through the same interface as used for all of the services related to the services object.
  • FIG. 8 shows an example of a service 132 created by the ASF as a service inherited from the services object 134 , in relation to other services 136 , 138 , 140 also inherited from the services object 134 .
  • a service for example, 132
  • a primary service object such as 134
  • the ASF issues calls to objects that are part of the component being moved from the client computer 22 to the application server 24 to accomplish the service 132 .
  • the inherited service 132 then knows how to connect back to the application server 24 .
  • the entire component need not be inherited; only one object of the component needs to be inherited, and the inherited object of the component initiates the rest of the component.
  • the ASF of the present invention relieves the client computers 22 of the burden of having to run a process or execute a service at a specific time.
  • the application servers 24 using the ASF of the present invention, then execute the requested service at the specified time, based upon the schedule of jobs 27 established to be executed by the ASF. Therefore, the client computers 22 can schedule processes to be executed at some future time, without requiring the client computer 22 requesting the service to remain active.
  • FIG. 9 is a diagram showing a relationship between an application server 24 - 1 , including the listener 32 , the schedule controller 36 , and the connection controller 34 of the ASF of the present invention, and a process created by the connection controller 34 .
  • the connection controller 34 creates ( 146 ) a process 12 to accomplish a requested service, such as EDA.
  • the process 142 may be executed on another application server 24 (not shown in FIG. 9), on a client computer 22 - 1 requesting the service, or on a data base server 26 (not shown in FIG. 9).
  • the connection controller 34 also creates a temporary shell 144 (which is maintained for future use) surrounding the created process 142 .
  • the connection controller 34 maintains the handle of (i.e., pointer to) the requested process 142 .
  • each application server 24 (for example, of the application servers 24 - 1 through 24 -M shown in FIG. 7) could be designated by the systems administrator for an installation or a site as specific to processes, which are installed only on the designated machines.
  • one of the application servers could be designated for providing EDA only services, while another of the application services could be designated as providing EDI and EDA services.
  • one of the application servers 24 is designated as the primary application server, and the listener 32 of the primary application server acts as a clearinghouse.
  • the listener 32 of the primary application server determines which of the other applications servers or the primary application server should execute the service requested by a client computer 22 , based upon which application server(s) is/are designated to execute the requested service, and the load each of the application server(s) designated to execute the requested service is carrying.
  • the listener 32 To determine which of the application servers is designated to execute the requested service, the listener 32 maintains and refers to a file storing that information to identify the candidate application servers. Once the listener 32 has determined the candidate application server(s) designated to execute the requested service, the listener 32 refers to the conventional load balancer 148 , included as part of the ASF of the present invention, to determine which of the candidate application servers is most ideally suited—from an overall system load perspective—as a preferred application server to execute the requested service. Based on the load balancer 148 , the listener 32 advises the connection controller 34 of the preferred application server 24 . The connection controller 34 then establishes the needed connections therewith, as explained herein above.
  • the ASF of the present invention When the ASF of the present invention is installed on an application server, the ASF functions without requiring alteration of client computer software.
  • the application server console provides the ability to allow a user to start and stop the application server, and also displays the status of that particular application server.
  • users manage requests from client computers accessing the application server and manage the jobs the application server performs.
  • FIG. 10 shows an example of a job management screen 150 of the ASF displayed to the users by the ASF of the present invention.
  • the job management screen 150 provides real-time status information on each scheduled service.
  • the job management screen 150 displays on a console of the application server to authorized users a list of the batch services that are currently provided through the application server. As shown in FIG. 10, the job management screen 150 displays the last time the service was performed, the next scheduled time the service will be performed, and the current status of each service that is available.
  • the job management screen 150 includes buttons such as Run Now . . . 152 , Disable Job . . . 154 , Schedule . . . 156 . Through the Run Now . . .
  • the user can instruct the ASF to execute the selected service(s) on demand.
  • the user can instruct the ASF to temporarily stop the selected service(s) from running.
  • the ASF reads the schedule of jobs 27 to populate the job management screen 150 .
  • FIG. 11 shows a jobs list screen 158 of the jobs scheduled to be executed by the application server.
  • the jobs list screen provides the ability to schedule and manage routine services.
  • the jobs list screen 158 is also populated from data read by the ASF from the schedule of jobs 27 .
  • authorized users are able to establish the schedule 27 that a service should be performed on through the ASF.
  • the schedule 27 can be set to perform in daily, weekly, and monthly increments. Users may also enter a time when the service should start or a range of times over which it should execute. In the latter case, the range of time must be within the same day.
  • FIG. 12 shows a log viewer screen 160 of the ASF.
  • the log viewer screen of the ASF provides a complete log of all operations performed by the application server.
  • the ASF of the present invention removes data intensive processing from the client computers and the database server, and also allows the client computers to schedule processing. Consequently, through the ASF, batch and on demand processing are available to the client computers. Further, any processing intensive work required by the procurement system can be accommodated by the ASF using plug in module functionality.
  • the ASF's capabilities extend beyond the conventional application server in order to meet the DoD's future needs.
  • the additional capabilities that extend beyond a conventional industry application server are unique.
  • the ASF approach in solving DoD Standard Procurement needs is a unique approach for a DoD wide procurement system and readily accommodates future DoD electronic procurement needs.

Abstract

An application server framework is integrated with a three-tiered computer system including an application server. The application server framework includes a job scheduler, a connection controller, a listener, and a service broker. The jobs scheduler is integrated with the application server and independently requesting execution of services. The connection controller establishes connections with services based upon the requested execution of services. The listener receives requests for execution of services and transmitting the requested execution of services to the connection controller. The service broker transmits the requests for execution of services to the listener.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • The present invention is directed to computer systems including application servers generally, and, more particularly, to providing a computer software framework on an application server accommodating transparent porting of application software from a client computer to the application server and transparent execution by the application server rather than by the client computer of the application software. [0002]
  • 2. Description of the Related Art [0003]
  • Computer systems having distributed architectures are known in the art. More particularly, client-server architectures are known in the art. In such computer systems, processing occurs either on the clients or on the server, typically referred to as a data base server. With processing occurring on either the clients or the server, the processing speed of whichever of the clients or the server executing the processing is hampered and therefore degrades. The degradation of processing speed makes the potential for adding additional processing intensive modules or functionality infeasible for some applications, such as the Standard Desktop Procurement System (SPS), thereby preventing full utilization of the particular application, such as the SPS. For example, the foregoing limitations of the related art do not allow some users, such as the U.S. Government, to realize the full capabilities of the SPS. More particularly, a U.S. Department of Defense (DoD) desktop procurement system needs to maintain a balance between a robust system to accommodate 80% of the procurement users and provide processing efficiencies for intensive processing, which needs are not fulfilled by computer systems of the related art. [0004]
  • An application server is a computer software application that runs in a client-server environment, but that is distinct from both the client and server applications. Typically, this application performs business rule or other processing that is computationally intensive at the request of the client. [0005]
  • Application servers, generally, are well known in the art. An example of an application server is IBM WebSphere Application Server™, disclosed in About IBM WebSphere Application Server™. Another example of an application server is disclosed in U.S. Pat. No. 5,893,106 to Brobst, et al., entitled Object Oriented Server Process Framework with Interdependent-Object Creation. [0006]
  • Computer systems having application servers provided logically between a data base server and clients are referred to as three tiered architectures, which are known in the art. FIG. 1 shows an example of a [0007] computer system 10 of the related art having a three-tiered architecture and including an application server 12. As shown in the computer system 10 of FIG. 1, the application server 12 is separate and distinct from clients 14-1 through 14-n and from data base server 16, but is provided logically between the clients 14 and the data base server 16. The application server 12 alleviates processing load from the data base server 16, and, further, provides additional functions such as load balancing and process scheduling within the computer system 10.
  • As shown in the [0008] computer system 10 of FIG. 1, one of the clients 14 transmits a request to the application server 12, which, in turn, reformats the request and transmits it in the form of an OB (outbound) request to the data base server 16. The data base server 16 returns data to the application server 12, which reformats the data into an answer transmitted to the requesting client 14.
  • Commercially-available software programs, such as native PowerBuilder™ facilities, extend the function of the [0009] application server 12. Through the use of native PowerBuilder™ facilities, application software written to be executed by the clients 14 (hereafter also referred to as client code) can be migrated to the application server 12 for execution thereby. Thus, instead of an architecture in which client computers 14 interface directly to data base server 16, as in a traditional client-server environment, client computers 14 interface to application server 12, which in turn interfaces to data base server 16 (as shown in FIG. 1).
  • A problem, though, with the use of native PowerBuilder™ facilities is that the client code must be rewritten before the client code can be successfully ported from the [0010] client computers 14 to the application server 12.
  • Although native PowerBuilder™ facilities insulate the client code from the architecture of the computer system to some degree, these facilities fail to make the architecture completely transparent to the client. The primary issue that prevents complete client transparency is that the client still must explicitly connect to an application server and ask the server to create a remote object. In addition, if a site wishes to install more than one application server in order to spread demand across multiple machines, the client would then need to be able to pick the appropriate application server. Thus, the client code must be rewritten before it can be successfully ported to and executed by the application servers of the related art. [0011]
  • Neither porting of client code from the clients to the application server nor execution of the client code by the application server rather than the client is transparent in the computer systems of the related art. [0012]
  • Also known in the art is a job scheduler, which stores a list of jobs with associated schedules, and ensures that the jobs are run according to that schedule. [0013]
  • Throughout the following paragraphs, terms such as job, process, and service are used interchangeably. [0014]
  • SUMMARY OF THE INVENTION
  • It is therefore an object of the present invention to provide an application server framework which overcomes the above-mentioned problems of the related art. [0015]
  • It is another object of the present invention to provide an interface to manage the Standard Desktop Procurement System (SPS) servers. [0016]
  • A further object of the present invention is to allow installation of the SPS client software to be independent of whether an application server is running. [0017]
  • Yet another object of the present invention is to accommodate job management initiated from a client. [0018]
  • Still another object of the present invention is to provide connection security, remote object creation, scheduling and batch processing, and remote server management functions. [0019]
  • A still further object of the present invention is to alleviate processing load from the clients and from the data base server. [0020]
  • Yet a further object of the present invention is to allow an application server to be installed and operational without altering client code. [0021]
  • A yet additional object of the present invention is to allow additional application software modules to be installed without degrading the performance of either the clients or the data base server. [0022]
  • A further object of the present invention is to provide a desktop procurement system maintaining a balance between a robust system to accommodate 80% of the procurement users and providing processing efficiencies for intensive processing. [0023]
  • The Application Server Framework (ASF) of the present invention provides SPS the efficiencies that the computer systems of the related art would not allow. [0024]
  • The Application Server Framework (ASF) eliminates the problems discussed above and also provides an interface to manage the SPS application servers by taking advantage of PowerBuilder™ 6.0 functionality and tailoring it to the Department of Defense's (DoD) needs. The ASF of the present invention allows installation of the SPS client software independently of whether an application server is running. Further, with the ASF of the present invention, a site can install the latest version of the SPS software without choosing to install an application server and then add the application server executing the ASF later, without making changes to the client code. In addition, the plug in capability of the ASF allows additional modules to be added to the Standard Procurement System (SPS) without degrading the performance of the client computers or the database server of the computer system in which the ASF is installed. [0025]
  • The ASF of the present invention accommodates job management initiated from the client computers. Using the job management option, authorized users create batch, on-demand or scheduled services. These services will be performed on any module that is “plugged into” the ASF of the present invention. [0026]
  • The ASF of the present invention is a software system which, when installed on an application server, provides the above-mentioned features and functions to the computer system in which the application server is provided. The ASF of the present invention insulates client code in the form of, for example, computer modules implementing business processes, from communication with a data base server so that the client code can be ported from the client computer to the application server and execute without being altered. Accordingly, through the ASF of the present invention, the client code formerly isolated to being executed by the client computer on which it was installed is made available to all of the client computers interfacing to the application server to which the client code is ported. [0027]
  • With the ASF of the present invention, the computer system includes an application server and a job scheduler integrated with the application server that independently requests execution of services. [0028]
  • These together with other objects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings forming a part hereof, wherein like numerals refer to like parts throughout.[0029]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 shows a three tiered architecture, including an application server, of the related art; [0030]
  • FIG. 2 shows an overview of a [0031] computer system 20 including the Application Server Framework (ASF) of the present invention;
  • FIG. 3 is a flowchart showing an overview of the functions provided by the ASF of the present invention; [0032]
  • FIG. 4 is a diagram of the software architecture of the ASF startup function; [0033]
  • FIG. 5 is a diagram of the software architecture of the flow of the ASF for a service requested by an application server; [0034]
  • FIG. 6 is a diagram of the software architecture of the flow of the ASF for a service requested by a client computer; [0035]
  • FIG. 7 is a detailed architecture diagram of a computer system including the ASF of the present invention; [0036]
  • FIG. 8 shows an example of a service created by the ASF as a service inherited from the services object, in relation to other services also inherited from the services object; [0037]
  • FIG. 9 is a diagram showing a relationship between an application server, including the listener, the schedule controller, and the connection controller of the ASF of the present invention, and a process created by the connection controller; [0038]
  • FIG. 10 shows an example of a job management screen of the ASF displayed to the users by the ASF of the present invention; [0039]
  • FIG. 11 shows a jobs list screen of the jobs scheduled to be executed by the application server; and [0040]
  • FIG. 12 shows a log viewer screen of the ASF of the present invention.[0041]
  • DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The Application Server Framework (ASF) of the present invention includes the following high level responsibilities: [0042]
  • A. Connection security—When a client attempts to connect to an application server, the ASF controls the server to verify the client's username and password and either grants or disallows the connection request. Users that are allowed to connect are provided with either normal user privileges or administrative privileges, based on the log-in name and other information. [0043]
  • B. Remote object creation—When a client requests a remote object (via the client-side component of the ASF), the ASF responds by creating the object and returning an object handle to the client. [0044]
  • C. Scheduling and batch processing—In addition to providing a three-tier application framework, the ASF provides the ability to create and schedule batch services. These services do not respond to client requests, but run on a scheduled basis under the control of the ASF itself. [0045]
  • D. Remote server management—Users with administrative privileges are able to view a list of users who are connected to an application server as well as detailed information about each client and disconnect users from the application server. Administrative users are also able to remotely stop the application server. [0046]
  • The Application Server Framework (ASF) of the present invention, which is written in PowerBuilder™, accommodates on-demand and batch processing, is capable of scheduling and queuing, and can perform load balancing functions. A site can install this application server at the time of installation of the client software or at a later time without having to make changes to the client software. An application server is installed, in a separate installation, directly to the machine (typically a server) where it is desired to reside. A site can install more than one application server on a single machine. The application servers may be established to provide the same or different services. Since the ASF of the present invention provides job scheduling across a single or multiple application servers, allowing multiple application servers to work together, the ASF differs from a typical three tiered architecture application or a distributed architecture. [0047]
  • FIG. 2 shows an overview of a [0048] computer system 20 including the Application Server Framework (ASF) of the present invention. As shown in FIG. 2, the computer system 20 includes client computers 22-1 through 22-N, interfacing to an application server 24, which, in turn, interfaces to a data base server 26. Included within data base server 26 is a data base 28, such as a Sybase™ data base.
  • Also included in [0049] computer system 20 is the ASF of the present invention. The ASF of the present invention includes several software modules residing on and executed by an application server, a software module residing on and executed by each client computer coupled to the application server, and 2 files stored on the data base server 26. More particularly, the ASF of the present invention includes service brokers 30-1 through 30-N, provided on and executed by the client computers 22-1 through 22-N, respectively. The ASF of the present invention also includes a listener 32, a connection controller (which is also referred to as a connection manager) 34, and a schedule controller (or job scheduler) 36, each provided on and executed by the application server 24. In addition, the ASF of the present invention includes, stored on data base server 26, a schedule 27 of services to be executed and a list 29 of application servers and the jobs that are executable thereon. The ASF also includes a conventional load balancer (not shown in FIG. 2, but shown and discussed with reference to FIG. 9) running on the application server 24.
  • Preferably, each of the [0050] service broker 30, the listener 32, the connection controller 34, the schedule controller 36, and the load balancer are software modules written in a conventional computer language, such as PowerBuilder™.
  • For the purposes of explanation, only one [0051] application server 24 is shown in the computer system 20 of FIG. 2. However, with the ASF of the present invention, multiple application servers 24, each executing the ASF of the present invention, may be provided in the same computer system 20, with the client computers 22 interfacing to each or multiple application servers 24. The ASF of the present invention then determines between the multiple application servers which will execute the service requested by the client. Alternatively, more than one application server 24 may be installed on a single machine. The application servers 24 may be established to provide the same or different services.
  • In addition to services provided by the ASF of the present invention, the [0052] client computers 22, the application server 24, and the data base server 26 provide services typically provided by conventional client computers, application servers, and data base servers, respectively. The ASF of the present invention can be installed directly to the application server 24 without impacting the client computers 22 or the database server 26.
  • A brief explanation of functions provided by the [0053] service brokers 30, the listener 32, the connection controller 34, and the schedule controller 36 of the ASF of the present invention is now provided.
  • In the [0054] computer system 20 of the present invention, the client computers 22 request a service to be performed. The service broker 30 section of the ASF determines whether the application server 24 to which the client computer 22 is coupled can execute the requested service. If so, then the service broker 30 interfaces with the listener 32 section of the ASF residing on the application server 24, and transmits the service request to the listener 32. Accordingly, through the use of the service broker 30, the client computer 22 is otherwise relieved of the burden of having to be aware of which application server 24 (particularly, if there are several application servers 24 included in the computer system 20, as explained herein below) is executing the requested service.
  • The [0055] listener 32 then interfaces to the connection controller 34 section of the ASF, which either creates the service or process requested, then executes the service or process, or, if the requested service or process had been created previously, establishes a connection to the service or process. The requested service may require the application server 24 to interface with the data base server 26 or with other application servers (not shown in FIG. 2). The connection controller 34 also interfaces to the schedule controller 36 section of the ASF, which establishes and maintains a schedule for the execution of each requested service, and notifies the client computer 22 requesting the service upon completion of the service. Through the use of the schedule controller 36, the client computer 22 may request that a service be executed at some future time, and the client computer need not be logged onto the computer system 20 at the requested service execution time for the service to be successfully executed.
  • If the [0056] application server 24 to which the client computer 22 making the request for service cannot execute the requested service, then the service broker 30 section of the ASF determines whether the client computer 22 making the request can also execute the service (i.e., whether the client code required to successfully fulfill the service request resides on the client computer making the service request). If so, then the service broker 30 interfaces with the client code residing on the client computer 22 to fulfill the service request
  • A more detailed explanation of the functionality of, and the interfacing between, the [0057] service broker 30, the listener 32, the connection controller 34, and the schedule controller 36 of the ASF of the present invention is provided herein below, after an explanation of service execution by the ASF of the present invention.
  • Using the ASF of the present invention, services may be requested by either the [0058] application server 24 or the clients 22. FIG. 3 is a flowchart 100 showing an overview of the functions provided by the ASF of the present invention, including ASF startup in operation 110, flow 112 (executed when a service request is made by an application server 24) and flow 114 (executed when a service request is made by a client computer for immediate execution).
  • As shown in FIG. 3, in [0059] operation 110, the ASF of the present invention is started up. Startup of the ASF of the present invention includes building a schedule of services to be executed using the schedule controller 36, establishing connections using the connection controller 34, and generally ensuring that the data base 28 is accessible by the ASF of the present invention. Operation 110 is typically executed once, upon system startup, whereas flow 112 and flow 114 are each typically executed whenever a service is requested by the application server (for flow 112) or by the client computer (for flow 114).
  • Referring again to FIG. 3, next, in [0060] flow 112, in operation 116, for service requests made by the application server 24, a timer is set, preferably in one-minute intervals. The ASF then sleeps and wakes up in 118 upon prompting by the timer at each one-minute interval. The ASF, in operation 120, then determines whether an unexecuted process has been requested for execution at or before the current time. If not, then control returns to operation 118 and the ASF continues to sleep/wakeup during the one-minute time intervals.
  • If a process has been requested for execution, then in [0061] operation 122, the ASF of the present invention establishes a connection to the process, if needed. A connection would not need to be established if such a connection had been established previously. After the connection is established, the requested service is executed in operation 124, and the application server 24 making the request is notified of completion of the process in operation 126.
  • The foregoing [0062] operations 116 through 124 are typically followed when a process is requested, either by a client computer 22 or an application server 24, to be executed at a future time. Even though the process may be requested by a client computer 22, since the process is requested for execution at a future time, the request appears as though it is being initiated by the application server 24.
  • Alternatively, if a service request is made by a [0063] client computer 22, for example for immediate execution, the ASF of the present invention executes flow 114. In flow 114, the service broker 30 determines whether the requested service is executable by the application server 24, in operation 128. If so, then operations 122, 124, and 126 are executed as in flow 112, as explained herein above, with one exception: in operation 126, the client computer 22 (not the application server 24) making the service request is notified of the completion of the requested service.
  • If the service request made by the [0064] client computer 22 is not executable by the application server 24, then the client computer 22 making the request for the process executes in operation 130 the requested service.
  • Each of [0065] operation 110, flow 112, and flow 114 of the ASF of the present invention are explained in further detail with reference to software architectures of the ASF shown in FIGS. 4-6.
  • The [0066] software architecture 40 of the ASF shown in FIG. 4 corresponds to function of the ASF shown in operation 110 of FIG. 3. In the software architecture 40 shown in FIG. 4, the start up ASF functions of operation 110 shown are provided in the ASF on the application server 24. Referring now to FIG. 4, a server function 42 initiates building of a schedule of services to be executed, principally by the application server 24, and, accordingly, the establishment of the schedule controller 36 in communication with the connection controller 34. Also as part of the start up ASF operation 110, the schedule controller 36 initiates processes such as establishing communication with servers and with jobs, using asf_sq1 module 44.
  • Once the ASF of the present invention has been started, in accordance with FIG. 4, then the process of the ASF shown in [0067] operation 112 is executed for a service request initiated by the application server 24. FIG. 5 shows the software architecture 45 of the ASF of the present invention implementing operation 112 of FIG. 3. The functions of the ASF disclosed in FIG. 5 are executed on the application server 24.
  • As shown in FIG. 5, the [0068] server function 42, in response to a timer, initiates a function of the schedule controller 36 to check jobs (or services) to be executed. If a service is scheduled to be executed at this time, then the schedule controller instructs the connection controller 34 to create an instance of the process, and provides to the connection controller the name of the application server 24 making the request for the process (the handle), along with the object name of the process. The connection controller 34 then establishes a connection 46 (for example, to the data base server 26). Establishment of a connection 46 includes providing to the connection 46 process an instruction to connection to the server 26, along with instruction to create an instance of the process of the object name to execute the service 48.
  • Also as shown in FIG. 5, the [0069] schedule controller 36 provides to the service 48 being executed a handle to call back to the schedule controller 36 creating the instance, and instructions to execute the service 48. The service 48 then notifies the schedule controller 36 of the completion, by name, of the service 48.
  • FIG. 6 shows the [0070] software architecture 49 of the ASF of the present invention implementing operation 114 of FIG. 3. The functions of the ASF disclosed in FIG. 6 are executed on the application server 24 and on client computer 22. As shown in FIG. 6, a client application 50 running on a client computer 22 requests of the service broker 30 of the client computer 22 to generate a service to be provided to the client application 50. The service broker 30 of the client computer 22 then creates an instance of the service, by providing to the connection controller 34 of the application server 24 the server name of the server to execute the service, along with the service name of the service to be provided. The connection controller 34 then connects to the server having the server name provided by the service broker, and creates an instance of the service to be provided, identified by the object name. Accordingly, a connection 46 is established to the service 48 requested.
  • Also as shown in FIG. 6, the [0071] connection controller 34 sets the location (which is remote) of the service 48 to be provided to the client application 50. After the service 48 is established, the service 48 receives from the service broker 30 requesting the service 48 a callback instruction to notify the service broker 30 upon completion of the service 48. The service is executed, as shown in FIG. 6, in accordance with instructions and parameters provided to the service by the client application 50.
  • FIG. 7 is a detailed architecture diagram of the [0072] computer system 20 including the ASF of the present invention, shown in FIG. 2. The computer system 20 is executing, for example, the U. S. Department of Defense (DoD) Standard Desktop Procurement System (SPS).
  • Referring now to FIG. 7, the operations executed or directed by the ASF of the present invention are now explained. In the [0073] computer system 20 of FIG. 7, multiple client computers 22-1 through 22-N are shown, as are multiple application servers 24-1 through 24-M. Client computers 22-1 through 22-N each include the service broker component of the ASF, shown as service brokers 30-1 through 30-N, respectively. Additionally, each application server 24-1 through 24-M includes a listener 32, a connection controller 34, and a schedule controller 36 of the ASF of the present invention. Further, each client computer 22-1 through 22-N is logically coupled to each application server 24-1 through 24-M, either through the listener 32 of a primary application server 24-1 (which listener 32 of 24-1 is then coupled to each listener 32 of each remaining application server 24-2 through 24-M) or directly to the listener 32 of each application server 24-1 through 24-M. Each application server 24-1 through 24-M is also logically coupled to data base server 26.
  • Referring again to FIG. 7, communication between the [0074] client computers 22 and the application servers 24 occurs between the respective service brokers 30 of the client computers and the respective listeners 32 of the application servers. Likewise, communication among the application servers 24 occurs through respective listeners 32. Communication between the application servers 24 and the data base server 26 occurs through both the respective connection controllers 34 and the respective schedule controllers 36.
  • When the ASF is installed on more than one [0075] application server 24 within a computer system 20, one of the application servers 24-1 (for example) is designated as the primary application 24. The primary application server 24-1 communicates with the client computers 22-1 through 22-N, and with the other application servers 24-2 through 24-M included in the computer system 20. Further, the primary application server 24-1 determines which of the application servers 24-1 through 24-M will perform a requested service.
  • The operations and the functions of the ASF of the present invention are now described in further detail with reference to FIG. 7. It will be appreciated by those of ordinary skill in the art that, in addition to the ASF functions of the present invention disclosed herein, the [0076] client computers 22, the application servers 24, and the data base server 26 also provide conventional functions associated therewith.
  • The ASF of the present invention is installed ([0077] 200) on each of the application servers 24-1 through 24-M of FIG. 7, using the operation disclosed herein above with reference to FIG. 4. The ASF installation operation, as disclosed with reference to FIG. 4, creates (200) on each of the application servers 24 a schedule controller 36 and a connection controller 34. At startup of the ASF of the present invention, the schedule controller 36 reads (202) the schedule of services to be provided 27 from the data base server 26, through a relational data base management system 25 (RDMS). If there are services to be executed by the application server 24-1 reading the schedule 27, then the services are provided in accordance with the flow 112 shown in FIG. 3, using the software architecture 45 of the ASF shown in FIG. 5.
  • Additionally, the primary application server [0078] 24-1 monitors through listener 32 each of the client computers 22-1 through 22-N for requests for service. Preferably, the listener 32 of the primary application server 24-1 is coupled to each of the client computers 22 and to the other application servers 24 through a TCP/IP connection. Requests for service received from client computers 22 are executed in accordance with flow 114 shown in FIG. 3, using the software architecture 49 of the ASF shown in FIG. 6.
  • Upon receipt ([0079] 204) of a request for service, such as a refresh, from the service brokers 30-1 through 30-N, the listener 32 transmits (205) the request for service to the schedule controller 36, which also reads (202) the schedule 27 of services to be performed.
  • Therefore, the [0080] schedule 27 is read (202) by the schedule controller during either of 2 events: startup or refresh.
  • Further, the [0081] schedule controller 36 receives (206) from the operating system 37, such as WINDOWS, a message of time each minute, based upon the monitoring (208) by the operating system 37 of the system clock 39.
  • If the [0082] schedule controller 36 determines that there are no services requested in the schedule to be performed at the current time, then the schedule controller 36 awaits notification (206) by the operating system 37 of the passage of another minute, and, upon receipt thereof, the schedule controller 36 again determines whether there are services to be provided during the subsequent minute.
  • On the other hand, if there are services scheduled to be provided during at the current time, based upon the [0083] schedule 27, the schedule controller 36 notifies (210) the connection controller 34 of such. The connection controller 34 then creates (212), if needed, the service 214 to be provided. The service 214 most likely involves interaction (216) with the data base 28, through the RDMS 25. However, the service 214 may also involve a process wholly contained within the primary application server 24-1, or interaction (218) with another application server 24-M, through the listener 32 of the application server 24-M.
  • If the requested service includes a task to be performed by another application server(s) [0084] 24-2 through 24-M, the connection controller 34 of the primary application server 24-1 determines which of the application servers 24-2 through 24-M will perform the task by reading (220) through the RDMS 25 the list 29 of application servers 24-1 through 24-M, and the jobs each of the application servers 24-1 through 24-M is capable of executing. The application server 24-M (for example) selected for executing the requested service would do so consistent with the description of the execution of a service provided herein with respect to application server 24-1.
  • Each service, when created, includes a connection and a handle (pointer to or address of the service). When the [0085] connection controller 34 has created the service to be executed, the connection controller 34 maintains and transmits (222) to the schedule controller the handle.
  • The [0086] schedule controller 36 then instructs (224) the service 214 to execute asynchronously, in a fire-and-forget mode. At the completion of the service 214, the schedule controller 36 is notified (226) of such. The objects created and used during in the service 214 are destroyed, but the shell of the connection is maintained, for possible future re-execution, eliminating the need to repeatedly create the same service if requested again at a later time.
  • The [0087] service broker 30 of the ASF of the present invention resides on the client computer 22, alleviating the client computer 22 of having to be aware of where the requested service is running, interfaces with the application server 24 through the listener 32 of the ASF to get the requested service performed, and provides the handle of the service being performed to the client computer 22. If the application server 24 cannot perform the requested service, and if none of the application servers 24 in the computer system 20 can perform the requested service, the service broker 30 creates the service on the client computer 22 and still provides the handle of the service being executed to the client computer 22.
  • Examples of services provided in an [0088] application server 24 include electronic document access (EDA), electronic document interfacing (EDI), solicitation services, etc. EDA and EDI are known. Solicitation services are also known and include statements by the U.S. Government of what the U.S. Government wants to buy, and which are sent to industry. The statements, or solicitations, are marked as ready for release to the public at a future date/time, and cannot be released before that date/time. Conventionally, a solicitation is released by the client computer at the designated date/time, but the client computer must be booted up and running to release the solicitation.
  • On the other hand, by using the ASF of the present invention, the solicitation services could be moved from a [0089] client computer 22 to an application server 24 executing the ASF so that a user working at a client computer 22 could mark a solicitation for release at a future date/time, which would make a request to the application server 24 executing the ASF of the present invention to execute the solicitation service at the designated date/time. Execution of the requested solicitation service would then be the responsibility of the application server 24 running the ASF, and the client computer 22 could then be turned off. The application server 24 executing the ASF of the present invention would then add the requested service to the schedule of services 27, by setting flags in the data base 26 (which flags indicate that the requested service should be added to the schedule of services 27). The flags include a flag indicating that a solicitation is ready for release at a particular date/time, that an EDI should be transmitted in 10 minutes, etc. When the appointed hour arrives, the ASF, using the schedule controller 36, would execute the requested service, as explained herein above.
  • In accordance with the above-mentioned processes, client code, or components thereof, can be ported to and executed by application servers [0090] 24-1 through 24-M. To be ported to application servers in the ASF of the present invention, client code must fulfill the following requirements:
  • A. the ported objects must be non-visual objects only; [0091]
  • B. the component of the client code residing on the [0092] client computers 22 must be addressable by the application servers 24; and
  • C. the component of the client code being ported must be extricable from the client code, and, more particularly, the component must be inherited from an existing model of a business process and must be able to be integrated seamlessly into the [0093] application server 24.
  • For example, in an object-oriented system, the services object may itself point to services such as an EDA service, an EDI service, a solicitation service, etc., each of which is itself an object. The service to be executed by the [0094] application server 24 must itself be an object inherited from the services object so that the application server 24 can communicate with the service to be executed through the same interface as used for all of the services related to the services object.
  • FIG. 8 shows an example of a [0095] service 132 created by the ASF as a service inherited from the services object 134, in relation to other services 136, 138, 140 also inherited from the services object 134. More particularly, at startup 110 (FIG. 3) of the ASF, a service (for example, 132) is created which is inherited from a primary service object (such as 134). Within the created service 132, the ASF issues calls to objects that are part of the component being moved from the client computer 22 to the application server 24 to accomplish the service 132. The inherited service 132 then knows how to connect back to the application server 24.
  • In the ASF of the present invention, the entire component need not be inherited; only one object of the component needs to be inherited, and the inherited object of the component initiates the rest of the component. [0096]
  • By providing a framework under which services are ported from [0097] client computers 22 to application servers 24, the ASF of the present invention relieves the client computers 22 of the burden of having to run a process or execute a service at a specific time. The application servers 24, using the ASF of the present invention, then execute the requested service at the specified time, based upon the schedule of jobs 27 established to be executed by the ASF. Therefore, the client computers 22 can schedule processes to be executed at some future time, without requiring the client computer 22 requesting the service to remain active.
  • FIG. 9 is a diagram showing a relationship between an application server [0098] 24-1, including the listener 32, the schedule controller 36, and the connection controller 34 of the ASF of the present invention, and a process created by the connection controller 34. As shown in FIG. 9, the connection controller 34 creates (146) a process 12 to accomplish a requested service, such as EDA. The process 142 may be executed on another application server 24 (not shown in FIG. 9), on a client computer 22-1 requesting the service, or on a data base server 26 (not shown in FIG. 9). In addition to creating the process 142 to be executed, the connection controller 34 also creates a temporary shell 144 (which is maintained for future use) surrounding the created process 142. The connection controller 34 maintains the handle of (i.e., pointer to) the requested process 142.
  • Further, using the ASF of the present invention, each application server [0099] 24 (for example, of the application servers 24-1 through 24-M shown in FIG. 7) could be designated by the systems administrator for an installation or a site as specific to processes, which are installed only on the designated machines. For example, one of the application servers could be designated for providing EDA only services, while another of the application services could be designated as providing EDI and EDA services.
  • As discussed herein above, one of the [0100] application servers 24 is designated as the primary application server, and the listener 32 of the primary application server acts as a clearinghouse. In its role as a clearinghouse, the listener 32 of the primary application server determines which of the other applications servers or the primary application server should execute the service requested by a client computer 22, based upon which application server(s) is/are designated to execute the requested service, and the load each of the application server(s) designated to execute the requested service is carrying.
  • To determine which of the application servers is designated to execute the requested service, the [0101] listener 32 maintains and refers to a file storing that information to identify the candidate application servers. Once the listener 32 has determined the candidate application server(s) designated to execute the requested service, the listener 32 refers to the conventional load balancer 148, included as part of the ASF of the present invention, to determine which of the candidate application servers is most ideally suited—from an overall system load perspective—as a preferred application server to execute the requested service. Based on the load balancer 148, the listener 32 advises the connection controller 34 of the preferred application server 24. The connection controller 34 then establishes the needed connections therewith, as explained herein above.
  • When the ASF of the present invention is installed on an application server, the ASF functions without requiring alteration of client computer software. [0102]
  • With the ASF of the present invention, the application server console provides the ability to allow a user to start and stop the application server, and also displays the status of that particular application server. Through the ASF, users manage requests from client computers accessing the application server and manage the jobs the application server performs. [0103]
  • FIG. 10 shows an example of a [0104] job management screen 150 of the ASF displayed to the users by the ASF of the present invention. The job management screen 150 provides real-time status information on each scheduled service. The job management screen 150 displays on a console of the application server to authorized users a list of the batch services that are currently provided through the application server. As shown in FIG. 10, the job management screen 150 displays the last time the service was performed, the next scheduled time the service will be performed, and the current status of each service that is available. The job management screen 150 includes buttons such as Run Now . . . 152, Disable Job . . . 154, Schedule . . . 156. Through the Run Now . . . 152 button, the user can instruct the ASF to execute the selected service(s) on demand. Through the Disable Job . . . 154 button, the user can instruct the ASF to temporarily stop the selected service(s) from running. The ASF reads the schedule of jobs 27 to populate the job management screen 150.
  • FIG. 11 shows a [0105] jobs list screen 158 of the jobs scheduled to be executed by the application server. The jobs list screen provides the ability to schedule and manage routine services. The jobs list screen 158 is also populated from data read by the ASF from the schedule of jobs 27. Using the jobs list screen 158, authorized users are able to establish the schedule 27 that a service should be performed on through the ASF. The schedule 27 can be set to perform in daily, weekly, and monthly increments. Users may also enter a time when the service should start or a range of times over which it should execute. In the latter case, the range of time must be within the same day.
  • FIG. 12 shows a [0106] log viewer screen 160 of the ASF. The log viewer screen of the ASF provides a complete log of all operations performed by the application server.
  • The ASF of the present invention removes data intensive processing from the client computers and the database server, and also allows the client computers to schedule processing. Consequently, through the ASF, batch and on demand processing are available to the client computers. Further, any processing intensive work required by the procurement system can be accommodated by the ASF using plug in module functionality. [0107]
  • The flexibility of the ASF allows the SPS to meet the requirements of the Department of Defense, without degrading performance of the client computers or the database server. [0108]
  • The ASF's capabilities extend beyond the conventional application server in order to meet the DoD's future needs. The additional capabilities that extend beyond a conventional industry application server are unique. Further, the ASF approach in solving DoD Standard Procurement needs is a unique approach for a DoD wide procurement system and readily accommodates future DoD electronic procurement needs. [0109]
  • The many features and advantages of the invention are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the invention which fall within the true spirit and scope of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope of the invention. [0110]

Claims (30)

What is claimed is:
1. An apparatus comprising:
an application server; and
a job scheduler integrated with the application server and independently requesting execution of services.
2. The apparatus according to claim 1, further comprising:
a connection controller, integrated with the application server and coupled to the job scheduler, establishing connections with services based upon the requested execution of services.
3. The apparatus according to claim 2, further comprising:
a listener, integrated with the application server and coupled to the connection controller, receiving requests for execution of services and transmitting the requested execution of services to the connection controller.
4. The apparatus according to claim 3, further comprising:
a service broker, coupled to the listener, transmitting the requests for execution of services to the listener.
5. The apparatus according to claim 2, further comprising:
a schedule, coupled to the job scheduler, storing a list of the requested execution of a service.
6. The apparatus according to claim 2, further comprising a list of services executable corresponding to locations at which the services are executable.
7. The apparatus according to claim 1, wherein the apparatus further comprises a Department of Defense Standard Desktop Procurement System.
8. A method comprising:
independently requesting execution of services by a job scheduler integrated with an application server.
9. A method comprising:
independently requesting by a job scheduler execution of services by application servers coupled to the job scheduler, said job scheduler controlling the application servers to work in concert with each other.
10. The method according to claim 8, further comprising:
establishing by a connection controller a connection to a service requested to be executed, said connection controller integrated with the application server and coupled to the job scheduler.
11. The method of claim 10, further comprising:
receiving by a listener the request for the service, said listener integrated with the application server and coupled to the job scheduler.
12. The method of claim 10, further comprising:
transmitting by a service broker the request for service, said service broker being provided in a client computer coupled to the application server, and said service broker coupled to the listener.
13. A method comprising:
starting up an application server framework installed on the computer system;
determining by the application server framework whether a service is requested by an application server, based upon a job scheduler of the application server of the computer system, or by a client computer of the computer system;
determining by the application server framework whether the requested service is executable by the application server, if the request for service is made by the client computer;
establishing a connection to the service by the application server and executing the service, if the requested service is executable by the application server or if the service is requested by the application server;
executing the requested service by the client computer if the client computer requested the service and if the service is not executable by the application server; and
notifying the application server of the completion of the service if the application server requested the service, and notifying the client computer of the completion of the service if the client computer requested the service.
14. The method according to claim 13, wherein the application server framework transmits to the application server the handle of the service if the application server requested the service, and transmits to the client computer the handle of the service if the client computer requested the service.
15. A computer-readable device embodying a computer program, said computer program, when executed by a computer, directing the computer to perform the operation comprising:
independently requesting execution of services by a job scheduler integrated with an application server.
16. A computer-readable device embodying a computer program, said computer program, when executed by a computer, directing the computer to perform the operation comprising:
independently requesting execution of services by an application server framework comprising a job scheduler, said application server framework being integrated with an application server.
17. The computer-readable device according to claim 16, further comprising:
establishing by a connection controller of the application server framework a connection to a service requested to be executed.
18. The computer-readable device according to claim 16, further comprising:
transmitting a handle of the connection to the service to the job scheduler after establishing the connection.
19. The computer-readable device according to claim 17, further comprising:
receiving by a listener of the application server framework the request for the service.
20. A computer-readable device embodying a computer program, said computer program, when executed by a computer, directing the computer to perform the operation comprising:
starting up an application server framework installed on the computer system;
determining by the application server framework whether a service is requested by an application server, based upon a job scheduler of the application server of the computer system, or by a client computer of the computer system;
determining by the application server framework whether the requested service is executable by the application server, if the request for service is made by the client computer;
establishing a connection to the service by the application server and executing the service, if the requested service is executable by the application server or if the service is requested by the application server;
executing the requested service by the client computer if the client computer requested the service and if the service is not executable by the application server; and
notifying the application server of the completion of the service if the application server requested the service, and notifying the client computer of the completion of the service if the client computer requested the service.
21. The computer-readable device according to claim 20, wherein the computer program further directs the computer to transmit to the application server the handle of the service if the application server requested the service, and transmit to the client computer the handle of the service if the client computer requested the service.
22. An apparatus comprising:
application servers working in concert with each other; and
a job scheduler controlling the application servers to work in concert with each other.
23. The apparatus according to claim 22, wherein said job scheduler is integrated with one of the application servers and independently requests execution of services, said apparatus further comprising a connection controller, coupled to the job scheduler, establishing connections with services based upon the requested execution of services.
24. The apparatus according to claim 22, wherein said job scheduler is integrated with one of the application servers and independently requests execution of services, said apparatus further comprising a listener, coupled to the connection controller, receiving requests for execution of services and transmitting the requested execution of services to the connection controller.
25. The apparatus according to claim 24, wherein said job scheduler is integrated with one of the application servers and independently requests execution of services, said apparatus further comprising a service broker, coupled to the listener, transmitting the requests for execution of services to the listener.
26. The apparatus according to claim 22, further comprising:
a schedule, coupled to the job scheduler, storing a list of the requested execution for a service; and
a list of services executable corresponding to locations at which the services are executable.
27. The apparatus according to claim 22, further comprising a Department of Defense Standard Desktop Procurement System.
28. The apparatus according to claim 22, wherein the application servers comprises at least two application servers, and the job scheduler is integrated with the at least two application servers.
29. The apparatus according to claim 28, wherein one of the at least two application servers is designated as a primary application server, said apparatus further comprising client computers coupled to the primary application server.
30. The apparatus according to claim 28, further comprising a load balancer determining which one of the at least two application servers able to execute the requested service will execute the requested service, based upon the load on each of the at least two application servers.
US10/460,221 1999-07-26 2003-06-13 Application server framework Abandoned US20030208548A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/460,221 US20030208548A1 (en) 1999-07-26 2003-06-13 Application server framework

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/359,773 US6598067B1 (en) 1999-07-26 1999-07-26 Application server framework
US10/460,221 US20030208548A1 (en) 1999-07-26 2003-06-13 Application server framework

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/359,773 Continuation US6598067B1 (en) 1999-07-26 1999-07-26 Application server framework

Publications (1)

Publication Number Publication Date
US20030208548A1 true US20030208548A1 (en) 2003-11-06

Family

ID=23415213

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/359,773 Expired - Lifetime US6598067B1 (en) 1999-07-26 1999-07-26 Application server framework
US10/460,221 Abandoned US20030208548A1 (en) 1999-07-26 2003-06-13 Application server framework

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/359,773 Expired - Lifetime US6598067B1 (en) 1999-07-26 1999-07-26 Application server framework

Country Status (1)

Country Link
US (2) US6598067B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040177158A1 (en) * 2003-03-07 2004-09-09 Bauch David James Network address translation techniques for selective network traffic diversion
US20050010923A1 (en) * 2003-07-11 2005-01-13 Davis Bradford C. Trigger support for a bi-directional broker
US20080275944A1 (en) * 2007-05-04 2008-11-06 International Business Machines Corporation Transaction-initiated batch processing
US20120084753A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Debugger launch and attach on compute clusters
US20140330964A1 (en) * 2006-03-01 2014-11-06 Cisco Technology, Inc. Technique for optimized routing of data streams on an ip backbone in a computer network

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6598067B1 (en) * 1999-07-26 2003-07-22 American Management Systems, Inc. Application server framework
GB2354090B (en) * 1999-09-08 2004-03-17 Sony Uk Ltd Distributed service provider
US7693961B2 (en) * 2000-06-30 2010-04-06 Sharp Kabushiki Kaisha Method and system for supplying programs
US7500243B2 (en) * 2000-08-17 2009-03-03 Sun Microsystems, Inc. Load balancing method and system using multiple load balancing servers
US7657450B2 (en) * 2000-12-08 2010-02-02 Microsoft Corporation Reliable, secure and scalable infrastructure for event registration and propagation in a distributed enterprise
US7197749B2 (en) * 2000-12-19 2007-03-27 Xerox Corporation Method and system for executing batch jobs by delegating work to independent service providers
US20020078117A1 (en) * 2000-12-19 2002-06-20 Wang Baldonado Michelle Q. System for creating efficient multi-step document conversion services
US20020142273A1 (en) * 2001-03-30 2002-10-03 Dollins James T. Interactive process learning aid
US20030188188A1 (en) * 2002-03-15 2003-10-02 Microsoft Corporation Time-window-constrained multicast for future delivery multicast
US20030212770A1 (en) * 2002-05-10 2003-11-13 Sreekrishna Kotnur System and method of controlling software components
WO2004097566A2 (en) * 2003-04-24 2004-11-11 Secureinfo Corporation Automated electronic software distribution and management method and system
GB0313375D0 (en) * 2003-06-10 2003-07-16 Symbian Ltd Method of connecting a client running on a computing device to a server running on a different computing device
EP1639459A2 (en) * 2003-06-13 2006-03-29 Equifax, Inc. Systems and processes for automated criteria and attribute generation, searching, auditing and reporting of data
US11132183B2 (en) 2003-08-27 2021-09-28 Equifax Inc. Software development platform for testing and modifying decision algorithms
WO2005022348A2 (en) * 2003-08-27 2005-03-10 Equifax, Inc. Application processing and decision systems and processes
JP4603256B2 (en) * 2003-12-01 2010-12-22 日本電気株式会社 User authentication system
US7543042B2 (en) * 2004-04-28 2009-06-02 International Business Machines Corporation Remote access method for accessing dynacache data
US8255502B2 (en) * 2004-05-18 2012-08-28 Oracle International Corporation Dynamic domain administration utility
US20050283446A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Fee models based on plug-in use
US8028285B2 (en) * 2004-07-22 2011-09-27 Computer Associates Think, Inc. Heterogeneous job dashboard
US9600216B2 (en) * 2004-07-22 2017-03-21 Ca, Inc. System and method for managing jobs in heterogeneous environments
US8427667B2 (en) * 2004-07-22 2013-04-23 Ca, Inc. System and method for filtering jobs
US7984443B2 (en) 2004-07-22 2011-07-19 Computer Associates Think, Inc. System and method for normalizing job properties
US7886296B2 (en) 2004-07-22 2011-02-08 Computer Associates Think, Inc. System and method for providing alerts for heterogeneous jobs
US7698731B2 (en) * 2004-10-25 2010-04-13 Panasonic Corporation Security architecture and mechanism to access and use security components in operating system
US8726282B1 (en) 2006-05-01 2014-05-13 Open Invention Network, Llc Job scheduler for remote maintenance of servers and workstations
US8313005B2 (en) * 2006-08-03 2012-11-20 Kraft Foods Global Brands, Llc Plastic coffee container with pinch grip
US9264483B2 (en) 2007-07-18 2016-02-16 Hammond Development International, Inc. Method and system for enabling a communication device to remotely execute an application
EP2186000A4 (en) * 2007-08-07 2011-09-07 Equifax Inc Systems and methods for managing statistical expressions
CN101378400B (en) * 2007-08-30 2013-01-30 国际商业机器公司 Method, server and system for polymerizing desktop application and Web application
US8695001B2 (en) * 2007-09-20 2014-04-08 Microsoft Corporation Loading services based on a request and setting permission level to enable execution of commands or services exposed based on a role of requester
US9645845B2 (en) * 2007-09-27 2017-05-09 Sap Se Triggering job execution in application servers based on asynchronous messages sent by scheduling tasks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778368A (en) * 1996-05-03 1998-07-07 Telogy Networks, Inc. Real-time embedded software respository with attribute searching apparatus and method
US6065123A (en) * 1995-03-06 2000-05-16 Intel Corporation Computer system with unattended on-demand availability
US6598067B1 (en) * 1999-07-26 2003-07-22 American Management Systems, Inc. Application server framework

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0547903B1 (en) * 1991-12-17 2001-10-31 Texas Instruments Incorporated Method and system for isolating data and information collection components from other components in a distributed environment
US5414845A (en) * 1992-06-26 1995-05-09 International Business Machines Corporation Network-based computer system with improved network scheduling system
GB9414951D0 (en) * 1994-07-25 1994-09-14 British Telecomm Computer system having client-server architecture
US5812780A (en) * 1996-05-24 1998-09-22 Microsoft Corporation Method, system, and product for assessing a server application performance
US5953229A (en) * 1996-09-24 1999-09-14 Environmental Research Institute Of Michigan Density-based emergent scheduling system
US5893106A (en) 1997-07-11 1999-04-06 International Business Machines Corporation Object oriented server process framework with interdependent-object creation
US6222530B1 (en) * 1998-08-21 2001-04-24 Corporate Media Partners System and method for a master scheduler

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065123A (en) * 1995-03-06 2000-05-16 Intel Corporation Computer system with unattended on-demand availability
US5778368A (en) * 1996-05-03 1998-07-07 Telogy Networks, Inc. Real-time embedded software respository with attribute searching apparatus and method
US6598067B1 (en) * 1999-07-26 2003-07-22 American Management Systems, Inc. Application server framework

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040177158A1 (en) * 2003-03-07 2004-09-09 Bauch David James Network address translation techniques for selective network traffic diversion
US20040177359A1 (en) * 2003-03-07 2004-09-09 Bauch David James Supporting the exchange of data by distributed applications
US7260599B2 (en) * 2003-03-07 2007-08-21 Hyperspace Communications, Inc. Supporting the exchange of data by distributed applications
US20050010923A1 (en) * 2003-07-11 2005-01-13 Davis Bradford C. Trigger support for a bi-directional broker
US7757235B2 (en) * 2003-07-11 2010-07-13 Computer Associates Think, Inc. Trigger support for a bi-directional broker
US20140330964A1 (en) * 2006-03-01 2014-11-06 Cisco Technology, Inc. Technique for optimized routing of data streams on an ip backbone in a computer network
US20080275944A1 (en) * 2007-05-04 2008-11-06 International Business Machines Corporation Transaction-initiated batch processing
US7958188B2 (en) 2007-05-04 2011-06-07 International Business Machines Corporation Transaction-initiated batch processing
US20110197194A1 (en) * 2007-05-04 2011-08-11 International Business Machines Corporation Transaction-initiated batch processing
US8495136B2 (en) 2007-05-04 2013-07-23 International Business Machines Corporation Transaction-initiated batch processing
US20120084753A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Debugger launch and attach on compute clusters
US8589885B2 (en) * 2010-09-30 2013-11-19 Microsoft Corporation Debugger launch and attach on compute clusters

Also Published As

Publication number Publication date
US6598067B1 (en) 2003-07-22

Similar Documents

Publication Publication Date Title
US6598067B1 (en) Application server framework
US10091210B2 (en) Policy enforcement of client devices
US5978813A (en) System for providing synchronization between a local area network and a distributing computer environment
US7509672B1 (en) Cross-platform single sign-on data sharing
US5902352A (en) Method and apparatus for task scheduling across multiple execution sessions
JP3963692B2 (en) Power control method for a plurality of information processing apparatuses, information processing apparatus, and program
US7013294B1 (en) License management system
US7975266B2 (en) Remote installation of computer resources
US9195450B2 (en) Program execution service windows
WO1996027827A1 (en) A computer system with unattended on-demand availability
EP1329809B1 (en) Distributed computing system and method
CN103797461B (en) Network system
US7877750B2 (en) Scheduled job execution management
KR100735875B1 (en) System and method for remote access to a server and running multiple operating systems using live booting medium
JPH09190393A (en) Information processing method, information processor and information processing system
WO2004090660A2 (en) Controlling usage of system resources by a network manager
JP2002358135A (en) Device and method for managing software use, program for allowing computer to perform its method and computer readable recording medium with its program recorded
AU1807801A (en) Thread-based methods and systems for using the idle processing power of one or more networked computers to solve complex scientific problems
JP2002288405A (en) Method for project management, project managing server, accepting server, and program
Fagg et al. Taskers and general resource managers: PVM supporting DCE process management
US6502121B1 (en) System and method for processing a recurrent operation
JP2003058266A (en) License management method and license management program
JP3600373B2 (en) Computer operation control method
Zandy et al. Checkpoints of GUI-based Applications.
JP2002149461A (en) File backup system and its method

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION