Services

Featured Animated Featured Animated
Uploaded from authorPOINT
Download as
 PPT
Presentation Description 

No description available

Happy Thanksgiving
What's up on authorSTREAM?
Views: 177
Like it  ( Likes) Dislike it  ( Dislikes)
Added: June 19, 2007 This Presentation is Public 
Presentation Category : Product Training/ Manuals All Rights Reserved
Presentation Transcript

GT 3 Base Services Inside- Information Services: GT 3 Base Services Inside - Information Services KISTI Supercomputing Center Grid Technology Research Department Eunsung Kim eskim74@kisti.re.kr


Contents: Contents Overview Components Service Data Provider Components Service Data Aggregation Components Registry Components Applications GT3 Index Service GRAM RIPS MMJFS ContainerRegistry and VORegistry


Overview: Overview


GT3 Information Services: GT3 Information Services What is GT3 Information Services? Grid service which provides information about Grid resources modular Java component framework for OGSA service developers can use to implement various information management solutions for GT3-compatible OGSA Services and Service Data


GT2 vs. GT3 Information Services: GT2 vs. GT3 Information Services Components MDS  Index Service, Service Data Providers and Aggregators, Query and Notification Framework GRAM Reporter  Resource Information Provider Service Data Format LDIF  XML Data Source GLUE providers  GLUE providers, Service Instance Query Mechanisms LDAP  XPath, XQuery


Service Data: Service Data A Grid service instance maintains a set of service data elements (SDE) Declared via an extended XSD element declaration, placed in a WSDL portType Values carried in a portType or in an instance Includes basic introspection information, interface-specific data, and application state Pull and push models for information query GridService::FindServiceData operation Pull: queries this information via extensible query language NotificationSource::Subscribe Push: Subscribe to notification of changes to information


Why Service Data?: Why Service Data? Discovery often requires instance-specific, perhaps dynamic information Service data offers a general solution Every service must support some common service data, and may support any additional service data desired Not just meta-data, but also instance state Part of GT MDS-2 model contained in OGSI Defines standard data model, and query op Complements soft-state registration and notification


OGSI ServiceData Model: OGSI ServiceData Model ServiceData for self-description Model service with properties! Fine-grained view of resource functionality Data scoped by service instance Domain-dependent state Service discovery/monitoring information Stateful properties of service, e.g. cpu-load Infrastructure state Introspection for client 'tooling', e.g. handles Parameters of generic features ServiceDataNames introspects available data


Components: Components


Basic Components: Basic Components Service Data Provider Components Service Data Aggregation Components Registry Components


Service Data Provider Components: Service Data Provider Components Service Data Provider components provide a standard mechanism for dynamic generation of service data via external programs External provider programs can be the core providers that are part of GT3 or can be user-created, custom providers


In Detail: Service Data Providers: In Detail: Service Data Providers Service Data Provider interfaces are designed to support execution in either synchronous ('pull') mode asynchronous ('push') mode A valid provider is composed of any Java class which implements at least one of three predefined Java Interfaces generates a compatible form of XML output as the result of its execution


In Detail: Service Data Providers: In Detail: Service Data Providers Provider Interfaces SimpleDataProvider synchronous provider which produces XML output in the form of a Java OutputStream DOMDataProvider synchronous extension of SimpleDataProvider which can also produce XML output in the form of a Java org.w3c.dom.Document AsyncDataProvider asynchronous version of SimpleDataProvider sending the output to the specified callback Object, which is assumed that the provider implementer and the provider caller have both agreed on the callback interface at compile-time


In Detail: Provider Interfaces: In Detail: Provider Interfaces SimpleDataProvider Basic interface which all service data providers must implement


In Detail: Provider Interfaces: In Detail: Provider Interfaces DOMDataProvider Generic interface for XML service data providers that are capable of emitting a org.w3c.dom.Document object at runtime


In Detail: Provider Interfaces: In Detail: Provider Interfaces AsyncDataProvider Asynchronous version of provider interface


In Detail: GT3 Providers: In Detail: GT3 Providers AsyncDocumentProvider An asynchronous version of a generic XML document provider ScriptExecutionProvider ServiceDataProvider that provides a generic way to execute scripts which produce XML documents HostScriptProvider Constructs Host service data from the output of multiple scripts


