# Patent

## Title
Systems and methods of communicating using XML

## Abstract

An embodiment is a method of providing services to users. A system receives an XML command at the network system from a service provider system. It parses the XML command and translates at least a portion of the XML command, which it uses to authorize an action. The system receives and translates the authorization result to produce an XML response, and transmits the XML response.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application is a continuation of U.S. patent application Ser. No. 09/693,512, filed Oct. 20, 2000, now U.S. Pat. No. 8,190,708, which claims priority from U.S. Prov. Pat. App. No. 60/161,181, filed Oct. 22, 1999. The aforementioned patent applications are hereby incorporated by reference as if set forth herein in their entireties.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to a network gateway device and, more particularly, to a network gateway device having an XML interface for communicating with external devices, such as billing and content servers, via XML commands and responses.
2. Description of the Related Art
In order to connect the computer of a user/subscriber to one or more networks or other online services, a variety of gateway devices have been developed. For example, one advantageous gateway device is described by U.S. patent application Ser. No. 08/816,174 and U.S. Provisional Patent Application No. 60/111,497, the contents of both of which are incorporated herein by reference. The gateway device can serve as a gateway to the Internet, an enterprise network, or other networks and/or on-line services. In addition to serving as a gateway, the gateway device can automatically adapt to the protocols and other parameters utilized by the host computer, in order that the host computer may communicate with the network in a manner that is transparent both to the user/subscriber and the network. Once the gateway device has appropriately adapted to the packets coming from the user's computer, the computer can appropriately communicate via the network, such as the network at a hotel, at home, at an airport, or any other location, in order to access other networks, such as the enterprise network, or other online services, such as the internet. In this fashion, the gateway device is capable of providing more efficient network access and network maintenance to the user/subscriber and the network operator.
Gateway devices must therefore communicate with a variety of external devices. For example, gateway devices typically communicate with billing and content servers which present customizable billing options and content pages for every subscriber of the gateway device. With respect to content, billing and content servers can present different log-on screens and pricing to a subscriber based upon one or more attributes associated with the subscriber. For example, a billing and content server can present different log-on screens and pricing based upon the location from which the subscriber accesses the network. In this regard, a subscriber in a suite may be presented with a different log-on screen and pricing options than a subscriber in a regular room or a conference room. Additionally, billing and content servers can present subscribers with customized web content based upon one or more attributes associated with the subscriber. By way of example, a billing and content server can customize the web content based upon the location from which the subscriber accesses the network. In this respect, different fire escape route maps can be presented to the subscriber based upon the room location from which the subscriber accesses the network. Additionally, guests in suites may have access to different web content than subscribers residing in a standard room.
With respect to billing, billing and content servers typically interface with a credit card authorization server in order to obtain credit card information and authorization regarding the various subscribers. Depending upon the billing arrangement of a particular subscriber, the billing and content server can communicate directly with the credit card authorization service in order to appropriately charge the subscriber's credit card account for the various services that the subscriber accesses via the gateway device. Alternatively, the billing and content server can communicate via the gateway device with a network management system, such as the property management system of a hotel, in order to appropriately charge the subscriber's account for the various services that the subscriber accesses via the gateway device.
Billing and content servers can also perform other functions, such as distributing email based upon mailing lists configured according to subscriber-specific information. Billing and content servers can also maintain and update membership records, such as frequent users clubs or frequent visitors clubs.
As briefly mentioned above, gateway devices may also communicate with a network management system, such as the property management system maintained by a hotel or the like. The functions performed by a network management system typically vary based upon the installation and application. For example, typical hotel property management systems automate operations such as room reservations, room assignments, guest check-in and check-out, and other front desk activities. Furthermore, typical hotel property management systems can maintain a log of telephone calls and telephone charges for each guest room, and can be in communication with the Internet to facilitate on-line reservations. As described in a provisional application entitled Systems And Methods For Enabling Network Gateway Devices To Communicate With Management Systems To Facilitate Subscriber Management bearing application No. 60/160,973 filed Oct. 22, 1999 and in a utility patent application entitled Systems and Methods for Integrating A Network Gateway Device with Management Systems filed concurrently herewith, gateway devices oftentimes communicate with network management systems, such as in instances in which the subscriber's access to various networks or on-line services is to be charged to their account that is administered by the network management system. The contents of these applications are also incorporated herein by reference.
Upon requesting access to a particular computer system or on-line service, the gateway device typically determines if the subscriber is entitled to access the computer system, the level of access and/or the type of services to which the subscriber is entitled according to an Authentication, Authorization, and Accounting (AAA) procedure that is described by U.S. patent application Ser. No. 09/458,602 entitled Systems and Methods for Authorizing, Authenticating and Accounting Users Having Transparent Computer Access to a Network Using a Gateway Device filed Dec. 8, 1999, and a patent application entitled Systems and Methods for Providing Dynamic Network Authorization, Authentication and Accounting filed concurrently herewith, the contents of each of which are incorporated herein by reference. An AAA server, which is a database of subscriber records, may be remote to the gateway device or the AAA database may be incorporated into the physical embodiment housing the gateway device. As such, in instances in which the AAA server is remote to the gateway device, the gateway device must also frequently communicate with the AAA server.
In addition to the external devices described above with which the gateway device frequently communicates, gateway devices may also communicate with a wide variety of other external devices depending upon the application. Unfortunately, communications with any of these external devices may be limited due to the particular format in which the external devices are designed to transmit and receive information. Since the external devices are typically designed by a number of different vendors, each of which may prefer a different format for communications, this problem is compounded by the lack of uniformity in the format with which the external devices communicate. In this regard, one external device may be designed to communicate according to one format, while another external device may be required to communicate according to another format. Since the subscriber gateway may be required to communicate with a variety of different external devices, the gateway device would seemingly have to communicate with each external device according to the particular format that is acceptable to the external device. This requirement can quickly prove cumbersome to the design, implementation and efficient operation of a gateway device since it will be forced to communicate according to a number of different formats. While this requirement is a current concern for the efficient utilization of gateway devices that must communicate with multiple external devices, this concern is expected to grow as the variety of applications in which gateway devices are employed increases and the number of different types of external devices with which the gateway device must communicate also grows.
SUMMARY OF THE INVENTION
An embodiment is a method of providing services to users. The method may be performed at a network system. The system provides a subscriber computer with access to at least one network. The system receives an XML command at the network system from a service provider system. The system parses the XML command to determine a type of operation requested by the service provider system and to determine a user associated with the XML command. The system translates at least a portion of the XML command to produce data in a specialized data format configured to be compatible with a protocol associated with a service usage accounting system. The system transmits the data in the specialized data format to the service usage accounting system, the data in the specialized data format configured to authorize and bill an account associated with the user. The system receives an authorization result from the service usage accounting system. The system translates the authorization result to produce an XML response indicating that the XML command was received and processed appropriately. The system transmits the XML response from the network system to the service provider system. The XML response comprises a confirmation identifier based on the authorization result.
In an embodiment, the protocol associated with the service usage accounting system includes a telephone number, and translating at least a portion of the XML command to produce data in the specialized data format comprises including descriptive data in the place of the telephone number.
In an embodiment, the XML command comprises an identifier of a hotel room number associated with the user, and the data in the specialized data format comprises an identifier of the hotel room number included in the XML command.
In an embodiment, communicating with the service usage accounting system comprises transmitting a second XML command to the service usage accounting system.
An embodiment is a computing system configured to manage services provided to users. The computing system includes one or more communications interfaces configured to communicate with a guest service and with an accounting system. The computing system includes a subscriber interface configured to provide a subscriber computer with access to at least one network and to adapt to the subscriber computer to facilitate communications between the subscriber computer and the at least one network. The computing system includes an XML processing module, executed on at least one processor. The XML processing module receives an XML command from the guest service, and parses the XML command to determine a type of operation requested by the guest service and to determine a user associated with the XML command. XML processing module transmits data, in a format specific to the accounting system, to the accounting system to authorize and bill an account associated with the user in accordance with data in the XML command. The XML processing module receives an authorization result from the accounting system, and transmits an XML response to the guest service. The XML response comprises a confirmation identifier based on the authorization result.
In an embodiment, communicating with the accounting system comprises transmitting a second XML command to the accounting system.
In an embodiment, the XML command includes data representing a payment amount and a room number.
In an embodiment, the format specific to the accounting system is a call accounting record format.
In an embodiment, the XML processing module is further configured to generate data in a plurality of formats each specific to a type of accounting system, to thereby enable communication with the plurality of types of accounting systems.
In an embodiment, the XML command comprises an identifier of a hotel room number associated with the user, and wherein the data in the format specific to the accounting system comprises an identifier of a hotel room number based on the hotel room number included in the XML command.
An embodiment is a non-transitory computer-readable medium, comprising instructions configured to cause a computer processor to perform operations such as the following. The processor parses a first XML command received from a first server, to determine a type of operation requested by the first server and to determine a user associated with the XML comm. The processor translates at least a portion of the XML command to produce a command configured to be interoperable with a protocol associated with a second server. The command is different from the XML command. The command comprises an identifier of the user associated with the XML command and further comprising billing information. The processor transmits the command to the second server. The processor receives an authorization result from the second server. The processor generates an XML response based on the received authorization result. The XML response indicates that the XML command was received and processed appropriately. The processor transmits the XML response to the first server.
In an embodiment, the command is configured to appear to originate from a Private Branch Telephone System (PBX).
In an embodiment, the protocol associated with the second server requires a telephone number record, and the command comprises a descriptive record in the place of a telephone number record.
In an embodiment, the computer-readable medium also includes instructions configured to cause the computer processor to produce commands specific to a plurality of protocols, to thereby enable communication with a plurality of types of servers.
In an embodiment, determining the user associated with the XML command comprises determining a MAC address associated with the XML command and identifying, in an authorization database, a user associated with the MAC address.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a computer system that includes a gateway device for facilitating communications between one or more computers and various other networks or on-line services in a manner that is transparent to both the user/subscribers and the network administrators and internet service providers.
FIG. 2 is a block diagram illustrating the format and protocol of messages transmitted to and from a gateway device according to one embodiment of the present invention, including messages transmitted between the gateway device and a billing and content server.
FIG. 3 is a block diagram illustrating an XML interface of a gateway device according to one embodiment of the present invention, as well as the various devices with which the XML interface communicates.
FIG. 4 is a stack representation of the XML interface of FIG. 3 as well as the various devices with which the XML interface communicates so as to illustrate the relative hierarchy between the respective devices.
FIG. 5 is a block diagram of a computer system that includes a gateway device for automatically configuring one or more computers to communicate via the gateway device with other networks or other online services, according to one embodiment of the present invention.
FIG. 6 shows a block diagram of the computer system of FIG. 5, implemented in a hotel computer system, according to one embodiment of the invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
According to the present invention, a gateway device and associated method are therefore provided that facilitate communications with external devices by utilizing a uniform communications format. As such, the gateway device is not required to communicate with each external device according to a unique format defined by the respective external device. Accordingly, the gateway device and associated method of the present invention improve communications between the subscriber computer, gateway device and various external devices, such as billing and content servers, property management systems, external AAA servers and the like.
According to one aspect of the present invention, a gateway device is provided that includes a subscriber interface for adapting to a subscriber computer that is connected to the gateway device. The subscriber interface facilitates communications between the subscriber computer and at least one network or on-line service without requiring the subscriber computer to be reconfigured and, in particular, without requiring the subscriber computer to support XML commands and responses. According to the present invention, the gateway device also includes an XML interface for communicating with an external device via a series of XML commands and responses. The XML commands and responses can relate to a variety of matters, including various subscriber management matters.
Typically, the XML interface includes a parser front end, a parser section and a building section for appropriately handling XML commands that are received by the gateway device and for sending appropriate responses. The parser front end determines the type of operation requested by the external device. The parser section is responsive to the parser front and organizes elements parsed from either an XML command or an XML response. Once parsed, the XML command is executed. Typically, the parser section passes at least some of the elements to a requested application. Prior to passing the elements to a requested application, however, the parser section typically nests the elements to be passed within an application programming interface (API) wrapper. The building section prepares responses to requests received by the gateway device. Typically, the building section assembles results returned by requested application into an XML response. The gateway device of the present invention can also include an internal web server for communicating with both the XML interface and the internet to thereby facilitate XML-based communications between the gateway device and external devices connected to the internet. As such, the gateway device supports communications involving the subscriber computer and the external devices without ever requiring the subscriber computer to support XML commands and responses.
The present invention also provides a method for communicating between the gateway device and external device via the internet. According to this aspect of the present invention, an XML command is initially received at the gateway device from the external device, such as the billing and content server. The XML command is then parsed, and the parsed XML command is executed, such as by being passed to a respective application program, such as the AAA server for performing the requested function, such as a subscriber management function. Prior to passing the parsed XML command to the respective application program, however, the elements to be passed to the requested application are preferably nested within an API wrapper. Upon completion of the requested function, the application program issues a response that is received by the gateway device and that is then included within an XML response transmitted from the gateway device to the external device.
As such, the gateway device and associated method of the present invention facilitate communications between the subscriber computer, the gateway device and a variety of external devices, such as external billing and content servers, property management systems and external AAA servers. In this regard, the gateway device can communicate with each of these various external devices in a uniform manner via a series of XML commands and responses, thereby dramatically reducing, if not eliminating, the instances in which the gateway device would have to communicate with an external device according to the unique format established by the external device. As a result, the design, implementation and operation of the gateway device should be considerably simplified. However, the gateway device and associated method of the present invention permit the subscriber computer to enjoy the benefits of the common XML command and response format without ever having to be reconfigured to support XML.
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
Referring now to FIG. 1, there is shown in block diagram form a computer system 10 including a plurality of computers 14 that can communicate with one or more online services 22 or networks via a gateway device 12 that provides the interface between the computers and the various networks 20 or online services. One embodiment of such a gateway device has been described in U.S. patent application Ser. No. 08/816,174 and U.S. Provisional Application No. 60/111,497 (collectively referred to herein as the Gateway Device Applications), the contents of which have been incorporated herein by reference. Briefly, the gateway device facilitates transparent computer access to the online services or networks, such that the computers can access any networks via the gateway device regardless of their network configurations. The gateway device includes a subscriber interface that adapts to the computer of a user to facilitate communication between the computer and a network or other online service without requiring the computer to be reconfigured. In this regard, the subscriber interface of the gateway device has the ability to recognize computers attempting to access a network, the location of computers attempting to access a network, the identity of users attempting to gain network access, and additional attributes, as is discussed in the Gateway Device Applications.
As illustrated in FIG. 1, the computer system 10 also includes an access concentrator 16 positioned between the computers 14 and the gateway device 12 for multiplexing the signals received from the plurality of computers onto a link to the gateway device. Depending upon the medium by which the computers 14 are connected to the access concentrator, the access concentrator 16 can be configured in different manners. For example, the access concentrator can be a digital subscriber line access multiplexer (DSLAM) for signals transmitted via regular telephone lines, a cable head end (a Cable Modem Termination Shelf (CMTS)) for signals transmitted via coaxial cables, a wireless access point (WAP) for signals transmitted via a wireless network, a switch or the like.
The computer system 10 further includes one or more routers 18 and/or servers (not shown in FIG. 1) to control or direct traffic to and from a plurality of computer networks 20 or other online services 22. While the computer system is depicted to have a single router, the computer system can have a plurality of routers, switches, bridges, or the like that are arranged in some hierarchical fashion in order to appropriately route traffic to and from the various networks or online services. In this regard, the gateway device 12 typically establishes a link with one or more routers. The routers, in turn, establish links with the servers of the networks or online services, based upon the user's selection. It will be appreciated by one of ordinary skill in the art that one or more devices illustrated in FIG. 1 may be combinable. For example, although not shown, the router may be located entirely within the gateway device. Furthermore, additional elements may be included in the computer system, such as elements disclosed in the Gateway Device Application, or network elements known to those of ordinary skill in the art.
As described above, gateway devices 14 must typically communicate with a variety of external devices. For example, gateway devices typically communicate with billing and content servers 26 as depicted in FIGS. 1 and 2. As also described above, hilling and content servers present customized billing options and content pages for every subscriber of a gateway device. As such, gateway devices must communicate on a frequent basis with the billing and content server.
The gateway device 12 may also communicate with a management system 28, such as the property management system of a hotel or the like. In this regard, FIG. 2 shows a block diagram of the computer system of FIG. 1, integrated with a hotel computer system, according to one embodiment of the present invention. It will be appreciated by those of skill in the art that the embodiment shown in FIG. 2 is for illustrative purposes, and that the computer system may be integrated with virtually any network or network management system, such as computer networks established in corporate offices, airports, arenas, apartment complexes, office buildings or the like. As a result, the embodiment shown in FIG. 2 is for illustrative purposes only, and is not intended to limit the scope of the present invention.
While the functions performed by network management systems 28 vary based upon the installation and the application, typical hotel property management systems automate operations such as room reservations, room assignments, guest check-in and check-out and other front desk activities as described above. In addition, typical hotel property management systems can maintain a log of telephone calls and telephone charges for application to the bill for each guest room. Accordingly, the gateway device 12 of the present invention can communicate with a property management system in order to place charges for the various services that a subscriber accessed via the gateway device upon the appropriate bill that is maintained by the property management system.
Moreover, while the AAA functionality is typically physically embodied within the gateway device 12, the gateway device can be configured to communicate with external AAA servers in order to authenticate a subscriber, to obtain authorization for the services requested by the subscriber and to appropriately account for their usage. In addition, gateway devices may communicate with a wide variety of other external devices, particularly as gateway devices are deployed in new applications or installations.
In order to avoid the overhead associated with communicating with each of these external devices according to the unique format in which the external device is designed to communicate, the gateway device 12 of the present invention communicates with the external devices with a series of commands and responses formatted according to the extensible markup language (XML). As known to those skilled in the art, XML is defined as an application profile of the standard generalized markup language (SGML) that is defined by ISO 8879. While SGML has been the standard, vendor-independent technique to maintain repositories of structured documentation for more than a decade, SGML is not well suited to serving documents over the world wide web. While XML is designed to enable the use of SGML on the world wide web, XML is not a single, predefined markup language. Instead, XML allows the system designer to design their own markup language. In this regard, a predefined markup language, such as hypertext markup language (HTML), defines one manner in which to describe information in one specific class of documents. In contrast, XML allows the system designer to define its own customized markup languages for different classes of documents. As such, XML specifies neither semantics nor a tag set. However, XML provides a facility to define tags and the structural relationships between them. See XML specification 1.0 for further details regarding XML.
XML has conventionally been utilized to facilitate communications between servers, such as for billing purposes, and not to facilitate communications with a user, either directly with a user's computer 14 or through an intermediary such as a gateway device 12. As such, computers are not generally configured to communicate in or to support XML. In order to provide a user with the advantages of XML including the ability to communicate in a common language with a wide variety of network devices without requiring that each computer be reconfigured to support XML, the gateway device 12 of the present invention serves as a proxy for the user's computer and utilizes XML to communicate with a variety of external devices, including the billing and content server 26 and the property management system 28. In addition, in instances in which the AAA functionality resides in an external AAA server, the gateway device can also communicate with the external AAA server via XML. In particular, the gateway device is designed to communicate with the network devices according to a set of XML commands and XML responses, thereby affording the user's computer the advantages offered by XML without requiring the user's computer to be reconfigured to support XML. Since the XML format is not specific to any particular external device, the gateway device can advantageously communicate with a variety of external devices via a common format, i.e., XML, and need not format messages differently based upon the format with which the external device is otherwise designed to communicate.
For example, a user can submit a request to purchase a product from an online provider. According to the present invention and as described in the following examples, the gateway device 12 can then communicate in a common XML format with various network devices, including billing and content servers, to authenticate and authorize the user, to order the product and to account for the user's payment for the product, without ever requiring the user's computer 14 to support XML.
As depicted in FIG. 3, the gateway device 12 typically includes an internal web server 30 that processes HTTP streams that are received from external devices. In instances in which the external device and the gateway device will communicate via the XML protocol, the HTTP string will have XML as the content type, while the content itself will consist of tags, attributes and data. As known to those skilled in the art, tags serve as field identifiers and attributes contain the values of input parameters that are used as record keys or search arguments, i.e., a MAC address. In addition, data elements are values that are to be stored in the tables and authorization files of the gateway device. Data is also returned in response streams sent by the gateway device to the external devices.
In order to handle XML commands that are received from an external device, the gateway device 12 includes an XML interface, also known as an XML parser 32, that is typically comprised of software, that is compliant with the world wide web consortium (W3C) standards to validate the XML command strings and the attributes and data derived from an XML query string. As depicted in FIG. 3, an XML interface typically includes a parser front end 34 that is also typically comprised of software and that invokes the core of a parser and determines the type of operation being requested. For example, in one common embodiment, the gateway device will receive an XML command from the billing and content server 26 requesting a specific AAA operation. As such, the following description of the XML interface as well as accompanying FIGS. 3 and 4 will be in terms of XML commands from the billing and content server requesting an AAA operation. However, the XML interface can facilitate XML-based communications between a wide variety of other devices without departing from the spirit and scope of the present invention. In this regard, the only requirement is that the external device has an XML interface, i.e., an XML parser, and be adapted to support the same XML command protocol as the gateway device. One example of an XML protocol for communications between a gateway device and a billing and content server is provided below, although other XML command protocols can be established without departing from the spirit and scope of the present invention.
The XML interface 32 of the gateway device 12 also includes a parser section 36, typically comprised of software, to handle elements as they are parsed from the XML stream. In this regard, parsed elements are organized into separate parameters that are passed to the requested application, such as the AAA server, via an appropriate application program interface (API). As shown in FIG. 3, the sets of parameters that are to be passed to the requested application are typically nested inside or wrapped within a record structure having an appropriate protocol as indicated by block 38 designated as the API “wrapper”, that also provides any necessary translation of data elements, e.g. those that need to be converted from string format to some numeric format for internal processing reasons. Once properly wrapped, the sets of parameters are passed via the appropriate API 40 to the requested application, such as the AAA 42. The requested application then responds to the request and provides the requested data via the API to the XML interface of the gateway device.
The gateway device 12 therefore also includes a building section 44 that is also comprised of software and that prepares responses to requests received by the gateway device. In this regard, the building section of the XML interface 32 assembles the results returned by the requested application into a new XML string that will be part of the HTTP response stream returned to the external device via a component such as the aforementioned go-ahead server. With respect to a HTTP response stream sent back to a billing and content server 26 via the world wide web, the HTTP response stream is typically nested inside a TCP/IP packet in order to be appropriately transmitted and received by the billing and content server. See, for example, FIG. 2 that depicts the relative protocols and formats for signals transmitted between different elements of the overall computer system 10. However, other protocols can be utilized without departing from the spirit and scope of the present invention.
A response that is returned by the gateway device 12 can be one of two types. First, a standard “OK” response can be returned that typically includes the data, if any, requested by the external device. Alternatively, an error response can be returned that typically consists of a numeric error code and a textual description of the error. In either instance, the XML interface 32 generally creates a standard header consisting of the status, such as “OK” or “ERROR”, the ID of the gateway device and the gateway device's IP address. This response is then placed onto the world wide web by the internal web server 30 of the gateway device for delivery to the external device.
While the XML interface 32 of the gateway device 12 of the present invention will be primarily described hereinafter in conjunction with XML commands received by the gateway device from an external device, followed by XML responses sent by the gateway device to the external device, the gateway device of the present invention can be constructed so as to initiate XML-based communications by issuing XML commands to various external devices and awaiting appropriate responses. In addition, while the gateway device including an XML interface will primarily be described in conjunction with communications involving an external billing and content server 26 that requests information from the AAA server; the gateway device can establish XML-based communications with other external devices, such as a property management system 28 or, in instances in which the AAA server is external to the gateway device, with the AAA server itself. In any of these instances, the gateway device is able to communicate with the external device or server according to a common protocol, i.e., XML, without having to communicate with each external device in the format unique to the respective external device. As such, the only requirement of the external device is that the external device has an XML interface and be adapted to support the same XML command protocol as the gateway device.
While various XML command protocols can be established depending upon the external device and the nature of the communication between the external device and the gateway device 12, one command protocol established between an external billing and content server 26 and a gateway device is hereinafter provided by way of example and not by way of limitation. In this example, the billing and content server sends XML commands to the gateway device which, in turn, responds to the billing and content server. In one example, the XML commands transmitted by the billing and content server to the gateway device are sent using an HTTP form POST in which the information is placed in packets sent after the HTTP header. In this example, the command text will generally follow the following format:












<USG COMMAND=“(command)” [(attr)=“(attr_data)”]>









<(tag_n) [tag_n_attr = “(tag_n_attr_data)”]>(data_n)</(tag_n)>







</USG>





where: (command) is a gateway device command;


(attr) is an optional attribute associated with a command;


(attr_data) is the data associated with the optional attribute tag;


(tag_n) is a data name tag used for specifying command parameter names;


(tag_n_attr) is an optional attribute name tag;


(tag_n_attr_data) is optional attribute data, and


(data_n) is the data associated with a data name tag.






In addition, the typical XML response from the gateway device 12 to a billing and content server 28 following receipt of an XML command from the billing and content server is typically formatted as follows:













HTTP/1.1 200 OK
(specifies request understood)


Server: UI 3A4B6D
(use the gateway device ID as the



server name)


Date: Fri, 23 Jul 1999 00:09:55
(current date/time)


GMT


Content-Type: text/xml
(specifies XML content)


Last-Modified: Fri, 23 Jul
(current date/time)


1999 00:09:55 GMT


Content-Length: 560
(size of message body in characters)



(this must be a blank line)


(series of XML tag/data pairs)



(end of message body)









In this regard, while the series of XML tag/data pairs referenced in the above exemplary XML response format will depend upon the particular command as described below, one series of XML tag/data pairs typically follow the following format:












<USG RESULT=“(RESULTCODE)” ID=“(UI)”


IP=“(USG_IP_ADDR)”>









[<ERROR_NUM>(error number)</ERROR_NUM>]



[<ERROR_DESC>(error description)</ERROR_DESC>]



<(tag_n) [tag_n_attr = “tag_n_attr_data”]>(data_n)</(tag_n)>







</USG>





where: (RESULTCODE) is either “OK” or “ERROR”;


(UI) is the gateway device ID;


(USG_IP_ADDR) is the IP address of the gateway device;


(tag_n) is a data name tag;


(tag_n_attr) is an optional attribute name tag;


(tag_n_attr_data) is optional attribute data; and


(data_n) is the data associated with a data name tag.






As indicated, all XML responses returned following an XML command will contain error information. In this regard, the attribute RESULT will be assigned either “OK” or “ERROR”. If an error did occur, two additional tag/data pairs will be added as part of the response form, namely, error_num and error_desc. The error number data will contain an integer number representing the error that occurred, while the error description data will be a readable textual description of the error.
While a variety of commands and responses can be established based upon the foregoing, XML command and response formats, examples of several particular commands that could be issued by a billing and content server 26 to the gateway device 12, requesting either room administration or user administration, are provided below. The resulting responses provided by the gateway device are also provided. However, the following commands and responses are for purposes of illustration only and should not be construed as limitations of the type of XML commands and responses that can be formulated.
Regarding room administration, the billing and content server 28 can issue an XML command to set the access mode of a specified room that includes the following command, command attribute, command attribute data, and tag/data pair:













