Managed services platform

Information

  • Patent Grant
  • 8266304
  • Patent Number
    8,266,304
  • Date Filed
    Thursday, June 16, 2005
    19 years ago
  • Date Issued
    Tuesday, September 11, 2012
    12 years ago
Abstract
A managed services platform. An applications management server is provided for managing relationships with application service providers and other entities over a wide area network such as the Internet. The applications management server interfaces with a master database server and the servers of one or more application service providers, or other entities, to facilitate selection and deselection of applications, services, and capabilities that may be available for use by the information technology network of a company.
Description
FIELD OF THE INVENTION

The present invention relates to software management systems and, more particularly, to systems and methods for selecting, ordering, installing, managing, updating, and if necessary, uninstalling software applications provided to an entity by one or more application service providers (ASPs) or other sources.


BACKGROUND OF THE INVENTION

Recently, substantial attention has been directed to the field of software management tools. One reason for this is that many vendors or purveyors of software now distribute their products directly to customers via wide area networks such as the Internet. Such vendors often are referred to as “Application Service Providers” or “ASPs.” Generally, businesses use ASPs as a means for outsourcing information technology (IT) functions to specialists. Moreover, rather than purchasing expensive software, high-powered computers, high-end telecommunications equipment, and the like, companies often now choose to rent or lease applications from ASPs, and they often access or use selected applications through the Internet. While this model allows companies to achieve significant savings from a hardware and software purchasing and maintenance perspective, the model may introduce significant management issues, where for example, multiple ASPs provide applications to a single entity.


Accordingly, it is believed that businesses may find systems, methods, and applications for managing ASP relationships to be quite useful.


SUMMARY OF THE INVENTION

In one particularly innovative aspect, the present invention is directed to systems and methods for enabling a company to manage its relationships with one or more ASPS, or other software sources. In one presently preferred embodiment, an applications management server may be deployed within a company and used to interface with a master database server and the servers of one or more ASPs. The interface preferably occurs via the Internet, thus enabling a personal computer, web computer, or other network appliance coupled to the management server to interact with the master database server and the servers of the ASPs.


For example, using a browser application provided on a personal computer, it is possible interact with the management server and query the master database server to identify those applications, services, and subscriptions that are available, as well as those which are currently being utilized within a company. Further, through the use of an appropriate graphic user interface (GUI) a user of the browser may add selected applications, functions, or capabilities to the company network, and the user may remove applications, functions, or capabilities that are no longer needed by the company. The result of these actions may be communicated, for example, through the Internet to the master database server, and the master database server may thereafter interact with any relevant ASP servers to enable or disable selected applications, functions, or features. In addition, the master database server may provide electronic messages to any personnel having responsibility for tasks necessary to carry out a transaction or complete an action.


Accordingly, it is an object of the invention to provide improved systems, methods, and applications for managing ASP relationships over a wide area network, such as the Internet.





BRIEF DESCRIPTION OF THE DRAWINGS

Various objects and advantages and a more complete understanding of the present invention are apparent and more readily appreciated by reference to the following Detailed Description and to the appended claims when taken in conjunction with the accompanying Drawings wherein:



FIG. 1 is a block diagram illustrating a system for managing ASP and other relationships over a wide area network, such as the Internet, in accordance with a preferred form of the present invention;



FIG. 2 is a block diagram illustrating the components of a software subscription management module in accordance with a preferred form of the present invention;



FIG. 3 is an illustration of a graphic user interface (GUI) used in accordance with the present invention; and



FIGS. 4(
a)-4(d) comprise a series of screen images that may be used by a GUI in accordance with the present invention.





DETAILED DESCRIPTION

As shown in FIG. 1, in one presently preferred form, a system 10 for managing ASP and other relationships over a wide area network 16, such as the Internet, may comprise an applications management server 12, a personal computer, web computer, or other network appliance 14, a wide area network 16, a master database server 18, and a plurality of ASP servers 20(a) and 20(b). The applications management server 12 and the master database server 18 may be implemented using standard PC compatible hardware including, for example, a 400 MHz CELERON® processor manufactured by Intel Corporation. However, in one presently preferred form, the master database server 18 comprises a 733 MHz PENTIUM® processor manufactured by Intel Corp., 512 MB of RAM (or other suitable memory), and AMI Megaraid SCSI RAID hardware configured to make three 9 G disks look like one 18 G disk in RAID5 mode. The applications management server 12 preferably comprises a 500 MHz CELERON® processor manufactured by Intel Corp., 64 MB of RAM (or other suitable memory), and a 10.2 GB hard disk drive.


The applications management server 12 and master database server 18 may be coupled to the Internet 16 via dial up, ISDN, DSL, or any other protocol that supports TCP/IP. The master database server 18 also may employ database management software available from any of a number of vendors including Microsoft Corp., Oracle Corp., and Sleepy Cat, Inc.


The applications management server 12 may be deployed within a company and used to interface with the master database server 18 and the servers of one or more ASPs 20(a) and 20(b). The interface preferably occurs via the Internet 16, thus enabling a personal computer, web computer, or other network appliance 14 coupled to the applications management server 12 to interact with the master database server 18 and the servers of the ASPs 20(a) and 20(b).


For example, using a browser application (not shown) provided on the personal computer 14, it is possible to interact with the applications management server 12 and query the master database server 18 to identify those applications, services, and subscriptions that are available, as well as those which are currently being utilized within a company. Further, through the use of an appropriate graphic user interface (GUI), a user of the browser (not shown) may add selected applications, functions, or capabilities to the company network, and the user may remove applications, functions, or capabilities that are no longer needed by the company. The result of these actions may be communicated, for example, through the Internet 16 to the master database server 18, and the master database server 18 may thereafter interact with any relevant ASP servers 20(a) and 20(b) to enable or disable selected applications, functions, or capabilities. In addition, the master database server 18 may provide electronic messages to any personnel 22 having responsibility for tasks necessary to carry out a transaction or complete an action.


In one presently preferred embodiment, a software subscription management module 50, shown in FIG. 2, will be configured on the applications management server 12, and the software subscription management module 50 may comprise a graphic user interface (GUI) submodule 52 and a backend support submodule 54. As will be described in more detail below, using a typical browser application, such as Microsoft Explorer® or Netscape Navigator®, the user (not shown) of the personal computer 14 may access the GUI submodule 52 provided on the applications management server 12, and by interfacing with the GUI, may view a list of applications, services, or capabilities that are provided on a network (not shown) of a company, as well as, a list of applications, services, or capabilities that are available for use by the network. The user also may access historical data relevant to the network using the GUI.


In a preferred form, all queries issued by the applications management server 12 are in the form of hypertext transfer protocol (HTTP) requests and include a unique ID for the management applications server as part of a Uniform Resource Locator (URL). Those skilled in the art will appreciate, however, that other communications protocols, such as file transfer protocol (FTP) or hypertext transfer protocol secure (HTTPS), also may be used for queries issued by the applications management server 12.


Turning now to a description of the GUI, the GUI 100, shown in FIG. 3, preferably includes a subscription management item 102 and, if desired, a subscriptions history item 104. The subscription management item 102 may be used to retrieve a display of all applications, services, and capabilities that are available to the network, together with a plurality of “subscribe” and “unsubscribe” buttons 106(a) and (b) for enabling a user to select one or more offerings for use by the system. The subscriptions history item 104 may be used to display, for example, a chronological history of those offerings that have been utilized by the network in the past.


Using the GUI 100, a system administrator 14 can retrieve a list 107 of available applications or services, and using the displayed list, the administrator 14 can select desired items to be installed on the applications management server 12, or other servers (not shown), within a local area network (LAN) or wide area network (WAN). The administrator also may view a history of all applications or services that have been selected for use within network over a prescribed period of time.


Preferably, the GUI 100 issues back-end commands that will cause any necessary HTTP requests to be generated, and information returned from the applications management server 12 or the master database server 18 will be parsed, formatted, and sent to a standard output. The GUI 100 may then read in the output from the back-end process and display the information to the administrator 14 along with any necessary interactive items, such as the subscribe and unsubscribe buttons 108(a) and (b) described above.


Preferably, whenever a list 107 of available services or applications is presented to an administrator, the list 107 will include all available applications or services, and the administrator 14 will be allowed to select services or applications for subscription or cancellation. The history item 104 may be used to display a chronological history of selected services or applications.


Turning now to FIGS. 4(a)-(d), in accordance with another preferred form of the present invention the GUI 100 may include a series of screen images that include a field 111 denoting the number of application licenses 110 that may be required for a given enterprise and a list of services or applications 107 that are available to the enterprise. If it is desired to change the number of licenses required by the enterprise, a user of the system may simply click on a change button 112 to access, for example, a pulldown menu (not shown) offering different licensing levels. The user also may initiate a subscription sequence by clicking on a subscribe button 106(a) provided adjacent one of the application listings. Following initiation of the subscription sequence, the user may be presented with another screen 103, which includes a download now button 114 for initializing an application download sequence and an unsubscribe button 106(b) adjacent the selected application. If the user clicks on the download now button 114 an application download sequence will be initiated, and the user may be presented with a new screen 105 including an install now button 116. By clicking on the install now button, the user may cause the selected application to be installed on the applications management server 12 or, if desired, on another server (not shown) included within the users LAN. Lastly, one the selected application has been installed, the user may be presented with a screen 109 that includes a check icon 118 adjacent the service that has been selected and installed upon the user's network.


