`(12) Patent Application Publication (10) Pub. No.: US 2008/0140861 A1
`
` Kothari et al. (43) Pub. Date: Jun. 12, 2008
`
`
`US 20080140861A1
`
`(54) WEB SERVICES MULTI—PROTOCOL
`SUPPORT
`
`(75)
`
`Inventors:
`
`Pankaj Kothari, Bangalore (IN);
`Avinash Atreya, Bangalor (IN)
`
`Correspondence Address:
`BEYER WEAVER LLP/Yahoo
`P'O' BOX 70250
`OAKLAND: CA 94612'0250
`
`.
`(73) Ass1gnee:
`
`Yahoo! Inc-
`
`(21) Appl. No.:
`
`11/567,375
`
`(22)
`
`Filed:
`
`Dec. 6, 2006
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`G06F 15/16
`(2006.01)
`(52) US. Cl. ........................................................ 709/246
`(57)
`ABSTRACT
`
`A solution is provided wherein a single service implementa-
`tion may be exposed to users as two or more different web
`service protocols. The service then appears to the user to be
`utilizing a desired protocol even though the service itself is
`potentially operating under a different protocol. A gateway
`may be utilized that maintains mappings between the sup-
`ported protocols. When a user sends a request to a particular
`service, the gateway may determine whether the request is in
`the format of the protocol utilized by the underlying web
`service. If not, the gateway may convert the format to match
`the correct protocol. An embodiment is also possible where a
`single endpoint is utilized for multiple services having mul-
`tiple protocols. This may be coupled with an ability to detect
`a protocol automatically from request contents, thus seam-
`lessly integrating multiple protocols into a user’s experience.
`
`204
`202
`,
`/
`4
`/
`
`/Z/
`,//[//
`
`
`
`REST
`
`User
`
`
`
`diREST Response—
`
`REST Request!»
`
`
`
`
`
`REST/SOAP
`Endpoint
`(Gateway)
`
`
`
`210
`/
`
`x/f/
`/ /
`
`200
`/
`
`/7/
`/ z/
`
`
`
`REST Requestgb
`
`{iREST Responsei
`\\ \
`\§\\
`212
`
`
`
`
`
`REST
`Web Service
`
`TELESIGN EX1014
`
`Page 1
`
`206
`
`/Z/
`/ V
`
`SOAP
`User
`
`208
`4/
`
`’
`SOAP Request!»
`HSOAP Responsei
`\ \
`\§\\
`214
`
`
`
`TELESIGN EX1014
`Page 1
`
`
`
`
`
`REST
`User
`
`4
`
`
`
`104
`
`41/"
`I
`
`
`
`SOAP
`User
`
`4
`
`
`
`
`
`REST Requestgv
`REST Response
`\\$\
`1\14
`
`REST/SOAP
`Endpoint
`(Gateway)
`
`
`
`
`
`Patent Application Publication
`
`Jun. 12, 2008 Sheet 1 0f 4
`
`US 2008/0140861 A1
`
`102
`
`
`4/
`
`/
`
`
`
`108
`,/
`/Z/
`
`106
`.
`/
`
`4/
`
`/
`
`SOAP Req uestgb
`SOAP Response
`
`FIG. 1
`
`
`
`<780AP Responsei
`\
`
`110
`/ /
`,/Z/
`SOAP Requestgb
`
`\3\\
`112
`
`100
`/
`
`//[/
`
`SOAP
`Web Service
`
`
`
`TELESIGN EX1014
`
`Page 2
`
`TELESIGN EX1014
`Page 2
`
`
`
`Patent Application Publication
`
`Jun. 12, 2008 Sheet 2 of4
`
`US 2008/0140861 A1
`
`202
`, /
`
`,/_//
`
`204
`/
`
`///
`
`
`
`
`
`REST
`
`User
`
`206
`4/
`// M,
`
`SOAP
`User
`
`
`
`
`
`HSOAP Responsei 4
`
`REST Requestgb
`
`
`HREST Response
`
`REST/SOAP
`
`Endpoint
`(Gateway)
`
`208
`M ,/
`// 1/
`SOAP Requestgb
`
`
`
`210
`
`200
`4//
`/7/
`REST Requestgb
`
`REST
`Web Service
`
`
`
`
`
`REST Response
`\
`
`\S\\\
`21 2
`
`\\\
`21 4
`
`FIG.2
`
`TELESIGN EX1014
`
`Page 3
`
`TELESIGN EX1014
`Page 3
`
`
`
`Patent Application Publication
`
`Jun. 12, 2008
`
`Sheet 3 of 4
`
`US 2008/0140861 A1
`
`
`
`VVVVVVVVVVVVVVVVVVVVVVVV |\\\
`
`Perform URL rewriting
`on requests destined for
`a URL corresponding to
`a first web service
`
`
`
`
`
`
`
`V
`Receive a request
`in a first protocol
`for the first web
`service from a first
`user
`
`
`
`
`
`304
`
`
`Does
`
`
`the first web
`
`
`service support the
`first protocol
`’?
`
`
`
`
`
`
`30
`
`0
`
`302
`
`306
`fl/
`Access a stored mapping
`corresponding to the first
`protocol and to a second
`protocol, wherein the
`second protocol is
`supported by the first web
`service
`
`
`
`7777777 s
`
`308
`
`s C
`
`onvert the
`request into the
`second protocol
`using the stored
`mapping
`
`
`
`
`
`11/
`
`312
`
`Send the request
`to the first web
`service
`
`
`
`
`
`
`
`\‘V
`
`Receive a
`response from the
`first web service
`
`
`\\‘\.
`Access a stored
`
`4
`
`31
`
`mapping corresponding /
`to the first protocol and
`to the second protocol if
`the response must be
`converted
`
`
`
`
`
` Send the response
`
`316
` \“
`Convert the response V
`into the first protocol
`using the stored
`mapping if the
`response must be
`converted
`
`to the first user
`
`318
`
`FIG. 3
`
`77777777777777>\\@
`
`TELESIGN EX1014
`
`Page 4
`
`TELESIGN EX1014
`Page 4
`
`
`
`Patent Application Publication
`
`Jun. 12, 2008 Sheet 4 of 4
`
`US 2008/0140861 A1
`
`
`
`
`400
`402
`/
`//
`
`404
`1/
`
`.
`.
`First web serVIce
`.
`.
`First request first
`protocol
`.
`eterminer
`protocol receiver
`d
`.
`
`
`
`
`.
`URL rewnter
`
`
`
`//i7 /
`rrrrrrrrrrrrrrrrrr
`
`
`
`
`
`//f7//
`rrrrrrrrrrrrrrrrrr
`
`
`
`
`
`3
`
`z/Z /
`
`406
`/
`
`fl/
`/
`
`
`
`
`
`
`
`
`
`412
`/
`
`408
`/
`
`.
`First request first
`.
`web servnce
`sender
`
`/7/
`/’
`eeeeeeeeeeeeeeeeee
`
`.
`First request
`second protocol
`converter
`
`,/2/
`1
`eeeeeeeeeeeeee
`
`.
`Stored mapping
`accessor
`
`E
`/
`m /
`
`414
`;/2/
`3/1/
`/
`,
`/7/
`
`First response
`second protocol
`receiver
`
`,
`
`,
`
`,
`
`,
`
`,
`
`, ~~
`
`First response first
`protocol converter
`
`, ~~
`
`First response first
`user sender
`
`
`
`416
`
`418
`
`FIG. 4
`
`TELESIGN EX1014
`
`Page 5
`
`TELESIGN EX1014
`Page 5
`
`
`
`US 2008/0140861 A1
`
`Jun. 12, 2008
`
`WEB SERVICES MULTI-PROTOCOL
`SUPPORT
`
`requires additional programming and wastes
`however,
`resources. What is needed is a solution that avoids the draw-
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`[0001]
`[0002] The present invention relates to the field of web
`services. More specifically, the present invention relates to
`multi-protocol support for web services.
`[0003]
`2. Description of the Related Art
`[0004] The field of Web Services involves the creation and
`utilization of software systems designed to support interop-
`erable machine-to-machine operation over a network (typi-
`cally the World Wide Web, hence the name “Web Services”).
`There are a variety of different protocols utilized by various
`Web Services vendors and customers when operating these
`web services. Three of the most common Web Services pro-
`tocols are Simple Object Access protocol (SOAP), Represen-
`tational State Transfer (REST), and Extensible Markup Lan-
`guage Remote Procedure Call (XML-RPC).
`[0005]
`In SOAP, XML-based messages are exchanged,
`typically using HyperText Transfer Protocol (HTTP). The use
`of XML can be both a benefit and a drawback. Its format is
`
`easy for humans to read and understand, but it can create slow
`processing times and the extra XML wrapper around every
`request and response can create bandwidth issues. Addition-
`ally, the use of SOAP requires the knowledge of a new XML
`specification, and many developers will need a SOAP toolkit
`to form requests and parse the results. In spite of these draw-
`backs, SOAP is currently the most commonly used Web Ser-
`vices protocol.
`[0006]
`In REST, a Uniform Resource Identifier (URI) is
`utilized for the messaging. The most common type of URI is
`a Uniform Resource Locator (URL), which many users will
`recognize as the data located in a web address field of an
`Internet browser. For example, http://www.brokerage.com/
`quote?symbol:QQQ may be a URI in the REST protocol for
`issuing a request for a stock quote. REST has the advantage of
`the fact that any developer can figure out how to create and
`modify a URI to access different web services. The major
`disadvantage of REST is security, in that is can be dangerous
`to provide sensitive information as parameters in a URI.
`Despite this limitation, REST has been gaining momentum in
`comparison to SOAP.
`[0007] XML-RPC is a predecessor of SOAP. Despite
`numerous improvements made by SOAP over XML-RPC,
`XML-RPC is still in use in many systems simply because
`many vendors have been slow to adopt newer protocols, a
`common occurrence in the computer industry.
`[0008]
`Since it is common to see many different protocols
`utilized in various web services, it would be beneficial to
`provide a way for a single web service to be easily utilized by
`users familiar with any of the web services protocols, as
`opposed to limiting access to a particular web service to only
`those users familiar with the one particular protocol utilized
`by the web service.
`[0009]
`In the past, the solution to this problem has been to
`provide different versions of the same web service for the
`various protocols. For example, the aforementioned stock
`quote web service might be implemented with a SOAP ver-
`sion, a REST version, and an XML-RPC version, and the user
`can simply select which version to access. This solution,
`
`backs of the prior art.
`
`SUMMARY OF THE INVENTION
`
`[0010] A solution is provided wherein a single service
`implementation may be exposed to users as two or more
`different web service protocols. The service then appears to
`the user to be utilizing a desired protocol even though the
`service itself is potentially operating under a different proto-
`col. A gateway may be utilized that maintains mappings
`between the supported protocols. When a user sends a request
`to a particular service, the gateway may determine whether
`the request is in the format of the protocol utilized by the
`underlying web service. If not, the gateway may convert the
`format to match the correct protocol. An embodiment is also
`possible where a single endpoint is utilized for multiple ser-
`vices having multiple protocols. This may be coupled with an
`ability to detect a protocol automatically from request con-
`tents, thus seamlessly integrating multiple protocols into a
`user’s experience.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram illustrating a system for
`[0011]
`multi-protocol web services support in accordance with an
`embodiment of the present invention.
`[0012]
`FIG. 2 is a block diagram illustrating a system for
`multi-protocol web services support
`in accordance with
`another embodiment of the present invention.
`[0013]
`FIG. 3 is a flow diagram illustrating a method for
`multi-protocol web services support in accordance with an
`embodiment of the present invention.
`[0014]
`FIG. 4 is a block diagram illustrating an apparatus
`for multi-protocol web services support in accordance with
`an embodiment of the present invention.
`
`DETAILED DESCRIPTION OF SPECIFIC
`EMBODIMENTS
`
`[0015] Reference will now be made in detail to specific
`embodiments of the invention including the best modes con-
`templated by the inventors for carrying out the invention.
`Examples of these specific embodiments are illustrated in the
`accompanying drawings. While the invention is described in
`conjunction with these specific embodiments,
`it will be
`understood that it is not intended to limit the invention to the
`
`described embodiments. On the contrary, it is intended to
`cover alternatives, modifications, and equivalents as may be
`included within the spirit and scope of the invention as
`defined by the appended claims. In the following description,
`specific details are set forth in order to provide a thorough
`understanding of the present invention. The present invention
`may be practiced without some or all of these specific details.
`In addition, well known features may not have been described
`in detail to avoid unnecessarily obscuring the invention.
`[0016] The present
`invention provides a single service
`implementation that may be exposed to users as two or more
`different web service protocols. The service then appears to
`the user to be utilizing a desired protocol even though the
`service itself is potentially operating under a different proto-
`col. A gateway may be utilized that maintains mappings
`between the supported protocols. When a user sends a request
`to a particular service, the gateway may determine whether
`the request is in the format of the protocol utilized by the
`
`TELESIGN EX1014
`
`Page 6
`
`TELESIGN EX1014
`Page 6
`
`
`
`US 2008/0140861 A1
`
`Jun. 12, 2008
`
`underlying web service. If not, the gateway may convert the
`format to match the correct protocol.
`[0017]
`It should be noted that throughout this document,
`the term “gateway” shall be taken to mean any software or
`hardware (or combination thereof) that is able to intercept
`communications between clients and web services. While
`
`some implementations may locate the gateway physically
`between the client and the web service, there is no require-
`ment that the physical location of the gateway be separate
`from either the client or the web service.
`
`In an embodiment of the present invention, users
`[0018]
`may access a web service using either SOAP, REST, or XML-
`RPC requests. The web service may utilize only one of these
`three protocols. Nevertheless, embodiments are possible
`where different and/or additional protocols may be sup-
`ported, and nothing in this document should be taken as
`limiting the scope of protection to the three protocols listed
`above, except where explicitly stated.
`[0019]
`In an embodiment of the present invention, the user
`sends commands to the gateway as opposed to directly to the
`web service. As such, the gateway acts as a first endpoint of
`communications. It should be noted that the user may or may
`not be aware ofthe use ofthe gateway. In some embodiments,
`Uniform Resource Locator (URL) rewriting may be utilized
`to give the appearance to the user that he is directly accessing
`a web service using a particular protocol, when in fact his
`requests are being routed through the gateway, which con-
`verts the requests to a different protocol.
`[0020]
`In order to perform the necessary conversions
`between protocols, in an embodiment ofthe present invention
`configurable mappings may be stored by the gateway. These
`mappings may include predefined portions and user-config-
`urable portions. The predefined portions may contain map-
`pings between commonly used commands. The user-config-
`urable portions may contain mappings that a user has added
`on top of, or instead of, the predefined mappings. This may be
`particularly useful for rare commands that universal map-
`pings may not contain, or commands that ordinarily have
`ambiguous conversions (i.e., can be theoretically converted
`correctly to two or more different commands), with the con-
`figurable mapping clearing up the ambiguity.
`[0021]
`In an embodiment ofthe present invention, the gate-
`way may “intercept” requests from and responses to the user
`in order to perform the translations. The term “intercept” is
`used loosely, however, since the user and web service may
`both be fully aware that the gateway exists and may be inten-
`tionally sending the requests and responses directly to the
`gateway.
`FIG. 1 is a block diagram illustrating a system for
`[0022]
`multi-protocol web services support in accordance with an
`embodiment of the present invention. In this embodiment, a
`SOAP web service 100 is accessed. Two different users 102,
`104 access the same web service 100, but each user interfaces
`with the web service using a different protocol. User 102 is a
`REST user, and as such the gateway 106 accesses mappings to
`convert the REST requests 108 into SOAP requests 110, as
`well as convert the corresponding SOAP responses 112 into
`REST responses 114. User 104, on the other hand, is a SOAP
`user. As such, gateway 106 does not need to perform a con-
`version when the user communicates with the SOAP web
`service 100.
`
`FIG. 2 is a block diagram illustrating a system for
`[0023]
`multi-protocol web services support
`in accordance with
`another embodiment ofthe present invention. In this embodi-
`
`ment, a REST web service 200 is accessed. User 202 is a
`REST user. As such, gateway 204 does not need to perform a
`conversion when the user communicates with the REST web
`service 200. User 206, on the other hand, is a SOAP user, and
`as such the gateway 108 accesses mappings to convert the
`SOAP requests 208 into REST requests 210, as well as con-
`vert the corresponding REST responses 212 into SOAP
`responses 214.
`[0024]
`FIG. 3 is a flow diagram illustrating a method for
`multi-protocol web services support in accordance with an
`embodiment of the present invention. The method may be
`performed by a gateway. At 300, URL rewriting may be
`performed on requests destined for a URL corresponding to a
`first web service. At 302, a request may be received in a first
`protocol for the first web service from a first user. At 304, it
`may be determined if the first web service supports the first
`protocol. If not, then at 306, a stored mapping corresponding
`to the first protocol and to a second protocol may be accessed,
`wherein the second protocol is supported by the first web
`service. The mapping may comprise a predefined portion and
`a user-configurable portion. Then at 308, the request may be
`converted into the second protocol using the stored mapping.
`Then, at 310, the request may be sent to the first web service.
`At some later time, at 312, a response in the second protocol
`may be received from the first web service. At 314, a stored
`mapping corresponding to the first protocol and to the second
`protocol may be accessed. It should be noted that this stored
`mapping may or may not be the same mapping as was
`accessed in 306. For example, there may be one mapping
`from REST to SOAP and a separate mapping from SOAP to
`REST. Alternatively,
`there may be one single mapping
`between REST and SOAP.
`
`[0025] At 316, the response may be converted into the first
`protocol using the stored mapping. It should be noted that 3 14
`and 316 only need to be performed ifthe protocol ofresponse
`must be converted. If, for example, it was determined at 304
`that the web service supports the first protocol, then it is likely
`that the responses from the web service would also be in the
`first protocol and thus 314 and 316 need not be performed.
`Then at 318, the response may be sent to the first user.
`[0026]
`FIG. 4 is a block diagram illustrating an apparatus
`for multi-protocol web services support in accordance with
`an embodiment of the present invention. The apparatus may
`be a gateway. A Uniform Resource Locator (URL) rewriter
`400 may perform URL rewriting on requests destined for a
`URL corresponding to a first web service. A first request first
`protocol receiver 402 coupled to the URL rewriter 400 may
`receive a request in a first protocol for the first web service
`from a first user. A first web service protocol determiner 404
`coupled to the first request first protocol receiver 402 may
`determine ifthe first web service supports the first protocol. If
`not, then a stored mapping accessor 406 coupled to the first
`web service protocol determiner 404 may access a stored
`mapping corresponding to the first protocol and to a second
`protocol, wherein the second protocol is supported by the first
`web service. The mapping may comprise a predefined portion
`and a user-configurable portion. Then a first request second
`protocol converter 408 coupled to the stored mapping acces-
`sor 406 may convert the request into the second protocol
`using the stored mapping. Then a first request first web ser-
`vice sender 410 coupled to the first request second protocol
`converter 408 may send the request to the first web service. At
`some later time, a first response second protocol receiver 412
`coupled to the stored mapping accessor 406 may receive a
`
`TELESIGN EX1014
`
`Page 7
`
`TELESIGN EX1014
`Page 7
`
`
`
`US 2008/0140861 A1
`
`Jun. 12, 2008
`
`response in the second protocol from the first web service.
`Then the stored mapping accessor 406 may access a stored
`mapping corresponding to the first protocol and to the second
`protocol. It should be noted that this stored mapping may or
`may not be the same mapping as was accessed before. For
`example, there may be one mapping from REST to SOAP and
`a separate mapping from SOAP to REST. Alternatively, there
`may be one single mapping between REST and SOAP.
`[0027] A first response first protocol converter 416 coupled
`to the stored mapping accessor 406 may convert the response
`into the first protocol using the stored mapping. Then a first
`response first user sender 418 coupled to the first response
`first protocol converter 416 and to the first web service pro-
`tocol determiner 404 may send the response to the first user.
`[0028]
`Furthermore,
`in an embodiment of the present
`invention, multiple services (with multiple protocols) may
`have a single endpoint. This may be coupled with the ability
`to detect a protocol automatically from request contents. In
`such an embodiment, the system essentially seamlessly auto-
`mates the use of multiple services while potentially hiding
`such details from the users.
`
`[0029] While the invention has beenparticularly shown and
`described with reference to specific embodiments thereof, it
`will be understood by those skilled in the art that changes in
`the form and details of the disclosed embodiments may be
`made without departing from the spirit or scope of the inven-
`tion. In addition, although various advantages, aspects, and
`objects of the present invention have been discussed herein
`with reference to various embodiments, it will be understood
`that the scope of the invention should not be limited by ref-
`erence to such advantages, aspects, and objects. Rather, the
`scope ofthe invention should be determined with reference to
`the appended claims.
`What is claimed is:
`
`1. A method for multi-protocol web services support, the
`method comprising:
`receiving a first request in a first protocol for a first web
`service from a first user;
`determining if the first web service supports the first pro-
`tocol;
`if the first web service does not support the first protocol:
`accessing a stored mapping corresponding to the first
`protocol and to a second protocol, wherein the second
`protocol is supported by the first web service;
`converting the first request into the second protocol
`using the stored mapping; and
`sending the first request to the first web service.
`2. The method of claim 1, further comprising:
`receiving a first response in the second protocol from the
`first web service;
`accessing a stored mapping corresponding to the first pro-
`tocol and to the second protocol;
`converting the first response into the first protocol using the
`stored mapping; and
`sending the first response to the first user.
`3. The method of claim 1, wherein the mapping comprises
`a predefined portion and a user-configurable portion.
`4. The method of claim 1, wherein the first and second
`protocols are protocols selected from the group consisting of:
`Simple Object Access Protocol (SOAP), Representational
`State Transfer (REST), and Extensible Markup Language
`Remote Procedure Call OiML-RPC).
`5. The method of claim 1, wherein the method is performed
`by a gateway.
`
`6. The method of claim 1, further comprising: performing
`Uniform Resource Locator (URL) rewriting on requests des-
`tined for a URL corresponding to the first web service.
`7. The method of claim 1, further comprising:
`receiving a second request in the second protocol for the
`first web service from a second user; and
`sending the second request to the first web service without
`conversion.
`
`8. The method of claim 1, further comprising:
`receiving a second request in a third protocol for a second
`web service from a second user;
`determining of the second web service supports the third
`protocol;
`if the second web service does not support the third proto-
`col:
`
`accessing a second stored mapping corresponding to the
`third protocol and to a fourth protocol, wherein the
`fourth protocol is supported by the second web ser-
`vice;
`converting the request into the fourth protocol using the
`second stored mapping; and
`sending the second request to the second web service.
`9. The method of claim 8, wherein the first web service and
`the second web service are accessed via a single endpoint.
`10. An apparatus for multi-protocol web services support,
`the apparatus comprising:
`a first request first protocol receiver;
`a first web service protocol determiner coupled to the first
`request first protocol receiver;
`a stored mapping accessor coupled to the first web service
`protocol determiner;
`a first request second protocol converter coupled to the
`stored mapping accessor; and
`a first request first web service sender coupled to the first
`request second protocol converter and to the first web
`service protocol determiner.
`11. The apparatus of claim 10, further comprising:
`a first response second protocol receiver coupled to the
`stored mapping accessor;
`a first response first protocol converter coupled to the
`stored mapping accessor; and
`a first response first user sender coupled to the first
`response first protocol converter and to the first web
`service protocol determiner.
`12. The apparatus of claim 10, wherein the apparatus is a
`gateway.
`13. The apparatus of claim 10, wherein the apparatus is
`located on the same physical device as a first web service.
`14. The apparatus of claim 10, further comprising a Um-
`form Resource Locator (URL) rewriter coupled to the first
`request first protocol receiver.
`15. An apparatus for multi-protocol web services support,
`the apparatus comprising:
`means for receiving a first request in a first protocol for a
`first web service from a first user;
`means for determining if the first web service supports the
`first protocol;
`means for, if the first web service does not support the first
`protocol:
`accessing a stored mapping corresponding to the first
`protocol and to a second protocol, wherein the second
`protocol is supported by the first web service;
`
`TELESIGN EX1014
`
`Page 8
`
`TELESIGN EX1014
`Page 8
`
`
`
`US 2008/0140861 A1
`
`Jun. 12, 2008
`
`converting the first request into the second protocol
`using the stored mapping; and
`means for sending the first request to the first web service.
`16. The apparatus of claim 15, further comprising:
`means for receiving a first response in the second protocol
`from the first web service;
`means for accessing a stored mapping corresponding to the
`first protocol and to the second protocol;
`means for converting the first response into the first proto-
`col using the stored mapping; and
`means for sending the first response to the first user.
`17. The apparatus of claim 15, wherein the mapping com-
`prises a predefined portion and a user-configurable portion.
`18. The apparatus of claim 15, wherein the first and second
`protocols are protocols selected from the group consisting of:
`Simple Object Access Protocol (SOAP), Representational
`State Transfer (REST), and Extensible Markup Language
`Remote Procedure Call OiML-RPC).
`19. The apparatus of claim 15, wherein the apparatus is a
`gateway.
`20. The apparatus of claim 15, further comprising: means
`for performing Uniform Resource Locator (URL) rewriting
`on requests destined for a URL corresponding to the first web
`service.
`
`21. The apparatus of claim 15, further comprising:
`means for receiving a second request in the second protocol
`for the first web service from a second user; and
`means for sending the second request to the first web ser-
`vice without conversion.
`
`22. The apparatus of claim 15, further comprising:
`means for receiving a second request in a third protocol for
`a second web service from a second user;
`means for determining of the second web service supports
`the third protocol;
`means for, if the second web service does not support the
`third protocol:
`accessing a second stored mapping corresponding to the
`third protocol and to a fourth protocol, wherein the
`fourth protocol is supported by the second web ser-
`vice;
`converting the request into the fourth protocol using the
`second stored mapping; and
`means for sending the second request to the second web
`service.
`
`23. The apparatus ofclaim 22, wherein the first web service
`and the second web service are accessed via a single endpoint.
`*
`>X<
`*
`>X<
`*
`
`TELESIGN EX1014
`
`Page 9
`
`TELESIGN EX1014
`Page 9
`
`