Command:
“ROOM_SET_ACCESS”


Command attr:
“ROOM_NUMBER”


Command attr_data:
Room number (8 char. max string)


tag_1:
“ACCESS_MODE”


data_1:
“ROOM_OPEN,” “ROOM_CHARGE,” or



“ROOM_BLOCK”









In response, the gateway device 12 would typically issue a standard XML response indicating that the command was received and implemented appropriately or that an error occurred.
Also with respect to room administration, a billing and content server 26 can issue a command querying the gateway device 12 regarding the access mode of a specified room. In this regard, the query room status command could include the following command, command attribute, and command attribute data:
















Command:
“ROOM_QUERY_ACCESS”



Command attr:
“ROOM_NUMBER”



Command attr_data:
Room number (8 char. max string)










In response, the gateway device 12 could return a standard response, including the following tags and data in which the room access mode is selected from one of “room_open”, “room_charge” or the “room_block”:
















tag_1 =
“ROOM_NUMBER”



data_1 =
(room number)



tag_2 =
“ACCESS_MODE”



data_2 =
(room access mode)










With respect to user administration, the billing and content server 26 can issue a command to add or update a user that has been authorized for access and should now be added to the MAC or some other type of authorization table, that is, a memory table maintained by the gateway device 12. In this regard, one example of an XML command to add/update a user typically includes the following command, command attribute, command attribute data, and tag/data pair:













Command:
“USER_ADD”


Command attr:
“MAC_ADDR”


Command attr_data:
user MAC address (string)


tag_1:
“USER NAME”


data_1:
(user name)


tag_2:
“PASSWORD”


tag_2_attr:
“ENCRYPT”


tag_2_attr_data:
“TRUE” or “FALSE”


data_2:
(user password)


tag_3:
“EXPIRY_TIME”


tag_3_attr:
“UNITS”


tag_3_attr_data:
“SECONDS,” “HOURS,” “DAYS”


data_3:
(number of expiry units)


tag_4:
“ROOM_NUMBER”