Table 1, below, provides an exemplary representation of the components comprising the subscriptions management item 102 (shown in FIG. 3), wherein “xxx” comprises the name of the service or application that will be subscribed to or unsubscribed from.












TABLE 1






Form




Form Field
Field
Corresponding ti.conf
Appears in


Name
Type
Variable
Form







subscribe_xxx
Submit
SUBSCRIP-
SnapIn.php



button
TION_ADD_SERVICES



unsubscribe_xxx
Submit
SUBSCRIP-
SnapIn.php



button
TION_ADD_SERVICES









Turning now to a description of the backend support module 54 and related system programs, the backend support module 54 employs several scripts and routines described below to enable selection or deselection of services or applications in response to instructions received from the GUI 100.


In one preferred embodiment, a sysSubscriptionQuery routine, comprising a perl script, is used to create http queries for Peabody Software service APIs using inputs to the script and two ti.conf variables. A returned value from the query is sent to the standard output (not shown) of the GUI 100.


A sysSubscriptionQuery: System Calling routine passes an API name as a first parameter and, if necessary, a service identifier as a second parameter. Thus, the call does not require a service identifier. An exemplary call for a service listing may read as follows: /use/local/ti/bin/sysSubscriptionQuery GetServices. Whereas, a call to subscribe to a particular service requires an identification of the service to be subscribed to and may read as follows: /use/local/ti/bin/sysSubscriptionQuery Subscribe 100.


A sysSubscriptionQuery: System Operation routine enables the hostname of a server (not shown) to query and the path to an API script to be pulled from the ti.conf variable SUBSCRIPTION_QUERY_HOST_PATH. The API passed to this program is used as part of the name of the script to call on the server (not shown). The query to the script preferably comprises a DeviceKey, stored in SERIAL_NUMBER, and optionally a ServiceID, e.g., the name of the service to be subscribed to. Preferably, a HTTP::Request object is created with a GET method, and an LWP::UserAgent request is made using the HTTP::Request object. The response to the request is stored in a HTTP::Response object. If the request is successful the content of the response is sent to the standard output (not shown) of the GUI 100. Otherwise, an error is printed as a HTML document. Those skilled in the art will appreciate that in some circumstances the Response object may be parsed and formatted prior to being printed to the standard output (not shown).


In one preferred form, a SusUnsubscribe script uninstalls any RedHat Package Managers (RPMs) associated with a service being unsubscribed, and a SetServiceDisabled request is sent to the subscription server. In addition, a susUnsubscribe:System Calling script is called with the name of the service to unsubscribe. The script may read as follows: /use/local/ti/bin/sysUnsubscripe 100.


A susUnsubscribe:System Operation script may be used to check a repository directory in /usrlocal/redphish/snapin for a directory that matches a servicename. If there is no matching service name, then an error is reported, and the service is not unsubscribed. If the directory exists, a rpm-e command may be issued against each rpm in the directory. After the packages are uninstalled the directory and the files within are deleted.


A sysUpdateSubscriptions script may be used to check for a SUBSCRIPTION_ADD_SERVICES array in ti.conf and for each service listed may download the relevant files and install them on the applications management server 12.


To perform service installations, a sysUpdateSubscriptons: System Operation routine is preferably utilized. Thus, for each service listed in SUBSCRIPTION_ADD_SERVICES a GetServiceLocation query is made to the subscription server. The information returned from the server is used to transfer (via ftp) the RPMs to a Peabody system. Once all of the RPMs for a service have been downloaded they may be installed with the following command: rpm-U*.rpm. If any of the RPM packages fail to load, then none of them will be loaded. When a loading failure occurs, two additional loading attempts will be made to download and install the relevant files, before a given loading process will be abandoned, and installation of the next service will be initiated. If all the packages install then the service name will be removed from the SUBSCRIPTION_ADD_SERVICES array.


Table 2, below, sets forth a preferred set of data structures that may be used in accordance with the present invention.









TABLE 2







Statement format with default values (if any) and description


STATEMENT = <arg1>m<arg2>m<arg3>,?,<argN>


Where <arg1>is?.


SUBSCRIPTION_QUERY_HOST_PATH = <URL>


Where <URL> is the hostname and path to the script that process the


queries. This is set the first time the subscription software is run.


Default: blank


SUBSCRIPTION_ID = <ID>


Where <ID> is the numerical id of the machine. This is set when the


subscription software is used for the first time.


Defaults: blank


SUBSCRIPTION_ADD_SERVICES = <service id>


This array is used to store the services selected from the GUI that need to


be installed during the next update.


SUBSCRIPTION_INTERVAL = <number of days>


The number of days between updates.


Default: blank