In Detail: GT3 Providers: In Detail: GT3 Providers ForkInfoProvider ServiceDataProvider which monitors local system PIDs PBSInfoProvider ServiceDataProvider which queries PBS for queue information SimpleSystemInformationProvider Basic MDS GRIS-sytle sensor which emits system information in XML, with state managed directly as an XML Document using JDOM - JDK 1.3 compatible


In Detail: Provider Manager: In Detail: Provider Manager Provider execution is handled by the ServiceDataProviderManager class, which schedules and manages provider execution as Java TimerTasks ServiceDataProviderManager uses an XML-based configuration file to load and link installed Service Data Providers during runtime through standard Java reflection methods Configuration file $GLOBUS_LOCATION/etc/indexservice.providers $GLOBUS_LOCATION/etc/rips.providers


In Detail: Provider Manager: In Detail: Provider Manager Configuration entry for the provider in a configuration file enables your provider for execution by the Provider Manager publishes the existence of your provider to clients Required attribute in the configuration entry the 'class' attribute, which is simply the fully qualified Java class name


In Detail: Custom Data Handlers: In Detail: Custom Data Handlers The default data processing behavior of the Provider Manager take the logical XML document result of a provider’s execution wrap it in a new SDE and then add it to the Service’s ServiceDataSet We can override the default data processing logic in the Provider Manager by specifying the 'handler' attribute in the Provider’s configuration file


In Detail: Custom Data Handlers: In Detail: Custom Data Handlers Custom callback routine provides a mechanism for facilitating sorting, merging or other data preprocessing and transformation allows the developer complete control for output data Use case: GRAM RIPS uses a custom callback handler for the Fork and PBS providers to search, sort and atomize child 'Job' elements from the logical result document into new SDEs


In Detail: ProviderExecutionPortType: In Detail: ProviderExecutionPortType enumProviders


In Detail: ProviderExecutionPortType: In Detail: ProviderExecutionPortType executeProvider


In Detail: Mechanisms: In Detail: Mechanisms Provider Manager SimpleDataProvider DomDataProvider AsyncDataProvider Information Providers Custom Data Handler enumProvider executeProvider Service or User


Basic Components: Basic Components Service Data Provider Components Service Data Aggregation Components Registry Components


Service Data Aggregation Components: Service Data Aggregation Components ServiceDataAggregator components provide a reusable mechanism for handling subscription, notification, and updating of locally stored copies of service data which is generated by other services By using the ServiceDataAggregator class in your service code service Data from both locally executing information providers and other OGSA service instances can be aggregated into any given service


In Detail: Service Data Aggregator: In Detail: Service Data Aggregator ServiceDataAggregator component is used to perform server-side notification subscription management similar to the SinkListener sample Key additional feature of ServiceDataAggregator notification data that is processed by the deliverNotification() function is actually copied and stored locally as a SDE, which includes creation timestamp, TTL and source metadata


In Detail: Service Data Aggregator: In Detail: Service Data Aggregator Aggregated SDEs are organized by SDE QName stored in a array which is returned as a org.gridforum.ogsa.ServiceDataSetType to FindServiceData name queries Originator field (GSH type) of the OGSA ServiceDataType is used as the 'primary key' to differentiate like-named entries from each other to identify the source of the data itself


In Detail: AggregatorPortType: In Detail: AggregatorPortType addSubscription and removeSubscription


In Detail: Mechanisms: In Detail: Mechanisms Aggregator Grid Services addSubscription removeSubscription Service or User … deliverNotification


Basic Components: Basic Components Service Data Provider Components Service Data Aggregation Components Registry Components


Registry Components: Registry Components Registry components maintain a set of available peer Grid Service Handles provides soft-state cataloging of a set of Grid Services i.e., the registry of services is periodically updated with existence notification messages and any existing entries which fail to refresh within the timeout period are eventually expired Registries can be used to support query or other operations that may apply to one or more services in a set


In Detail: RegistrationPortType: In Detail: RegistrationPortType registerService and unregisterService


In Detail: Mechanisms: In Detail: Mechanisms Registry Grid Services registerService unregisterService …


Applications: Applications