data_4:
(user's room number)


tag_5:
“PAYMENT_METHOD”


data_5:
“RADIUS,” “PMS,” “CREDIT_CARD,” or



“ROOM_OPEN”


tag_6:
“CONFIRMATION”


data_6:
(confirmation code/ID)


tag_7:
“PAYMENT”


data_7:
(amount paid for access)









In response, the gateway device 12 would typically issue a standard XML response indicating that the command was received and processed appropriately or that an error occurred.
The billing and content server 26 can also issue an XML command to delete a user who is identified by a Subscriber Identifier, such as a MAC address, a user name or an IP address. In this regard, one example of a delete user command typically includes the following command, tag and data:













Command:
“USER_DELETE”


tag_1:
“USER”


tag_1_attr:
“ID_TYPE”


tag_1_attr_data:
“MAC_ADDR,” “USER_NAME” or “IP_ADDR”


data_1:
if ID_TYPE=“MAC_ADDR” then (user MAC



address)



if ID_TYPE=“USER_NAME” then (user name)



if ID_TYPE=“IP_ADDR” then (user IP address)









In response, the gateway device 12 would typically issue a standard XML response indicating that the command was received and processed appropriately or that an error occurred.
The billing and content server 26 can also query the gateway device 12 for the current user data by issuing an XML command that, in one, example, includes the following command, tag and data:













Command:
“USER_QUERY”


tag_1:
“USER”


tag_1_attr:
“ID_TYPE”


tag_1_attr_data:
“MAC_ADDR,” “USER_NAME” or “IP_ADDR”


data_1:
if ID_TYPE=“MAC_ADDR” then (user MAC



address)



if ID_TYPE=“USER_NAME” then (user name)



if ID_TYPE=“IP_ADDR” then (user IP address)









In response, the gateway device 12 typically uses a standard XML response with the following tags/data pairs:













tag_1 =
“MAC_ADDR”


data_1 =
user MAC address (string)


tag_2 =
“USER NAME”


data_2 =
(user name)


tag_3 =
“IP_ADDR”


date_3 =
(user IP address)


tag_4 =
“PASSWORD”


data_4 =
(user password)


tag_5 =
“EXPIRY_TIME”


tag_5_attr =
“UNITS”


tag_5_attr_data =
“SECONDS,” “HOURS,” “DAYS”


data_5 =
(number of expiry units)


tag_6 =
“ROOM_NUMBER”


data_6 =
(user's room number)


tag_7 =
“PAYMENT_METHOD”


data_7 =
“RADIUS,” “PMS,” “CREDIT_CARD,” or



“ROOM”


tag_8 =
“DATA_VOLUME”


data_8 =
(data transferred by user in Kbytes)









The billing and content server 26 can also issue a command to check a user's identity, as specified by a MAC address, as one example, against the authorization tables maintained by the gateway device 12 or the associated AAA server. If the user is found either in the MAC or room authorization table of this example, VALID_USER is returned along with the user authorization method, such as RADIUS, property management system (PMS) (in instances in which the fee is to be billed to the user's account), credit card or room (in instances in which the room is opened up for free internet access). If the user was not found in the MAC or room authorization tables, INVALID_USER will be returned. In any event, the XML command issued by the billing and content server typically includes the following command, command attribute and command attribute data:
















Command:
“USER_AUTHORIZE”



Command attr:
“MAC_ADDR”



Command attr_data:
user MAC address (string)










In response, the gateway device 12 typically issues a standard XML response indicating that the command was received and processed appropriately or that an error occurred, and that includes the following tag and data pairs:













tag_1 =
“STATUS”


data_1 =
“VALID_USER” or “INVALID_USER”


tag_2 =
“PAYMENT_METHOD”


data_2 =
“RADIUS,” “PMS,” “CREDIT_CARD,” or “ROOM”









The billing and content server 26 can also issue an XML command requesting user authorization and payment. If the authorization method that the user has selected is RADIUS, then the gateway device 12 will establish communication with the RADIUS server, authenticate the user, charge the user's account, and return the result of the authorization to the billing and content server. If the authorization method chosen by the user is PMS, the gateway device will establish communication with the PMS 28, authenticate the user, have an access fee added to the user's room bill, and return the result of the authorization to the billing and content server. In either event, the XML command issued by the billing and content server to request user authorization payment includes the following command, command attribute, command attribute data and tag and data pairs:














Command:
“USER_PAYMENT”



Command attr:
“PAYMENT_METHOD”


Command attr_data:
“RADIUS” OR “PMS”


tag_1:
“USER NAME”


data_1:
(user name)


tag_2:
“PASSWORD”


tag_2_attr:
“ENCRYPT”


tag_2_attr_data:
“TRUE” or “FALSE”


data_2:
(user password)


tag_3:
“EXPIRY_TIME”
- only if METHOD=“PMS”


tag_3_attr:
“UNITS”


tag_3_attr_data:
“SECONDS,” “HOURS,” “DAYS”


data_3:
(number of expiry units)
- only if METHOD=“PMS”


tag_4:
“ROOM_NUMBER”


data_4:
(user's room number)


tag_5:
“PAYMENT”
- only if METHOD=“PMS”


data_5:
(amount charged for access)
- only if METHOD=“PMS”









In response, the gateway device 12 issues a standard XML response indicating that the command was received and processed appropriately or that an error occurred, and that includes the following tag and data:
















tag_1 =
“CONFIRMATION”



data_1 =
(confirmation number/ID)










The billing and content server 26 can also issue an XML command in instances in which a user makes an e-commerce or special service purchase that is to be charged, such as to the user's bill via the property management system 28. In this regard, the billing and content server issues an XML command that includes the following command, command attribute, command attribute data and tag and data pairs.
















Command:
“USER_PURCHASE”



Command attr:
“ROOM_NUMBER”



Command attr_data:
(room number)



tag_1:
“ITEM_CODE”



data_1:
(item code)



tag_2:
“ITEM_DESCRIPTION”



data_2:
(description of purchase)



tag_3:
“ITEM_AMOUNT”



data_3:
(amount of item without tax)



tag_4:
“ITEM_TAX”



data_4:
(tax charged on item)



tag_5:
“ITEM_TOTAL”



data_5:
(total amount charged including tax)










In response, the gateway device will issue a standard XML response indicating that the command was received and processed appropriately or that an error occurred.
Finally, the billing and content server 26 can issue an XML command in order to update cache memory by changing the status of an entry in the memory authorization table, as identified by the MAC address by way of example, from “pending” to “authorized.” In this regard, the XML command can include the following command, command attribute, command attribute date and tag and data pair:













Command:
“CACHE_UPDATE”


Command attr:
“MAC_ADDR”


Command attr_data:
user MAC address (string)


tag_1:
“PAYMENT_METHOD”


data_1:
“RADIUS,” “PMS,” “CREDIT_CARD,” or



“ROOM_OPEN”









In response, the gateway device will issue a standard XML response indicating that the command was received and processed appropriately or that an error occurred.
While the foregoing XML commands and XML responses that would flow between a billing and content server 26 and a gateway device 12 have been provided by way of example in order to illustrate one particular application of the XML interface 32 or XML parser of a gateway device, the gateway device that includes an XML interface according to the present invention can be employed to communicate with the billing and content server according to a wide variety of other commands and responses depending upon the application. In addition, a gateway device that includes an XML interface can also be employed to communicate with a wide variety of other external devices, including a property management system 28, an external AAA server, or other external devices. In addition, the gateway device can be configured to issue the XML commands and to receive XML responses if necessary for the particular application. In any event, a gateway device that includes an XML interface facilitates communication between the gateway device and various external devices in a uniform manner, thereby avoiding having to communicate with each of the external devices according to a unique format established by the vendor of the external device. As a result, the design, implementation operation of the gateway device is greatly simplified and the user is able to reap the advantages provided by XML without having to reconfigure their computer 14 to support XML.
Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Enabling Network Gateway Devices to Communicate with Management Systems to Facilitate Subscriber Management
A system and method for enabling a management system to communicate with a network gateway device to automatically bill a computer operator for access to a computer network, such as a local network. The system includes a computer, and a network gateway device in communication with the computer for connecting the computer to a computer network, wherein the network gateway device maintains data representative of the computer operator's access to the computer network and wherein the network gateway device reconfigures the data. The system also includes a management system connected to said network gateway device for automatically billing the computer operator based upon usage of the computer network, wherein the management system is configured to communicate according to at least one predetermined protocol. The network gateway device reconfigures the data to meet one of the predetermined protocols supported by the management system, and the management system receives the data reconfigured by the network gateway device and utilizes the data reconfigured by the network gateway device for automatic billing purposes. The method for enabling a management system to communicate with a network gateway device to automatically bill a customer for network access includes allowing a computer operator to access a computer network via a network gateway device, collecting data corresponding to a customer's local network access in the network gateway device, storing the data in the network gateway device, reconfiguring the data to a predetermined data format received from a management system, and transmitting the reconfigured data to the management system.
In order for a computer to function properly, the computer must be appropriately configured. Among other things, this configuration process establishes the protocol and other parameters by which the computer transmits and receives data. In one common example, a plurality of computers is networked to create a local area network (LAN). In the LAN, each computer must be appropriately configured in order to exchange data over the network. Since most networks are customized to meet a unique set of requirements, computers that are part of different networks are generally configured in different manners in order to appropriately communicate with their respective networks
While desktop computers generally remain a part of the same network for a substantial period of time, laptops or other portable computers are specifically designed to be transportable. As such, portable computers are connected to different networks at different times depending upon the location of the computer. In a common example in which the portable computer serves as an employee's desktop computer, the portable computer is configured to communicate with their employer's network, i.e., the enterprise network. When the employee travels, however, the portable computer may be connected to different networks that communicate in different manners. In this regard, the employee may connect the portable computer to the network maintained by an airport or by a hotel in order to access the enterprise network, the internet or some other on-line service. Since these other networks are configured somewhat differently, however, the portable computer must also be reconfigured in order to properly communicate with these other networks. Typically, this configuration is performed by the user each time that the portable computer is connected to a different network. As will be apparent, this repeated reconfiguration of the portable computer is not only quite time consuming, but is also prone to errors.
As described by U.S. patent application Ser. No. 08/816,174 and U.S. Prov. Pat. App. No. 60/111,497, a universal subscriber gateway has been developed by Nomadix, Inc. of Santa Monica, Calif. The contents of both of these applications are incorporated herein by reference. The gateway device serves as a gateway to a number of networks or other online services. For example, the gateway device can serve as a gateway to the internet, the enterprise network, or other on-line services. In addition to serving as a gateway, the gateway device automatically configures a computer to communicate with the new network in a manner that is transparent to the user. In this regard, the gateway device will download the necessary protocols and other parameters to the computer without any intervention by the operator and without loading any additional software on the computer.
Because high speed access to enterprise networks, the internet and on-line services is a desirable commodity, like long distance telephone service, costs associated with the service are typically passed on to the remote user/subscriber. Therefore, in many instances the remote user/subscriber is concerned with being able to acquire network access and service in the most cost efficient and convenient manner. In this regard, subscriber remote service concerns parallel those concerns of customers utilizing internet service providers for conventional telephone line dial-up internet access. In both cases, computer operators typically want inexpensive, flexible and customer friendly service options. Correspondingly, the gateway device administrator desires the capability to be able to offer the user/subscriber numerous and different service and billing rate options, like those available in conventional dial-up internet access. For example, the remote user in a hotel environment may desire a subscription for only a day, or for the duration of their stay at the hotel. The user/subscriber may be charged on an hourly rate, a daily rate, a weekly rate, or at any other interval. Such flexible plans offer cost savings to consumers and are an attractive incentive to lure customers into buying access time to the enterprise network, online services or the internet.
Unlike conventional dial-up internet access, however, gateway devices permit remote users to access various computer networks and on-line services without having a prior service contract or an ongoing relationship with the service provider. Therefore, unlike conventional dial up access plans, which can bill subscribers on a set monthly schedule, gateway devices make recouping remote access charges more challenging. This is especially true for nomadic users, who may utilize a remote connection to a network only once before relocating. Once the traveler has moved onward, the network provider may have difficulty in collecting any unpaid service charges. Furthermore, billing of nomadic users is another hurdle to fast and easy access to the enterprise network, on-line services and the internet. The benefits of remote plug and play access therefore may be overshadowed by time consuming payment methods. For example, where a computer operator is required to complete an onerous billing procedure to pre-purchase local network time or to pay for the network use after each session, the computer operator may decide not to use the network.
Thus, any convenience provided by the computer network is superseded by the inconvenient billing method. Gateway device administrators also desire convenient methods in which to bill users/subscribers. Because the gateway device enables subscribers immediate plug and play connections to computer networks, such as hotel or airport networks, the computer network provider and/or service provider of the high speed network would like to quickly and immediately bill the users/subscribers. This billing should be able to easily track a user/subscriber's usage of the network so as to recoup costs for the network hardware and network connection. Furthermore, such billing should be automated such that system administrators do not need to individually bill each remote user.
Therefore, it is desirable for customers, network providers and service providers to implement automatic billing through the computer network so that users may be billed automatically. Such automatic billing of remote and nomadic users would benefit customers by facilitating fast and easy access, and also would benefit network providers who could appropriately charge customers for obtaining remote access.
The present invention relates generally to a network gateway device and, more particularly, to network gateway devices communicating with management systems, such as hotel property management systems, to facilitate subscriber management. The connection of the users to the system can be transparent for billing purposes, although the computer network may also provide services to the users through the management system.
According to one embodiment of the invention, there is provided a system for enabling a management system to communicate with a network gateway device on order to automatically bill a computer operator for access to a computer network such as a local network. The system includes a computer, and a network gateway device in communication with the computer for connecting the computer to a computer network and for maintaining data representative of the computer operator's access to the computer network. The system also includes a management system connected to the network gateway device that is designed to automatically bill the computer operator based upon their access to the computer network. The management system is also designed to communicate with a third party device according to at least one predetermined protocol. According to the present invention, the gateway device is therefore designed to supply billing data using one of the predetermined protocols supported by the management system. As such, the management system receives the billing data supplied by the network gateway device and utilizes the data for automatic billing purposes.
Furthermore, in the system for enabling a management system to communicate with a network gateway device to automatically bill a computer operator for access to a computer network, the management system can be located within the computer network. Additionally, the system can include a translator in communication with the gateway device and management system for receiving the data supplied by the network gateway device. The translator can further reconfigured the supplied billing data received from the network gateway device, and can transmit the further reconfigured data to the management system. The data representative of the computer operator's access to the computer network can include data representative of the computer operator's location, access time, date which access was obtained, billing rate, and other pertinent information.
According to another embodiment of the invention, a method for enabling a management system to communicate with a network gateway device in order to automatically bill a customer for access to a computer network, such as a local network, is provided. The method comprises allowing a network administrator to access a computer network via a network gateway device, and collecting data corresponding to a customer's local network access in the network gateway device. Furthermore, the method of the present invention comprises storing the data in the network gateway device, reconfiguring the data to one of the predetermined data formats which may be received by a management system, and transmitting the reconfigured data to the management system.
The ability to bill customers for service automatically and track customers without system intervention allows the local network service provisioning to be done economically and efficiently. This invention provides an incentive for hotels, airports, and other computer networks to provide network connections to users because the computer network has a captive customer base. Furthermore, automatic billing can enable usage-based billing for network access and services, which is desirable to customers. Finally, automatic billing can reduce the risk of network use by an unauthorized user.
Referring now to FIG. 5, the computer system 10 that includes a gateway device 12 is depicted in block diagram form. The computer system 10 typically includes a plurality of computers 14 that access a computer network in order to gain access to networks 20 or other online services 22. For example, the computers 14 can be plugged into ports that are located in different rooms of a hotel or a multi-dwelling unit. Alternatively, the computers 14 can be plugged into ports in an airport, an arena, or the like. The gateway device 12 provides an interface between the plurality of computers 14 and the various networks 20 or other online services 22.
Most commonly, the gateway device 12 is located near the computers 14 at a relatively low position in the overall network (i.e., the gateway will be located within the hotel, multi-unit residence, airport, etc.). However, the gateway device 12 can be located at a higher position in the system by being located closer to the various networks 20 or other online services 22, if so desired. Although the gateway device 12 can be physically embodied in many different fashions, the gateway device 12 typically includes a controller and a memory device in which software is stored that defines the operational characteristics of the gateway device 12. Alternatively, the gateway device 12 can be embedded within another network device, such as an access controller 16 or a router 18. Moreover, the software that defines the functioning of the gateway device 12 can be stored on a PCMCIA card that can be inserted into a computer of the plurality of computers 14 in order to automatically reconfigure the computer to communicate with a different computer system, such as the networks 20 and online services 22.
The computer system 10 typically includes an access controller 16 positioned between the computers 14 and the gateway device 12 for multiplexing the signals received from the plurality of computers onto a link to the gateway device 12. Depending upon the medium by which the computers 14 are connected to the access controller, the access controller 16 can be configured in different manners. For example, the access controller can be a digital subscriber line access module (DSLAM) for signals transmitted via regular telephone lines, a cable head end for signals transmitted via coaxial cables, a wireless access point (WAP) for signals transmitted via a wireless network, a CMPS, a switch or the like. As also shown in FIG. 5, the computer system 10 typically includes one or more routers 18 and/or servers (not shown in FIG. 5) of a plurality of computer networks 20 or other online services 22. While the computer system 10 is depicted to have a single router, the computer system 10 can have a plurality of routers, switches, bridges, or the like that are arranged in some hierarchical fashion in order to appropriately route traffic to and from the various networks 20 or other online services 22. In this regard, the gateway device 12 typically establishes a link with one or more routers. The routers, in turn, establish links with the servers of other networks or other online service providers, such as internet service providers, based upon the subscriber's selection. It will be appreciated by one of ordinary skill in the art that one or more devices illustrated in FIG. 5 may be combinable. For example, although not shown, the router 18 may be located entirely within the gateway device 12.
The gateway device 12 is specifically designed to allow computers to log onto the computer network in a manner that is transparent to the subscriber In the typical computer network that employs dynamic host configuration protocol (DHCP) service, the DHCP server 24 will initially assign an IP address to a computer that is logging onto the computer network. Upon opening their web browser or otherwise attempting to access an on-line service, the gateway device 12 will direct the subscriber to enter their ID and password. The gateway device 12 then determines if the subscriber is entitled to access the computer system, the level of access and/or the type of services to which the subscriber is entitled according to an authentication, authorization and accounting procedure that is described by U.S. patent application Ser. No. 08/816,174 and U.S. Provisional Application No. 60/111,497. Assuming that the subscriber has been authenticated and has authorization, the gateway device 12 typically presents new subscribers with a home page or control panel that identifies, among other things, the online services or other computer networks that are accessible via the gateway device 12. In addition, the home page presented by the gateway device 12 can provide information regarding the current parameters or settings that will govern the access provided to the particular subscriber. As such, the operator can readily alter the parameters or other settings in order to tailor the service according to their particular application. Typically, changes in the parameters or other settings that will potentially utilize additional resources of the computer system will come at a cost, such that the gateway device 12 will charge the subscriber a higher rate for their service. For example, a subscriber may elect to increase the transfer rate at which signals are transmitted across the computer network and pay a correspondingly higher price for the expedited service.
The home page also permits the subscriber to select the computer network 20 or other online service 22 that the subscriber wishes to access. For example, the subscriber can access the enterprise network on which the computer is typically resident. Alternatively, the subscriber can access the internet or other on-line services. Once the subscriber elects to access a computer network or other online service, the gateway device 12 establishes the appropriate links via one or more routers 18 to the desired computer network or online service.
Thereafter, the subscriber can communicate freely with the desired computer network 20 or other online service 22. In order to support this communication, the gateway device 14 generally performs a packet translation function that is transparent to the subscriber. In this regard, for outbound traffic from the computer 12 to the computer network or other on-line service, the gateway device 12 changes the content of the packet, such as the source address, checksum, and application specific parameters, such that all outgoing packets will be directed back to the gateway device 12 rather than to the computer. In contrast, the inbound traffic from the computer network or other online service that arrives at the gateway device 12, which is really intended for the computer, is passed through the translation function so the packets eventually delivered to the computer appear to have been sent directly to the computer. As such, the computer will be completely unaware of the translation being performed by the gateway device. Additional information regarding the translation function is provided by U.S. patent application Ser. No. 08/816,714. By utilizing the gateway device 12 to communicate with the computer network or other online service, however, the subscriber will never have had to configure their computer 12 since the gateway device automatically adopts the computer in a manner that is transparent to the subscriber.
FIG. 6 shows a block diagram of the computer system 10 of FIG. 5, implemented in a hotel computer system 50, according to one embodiment of the present invention. It will be appreciated by those of skill in the art that the embodiment shown in FIG. 6 is for illustrative purposes, and that the computer system 10 may be implemented with respect to computer networks established in airports, arenas, apartment complexes, office buildings or the like. The hotel computer system 50 is essentially identical to the computer system 10 shown in FIG. 6, except that the gateway device 12 is also connected to a property management system 56. The gateway device 12 may be connected to the property management system 56 through a translator 53, which is illustrated with phantom lines because the translator 53 is an optional component in the hotel computer system 50, as will be explained in detail below. Because the hotel computer system 50 comprises similar components to the system illustrated in FIG. 5, it will be appreciated that the systems can be implemented in like manners with like components. Furthermore, additional embodiments of the present invention discussed with respect to FIG. 5 may be implemented in the system 50 shown in FIG. 6.
As shown in FIG. 6, each of the plurality of computers 14 is located in a different hotel room 60, 70, 80 and 90 to allow multiple guests to access the hotel's computer network. The computers 14 are connected to the access controller 16 through a communications port in each room using a communications device such as a DSL modem, an ethernet card, a coaxial cable, or another well known communication device. Most preferably, the connection between the computers 14 and the access controller 16 is a high speed connection, so that the computers 14 can receive data as fast as the gateway device 12 can forward the data. The data transmitted from the gateway device 12 to the computers may originate from any devices located within the computer network or any devices in communication with the computer network, such as the internet. As with any multiple link communication system, the rate at which data is received by the computers 14 will be no higher than the slowest baud rate over any link in the system.
The gateway device 50 is in direct communication with the management system 56. Management systems may include any well known computer based systems implemented in hotels, airports, arenas or other venues to manage operations. In the embodiment of FIG. 6, the management system is a property management system located within a hotel. Typical hotel property management systems automate operations such as room reservations, room assignments, guest check-in and check-out, and other front desk activities. Furthermore, typical hotel property management systems can maintain a log of telephone calls and telephone charges for each guest room, and can be in communication with the internet to facilitate on-line reservations. Such management systems are typically implemented through the use of one or more conventional computers that are interconnected to form a network. The management system 56 shown in FIG. 6 is illustrative of one such system. As will be appreciated by those of skill in the art, the management system can be located within, and in direct communication with, the computer network.
In the embodiment of FIG. 6, the gateway device 50 is in communication with the property management system 56 such that each user/subscriber's access and connection to the hotel network via the gateway device 12 can be easily monitored by the property management system 56. Preferably, the gateway device 12 is connected to the property management system 56 through a serial port interface. The connection may operate at a variety of baud rates, although 2400 or 9600 bits per second are typical. The main purpose for the connection is to allow the hotel to bill each specific user/subscriber for their use and connection to the hotel's network, and to automatically bill such use directly to the room from which access was obtained. The property management system 56 can monitor and record information such as the identity of the user, the room from which the user obtained access, the amount of time that the user utilized the network, the cost of each network access, the time, date and duration of the network access, and other additional information. As a result, the present invention offers user/subscribers of a computer network convenient payment plans in which a user does not have to pre-pay for network access or physically pay each time the network is accessed.
As will be appreciated by those of skill in the art, the information passed from the gateway device 12 can be, in most respects, identical to information received by the property management system 56 from a private branch telephone system (PBX), which are commonly utilized in hotels. PBX systems allow room to room, local and long distance telephone calls to be made by guests, and are typically connected to hotel property management systems to facilitate billing of hotel guests based upon the room in which the call is made. Charges for such use can then be paid by the guest upon checkout, automatically billed to the guest's credit card or automatically billed to the guest with room charges.
As can be appreciated with reference to FIG. 6, the property management system 56 can be in communication with additional devices other than the computer gateway system 10 of the present invention. As noted above, the property management system 56 can be directly connected to a PBX, which is, in turn, connected to each telephone located in every hotel room. Additionally, although not illustrated, the property management system 56 can be connected to additional third party components, such as pay per view television, credit card authorization systems and point of sale systems. These connections may be through serial ports, modem communications, or through other well known communication means. Such connections allow the management system to function as a fully integrated system, which allows customers to use a variety of hotel resources, while transparently being billed for each transaction.
Through the property management systems, a user/subscriber's account may be billed directly to that user's hotel bill. For example, where the management system receives data representing a computer operator's access to the local system, the management system can automatically bill the operator through the use of a credit card authorization system in communication with the property management system. In this manner, the customer's payment can be fast, easy, automated and transparent to the user.
Traditional hotel property management systems are configured to communicate with various third party systems, such as point of sale systems, PBX systems, pay per view systems, and credit card authorization servers, as noted above. Hotel property management systems are generally configured to receive such communications because these third party systems are typically used in the vast majority of hotels. To receive data from each of these third party systems, management systems typically include software for communicating with the third party systems based upon the data protocol and data structure implemented by the management system. The software allows data from third party systems to be received and reconfigured, if necessary, so that the data is in a format appropriate to be utilized by the management system 56. However, because typical management systems that are currently deployed are not designed to receive data from a gateway device 12, the gateway device 12 is preferably designed to interface with the management system 56 without requiring additional programming of the management system software.
The gateway device 12 of the present invention formats data such that the data has the same data protocol and data structure as that of a third party service, such as a PBX, that the management system 56 is already designed to receive. The management system 56 is adapted to communicate using different protocols, through technology known as COM objects. Thus, the gateway device 12 can masquerade as a PBX or another third party system. The gateway device 12 receives a data record corresponding to an individual user/subscriber's use of the computer system, including the user/subscriber's location (room number), access time, and additional information, as discussed above. The gateway device 12 stores this information and modifies the data record to fit the proper format required by the property management system vendor. Although the format of the data is changed, no data is changed in the modification. The reconfigured data is then transmitted to the management system 56. This data can be in a call accounting record (CAR) and low level protocol (LLC) format, data formats typical of third party systems such as PBXs. Such formats are well known to those of skill in the art of property management system design.
Because management systems can differ, each system utilizing different user interfaces, variables, and operating systems, the gateway device should communicate data to the property management system 56 using data formats acceptable to a large number of management systems. In this manner, the gateway device 12 may be compatible with a majority of property management systems. For example, the gateway device 12 may be preconfigured to operate with the most popular management systems and formats, such as Micros Fidelio (manufactured by MICROS Systems, Inc., Beltsville, Md.), HOBIC, AutoClerk (manufactured by AutoClerk, Inc., Lafayette, Calif.), and other well known systems and formats.
However, there are many different management system standards, none of which are universal and implemented in all property management systems. As a result, although the gateway device 12 can configure data to conform to a large number of differing management systems, the gateway device 12 may not be able to conform to some systems. As a result, a translator 53 may be optionally used to manipulate the data output by the gateway device 12 in such a manner as to allow the data to be utilized by the property management system 56. In one embodiment, the translator may comprise a Lodging Link II device (LL) (manufactured by Protocol Technologies, Inc., Scottsdale, Ariz.) to convert incoming data from the gateway device 12 to data acceptable to the property management system device, such as UHALL protocol. Additionally, the translator may also be connected to one or more devices or systems in communication with the property management system, such as the pay per view system or credit card authorization system, to format data output by any system or component having data protocols which differ from those of the management system 56.
Because data may be transferred to the management system in a CAR format, data typically within such format must be altered to accurately reflect the computer network service being provided to the user/subscriber. For example, in PBX systems, CAR format usually includes the phone number to which a telephone call is being made. However, when a user/subscriber is obtaining access to the hotel network via the gateway device 12, no telephone number is dialed or called. Therefore, when possible, data within the CAR format (i.e., telephone record), such as telephone numbers, may be replaced with a descriptive record that indicates some other data that the property management systems wish to track or record. On the other hand, where the CAR records cannot be replaced, a bogus field, such as a bogus telephone number, may be included so that the property management system receives the entire record it is programmed to receive. Thereafter, the bogus number is not utilized by the management system 56. Additional problems may also exist, for example, where the management system 56 is not devised to support the non-numeric ASCII characters typically transmitted by the gateway device 12. In this situation, the gateway device can be configured to replace the ASCII characters with numeral designations.
Once the data transmitted by the gateway device is received by the property management system 56, the property management system can display the data using a management system interface. Preferably, the data may be displayed in an easily readable and printable form to allow a user/subscriber to view a summary of access information. Additionally, the data should be accessible to the user/subscriber's accounting record. In this manner, charges due to network access may be automatically placed on a customer's pre-existing bill, such as a hotel bill. Where access is obtained at another location, such as at an airport, the airport system manager (i.e., equivalent to the hotel property management system in the above example) may automatically bill the customer, can automatically charge the customer's credit card, or can add the charges to an account which the customer maintains. In this regard, while the property management system 56 has primarily been described in conjunction with a hotel computer network, the property management system can be utilized in a variety of other applications in which a user/subscriber obtains access to a computer network or other on-line service via a gateway device.

## Claims

1. A method of providing services to users, the method being performed at a network system, the method comprising:
providing a subscriber computer with access to at least one network via a network system;
receiving an XML command at the network system from a service provider system;
parsing the XML command to determine a type of operation requested by the service provider system and to determine a user associated with the XML command;
translating at least a portion of the XML command to produce data in a specialized data format configured to be compatible with a protocol associated with a service usage accounting system;
transmitting the data in the specialized data format to the service usage accounting system, the data in the specialized data format configured to authorize and bill an account associated with the user;
receiving an authorization result from the service usage accounting system;
translating the authorization result to produce an XML response indicating that the XML command was received and processed appropriately; and
transmitting the XML response from the network system to the service provider system, the XML response comprising a confirmation identifier based on the authorization result.

2. The method of claim 1, wherein the protocol associated with the service usage accounting system includes a telephone number, and wherein translating at least a portion of the XML command to produce data in the specialized data format comprises including descriptive data in the place of the telephone number.

3. The method of claim 1, wherein the XML command comprises an identifier of a hotel room number associated with the user, and wherein the data in the specialized data format comprises an identifier of the hotel room number included in the XML command.

4. The method of claim 1, wherein communicating with the service usage accounting system comprises transmitting a second XML command to the service usage accounting system.

5. A computing system configured to manage services provided to users, the system comprising:
one or more communications interfaces configured to communicate with a guest service and with an accounting system;
a subscriber interface configured to provide a subscriber computer with access to at least one network and to adapt to the subscriber computer to facilitate communications between the subscriber computer and the at least one network; and
one or more computer processors configured to
receive an XML command from the guest service;
parse the XML command to determine a type of operation requested by the guest service and to determine a user associated with the XML command;
transmit data, in a format specific to the accounting system, to the accounting system to authorize and bill an account associated with the user in accordance with data in the XML command;
receive an authorization result from the accounting system; and
transmit an XML response to the guest service, the XML response comprising a confirmation identifier based on the authorization result.

6. The computing system of claim 5, wherein communicating with the accounting system comprises transmitting a second XML command to the accounting system.

7. The computing system of claim 5, wherein the XML command includes data representing a payment amount and a room number.

8. The computing system of claim 5, wherein the format specific to the accounting system is a call accounting record format.

9. The computing system of claim 5, wherein the one or more computer processors are further configured to generate data in a plurality of formats each specific to a type of accounting system, to thereby enable communication with the plurality of types of accounting systems.

10. The computing system of claim 5, wherein the XML command comprises an identifier of a hotel room number associated with the user, and wherein the data in the format specific to the accounting system comprises an identifier of a hotel room number based on the hotel room number included in the XML command.

11. A non-transitory computer-readable medium, comprising instructions configured to cause a computer processor to perform operations comprising:
parsing a first XML command received from a first server, to determine a type of operation requested by the first server and to determine a user associated with the XML command;
translating at least a portion of the XML command to produce a command configured to be interoperable with a protocol associated with a second server, the command being different from the XML command, the command comprising an identifier of the user associated with the XML command and further comprising billing information;
transmitting the command to the second server;
receiving an authorization result from the second server;
generating an XML response based on the received authorization result, the XML response indicating that the XML command was received and processed appropriately; and
transmitting the XML response to the first server.

12. The non-transitory computer-readable medium of claim 11, wherein the command is configured to appear to originate from a Private Branch Telephone System (PBX).

13. The non-transitory computer-readable medium of claim 11, wherein the protocol associated with the second server requires a telephone number record, and the command comprises a descriptive record in the place of a telephone number record.

14. The non-transitory computer-readable medium of claim 11, further comprising instructions configured to cause the computer processor to produce commands specific to a plurality of protocols, to thereby enable communication with a plurality of types of servers.

15. The non-transitory computer-readable medium of claim 11, wherein determining the user associated with the XML command comprises determining a MAC address associated with the XML command and identifying, in an authorization database, a user associated with the MAC address.