In one presently preferred form, the backend support module utilizes a HTTP API for Software Subscriptions Management. Each API call preferably is in the form of a HTTP query with parameters passed as key-value pairs, and each response preferably is a list of key-value pairs in plain text form. The API call preferably has one of the two following formats: http://<host>/<path>/<API>/.cgi?DeviceID=<DeviceID[&ServiceID=<Number>or http://<host>/<path>/<GetServiceLocation.cgi?ServiceID=<Number>where: <host>identifies the software subscription server, and the host's name is stored in SOFTWARE_UPDATE_HOST; <DeviceID> is a unique number identifying the machine and may be the serial number of, for example, the applications management server 12 or the MAC address of the Ethernet card of the server 12 that is coupled to the Internet; and <Number> is the numeric identifier of the requested service. It will be appreciated by those skilled in the art that the <DEVICE_ID> also may be a series of numbers followed by a checksum, as would be the case with a typical InstaGate machine of the type that is well known in the art.


As an example, the request set forth below could represent a Subscribe request from a machine with an Ethernet hardware address of 00:A0:CC:69:55:B2 for service 1040—a tax software package. In the example, the subscription server is located at subscriptions.esoft.com, the scripts are in cgi.bin, and the software is located on blades.esoft.com in the directory /home/software/tax. In addition, the software is accessible with the password sn2ggl3.


Request:




  • http://subscriptions.esoft.com/cgi-bin/Subscribe.cgi?DeviceID+00A0CC6955B2&ServiceID=1040


    Result:



Result: 1


Request:




  • http://subscriptions.esoft.com/cgi-bin/GetServiceLocation?ServiceID=1040



Result:


Hostname:blades.esoft.com


Path:tax


Username:softname


Password:sn2ggl3


As explained above, in a preferred form a GetServices request will retrieve a list of available services that can be subscribed to by a requesting machine, and it will indicate which services are already subscribed to. The parameters and return values used in accordance with a GetServices request may comprise those set forth in Tables 3(a) and 3(b), below.









TABLE 3(a)







GetServices: Parameters











Name
Type
Description






DeviceKey
Hex Number
Composed of the digits of





the MAC address of eht1
















TABE 3(b)







GetServices: Return Values









Name
Type
Description





ServiceID
Number
a unique identifier for the service


ServiceTitle
String
a brief title for the service


ServiceDesc
String
a brief description of the service


ServiceFee
String
How much the service will cost.


Subscribed
Number
Boolean value - 1 for subscribed, 0 for not




subscribed


StartDate
mm/dd/yy
Date subscription started if already




subscribed.


Enabled
Number
Boolean value - 1 for enabled, 0 for




disabled


CoreService
Number
Boolean value - 1 indicates the service is a




core service. If Enabled is 0 for a core




service then disable the system.


Available
Number
Boolean value - 1 indicates the service is




available if it is a 0 then the installed service




must be disabled. This record is optional.









The parameters and return values used with a Subscribe request are set forth in Tables 4(a) and 4(b), and the parameters and return values used within an Unsubscribe request are set forth in Tables 5(a) and 5(b), below.









TABLE 4(a)







Subscribe: Parameters









Name
Type
Description





DeviceKey
Hex Number
Composed of the digits of the MAC




address of eth1


ServiceID
Number
A unique identifier for service
















TABLE 4(b)







Subscribe: Return Values











Name
Type
Description






Result
Number
Boolean value - 1 if successfully





subscribed, 0 otherwise
















TABLE 5(a)







Unsubscribe: Parameters









Name
Type
Description





DeviceKey
Hex Number
composed of the digits of the MAC




address of eth1


ServiceID
Number
a unique identifier for the service
















TABLE 5(b)







Unsubscribe: Return Values











Name
Type
Description






Result
Number
Boolean value - 1 successfully





unsubscribed, 0 otherwise









The parameters and return values used with a GetContactInfo request are set forth in Tables 6(a) and 6(b), below. However, when a subscription server is successfully contacted, “NextDay” and “Time” fields stored within the memory (not shown) of the subscriptions management server 12 preferably will dictate when to contact the server again. If the applications management server 12 fails to contact a server at a specified time, then the applications management server 12 preferably will attempt to establish contact three additional times over the course of the next fifteen minutes, e.g., once every 5 minutes. If all three retries fail, the device should give up and try again in the number of days specified in an “Interval” field, but at the same designated “Time”.









TABLE 6(a)







GetContactInfro: Prameters











Name
Type
Description






DeviceKey
Hex
Composed of the digits of the MAC




Number
address of eth1
















TABLE 6(b)







GetContactInfo: Return values









Name
Type
Description





NextDay
mm/dd/yyyy
The next day to contact the back office


Time
hh:ss
The time of day (in 24 hour time) to




query the back office


Interval
Number
The frequency in days to query the




back office


URLBase
String
The URL to be used for the next




update/verification. The URL




contains the protocol, host, and path




