Abstract:
Methods and apparatuses for web service communication are provided. A first communication is received for a web service that comprises a first address. A second address is then located corresponding to the first address. A second communication, including the request in the first communication, is sent the second address, and the response returned to the originator.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims the benefit of U.S. provisional application Ser. No. 60/573,598, filed May 21, 2004 and entitled “METHOD AND APPARATUS FOR PROCESSING WEB SERVICE COMMUNICATION”. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates generally to web services and, more particularly, to methods and apparatuses for web service communication. 
     DESCRIPTION OF THE RELATED ART 
     Web services are automated resources that can be accessed through the Internet and provide a way for computers to communicate with one another. Web services can use Extensible Markup Language (XML) to transmit data. XML is a human readable language that is used for tagging the data that is used by web services. 
     A computer system using web services can use a Universal Discovery, Description and Integration (UDDI) protocol. Computer system(s) as referred to herein may include individual computers, servers, computing resources, and/or networks, etc. UDDI is a web-based globally distributed directory that provides information about service providers, service implementations, and service metadata. UDDI is similar to a phone book&#39;s yellow pages because it allows service providers, such as businesses, to advertise the services that they offer and allows service consumers to discover services that meet their needs. 
     The UDDI standard is fundamental to the newly emerging network of web services. However, many applications are unable to take advantage of UDDI to communicate with other web services because the applications may not be UDDI aware (that is, adapted to communicate with others conforming to the UDDI standard). 
     Furthermore, the manner of locating web service addresses among UDDI aware applications may not be universal. For example, some applications have the capability to make a request to a UDDI repository for a web address, which is then returned to the requesting application. The requesting application can then look up the web service directly by using the address returned by the UDDI repository. Other applications may not have this function. 
     It is useful for requesting applications to be able to reliably locate a web service address in a universal manner. In addition, it is useful for service providers, such as businesses, to change web addresses for web services without informing requesting applications of such a change. 
     There remains a need for a reliable and effective way for applications to look up web services efficiently in a universal manner and for service providers to change web addresses without informing applications of the change. 
     SUMMARY 
     This application describes methods and apparatuses for web service communication. An apparatus for web service communication, according to an embodiment of the present disclosure, includes a proxy server for receiving a first communication for a web service, the first communication including a first address, and a repository for storing web service addresses accessible by the proxy server, wherein the proxy server locates a second address associated with the first address, and sends a second communication to a requesting application, the second communication including the second address. 
     According to another embodiment, an apparatus for web service communication includes means for receiving a first communication for a web service, the first communication including a first address, means for locating a second address associated with the first address, and means for providing a second communication to a requesting application, wherein the second communication includes the second address. 
     A method for web service communication, according to an embodiment of the present disclosure, includes receiving a first communication for a web service, the first communication including a first address, locating a second address associated with the first address, and sending a second communication to a requesting application, wherein the second communication includes the second address. 
     The methods and apparatuses of this disclosure may be embodied in one or more computer programs stored on a computer readable medium or program storage device and/or transmitted via a computer network or other transmission medium. For example, a computer storage medium including computer executable code for web service communication, according to an embodiment of the present disclosure, includes code for receiving a first communication for a web service, the first communication including a first address, code for locating a second address associated with the first address; and code for sending a second communication to a requesting application, wherein the second communication includes the second address. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The features of the present application can be more readily understood from the following detailed description with reference to the accompanying drawings wherein: 
         FIG. 1  shows a block diagram of an exemplary computer system capable of implementing the methods and apparatuses of the present disclosure; 
         FIG. 2  shows a block diagram illustrating an apparatus for web service communication, according to an embodiment of the present disclosure; 
         FIG. 3  shows an internal non-UDDI aware requesting application using the proxy server to communicate with an external web service, according to an exemplary embodiment; 
         FIG. 4  shows an external non-UDDI aware requesting application using the proxy server to communicate with an internal web service, according to an exemplary embodiment; 
         FIG. 5  shows a block diagram illustrating an apparatus for web service communication, according to an exemplary embodiment; and 
         FIG. 6  shows a flow chart illustrating a method for web service communication, according to an embodiment of this disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     The present disclosure provides tools (in the form of methodologies, apparatuses, and systems) for web service communication. The tools provide means for receiving a communication for a web service, with the communication including a first address (such as a public web service address), and then find a second address (such as a real web service address) associated with the first address. 
     The following exemplary embodiments are set forth to aid in an understanding of the subject matter of this disclosure, but are not intended, and should not be construed, to limit in any way the claims which follow thereafter. Therefore, while specific terminology is employed for the sake of clarity in describing some exemplary embodiments, the present disclosure is not intended to be limited to the specific terminology so selected, and it is to be understood that each specific element includes all technical equivalents which operate in a similar manner. 
       FIG. 1  shows an example of a computer system  100  which may implement the methods and apparatuses of the present disclosure. The apparatus and method of the present disclosure may be implemented in the form of a software application running on a computer system, for example, a mainframe, personal computer (PC), handheld computer, server, etc. The software application may be stored on computer readable media or program storage device locally accessible by the computer system, for example, floppy disk, optical disc, hard disk, etc., or may be remote from the computer system and accessible via a hard wired or wireless connection to a computer network (for example, a local area network, the Internet, etc.) or another transmission medium. 
     The computer system  100  can include a central processing unit (CPU)  102 , program and data storage devices  104 , a printer interface  106 , a display unit  108 , a (LAN) local area network data transmission controller  110 , a LAN interface  112 , a network controller  114 , an internal bus  116 , and one or more input devices  118  (for example, a keyboard, mouse etc.). As shown, the system  100  may be connected to a database  120 , via a link  122 . 
       FIG. 2  shows a block diagram illustrating a system for web service communication, according to an exemplary embodiment of the present disclosure. Proxy server  201  can receive a general web service request  205  from a requesting application  202 . The general web service request  205  may include a public web service address. The proxy server  201  can match the public web service address  205  to a real web service address through a repository  204  (such as a UDDI repository). Once a match is found, the proxy server  201  can construct a specific web service request  206  using the real web service address, and can send it to the proxied web service  203 . The proxied web service  203  can then return a specific web service response  208  to the proxy server  201 . The proxy server  201  can match the specific web service response  208  to a general web service response  207  and can send the general web service response  207  to the requesting application  202 . 
     The proxy server can be placed between a requesting application and a web service and can match a public web service address with a real web service address through a look-up table, directory, database, or any another comparable system. The public web service address may comprise the address that is seen by the requesting application, and the real web service address may comprise the actual address or location of the web service. 
     According to an embodiment of the present disclosure, a user can use a UDDI server as the basis for a proxy server that can provide a constant and unchanging web service address for a particular web service that may actually be moving between different addresses. A UDDI server can store details about web services, for example, what business is responsible for a particular web service, how data is to be presented to that web service, address details, names, and/or other descriptive information. Multiple web service instances (also referred to herein as “bindings”) can be entered into the UDDI server. Using this information, a user, such as an organization, can search for a web service that meets certain criteria. For example, a UDDI repository can associate an abstract name, such as “mycompany.com/sales” with a particular server instance, such as “mycompany.com:8080/webServices/server102/sales”. 
     The proxy server can be implemented by redirecting web services messages, such as by looking up the real address of the requested web server in the UDDI server. 
     Non-UDDI aware requesting applications can use the proxy server and hard code the apparent address of the desired services, while the organization providing the proxy can move the web services around without concerning itself about possibly breaking other programs that may be accessing the web services. For example, if a real web service address changes, then the public web service address is matched to the changed real web service address within the proxy server. The proxy server can update its matching function between public and real addresses from time to time. This update may be either cached or un-cached. 
     According to another embodiment of the present disclosure, a real web service address is matched to information instead of a public web service address. The information may be included within the request from the requesting application. Furthermore, the real web service address may be determined from a combination of the information and the public web service address. 
       FIG. 3  illustrates an internal non-UDDI aware requesting application using the proxy server to communicate with an external web service, according to an embodiment of the present disclosure. Internal non-UDDI aware requesting application  302  may use public web service address  305  when it communicates with proxy server  201 . The proxy server  201  can match the public web service address  305  to a real web service address  306  through a repository  206 , such as a UDDI repository. The matching of the public web service address  305  to the real web service address  306  may be cached or uncached. The proxy server  201  can use the real web service address  306  to communicate with external web service  303 . 
       FIG. 4  illustrates an external non-UDDI aware requesting application using the proxy server to communicate with an internal web service, according to an embodiment of the present disclosure. The external non-UDDI aware requesting application  403  can use a real web service address  306  when it communicates with proxy server  201 . The proxy server  201  can match the real web service address  306  to a public web service address  305  through a repository  204 , such as a UDDI repository. The matching of the real web service address  306  to the public web service address  305  may be cached or uncached. The proxy server  201  can forward the public web service address  305  to the non-UDDI aware requesting application  403 . 
     A user, such as an organization, may have non-UDDI aware applications accessing each other.  FIG. 5  illustrates an internal system of web service communication, according to an embodiment of the present disclosure. An internal non-UDDI aware requesting application  502  can use a public web service address  305  when it communicates with proxy server  201 . The proxy server  201  can match the public web service address  305  to a real web service address  306  through a repository  204 , such as a UDDI repository or other internally maintained repository. The proxy server  201  can forward the real web service address  306  to the internal web service  503 . 
     According to an embodiment of the present disclosure, the proxy server in the system of web service communication can be used to hide sensitive information. For example, a web service may include public and private web addresses corresponding to different functions. The proxy server can be used to enable only the public web address and not the private web address. 
     A method for web service communication, according to an exemplary embodiment, will be discussed with reference to  FIG. 6 . A first communication for a web service is received, which includes a first address (step S 61 ). The first address is used to locate a second address which is associated with the first address (step S 62 ). A second communication which includes the second address is sent to a requesting application (step S 63 ). 
     The specific embodiments described herein are illustrative, and many additional modifications and variations can be introduced on these embodiments without departing from the spirit of the disclosure or from the scope of the appended claims. Elements and/or features of different illustrative embodiments may be combined with each other and/or substituted for each other within the scope of this disclosure, and appended claims. 
     Additional variations may be apparent to one of ordinary skill in the art from reading U.S. provisional application Ser. No. 60/573,598, filed May 21, 2004 and entitled “METHOD AND APPARATUS FOR PROCESSING WEB SERVICE COMMUNICATION”, the entire contents of which are incorporated herein by reference.