Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Access Object  Dokument im Navigationsbaum lokalisieren

Each service that needs to access objects of its clients must expose an access object in a suitable package interface for its clients. The package interface at which the access object is exposed can be any possible package interface – it will, however, usually be the interface whose use makes it necessary for the service to access the client.

One or more packages can be assigned to an access object. These packages contain the implementation of the respective service (implementation packages). Only packages of the same software component as the access object can be registered as an implementation package.

An implementation package can be assigned at most to a single access object. This is necessary because the package check cannot distinguish in which context (that is for which access object) a particular call-back to the client is to take place. If an implementation package were assigned to several access objects, exposing objects in the wrong client interface would become obvious only if the assignment of the implementation package to the access object changed (for example, due to a restructuring of the service).

Assigning an implementation package to an access object is critical regarding security and is protected through registration and special authorization checks. These security checks may vary in level of security for different services, depending on the danger potential involved (concrete procedures for this still need to be discussed).

An access object is a special kind of development object that will be assigned to some package for transportation and visibility reasons. The package to which the access object is assigned can be any appropriate package and does not, in particular, need to be one of the implementation packages.

This means that if a strongly encapsulated package needs to use a service that calls back into its clients, this service imperatively must provide an access object. If such a service does not provide an access object, it cannot be used with strongly encapsulated packages.

 

 

Ende des Inhaltsbereichs