WO2003048956A1 - System for hosting software applications on distributed servers, apparatus and method thereof - Google Patents

System for hosting software applications on distributed servers, apparatus and method thereof Download PDF

Info

Publication number
WO2003048956A1
WO2003048956A1 PCT/SG2001/000245 SG0100245W WO03048956A1 WO 2003048956 A1 WO2003048956 A1 WO 2003048956A1 SG 0100245 W SG0100245 W SG 0100245W WO 03048956 A1 WO03048956 A1 WO 03048956A1
Authority
WO
WIPO (PCT)
Prior art keywords
hosting
central controller
access point
access
software applications
Prior art date
Application number
PCT/SG2001/000245
Other languages
French (fr)
Inventor
Hwee Hwa Pang
Original Assignee
Kent Ridge Digital Labs
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 Kent Ridge Digital Labs filed Critical Kent Ridge Digital Labs
Priority to AU2002222887A priority Critical patent/AU2002222887A1/en
Priority to PCT/SG2001/000245 priority patent/WO2003048956A1/en
Publication of WO2003048956A1 publication Critical patent/WO2003048956A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention relates to a system for hosting software applications on distributed systems, and more particularly, to at least one apparatus within this system and methods of operating such apparatus.
  • Another problem is that, although leading data centers are building more hosting facilities, the footprint of each individual data center is expected to remain limited due to a multitude of factors. Besides capital considerations, those factors include the limited availability of suitable locations, difficulty with local regulations and business relationships, and the existence of entrenches competitors/partners. Consequently, a service operator that maintains a data center may require its users to pay for expensive long-distance lease lines, or rely on internet connections that are likely to go over often-congested public peering points.
  • U.S. Patents 5,991,773 and 6,243,760 describe mechanisms to implement distributed caches, while U.S. Patents 5,920,725, 6,003,087 and 6,185,608 further provide methods to dynamically cache contents.
  • Such services are already being offered by content delivery providers like Akamai, Digital Island and Exodus.
  • content delivery providers like Akamai, Digital Island and Exodus.
  • these prior art systems and products support only content.
  • the software applications that generate the content are still centralized, and transactions (e.g. purchases) still have to be performed at a central site. This leads to long network latencies, high connection costs, and user dissatisfaction.
  • U.S. Patent 6,115,710 proposed a system for distributing an application to distributed servers that may be of heterogeneous configuration, by automatically packaging the source code of the application and sending it for compilation and linking at each distributed server.
  • This patent did not cover the issue of matching the service level of distributed servers and applications. It also did not allow an application to span multiple servers, for example, a web server, application server and data server, and to involve network configurations.
  • a further object is to provide a method of operating an access point in a distributed server system having one or more hosting sites and a central controller, comprising the steps of: (a) requesting a software application from the central controller, (b) registering with the central controller, (c) receiving authentication information and a list of hosting sites having the requested software application, and (d) accessing the software application from one of the listed hosting sites.
  • Yet another object is to provide a method of operating a hosting site in a distributed server system having at least one access point and a central controller, comprising the steps of: (a) sending a communication to the central controller including information related to the hosting site; (b) receiving a software application form the central controller; (c) receiving a request from said at least one access point for access to the received software application; and (d) running the software application for said at least one access point. It is another object of the present invention to provide a hosting site for hosting software applications that may be accessed by one or more remote points in a system that has a plurality of distributed servers, according to the method above.
  • a system for hosting software applications on distributed servers comprising: (a) a central controller operating to maintain software applications, register one or more access points, deploy software applications to one or more hosting sites, and communicate to each of one or more access points a list of hosting sites for accessing each software application, (b) said one or more access points for accessing an application from at least one of the listed hosting sites, and (c) said at least one hosting site for determining whether said one or more access points has permission to access the requested application, and running the application for said one or more access points.
  • FIG. 1 shows a simplified representation of an architecture of a distributed server system, or virtual data center, having a central controller, a hosting site, and an access point, according to the present invention
  • FIG. 2 depicts a simplified representation of a hosting site interacting with an access point according to the present invention
  • FIG. 3 is a view of a distributed server system including a central controller, one or more access points, and multiple hosting sites, which are connected to one another via the Internet, according to the present invention
  • FIG. 4(a) is a flowchart showing a method of operating a central controller for receiving a request for a software application from an access point according to the present invention
  • FIG. 4(b) is a flowchart showing a method of operating a central controller for deploying a software application to a hosting site accordingly to the present invention
  • FIG. 5 is a flowchart showing a method of operating an access point for requesting and accessing a software application according to the present invention
  • FIG. 6 is a flowchart showing a method of operating a hosting site for receiving and running a software application according to the present invention
  • FIG. 7(a) is a block diagram of a central controller according to the present invention
  • FIG. 7(b) is a block diagram of a hosting site according to the present invention.
  • FIG. 7(c) is a block diagram of an access point according to the present invention.
  • FIG. 1 shows in simplified schematic form the architecture of a distributed server system 1, or virtual data center, having a central controller 2, a hosting site 4, and access point 3, according to the present invention.
  • a central controller 2 a hosting site 4
  • access point 3 a hosting site 4
  • FIG. 1 shows in simplified schematic form the architecture of a distributed server system 1, or virtual data center, having a central controller 2, a hosting site 4, and access point 3, according to the present invention.
  • the central controller 2 stores, lists and maintains a group of software applications that are actually hosted or hostable in the system 1.
  • a required service level, deployment configuration, and hardware information can be associated with each of the software applications as stored in the central controller 2.
  • a hosting site 4 within the system 1 is operative to communicate to the central controller 2 several items of information in a transmission (b), including its location, supported service level and hardware information. While one hosting site 4 is shown in the exemplary illustration of the system 1, a plurality of hosting sites may appear in the system and serve as a basis for hosting a plurality of software applications in an efficient and effective manner for access by a large number of remotely dispersed users.
  • Such users would be located at separate remote sites, such as the single access point 3 illustrated for exemplary purposes in Fig. 1, and would be operative to communicate to the central controller 2 a transmission (c), including for example, its location and the applications that is needs. Based on these inputs, the central controller 2 provides a transmission (d) assigning each application to one or more hosting sites (only one is illustrated in the exemplary system but more typically would be use). The application can be deployed to one or more of the available hosting sites 4 according to a desired system configuration and the appropriate hardware configuration at each site. In practice, the central controller 2 will determine whether the data embodying the application may be replicated on multiple hosting sites 4, maintained at one hosting site 4, or held at the central controller 2.
  • the central controller 2 communicates to each access point 3 a transmission
  • an access point 3 may issue a transmission (f) requesting access to an application that currently is being hosted by the system 1 or is hostable by one or more of the hosting sites 4.
  • an authorized hosting site 4 will run the application for the access point and provide the results to the access point in a transmission (g).
  • the hosting site 4 may also provide the results to the central controller (not shown).
  • the hosting site 4 can interactively accept inputs from the access point 3 via a console.
  • any data requests generated by the application being run at one hosting site 4 can be satisfied through coordinated actions with other of a multiple of hosting sites, by the single hosting site acting alone, or by a communication with the central controller 2, depending on how the data is stored and the application executed.
  • FIG. 2 shows generally how an application is deployed at a hosting site 4.
  • a hosting site 4A receives a request from an access point 3 for access to a particular application.
  • all requests from access points first arrive at a firewall (not shown), and are directed to a web server process 11 A over a router/switch (not shown).
  • the web server process may issue requests to an application server process 12A over a router/switch (not shown), which in turn may generate data requests that arrive at a distributed data service (14A) over a router/switch (not shown).
  • the distributed data service 13 A coordinates with another hosting site B to satisfy the request, either from a local data server process (14B) or a remote data server process
  • Each router/switch can optionally implement firewall and virtual private network functions.
  • a hosting site serves multiple applications
  • its web service components may be provided by a shared web server process, or dedicated web server processes, depending on the applications' configuration requirements.
  • the routers/switches, application server processes and data server processes may be shared or dedicated.
  • the server hardware that run the server processes may be shared or dedicated.
  • a central controller 2, multiple hosting sites 4, and one or more access points 3 are connected to each other via the Internet to form the network 10.
  • the manner in which the central controller 2, multiple hosting sites 4, and one or more access points 3 are connected, is not limited to the Internet.
  • These devices may be connected in any presently known network, such as an intranet, as well as any future developed networks.
  • the method of operation and communication between the central controller 2, multiple hosting sites 4, and one or more access points 3 in FIG. 3 are essentially the same as that which is described in FIG. 1. However, a more detailed description of the method of operation of each of the devices in the present invention will be described below.
  • FIG. 4(a) is a flowchart showing a method of operating a central controller in connection with receiving a request for a software application from an access point.
  • a central controller 2 stores, lists, maintains and optionally supports a plurality of software applications. As indicated above, a required service level, deployment configuration and hardware information may be associated with the software applications. The central controller 2 then receives a request for one of the software applications from an access point 3 (SI 00). In reply, the central controller 2 will register the access point 3 that desires to use the software application (SI 10). The central controller
  • the central controller 2 then sends authentication information and a list of hosting sites 4 to the requesting access point 3 (S120).
  • the authentication information can be used for security purposes to later verify that the access point has permission from the central controller to access a particular application.
  • the central controller 2 can maintain the list of available hosting sites 4 and their capabilities within an accessible database. That is, a record can be kept of each hosting site, its currently resident software applications, along with any other relevant information related to the respective hosting site in the database, such as capacity, current availability, processing speed and the like.
  • the relevant information may include location information, supported service levels, and hardware specifications of each of the hosting sites 4.
  • FIG. 4(b) is a flowchart showing a method of operating a central controller 2 in connection with the deployment of a software application to a hosting site 4 according to the present invention.
  • the central controller 2 maintains a plurality of software applications (SI 50).
  • the central controller 2 can either store the software applications in its own memory or control a separate device that stores the software applications.
  • Software updates and maintenance are controlled by the central controller 2, and any changes or upgrades to the software applications can be communicated from the central controller 2 to a hosting site 4 that has a software application.
  • the records maintained by the central controller of each hosting site would be used for this purpose.
  • the central controller 2 determines whether a hosting site 4 is configured to receive a particular application (SI 60). The central controller 2 can make this determination based on an automatic operation of the central controller 2, a manual input, or a request from a hosting site 4 for a particular application. If the central controller 2 determines that the hosting site 4 is not configured to currently receive the particular application, the central controller 2 sends a message, for example one indicating "Improper Configuration", to the hosting site 4 (SI 80). If the central controller 2 determines that the hosting site 4 is configured to receive the particular application, the central controller 2 deploys the software application along with authentication information to the hosting site (SI 70). Similar to the authentication information discussed above that is sent to the access points in step S120, the authentication information sent to the hosting site 4 is also used to verify that an access point has authorization from the central controller 2 to access a particular software application.
  • FIG. 5 is a flowchart showing a method of operating an access point 3 for purposes of requesting and accessing a software application according to the present invention.
  • An access point 3 requests a software application from the central controller 2 (S300). With the central controller's permission, the access point 3 performs a registration operation with the central controller 2 (S310). While registering, the access point 3 may send its location, capability and other (e.g., security level) information to the central controller 2. The access point then receives from the central controller 2 a list of hosting sites 4 having the requested software application (S320). Notably, such list may be further limited by the security or capability of available links between the hosting site and the access point, or similar considerations. Along with the list of hosting sites, the access point 3 also receives authentication information. Using the list of authorized hosting sites, the access point 3 accesses the requested software application from one of the listed hosting sites (S330).
  • the access point 3 can be configured to go to a second hosting site 4 to access the software application.
  • the first hosting site 4 can transfer the initial request of the access point to a second listed hosting site 4. This may be done in a manner illustrated in Fig. 2, so that the requesting access point 3 can access the software application from the second hosting site 4 through the first hosting site in a relay fashion, or by having the second site accept a forwarding of the request from the first site and respond to the access point directly.
  • FIG. 6 is a flowchart showing a method of operating a hosting site for receiving and running a software application according to the present invention.
  • a hosting site 4 sends a communication to a central controller 2 that includes information about the hosting site 4 (S400). This information can include, by example and without limitation, location information, a supported service level, and/or a hardware specification of the hosting site 4.
  • the hosting site 4 then receives one or more software applications and authentication information from the central controller (S410).
  • the hosting site 4 receives one or more software applications based on its configuration and available hardware.
  • the authentication information is for determining whether an access point 3 has permission to access particular software applications.
  • the hosting site 4 receives a request for a particular software application from an access point 3 (S420).
  • the hosting site 4 determines whether it has the requested software application (S430). If the hosting site 4 does not have the requested software application, a message indicating "NO APPLICATION" is sent
  • the hosting site can request access to the application from the central controller 2, await receipt of the application and then satisfy the request.
  • the central controller upon receiving the request and knowing that the hosting site does not have the application but is the most appropriate site to satisfy the access point request (because of limited capacity network link connections), may automatically send the application to the selected hosting site. If the hosting site 4 determines that it does have the requested software application, the hosting site then determines whether the requesting access point 3 has authorization to access the requested software application (S440). The hosting site performs this determination using the authentication information it received from the central controller 2 in step S410.
  • the hosting site determines that the requesting access point 3 does not have authorization to access the requested software application, a message indicating "NO AUTHORIZATION" is sent to the access point (S470). If the hosting site determines that the requesting access point 3 has authorization to access the requested software application, then the hosting site 4 serves, or runs, the software application for the requesting access point (S450).
  • the host site 4 may accept console inputs from the access point 3, and output data and screen images to the access point 3.
  • the hosting site 4 may output data to the central controller 2.
  • the hosting site may output information related to the user's charges to the central location.
  • FIG. 7(a) is a block diagram of a central controller 2 according to the present invention.
  • the central controller 2 includes an input/output (I/O) unit 106 for transmitting and receiving data; a central processing unit (CPU) 105 for registering access points that request to be registered, generating commands to send software applications to hosting sites 4, and generating commands to send a list of hosting sites 4 having each application to a requesting access point 3; and a memory for storing software applications (SA), a list of hosting sites (HS) having each application, and authentication information (Al).
  • SA software applications
  • HS hosting sites
  • Al authentication information
  • the memory of the central controller 2 can store the information indicated above in a database.
  • the database may also contain location information, supported service levels, and hardware configurations of the hosting sites 4.
  • the memory of the central controller 2 also stores data and applications (OPER) that are necessary for the general operation of the central controller 2.
  • FIG. 7(b) is a block diagram of a hosting site according to the present invention.
  • a hosting site 4 includes an input/output (I/O) unit 406 for transmitting a communication, receiving software applications sent from a central controller 2, and receiving requests to access one of the software applications; a central processing unit (CPU) 405 for generating a communication to send to the central controller 2, processing requests from the access point 3 to access at least one of the software applications, and running the software applications for the access point; and a memory 401 for storing software applications (SA') received from the central controller 2.
  • the communication can include information such as location information, a supported service level, and a hardware specification of the hosting site 4.
  • the memory 401 of the hosting site 4 also stores authentication information (Al 1 ), and data and applications (OPER 1 ) that are necessary for the general operation of the hosting site 4.
  • FIG. 7(c) is a block diagram of an access point according to the present invention.
  • An access point 3 comprises an input/output (I/O) unit 306 for transmitting and receiving data; a central processing unit (CPU) 305 for generating a request to register and a request to access a software application; and a memory for storing a list of hosting sites that have certain software applications.
  • the memory 301 of the access point 3 also store authentication information (Al"), and data and applications (OPER") necessary for the general operation of the access point 3.
  • the access point 3 also comprises a console 307, which includes, for example and without limitation, a monitor, keyboard, and/or a mouse, by which an operator can monitor and interact with the access point.
  • a console 307 which includes, for example and without limitation, a monitor, keyboard, and/or a mouse, by which an operator can monitor and interact with the access point.

Abstract

A system having a plurality of access points, a plurality of hosting sites, and a central controller, wherein each access point can access application services on one or more of a plurality of hosting sites. The system deploys each application to one or more hosting sites, according to the service level and hardware provided by the hosting sites, the service level and hardware requirement of the application, and the location of the access points. The system includes, but is not limited to , a central controller operating to maintain software applications, register access points, deploy software applications to one or more hosting sites, and communicate to each of one or more access points a list of hosting sites for accessing each software application. It also includes access points for accessing an application from at least one of the listed hosting sites. It further includes at least one hosting site for determining whether the access points have authorization to access the requested application and running the application for the access points if such authorization exists.

Description

SYSTEM FOR HOSTING SOFTWARE APPLICATIONS ON DISTRIBUTED SERVERS, APPARATUS AND METHOD
THEREOF
BACKGROUND OF THE INVENTION
1. Field of the invention The present invention relates to a system for hosting software applications on distributed systems, and more particularly, to at least one apparatus within this system and methods of operating such apparatus.
2. Description of the Related Art The internet hosting industry is rapidly developing into one of the most critical segments of the internet infrastructure services market, and represents an attractive investment opportunity today. Hosting companies, or data centers, provide the underlying infrastructure needed to maintain and operate Web-site, application, and storage services. These companies establish secure facilities where the network interface, server, database, and other equipment needed to support the services, are kept. They also provide IT services using network, server and database engineers, as well as firewall and security services.
As each data center is built to provide a certain service level, most data centers offer standard packages so that they may enjoy economies of scale, and do not allow customizations. This is a problem, in that a customer who desires more than a standard level of service may be forced to engage high-cost, premium hosting facilities for all its software applications and users, unless the customer is willing to liaise via switches with multiple data centers and endure the problem of service disruptions that often occur in switching data centers.
Another problem is that, although leading data centers are building more hosting facilities, the footprint of each individual data center is expected to remain limited due to a multitude of factors. Besides capital considerations, those factors include the limited availability of suitable locations, difficulty with local regulations and business relationships, and the existence of entrenches competitors/partners. Consequently, a service operator that maintains a data center may require its users to pay for expensive long-distance lease lines, or rely on internet connections that are likely to go over often-congested public peering points.
One way to speed up response time is to satisfy user requests from servers situated near them. U.S. Patents 5,991,773 and 6,243,760 describe mechanisms to implement distributed caches, while U.S. Patents 5,920,725, 6,003,087 and 6,185,608 further provide methods to dynamically cache contents. Such services are already being offered by content delivery providers like Akamai, Digital Island and Exodus. However, these prior art systems and products support only content. The software applications that generate the content are still centralized, and transactions (e.g. purchases) still have to be performed at a central site. This leads to long network latencies, high connection costs, and user dissatisfaction.
The alternative to performing transactions centrally is to adopt a distributed architecture. Distributed systems and databases have been investigated extensively. For example, load scheduling, where the total mix of processes in a distributed system is known in advance, online scheduling, for systems where information on the workload is not available in advance, and data consistency issues have been addressed. However, these studies do not address the problem of deploying applications on distributed servers with matching service levels, nor do they account for communication latencies between users and distributed servers, and among the distributed servers, over networks such as the Internet where turnaround time could vary widely.
U.S. Patent 6,115,710 proposed a system for distributing an application to distributed servers that may be of heterogeneous configuration, by automatically packaging the source code of the application and sending it for compilation and linking at each distributed server. This patent, however, did not cover the issue of matching the service level of distributed servers and applications. It also did not allow an application to span multiple servers, for example, a web server, application server and data server, and to involve network configurations.
SUMMARY OF THE INVENTION To solve the above problems, it is an objective of the present invention to provide a method of operating a central controller in a distributed server system having one or more hosting sites and at least one access point, comprising the steps of: (a) maintaining a plurality of software applications; (b) receiving a request for at least one of said plurality of software applications from said at least one access point; (c) registering said at least one access point that desires to use said sat least one of the plurality of software applications; (d) deploying said at least one of the plurality of software applications to one or more hosting sites; and (e) sending a list of hosting sites and authentication information to said at least one access point.
It is another object of the present invention to provide a system for hosting on distributed servers software applications that may be accessed selectively by users at remote access points, based on a coordinated distribution and authorization protocol managed by a central controller.
A further object is to provide a method of operating an access point in a distributed server system having one or more hosting sites and a central controller, comprising the steps of: (a) requesting a software application from the central controller, (b) registering with the central controller, (c) receiving authentication information and a list of hosting sites having the requested software application, and (d) accessing the software application from one of the listed hosting sites.
Yet another object is to provide a method of operating a hosting site in a distributed server system having at least one access point and a central controller, comprising the steps of: (a) sending a communication to the central controller including information related to the hosting site; (b) receiving a software application form the central controller; (c) receiving a request from said at least one access point for access to the received software application; and (d) running the software application for said at least one access point. It is another object of the present invention to provide a hosting site for hosting software applications that may be accessed by one or more remote points in a system that has a plurality of distributed servers, according to the method above.
Finally, it is an object to provide a system for hosting software applications on distributed servers, comprising: (a) a central controller operating to maintain software applications, register one or more access points, deploy software applications to one or more hosting sites, and communicate to each of one or more access points a list of hosting sites for accessing each software application, (b) said one or more access points for accessing an application from at least one of the listed hosting sites, and (c) said at least one hosting site for determining whether said one or more access points has permission to access the requested application, and running the application for said one or more access points.
BRIEF DESCRIPTION OF THE DRAWINGS
The above objective(s) and advantages of the present invention will become more apparent by describing in detail a preferred embodiment thereof with reference to the attached drawings in which:
FIG. 1 shows a simplified representation of an architecture of a distributed server system, or virtual data center, having a central controller, a hosting site, and an access point, according to the present invention;
FIG. 2 depicts a simplified representation of a hosting site interacting with an access point according to the present invention;
FIG. 3 is a view of a distributed server system including a central controller, one or more access points, and multiple hosting sites, which are connected to one another via the Internet, according to the present invention;
FIG. 4(a) is a flowchart showing a method of operating a central controller for receiving a request for a software application from an access point according to the present invention; FIG. 4(b) is a flowchart showing a method of operating a central controller for deploying a software application to a hosting site accordingly to the present invention; FIG. 5 is a flowchart showing a method of operating an access point for requesting and accessing a software application according to the present invention; FIG. 6 is a flowchart showing a method of operating a hosting site for receiving and running a software application according to the present invention;
FIG. 7(a) is a block diagram of a central controller according to the present invention; FIG. 7(b) is a block diagram of a hosting site according to the present invention; and
FIG. 7(c) is a block diagram of an access point according to the present invention.
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 shows in simplified schematic form the architecture of a distributed server system 1, or virtual data center, having a central controller 2, a hosting site 4, and access point 3, according to the present invention. In a practical system, there would be a plurality of hosting points and a plurality of access points, all communicating with a central controller.
With reference to FIG. 1, and according to a first embodiment of the present invention, the central controller 2 stores, lists and maintains a group of software applications that are actually hosted or hostable in the system 1. A required service level, deployment configuration, and hardware information can be associated with each of the software applications as stored in the central controller 2. A hosting site 4 within the system 1 is operative to communicate to the central controller 2 several items of information in a transmission (b), including its location, supported service level and hardware information. While one hosting site 4 is shown in the exemplary illustration of the system 1, a plurality of hosting sites may appear in the system and serve as a basis for hosting a plurality of software applications in an efficient and effective manner for access by a large number of remotely dispersed users. Such users would be located at separate remote sites, such as the single access point 3 illustrated for exemplary purposes in Fig. 1, and would be operative to communicate to the central controller 2 a transmission (c), including for example, its location and the applications that is needs. Based on these inputs, the central controller 2 provides a transmission (d) assigning each application to one or more hosting sites (only one is illustrated in the exemplary system but more typically would be use). The application can be deployed to one or more of the available hosting sites 4 according to a desired system configuration and the appropriate hardware configuration at each site. In practice, the central controller 2 will determine whether the data embodying the application may be replicated on multiple hosting sites 4, maintained at one hosting site 4, or held at the central controller 2.
The central controller 2 communicates to each access point 3 a transmission
(e) containing an ordered list of hosting sites 4 that support some or all of the applications that are hosted within the system 1. Using the ordered list received from the central controller 2, an access point 3 may issue a transmission (f) requesting access to an application that currently is being hosted by the system 1 or is hostable by one or more of the hosting sites 4. When authorized to do so, according to one or more techniques that are subsequently identified, an authorized hosting site 4 will run the application for the access point and provide the results to the access point in a transmission (g). The hosting site 4 may also provide the results to the central controller (not shown). Also, during the process of running the application, the hosting site 4 can interactively accept inputs from the access point 3 via a console. In addition, any data requests generated by the application being run at one hosting site 4, can be satisfied through coordinated actions with other of a multiple of hosting sites, by the single hosting site acting alone, or by a communication with the central controller 2, depending on how the data is stored and the application executed.
FIG. 2 shows generally how an application is deployed at a hosting site 4. In FIG. 2, a hosting site 4A receives a request from an access point 3 for access to a particular application. According to this exemplary embodiment of the invention, all requests from access points first arrive at a firewall (not shown), and are directed to a web server process 11 A over a router/switch (not shown). In fulfilling the request, the web server process may issue requests to an application server process 12A over a router/switch (not shown), which in turn may generate data requests that arrive at a distributed data service (14A) over a router/switch (not shown). In FIG. 2, the distributed data service 13 A coordinates with another hosting site B to satisfy the request, either from a local data server process (14B) or a remote data server process
(not shown), while maintaining data consistency. Each router/switch can optionally implement firewall and virtual private network functions.
Where a hosting site serves multiple applications, its web service components may be provided by a shared web server process, or dedicated web server processes, depending on the applications' configuration requirements. Likewise, the routers/switches, application server processes and data server processes may be shared or dedicated. Furthermore, the server hardware that run the server processes may be shared or dedicated. In an exemplary embodiment, there is a distributed data service for each database.
Referring to FIG. 3, a central controller 2, multiple hosting sites 4, and one or more access points 3 are connected to each other via the Internet to form the network 10. The manner in which the central controller 2, multiple hosting sites 4, and one or more access points 3 are connected, is not limited to the Internet. These devices may be connected in any presently known network, such as an intranet, as well as any future developed networks. The method of operation and communication between the central controller 2, multiple hosting sites 4, and one or more access points 3 in FIG. 3 are essentially the same as that which is described in FIG. 1. However, a more detailed description of the method of operation of each of the devices in the present invention will be described below.
FIG. 4(a) is a flowchart showing a method of operating a central controller in connection with receiving a request for a software application from an access point.
According to another exemplary feature of the present invention, a central controller 2 stores, lists, maintains and optionally supports a plurality of software applications. As indicated above, a required service level, deployment configuration and hardware information may be associated with the software applications. The central controller 2 then receives a request for one of the software applications from an access point 3 (SI 00). In reply, the central controller 2 will register the access point 3 that desires to use the software application (SI 10). The central controller
2 will evaluate the eligibility of the access point to receive the requested application
(or any application for that matter) based upon a variety of criteria related to system requirements (technical), financial relationships (billing) and authorization (security). If eligible, the central controller 2 then sends authentication information and a list of hosting sites 4 to the requesting access point 3 (S120). The authentication information can be used for security purposes to later verify that the access point has permission from the central controller to access a particular application.
The central controller 2 can maintain the list of available hosting sites 4 and their capabilities within an accessible database. That is, a record can be kept of each hosting site, its currently resident software applications, along with any other relevant information related to the respective hosting site in the database, such as capacity, current availability, processing speed and the like. The relevant information may include location information, supported service levels, and hardware specifications of each of the hosting sites 4.
FIG. 4(b) is a flowchart showing a method of operating a central controller 2 in connection with the deployment of a software application to a hosting site 4 according to the present invention.
As mentioned above, the central controller 2 maintains a plurality of software applications (SI 50). The central controller 2 can either store the software applications in its own memory or control a separate device that stores the software applications. Software updates and maintenance are controlled by the central controller 2, and any changes or upgrades to the software applications can be communicated from the central controller 2 to a hosting site 4 that has a software application. The records maintained by the central controller of each hosting site would be used for this purpose.
The central controller 2 determines whether a hosting site 4 is configured to receive a particular application (SI 60). The central controller 2 can make this determination based on an automatic operation of the central controller 2, a manual input, or a request from a hosting site 4 for a particular application. If the central controller 2 determines that the hosting site 4 is not configured to currently receive the particular application, the central controller 2 sends a message, for example one indicating "Improper Configuration", to the hosting site 4 (SI 80). If the central controller 2 determines that the hosting site 4 is configured to receive the particular application, the central controller 2 deploys the software application along with authentication information to the hosting site (SI 70). Similar to the authentication information discussed above that is sent to the access points in step S120, the authentication information sent to the hosting site 4 is also used to verify that an access point has authorization from the central controller 2 to access a particular software application.
FIG. 5 is a flowchart showing a method of operating an access point 3 for purposes of requesting and accessing a software application according to the present invention.
An access point 3 requests a software application from the central controller 2 (S300). With the central controller's permission, the access point 3 performs a registration operation with the central controller 2 (S310). While registering, the access point 3 may send its location, capability and other (e.g., security level) information to the central controller 2. The access point then receives from the central controller 2 a list of hosting sites 4 having the requested software application (S320). Notably, such list may be further limited by the security or capability of available links between the hosting site and the access point, or similar considerations. Along with the list of hosting sites, the access point 3 also receives authentication information. Using the list of authorized hosting sites, the access point 3 accesses the requested software application from one of the listed hosting sites (S330). In the event that the access point 3 fails in its effort to access the software application from the hosting site 4 from which it first seeks to access the software application, (based upon failed links, failed hosting site, security or the like) the access point 3 can be configured to go to a second hosting site 4 to access the software application. Alternatively, the first hosting site 4 can transfer the initial request of the access point to a second listed hosting site 4. This may be done in a manner illustrated in Fig. 2, so that the requesting access point 3 can access the software application from the second hosting site 4 through the first hosting site in a relay fashion, or by having the second site accept a forwarding of the request from the first site and respond to the access point directly.
FIG. 6 is a flowchart showing a method of operating a hosting site for receiving and running a software application according to the present invention.
A hosting site 4 sends a communication to a central controller 2 that includes information about the hosting site 4 (S400). This information can include, by example and without limitation, location information, a supported service level, and/or a hardware specification of the hosting site 4. The hosting site 4 then receives one or more software applications and authentication information from the central controller (S410). The hosting site 4 receives one or more software applications based on its configuration and available hardware. The authentication information is for determining whether an access point 3 has permission to access particular software applications.
Next, the hosting site 4 receives a request for a particular software application from an access point 3 (S420). The hosting site 4 determines whether it has the requested software application (S430). If the hosting site 4 does not have the requested software application, a message indicating "NO APPLICATION" is sent
(S460). As an alternative, the hosting site can request access to the application from the central controller 2, await receipt of the application and then satisfy the request. A further alternative is for the central controller, upon receiving the request and knowing that the hosting site does not have the application but is the most appropriate site to satisfy the access point request (because of limited capacity network link connections), may automatically send the application to the selected hosting site. If the hosting site 4 determines that it does have the requested software application, the hosting site then determines whether the requesting access point 3 has authorization to access the requested software application (S440). The hosting site performs this determination using the authentication information it received from the central controller 2 in step S410. If the hosting site determines that the requesting access point 3 does not have authorization to access the requested software application, a message indicating "NO AUTHORIZATION" is sent to the access point (S470). If the hosting site determines that the requesting access point 3 has authorization to access the requested software application, then the hosting site 4 serves, or runs, the software application for the requesting access point (S450).
At this point, the host site 4 may accept console inputs from the access point 3, and output data and screen images to the access point 3. In addition, the hosting site 4 may output data to the central controller 2. For example, if the present invention is implemented in a system in which a user (at an access point) is charged for using a particular application (served from a hosting site), and the billing information is recorded at a central location, i.e., a central controller 2, the hosting site may output information related to the user's charges to the central location.
FIG. 7(a) is a block diagram of a central controller 2 according to the present invention.
The central controller 2 includes an input/output (I/O) unit 106 for transmitting and receiving data; a central processing unit (CPU) 105 for registering access points that request to be registered, generating commands to send software applications to hosting sites 4, and generating commands to send a list of hosting sites 4 having each application to a requesting access point 3; and a memory for storing software applications (SA), a list of hosting sites (HS) having each application, and authentication information (Al). The memory of the central controller 2 can store the information indicated above in a database. The database may also contain location information, supported service levels, and hardware configurations of the hosting sites 4. Finally, the memory of the central controller 2 also stores data and applications (OPER) that are necessary for the general operation of the central controller 2.
FIG. 7(b) is a block diagram of a hosting site according to the present invention. A hosting site 4 includes an input/output (I/O) unit 406 for transmitting a communication, receiving software applications sent from a central controller 2, and receiving requests to access one of the software applications; a central processing unit (CPU) 405 for generating a communication to send to the central controller 2, processing requests from the access point 3 to access at least one of the software applications, and running the software applications for the access point; and a memory 401 for storing software applications (SA') received from the central controller 2. The communication can include information such as location information, a supported service level, and a hardware specification of the hosting site 4. The memory 401 of the hosting site 4 also stores authentication information (Al1), and data and applications (OPER1) that are necessary for the general operation of the hosting site 4.
FIG. 7(c) is a block diagram of an access point according to the present invention.
An access point 3 comprises an input/output (I/O) unit 306 for transmitting and receiving data; a central processing unit (CPU) 305 for generating a request to register and a request to access a software application; and a memory for storing a list of hosting sites that have certain software applications. The memory 301 of the access point 3 also store authentication information (Al"), and data and applications (OPER") necessary for the general operation of the access point 3.
The access point 3 also comprises a console 307, which includes, for example and without limitation, a monitor, keyboard, and/or a mouse, by which an operator can monitor and interact with the access point.
Although these devices have been described with respect to specific network arrangements, i.e., the Internet, the present invention may be adopted to other networks, including, for example, a wireless network, without departing from the spirit and scope of the present invention. Although the preferred embodiment of the present invention has been described, it will be understood by those skilled in the art that the present invention should not be limited to the described preferred embodiment, but various changes and modifications can be made within the spirit and scope of the present invention as defined by the appended claims.

Claims

What is claimed is:
1. A method of operating a central controller in a distributed server system having one or more hosting sites and at least one access point, comprising the steps of:
(a) maintaining a plurality of software applications;
(b) receiving a request for at least one of said plurality of software applications from said at least one access point;
(c) registering said at least one access point that desires to use said at least one of the plurality of software applications;
(d) deploying said at least one of the plurality of software applications to one or more hosting sites; and
(e) sending a list of hosting sites and authentication information to said at least one access point.
2. The method of claim 1, further comprising maintaining at the central controller the list of hosting sites as a database.
3. The method of claim 2, wherein the database also contains at least location information, supported service levels, and hardware data of each of the listed hosting sites.
4. The method of claim 1, wherein the step (d) further comprises deploying said at least one of the plurality of software applications according to a configuration and hardware specification of said one or more hosting sites.
5. The method of claim 1, wherein in the distributed server system, devices are connected to one another via the Internet.
6. A method of operating an access point in a distributed server system having one of more hosting sites and a central controller, comprising the steps of:
(a) requesting a software application from the central controller;
(b) registering with the central controller; (c) receiving authentication information and a list of hosting sites having the requested software application; and
(d) accessing the requested software application from one of the listed hosting sites.
7. The method of claim 6, wherein before the step (c), sending location information to the central controller.
8. The method of claim 6, further comprising satisfying any data requests generated by the accessed software application by further accessing at least one of a hosting site and the central controller.
9. The method of claim 8, wherein a manner in which the requested data is stored determines whether said one or more hosting sites or said central controller satisfies the data requests generated by the software application.
10. The method of claim 6, wherein in the distributed server system, devices are connected to one another via the Internet.
11. The method of claim 6, wherein in the step (c), the access point is operative to interactively communicate with said one of the listed hosting sites.
12. A method of operating a hosting site in a distributed server system having at least one access point and a central controller, comprising the steps of:
(a) sending a communication to the central controller including information related to the hosting site;
(b) receiving a software application from the central controller;
(c) receiving a request from said at least one access point for access to the received software application; and
(d) running the software application for said at least one access point.
13. The method of claim 12, wherein in the step (a), the information comprises at least location information, a supported service level, and a hardware specification of the hosting site.
14. The method of claim 12, wherein the step (b) further comprises selectively receiving the software application based on a configuration and available hardware of the hosting site.
15. The method of claim 12, further comprising, receiving from the central controller authentication information for determining whether an access point has permission to access the received software application.
16. The method of claim 15, further comprising before the step (d), determining at the hosting site whether the access point has permission to access the requested application using the authentication information, and if it is determined that the access point has permission, then performing at the hosting site the step (d), and if it is determined that the access point does not have permission, then sending from the hosting site a message to the access point indicating that no access is allowed.
17. The method of claim 12, wherein in the distributed server system, devices are connected to one another via the Internet.
18. The method of claim 12, wherein in the step (d), the hosting site is operative to interactively communicate with said at least one access point.
19. A system for hosting software applications on distributed servers, comprising:
(a) a central controller operative to maintain software applications, register one or more access points, deploy software applications to one or more hosting sites, and communicate to each of one or more access points a list of hosting sites for accessing each software application;
(b) said one or more access points being operative to access an application from at least one of the listed hosting sites; and (c) said at least one hosting site being operative to determine whether said one or more access points has permission to access the requested application, and running the application for said one or more access points.
20. The system of claim 19, wherein the central controller, said one or more access points, and said at least one hosting site are connected to one another via the Internet.
21. A central controller of a distributed server system for hosting software applications on distributed servers, the system having one or more hosting sites and one or more access points, comprising:
(a) an input/output (I/O) unit for transmitting and receiving data;
(b) a central processing unit (CPU) for registering access points that request to be registered, sending software applications to said one or more hosting sites, and sending to a requesting access point a list of hosting sites having each application; and
(c) a memory for storing software applications and a list of said one or more hosting sites having each application.
22. The central controller of claim 21, wherein the list of said one or more hosting sites is stored as a database.
23. The central controller of claim 22, wherein the database also contains location information, supported service levels, and hardware specifications of each of the listed hosting sites.
24. The central controller of claim 22, wherein each of the software applications is sent to said one or more hosting sites according to a configuration or hardware specification of said one or more hosting sites.
25. A hosting site of a system for hosting software applications in a distributed server system having an access point and a central controller, comprising: (a) an input/output (I/O) unit for transmitting a communication, receiving software applications sent from the central controller, and receiving requests to access at least one of the software applications from the access point;
(b) a central processing unit (CPU) for sending a communication via the I/O unit, to the central controller, the communication includes information related to a hosting site, processing the requests from the access point to access said at least one of the software applications, and running the software applications for the access point; and
(c) a memory for storing software applications received from the central controller.
26. The hosting site of claim 25, wherein the information comprises location information, a supported service level, and a hardware specification.
27. The hosting site of claim 25, wherein the hosting site is operative to receive a software application from the central controller based on a configuration and hardware specification of the hosting site.
28. The hosting site of claim 25, wherein the hosting site is operative to receive from the central controller, authentication information for determining whether an access point has permission to access at least one of the received software applications.
PCT/SG2001/000245 2001-12-03 2001-12-03 System for hosting software applications on distributed servers, apparatus and method thereof WO2003048956A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2002222887A AU2002222887A1 (en) 2001-12-03 2001-12-03 System for hosting software applications on distributed servers, apparatus and method thereof
PCT/SG2001/000245 WO2003048956A1 (en) 2001-12-03 2001-12-03 System for hosting software applications on distributed servers, apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2001/000245 WO2003048956A1 (en) 2001-12-03 2001-12-03 System for hosting software applications on distributed servers, apparatus and method thereof

Publications (1)

Publication Number Publication Date
WO2003048956A1 true WO2003048956A1 (en) 2003-06-12

Family

ID=20429007

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2001/000245 WO2003048956A1 (en) 2001-12-03 2001-12-03 System for hosting software applications on distributed servers, apparatus and method thereof

Country Status (2)

Country Link
AU (1) AU2002222887A1 (en)
WO (1) WO2003048956A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110830587A (en) * 2019-11-14 2020-02-21 腾讯科技(深圳)有限公司 Data transmission method, device, equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5005122A (en) * 1987-09-08 1991-04-02 Digital Equipment Corporation Arrangement with cooperating management server node and network service node
WO1999030460A2 (en) * 1997-12-10 1999-06-17 Sun Microsystems, Inc. Highly-distributed servers for network applications
WO1999060459A2 (en) * 1998-05-19 1999-11-25 Sun Microsystems, Inc. Method and apparatus for effective traffic localization through domain name system
US6243760B1 (en) * 1997-06-24 2001-06-05 Vistar Telecommunications Inc. Information dissemination system with central and distributed caches

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5005122A (en) * 1987-09-08 1991-04-02 Digital Equipment Corporation Arrangement with cooperating management server node and network service node
US6243760B1 (en) * 1997-06-24 2001-06-05 Vistar Telecommunications Inc. Information dissemination system with central and distributed caches
WO1999030460A2 (en) * 1997-12-10 1999-06-17 Sun Microsystems, Inc. Highly-distributed servers for network applications
WO1999060459A2 (en) * 1998-05-19 1999-11-25 Sun Microsystems, Inc. Method and apparatus for effective traffic localization through domain name system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110830587A (en) * 2019-11-14 2020-02-21 腾讯科技(深圳)有限公司 Data transmission method, device, equipment and storage medium

Also Published As

Publication number Publication date
AU2002222887A1 (en) 2003-06-17

Similar Documents

Publication Publication Date Title
US5341477A (en) Broker for computer network server selection
EP0384339B1 (en) Broker for computer network server selection
EP1257910B1 (en) Method and apparatus for distributing load in a computer environment
US7222088B2 (en) Service system
US5715394A (en) Method of supporting the management of a communications network, and network management facility therefor
CN101171821B (en) System, network device, method, and computer program product for active load balancing using clustered nodes as authoritative domain name servers
US8943170B2 (en) Content delivery network aggregation with selected content delivery
CN113596110B (en) Cloud primary micro-service platform oriented to heterogeneous cloud
US7421489B2 (en) Network protocols for distributing functions within a network
CN107078969A (en) Realize computer equipment, the system and method for load balancing
US20110093740A1 (en) Distributed Intelligent Virtual Server
JP2003223378A (en) Contents delivery network service method and system
JP2006295945A (en) Service provision system and method for communications network
CN102075556A (en) Method for designing service architecture with large-scale loading capacity
CN102027732A (en) Providing access over an ip network to a server application program
EP0777364A2 (en) A structure for an electronic information system
CN102148759A (en) Method for saving export bandwidth of backbone network by cache acceleration system
CN109151009A (en) A kind of CDN node distribution method and system based on MEC
CN112994937A (en) Deployment and migration system of virtual CDN in intelligent fusion identification network
JP2023523523A (en) Geographically focused workload sharing among nearby MEC hosts on multiple carriers
US20030084140A1 (en) Data relay method
CA2397114A1 (en) Communications network
US20060075082A1 (en) Content distribution system and content distribution method
WO2003048956A1 (en) System for hosting software applications on distributed servers, apparatus and method thereof
EP1337073B1 (en) Process and apparatuses for software installation in a network management system by means of a central utility server

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP