170 likes | 312 Vues
Methodology for Component-based Development of Grid Applications Artie Basukoski T.Weigold, P.Buhler – IBM Zurich Research Lab A.Basukoski, V.Getov, S.Isiaiadis – University of Westminster A.Basukoski02@westminster.ac.uk. Overview. GCM and GridCOMP Component framework overview
E N D
Methodology for Component-based Development of Grid ApplicationsArtie BasukoskiT.Weigold, P.Buhler – IBM Zurich Research LabA.Basukoski, V.Getov, S.Isiaiadis – University of WestminsterA.Basukoski02@westminster.ac.uk
Overview • GCM and GridCOMP • Component framework overview • The Grid integrated development environment (GIDE) • Biometric identification case study • Initial Experiences Grid programming with components: an advanced COMPonent platform for an effective invisible grid
GCM and GridCOMP GCM • A new advanced Grid Component Model (GCM) providing high level of abstraction and specifically designed for large scale dynamic Grid infrastructures. • Specified within the CoreGRID Euopean project. GridCOMP • EU project: Grid programming with COMPonents. • Design and implementation of a Grid component framework based on GCM. • Includes the development of a Grid IDE and several use case applications. • GCM reference implementation based on ProActive. Grid programming with components: an advanced COMPonent platform for an effective invisible grid
GridCOMP Component Framework Overview • The GridCOMP framework is based on the Fractal component model. • The main technical features of the component framework are: • Support for primitive and composite distributed components and hierarchical composition. • XML based architecture description language (ADL). • Collective interfaces to comply with Grid specific multi-way communication requirements. • A comprehensive runtime API. • Support for non-functional aspects such as component control, skeletons, and autonomicity. • Advanced component deployment via the notion of virtual nodes and deployment descriptors. Grid programming with components: an advanced COMPonent platform for an effective invisible grid
GridCOMP Component Framework Overview Hierarchical composition: all three components can be distributed non-functional (control) interfaces composite component binding server interface primitive component client interfaces primitive component content controller Grid programming with components: an advanced COMPonent platform for an effective invisible grid
GridCOMP Component Framework Overview Collective interfaces: The framework takes care of parallel invocations, data distribution, and synchronization. scattered parameter invocation parameter invocation parameter list of aggregated parameters gathercast interface multicast interface (one-to-one mode) Grid programming with components: an advanced COMPonent platform for an effective invisible grid
Methodology A generic method to develop applications based on a Grid Component Model (GCM). Integrated IDE for Development, Deployment and Steering. Advantages of our methodology reduced development cycle, increased portability, and support of dynamic properties of the GCM-based component framework.
Obtaining theSolution Grid Integrated Development Environment Applications (Algorithms) Programming Model - GCM Composition Deployment Monitor andSteer Metadata Description incl. ADL, etc. Component-Centric Problem-to-Solution Pipeline • Main issues: composition and dynamic properties – deployment, monitoring and steering • Component-based Grid platform design methodology Grid programming with components: an advanced COMPonent platform for an effective invisible grid
Strategy: Eclipse Framework for GIDE • Simplify complexity through graphical composition/tools • But, allowing ONLY graphical composition can be inflexible and inefficient • Support for 3 levels of Development • Graphical Composition • Based on GCM and ProActive (using ADL) • Java • Seamless integration with Eclipse • Widely supported with many potential plug-ins • “Lets not restrict developers” Grid programming with components: an advanced COMPonent platform for an effective invisible grid
Grid IDE Architecture - Core Block Diagram Grid programming with components: an advanced COMPonent platform for an effective invisible grid
GIDE – An Insight into Composition • GIDE builds on GMF for providing graphical front-end • The IDE includes • Built-in ADL parser and exporter • Verifier • Component Repository (allow packaging and sharing) • Java source code generation • ADL files are verified, parsed and then appropriate internal representations of compositions (semantic representation) and diagrams are generated. • GIDE delegates the user-interactions to these internal representations Grid programming with components: an advanced COMPonent platform for an effective invisible grid
GIDE – An Insight into Composition Grid programming with components: an advanced COMPonent platform for an effective invisible grid
Case Study: Biometric Identification System (BIS) • Identify people solely on their biometric information (1:N match) • Use fingerprint biometrics • Consider multiple fingers per person to work reliably on large user population • Use distributed matching to achieve real-time performance • Based on business process (workflow) engine for adaptability 13 Grid programming with components: an advanced COMPonent platform for an effective invisible grid
Case Study: Biometric Identification System (BIS) Grid component architecture, bindings, and deployment Biometric matching component CompIDMatcher is deployed on each node DB of known identities is distributed across the nodes Identification requests are broadcasted via multicast interface I2 Each node searches its part of the DB 14 Grid programming with components: an advanced COMPonent platform for an effective invisible grid
Development – BIS Case Study Grid programming with components: an advanced COMPonent platform for an effective invisible grid
Case Study: Biometric Identification System (BIS) ADL Example: the composite component CompIDMatcher <definition name="com.ibm.bis.CompIDMatcher"> <interface name="server" role="server" signature="com.ibm.bis.I3"/> <interface name="client" role="client" signature="com.ibm.bis.I3"/> <component name="CompAlgControl“ definition="com.ibm.bis.CompAlgControl"/> <component name="CompAlg" definition="com.ibm.bis.CompAlg"/> <binding client="this.client" server="CompAlgControl.idServer"/> <binding client="CompAlgControl.client" server="CompAlg.server"/> <binding client="CompAlg.client“ server="CompAlgControl.controlServer"/> <controller desc="composite"/> <virtual-node name="BIS-Grid" cardinality="single"/> </definition> Grid programming with components: an advanced COMPonent platform for an effective invisible grid
Initial Experiences • The high level of abstraction provided by the GIDE framework hides the complexity of Grid programming • The strict separation of concerns (ADL definitions, interface definitions, virtual nodes, deployment descriptors) separates the design from the deployment (physical) infrastructure • The hierarchical nature allows fast composition and facilitates reuse • Drawback: A large number of development artefacts need to be generated and maintained. This makes manual code re-factoring complex. • Need to gather development statistics in order to accurately gauge the impact of the GIDE development methodology on the development lifecycle. • The GIDE, implemented as an Eclipse plug-in. Project’s WIKI: http://perun.hscs.wmin.ac.uk/dis/gide/ Grid programming with components: an advanced COMPonent platform for an effective invisible grid