The present invention relates to electronic delivery of entitlements and, more particularly, to a central entitlement server for providing entitlements to subscribing application servers that are operated by third parties and are responsible for providing services to bank accounts of corporate customers.
Increasingly banks rely on third parties to perform bank offered services for corporate accounts (e.g., international wire transfers). In order for third parties to ensure that service requests are coming from users with sufficient privileges to request the services, the third parties must have access to an up to date entitlement database. The diversity of entitlement formats used by third parties, the number of third party service providers, and the different types of services provided by third parties require significant time investments to convert a bank held entitlement database into a format readable by different third parties.
Corporate customers of banks typically have multiple users, with individual users having privileges to request the performance of varying number of services on corporate customer accounts. Often, subscribing application servers operated by third parties perform services that appear to be provided by a bank (e.g., wire transfers). When a subscribing application server receives a request to perform an action on a bank account, the subscribing application server should be able to determine if the requesting party has sufficient privileges to request the service.
A bank typically maintains a record of privileges (i.e., entitlements) available to different corporate customers and their users. As entitlements change (i.e., are updated), bank employees typically must manually change the entitlements associated with corporate customer users. In order to ensure efficient updating of the database, banks group related services. The grouping of services varies between banks and third party service providers, making it difficult for banks to pass entitlements to third parties in a readable format.
Thus, there exists a need for a method, central entitlement server, and subscribing application server for passing entitlements in a format that is readable by both third party service providers and banks.
The present invention provides a central entitlement server for centrally storing and providing entitlements to subscribing application servers, enabling each subscribing application server to verify a corporate customer user has permission to request application of a given service to an account associated with the corporate customer, the subscribing application servers providing services to accounts held by corporate customers at a bank.
A first aspect of the present invention relates to a central entitlement server for centrally storing and providing entitlements to subscribing application servers. Each subscribing application server provides services to accounts held by corporate customers at a bank, the corporate customer designating at least one corporate customer user. The server includes a database encoded to a non-transitory computer readable memory storing the entitlements. Each entitlement relates to at least one corporate customer user and specifies at least one associated account and at least one approved service the at least one corporate customer user has permission to request. Each at least one approved service is one of a plurality of possible services and is mapped to a hierarchical data structure of services. The hierarchical data structure of services includes at least one product. The at least one product is a root and each product is a parent of and links to at least one product function. Each product function links to at least one function type. The product function is a parent of the at least one function type. Each function type links to at least one action. The function type is a parent of the at least one action. Each action corresponds to one of the plurality of possible services. Each of the plurality of possible services are represented by a corresponding action. Each action is identified as approved if the at least one corporate customer user has permission to request the service corresponding to the action or disapproved if the at least one corporate customer user does not have permission to request the service corresponding to the action. The server also includes a processor and a network interface. The processor is configured to determine the entitlements associated with each subscribing application server and instruct a network interface to send each subscribing application server the entitlements stored in the database that are associated with the subscribing application server. The network interface is configured to receive the instruction from the processor and send each subscribing application server the entitlements associated with the subscribing application server.
Additionally or alternatively, at least one action is a restricted action. Each restricted action linking to at least one restriction. Each restriction places a limitation on performance of the restricted action.
Additionally or alternatively, the limitation placed by each restriction is at least one of a limit to the number of times the restricted action can be performed in a period of time, a prohibition on performing the restricted action when the restricted action affects a dollar amount above a threshold, and a requirement that the restricted action be approved by a corporate customer user having supervisory authority.
Additionally or alternatively, at least two function types are grouped into a function group.
Additionally or alternatively, at least two actions are grouped into an entry method.
Additionally or alternatively, at least two corporate customer users are associated with a user group, a group entitlement is associated with the user group, and the group entitlement specifies at least one associated account and at least one approved service the at least two corporate customer users have permission to request. Each at least one approved service is one of plurality of possible services stored in the hierarchical data structure of services.
Additionally or alternatively, the processor instructs the network interface to send each subscribing application server the entitlements associated with the subscribing application server at a scheduled time.
Additionally or alternatively, the processor instructs the network interface to send a given subscribing application server the entitlements associated with the given subscribing application server after the network interface receives a request from the given subscribing application server.
Additionally or alternatively, the processor instructs the network interface to send a given subscribing application server only the entitlements associated with the given subscribing application server that have changed since a previous sending of entitlements to the given subscribing application server.
Additionally or alternatively, when sending each subscribing application server the entitlements associated with the subscribing application server the network interface sends each entitlement as a separate data structure identifying the at least one corporate customer user, the at least one associated account, and the at least one approved service the at least one corporate customer user has permission to request.
Additionally or alternatively,
Another aspect of the present invention relates to a subscribing application server providing at least one service to a corporate customer. A corporate customer user requests application of a given service of the at least one service to an account associated with the corporate customer at a bank. The subscribing application server includes a network interface, a database, and a processor. The network interface receives entitlements. The database is encoded to a non-transitory computer readable memory storing the entitlements. Each entitlement relates to at least one corporate customer user and specifies at least one associated account and at least one approved service the at least one corporate customer user has permission to request. Each at least one approved service is one of a plurality of possible services and is mapped to a hierarchical data structure of services. The hierarchical data structure of services includes at least one product. The at least one product is a root and each product is a parent of and links to at least one product function. Each product function links to at least one function type. The product function is a parent of the at least one function type. Each function type links to at least one action. The function type is a parent of the at least one action. Each action corresponds to one of the plurality of possible services. Each of the plurality of possible services are represented by a corresponding action. Each action is identified as approved if the at least one corporate customer user has permission to request the service corresponding to the action or disapproved if the at least one corporate customer user does not have permission to request the service corresponding to the action. The network interface is further configured to receive a service request from a given corporate customer user. The service request includes a requested service to be performed on a specified account. The processor is configured to access the entitlement stored in the database for the given corporate user to determine if the given corporate customer user has permission to request performance of the requested service on the specified account. If the given corporate customer user is determined to have permission, the processor performs the requested service on the specified account.
Additionally or alternatively, at least one action is a restricted action, each restricted action linking to at least one restriction, each restriction placing a limitation on performance of the restricted action.
Additionally or alternatively, the limitation placed by each restriction is at least one of a limit to the number of times the restricted action can be performed in a period of time, a prohibition on performing the restricted action when the restricted action affects a dollar amount above a threshold, and a requirement that the restricted action be approved by a corporate customer user having supervisory authority.
Additionally or alternatively, at least two function types are grouped into a function group.
Additionally or alternatively, at least two actions are grouped into an entry method.
Additionally or alternatively, at least two corporate customer users are associated with a user group, a group entitlement is associated with the user group, and the group entitlement specifies at least one associated account and at least one approved service the at least two corporate customer users have permission to request, wherein each at least one approved service is one of plurality of possible services stored in the hierarchical data structure of services.
Additionally or alternatively, the processor is further configured to instruct the network interface to send a request for an entitlement update.
Additionally or alternatively, the processor instructs the network interface to send the request after the network interface receives the service request.
Additionally or alternatively, the processor instructs the network interface to send the request at a scheduled time.
Additionally or alternatively, the approved services in each received entitlement are not contained in the hierarchical data structure of services and the processor is further configured to map the approved services in the received entitlements to the hierarchical data structure of services for storage in the database.
Still another aspect of the present invention relates to a method for centrally storing entitlements in a central entitlement server and sending the entitlements from the central entitlement server to subscribing application servers. The subscribing application servers performing services on accounts at a bank based on the entitlements and received service requests. The method includes sending entitlements, over a network from the central entitlement server, to the subscribing application servers. Each entitlement relates to at least one corporate customer user and specifies at least one associated account and at least one approved service the at least one corporate customer user has permission to request. Each at least one approved service is one of a plurality of possible services and is mapped to a hierarchical data structure of services. The hierarchical data structure of services includes at least one product. The at least one product is a root and each product is a parent of and links to at least one product function. Each product function links to at least one function type. The product function is a parent of the at least one function type. Each function type links to at least one action. The function type is a parent of the at least one action. Each action corresponds to one of the plurality of possible services. Each of the plurality of possible services are represented by a corresponding action. Each action is identified as approved if the at least one corporate customer user has permission to request the service corresponding to the action or disapproved if the at least one corporate customer user does not have permission to request the service corresponding to the action. The method also includes receiving, by at least one subscribing application server, a service request sent by a given corporate customer user, the service request including a requested service to be performed on a specified account. The method further includes validating by the subscribing application server that the given corporate customer user has permission to request the requested service. Validation includes analyzing the entitlement associated with the given corporate user to determine if the given corporate customer user has permission to request performance of the requested service on the specified account and performing the requested service on the specified account if the corporate customer user is determined to have permission.
A number of features are described herein with respect to embodiments of the invention; it will be appreciated that features described with respect to a given embodiment also may be employed in connection with other embodiments.
For a better understanding of the present invention, together with other and further aspects thereof, reference is made to the following description, taken in conjunction with the accompanying drawings. The scope of the invention is set forth in the appended claims, which set forth in detail certain illustrative embodiments. These embodiments are indicative, however, of but a few of the various ways in which the principles of the invention may be employed.
The present invention is now described in detail with reference to the drawings. In the drawings, each element with a reference number is similar to other elements with the same reference number independent of any letter designation following the reference number. In the text, a reference number with a specific letter designation following the reference number refers to the specific element with the number and letter designation and a reference number without a specific letter designation refers to all elements with the same reference number independent of any letter designation following the reference number in the drawings.
It should be appreciated that many of the elements discussed in this specification may be implemented in a hardware circuit(s), a processor executing software code or instructions which are encoded within computer readable media accessible to the processor, or a combination of a hardware circuit(s) and a processor or control block of an integrated circuit executing machine readable code encoded within a computer readable media. As such, the term circuit, module, server, application, or other equivalent description of an element as used throughout this specification is, unless otherwise indicated, intended to encompass a hardware circuit (whether discrete elements or an integrated circuit block), a processor or control block executing code encoded in a computer readable media, or a combination of a hardware circuit(s) and a processor and/or control block executing such code.
The present invention provides a method and central entitlement server for centrally storing and providing entitlements to subscribing application servers. The subscribing application servers provide services (e.g., international wire transfers) to accounts held by corporate customers at a bank. The services are requested by corporate customer users and transferred to the subscribing application servers as service requests. Prior to performing a requested service in a service request, the subscribing application servers verify that the requesting corporate customer user has permission to request the requested service on the account identified in the service request. The subscribing application servers verify each requested service using entitlements received from the central entitlement server. The services that can be requested (i.e., the possible requested services) are stored in a hierarchical data structure of services. The hierarchical data structure includes at least one product as a root. Each product is linked to at least one product function, each product function is linked to at least one function type, each function type is linked to at least one action, and each action corresponds to a service.
An exemplary centralized entitlement system 18 including a central entitlement server 20 and a first subscribing application server 24a are depicted in
With continued reference to
For purposes of visualization, e.g., the hierarchical data structure 33 may be viewed as a tree (
As used herein, the term data structure is used to describe a particular way of storing and organizing data in a computer. Referring to a product 34 as a root is not meant to imply that the hierarchical data structure 33 must have a tree structure or that there is only one product. Rather, identifying a product 34 as a root indicates that the product is the top level of the hierarchical data structure 33. The hierarchical data structure 33 may have multiple products 34 (and thus multiple roots) as depicted in
As shown in
Each product function 35 links to at least one function type 38 and the product function 35 is a parent of the at least one function type 38. In some embodiments, the term “links to” is meant to require one element of the hierarchical data structure 33 to directly connect to another element. For example,
In other embodiments the term “links to” is not meant to require one element of the hierarchical data structure 33 to directly connect to another element. That is, a first element may be linked to a third element through a second element. For example, in
Due to space constraints two product functions 35b, 35d in
As shown in
Due to space constraints function types 38b and 38d are not shown as linking to an action 42. This is not meant to imply that the two function types 38b, 38d are not linked to an action 42.
In
Turning again to
The network interface 52 may be communicatively coupled to multiple subscribing application servers 24a-24c and the web portal 22 via a network 60. The network 60 may be an open network, such as the Internet, a private network, such as a virtual private network, or any other suitable network. The network interface 52 may be configured to receive entitlements from the processor and/or computer readable medium 54 and send each subscribing application server 24a-24c only the entitlements associated with the subscribing application server. Alternatively, the network interface 52 may be configured to send each subscribing application server 24a-24c all of the entitlements stored on the computer readable medium 54 or a portion of all of the entitlements stored on the computer readable medium 54 regardless of which subscribing application server 24a-24c is associated with each entitlement 30. For example, if the computer readable medium 54 contains ten entitlements, the first five entitlements associated with the first subscribing application server 24a and the last five entitlements associated with the second subscribing application server 24b, the network interface 52 may send all ten entitlements to both subscribing application servers 24a, 24b. Alternatively, the network interface 52 may be configured to send only those entitlements 30 to the subscribing application servers 24 that have changed since the last update of the entitlements on the subscribing application servers 24.
The network interface 52 may communicate entitlements to subscribing application servers 24 using an application programming interface custom to the vendor, service provisioning markup language (SPML) messages, or web services calls. For example, using SPML, the network interface 52 may broadcast all entitlement 30 changes to all subscribing application servers 24 able to accept SPML messages. In another example, the subscribing application servers 24 may send a request for an entitlement update to the central entitlement server 20. Upon receiving the request for entitlement update, the central entitlement server 20 may send an updated list of entitlements to the requesting subscribing application server. In yet another example, for subscribing application servers that do not support SPML and/or are unable to make web service calls, the central entitlement server 20 may include a product specific application interface for communicating entitlements to the subscribing application server.
As will be understood by one of ordinary skill in the art, the network interface 52 may comprise a wireless network adaptor, an Ethernet network card, or any suitable device that provides an interface between the central entitlement server 20 and the network 60. The network interface 52 may be communicatively coupled to the computer readable medium 54, such that the network interface 52 is able to send data stored on the computer readable medium 54 across the network 60 and store received data on the computer readable medium 54. The network interface 52 may also be communicatively coupled to the processor 50 such that the processor is able to control operation of the network interface 52. The network interface 52, computer readable medium 54, and processor 50 may be communicatively coupled through a system bus, mother board, or using any other suitable manner as will be understood by one of ordinary skill in the art.
As will be understood by one of ordinary skill in the art, the database 56 may describe a data structure which embodies groups of records or data elements stored in a volatile or non volatile storage medium and accessed by an application, which may be instructions coded to a storage medium and executed by a processor. The database may comprise multiple individual databases stored on the same storage medium or on multiple different storage media. The central entitlement server 20 may also store data in and access the database 56. While the database 56 is depicted as a component of the central entitlement server 20 in
The processor 50 may be configured to determine the entitlements 30 associated with each subscribing application server 24a-24c and instruct the network interface 52 to send each subscribing application server 24a-24c the entitlements 30 stored in the database 56 that are associated with the subscribing application server 24a-24c. The processor 50, network interface 52, and non-transitory computer readable medium 54 may be communicatively coupled through a system bus, mother board, or using any other suitable structure. The communicative coupling may allow the processor 50 to control operation of the network interface 52 and computer readable medium 54.
As will be understood by one of ordinary skill in the art, the processor 50 may have various implementations. For example, the processor 50 may include any suitable device, such as a programmable circuit, integrated circuit, memory and I/O circuits, an application specific integrated circuit, microcontroller, complex programmable logic device, other programmable circuits, or the like. The processor 50 may also include a non-transitory computer readable medium, such as random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), or any other suitable medium. Instructions for performing the method described below may be stored in the non-transitory computer readable medium and executed by the processor. The processor 50 may be communicatively coupled to the computer readable medium 54 and network interface 52 through a system bus, mother board, or using any other suitable structure known in the art.
With further reference to
The network interface 64 may be communicatively coupled to the central entitlement server 20 and the web portal 22 via a network 60. The network interface 64 may be configured to receive entitlements 30, e.g., from the central entitlement server 20 and service requests from, e.g., a given corporate customer user. An exemplary service request 90 is depicted in
As will be understood by one of ordinary skill in the art, the network interface 64 may comprise a wireless network adaptor, an Ethernet network card, or any suitable device that provides an interface between the subscribing application server 64 and the network 60.
As will be understood by one of ordinary skill in the art, the database 68 may describe a data structure which embodies groups of records or data elements stored in a volatile or non volatile storage medium and accessed by an application, which may be instructions coded to a storage medium and executed by a processor. The database may comprise multiple individual databases stored on the same storage medium or on multiple different storage media. The subscribing application server may also store data in and access the database 68. While the database 68 is depicted as a component of the subscribing application server 24 in
The processor 62 is configured to determine if the given corporate customer user 92 has permission to request performance of the requested service 96 on the specified account 94. In order to make this determination, the processor 62 is configured to access the entitlement 30 stored in the database 68 for the given corporate user 92 associated with the service request 90. If the given corporate customer user is determined to have permission, the processor performs the requested service on the specified account. A given corporate customer user is determined to have permission if the entitlement associated with the given corporate customer user indicates that the user has permission to request the requested service on the specified account. The processor 62 performing the requested service may include the processor 62 causing the network interface 64 to send instructions to a separate server or computer system to perform the requested service on the account.
As will be understood by one of ordinary skill in the art, the processor 62 may have various implementations. For example, the processor 62 may include any suitable device, such as a programmable circuit, integrated circuit, memory and I/O circuits, an application specific integrated circuit, microcontroller, complex programmable logic device, other programmable circuits, or the like. The processor 62 may also include a non-transitory computer readable medium, such as random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), or any other suitable medium. Instructions for performing the method described below may be stored in the non-transitory computer readable medium and executed by the processor.
With continued reference to
Turning to
With further reference to
With continued reference to
In
In
In an alternative embodiment shown in
In
Turning to
Turning to
Turning to
The subscribing application server 24 receives the entitlements and, in processing step 302, updates the entitlements stored in the subscribing application server 24. In step 304, the subscribing application server 24 receives a service request initiated by a given corporate customer user and including a requested service to be performed on a specified account. For example, the given corporate customer user may have initiated the service request at the web portal 22.
The subscribing application server 24 validates that the given corporate customer user has permission to request the requested service. Validation includes, as depicted in processing step 306, analyzing the entitlement associated with the given corporate user to determine if the given corporate customer user has permission to request performance of the requested service on the specified account. This analysis may comprise locating the entitlement associated with the given corporate customer user and locating within the hierarchical data structure of the entitlement the requested service in the hierarchical data structure to determine if the user is indicated as having permission to initiate the requested service. In processing step 308, if the corporate customer user is determined to have permission, the subscribing application server 24 performs the requested service on the specified account. Performance of the requested service by the subscribing application server 24 may comprise sending an instruction to another computer or server to perform the requested service on the specified account.
Turning to
The subscribing application server 24 validates that the given corporate customer user has permission to request the requested service. Validation includes, as depicted in processing step 328, analyzing the entitlement associated with the given corporate user to determine if the given corporate customer user has permission to request performance of the requested service on the specified account. This analysis may comprise locating the entitlement associated with the given corporate customer user and locating the requested service in the hierarchical data structure of the entitlement to determine if the user is indicated as having permission to initiate the requested service. In processing step 330, if the corporate customer user is determined to have permission, the subscribing application server 24 performs the requested service on the specified account. Performance of the requested service by the subscribing application server 24 may comprise sending an instruction to another computer or server to perform the requested service on the specified account.
Turning to
Although the invention has been shown and described with respect to certain exemplary embodiments, it is obvious that equivalents and modifications will occur to others skilled in the art upon the reading and understanding of the specification. It is envisioned that after reading and understanding the present invention those skilled in the art may envision other processing states, events, and processing steps to further the objectives of system of the present invention. The present invention includes all such equivalents and modifications, and is limited only by the scope of the following claims.