Applications: Putting it All Together: Applications: Putting it All Together Various GT3 Information Services components provide a convenient way to address common and recurring tasks with Service Data in the GT3 OGSA environment One or all of the components can be used to manage data depending on application needs


Applications: Putting it All Together: Applications: Putting it All Together Current GT3 OGSA services using Information Services components GT3 Index Service ServiceDataProviderManager, ServiceDataAggregator, and Registry components GRAM Resource Information Provider Service (RIPS) ServiceDataProviderManager components GRAM Master Managed Job Factory service (MMJFS) ServiceDataAggregator components ContainerRegistry and VORegistry Registry components


Use Case: GT3 Index Service : Use Case: GT3 Index Service GT3 Index Service combines the ServiceDataProviderManager components along with the ServiceDataAggregator and Registry components creates a dynamic data-generating and indexing node, similar in concept to GT2 MDS GRIS/GIIS is implemented as a ServiceSkeleton so that developers can easily customize and extend its functionality Registry and ServiceDataAggregator components can interconnect multiple GT3 Index Services together into arbitrarily complex topologies to form both Virtual Organizations and Virtual ServiceDataSets


Use Case: GT3 Index Service: Use Case: GT3 Index Service Key capabilities An interface for connecting external information provider programs to service instances A generic framework for aggregation of service data A Registry of Grid services Java package: org.globus.ogsa.impl.base.index


Use Case: GT3 Index Service: Use Case: GT3 Index Service Aggregator Mechanism (caching here) Provider Mechanism Java Provider Grid Service Grid Service Grid Service Index Service User Service Data Service Data Service Data Notification Message Existence Notification Message Service Data Service Data Collective Layer Resource Layer Registry Mechanism GSH


Use Case: GRAM RIPS: Use Case: GRAM RIPS GRAM Resource Information Provider service uses the ServiceDataProviderManager components, along with custom providers and the OGSA core component NotificationServiceSkeleton monitors forked processes, PBS scheduler queues, and local host system statistics polls the host system periodically for this information since changes to the local hosting environment are inherently non-deterministic Java package: org.globus.ogsa.impl.base.gram.rips


Use Case: GRAM RIPS: Use Case: GRAM RIPS Execution frequency of this polling is specified on a per-provider-instance basis is specified by the client when the provider is executed the first time via the ProviderExecutionPortType executeProvider() method Sweeper thread periodically traverses the service’s internal SDE list and invalidates any entries which have not received updates to the timestamp metadata


Use Case: GRAM RIPS: Use Case: GRAM RIPS Special processing in its custom 'jobDataHandler' function breaking out specific child ‘Job’ elements from the logical result document creating individual SDEs for each, assigning appropriate TTL metadata to new entries and updating the TTL data on existing SDEs In order to detect whether a notification is warranted based on a state change examines the state of each Job element during the callback


Use Case: GRAM RIPS: Use Case: GRAM RIPS RIPS tuning global configuration parameters that can be set in the RIPS deployment descriptor in server-config.wsdd


Use Case: GRAM RIPS: Use Case: GRAM RIPS RIPS tuning (cont.) The 'sweeperDelay' value is the amount of time in milliseconds for the Sweeper thread to wait between execution cycles should generally be at least as long as the average amount of time spent in the 'jobDataHandler' callback The 'gracePeriod' is the amount of time in milliseconds to add to the entries’ GoodUntil TTL value to generate its AvailableUntil value If the sweeper encounters an entry whose AvailableUntil value is expired, it deletes the entry The GoodUntil TTL value is set by default to be the provider execution frequency in milliseconds


Use Case: MMJFS: Use Case: MMJFS GRAM Master Managed Job Factory service exposes aggregated service data to GRAM clients by using the ServiceDataAggregator to subscribe to one or more RIPS installations for information on running jobs and queue status Java package: org.globus.ogsa.impl.base.gram.mmjfs


Use Case:ContainerRegistry and VORegistry: Use Case: ContainerRegistry and VORegistry ContainerRegistryImpl This class implements a registry for all services in a container Java package: org.globus.ogsa.impl.base.registry VORegistryImpl This registry implements a repository of services within a virtual orginization It supports local as well as remote service publication and lookup Java package: org.globus.ogsa.impl.samples.registry


Q & A: Q andamp; A Thanks for Coming!