A mechanism for determining restrictions to impose on an implementation of
a service is disclosed. When an application desires an implementation for
a particular service, the application makes a request to a framework. The
framework receives the request and, in response, determines what
restrictions, if any, need to be imposed on the requested implementation.
The restrictions are determined by determining whether any permissions
have been granted to the application requesting the implementation, and if
so, processing the permissions to derive a set of zero or more
restrictions to impose on the implementation. The permissions are
processed such that the set of restrictions is least restrictive. Once the
restrictions are determined, the framework dynamically constructs the
requested implementation. The requested implementation is constructed such
that it incorporates a general implementation of the service, the
restrictions, and enforcement logic for enforcing the restrictions on the
general implementation. Once the requested implementation is constructed,
it is provided to the application. Thereafter, the application invokes the
requested implementation directly for services. Since the requested
implementation incorporates the restrictions and enforcement logic for
enforcing the restrictions, it will guarantee that the restrictions are
enforced.
Een mechanisme om beperkingen wordt te bepalen om aan een implementatie van de dienst op te leggen onthuld. Wanneer een toepassing een implementatie voor de bepaalde dienst wenst, dient de toepassing een verzoek aan een kader in. Het kader ontvangt het verzoek en, in reactie, bepaalt welke beperkingen, eventueel, aan de gevraagde implementatie moeten worden opgelegd. De beperkingen worden bepaald door te bepalen of om het even welke toestemmingen aan de toepassing verzoekend om de implementatie, en als zo, de verwerking van de toestemmingen om een reeks van nul of meer beperkingen af te leiden om aan de implementatie op te leggen zijn verleend. De toestemmingen worden verwerkt dusdanig dat de reeks beperkingen meest minst restrictief is. Zodra de beperkingen worden bepaald, construeert het kader dynamisch de gevraagde implementatie. De gevraagde implementatie wordt geconstrueerd dusdanig dat het een algemene implementatie van de dienst, de beperkingen, en handhavingslogica voor het afdwingen van de beperkingen op de algemene implementatie opneemt. Zodra de gevraagde implementatie wordt geconstrueerd, wordt het verstrekt aan de toepassing. Daarna, haalt de toepassing direct de gevraagde implementatie voor de diensten aan. Aangezien de gevraagde implementatie de beperkingen en de handhavingslogica voor het afdwingen van de beperkingen opneemt, zal het waarborgen dat de beperkingen worden afgedwongen.