IP Library Granted Patent US 8,769,026
Granted Patent B2
US 8,769,026 · App. 13/305,614 · Granted Jul 1, 2014

Servicing requests that are issued in a protocol other than the protocol expected by the service

Inventors: Zhou Ye (Fremont, CA); Calvin Wang (Millbrae, CA)
Assignee: Oracle International Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,769,026
App. No.
13/305,614
Granted
Jul 1, 2014
Kind
B2
Abstract

Techniques are provided for servicing requests that are issued in a protocol other than the protocol expected by the service. For example, many people want to use their mobile devices to interact with services, which require the ability to have multiple related messages in a session. However, their mobile devices do not have protocols that support interacting with such services. One technique provided herein is to interpose an intermediary between the mobile devices and the services to provide session capabilities on behalf of the mobile devices.

Claims (72)

1. A method comprising:

an intermediary registering a to-address with a transport handler, wherein the intermediary is an application and the to-address identifies an address of a server;

in response to registering the to-address, the transport handler updating an intermediary map with an entry that maps the to-address to the intermediary;

the transport handler receiving a first message traveling from a client to the server, the first message conforming to a first protocol and specifying the to-address;

the transport handler selecting the intermediary from a plurality of intermediaries based on (a) the first message specifying the to-address, and (b) the intermediary map having the entry that maps the to-address to the intermediary;

responsive to selecting the intermediary, the transport handler forwarding content from the first message to the intermediary; and

in response to receiving the content, the intermediary transforming the content into a second message conforming to a second protocol that is different than the first protocol;

in response to transforming the content into the second message, the intermediary sending the second message to a service hosted at the server;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , further comprising:

selecting, by a transport handler, a protocol handler from a plurality of protocol handlers, and using the selected protocol handler to receive and interpret the first message, wherein the selected protocol handler is selected based on information in said first message, wherein the protocol handler transmits the content from the first message to said intermediary, wherein the intermediary is different from the protocol handler.

3. The method of claim 2 , wherein receiving and interpreting the first message includes: extracting the to-address and an instruction from the first message; and

determining an address of the intermediary based at least in part on the to-address.

4. The method of claim 3 , wherein the protocol handler is an e-mail protocol handler, and extracting the to-address is performed by the e-mail protocol handler.

5. The method of claim 3 , wherein the protocol handler is an SMS protocol handler, and extracting the to-address is performed by the SMS protocol handler.

6. The method of claim 1 wherein the second protocol is HTTP.

7. The method of claim 1 wherein the first protocol does not support sessions.

8. The method of claim 1 , further comprising:

the intermediary receiving a third message from the server that conforms to the second protocol;

the intermediary transforming content from the third message into a fourth message that conforms to the first protocol;

placing, by the intermediary, one or more reference values in the fourth message that can be used by said client device to request additional services using the first protocol, wherein the intermediary stores an association between each reference value of the one or more reference values and a corresponding hyperlink of a set of hyperlinks received by the intermediary within the third message, wherein the association is released by the intermediary upon termination of a session between the client and the server, wherein the set of hyperlinks provides access to the additional services, and wherein the first protocol does not support using hyperlinks of the set of hyperlinks directly to request the additional services.

9. The method of claim 8 , wherein said fourth message includes a menu containing the one or more reference values corresponding to a plurality of hyperlinks that provide access to the additional services.

10. The method of claim 9 , further comprising:

receiving a fifth message from the client at the intermediary, wherein said fifth message contains a reference value of said one or more reference values;

wherein said reference value in the fifth message is a selection from the menu in the fourth message, and further comprising:

maintaining at the intermediary a session context that includes the reference value in the fifth message.

11. The method of claim 10 , wherein a particular hyperlink that is associated with the reference value contained in the fifth message is used to send a sixth message to the server.

12. The method of claim 8 , further comprising ending the session at the earlier of a timer ending or a user exiting a menu tree.

13. The method of claim 1 , wherein the intermediary maintains data that reflects a position of the client in a menu tree associated with a service provided by the server.

14. The method of claim 1 , further comprising:

determining whether the to-address identifies a particular service or does not identify any particular service;

in response to determining that the to-address identifies the particular service, selecting a target service from a plurality of services provided by the server based on the to-address;

in response to determining that the to-address does not identify any particular service, selecting the target service from the plurality of services provided by the server based on a service identifier contained within a message body of the first message;

