In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description of the subject matter briefly described above will be rendered by reference to specific embodiments which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting in scope, embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Embodiments herein may comprise a special purpose or general-purpose computer including various computer hardware, as discussed in greater detail below.
Computing systems often have need to access the functionality of services. Often generalized uniform policy rules are sufficient for general communications between a client computing system and a service. However, often specialized policy rules may be required or desirable for a particular interaction between a computing system and a service or for particular circumstances. For example, in an online transaction, certain policies may be implemented for certain types of transactions. If an on-line transaction exceeds a particular dollar amount, there may be a desire to require additional verification information. If the on-line transaction is originated from a location where fraud is prevalent, there may be a desire to require additional verification. If a transaction is one involving a particular party, there may be a desire or requirement for additional verification, or specialized policy considerations particular to the party. Other particularized policy rules may apply to specific environments, specific geographies, etc. One embodiment described herein facilitates the discovery of specialized policies for a given particular message by use of the message itself. Additionally, some embodiments described herein include functionality for checking a message for compliance and/or returning policy information particular to a given message.
For example, attention is now directed to
In an alternative embodiment of the example shown in
An alternative embodiment is illustrated in
Yet another alternative embodiment is illustrated in
Reference is now made to
The method 200 includes an act of receiving policy information particular to the message (act 204) in response to sending the message. The policy information may indicate that the message complies with a policy particular to the message when the message complies with a policy particular to the message. The policy information may indicate the correct policy if the message does not comply with the policy particular to the message.
As described previously, in one embodiment, sending a message (act 202) includes sending a message to a service. The message may be intended to access the functionality of the service. In one embodiment, the service is designed to provide the functionality if the message complies with the policy for a particular received message. The service may also be designed to respond with an indication of an appropriate policy for a particular received message when a particular received message does not comply with a policy for the particular received message. An example of a similar embodiment is illustrated and described previously in conjunction with
Sending the message (act 202) may include sending an indicator with the message indicating that the message should be evaluated for proper policy for the particular message. For example, sending an indicator with the message may include sending a header with the message. The header may include an indication that the message should be checked for proper policy compliance. In one embodiment, when an indicator is sent with the message indicating that the message should be evaluated for proper policy, then the message is not processed to access the functionality of the service that the message is intended to access irrespective of whether or not the message complies with the appropriate policy. Rather, this mechanism can be used to discern appropriate policy and then to send the message at another appropriate time. In one embodiment, the method 200 may include sending an indicator with the message simply instructing the correct policy particular to the message to be returned. Thus, rather than requesting an evaluation of the message, a request for the correct policy for the message is sent with the message.
As illustrated in
In one embodiment of the method 200, receiving policy information (act 204) may be performed in conjunction with error handling or processing at a client computer system. For example, receiving policy information may include receiving an error which contains policy information particular to the message. The error may be for example an application error or an infrastructure error. For example, an application error may be generated by the service 104 indicating that the message 106 has caused an error in an application running on the service 104. Alternatively, an error may be returned indicating that the message 106 is not appropriate for the infrastructure or the particular environment in which the client 102 and service 104 operate.
Referring now to
The method 300 further includes an act of evaluating the message for compliance with a policy particular to the message (act 304). Policy information particular to the message may then be sent (act 306) depending on the outcome of the act of evaluating (act 304). For example, if the message does not comply with a policy particular to the message, policy information is sent (act 306), where the policy information indicates the correct policy particular to the message.
In one embodiment, a message may be received at a service where the message is intended to access functionality at the service. However, the message may not comply with a policy particular to the message. In these cases, embodiments may be such that sending policy information (act 306) provides the proper policy. If the message does comply with the policy particular to the message in this embodiment, then the functionality is simply provided instead of sending policy information particular to the message.
In other embodiments, if the message complies with a policy particular to the message, sending policy information (act 306) is done such that the policy information indicates that the message complies with a policy particular to the message. In one embodiment, this is performed if an indicator is received with the message indicating that the message should be evaluated for proper policy particular to the message. The indicator may be, for example, an indicator in the header of the message indicating that the message should be evaluated for policy compliance.
In one embodiment, the indicator may be included when the message is sent to a service that is able to provide the functionality for which the message is intended to access. For example, in
In one embodiment, the method 300 may include in the act of sending policy information (306) an act of sending an application or infrastructure error, as described above. The application error may contain policy information particular to the message.
Sending policy information particular to the message (act 306) may be done such that if the message does not comply with a policy particular to the message, then the policy information indicates the correct policy particular to the message. Alternatively, if the message corn pies with a policy particular to the message the policy information indicates that the message complies with a policy particular to the message. In one embodiment, these alternative actions may be performed when receiving a message (act 302) is performed at a stand-alone service configured to evaluate messages for policy compliance. Such an example is illustrated above in
In one embodiment messages can be wrapped in policy verification requests. For example, receiving an indicator in a header of a message may be one method of wrapping the message in a policy verification request.
Embodiments may be implemented within the context of Web Services. In particular, Web Services is a standardized way of integrating applications. Standardized XML documents can be used with SOAP (Simple Object Access Protocol) messages and WSDL (Web Services Description Language) descriptions to integrate applications without an extensive knowledge of the applications being integrated. Thus, the messages and replies may be sent using Web Services messages.
Embodiments may also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise physical computer readable media such as RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media.
Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.