IP Library Granted Patent US 9,794,298
Granted Patent B2
US 9,794,298 · App. 15/294,466 · Granted Oct 17, 2017

Method, system, and computer program product for facilitating communication in an interoperability network

Inventors: Alexander Lerner (San Francisco, CA); Michael K. Dewey (Berkeley, CA)
Assignee: salesforce.com, inc.
H04L63/20G06F9/546G06F21/6236H04L63/102H04L67/327
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 9,794,298
App. No.
15/294,466
Granted
Oct 17, 2017
Kind
B2
Abstract

Methods and apparatus are described for facilitating communication among a plurality of entities via an interoperability network. Each entity has policy data corresponding thereto governing interaction with the entity via the interoperability network. A message is transmitted from a first one of the entities to a second one of the entities. The first entity has first policy data corresponding thereto and the second entity has second policy data corresponding thereto. The transmitted message was handled in the network according to combined policy data representing a combination of the first and second policy data.

Claims (46)

1. A method for facilitating communication between a first service and a second service of a plurality of services on an interoperability network that includes a database storing policies for governing an interaction between the first service and the second service, the method comprising:

receiving, from the first service, a message intended for transmission through the interoperability network to the second service;

for transmissions from the first service through the interoperability network to the second service, identifying, from the database, first data of a first policy of the first service and second data of a second policy of the second service;

merging the identified first data of the first policy and the identified second data of the second policy to produce a combined policy that is honored by both the first service and the second service of the plurality of services;

determining, by a computer processor, whether transmission of the received message to the second service would violate any policy found in the combined policy;

conditionally allowing the received message to be transmitted to the second service by:

rejecting the transmission of the received message to the second service, when the determination is that the transmission of the received message violates any policy found in the combined policy; and

transmitting the received message to the second service, when the determination is that the transmission of the received message does not violate any policy found in the combined policy.

2. The method of claim 1 , wherein the combined policy includes assertions from the first policy and the second policy.

3. The method of claim 2 , wherein the method further comprises pruning redundant assertions from the combined policy.

4. The method of claim 2 , wherein the method further comprises:

identifying conflicting assertions in the combined policy; and

determining that the merging to produce the combined policy has failed and rejecting the transmission of the received message.

5. The method of claim 2 , wherein an assertion, of the assertions included in the combined policy, includes routing rules established by at least one of the first service and the second service.

6. The method of claim 2 , wherein an assertion, of the assertions included in the combined policy, identifies one or more routes established by at least one of the first service and the second service.

7. The method of claim 2 , wherein an assertion, of the assertions included in the combined policy, requires the message to have a specific type of encryption.

8. The method of claim 2 , wherein an assertion, of the assertions included in the combined policy, requires a size or a length of the message to be smaller than a specific threshold.

9. The method of claim 8 , wherein the method further comprises determining whether the transmission of the received message to the second service would violate the assertion that requires the size or the length of the message to be smaller than the specific threshold, at two different points in the interoperability network along a route between the first service and the second service.

10. The method of claim 2 , wherein an assertion, of the assertions included in the combined policy, requires a certain type of service level agreement (SLA) to be in place between the first service and the second service.

11. The method of claim 10 , wherein the SLA requires the second service to have a specific percentage of uptime and an error rate that is less than an error rate threshold.

12. The method of claim 2 , wherein an assertion, of the assertions included in the combined policy, requires a specific type of authentication of at least one of the first service and the second service.

13. The method of claim 12 , wherein the specific type of authentication requires the at least one of the first service and the second service to be authenticated using a certain certificate.

14. The method of claim 2 , wherein an assertion, of the assertions included in the combined policy, requires a certain protocol to be used for the transmission of the received message.

15. The method of claim 2 , wherein the determining of whether the transmission of the received message to the second service would violate any policy found in the combined policy includes evaluating an assertion, of the assertions included in the combined policy, at different points of the transmission of the received message within the interoperability network.

16. The method of claim 1 , wherein the transmission of the received message to the second service is a push delivery.

17. The method of claim 1 , wherein the transmission of the received message to the second service is a post and poll delivery.

18. The method of claim 1 , further comprising transmitting a generated policy violation message to at least one of the first service and the second service, when the determination is that the received message violates the combined policy.

19. The method of claim 1 , further comprising:

generating policy audit data including information related to compliance of at least one of the first service and the second service to the combined policy; and

generating reports using the policy audit data.

20. A non-transitory computer readable storage medium impressed with computer program instructions for facilitating communication between a first service and a second service of a plurality of services on an interoperability network that includes a database storing policies for governing an interaction between the first service and the second service, the instructions, when executed on a processor, implement a method comprising:

receiving, from the first service, a message intended for transmission through the interoperability network to the second service;

for transmissions from the first service through the interoperability network to the second service, identifying, from the database, first data of a first policy of the first service and second data of a second policy of the second service;

merging the identified first data of the first policy and the identified second data of the second policy to produce a combined policy that is honored by both the first service and the second service of the plurality of services;

determining, by a computer processor, whether transmission of the received message to the second service would violate any policy found in the combined policy;

conditionally allowing the received message to be transmitted to the second service by:

rejecting the transmission of the received message to the second service, when the determination is that the transmission of the received message violates any policy found in the combined policy; and

transmitting the received message to the second service, when the determination is that the transmission of the received message does not violate any policy found in the combined policy.

21. A system including one or more processors coupled to memory, the memory loaded with computer instructions for facilitating communication between a first service and a second service of a plurality of services on an interoperability network that includes a database storing policies for governing an interaction between the first service and the second service, the instructions, when executed on a processor, implement actions comprising:

receiving, from the first service, a message intended for transmission through the interoperability network to the second service;

for transmissions from the first service through the interoperability network to the second service, identifying, from the database, first data of a first policy of the first service and second data of a second policy of the second service;

merging the identified first data of the first policy and the identified second data of the second policy to produce a combined policy that is honored by both the first service and the second service of the plurality of services;

determining, by a computer processor, whether transmission of the received message to the second service would violate any policy found in the combined policy;

conditionally allowing the received message to be transmitted to the second service by:

rejecting the transmission of the received message to the second service, when the determination is that the transmission of the received message violates any policy found in the combined policy; and

transmitting the received message to the second service, when the determination is that the transmission of the received message does not violate any policy found in the combined policy.

Assignments (1)
CHANGE OF NAME Recorded Jan 27, 2025
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 070014/0854 →
Continuity (8)
Continuation 14629440 · Feb 23, 2015
Continuation 14055817 · Oct 16, 2013
Continuation 13485760 · May 31, 2012
Continuation 13314101 · Dec 7, 2011
Continuation 12775394 · May 6, 2010
Continuation 10858709 · Jun 1, 2004
Provisional Application 60511573 · Oct 14, 2003
Related Publication 20170034219A1 · Feb 2, 2017