Patent Publication Number: US-2003233400-A1

Title: Enhancing of web pages with new functionality for web-based services

Description:
[0001] The invention relates to a method and a proxy server for enhancing a Web page with new functionality or new content.  
       [0002] Web technologies provide a vast seed bed for the creation of new distributed applications. Nowadays, the Internet is routinely use to garner or retrieve information of various kinds. New services are created that put to use information culled form multiple sources.  
       [0003] There is a copious, ever expanding tool box for setting up distributed applications. Runtime environments such as J2EE (Java 2 Platform, Enterprise Edition) and Microsoft .NET, protocols or standards for distributed systems such as SOAP (Simple Object Access protocol), WSDL (Web Service Definition Language) and UDDI (Universal Description, Discovery, and Integration), and programming languages such as Java and C++ are commonly deployed for services relying on the client-server paradigm.  
       [0004] The World Wide Web, which is often referred to as “the Web”, is a hypertext and hypermedia information system built on top of the Internet. Generally, Web clients and Web servers communicate via HTTP (hypertext transfer protocol) and exchange information that is formatted with HTML (Hypertext Markup Language) and XML (Extensible Markup Language). The exchanged information can be displayed via Web browsers. Below, information that is exchanged over the Web to be displayed by Web browsers is referred to as “Web pages” or “Web page”.  
       [0005] The Web provides a distributed environment with a myriad of server-based locations of Web page information. Distributed applications can draw on this host of information to add value to Web-based services.  
       [0006] The present invention aims at improving the scope of Web-based services.  
       [0007] According to the present invention Web pages transmitted between a first server and a Web client are enhanced with new functionality or new content by a second server. This second server is intermediate with respect to the first server and the Web client in the sense that Web pages requested by the Web client are first transmitted to the second server and then from the second server to the Web client. Below the second server is referred to as “proxy server” and the attribute “first” is omitted in reference to the first server which provides the Web page. New functionality or new content is introduced into the Web page by the proxy server. The enhancement of the Web page may comprise the insertion of hyperlinks as well as service invocation features. To this end, the Web page is parsed and new lines of code are introduced into the Web page. For example, the Web page may be written in the HTML or an XML language. In this case, new functionality may be added by introducing lines of HTML code or XML code and JavaScript code.  
       [0008] The present invention allows for the creation of new services based on a wider range of information in the form of Web pages provided at remote locations. Web pages can be enhanced with new functionality during a time span sufficiently short for effecting the enhancement on the fly, i.e. in the intervening time period between sending the request and receiving the Web page. Thus, the present method is economical in the sense that only selected Web pages are enhanced with new functionality. In addition, the service provider that operates the proxy server can be different from the provider maintaining the Web page. This separation allows for flexibility in creating new services.  
       [0009] In the preferred embodiment the Web page is provided with functionality that allows for service invocation by clicking on text or icons. In this case, the invoked service may be the establishment of a telephone connection or the transmission of a fax.  
       [0010] The proxy server according to the invention may be a dedicated server or a multi-purpose server where the enhancement of Web pages goes along with other functions such as hosting Web pages. The present proxy server needs to be equipped with functional modules for parsing Web pages and for introducing new lines of code into Web pages. Means for supporting the communication between the proxy server and servers with Web pages may be provided in the form of a functional module that emulates a Web client, i.e. that functions as a Web client in the exchange of messages between the proxy server and other servers. Further possible functional modules are a module for caching Web pages, for handling sessions initiated by a subscriber to a service, and a module allowing for management of the proxy server via a remote host. 
     
    
    
     [0011] Below the invention is described by way of example and with reference to figures.  
     [0012]FIG. 1 shows a system for Web-based invocation of voice connections  
     [0013]FIG. 2 shows a diagram of an exchange of messages for Web-based invocation of voice connection  
     [0014]FIG. 3 shows functional modules of a proxy server according to the invention 
    
    
     [0015] In the preferred embodiment the invention is used to provide a Web-based service for telephony. According to this service calling information such as the B-party number is obtained by a Web client CPC via a HTTP request. Upon the Web client&#39;s request a Web page is transmitted to the Web client CPC and displayed by the Web client&#39;s browser. The transmitted Web page provides calling information to identify the B-party B-PTY and allows for direct invocation of a call set-up, e.g. by clicking on a displayed piece of information such as the B-party number or the name associated with this number. According to the present invention the Web page is enhanced with the functionality for direct invocation of a call set-up prior to transmission to the Web client CPC. By way of example URLs (Uniform Resource Identifiers) relating to telecommunication companys&#39; online directory services are given:  
     [0016] 1. http://www.infobel.com/france/wp/search/default.asp (France)  
     [0017] 2. http://www.pagesjaunes.fr/wbpm pages blanches.cgi? (France)  
     [0018] 3. http://www.teleauskunft.de/ (Germany)  
     [0019] 4. http://www.infobel.com/UK/wp/search/default.asp (England)  
     [0020] 5. http://www.infobel.com/USA/default.asp (USA &amp; some European countries)  
     [0021] 6. http://www.belcast.be/index2.html?redir=%2Fpage.html%3Fchannel%3Dsearch%26topic%3Dwhitepages%26content%3Ddefault%26p agelang%3Dfr (Belgacom)  
     [0022] 7. http://www.pagesjaunes.fr/SITEPJI/en/ANUMONDE/home_monde.html (world wide directories portal)  
     [0023] A scenario for this service where a Web page is supplied with new functionality by a proxy server DPS (DPS: stands for directory proxy server) is shown in FIG. 1. The Web client CPC may obtain calling information from an online telephone directory provided on a telecommunication company&#39;s directory server TDS. To this end, a HTTP request is sent to the telco&#39;s (telco: common for telecommunication company) directory server TDS. This request is either first transmitted to a directory proxy server DPS or intercepted by the directory proxy server DPS. The source address contained by the request is changed so that responses to the request are addressed to the directory proxy server DPS. After changing the source address the request for calling information is forwarded to the telco&#39;s directory server TDS. In response to the request a Web page with the requested calling information is provided by the telco&#39;s directory server TDS. The Web page is first transmitted to the directory proxy server DPS, where the Web page is parsed. New functionality is provided by inserting JavaScript and HTML text into the Web page. In particular, pieces of information on the Web page are enabled for service invocation, e.g. by clicking on a name or a calling number. In addition, a destination address of the response comprising the Web page is provided for transmission to the Web client CPC. Upon receiving the Web page the provided calling information is displayed on the Web client&#39;s GUI (Graphical User Interface). For example, this information comprises a list of names, B-party details, and associated calling numbers. Say, a user of the Web client specifies information related to a B-party in the request to the directory proxy server DPS in order to obtain the B-party&#39;s calling number. The telco&#39;s directory server TDS hosting the telephone directory service carries through a search for entries matching the query information, i.e. the information specified by the user. A Web page is transmitted in response to the request providing a list of all B-parties matching the originally specified information. Based on the additional details of the list the user identifies the B-party to be called and invokes a call set-up by clicking on the corresponding calling number displayed on his GUI. Below, details on the call set-up are given.  
     [0024] According to the scenario of FIG. 1 the B-party&#39;s terminal device B-PTY is a telephone connected to a PSTN (Public-Switched Telephone Network) network PSTN/ISDN. For example, the B-party&#39;s connection may be a digital ISDN (Integrated Services Digital Network) connection. The voice connection between the A-party and the B-party is mediated by a dedicated server, the click-to-phone server C2PS. The Web client CPC may be VoIP-enabled PC, i.e. a PC that can be used as terminal for a voice over Internet (VoIP) connection. Thus, it can be used as terminal device by the A-party, i.e. the user subscribing to the service. The directory proxy server DPS, the telco&#39;s directory server TDS, and the click-to-phone server C2PS form part of a packet-switched network IPNET. The Web client CPC is connected to this network IPNET, e.g. through a internet service provider. As transport protocol for the exchange of messages between the Web client and the servers as well as the inter-server communication the HTTP protocol is deployed. On the network level the IP (Internet Protocol) or the ATM (Asynchronous Transfer Mode) protocol may be used. The adaptation of voice messages transmitted from the packet-switched network IPNET to the PSTN network PSTN/ISDN and vice versa is assumed by a media gateway MGW. For call control and signalling a gatekeeper GK is deployed. Gatekeepers are often used in the context of transmission of voice over packet-switched networks by means of the H.323 protocol. Gatekeepers assume functions such as authentication, authorisation, accounting, call control and call routing, H.323 bandwidth usage etc. For these functions control messages may be exchanged between the gatekeeper GK and both the click-to-phone server C2PS and the media gateway MGW. As an alternative to a separate platform gatekeeper functions may be provided at the click-to-phone server C2PS.  
     [0025] Essential steps for setting up a voice connection according to the invention are provided in more detail in FIG. 2.  
     [0026] Step 1: The Web client CPC connects to the packet-based network IPNET. A request req to obtain information from the telecommunication company&#39;s online directory service is launched by entering a URL at the Web client. The request req is transmitted to the directory proxy server DPS. The source address of the request is changed to represent the directory proxy server&#39;s as source. Within the HTTP protocol setting this change may translate into specifying a URL (Uniform Resource Locator) as source which refers to the directory proxy server DPS. Subsequently, the request req′ is forwarded to the telco&#39;s directory server TDS where call-related information is made available. The prime of the reference sign req′ reflects the changes effected upon the request by the directory proxy server DPS.  
     [0027] Step 2: The telco&#39;s directory server TDS responds by transmitting a query form qf, which is first sent to the directory. proxy server DPS. Upon adjusting the address information referring to the destination the query form qf′ (prime reflects change of destination address) is forwarded to the Web client CPC.  
     [0028] Step 3: At the Web client CPC B-party related information is entered so as to retrieve the B-party&#39;s calling number. This information cqf (completed query form) is transmitted to the online directory service at the telco&#39;s directory server TDS where the information is processed, i.e. a search for the B-party&#39;s details is performed.  
     [0029] Step 4: The result of the query is returned in the form of a Web page wp, which is first transmitted to the directory proxy server DPS. There the Web page wp is parsed. By inserting HTTP text and/or line of JavaScript into the Web page wp new functionality is added. In particular, a phone call can be invoked by clicking on a displayed item, such as a calling number. In case the A-party still needs to be authenticated additional JavaScript code is added so that authentication will be requested by the subscriber to the service upon clicking on a displayed item. In addition, the destination address is changed for forwarding the functionality-enhanced Web page to the Web client CPC. Upon receiving the functionality-enhanced Web page wp+ (the plus reflects the fact that new functionality has been added) the Web page wp+ is displayed on the Web client&#39;s GUI. The set-up of a phone call is invoked by clicking on a calling number displayed on the GUI. In case an authentication has to be performed user name, password and the selected B-party number have to be provided for authentication before the call set-up can be launched. Such an authentication will be required if the user was not authenticated earlier, e.g. during a preceding user session. By carrying through authentication after reception of the Web page wp+ rather than at an earlier stage authentication is avoided in cases of early abortion. The authentication comprises step 5 and step 6.  
     [0030] Step 5: The authentication information iauth is transmitted to the telco&#39;s directory server TDS. Based on this authentication information iauth a session number sn is requested by the telco&#39;s directory server TDS at the Click-to-Phone server C2PS (rsn: request for session number).  
     [0031] Step 6: Upon receiving the session number sn the telco&#39;s directory server TDS provides the Web client CPC with a Web page “dial page” dpg(sn) including the session number sn. The dial page can be used for multiple purposes, e.g.  
     [0032] Confirmation of the phone call by clicking on an item or an icon of the dial page dpg.(sn)  
     [0033] Saving the details of the B-party by clicking on an “add button” 
     [0034] Automatically launching the request for the cnf file.  
     [0035] Step 7: A call request rcnf (rcnf: stands for request for cnf file) including the A-party number and the session number to is issued to the click-to-phone server C2CS. The call request rcnf is processed by the click-to-phone server C2CS.  
     [0036] Step 8: A cnf file cnf is returned by the click-to-phone server C2CS to the Web client CPC. The cnf file is a Microsoft NetMeeting configuration file, which comprises information for launching a Microsoft NetMeeting application. The Microsoft NetMeeting application initiates the call. The format of the cnf file is not HTML or XML but a text page of a special MIME (Multipurpose Internet Mail Extension) type.  
     [0037] Eventually, a connection for voice transmission is established between the Web client CPC, i.e. the A-party, and the B-party. Voice is exchanged via the media gateway MGW, which provides for the adjustment of voice data for transmission over different types of networks, i.e. packet-switched networks and TDM (time division multiplexing) networks.  
     [0038] Alternatively, the proxy server CPC and the click-to-phone server C2CS may be integrated on a single server platform. This integrated solution leads to a simplification with respect to the sequence of steps of FIG. 2, but is less flexible regarding the deployment of the integrated server platform. In particular, the separate servers solution has a better scalability.  
     [0039]FIG. 3 provides details of the deployed directory proxy server DPS. Following functional modules are shown:  
     [0040] Initiation module Init: The initiation module Init assumes initiatory functions. After running processes by the initiation module Init the directory proxy server is operational. In the initiation phase static configuration parameters are loaded from an external database Conf and permanent objects such as HTTP client objects and parser objects are instanced, i.e. copied.  
     [0041] HTTP client module CHTTP: Through the HTTP client module CHTTP the exchange of messages between the directory proxy server DPS and telecommunication companies&#39; directory servers TDS is effected. For this exchange of messages the HTTP protocol is deployed.  
     [0042] The cache module CaMe: The cache module CaMe implements a cache mechanism. HTTP pages are cached to improve the performance.  
     [0043] Session handler module SeHa: User sessions or service subscriber sessions are handled via the session handler module SeHa. The user or service subscriber deploys a PC or another terminal device as Internet host. This Internet host functions as Web client CPC for invoking services or applications. For the communication between the Web client CPC and the directory proxy server the HTTP protocol is used.  
     [0044] HTML parser module PARS: The HTML parser module PARS parses the HTML code of Web pages in order to change links and to add functional features for the click-to-phone application. Directory description files are provided by an external database Ddscrpt. The directory description files store parameters relate to individual online directories. These parameters can include parsing rules, caching lists, code to be inserted in Web pages, etc. which are adapted to optimise the treatment of Web pages from the respective online directory.  
     [0045] The management module MngtM allows for changing dynamic configuration parameters by a remote manger ReMngt. The remote manager ReMngt effects changes through an external Web client&#39;s browser. For the communication the HTTP protocol is deployed.  
     [0046] Another embodiment is given by Web-based fax service invocation. Upon transmission of a Web page to the proxy server the Web page is parsed and code is added where fax numbers are found. The functionality-enhanced Web page is transmitted to the Web client that launched the original request. The Web client is located at an Internet terminal. A subscriber to the fax service can invoke the fax service by clicking on a fax number of the Web page, which is displayed on the Internet terminal. When he clicks on the fax number, a window is opened for browsing documents stored on the Internet terminal. The subscriber can choose a document and click on the “OK” button to send it as a fax. The document is transmitted to a server where it is adjusted and formatted to be processed as a PSTN fax and to be transmitted over a PSTN network.