up to the beginning of the API portion.









The parameters and return values used with a SetService Enabled request are set forth in Tables 7(a) and 7(b), below.









TABLE 7(a)







SetServiceEnabled: Parameters









Name
Type
Description





DeviceKey
Hex Number
Composed of the digits of the MAC




address of eth1


ServiceID
Number
A unique identifier for the service
















TABLE 7(b)







SetServiceEnabled: Return Values











Name
Type
Description







Result
Number
Boolean value 1 if set enabled





successfully, 0 otherwise










The parameters and return values used with a SetServiceDisabled request are set forth in Tables 8(a) and 8(b), below.









TABLE 8(a)







SetServiceDisabled: Parameters









Name
Type
Description





DeviceKey
Hex Number
composed of the digits of the MAC




address of eth1


ServiceID
Number
a unique identifier for the service
















TABLE 8(b)







SetServiceDisabled: Return Values











Name
Type
Description







Result
Number
Boolean value 1 if set disabled





successfully, 0 otherwise










The parameters and return values used with a GetServiceLocation request are set forth in Tables 9(a) and 9(b), below.









TABLE 9a







GetServiceLocation: Parameters











Name
Type
Description







ServiceID
Number
a unique identifier for the service



DeviceKey
Hex
The unique identifier for the machine.




Number

















TABLE 9(b)







GetServiceLocation: Return Value









Name
Type
Description





Hostname
String
Name identifier for the service


Path
String
Path from login directory to software


Username
String
Username to use to log in with


Password string
String
Password for the Username









In another aspect, the GUI 100 (or system front end) may use the support files listed in Table 10(a), below, and the backend support module may use the support files listed in Table 10(b), below.












TABLE 10(a)







/Path/Filename
Description









Ti/_Support/Snapin.php
This script displays the available




service and its current state.


















TABLE 10(b)





/Path/Filename
Description







/sysUnsubscribe
Script that unsubscribes to the specified



service


sysSubscriptionQuery
Creates the URI for the query, issues the



query and sends the results back.


SysUpdateSubscritions
Script that downloads and installs



subscribed software









Those skilled in the art will appreciate that, in addition to the systems and methodologies descrided herein, the present invention is directed to the computer software applications, programs, protocols, routines, and instructions (collectively “computer programming instructions”) that are used to implement the above-described features and functions. Computer programming instructions preferably are stored within memory of the system, and may be received or transmitted via a communications interface. When executed by a processor (not shown) of the applications management server 12 or database management server 18, the programming instructions will enable the system 10 to perform various methods and processes in accordance with the present invention and, therefore, represent controllers of the system 10 and, potentially, any ASP servers 20(a) and 20(b) that may be included within the system 10.


In this document, the term “computer program product” is used to refer to any media that may be used to provide programming instructions or data to the system 10, or to any server or processor within the system 10, through for example, the Internet. Examples of such media include any memory products used by or within the system 10, any storage drives or devices (whether fixed or removable) used by or within the system 10, and any signals that may be transmitted to, from, or within the system 10.


Because the invention is susceptible to various modifications and alternative forms, specific examples thereof have been shown in the drawings and are herein described in detail. It should be understood, however, that the invention is not to be limited to the particular forms or methods disclosed, but to the contrary, the invention should encompass all modifications, alternatives, and equivalents falling within the spirit and scope of the appended claims.

