• No results found

In order to satisfy the requirements for operation of temporary data in grids we use the infrastructure proposed in Chapter 4. In this framework we have elaborated a set the design principles to implement the Grid Cache Service; these principles establish the main features of the implementation.

The design principles define a GCS as the basic unit of the system. These principles guide the development of our grid caching approach. They support the logical sepa- ration of the functions proposed by the reference model and implement the defined operations and information structures. Our purpose is to allow the composition of GCSs that working together to access and manger temporary data in grid environ- ments.

5.2.1

Cache Virtualization

The virtualization is an abstract view of the behaviour of the data in a cache mech- anism. This abstraction is supplied by cache operations plus cache information implemented by a cache service. The information and operations permit to get a description of the data and cache state and activity.

The cache virtualization consists of providing essential cache capabilities to other entities and caches. Clients delegate the operation of temporary data storing to GCS: to support this function, GCS also provides a detailed description of the data and cache activity.

The goal of the virtualization is to allow the integration of the resources and mech- anisms that are not originally used for caching; this characteristic is essential to

aggregate resources dynamically. Virtualization seeks common functionality to ac- cess and share storage cache resources.

5.2.2

Autonomy

Autonomy establishes that a cache is a distinct and independent component in a distributed system. This principle changes the traditional notion of cache as an hidden mechanism: a cache is traditionally integrated into an application or solution as a internal component, for instance a cache in a database systems.

Since the cache is independent, external in fact, of the applications or particular solutions, it is distinguishable from other components of the system; this implies that the function of the cache mechanism is separated and recognised as specific in relationship with the rest of the components. Caches are also autonomous because they control their behaviour and resources (data and storage).

A cache service instance shares its resources via defined cache operations. The virtual organisation that deploys a Grid Cache Service establishes the shared degree of the cache resources and deploys the mechanisms to support them.

Finally, an individual cache instance does not depend on the cache group for its operation, and similarly operation of the cache group must not be compromised by the behaviour of an individual cache. An implication of this principle is that the basic cache functions of each individual cache instance are not affected when the cache works isolated or in a collective way.

5.2.3

Accessibility

The principle of accessibility establishes that the cache data content, resources and information are accessible and shareable for a wide variety of client applications, rather than a particular application or solution. Accessibility implies the visibility and awareness of the specific function of the cache mechanism which can be used for multiple applications or system components. This principle seeks to increase the re-utilisation level of the data and resources managed by the cache system.

Figure 5.2 illustrates the accessibility principle. The cache content and information description that describes its activity are available for a wide range of clients in order to increase the level of re-utilisation.

This principle implies the exposition and availability of the information that de- scribes the configuration and activity of the data and the cache. The access to this information in a standardized way permits to build a detailed view of the behaviour

Aplication A Retrieve data for analysis

Aplication B Store partial processing data

Sensor Expose captured data

User

Cache Service

Share data with multiple clients Storage resources

Figure 5.2: Cache accessibility

of the system. This same information permits to implement higher-level temporary data management mechanisms.

The principle of accessibility establishes that the cache operations are exposed by standard interfaces to a wide range of clients (applications, human users, devices, other grid services, and so forth). Similarly, the same interfaces are used for interac- tion with other caches. This last notion seeks to facilitate the collaboration between caches.

5.2.4

Uniformity

The principle of uniformity establishes that the cache capabilities are provided in a similar way in all the distributed systems. This implies a minimum standardisation of the cache operations and information supported by each GCS.

The principle of uniformity seeks to enable multiple caches to work together using the individual cache capabilities. The goal is to permit the interaction between caches invoking reciprocal and similar operations through groups of caches. Uniformity permits the aggregation of the cache capabilities provided by the virtualization of distributed and diverse resources.

and control of a cache service instance, the principle of uniformity makes possible the collective operation of multiple GCSs that provides the same abstraction of data and storage resources.

Uniformity includes support for standard information about underlying resources; this information is exchangeable by any elements of the collaborative cache system. With the notion of uniformity, diverse clients have a single perception of the cache. This seeks to provide ubiquitous accessibility and interaction to a wide range of grid applications, services and users.

5.2.5

Extensibility

This principle establishes that collaboration between caches is extensible to all pos- sible cache operations. This includes the access, monitoring and configuration oper- ations. Extended cache operations support the composition of complex capabilities from basic cache operations. This seeks new possibilities for exploiting the real potential of collaborative caching.

In contrast to collaborative web cache systems, the interactions between GCS must include all types of operations between caches. Extensibility thus permits a cache to invoke any operation of another cache service. For example, a cache can put or get data any other cache. In contrast, in other wide area distributed systems like the web, the interaction between caches of different domains is limited to data resolution.

This principle seeks to agree with the grid requirements for allowing a wide variety of higher-level programming abstractions and models more than enforcing a partic- ular approach. So, for example, a grid application can use a group of cache services as a data disseminator while other can use the same infrastructure to implement a particular form of replication. The extensibility principle seeks to expand the inter- operation possibilities using the grid environment capabilities and opportunities. The extensibility circumscribes monitoring and configuration operations. In this way, interaction processes can establish the state of the available resources to im- plement composed operations: For example, the interaction between several caches requires first to establish the state of available resources on remote cache services. Thus, before invoking a put operation of the remote service, the monitoring opera- tions of remote caches can be invoked to know the resource capacity and availability.