wherein the intermediary sends the second message to the target service.

15. A non-transitory computer-readable medium storing one or more sequences of instructions which when executed by one or more processors, cause the one or more processors to perform steps comprising:

an intermediary registering a to-address with a transport handler, wherein the intermediary is an application and the to-address identifies an address of a server;

in response to registering the to-address, the transport handler updating an intermediary map with an entry that maps the to-address to the intermediary;

the transport handler receiving a first message traveling from a client to the server, the first message conforming to a first protocol and specifying the to-address;

the transport handler selecting the intermediary from a plurality of intermediaries based on (a) the first message specifying the to-address, and (b) the intermediary map having the entry that maps the to-address to the intermediary;

responsive to selecting the intermediary, the transport handler forwarding content from the first message to the intermediary; and

in response to receiving the content, the intermediary transforming the content into a second message conforming to a second protocol that is different than the first protocol;

in response to transforming the content into the second message, the intermediary sending the second message to a service hosted at the server.

16. The non-transitory computer-readable medium of claim 15 ,

wherein the steps further comprise:

selecting, by a transport handler, a protocol handler from a plurality of protocol handlers, and using the selected protocol handler to receive and interpret the first message, wherein the selected protocol handler is selected based on information in said first message, wherein the protocol handler transmits the content from the first message to said intermediary.

17. The non-transitory computer-readable medium of claim 16 ,

wherein receiving and interpreting the first message includes:

extracting the to-address and an instruction from the first message; and

determining an address of the intermediary based at least in part on the to-address.

18. The non-transitory computer-readable medium of claim 17 , wherein the protocol handler is an e-mail protocol handler, and extracting the to-address is performed by the e-mail protocol handler.

19. The non-transitory computer-readable medium of claim 17 , wherein the protocol handler is an SMS protocol handler, and extracting the to-address is performed by the SMS protocol handler.

20. The non-transitory computer-readable medium of claim 15 , wherein the second protocol is HTTP.

21. The non-transitory computer-readable medium of claim 15 , wherein the first protocol does not support sessions.

22. The non-transitory computer-readable medium of claim 15 , wherein the steps further comprise:

the intermediary receiving a third message from the server that conforms to the second protocol;

the intermediary transforming content from the third message into a fourth message that conforms to the first protocol;

placing, by the intermediary, one or more reference values in the fourth message that can be used by said client device to request additional services using the first protocol, wherein the intermediary stores an association between each reference value of the one or more reference values and a corresponding hyperlink of a set of hyperlinks received by the intermediary within the third message, wherein the association is released by the intermediary upon termination of a session between the client and the server, wherein the set of hyperlinks provides access to the additional services, and wherein the first protocol does not support using hyperlinks of the set of hyperlinks directly to request the additional services.

23. The non-transitory computer-readable medium of claim 22 , wherein said fourth message includes a menu containing the one or more reference values corresponding to a plurality of hyperlinks that provide access to the additional services.

24. The non-transitory computer-readable medium of claim 23 ,

wherein the steps further comprise:

receiving a fifth message from the client at the intermediary, wherein said fifth message contains a reference value of said one or more reference values;

wherein said reference value in the fifth message is a selection from the menu in the fourth message, and further comprising:

maintaining at the intermediary a session context that includes the reference value in the fifth message.

25. The non-transitory computer-readable medium of claim 24 , wherein a particular hyperlink that is associated with the reference value contained in the fifth message is used to send a sixth message to the server.

26. The non-transitory computer-readable medium of claim 22 , wherein the steps further comprise ending the session at the earlier of a timer ending or a user exiting a menu tree.

27. The non-transitory computer-readable medium of claim 15 , wherein the steps further comprise the intermediary maintaining data that reflects a position of the client in a menu tree associated with a service provided by the server.

28. The non-transitory computer-readable medium of claim 15

wherein the steps further comprise:

determining whether the to-address identifies a particular service or does not identify any particular service;

in response to determining that the to-address identifies the particular service, selecting a target service from a plurality of services provided by the server based on the to-address;

in response to determining that the to-address does not identify any particular service, selecting the target service from the plurality of services provided by the server based on a service identifier contained within a message body of the first message;

wherein the intermediary sends the second message to the target service.

Continuity (3)
Continuation 10097389 · Mar 12, 2002
Provisional Application 60337359 · Nov 30, 2001
Related Publication 20120072516A1 · Mar 22, 2012