Claims
  • 1. A system for managing software application subscriptions, the system comprising: a plurality of software application providers, each configured to deliver at least one software application to a client;a subscription management server in communication with the plurality of software application providers, the subscription management server configured to store at least an identifier for each of the at least one software applications; andan application management server in communication with the subscription management server, the application management server positioned as an intermediary between the subscription management server and the client, and configured to request the subscription management server for client access to the at least one software application.
  • 2. The system of claim 1, wherein at least one of the plurality of software application providers is an application service provider.
  • 3. The system of claim 1, wherein at least one of the plurality of software application providers is a server-based application service provider.
  • 4. The system of claim 1, wherein at least one of the plurality of software application providers is a vendor-based application service provider.
  • 5. The system of claim 1, wherein at least one of the plurality of software application providers resides on a network shared with the subscription management server.
  • 6. The system of claim 1, wherein at least one of the plurality of software application providers is an open-source organization.
  • 7. The system of claim 1, wherein at least one of the plurality of software application providers is an organization that distributes open source applications.
  • 8. The system of claim 7, wherein the organization provides the at least one software application without any modifications.
  • 9. The system of claim 7, wherein the organization provides the at least one software application in combination with at least one additional software application.
  • 10. The system of claim 7, wherein the at least one software application is modified, altered, supplemented or otherwise augmented by the organization.
  • 11. The system of claim 7, wherein a single organization provides the subscription management server, the application management server, and the at least one software application.
  • 12. The system of claim 11, wherein the single organization receives the at least one software application from a third party.
  • 13. The system of claim 12, wherein the third party is an application services provider.
  • 14. The system of claim 12, wherein the at least one software application is altered, modified, supplemented or otherwise augmented by the single organization.
  • 15. The system of claim 1, wherein at least one of the plurality of software application providers is an open-source vendor.
  • 16. The system of claim 1, wherein a plurality of organizations provide the subscription management server, the application management server, and the at least one software application.
  • 17. The system of claim 1, wherein the software application provider is adapted to deliver a single application.
  • 18. The system of claim 1, wherein the software application provider is adapted to deliver a plurality of software applications.
  • 19. The system of claim 1, wherein the software application provider is an enterprise application services provider.
  • 20. The system of claim 1, wherein the software application provider resides within a local area network.
  • 21. The system of claim 20, wherein the local area network is an end-user computer network.
  • 22. The system of claim 1, wherein the software application provider resides on a third party computer network.
  • 23. The system of claim 1, wherein the software application is distributed via a wide area network.
  • 24. The system of claim 23, wherein the wide area network is the world wide web.
  • 25. The system of claim 23, wherein the wide area network is a wireless network.
  • 26. The system of claim 23, wherein the wide area network is selected from the group consisting of a cable network, PCS/GSM, TDMA, CDMA, 3G, 802.xx, WLANS, WIFI, and WiMax.
  • 27. The system of claim 1, wherein the software application is distributed via a local area network.
  • 28. The system of claim 1, wherein the subscription management server and the application management server comprise one or more of a read only memory, a random access memory, a user interface, a central processing unit, a clock, an integrated circuit, and a communications port.
  • 29. The system of claim 1, wherein the client is an end-user of the at least one software application.
  • 30. The system of claim 1, wherein the client is the application management server.
  • 31. The system of claim 30, wherein the application management server provides the at least one software application to an end-user of the software application.
  • 32. The system of claim 1, wherein the client is the subscription management server.
  • 33. A machine implemented method for managing software application subscriptions, comprising: accessing at least one of a plurality of software distribution providers, each software distribution provider configured to provide at least one software application to a client;storing, at a subscription management server, an identifier for the at least one software application;requesting, at an application management server, access to the at least one software application, wherein the application management server is positioned as an intermediary between the subscription management server and the client; andproviding the application management server access to the at least one software application through the subscription management server.
  • 34. The method of claim 33, further comprising modifying, altering, supplementing or otherwise augmenting the at least one software application prior to providing the application management server access to the at least one software application.
  • 35. The method of claim 33, wherein the software distribution provider is an application service provider.
  • 36. The method of claim 33, wherein the software distribution provider resides on a wide area network.
  • 37. The method of claim 33, wherein the software distribution provider resides on a local area network.
  • 38. The method of claim 33, wherein the software distribution provider is an open source organization.
  • 39. The method of claim 33, wherein the software distribution provider is an open source vendor.
  • 40. The method of claim 33, wherein the software distribution provided is an organization that distributes open source applications.
  • 41. The method of claim 33, wherein the software distribution provider resides on a network shared with the subscription management server.
  • 42. The method of claim 33, wherein the subscription management server and the application management server comprise one or more of a read only memory, a random access memory, a user interface, a central processing unit, a clock, an integrated circuit, and a communications port.
  • 43. A system for managing software application subscriptions, the system comprising: a plurality of software application sources, each configured to deliver at least one software application to a client;a subscription management server in communication with the plurality of software application sources, the subscription management server configured to store at least an identifier for the at least one software application; andan application management server in communication with the subscription management server, the application management server positioned as an intermediary between the subscription management server and the client, and configured to request the subscription management server for client access to the at least one software application.
  • 44. The system of claim 43, wherein at least one of the plurality of software application sources is configured to deliver the at least one software application to the subscription management server.
  • 45. The system of claim 43, wherein at least one of the plurality of software application sources is configured to deliver the at least one software application to the application management server.
  • 46. The system of claim 43, wherein at least one of the plurality of software application sources is configured to deliver the at least one software application to the subscription management server and the application management server.
  • 47. The system of claim 43, wherein the at least one software application is altered, modified, supplemented, or otherwise augmented prior to providing the application management server access to the at least one software application.
  • 48. The system of claim 43, wherein the client is an end-user of the at least one software application.
  • 49. The system of claim 43, wherein the client is the application management server.
  • 50. The system of claim 49, wherein the application management server provides the at least one software application to an end-user of the software application.
  • 51. The system of claim 43, wherein the client is the subscription management server.
Parent Case Info

This application is a continuation application of application Ser. No. 09/766,469, filed Jan. 19, 2001 now U.S. Pat. No. 6,961,773, the entire content of which is hereby incorporated by reference.

