Source: https://patents.google.com/patent/US9747466B2/en
Timestamp: 2020-07-08 05:42:53
Document Index: 545328866

Matched Legal Cases: ['§119', 'Application No. 61', 'Application No. 61', 'Application No. 61', 'Application No. 61', 'Application No. 14185781', 'Application No. 14', 'Application No. 14185781']

US9747466B2 - Hosted application gateway architecture with multi-level security policy and rule promulgations - Google Patents
Hosted application gateway architecture with multi-level security policy and rule promulgations Download PDF
US9747466B2
US9747466B2 US14/534,623 US201414534623A US9747466B2 US 9747466 B2 US9747466 B2 US 9747466B2 US 201414534623 A US201414534623 A US 201414534623A US 9747466 B2 US9747466 B2 US 9747466B2
US14/534,623
US20150088934A1 (en
Geoffrey Michael Obbard
2013-09-20 Priority to US201361880481P priority Critical
2013-09-20 Priority to US201361880526P priority
2013-09-20 Priority to US201361880557P priority
2013-09-20 Priority to US201361880502P priority
2014-09-19 Priority to US14/491,386 priority patent/US9979751B2/en
2014-09-19 Priority to US14/491,492 priority patent/US10171501B2/en
2014-09-19 Priority to US14/491,483 priority patent/US10116697B2/en
2014-09-19 Priority to US14/491,451 priority patent/US9674225B2/en
2014-11-06 Priority to US14/534,623 priority patent/US9747466B2/en
2014-11-06 Assigned to Open Text S.A. reassignment Open Text S.A. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LAIRD, ROBERT, OBBARD, GEOFFREY MICHAEL, Beckman, Gregory
2014-11-06 Application filed by Open Text SA ULC filed Critical Open Text SA ULC
2015-03-26 Publication of US20150088934A1 publication Critical patent/US20150088934A1/en
2017-08-29 Publication of US9747466B2 publication Critical patent/US9747466B2/en
2019-04-01 Priority claimed from US16/371,852 external-priority patent/US20190228177A1/en
230000001276 controlling effects Effects 0.000 description 11
A hosted application gateway server node may be communicatively coupled to backend systems, client devices, and database shards associated with database servers. Through the gateway server node, various services may be provided to managed containers running on client devices such that enterprise applications can be centrally managed. A sharding manager may manage relationships of database items across database shards. Each shard stores a copy of a table representing a split of a relationship. A shard ID mask is included in each item's ID. At query time, the shard ID can be extracted and used to query the correct database. This query routing mechanism allows navigation from one shard to another when multiple items are in a relationship (e.g., share the same resource such as a document). As such, embodiments can eliminate the need for APIs to join in data that span multiple shards.
This is a continuation-in-part of U.S. patent application Ser. No. 14/491,386, filed Sep. 19, 2014, entitled “APPLICATION GATEWAY ARCHITECTURE WITH MULTI-LEVEL SECURITY POLICY AND RULE PROMULGATIONS,” which is a conversion of, and claims a benefit of priority under 35 U.S.C. §119 from U.S. Provisional Application No. 61/880,481, filed Sep. 20, 2013. This application relates to U.S. patent application Ser. No. 14/491,451, filed Sep. 19, 2014, which is a conversion of, and claims a benefit of priority from U.S. Provisional Application No. 61/880,502, filed Sep. 20, 2013; Ser. No. 14/491,492, filed Sep. 19, 2014, which is a conversion of, and claims a benefit of priority from U.S. Provisional Application No. 61/880,526, filed Sep. 20, 2013; and Ser. No. 14/491,483, filed Sep. 19, 2014, which is a conversion of, and claims a benefit of priority from U.S. Provisional Application No. 61/880,557, filed Sep. 20, 2013. All applications listed in this paragraph are hereby incorporated by reference as if set forth herein in their entireties, including all appendices attached thereto.
This disclosure relates generally to content management. More particularly, embodiments disclosed herein relate to a cloud based solution for controlling how backend content can be deployed and managed at client devices through managed containers operating on client devices and an application gateway connected to backend systems.
However, such content control software and services are often inadequate to control content downloaded by users to their computers. This can be problematic for enterprises wanting to retain control over enterprise content downloaded to devices that may or may not be owned by the enterprises.
Additionally, provisioning content may require significant database resources. A procedure known as “sharding” has been used to scale databases beyond what a single server or cluster or servers can handle. In sharding, a single large database is fragmented or sharded into multiple smaller databases that operate virtually independently. Collectively, the shards appear to form a single, very large database. However, handling relationships between objects that may be in separate shards can be problematic.
An object of this disclosure is to provide an effective mechanism by which an entity can retain control over their applications and data associated therewith, even if the applications and/or data have been downloaded onto a device not owned or controlled by the entity. Another object of the disclosure is to provide a secure storage on a user device such that downloaded applications and/or data can be protected from unauthorized access. Yet another object of the disclosure is to bridge the gap between user devices and backend systems such that downloaded applications and/or data can be updated to reflect a change at the backend, for instance, a change in a data policy rule applicable to the downloaded applications and/or data.
These and other objects can be achieved through embodiments of systems, methods and computer program products disclosed herein. For example, in some embodiments, a method may comprise sending an application from an application gateway server computer to a managed container executing on a client device. Within this disclosure, a managed container refers to a special computer program that can be downloaded from a source.
The application may be hosted and/or required by a backend system such as a content server. The managed container may provide a secure shell for the application received from the application gateway server computer, store the application and data associated with the application in a managed cache, and control the managed cache in accordance with a set of rules propagated from the backend system to the managed container via the application gateway server computer. All or some of the set of rules may reside on the client device, the backend system, the application gateway server computer, or a combination thereof.
In some embodiments, the set of rules may include at least one of: a rule controlling storage of data associated with an application received from the application gateway server computer, a rule controlling access to data associated with an application received from the application gateway server computer, or a rule controlling update of data associated with an application received from the application gateway server computer.
The downloaded application—and any data associated therewith—remains under the control of the managed container regardless of whether the client device has network connectivity (i.e., regardless of whether the client device is or is not connected to application gateway server computer).
In some embodiments, the secure shell provided by the managed container includes a secure data encryption shell that encrypts the data associated with the application to limit or prevent access to the data by the client device's own operating system and other applications residing on the client device but not received from the application gateway server computer.
In some embodiments, at least one of the set of rules propagated from the backend system may determine encryption parameters for encrypting the data stored in the managed cache. In turn, the secure data encryption shell may encrypt the data based on the encryption parameters.
In some embodiments, the encryption parameters may be shared between the managed container and the backend system, via the application gateway server computer, to enable shared secure access to the data between and among the applications received from the application gateway server computer and the one or more backend systems.
One embodiment comprises a system comprising a processor and a non-transitory computer-readable storage medium that stores computer instructions translatable by the processor to perform a method substantially as described herein. Another embodiment comprises a computer program product having a non-transitory computer-readable storage medium that stores computer instructions translatable by a processor to perform a method substantially as described herein.
As an example, one embodiment of a system may include an application gateway server computer communicatively connected to backend systems and client devices. The backend systems as well as the client devices may operate on different platforms. The application gateway server computer may have application programming interfaces and services configured for communicating with the backend systems and managed containers operating on the client devices.
The services provided by embodiments of an application gateway server computer disclosed herein may include various types of services that may be generally categorized as core services and product services. In one embodiment, core services may refer to services necessary for building new applications. In one embodiment, product services may refer to services configured for integration of existing products. In this disclosure, these and other services are collectively referred to as “services.”
In some embodiments, a managed container may be implemented as an application (program) that is native to a client device and that can be downloaded from a source on the Internet such as a website or an app store. As disclosed herein, the managed container includes a managed cache for storing content received from the application gateway server computer, including applications. Applications received from the application gateway server computer are not downloaded from a website or third-party app store. In some embodiments, applications received from the application gateway server computer are written in a markup language for structuring and presenting content on the Internet.
A further object of this disclosure is to provide an effective mechanism by which relationships between objects in different shards may be handled. This object may be accomplished in accordance with embodiments by maintaining a function table visible to an application programming interface used to access the sharded database. In some embodiments, the function table is a split function table, with one copy stored in each shard involved in the relationship. One copy is keyed to the object in the first shard associated with the relationship and another copy is keyed to the object in the second shard associated with the relationship. Such a sharded database, and the handling of relationships therein, may be particularly advantageous in a system that includes a cloud provisioning “gateway.”
FIG. 8 depicts a diagrammatic representation of an example of a managed container operating on another type of client device according to some embodiments;
FIG. 9 depicts diagrammatic representation of an example architecture that may use managed containers according to embodiments;
FIG. 10 depicts a diagrammatic representation of an example embodiment of a cloud-based environment for handling managed containers according to embodiments;
FIG. 11A and FIG. 11B depict examples of handling relationships between objects in a single database;
FIG. 12A and FIG. 12B depict examples of handling relationships across shards; and
FIG. 13A and FIG. 13B depict diagrammatic representations of example embodiments of sharding management according to embodiments;
Managed Container and Gateway Architecture
{ “name”: “pulse”, “displayName”: “Content Server Pulse”, “description”: “Status and Comments ”, “status”: 1, “version”: “8”, “proxy_url”: “https://intranet.company.com/cs/cs.dll”, “local”: true }
Acting as a native shell for applications 722 downloaded to client device 725, managed container 721 has knowledge (e.g., via managed file system 723) of where contents (applications 722 and data associated therewith) are stored in managed cache 724 and their corresponding settings in settings repository 729, can display a download progress bar on client device 725 via managed container user interface 730 (which includes common UI components in the native code), and can receive notifications 725 in the background and take appropriate action accordingly. For example, if an administrator wishes to restrict access to application 722 downloaded onto client device 725, notification 725 to remove application 722 can be sent to managed container 725, as described above, and managed container 721 will respond to notification 725 and delete application 722 from managed cache 724. All related metadata and applicable cached content will be deleted as well. Correspondingly, the icon for application 722 will disappear from user interface 730 of the managed container.
Cloud-Based Architecture and Database Sharding
FIG. 9 depicts a diagrammatic representation of an example of a cloud based application gateway architecture that may employ managed containers according to some embodiments. In the example of FIG. 9, system 900 may include cloud-based gateway services 910 communicatively connected to backend systems 931 and one or more client devices 925. Client device 925 shown in FIG. 9 is representative of various client devices. Those skilled in the art will appreciate that FIG. 9 shows a non-limiting example of client device 925. Backend systems 931 may comprise computer program products and/or applications developed within a company and/or by third party developers/companies. Non-limiting examples of backend systems 931 may include a content server, an information management system, a document repository, a process management system, a social server, an RM system, a database management system, an enterprise resources planning system, a collaboration and management system, a customer relationship management system, a search system, an asset management system, a case management system, etc. Embodiments as shown in FIG. 9 of the cloud-based gateway may include APIs and services configured for communicating with backend systems 931 and managed containers 921 operating on client devices 925, in a manner generally similar to that discussed above.
The architecture of FIG. 9 is illustrated with more particularity with reference to FIG. 10. Specifically, architecture 1000 implements many features that can provide increased throughput and scalability. For example, architecture 1000 includes scalable cloud-based or hosted gateway server 1004 which, in some embodiments, is implemented as a Node.js application server. As those skilled in the art can appreciate, Node.js provides an event-driven architecture and can maintain a large number of connections without having to reject new incoming connections. This feature allows architecture 1000 to scale up massively by adding new “nodes” and also allows gateway server node 1004 to effortlessly handle real time applications. Some of such applications may include lightweight applications for certain functions normally provided by backend systems such as a portal or a social tool (e.g., a blogging tool) for a content server.
In some embodiments, architecture 1000 may be a multi-tenant architecture where multiple tenants can share the same application running on the same operating system on the same hardware using the same data storage mechanism. Every tenant (e.g., a group of users) is provided with a share of a software instance and/or resource. However, tenants do not share and cannot view each other's data. In some embodiments, tenants and their contents may be stored in database shards and filtered using tenant identifiers. Embodiments of database sharding are further described below. This multi-tenant feature allows a large number of users to use the applications and/or services provided by or through gateway server node 1004 and further facilitates the scalability of architecture 1000.
In some embodiments, gateway server node 1004 may coordinate with reverse proxy server 1002, and may be in communication with a plurality of backend systems 1006-1014. In the example embodiment illustrated, such systems may include utilities 1006 such as text extraction, thumbnail generation, document conversion, and identity management; search system 1008; queue manager 1010; database manager 1012; and storage appliance 1014. Similar to the common authentication described above, a user may only need to authenticate once for all the applications delivered through architecture 1000 to the user's managed container.
Reverse proxy server 102 may provide a plurality of functions including load balancing, web content server, and etc. In some embodiments, reverse proxy server 102 may be implemented as an Nginx server, with a focus on high concurrency, high performance, and low memory usage. Those skilled in the art can appreciate that an Nginx reverse proxy server can be configured for HTTP, HTTPS, SMTP, POP3, and IMAP protocols and can act as a load balancer, HTTP cache, and a web server (origin server). Additionally, reverse proxy server 102 may provide an administration layer for administering new instances of nodes, further increasing the scalability of architecture 1000.
Gateway server node 1004 may implement a web application framework for REST API request handlers. In addition, gateway server node 1004 may create and manage background tasks and distribute jobs to the appropriate backend engine(s) for processing. Furthermore, gateway server node 1004 may provide a framework for defining logical models and mapping them to a database's physical model.
As noted above, embodiments provide an improved system and method for database sharding. As those skilled in the art can appreciate, database sharding is complex. In database sharding, a single large database is fragmented, or “sharded” into multiple smaller databases that operate virtually independently. Shards can be located on separate database servers or physical locations. Database sharding allows scaling near-linearly to hundreds or thousands of database clusters. Collectively, these shards form a single, very large database. In this way, database sharding can scale databases beyond what a single cluster of database servers can handle. This scalability comes with a few limitations, however. For example, cross-shard queries are not allowed, and APIs must be able to join in data that would span multiple shards (usually users).
A system according to embodiments can take away much of that complexity, making shards appear to an API as a single database. In some embodiments, this can be done by generating IDs that are unique across a cluster of shards; routing queries to the correct shards; and maintaining split relationships across shards.
To generate unique IDs, each shard is tagged with a shard ID on initialization. In some embodiments, a shard ID can range from 0-8191. This shard ID is encoded into every ID generated by a shard. Some embodiments employ 41 bits for timestamp; 13 bits for shard ID; and 10 bits for uniqueness. In some embodiments, each shard can generate object IDs completely independently.
An example of a Full ID is: FFFF FFFF FFFF FFFF
An example of the Timestamp mask is: FFFF FFFF FFE0 0000
An example of a Shard ID mask is: 0000 0000 001F FC00
An example of a Uniqueness mask is: 0000 0000 0000 03FF
An example of querying the correct shard in a multi-shard scenario follows.
First, suppose a query for an object by ID is: {where: {id: 2047}}
To perform the query, the shard ID is extracted as follows:
0000 0000 0000 07FF (the hex value for the example full ID: 2047)
&& 0000 0000 001F FC00 (the example shard ID mask)
=0000 0000 0000 0400 (compare this value with the example uniqueness mask)
10>>0000 0000 0000 0001 (the remainder indicates the shard ID)
In this case, the object is found in shard 1 and the query is routed to that shard.
Thus, upon receiving a query for an object, the system determines which database server to query, and also handles relationships between objects that might be in completely separate shards. If a complex query is received, an API can provide a ‘context’ in which to route the query. Each repository may be routed differently, depending upon the type of objects stored therein. For example, user objects and tenant objects may be routed round-robin on creation and by ID on query. On creation, resources (e.g., docs and folders) may be routed first by their parent ID, and then by the context user's ID. Versions may be routed based on their resource's ID. In some embodiments, if a query is received with no ID and no context, it may be routed to a specific shard. In this way, the system can guarantee unique IDs for objects without creating a single point of failure.
As those skilled in the art can appreciate, resources in database systems can be locked using a synchronization mechanism (referred to as a resource lock) to enforce limits on access to a resource (e.g., a database record) in an environment where there are many threads of execution. Such a resource lock can enforce a mutual exclusion concurrency control policy, for instance.
FIGS. 11A and 11B illustrate how resource locking is handled in a standard (single) database system. In FIG. 11A, a data structure such as a list or a function table “ResourceLock” may include a ResourceId entry associated with a primary key (PK) and a foreign key (FK). Likewise, the locked-by party, i.e., the party for whom the resource is locked, is identified by “LockedById” and associated with a PK and a FK. In FIG. 11B, a “share” table stores an identification (Id) as a PK and also stores a plurality of FKs including an identification of the resource shared (ResourceId), an identification of the party performing the sharing (SharedById), and an identification of the party to whom the object is shared (SharedToId).
In conventional database systems, these locks are managed in memory and therefore consume memory resources. As the number of locks increase, so do the memory resources required to store and track these locks. This can significantly increase operation cost and reduce system performance.
These issues are even more challenging to address in multi-shard environments. For example, in a system that allows a user to “like,” “comment,” or “follow” a document, a first user may like a second user's document. In such a case, the system needs to know which documents the first user likes and which user(s) like the second user's documents. However, if this relationship (between the first user and the second user's document) is stored with the document, a search to find what documents user 1 likes will involve searching all shards, which can be time consuming and computationally expensive. Likewise, if the relationship is stored with the user (the first user in this example), a search to find who likes this particular document will involve searching all shard.
Embodiments can handle relationships across shards in a significantly more efficient way. Specifically, embodiments of a sharding manager can generate, manage, and maintain a relationship (e.g., a resource lock) by splitting the relationship into two or more functional tables and storing a copy of each table in each shard. Following the above example, the user item associated with the first user on one shard and the document item associated with the second user on another shard are considered to be in a relationship (the resource lock) and the relationship can be processed (e.g., searched) from either the perspective of the user item (a first split relationship) or the perspective of the document item (a second split relationship). Together these two split relationships represent one complete relationship between the user item and the document item.
This is further illustrated in FIGS. 12A and 12B. In FIG. 12A, a data structure such as a table referred to as “ResourceLock” 1202 has the same column and same data as the resource lock shown in FIG. 11A. However, instead of having the “ResourceId” and the “LockedById” be a foreign key (FK) to both the resource (e.g., a document) and the user resource on the same table as shown in FIG. 11A, ResourceLock 1202 in FIG. 12A has first split function table 1204 representing a first split relationship from a first perspective (e.g., a user item associated with the first user in the above example) and second split function table 1206 representing a second split relationship from a second perspective (a document item associated with the second user in the above example). Specifically, split table 1204 “ResourceLock_LockedBy” has “ResourceId” and “LockedById” but only the “LockedById” is the foreign key to the user table. That is, “ResourceLock_LockedBy” (split table 1204) enforces the “Locked_By” half of the relationship. Split table “ResourceLock_Resource” 1206 also has “ResourceId” and “LockedById,” but its foreign key is on the “ResourceId” which is linked to the resource table. The “LockedById” is still part of the PK, but it is not the FK because the user could appear in a different shard. These two tables together represent a complete relationship between the two items in the above example. A copy of these tables is stored in each shard. The data in them represents what is local to that shard.
For example, if there is a lock on a resource, there will be an entry of a “ResourceLock_Resource” table (e.g., table 1206) on that shard. For a user obtaining that lock, there will be a “ResourceLock_LockedBy” table (table 1204) in that user's shard. If someone wants to query for the user to see all the resources that are locked by the user, the system can query for that user and all of their locks will appear in the “ResourceLock_LockedBy” table on their shard. From that query result, the system can get the resource ID's. Because those resource ID's are using the same sharding algorithm described herein, the system can extract the shard ID (since, as described above, the shard ID mask is included in each object's ID) and use that shard ID to query the correct database to get the resource that the user has locked. This query routing mechanism allows the system to navigate from one shard to another. As such, the generation and maintenance of these relationships can be hidden from the API layer, thereby eliminating the need for APIs to join in data that would span multiple shards.
Embodiments can handle relationships involving multiple database items in a similar manner. FIG. 12B illustrates by example how embodiments disclosed herein may handle three-database-item relationships. In particular, as shown, a share relationship is split into three parts, one associated with each shard storing an item involved in the share operation. In the embodiment illustrated, the share relationship includes a Share_SharedBy relationship in which the SharedById is a foreign key (table 1204); a Share_SharedTo relationship, in which the SharedToId is a foreign key (table 1206); and a Share_Resource relationship in which the ResourceId is a foreign key (table 1208).
FIG. 13A schematically illustrates an example of database sharding in accordance with some embodiments. As shown, gateway server node 1300 includes or is in communication with sharding manager 1302 (which may be part of a database manager) which, in turn, communicates with database(s) 1305 via one or more APIs 1304. In the non-limiting embodiment illustrated, database 1305 includes one or more database servers 1307 a, 1307 b, . . . , 1307 n, which maintain one or more shards 1306 a, 1306 b, . . . , 1306 n. As discussed above, embodiments can maintain relationships across shards. For example, embodiments can store relationships between items on different shards, such as items on shards 1306 a and 1306 b. To do so, embodiments store split relationship 1308 a, 1308 b on each shard. Each shard that includes the item in the relationship maintains a corresponding portion of the relationship. In the embodiment illustrated in FIG. 13A, the resource lock relationships are shown. Thus, shard 1306 a includes copy 1308 a of the ResourceLock_LockedBy portion of the relationship (a first split of the relationship), while shard 1306 b includes copy 1308 b of the ResourceLock_Resource portion of the relationship (a second split of the relationship).
Similarly, FIG. 13B illustrates a further embodiment of a share relationship between three database items stored in different shards. A first item is stored in shard 1306, a second item is stored in shard 1306 b, and a third item is stored in shard 1306 c. Each item is identified by their unique ID which is generated by the respective shard and which is encoded with the respective shard ID mask as explained above. In the embodiment illustrated, the first item has a lock on a resource which is shared by the second item and which is shared to the third item. These three items, therefore, are in a relationship relative to the same resource identified by the resource ID. Accordingly, shard 1306 a stores a copy 1310 a of the Share_Resource portion of the relationship (a first split of the relationship), shard 1306 b stores a copy 1310 b of the Share_SharedBy portion of the relationship (a second split of the relationship), and shard 1306 c stores a copy 1310 c of the Share_SharedTo portion of the relationship (a third split of the relationship). At query time, the system can navigate from one shard to another using the query routing mechanism described above.
a plurality of database servers configured to provide a plurality of database shards, the plurality of database servers communicatively connected to a cloud-based application gateway server node over a network, the cloud-based application gateway server node configured for providing cloud-based gateway services to a plurality of client devices, the plurality of client devices associated with multiple tenants, the multiple tenants sharing the plurality of database shards, the plurality of database shards storing at least content data of the multiple tenants;
a server comprising a non-transitory memory, including instructions executable by a processor to provide a sharding manager to generate a relationship between or among database items across at least two database shards of the plurality of database shards, the database items associated with a tenant of the multiple tenants, wherein generating the relationship between or among the database items includes the sharding manager performing:
determining at least a first split relationship and a second split relationship of the relationship between or among the database items across the at least two database shards;
maintaining, in a first shard of the at least two database shards, a first split function data structure, the first split function data structure representing the first split relationship and identifying the first split relationship with a unique identifier, wherein the first split function data structure comprises a first split function database table keyed to a first database item in the first shard, and relating the first database item and a second database item across the at least two database shards; and
maintaining, in a second shard of the at least two database shards, a second split function data structure, the second split function data structure representing the second split relationship and identifying the first split relationship with the unique identifier, wherein the second split function data structure comprises a second split function database table keyed to a second database item in the second shard, and relating the second database item and the first database item across the at least two database shards.
2. The database system of claim 1, wherein the relationship represents a resource lock and wherein the resource lock is defined by the first split function data structure stored in the first shard and the second split function data structure stored in the second shard.
3. The database system of claim 1, wherein the first database item is associated with a user and wherein the second database item is associated with a document.
4. The database system of claim 1, wherein the first shard is associated with a user and wherein the second shard is associated with a document.
5. The database system of claim 1, wherein the first database item is associated with a first identifier encoded with a shard identification mask associated with the first shard.
6. The database system of claim 1, wherein the relationship is shared among three or more database items in three or more shards and wherein the sharding manager is operable to store a data structure representing a portion of the relationship in each shard, the data structure containing a foreign key referencing an item in a different shard that shares the relationship.
7. The database system of claim 6, wherein the relationship defines a document share.
8. The database system of claim 1, wherein the unique identifier is a primary key comprising an identifier to the first database item and an identifier for the second database item.
9. The database system of claim 1, wherein generating the relationship between or among the database items further includes the sharding manager performing:
generating the unique identifier for the relationship between the database items across the at least two database shards and storing the unique identifier in the first split function database table and the second split function database table.
10. The database system of claim 9, wherein generating the relationship between or among the database items further includes the sharding manager performing:
storing the unique identifier as a primary key for the first split function database table and a primary key of the second split function database table.
11. The database system of claim 1, wherein the first split function data structure includes a first identifier and a second identifier, wherein the second split function data structure includes a first identifier and a second identifier, wherein the second identifier of the split function first data structure is associated with a first foreign key referencing the second identifier of the second split function data structure, and wherein the first identifier of the second split function data structure is associated with a second foreign key referencing the first identifier of the first split function data structure.
12. The database system of claim 11, wherein the first identifier of the first split function data structure and the first identifier of the second split function data structure are associated with a resource and wherein the second identifier of the first split function data structure and the second identifier of the second split function data structure identify an entity having a lock on the resource.
an application gateway server node communicatively coupled to backend systems, client devices, and database shards operating on a plurality of database servers, the plurality of database servers communicatively connected to a cloud-based application gateway server node over a network, the cloud-based application gateway server node configured for providing cloud-based gateway services to a plurality of client devices, the plurality of client devices associated with multiple tenants, the multiple tenants sharing a plurality of database shards, the plurality of database shards storing at least content data of the multiple tenants; and
a sharding manager embodied on non-transitory computer memory including instructions executable by a processor to generate a relationship between or among database items across at least two database shards of the plurality of database shards, the database items associated with a tenant of the multiple tenants, wherein generating the relationship between or among the database items includes the sharding manager performing:
maintaining, in a second shard of the at least two database shards, a second split function data structure, the second split function data structure representing the second split relationship and identifying the first split relationship with the unique identifier, wherein the second split function data structure comprises a second split function database table keyed to the second database item in the second shard, and relating the first database item and the second database item across the at least two database shards.
14. The system of claim 13, wherein the application gateway server node comprises a database manager and wherein the database manager comprises the sharding manager.
15. The system of claim 13, wherein the relationship represents a resource lock and wherein the resource lock is defined by the first split function data structure stored in the first shard and the second split function data structure stored in the second shard.
16. The system of claim 13, wherein the first database item is associated with a user and wherein the second database item is associated with a document.
17. The system of claim 13, wherein the first shard is associated with a user and wherein the second shard is associated with a document.
18. The system of claim 13, wherein the first database item is associated with a first identifier encoded with a shard identification mask associated with the first shard.
19. The system of claim 13, wherein the unique identifier is a primary key comprising an identifier to the first database item and an identifier for the second database item.
20. The system of claim 13, wherein generating the relationship between or among the database items further includes the sharding manager performing:
21. The system of claim 20, wherein generating the relationship between or among the database items further includes the sharding manager performing:
22. The system of claim 13, wherein the first split function data structure includes a first identifier and a second identifier, wherein the second split function data structure includes a first identifier and a second identifier, wherein the second identifier of the first split function data structure is associated with a first foreign key referencing the second identifier of the second split function data structure, and wherein the first identifier of the second split function data structure is associated with a second foreign key referencing the first identifier of the first split function data structure.
23. The system of claim 22, wherein the first identifier of the first split function data structure and the first identifier of the second split function data structure are associated with a resource and wherein the second identifier of the first split function data structure and the second identifier of the second split function data structure identify an entity having a lock on the resource.
24. The system of claim 13, wherein the relationship is shared among three or more database items in three or more shards and wherein the sharding manager is operable to store a data structure representing a portion of the relationship in each shard, the data structure containing a foreign key referencing an item in a different shard that shares the relationship.
25. The system of claim 24, wherein the relationship defines a document share.
US14/534,623 2013-09-20 2014-11-06 Hosted application gateway architecture with multi-level security policy and rule promulgations Active US9747466B2 (en)
US201361880481P true 2013-09-20 2013-09-20
US201361880526P true 2013-09-20 2013-09-20
US201361880557P true 2013-09-20 2013-09-20
US201361880502P true 2013-09-20 2013-09-20
US14/491,386 US9979751B2 (en) 2013-09-20 2014-09-19 Application gateway architecture with multi-level security policy and rule promulgations
US14/491,492 US10171501B2 (en) 2013-09-20 2014-09-19 System and method for remote wipe
US14/491,483 US10116697B2 (en) 2013-09-20 2014-09-19 System and method for geofencing
US14/491,451 US9674225B2 (en) 2013-09-20 2014-09-19 System and method for updating downloaded applications using managed container
US14/534,623 US9747466B2 (en) 2013-09-20 2014-11-06 Hosted application gateway architecture with multi-level security policy and rule promulgations
US15/653,017 US10268835B2 (en) 2013-09-20 2017-07-18 Hosted application gateway architecture with multi-level security policy and rule promulgations
US16/371,852 US20190228177A1 (en) 2013-09-20 2019-04-01 Hosted application gateway architecture with multi-level security policy and rule promulgations
US14/491,386 Continuation-In-Part US9979751B2 (en) 2013-09-20 2014-09-19 Application gateway architecture with multi-level security policy and rule promulgations
US15/653,017 Continuation US10268835B2 (en) 2013-09-20 2017-07-18 Hosted application gateway architecture with multi-level security policy and rule promulgations
US20150088934A1 US20150088934A1 (en) 2015-03-26
US9747466B2 true US9747466B2 (en) 2017-08-29
ID=52691956
US14/534,623 Active US9747466B2 (en) 2013-09-20 2014-11-06 Hosted application gateway architecture with multi-level security policy and rule promulgations
US15/653,017 Active US10268835B2 (en) 2013-09-20 2017-07-18 Hosted application gateway architecture with multi-level security policy and rule promulgations
US (2) US9747466B2 (en)
US10268835B2 (en) * 2013-09-20 2019-04-23 Open Text Sa Ulc Hosted application gateway architecture with multi-level security policy and rule promulgations
KR101552170B1 (en) * 2014-02-27 2015-09-11 주식회사 티맥스 소프트 Method and apparatus for managing connection by using dummy http
CN103888916A (en) * 2014-03-24 2014-06-25 北京智谷睿拓技术服务有限公司 Information sending method and information sending device
US10182257B2 (en) * 2014-07-31 2019-01-15 Clipchamp Ip Pty Ltd Client-side video transcoding and processing
JP6569425B2 (en) * 2015-09-25 2019-09-04 富士ゼロックス株式会社 Display device and program
CN106998333A (en) * 2017-05-24 2017-08-01 山东省计算中心（国家超级计算济南中心） A kind of bilateral network security isolation system and method
US10623489B2 (en) * 2017-11-01 2020-04-14 General Electric Company Sync gateway for mobile application download
US20030110443A1 (en) 1999-03-27 2003-06-12 Steve Yankovich Method and apparatus for programmatic learned routing in an electronic form system
US20030191800A1 (en) 2001-12-19 2003-10-09 International Business Machines Corporation Method and system for a foreach mechanism in a fragment link to efficiently cache portal content
US20050027584A1 (en) 2003-08-01 2005-02-03 David Fusari Methods and apparatus for verifying context participants in a context management system in a networked environment
US20050050071A1 (en) 2003-09-03 2005-03-03 International Business Machines Corporation Apparatus and method for maintaining databases on application servers
US20050240616A1 (en) 2004-04-22 2005-10-27 International Business Machines Corporation Container-managed method support for container-managed entity beans
US20060234731A1 (en) 2005-04-18 2006-10-19 Taylor Sean P System and method for secure messaging between wireless device and application gateway
US20060248069A1 (en) 2005-04-18 2006-11-02 Research In Motion Limited Method and system for implementing customizable container services as component wireless applications
US20060248590A1 (en) 2005-04-29 2006-11-02 Johnson Teddy C System and method for protecting an information server
US20060277248A1 (en) 2005-05-12 2006-12-07 Baxter Eugene E Configuration-based application architecture using XML/XSLT
US20070022475A1 (en) 2005-07-19 2007-01-25 Ssh Communications Security Corp. Transmission of packet data over a network with a security protocol
US7197041B1 (en) 2001-08-31 2007-03-27 Shipcom Wireless Inc System and method for developing and executing a wireless application gateway
US20070165615A1 (en) 2005-12-08 2007-07-19 Shin Young M Apparatus and method for notifying communication network event in application server capable of supporting open API based on Web services
US20080014929A1 (en) 2006-05-05 2008-01-17 Infosys Technologies Ltd. Occasionally connected computing for mobile web services
US20080071820A1 (en) 2006-08-21 2008-03-20 Masami Mori Apparatus and method for managing an encapsulated document
US20080215744A1 (en) 2007-03-01 2008-09-04 Research In Motion Limited System and method for transformation of syndicated content for mobile delivery
EP2003854A1 (en) 2007-06-15 2008-12-17 Research In Motion Limited Server for communicating with multi-mode devices using multi-mode applications
US20100050167A1 (en) 2005-04-18 2010-02-25 Viera Bibr System and method for facilitating development of an application and supporting access to a plurality of heterogeneous backend servers
US20100144309A1 (en) 2007-02-12 2010-06-10 Jjck Llc (Dba Emfinders) Remotely Activatable Locator System and Method Using a Wireless Location System
US20120089668A1 (en) 2010-10-08 2012-04-12 Lumi Mobile Multi-phased and partitioned content preparation and delivery
US20120110112A1 (en) 2010-11-01 2012-05-03 Michael Luna Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US20120226767A1 (en) 2010-11-01 2012-09-06 Michael Luna Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8312356B1 (en) * 2008-10-29 2012-11-13 Cousins Robert E Systems, methods and computer program products including features for coding and/or recovering data
US20130080636A1 (en) 2011-09-28 2013-03-28 Robert U. Friedman Conveyance of configuration information in a network
US20130081033A1 (en) 2011-09-23 2013-03-28 Elwha Llc Configuring interface devices with respect to tasks and subtasks
US20130084846A1 (en) 2011-09-30 2013-04-04 Research In Motion Limited Method and system for remote wipe through voice mail
US20130111598A1 (en) 2011-11-02 2013-05-02 Research In Motion Limted Mobile communications device providing secure element data wiping features and related methods
US20130111460A1 (en) 2011-11-01 2013-05-02 Cit Global Mobile Division Method and system for localizing an application on a computing device
US20130117563A1 (en) 2011-11-09 2013-05-09 Safer Point Ltd Securing information in a cloud computing system
US8458232B1 (en) 2009-03-31 2013-06-04 Symantec Corporation Systems and methods for identifying data files based on community data
US20130183951A1 (en) 2012-01-12 2013-07-18 Shih-Wei Chien Dynamic mobile application classification
US20130219176A1 (en) 2012-01-06 2013-08-22 Venkata Sastry Akella Secure Virtual File Management System
US20130227558A1 (en) 2012-02-29 2013-08-29 Vmware, Inc. Provisioning of distributed computing clusters
US20130231093A1 (en) 2012-03-05 2013-09-05 Enterproid Hk Ltd Enhanced deployment of applications
US20130247222A1 (en) 2011-09-16 2013-09-19 Justin Maksim Systems and Methods for Preventing Access to Stored Electronic Data
US20130290718A1 (en) 2010-10-28 2013-10-31 China Unionpay Co., Ltd. Mobile storage device and the data processing system and method based thereon
US20130290880A1 (en) 2012-04-26 2013-10-31 Sap Ag Odata service provisioning on top of genil layer
US20130291086A1 (en) 2011-02-11 2013-10-31 Mocana Corporation Ensuring network connection security between a wrapped app and a remote server
US20140032647A1 (en) 2012-07-24 2014-01-30 Fujitsu Limited Mobile terminal device and method for controlling mobile terminal device
US8650303B1 (en) 2013-03-29 2014-02-11 Citrix Systems, Inc. Data management for an application with multiple operation modes
US20140059642A1 (en) 2012-08-24 2014-02-27 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US8682901B1 (en) * 2007-03-30 2014-03-25 Google Inc. Index server architecture using tiered and sharded phrase posting lists
US20140108474A1 (en) 2012-10-16 2014-04-17 Rackspace Us, Inc. System and Method for Exposing Cloud Stored Data to a Content Delivery Network
US20140130174A1 (en) 2012-11-08 2014-05-08 International Business Machines Corporation Application and Data Removal System
US20140280276A1 (en) * 2013-03-15 2014-09-18 Tactile, Inc. Database sharding by shard levels
US20140331060A1 (en) 2013-05-03 2014-11-06 Citrix Systems, Inc. User and Device Authentication in Enterprise Systems
US20150089577A1 (en) 2013-09-20 2015-03-26 Open Text S.A. System and method for updating downloaded applications using managed container
US20150277702A1 (en) 2012-11-02 2015-10-01 Ge Intelligent Platforms, Inc. Apparatus and method for dynamic actions based on context
US20150310208A1 (en) 2012-10-23 2015-10-29 Hewlett-Packard Development Company, L.P. Controlling distribution and use of a developer application in a network environment
US20140020068A1 (en) 2005-10-06 2014-01-16 C-Sam, Inc. Limiting widget access of wallet, device, client applications, and network resources while providing access to issuer-specific and/or widget-specific issuer security domains in a multi-domain ecosystem for secure personalized transactions
AU2002335726A1 (en) 2001-09-11 2003-03-24 Fx Alliance, Llc Method and apparatus for conducting financial transactions
US20040039720A1 (en) 2001-12-31 2004-02-26 Hodges Donna K. Method for providing platform independent business rules
US7464367B2 (en) 2003-07-14 2008-12-09 Microsoft Corporation Method and system for designing customizable applications and user-interfaces based on user-defined policies and metadata
US9342662B2 (en) 2003-09-16 2016-05-17 Media Rights Technologies, Inc. Method and system for controlling video media
US9130921B2 (en) 2003-09-30 2015-09-08 Ca, Inc. System and method for bridging identities in a service oriented architectureprofiling
US7698383B2 (en) 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
US7735097B2 (en) 2004-05-24 2010-06-08 Sap Ag Method and system to implement a deploy service to perform deployment services to extend and enhance functionalities of deployed applications
US20060047806A1 (en) 2004-08-24 2006-03-02 Matthias Bannach Mediation-based methods and devices for updating operations support systems
US20060085648A1 (en) 2004-10-16 2006-04-20 International Business Machines Corp. Autonomic removal of a user from a client and network
US20060230402A1 (en) 2005-04-07 2006-10-12 International Business Machines Corporation Managing transactions for Enterprise JavaBeans
EP1739905B1 (en) 2005-06-30 2008-03-12 Ixos Software AG Method and system for management of electronic messages
WO2007012035A2 (en) 2005-07-20 2007-01-25 Wms Gaming Inc. Wagering game with encryption and authentication
US8600948B2 (en) 2005-09-15 2013-12-03 Emc Corporation Avoiding duplicative storage of managed content
US7818410B1 (en) 2005-09-27 2010-10-19 Sprint Communications Company L.P. System and method of implementing major application migration
US20070120736A1 (en) 2005-11-29 2007-05-31 General Electric Company Method and system for discrete location triggering for enhanced asset management and tracking
WO2008086373A2 (en) 2007-01-08 2008-07-17 Itparade.Com It asset management system
US9277033B2 (en) 2007-06-15 2016-03-01 Blackberry Limited Server for communicating with multi-mode devices using multi-mode applications
US7890591B2 (en) 2008-01-31 2011-02-15 International Business Machines Corporation Method for an efficient electronic messaging system
FR2930097B1 (en) 2008-04-15 2012-11-30 Alcatel Lucent Method for diffusion of digital content, network and terminal for carrying out said method
US9354864B2 (en) 2008-05-08 2016-05-31 Dialogic Corporation Package header system and method to facilitate streaming a single firmware file upgrade
US8832681B1 (en) 2008-08-29 2014-09-09 Adobe Systems Incorporated Bundled mobile/desktop application package
CN102150105B (en) 2008-09-09 2015-06-17 凯思网络公司 Deployment and management of virtual containers
JP5355032B2 (en) 2008-10-23 2013-11-27 キヤノン株式会社 Client device, server device, and document management system, document management method, and document management program using them
JP5146775B2 (en) 2009-03-04 2013-02-20 住友電装株式会社 Lever type connector
US9304745B2 (en) 2009-05-12 2016-04-05 Nandakumar Krishnan Nair Product-application-solution (PAS) model for software design and development
US8959613B2 (en) 2009-06-18 2015-02-17 Visa U.S.A. Inc. System and method for managing access to a plurality of servers in an organization
US20110126193A1 (en) 2009-11-20 2011-05-26 Dell Products, Lp System and Method for Imaging and Provisioning of Information Handling System
US9258715B2 (en) 2009-12-14 2016-02-09 Apple Inc. Proactive security for mobile devices
US10122662B2 (en) 2010-01-20 2018-11-06 Oath Inc. Systems and methods for electronic distribution of messages over communication channels
US20110191822A1 (en) 2010-01-29 2011-08-04 Open Imaging, Inc. Controlled use medical application
DE102010009755A1 (en) 2010-03-01 2011-09-01 Deutsche Telekom Ag Communication system for the process-oriented acquisition, storage, transmission and provision of data
US20110218965A1 (en) 2010-03-03 2011-09-08 Htc Corporation System for remotely erasing data, method, server, and mobile device thereof, and computer program product
EP2577526A4 (en) 2010-06-01 2016-08-03 Bridget K Osetinsky Data isolating research tool
US8490165B2 (en) 2010-06-23 2013-07-16 International Business Machines Corporation Restoring secure sessions
US20120005041A1 (en) 2010-06-30 2012-01-05 Verizon Patent And Licensing, Inc. Mobile content distribution with digital rights management
US8997172B2 (en) 2010-11-08 2015-03-31 Citrix Systems, Inc. Controlling information disclosure during application streaming and publishing
FI20106335A0 (en) 2010-12-17 2010-12-17 Pocketsoft Oy Providing a custom application for a user terminal
KR20120083034A (en) 2011-01-17 2012-07-25 삼성전자주식회사 System and method for grantting authorization of application in wireless communication system
US10013140B2 (en) 2011-02-18 2018-07-03 Blackberry Limited Methods and apparatus for providing updated content in a user interface
US8554190B2 (en) 2011-02-28 2013-10-08 Unwired Nation, Inc. Mobile application system
US20130061289A1 (en) 2011-03-01 2013-03-07 Keith McFarland Secure Messaging
US8645178B2 (en) 2011-04-28 2014-02-04 Accenture Global Services Limited Task management for a plurality of team members
US8886756B2 (en) 2011-05-13 2014-11-11 Qualcomm Incorporated Exchanging data between a user equipment and an application server
KR20120133508A (en) 2011-05-31 2012-12-11 주식회사 케이티 System and method for providing in-app service
KR20130012840A (en) 2011-07-26 2013-02-05 인포뱅크 주식회사 Recording medium, method and system for information processing
US9059949B2 (en) 2011-08-23 2015-06-16 Bank Of America Corporation Monitoring of regulated associates
KR20130046151A (en) 2011-10-27 2013-05-07 삼성전자주식회사 Payment apparatas and method using for a portable terminal has card deader function in a broadcast receiver
US8645502B2 (en) 2011-11-03 2014-02-04 Business Objects Software Limited Dynamic interface to read database through remote procedure call
US20130124674A1 (en) 2011-11-15 2013-05-16 Hitachi, Ltd. Computer system and data migration method
US20130132422A1 (en) 2011-11-18 2013-05-23 Toura, LLC System and method for creating and controlling an application operating on a plurality of computer platform types
US9430206B2 (en) 2011-12-16 2016-08-30 Hsiu-Ping Lin Systems for downloading location-based application and methods using the same
US8677132B1 (en) 2012-01-06 2014-03-18 Narus, Inc. Document security
US20130219006A1 (en) 2012-02-21 2013-08-22 Sony Corporation Multiple media devices through a gateway server or services to access cloud computing service storage
RU2510982C2 (en) 2012-04-06 2014-04-10 Закрытое акционерное общество "Лаборатория Касперского" User evaluation system and method for message filtering
WO2013151454A1 (en) 2012-04-06 2013-10-10 Google Inc. Hosted application sandboxing
US20140164125A1 (en) 2012-05-18 2014-06-12 Container Media, LLC System and Methods for Geographically-Driven Downstream Distribution of Mobile Content
JP5631940B2 (en) 2012-07-23 2014-11-26 株式会社東芝 Information processing apparatus, method, and program
US9208325B2 (en) 2012-07-26 2015-12-08 International Business Machines Corporation Protecting data on a mobile device
US8892872B2 (en) 2012-08-07 2014-11-18 Appsense Limited Secure redacted document access
US8972728B2 (en) 2012-10-15 2015-03-03 At&T Intellectual Property I, L.P. Method and apparatus for providing subscriber identity module-based data encryption and remote management of portable storage devices
US20150193241A1 (en) 2012-10-24 2015-07-09 OpenMobile World Wide, Inc. Multi-operating system mobile and other computing devices with proxy applications running under a browser
JP6067132B2 (en) 2012-11-02 2017-01-25 シルバーレイク モビリティ エコシステム エスディーエヌ ビーエイチディー How to handle requests for digital services
US9635088B2 (en) 2012-11-26 2017-04-25 Accenture Global Services Limited Method and system for managing user state for applications deployed on platform as a service (PaaS) clouds
WO2014091576A1 (en) 2012-12-12 2014-06-19 株式会社野村総合研究所 Relay device, relay method, and program
US20140188601A1 (en) 2013-01-03 2014-07-03 International Business Machines Corporation Integration between brick-and-mortar establishments and web based establishments
US20140282371A1 (en) 2013-03-14 2014-09-18 Media Direct, Inc. Systems and methods for creating or updating an application using a pre-existing application
US10608899B2 (en) 2013-03-14 2020-03-31 Cisco Technology, Inc. Service directory for quick and simplified application identification
US10652242B2 (en) 2013-03-15 2020-05-12 Airwatch, Llc Incremental compliance remediation
US20140366080A1 (en) 2013-06-05 2014-12-11 Citrix Systems, Inc. Systems and methods for enabling an application management service to remotely access enterprise application store
US9946528B2 (en) 2013-06-10 2018-04-17 Bmc Software, Inc. System and method for automated customization of applications
US9747466B2 (en) * 2013-09-20 2017-08-29 Open Text Sa Ulc Hosted application gateway architecture with multi-level security policy and rule promulgations
EP2851833B1 (en) 2013-09-20 2017-07-12 Open Text S.A. Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations
US9170808B2 (en) 2013-11-07 2015-10-27 Sap Se Dynamic containerization
EP3146417A4 (en) 2014-05-19 2017-12-27 Samsung Electronics Co., Ltd A method and apparatus for managing application package installed in mobile communication terminal
US20160026366A1 (en) 2014-07-22 2016-01-28 Runfeng LUAN Method and system for customizing mobile terminal application
US10496488B2 (en) 2014-12-31 2019-12-03 Netapp, Inc. Methods and systems for clone management
US20170250853A1 (en) 2016-02-25 2017-08-31 Open Text Sa Ulc Systems and methods for providing managed services
2014-11-06 US US14/534,623 patent/US9747466B2/en active Active
2017-07-18 US US15/653,017 patent/US10268835B2/en active Active
US20150089224A1 (en) 2013-09-20 2015-03-26 Open Text S.A. Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations
"Application Note-Using Tenor Behind a Firewall/NAT," Quintum Tech Assistance Center, Eatontown, NJ, Mar. 16, 2005, 8 pages.
"Citrix MDX Feature Brief," <http://ebookbrowsee.net/citrix-mdx-feature-brief-pdf-d506183473>, 12 pages, Jul. 21, 2013.
"FortiMail Install Guide," Version 3.0 MR2, Fortiner, Dec. 12, 2007, 108 pages.
"Application Note—Using Tenor Behind a Firewall/NAT," Quintum Tech Assistance Center, Eatontown, NJ, Mar. 16, 2005, 8 pages.
Anonymous, Catching based on application deployed in mobile devices in mobile networks:, IPCCOM000209387D, Aug. 2, 2011, 4 pages.
Citrix: "Citrix XenMobile Technology Overview: White Paper," Citrix White papers on line, <http://www.insight.com/content/dam/insight/en-US/pdfs/citrix/xenmobile-tech-overview.pdf>, 14 pages, Jul. 31, 2012.
Citrix: "Citrix XenMobile Technology Overview: White Paper," Citrix White papers on line, <http://www.insight.com/content/dam/insight/en—US/pdfs/citrix/xenmobile-tech-overview.pdf>, 14 pages, Jul. 31, 2012.
David, "Everything You Always Wanted to Know About Synchronization but Were Afraid to Ask", SOSP'13, Nov. 3-6, 2013, Farmington, Pennsylvania, pp. 33-48.
European Search Report European Application No. 14185781.3, completed Jan. 21, 2015, mailed Jan. 29, 2015, 9 pgs.
Examination Report issued for European Patent Application No. 14 185 781.3, mailed Jan. 18, 2016, 6 pages.
Genbrugge, "Interval Simulation: Raising the Level of Abstraction in Architectural Simulation", IEEE, 2009, 12 pages.
Howatson, "The Power of EIM Applications," OpenText Engineering, Nov. 2013, 31 page.
Kuroda, "A Study of Autonomous Data Coherency Protocol for Mobile Devices", IEEE, 1999, pp. 250-256.
Leach et al., "The Architecture of an Integrated Local Network," IEEE Journal on Selected Areas in Communications, vol. Sac-1, No. 5, Nov. 1983 pp. 842-857.
Lennon, "Bring Your Own Device (BYOD) with Cloud 4 Education", Splash'12, Oct. 19-26, 2012, pp. 171-179.
Li, "Security Considerations for Workflow Systems", 2000, IEEE, pp. 655-668.
Luo, "Risk Based Mobile Access Control (RiBMAC) Policy Framework", The 2011 Military Communications Conference-Track 3-Cyber Security and Network Operations, 2011, pp. 1448-1453.
Luo, "Risk Based Mobile Access Control (RiBMAC) Policy Framework", The 2011 Military Communications Conference—Track 3—Cyber Security and Network Operations, 2011, pp. 1448-1453.
Medjahed, "Business-To-Business Interactions: Issues and Enabling Technologies", The VLDB Journal, 2003, pp. 59-85.
Notice of Allowance issued for European Patent Application No. 14185781.3, dated Jan. 24, 2017, 53 pages.
Notice of Allowance issued for U.S. Appl. No. 14/491,451, dated Apr. 25, 2017, 10 pages.
Notice of Allowance issued for U.S. Appl. No. 14/491,451, dated Feb. 28, 2017, 11 pages.
Office Action issued for U.S. Appl. No. 14/491,386 mailed Aug. 9, 2016, 36 pages.
Office Action issued for U.S. Appl. No. 14/491,386, dated Jan. 30, 2017, 43 pages.
Office Action issued for U.S. Appl. No. 14/491,386, dated Jun. 28, 2017, 43 pages.
Office Action issued for U.S. Appl. No. 14/491,386, mailed Feb. 11, 2016, 33 pages.
Office Action issued for U.S. Appl. No. 14/491,451 mailed Aug. 22, 2016, 34 pages.
Office Action issued for U.S. Appl. No. 14/491,451, mailed Mar. 3, 2016, 34 pages.
Office Action issued for U.S. Appl. No. 14/491,483, dated Feb. 6, 2017, 37 pages.
Office Action issued for U.S. Appl. No. 14/491,483, dated Jun. 19, 2017, 35 pages.
Office Action issued for U.S. Appl. No. 14/491,492, dated Feb. 6, 2017, 31 pages.
Office Action issued for U.S. Appl. No. 14/491,492, dated Jul. 6, 2017, 31 pages.
Oracle White Paper, "Securing SOA and Web Services with Oracle Enterprise Gateway", Apr. 2011, 22 pages.
Prosser, "In-Depth: Container Fields", FileMaker Community, Apr. 3, 2014, 51 pages.
Sherr et al., "Application Containers Without Virtual Machines," Dept. of Computer and Information Science, University of Pennsylvania, © 2009, pp. 39-41.
Sobesto et al., "Are Computer Focused Crimes Impacted by System Configurations: An Empirical Study", 2012 IEEE 23rd International Symposium on Software Reliability Engineering, 2012, pp. 191-200.
Suri, "Dynamic Service-oriented Architectures for Tactical Edge Networks", WEWST 2009, Nov. 9, 2009, Eindhoven, Netherlands, pp. 3-10.
US20170316224A1 (en) 2017-11-02
US20150088934A1 (en) 2015-03-26
US10268835B2 (en) 2019-04-23
US9916322B2 (en) 2018-03-13 Virtual private cloud that provides enterprise grade functionality and compliance
US10536478B2 (en) 2020-01-14 Techniques for discovering and managing security of applications
AU2016346891B2 (en) 2018-03-15 Synchronization protocol for multi-premises hosting of digital content items
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BECKMAN, GREGORY;LAIRD, ROBERT;OBBARD, GEOFFREY MICHAEL;SIGNING DATES FROM 20141028 TO 20141105;REEL/FRAME:034121/0206