The disclosed subject matter relates to methods, media, and systems for entitlement clearing.
From the time the brokerage community (which are examples of “publishers”) began distributing content (e.g. research reports, economic analysis, corporate recommendations and financial estimates, etc.) to their clients through third parties (which are examples of “vendors”), the concept of entitlements existed. Entitlements are a mechanism for publishers to better ensure that their content is only being distributed to and accessible by “qualified clients.” Individuals, through a vendor's distribution channel, can only get access to a publisher's content if that publisher has explicitly acknowledged to the vendor that the individual is permitted to access that set of content. The granting of entitlements is typically at the complete discretion of the publisher.
As vendor platforms have become more robust and useful to the publishers' clients, clients have insisted on a greater breadth and depth of content to be redistributed to the vendor community from the publishers. As time has passed, more content has been distributed to more clients through more vendors causing a significant burden on vendors and publishers to manage entitlements efficiently. This burden continues to grow today as the entitlement processes, capabilities, and tools vary greatly from vendor to vendor and publishers struggle to service their clients' content needs while not risking their company's intellectual property.
It is therefore desirable to provide improved methods, media, and systems for entitlement clearing.
In accordance with the disclosed subject matter, methods, media, and systems for entitlement clearing are provided. In some embodiments, methods for entitlement clearing are provided including receiving a first entitlement request from a first vendor and a second entitlement request from a second vendor, determining the status of the first entitlement request and the status of the second entitlement request, and sending a first entitlement response to the first vendor and a second entitlement response to the second vendor.
In some embodiments, computer-readable media containing computer-executable instructions that, when executed by a processor, cause the processor to perform methods for entitlement clearing. The methods including receiving a first entitlement request from a first vendor and a second entitlement request from a second vendor, determining the status of the first entitlement request and the status of the second entitlement request, and sending a first entitlement response to the first vendor and a second entitlement response to the second vendor.
In some embodiments, systems for entitlement clearing are provided including a first interface that receives a first entitlement request from a first vendor and a second entitlement request from a second vendor, a processor that determines the status of the first entitlement request and the status of the second entitlement request, and a second interface that sends a first entitlement response to the first vendor and a second entitlement response to the second vendor.
In accordance with various embodiments of the disclosed subject matter, methods, media, and systems for entitlement clearing are provided. These methods, media, and systems provide mechanisms through which entitlement information can be conveyed between publishers and vendors. For example, a publisher, such as Goldman Sachs, may desire to allow certain of its clients to access financial research on TheMarkets.com website, which is an example of a vendor. In order to convey information about the entitlements of these certain clients, Goldman Sachs may communicate through these mechanisms.
As shown, vendors 10 on the left may submit entitlement requests 12 to an entitlement system 14 in the center. Each entitlement request may be caused by a client (not shown) attempting to access content through a vendor's Web page (not shown), or other distribution channel. Entitlement system 14 may then process these requests 12 and send them to the appropriate publishers 16, on the right. Publishers 16 may then process the requests, e.g., by comparing each request to a list of authorized clients (not shown), and respond by issuing an entitlement response 18 that is sent back to entitlement system 14. The entitlement system may then send response 18 to vendors 10.
In certain instances, entitlement system 14 may respond to some requests 12 from vendors 10 without forwarding the requests to publishers 16. For example, a request from a vendor may be sent to the entitlement system and processed by referring to an entitlement repository 19, where previous entitlement data from a corresponding vendor has been stored. In order to facilitate such activity, the entitlement system may store requests, responses, and/or any other suitable data in one or more entitlement repositories, which may be any suitable mechanism, such as a database, for storing data.
In order to provide security, entitlement system 14 may use the Direct Authentication pattern in some embodiments. In some embodiments, the Direct Authentication pattern operates by a request first coming from a client to a service. The credentials in the request are then validated using an identity store (which may be any suitable form of data storage) by the service. And then a response (e.g., approved or denied) is provided from the service to the client. This pattern is detailed in the following references which are hereby incorporated by reference herein in their entireties: Web Service Security: Scenarios, Patterns, and Implementation Guidance for Web Services Enhancements (WSE) 3.0—Microsoft Patterns & Practices Group, Microsoft Corporation; SOAP Message Security 1.0 (WS-Security 2004)—OASIS Open (http://www.oasis-open.org); UsernameToken Profile 1.0—OASIS Open; and Protect Your Web Services Through the Extensible Policy Framework in WSE 3.0—Tomasz Janczuk, MSDN Magazine, from Microsoft Corporation (http://msdn.microsoft.com//msdnmag/issues/06/02/wse30/default.aspx).
In some embodiments, the entitlement system may use graphical user interfaces that may be presented through Web pages or any other suitable mechanisms. Examples of user interfaces that may be utilized are discussed below and provided in
As also shown in
In accordance with some embodiments, an application programming interface (API) may be provided between a vendor and the entitlement system. This API may allow the vendor to create a user entry, to update a user entry, to create a user company entry, to update a user company entry, to submit an entitlement request, to update an entitlement request, to cancel an entitlement request, to get an entitlement request, to get a user entry, to get contributor product information, and to receive entitlement information.
To create a user entry, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include: a timestamp; an identifier for the user generated by the vendor; an identifier of a type or category associated with the identifier for the user; one or more email addresses of the user; an address of the user; a job role associated with the user; a division associated with the user; and/or one or more names associated with the user. In response to this document, the entitlement system may generate a return XML document containing an identifier for the user generated by the entitlement system. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails.
To update a user entry, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include the identifier for the user generated by the entitlement system and/or the same information, or a subset thereof, in the document for creating a user entry. In response to this document, the entitlement system may generate a return XML document containing an identifier for the user generated by the entitlement system. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails, the entitlement system user identifier cannot be found, and/or if the user identifier generated by the entitlement system and the user identifier generated by the vendor have changed from when the user entry was created.
To create a user company entry, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include: a timestamp; a identifier for the company generated by the vendor; a name associated with the company; and/or an address associated with the company. In response to this document, the entitlement system may generate a return XML document containing an identifier for the company generated by the entitlement system. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails.
To update a user company entry, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include the identifier for the company generated by the entitlement system and/or the same information, or a subset thereof, in the document for creating a company entry. In response to this document, the entitlement system may generate a return XML document containing an identifier for the company generated by the entitlement system. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails and/or the entitlement system company identifier cannot be found.
To submit an entitlement request, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include: a timestamp; vendor data that may be tied to the request and passed back with a response; a user identifier generated by the entitlement system for the user; a company identifier generated by the entitlement system for the user's company; contact information for the user's company (e.g., a contact identifier, name, email address, physical address, and phone number); vendor sales representative information (e.g., a sales representative identifier, name, email address, physical address, and phone number); a publisher identifier (that may be assigned by the entitlement system); publisher sales representative information (e.g., contact email address, job role, division, telephone number, and name) that may be used to validate the user's relationship with the publisher; comments associated with the request; a list of one or more products requested by the user; and a list of one or more vendor distribution channels that may be used to distribute the content. In response to this document, the entitlement system may generate a return XML document containing a request identifier and the vendor data. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails, if a pending request for the user, vendor, and contributor combination already exists, if the vendor does not have permission to make the request, the user cannot be found based on the user identifier, and/or the company cannot be found based on the company identifier.
To update an entitlement request, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include the request identifier returned in response to the entitlement request, a reminder that the request is past due, and/or the same information, or a subset thereof, provided in the entitlement request. In response to this document, the entitlement system may generate a return XML document containing a request identifier and the vendor data. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails, if the request to be updated does not exist, the vendor does not have permission to update the request, and/or the user identifier cannot be changed.
To cancel an entitlement request, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include a timestamp and/or request identifier. In response to this document, the entitlement system may generate a return XML document containing the request identifier. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails, if the request to be cancelled does not exist, if the request is not pending, and/or if the vendor does not have permission to cancel the request. In some embodiments, only requests that are pending can be cancelled.
To get an entitlement request, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include: a timestamp; a request identifier; and/or a request type (e.g., a specific entitlement request, only pending entitlement requests, only pending entitlement requests that were submitted since the last request to get an entitlement request, or all historical entitlement requests, regardless of status). In response to this document, the entitlement system may generate a return XML document containing a collection of entitlement request objects. Each entitlement request object may contain: a request identifier; a timestamp; vendor data; a user identifier generated by the entitlement system for the user; a user identifier generated by the vendor; an identifier of the category or type of user identifier generated by the vendor; contact information for the user (e.g., a user name, email address, physical address, job role, division, and phone number); a company identifier generated by the vendor; contact information for the company (e.g., name, address, and phone number); vendor sales representative information (e.g., a sales representative identifier, name, email address, physical address, and phone number); a publisher identifier (that may be assigned by the entitlement system); publisher sales representative information (e.g., contact email address, job role, division, telephone number, and name) that may be used to validate the user's relationship with the publisher; comments associated with the request; a list of one or more products requested by the user; a list of one or more vendor distribution channels that may be used to distribute the content; a reminder that this request is past due; and status information (e.g., approved, pending, rejected, or cancelled). Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique.
To get a user entry, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include: a timestamp; a user identifier generated by the entitlement system; and/or a user identifier generated by the vendor. In response to this document, the entitlement system may generate a return XML document containing one or more user objects. These user objects may include: a user identifier generated by the entitlement system; a user identifier generated by the vendor; an identifier of the category or type of user identifier generated by the vendor; contact information for the user (e.g., a user name, email address, physical address, job role, division, and phone number); a company identifier generated by the vendor; contact information for the company (e.g., name, address, and phone number); a list of one or more historical entitlement requests (e.g., a list of the identifiers of the requests); and/or a list of one or more vendor distribution channels (e.g., for each channel, an identifier for the channel, and a list of products for each channel (e.g., a product identifier, a flag indicating whether only the headline of the product may be displayed, a flag indicating whether provisional access to the product has been granted, and/or an indicator of the status of the user's access to the product). Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. In some embodiments, entitlement information may be retrieved for a defined user, a set of users, or all users.
To get contributor product information, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include an identifier of the publisher generated by the entitlement system. In some embodiments, a special identifier (e.g., NULL) may be used to identify all publishers. In response to this document, the entitlement system may generate a return XML document containing: an identifier for the publisher generated by the entitlement system; a name for the publisher; a list of one or more vendor distribution channels (e.g., for each channel, an identifier for the channel, and a list of products for each channel (e.g., a product identifier, a product description, a flag indicating whether only the headline of the product may be displayed, and/or a flag indicating whether provisional access to the product has been granted). Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails, and/or if the requested publisher's products are not available.
Entitlements may be sent to a vendor using a vendor-supplied API. This API may be implemented in the form of a SOAP-based web service that can accept a single parameter of XML document in some embodiments. An example of an XML document is shown in
In accordance with some embodiments, an application programming interface (API) may be provided between a publisher and the entitlement system. This API may allow the publisher to get entitlement requests, to set user entitlements, to get entitlements for a user, and to get publisher product information.
To get an entitlement request, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include: a timestamp; a request identifier; and/or a request type (e.g., a specific entitlement request, only pending entitlement requests, only pending entitlement requests that were submitted since the last request to get an entitlement request, or all historical entitlement requests, regardless of status). In response to this document, the entitlement system may generate a return XML document containing a collection of entitlement request objects. Each entitlement request object may contain: a request identifier; a timestamp; an identifier of the vendor; a user identifier generated by the entitlement system for the user; a user identifier generated by the vendor; an identifier of the category or type of user identifier generated by the vendor; an alias for the user that is shared between the entitlement system and the publisher, contact information for the user (e.g., a user name, email address, physical address, job role, division, and phone number); a company identifier generated by the vendor; contact information for the company (e.g., name, address, phone number, and identifiers and contact information for people in the company (e.g., name, email address, and phone number); vendor sales representative information (e.g., a sales representative identifier, name, email address, physical address, and phone number); a publisher identifier (that may be assigned by the entitlement system); publisher sales representative information (e.g., contact email address, job role, division, telephone number, and nane) that may be used to validate the user's relationship with the publisher; comments associated with the request; a list of one or more products requested by the user; a list of one or more vendor distribution channels that may be used to distribute the content; a reminder that this request is past due; and status information (e.g., approved, pending, rejected, or cancelled). Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique.
To set user entitlements, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include: a request identifier; a note from the publisher to the vendor regarding the action taken (e.g., why the user was rejected); an alias for the user shared by the entitlement system and the publisher; and/or a list of product identifiers of products to which the user is entitled access. In response to this document, the entitlement system may generate a return XML document containing: an identifier for the user generated by the entitlement system; the alias; an identifier for the vendor; a vendor distribution channel identifier identifying where the product will be available to the user; information for products to be made available to the user (e.g., product identifier, a flag indicating whether only the headline of the product may be displayed, a flag indicated whether access to the product has been granted by default, and/or information regarding the status of the user's access to the product); and/or an identifier for the request. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails.
To get a user entry, in some embodiments, the vendor may send an XML document to the entitlement system. This document may include: a user identifier generated by the entitlement system; an alias for the user shared by the entitlement system and the publisher; a vendor identifier; a vendor distribution channel identifier identifying where the products will be available to the user; an identifier of the company of the user; the name of the company of the user; information regarding the status of the user with respect to the publisher (e.g., approved, rejected, or pending); a flag indicating whether the user is associated with a pending entitlement request (e.g., so that the user might be approved or rejected but still subject to a subsequent entitlement decision); and/or an identifier of one or more products to which the user is entitled access. In response to this document, the entitlement system may generate a return XML document containing one or more user objects. These user objects may include: a user identifier generated by the entitlement system; a user identifier generated by the vendor; an alias for the user; a vendor identifier; an identifier generated by the vendor for the user; an identifier of the category or type of user identifier generated by the vendor; contact information for the user (e.g., a user name, email address, physical address, job role, division, and phone number); a company identifier generated by the vendor; contact information for the company (e.g., name, address, and phone number); a list of one or more historical entitlement requests (e.g., a list of the identifiers of the requests); and/or a list of one or more vendor distribution channels (e.g., for each channel, an identifier for the channel, and a list of products for each channel (e.g., a product identifier, a flag indicating whether only the headline of the product may be displayed, a flag indicating whether provisional access to the product has been granted, and/or an indicator of the status of the user's access to the product). Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. In some embodiments, entitlement information may be retrieved for a defined user, a set of users, or all users.
To get publisher product information, in some embodiments, the vendor may send an XML document to the entitlement system. In response to this document, the entitlement system may generate a return XML document containing a list of vendor identifiers, each listing of vendors including a list of vendor distribution channels for the corresponding vendor, and for each channel, a list of products available on that channel, including a product identifier, a product description, a flag indicating whether only the headline of the product may be displayed, a flag indicating whether provisional access to the product has been granted, and an indicator of the amount of time that must pass after the last time a user was rejected before provisional access can be provided. Prior to generating the return document, the entitlement system may check the validity of the information provided by the vendor. Such validation may be performed using any suitable technique. An error may be generated if the validation fails and/or if the requested information is not accessible to the vendor.
Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is only limited by the claims which follow. Features of the disclosed embodiments can be combined and rearranged in various ways.
This application claims the benefit of U.S. Provisional Patent Application No. 60/784,320, filed Mar. 21, 2006, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
60784320 | Mar 2006 | US |