US Referenced Citations (172)
Number Name Date Kind
4791565 Dunham et al. Dec 1988 A
4815030 Cross et al. Mar 1989 A
4937863 Robert et al. Jun 1990 A
4992940 Dworkin Feb 1991 A
5023907 Johnson et al. Jun 1991 A
5138712 Corbin Aug 1992 A
5155809 Baker et al. Oct 1992 A
5204897 Wyman Apr 1993 A
5283868 Baker et al. Feb 1994 A
5329619 Page et al. Jul 1994 A
5341477 Pitkin et al. Aug 1994 A
5371532 Gelman et al. Dec 1994 A
5375206 Hunter et al. Dec 1994 A
5388215 Baker et al. Feb 1995 A
5410703 Nilsson et al. Apr 1995 A
5423003 Berteau Jun 1995 A
5438508 Wyman Aug 1995 A
5440744 Jacobson et al. Aug 1995 A
5442771 Filepp et al. Aug 1995 A
5522041 Murakami et al. May 1996 A
5539822 Lett Jul 1996 A
5548722 Jalalian et al. Aug 1996 A
5553239 Heath et al. Sep 1996 A
5553241 Shirakihara Sep 1996 A
5557747 Rogers et al. Sep 1996 A
5579222 Baines et al. Nov 1996 A
5581764 Fitzgerald et al. Dec 1996 A
5586304 Stupek et al. Dec 1996 A
5602991 Berteau Feb 1997 A
5642515 Jones et al. Jun 1997 A
5644718 Belove et al. Jul 1997 A
5668950 Kikuchi et al. Sep 1997 A
5671412 Christiano Sep 1997 A
5671414 Nicolet Sep 1997 A
5678007 Hurvig Oct 1997 A
5680548 Trugman Oct 1997 A
5680549 Raynak et al. Oct 1997 A
5692129 Sonderegger et al. Nov 1997 A
5694546 Reisman Dec 1997 A
5694550 Takeda et al. Dec 1997 A
5699526 Siefert Dec 1997 A
5706437 Kirchner et al. Jan 1998 A
5708960 Kamisaka et al. Jan 1998 A
5724525 Beyers et al. Mar 1998 A
5729682 Marquis et al. Mar 1998 A
5732219 Blumer et al. Mar 1998 A
5748493 Lightfoot et al. May 1998 A
5748897 Katiyar May 1998 A
5757925 Faybishenko May 1998 A
5758068 Brandt et al. May 1998 A
5761499 Sonderegger Jun 1998 A
5761662 Dasan Jun 1998 A
5764914 Goto et al. Jun 1998 A
5774668 Choquier et al. Jun 1998 A
5790664 Coley et al. Aug 1998 A
5809237 Watts et al. Sep 1998 A
5809287 Stupek et al. Sep 1998 A
5815665 Teper et al. Sep 1998 A
5826027 Pedersen et al. Oct 1998 A
5832219 Pettus Nov 1998 A
5835911 Nakagawa et al. Nov 1998 A
5838911 Resenhauser et al. Nov 1998 A
5845077 Fawcett Dec 1998 A
5859978 Sonderegger et al. Jan 1999 A
5859979 Tung et al. Jan 1999 A
5862339 Bonnaure et al. Jan 1999 A
5867661 Bittinger et al. Feb 1999 A
5881144 Havens Mar 1999 A
5884039 Ludwig et al. Mar 1999 A
5886991 Guarneri et al. Mar 1999 A
5905860 Olsen et al. May 1999 A
5918213 Bernard et al. Jun 1999 A
5919247 Van Hoff et al. Jul 1999 A
5923885 Johnson et al. Jul 1999 A
5925127 Ahmad Jul 1999 A
5930357 Fukui Jul 1999 A
5933646 Hendrickson et al. Aug 1999 A
5937162 Funk et al. Aug 1999 A
5940074 Britt et al. Aug 1999 A
5940504 Griswold et al. Aug 1999 A
5941949 Pedersen Aug 1999 A
5949975 Batty et al. Sep 1999 A
5956485 Perlman Sep 1999 A
5956490 Buchholz et al. Sep 1999 A
5961586 Pedersen Oct 1999 A
5978848 Maddalozzo, Jr. et al. Nov 1999 A
5991402 Jia et al. Nov 1999 A
5995965 Experton Nov 1999 A
5999740 Rowley Dec 1999 A
6006035 Nabahi Dec 1999 A
6009274 Fletcher et al. Dec 1999 A
6009469 Mattaway et al. Dec 1999 A
6012100 Frailong et al. Jan 2000 A
6029201 Neill Feb 2000 A
6035423 Hodges et al. Mar 2000 A
6038595 Ortony Mar 2000 A
6044403 Gerszberg et al. Mar 2000 A
6047323 Krause Apr 2000 A
6047376 Hosoe Apr 2000 A
6049670 Okada et al. Apr 2000 A
6049671 Slivka et al. Apr 2000 A
6049789 Frison et al. Apr 2000 A
6052711 Gish Apr 2000 A
6052725 McCann et al. Apr 2000 A
6058425 White May 2000 A
6058426 Godwin et al. May 2000 A
6073214 Fawcett Jun 2000 A
6078931 Motoyama Jun 2000 A
6088451 He et al. Jul 2000 A
6088717 Reed et al. Jul 2000 A
6101527 Lejeune et al. Aug 2000 A
6101542 Miyamoto et al. Aug 2000 A
6105063 Hayes, Jr. Aug 2000 A
6105066 Hayes, Jr. Aug 2000 A
6108420 Larose et al. Aug 2000 A
6108712 Hayes et al. Aug 2000 A
6115743 Cowan et al. Sep 2000 A
6119162 Li et al. Sep 2000 A
6119163 Monteiro et al. Sep 2000 A
6128644 Nozaki Oct 2000 A
6128776 Kang Oct 2000 A
6131121 Mattaway et al. Oct 2000 A
6134591 Nickles Oct 2000 A
6134593 Alexander et al. Oct 2000 A
6138160 Boies et al. Oct 2000 A
6141759 Braddy Oct 2000 A
6144960 Okada et al. Nov 2000 A
6151643 Cheng et al. Nov 2000 A
6154781 Bolam et al. Nov 2000 A
6157944 Pedersen Dec 2000 A
6161137 Ogdon et al. Dec 2000 A
6167449 Arnold et al. Dec 2000 A
6169976 Colosso Jan 2001 B1
6173316 De Boor et al. Jan 2001 B1
6189146 Misra et al. Feb 2001 B1
6202207 Donohue Mar 2001 B1
6223291 Puhl et al. Apr 2001 B1
6256668 Slivka et al. Jul 2001 B1
6269393 Yost et al. Jul 2001 B1
6269456 Hodges et al. Jul 2001 B1
6271846 Martinez et al. Aug 2001 B1
6272536 Van Hoff et al. Aug 2001 B1
6282709 Reha et al. Aug 2001 B1
6282711 Halpern et al. Aug 2001 B1
6292889 Fitzgerald et al. Sep 2001 B1
6314167 Johnson Nov 2001 B1
6327617 Fawcett Dec 2001 B1
6339826 Hayes et al. Jan 2002 B2
6347336 Song et al. Feb 2002 B1
6374229 Lowrey et al. Apr 2002 B1
6405266 Bass et al. Jun 2002 B1
6460140 Schoch et al. Oct 2002 B1
6510466 Cox et al. Jan 2003 B1
6546002 Kim Apr 2003 B1
6574612 Paolo et al. Jun 2003 B1
6594819 Ciarlante et al. Jul 2003 B1
6615258 Barry et al. Sep 2003 B1
6658452 Becker et al. Dec 2003 B1
6782527 Kouznetsov et al. Aug 2004 B1
6826398 Lagerstrom et al. Nov 2004 B1
6931546 Kouznetsov et al. Aug 2005 B1
6938080 Kahveci et al. Aug 2005 B1
6968384 Redding et al. Nov 2005 B1
6990660 Moshir et al. Jan 2006 B2
7035918 Redding et al. Apr 2006 B1
7062567 Benitez et al. Jun 2006 B2
7072934 Helgeson et al. Jul 2006 B2
7200632 Greschler et al. Apr 2007 B1
7275095 Lebouill Sep 2007 B1
20010047386 Domenikos Nov 2001 A1
20010049632 Rigole Dec 2001 A1
20020010776 Lerner Jan 2002 A1
Foreign Referenced Citations (22)
Number Date Country
2268683 Oct 2000 CA
0332304 Sep 1989 EP
05-274275 Oct 1993 JP
06-223040 Aug 1994 JP
07-200492 Aug 1995 JP
08-137768 May 1996 JP
09-054734 Feb 1997 JP
09-305675 Nov 1997 JP
10-187455 Jul 1998 JP
11-007391 Jan 1999 JP
04-23JP04-23541 Aug 1999 JP
2000-022753 Jan 2000 JP
2000-030889 Jan 2000 JP
2000-047870 Feb 2000 JP
2000-132397 May 2000 JP
1008262 Nov 1999 NL
1012322 Dec 2000 NL
2155984 Oct 2000 RU
507319 Sep 1997 SE
WO9220022 Dec 1992 WO
WO0072185 Nov 2000 WO
WO0101313 Jan 2001 WO
Related Publications (1)
Number Date Country
20060021014 A1 Jan 2006 US
Continuations (1)
Number Date Country
Parent 09766469 Jan 2001 US
Child 11154891 US