GRIDKit: A COMPONENT-BASED MIDDLEWARE FRAMEWORK FOR CONFIGURABLE AND RECONFIGURABLE GRID COMPUTING Overview of GRIDKIT Open Overlays • • • Our approach to addressing the limitations of Grid Middleware is subsumed under the umbrella of the GRIDKIT Architecture. The aim of GRIDKIT is to provide underlying support in four domains for the provision of Grid Services. • • • • Grid Services • Service Binding Resource Discovery Resource Management Grid Security The GRIDKIT Architecture • Application Layer Overlay Networks allow new network services to be deployed without requiring changes to network level infrastructure. Members of an overlay network (hosts, servers, routers, or applications) organise themselves to form a logical network topology. Communication is between neighbours in the topology. A member of an overlay network sends and receives application data, forwarding messages intended for other members Examples of overlays are peer-to-peer distributed hash tables, multicast trees, network flooding etc . Sophisticated communication services e.g. data streaming, P2P resource discovery and application-level multicast are supported by appropriate overlay configurations. Multiple service bindings can then operate over their selected overlay. GRIDKIT is an instantiation of the generic OpenORB middleware platform and follow the philosophy of building systems using components (with the OpenCOM component model), component frameworks and reflection. ILifeCycle IMetaInterface IConnections OpenCOM component framework ICFMetaArchitecture CF Service Interfaces (Can be exposed interfaces of internal components) CF receptacles (Can be exposed) Lock Interceptor Graph of internal components IAccept • Multicast Binding Resource Lookup Binding Open Overlay Networks Service Binding This area provides sophisticated communication services beyond SOAP: i.e., support for QoS management, and for different interaction types e.g. (publish-subscribe, group communication, peer-to-peer, data sharing and others). Hence, a range of interaction types are abstracted using a web services API, thus providing the basis of an extensibility framework in which to accommodate the more complex range of interaction types. Distributed Hash Table Algorithms Key based routing Tree based multicast algorithms IP Broadcast GRIDKIT is built in terms of OpenCOM derived CFs, the architecture of which is shown the figure above. • The CFs behave as standard components; but, in addition, each implements the ICFMeta chitecture interface which provides operations to inspect and dynamically reconfigure the CF’s internal structure (maintained as a ‘graph’ of local components). • Dynamic changes to the framework are checked using a “plugged-in” validation strategy Once a change is made, the plug-in checking strategy is executed, and if invalid the frame work rolls back to its previous state. By default, the local graph is checked against a set o XML-based architectural descriptions of valid component configurations. Alternatively, m or less complex strategies can be plugged in. Grid Services API Binding Discovery Abstract to Concrete Map Resource discovery This provides service, and more generally, resource discovery services, allowing for the use of multiple discovery technologies so as to maximise the flexibility available to applications. Examples of alternative technologies are SLP or UPnP for more traditional service discovery, GRAM for CPU discovery in a Grid context, and P2P protocols for more general resource discovery. Resource management This comprises both the coarse-grained distributed resource management that is currently provided by services such as GRAM, and the fine-grained local resource management (e.g. of channels, threads, buffers etc) that is required to build end-to-end QoS. • • • • • • Grid security This supports secure communication (authentication and confidentiality) between participating nodes orthogonally to the interaction types in use. Overlay Networks An extensible family of open and programmable overlay networks underpins the overall GRIDKIT architecture. The role of the Overlay Network is to route packets through virtual networks that are tailored to support the various service interaction types, thus providing an approach that is network-centric, offers a strong architecture for the system infrastructure, and facilitates selfmanagement through the inherent openness of the network. • The diagram above demonstrates how we envisage “layers” of overlay networks. That is, overlay networks are layered on top of one another to achieve the required binding semantics . Hence, the same node participates in multiple overlays, and new bindings can be layered over existing overlays (supporting re-use). For example, in one setup a group binding can be underpinned by a multicast tree over a key based overlay. For example, SCRIBE layered over PASTRY. The same multicast tree can then be layered over IP at a different time. Our architecture intends the overlay to be controlled by a component framework who manages the composition of multiple overlays. The diagram below gives an overview of the components plugged into the Overlay framework, which provides open access to configure and dynamically reconfigure the node’s participation in multiple overlay networks. Each overlay is composed of three components: State (network), Control (algorithm to maintain topology), and Forwarding (routing algorithm) The framework then maintains rules for valid configurations. SCRIBE State component Control Component Forwarding Component Control Component Forwarding Component PASTRY State component Service Binding Overlay Network CF Abstract Middleware Resource discovery Concrete Middleware Distributed Hash Table Multicast tree GRIDKIT The figure above depicts the GRIDKIT architecture subset that deals with service binding a resource discovery. This is a three-layer architecture that is composed of: i) Abstract middleware. Consists of a “Grid API” that is built in terms of web services abstr tions. In particular, abstract service interaction types are described in terms of WSDL so tha services can be invoked irrespective of the interaction type underlying the service. This is achieved by exploiting WSDL’s approach of breaking interactions down into individual mes sages: any service operation, from the user’s perspective, can be described abstractly in term of input or output messages. ii) Abstract to concrete mappings. Takes the abstract information submitted through the abstract middleware layer and maps it to the interfaces of the currently exposed concrete midd ware implementations in the layer below. iii) Concrete middleware. Composed of three CFs, organised in two layers. The top layer is composed of CFs to support concrete service binding and resource discovery. The Service Binding CF provides a set of available interaction type implementations. The binding frame work exposes its network requirements to the underlying overlay framework. The Discovery CF allows multiple discovery technologies to be plugged into the framework (e.g. SLP, UD Jini, P2P-based etc.) at any one time. The discovery framework utilises the underlying overl framework to enhance discovery of Grid resources. ollows onent hown in FMetaArre the ategy. frameset of ely, more ing and abstraco that s is l mesn terms he abmiddleyer is ice frameovery , UDDI, overlay