Writing GAT Adaptors Hartmut Kaiser

Slides:



Advertisements
Similar presentations
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Socket Programming 0.
Advertisements

Axis2 WSDL- Code Generation. Contents  Scope and Goals of the discussion.  Anticipated runtime behavior.  Proposed Architecture.  Change request for.
Middleware Technology Training Lab Course. Outline  Lab introduction  Create Web services  Business modeling  Implement a business process  Integrate.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Remote Object Invocation
Day 10 Threads. Threads and Processes  Process is seen as two entities Unit of resource allocation (process or task) Unit of dispatch or scheduling (thread.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 13 Introduction to SQL Programming Techniques.
Servlets and a little bit of Web Services Russell Beale.
NextGRID & OGSA Data Architectures: Example Scenarios Stephen Davey, NeSC, UK ISSGC06 Summer School, Ischia, Italy 12 th July 2006.
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
Evolution of Code through Asynchronous Services Manuel Oriol Workshop on Unanticipated Software Evolution - USE ’2002.
1 Chapter 21 Generics. 2 Objectives F To know the benefits of generics (§21.1). F To use generic classes and interfaces (§21.2). F To declare generic.
Process Description and Control A process is sometimes called a task, it is a program in execution.
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
Chapter 6 - Implementing Processes, Threads and Resources Kris Hansen Shelby Davis Jeffery Brass 3/7/05 & 3/9/05 Kris Hansen Shelby Davis Jeffery Brass.
Hadoop: The Definitive Guide Chap. 8 MapReduce Features
Dependency Injection and Model-View-Controller. Overview Inversion of Control Model-View-Controller.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) Grid Engine Riccardo Rotondo
History Server & API Christopher Larrieu Jefferson Laboratory.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) WMPROXY API Python & C++ Diego Scardaci
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
LexEVS in a caGrid Environment Interacting with LexEVS 5.0 November 2009.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
Deferred Messaging Brown Bag 1. Agenda 2 Background Solution Implementation Details Additional Information.
Workshop on Grid Application Programming 19th-21st July 2004, Edinburgh, 1 Hartmut Kaiser The C Implementation of the GAT OO Specification Hartmut Kaiser.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Using the GAT (GAT the semester project?) :-P Hartmut Kaiser
Define an interface for creating an object, but let subclasses decide which class to instantiate Factory Method Pattern.
Define an interface for creating an object, but let subclasses decide which class to instantiate.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 The SqlConnection Object ADO.NET - Lesson 02  Training time: 10 minutes 
Facebook API Kelly Orser. Client Libraries Client libraries will simplify the calls to the platform by reducing the amount of code you have to write.
Digging into the GAT API Comparing C, C++ and Python API‘s Hartmut Kaiser
Getting Started with SIDL using the ANL SIDL Environment (ASE) ANL SIDL Team MCS Division, ANL April 2003 The ANL SIDL compilers are based on the Scientific.
Liang, Introduction to Java Programming, Tenth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 19 Generics.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
David Adams ATLAS ATLAS distributed data management David Adams BNL February 22, 2005 Database working group ATLAS software workshop.
Advanced Object-oriented Design Patterns Creational Design Patterns.
Interceptor CS562 Spring 2002 Jan Anand Krishnan Morgan Deters Venkita Subramonian.
Sequencers SQO,SQC,SQL.
Singleton Pattern. Problem Want to ensure a single instance of a class, shared by all uses throughout a program Context Need to address initialization.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
Chapter 4 Request and Response. Servlets are controlled by the container.
Technical lssues for the Knowledge Engineering Competition Stefan Edelkamp Jeremy Frank.
Polymorphism Lecture - 9.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Design Patterns Creational Patterns. Abstract the instantiation process Help make the system independent of how its objects are created, composed and.
Abstract Factory Pattern Jiaxin Wang CSPP Winter 2010.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Copyright © 2016 Ramez Elmasri and Shamkant B. Navathe.
Chapter 6 Limited Direct Execution Chien-Chung Shen CIS/UD
1 Chapter 5: Threads Overview Multithreading Models & Issues Read Chapter 5 pages
Java Servlets By: Tejashri Udavant..
Day 12 Threads.
Java Beans Sagun Dhakhwa.
Tools to Build Clients.
Distribution and components
JavaBeans and JSP CS-422.
Debugging with Eclipse
Chapter 19 Generics.
Chapter 21 Generics.
Operating Systems Lecture 3.
WebServices Using JAX-RPC
Grid Engine Diego Scardaci (INFN – Catania)
Chapter 19 Generics Jung Soo (Sue) Lim Cal State LA.
System Calls System calls are the user API to the OS
Chapter 21 Generics.
Debugging with Eclipse
Chapter 19 Generics.
Presentation transcript:

Writing GAT Adaptors Hartmut Kaiser

October 17th, 2005Writing GAT Adaptors2 What‘s a GAT Adaptor Piece of glue code connecting the GAT CPI with the concrete service API to use CPI: capability provider interface –Interface between the GAT and the adaptors Service API –Client side interface of a service (OS service, webservice, client library etc.) Maps the single CPI functions to the corresponding service API functions

October 17th, 2005Writing GAT Adaptors3 What‘s a GAT Adaptor

October 17th, 2005Writing GAT Adaptors4 What‘s a GAT Adaptor May (has to) implement more then one CPI (group of related functions):

October 17th, 2005Writing GAT Adaptors5 What‘s a GAT Adaptor Every of the CPI functions correspond to one of the GAT API functions, i.e. Engine dispatches the API call to a suitable adaptor (calls the CPI function implemented in the adaptor) But not all of the CPI functions have to be implemented, runtime provides the missing functions (C++ and Python) Runtime returns GAT_NOTIMPL for these (C++ and Python) API CPI GAT.File.Copy GAT.Adaptors.FileCPI.Copy

October 17th, 2005Writing GAT Adaptors6 File Transfer Adaptor File transfer CPI –CPI data Context this object was created with Location of this file –CPI functions: Copy(Location dest, CopyMode mode) –Copy the file to the specified destination Move(Location dest, MoveMode mode) –Move the file to the specified destination Delete() –Delete the file GetLength() –Return the current size of the file IsReadable() –Return, whether the file is readable IsWritable() –Return, whether the file is readable LastWriteTime() –Return the time of the last write access

October 17th, 2005Writing GAT Adaptors7 File Transfer Adaptor Application import GAT file = GAT.File("file://tmp/t") file.Copy("file://tmp/t2", Overwrite) file = GAT.File("file://tmp/t2") file.Move("file://tmp/t3", FailIfThere) Adaptor import shutil import GAT import GAT.Adaptors class filecpi(GAT.Adaptors.FileCPI): Copy(self, dest, mode): shutil.copyfile(self.location, dest) class filecpi: Move(self, dest, mode) shutil.move(self.location, dest)

October 17th, 2005Writing GAT Adaptors8 Service Discovery Adaptor ServiceResourceBroker CPI –CPI data Context this object was created with –CPI functions FindResources(ServiceDescription) –Return a list of suitable resources Reource CPI (ServiceResource) –CPI data Context this object was created with Resource Description –CPI functions GetResourceDescription –Return the resource description of this resource (GetReservation) –Does not apply here (is for HardwareResources only)

October 17th, 2005Writing GAT Adaptors9 Adaptor Selection GAT engine narrows down the list of available adaptors using supplied/default preferences GAT engine goes through the remaining list and tries to instantiate the object implementing the CPI The first adaptor found to return success gets associated with the GAT API object GAT.File GAT.Adaptors.FileCPI

October 17th, 2005Writing GAT Adaptors10 Preference Matching Adaptor registers its preferences (capabilities) during adaptor loading Application may specify its preferences (requirements) during object construction GAT engine matches these two preference sets to select suitable adaptors Preferences are a set of key/value pairs decribing a CPI implementation provided by a certain adaptor Look at the adaptor_instances example which prints the registered adaptor preferences

October 17th, 2005Writing GAT Adaptors11 CPI Instantiation GAT engine tries to instantiate the object which implements the CPI C++/Python: first the function IsApplicable is called to decide, whether this object will be able to support the request CPI object is instantiated only, when IsApplicable returns True Drawback: adaptors are ‚bound‘ to the API object at object creation time and it‘s not possible to change the adaptor during the object lifetime (early binding) SAGA will support late binding

October 17th, 2005Writing GAT Adaptors12 Demo File Transfer Adaptor –Local adaptor written in Python