Difference between revisions of "Execution Environment Providers"
Line 1: | Line 1: | ||
− | The Environment Provider Framework is created to provide bindings for the [[ExecutionEngine | Execution Engine]] to be able to locate needed resources as well as permanent storage facilities in the environment it operates on. Even though it was initially conceived and implemented in the context of the [[ExecutionEngine | Execution Engine]], it can easily be used by any other component that wants to utilize it. The two main providers identified and used are the Information Provider and the Storage Provider and they are used by the Information System and the Storage System component respectively. An additional provider is the Reporting Provider, which is used by the Reporting Framework component. | + | The Environment Provider Framework is created to provide bindings for the [[ExecutionEngine | Execution Engine]] to be able to locate needed resources, as well as permanent storage facilities in the environment it operates on. Even though it was initially conceived and implemented in the context of the [[ExecutionEngine | Execution Engine]], it can easily be used by any other component that wants to utilize it. The two main providers identified and used are the Information Provider and the Storage Provider, and they are used by the Information System and the Storage System component respectively. An additional provider is the Reporting Provider, which is used by the Reporting Framework component. |
− | In essence what an Environment Provider is, is a technology specific implementation of a generic interface that provides for basic interactions one may want to perform either on a Directory Service-like component (Information System), or a persistent global storage (Storage System). The technology specific implementation of the provider is defined at runtime and loaded based on a qualified name rather than as a compile time dependency. This allows the components using the Provider Framework to become extremely versatile and be able to operate on a large number of infrastructures regardless of the enabling technology. The currently available implementations of these providers are based on the following technologies: | + | In essence what an Environment Provider is, is a technology specific implementation of a generic interface that provides for basic interactions one may want to perform, either on a Directory Service-like component (Information System), or a persistent global storage (Storage System). The technology specific implementation of the provider is defined at runtime and loaded based on a qualified name rather than as a compile time dependency. This allows the components using the Provider Framework to become extremely versatile and be able to operate on a large number of infrastructures, regardless of the enabling technology. The currently available implementations of these providers are based on the following technologies: |
− | *local - Information and data is stored in the local filesystem and is only available in other components running in the same host. This provider is mainly used during development time as it is not well fitted for the distributed environment the engine targets | + | |
− | *ftp - Information and data is stored in a configurable ftp location as files and are | + | *local - Information and data is stored in the local filesystem, and is only available in other components running in the same host. This provider is mainly used during development time, as it is not well fitted for the distributed environment the engine targets. |
+ | *ftp - Information and data is stored in a configurable ftp location as files, and are retrieved from there on every interaction. This approach has the disadvantage that synchronization policies need to be implemented, internally, by the provider. | ||
*gCube - Information and data are managed using the respective gCube Information System and Content Management System. Execution status reporting is performed using [[Messaging Infrastructure#System Accounting | gCube System Accounting]]. | *gCube - Information and data are managed using the respective gCube Information System and Content Management System. Execution status reporting is performed using [[Messaging Infrastructure#System Accounting | gCube System Accounting]]. | ||
==Information System== | ==Information System== | ||
− | The Information System abstraction over the respective Environment provider is mainly a gateway through which the correct provider implementation initially configured is located and utilized. The Resource Model stored through this is currently a simplified version of the model that is in design. | + | The Information System abstraction, over the respective Environment provider, is mainly a gateway through which the correct provider implementation,initially configured, is located and utilized. The Resource Model, stored through this, is currently a simplified version of the model that is in design. |
==Storage System== | ==Storage System== | ||
− | The Storage System abstraction over the respective Environment Provider is mainly a gateway through which the correct provider implementation initially configured is located and utilized. The operations the Storage System exposes are currenty simple get / put operations at file granularity. | + | The Storage System abstraction, over the respective Environment Provider, is mainly a gateway through which the correct provider implementation, initially configured, is located and utilized. The operations the Storage System exposes are currenty simple get/put operations, at file granularity. |
==Reporting Framework== | ==Reporting Framework== | ||
− | The Reporting Framework abstraction over the respective Environment Provider is mainly a gateway through which the correct provider implementation initially configured is located and utilized. Its purpose is to provide status reporting functionality for monitoring purposes and it achieves that via a send method in which the message type and its properties are set. As the presence of an implementation is not vital for the operation of the Execution Engine and such implementation might not be available at all times, a dummy implementation is included in the provider abstraction. | + | The Reporting Framework abstraction, over the respective Environment Provider, is mainly a gateway, through which the correct provider implementation initially configured is located and utilized. Its purpose is to provide status reporting functionality for monitoring purposes, and it achieves that via a send method, in which the message type and its properties are set. As the presence of an implementation is not vital for the operation of the Execution Engine, and such implementation might not be available at all times, a dummy implementation is included in the provider abstraction. |
Latest revision as of 11:41, 28 September 2011
The Environment Provider Framework is created to provide bindings for the Execution Engine to be able to locate needed resources, as well as permanent storage facilities in the environment it operates on. Even though it was initially conceived and implemented in the context of the Execution Engine, it can easily be used by any other component that wants to utilize it. The two main providers identified and used are the Information Provider and the Storage Provider, and they are used by the Information System and the Storage System component respectively. An additional provider is the Reporting Provider, which is used by the Reporting Framework component.
In essence what an Environment Provider is, is a technology specific implementation of a generic interface that provides for basic interactions one may want to perform, either on a Directory Service-like component (Information System), or a persistent global storage (Storage System). The technology specific implementation of the provider is defined at runtime and loaded based on a qualified name rather than as a compile time dependency. This allows the components using the Provider Framework to become extremely versatile and be able to operate on a large number of infrastructures, regardless of the enabling technology. The currently available implementations of these providers are based on the following technologies:
- local - Information and data is stored in the local filesystem, and is only available in other components running in the same host. This provider is mainly used during development time, as it is not well fitted for the distributed environment the engine targets.
- ftp - Information and data is stored in a configurable ftp location as files, and are retrieved from there on every interaction. This approach has the disadvantage that synchronization policies need to be implemented, internally, by the provider.
- gCube - Information and data are managed using the respective gCube Information System and Content Management System. Execution status reporting is performed using gCube System Accounting.
Information System
The Information System abstraction, over the respective Environment provider, is mainly a gateway through which the correct provider implementation,initially configured, is located and utilized. The Resource Model, stored through this, is currently a simplified version of the model that is in design.
Storage System
The Storage System abstraction, over the respective Environment Provider, is mainly a gateway through which the correct provider implementation, initially configured, is located and utilized. The operations the Storage System exposes are currenty simple get/put operations, at file granularity.
Reporting Framework
The Reporting Framework abstraction, over the respective Environment Provider, is mainly a gateway, through which the correct provider implementation initially configured is located and utilized. Its purpose is to provide status reporting functionality for monitoring purposes, and it achieves that via a send method, in which the message type and its properties are set. As the presence of an implementation is not vital for the operation of the Execution Engine, and such implementation might not be available at all times, a dummy implementation is included in the provider abstraction.