amga php api

23
EGEE-II INFSO-RI- 031688 Enabling Grids for E-sciencE www.eu-egee.org EGEE and gLite are registered trademarks AMGA PHP API Claudio Cherubino INFN - Catania

Upload: hamal

Post on 20-Jan-2016

59 views

Category:

Documents


0 download

DESCRIPTION

AMGA PHP API. Claudio Cherubino INFN - Catania. Outline. AMGA: Features Architecture Interfaces Client-Server protocol AMGA PHP API Features Methods Examples gLibrary. AMGA: Features. Official gLite Metadata Catalogue. AMGA: Features. Official gLite Metadata Catalogue - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: AMGA PHP API

EGEE-II INFSO-RI-031688

Enabling Grids for E-sciencE

www.eu-egee.org

EGEE and gLite are registered trademarks

AMGA PHP API

Claudio Cherubino

INFN - Catania

Page 2: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Outline

• AMGA:– Features– Architecture– Interfaces– Client-Server protocol

• AMGA PHP API– Features– Methods– Examples

• gLibrary

Page 3: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Features

• Official gLite Metadata Catalogue

Page 4: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Features

• Official gLite Metadata Catalogue

• Modular back-end (Oracle, PostgreSQL, MySQL and SQLite)

Page 5: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Features

• Official gLite Metadata Catalogue• Modular back-end (Oracle, PostgreSQL, MySQL and SQLite)

• Modular front-end (High-performance TCP Streaming interface and standards compliant Web-Services front-ends)

Page 6: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Features

• Official gLite Metadata Catalogue• Modular back-end (Oracle, PostgreSQL, MySQL and SQLite)• Modular front-end (High-performance TCP Streaming interface

and standards compliant Web-Services front-ends)

• Client Authentication based on– Username/password– General X509 certificates– Grid-proxy certificates

Page 7: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Features

• Official gLite Metadata Catalogue• Modular back-end (Oracle, PostgreSQL, MySQL and SQLite)• Modular front-end (High-performance TCP Streaming interface

and standards compliant Web-Services front-ends)• Client Authentication based on

– Username/password– General X509 certificates– Grid-proxy certificates

• Access control via a Virtual Organization Management System (VOMS)

Page 8: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Features

• Official gLite Metadata Catalogue• Modular back-end (Oracle, PostgreSQL, MySQL and SQLite)• Modular front-end (High-performance TCP Streaming interface

and standards compliant Web-Services front-ends)• Client Authentication based on

– Username/password– General X509 certificates– Grid-proxy certificates

• Access control via a Virtual Organization Management System (VOMS)

• Secure client connections using SSL

Page 9: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Features

• Official gLite Metadata Catalogue• Modular back-end (Oracle, PostgreSQL, MySQL and SQLite)• Modular front-end (High-performance TCP Streaming interface

and standards compliant Web-Services front-ends)• Client Authentication based on

– Username/password– General X509 certificates– Grid-proxy certificates

• Access control via a Virtual Organization Management System (VOMS)

• Secure client connections using SSL

• Authorization using ACLs

Page 10: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Features

• Official gLite Metadata Catalogue• Modular back-end (Oracle, PostgreSQL, MySQL and SQLite)• Modular front-end (High-performance TCP Streaming interface

and standards compliant Web-Services front-ends)• Client Authentication based on

– Username/password– General X509 certificates– Grid-proxy certificates

• Access control via a Virtual Organization Management System (VOMS)

• Secure client connections using SSL• Authorization using ACLs

• SQL-like query language

Page 11: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Architecture (1)

• C++ multiprocess server– Runs on any Linux flavour

• Backends– Oracle, MySQL, PostgreSQL,

SQLite

Metadata Server

MDServer

SOAP

TCP Streaming

PostgreSQL

Oracle

SQLite

Client

Client

MySQL

Page 12: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Architecture (2)

• Two front-ends– TCP Streaming

High performance Client API for C++, Java,

Python, Perl, Ruby

– SOAP Interoperability

• Also implemented as standalone Python library– Data stored on filesystem

Python Interpreter

Metadata Python

APIClient

filesystem

Page 13: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Interfaces

• TCP Streaming Front-end– mdcli & mdclient and C++ API (md_cli.h, MD_Client.h)– Python Client API– Java Client API and command line mdjavaclient.sh &

mdjavacli.sh (also under Windows !!)– AMGA Web Interface– AMGA PHP API

• SOAP Front-end (WSDL)– C++ gSOAP– AXIS (Java)– ZSI (Python)

Page 14: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Client-Server protocol (1)

• Handshake

Page 15: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA: Client-Server protocol (2)

• Sending command and retrieving output

Page 16: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA PHP API: Features

• PHP5 Object Oriented Interface

• Ported from the C++, Python and Perl Client APIs

• Based on the MDClient class

• Can establish plain/SSL connection to AMGA server

• Provides a method for each AMGA command and a generic execute($command)

Page 17: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA PHP API: Methods

• void __construct(string $host, integer $port, [string $login = "anonymous"], [string $password = ""], [boolean $keepalive = true])

• void requireSSL(string $key, string $cert, [ $capath = "certificates"])

• void connect()• void execute(string $command)• void getattr(string $file, array $attributes)• void setAttr(string $file, string $keys, string $values)• void addEntry(string $file, string $keys, string $values)• void addAttr(string $file, string $name, string $t)• string listEntries(string $pattern)• array(array(attributes), array(types)) listAttr(string

$file)• void selectAttr(array $attributes, string $query)• array getSelectAttrEntry()

...

Page 18: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA PHP API: Example (1)// including AMGA PHP classinclude 'mdclient.php';

// login parameters$host = "glibrary.ct.infn.it";$port = 8822;$login = "NULL";

// establishing ssl connection with proxy authenticationtry{

$client = new gLibrary($host, $port, $login);$client->requireSSL("x509_xxx", "x509_xxx");$client->connect();

}catch (Exception $e){

echo 'Unable to connect: '. $e->getMessage(). "\n";}

Page 19: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA PHP API: Example (2)

// printing the greetings messageecho $client->getGreetings()."<br>";

// retrieving name of the user connectedecho "User connected: <b>".$client->whoami()."</b><br><br>";

// getting FileName and Size of all entries // in /gLibTest/Entries where Size > 1000000$attrs = array("/gLibTest/Entries:FileName", "Size");$condition = "'Size > 1000000 order(FileName)'";$num_attrs = count($attrs);

$result = $client->selectAttr($attrs, $condition);while (!$client->eot()){

$FileName = $client->getSelectAttrEntry();$Size = $client->getSelectAttrEntry();echo $FileName[0]." (".$Size[0].")<br>";

}

Page 20: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

AMGA PHP API: Example (3)

Page 21: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

gLibrary

• Grid digital asset management software based on AMGA PHP API

https://glibrary.ct.infn.it

Page 22: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

References

• AMGA - ARDA Metadata Catalogue Projecthttp://amga.web.cern.ch/amga/

• AMGA PHP API gLite Modulehttp://jra1mw.cvs.cern.ch:8180/cgi-bin/jra1mw.cgi/org.glite.amga.api-php/

• AMGA PHP API Documentationhttp://amga.web.cern.ch/amga/php/index.html

• gLibraryhttps://glibrary.ct.infn.it

Page 23: AMGA PHP API

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Questions?