Transcript jsaga
EGI Technical Forum
Amsterdam, 16 September 2010
Sylvain Reynaud
Plan
SAGA quick overview
JSAGA focuses
–
–
–
–
–
uniform usage of middleware
ease of extension
efficiency and scalability
control of the API behavior
operating-system independency
JPySAGA
Example applications
Perspectives
JSAGA
2
SAGA quick overview
SAGA : the specification
– a recommendation of Open
Grid Forum
– aS
Simple A
API
– for using G
Grid middleware
• execution management
– job submission, monitoring...
• data management
independent of middlewares
=> use middlewares in a uniform way
consistent "look-and-feel"
=> use functionalities in a uniform way
– transfer, list files, search…
• service discovery
• …
– in user A
Applications
• implementations (or wrappers)
exist for C++, Java and Python
JSAGA
See next talk !
3
The JSAGA implementation
a Java implementation of the SAGA specification
focuses on
–
–
–
–
–
uniform usage of middleware….
ease of extension……………….
efficiency and scalability……….
control of the API behavior........
operating-system independency
(beyond what they natively support)
(thanks to the design of adaptor interfaces)
(configure binding rather than trying)
(tested on
)
Under LGPL license
JSAGA
4
Uniform usage of existing grids
JSAGA
5
Example – uniform usage
SAGA
job
user applications
JSAGA
Globus
Gatekeep.
gsiftp
WMS
VOMS
GridFTP
JSAGA
6
Example – what happens behind
SAGA
job
user applications
wrapper
script
Globus
Gatekeep.
gsiftp
job
WMS
modified
JSAGA
VOMS
EGEE
proxy + attributes
translate
submit job
poll status
delegate transfer
JDL
RSL
DGrid
proxy
adapt + translate
submit job
receive status
transfer
– to any protocol
VOMS WMS GridFTP
LCG-CE
JSAGA
CREAM-CE
Globus GK
Unicore
7
interface
Layered software architecture
implementation
JSAGA
JSAGA
8
interface
Layered software architecture
user applications
SAGA
Java binding
JSAGA
core engine
JSAGA
JSAGA
adaptors interfaces
JSAGA
Used by end users
– web portals, GUI, CLI…
Used by application developers
– a single uniform interface
– object oriented, high-level
Implemented by adaptors
– each "way" to implement a
given feature has 1 interface
– service oriented, low-level
adaptors
middleware APIs
implementation
Implemented by middleware
– each technology has its own
interfaces
9
Layered software architecture
user applications
Used by end users
– web portals, GUI, CLI…
Used by application developers
– a single uniform interface
– object oriented, high-level
JSAGA
core engine
JSAGA
adaptor interfaces
adaptor
Globus GK
upload
data
get
output
get
status
Implemented by adaptors
– each "way" to implement a
given feature has 1 interface
– service oriented, low-level
adaptor
GridFTP
JSAGA
Implemented by middleware
– each technology has its own
interfaces
10
Layered software architecture
user applications
Used by end users
– web portals, GUI, CLI…
Used by application developers
– a single uniform interface
– object oriented, high-level
JSAGA
core engine
JSAGA
adaptor interfaces
adaptor
Globus GK
upload
data
get
output
get
status
Implemented by adaptors
– each "way" to implement a
given feature has 1 interface
– service oriented, low-level
adaptor
GridFTP
JSAGA
Implemented by middleware
– each technology has its own
interfaces
11
Layered software architecture
user applications
JSAGA
core engine
JSAGA
adaptor interfaces
adaptor
Globus GK
upload
data
Middleware API can be used
more efficiently
– engine selects best interface for
each user request
adaptor
GridFTP
JSAGA
get
output
get
status
Developing new adaptors is
easier
– just wrap functionalities
supported by middleware API
12
Supported technologies
local
ssh
naregi
cream
unicore6
wsgram
zip
file
ftp
sftp
https
http
irods
srb
cache
Physical
srm
gsiftp
rbyteio
catalog
irods
srb
lfn
X509
Login / pwd
SSH
JKS
VOMS
MyProxy
G. RFC820
G. Legacy
Globus
done
construction
JSAGA
planned
InMemCred
Security
Logical
rns
Data
gLite-WMS
gatekeeper
Execution
Minimal dependencies on
external libraries
external tools
– e.g. no gLite-UI
operating system
– tested on
13
Java-based Python SAGA wrapper
C Python
Jython
a user application
Python Bindings for SAGA
SAGA-C++Py
legacy python bind.
Boost wrapper
C++ Bindings for SAGA
SAGA-C++
?
JPySAGA
JySAGA
Java Bindings for SAGA
JSAGA
Java SAGA
Java GAT
JSAGA
14
Example applications
DIRAC (Distributed Infrastructure
with Remote Agent Control)
• the pilot jobs system of LHCb
experiment
JUX (Java Universal eXplorer)
• a multi-protocols extensible file
explorer
Pandora Gateway
• the grid platform of the
company
• a Grid/Cloud Computing
Business Services Provider
JSAGA
15
Example applications
Elis@
• web portal for industrial and
academic production grids
• software for simulation
experiment management
• includes a workflow engine that
uses JSAGA to run simulations
on grids
/
JJS (Java Job Submission)
• tools for submitting jobs to EGI
• resource selection based on
QoS observed while
submitting jobs
JSAGA
SimExplorer
jCAE (Java CAE)
• Computer Aided Engineering
with support for distributed
computing facilities
16
Perspectives
Develop new plug-ins
– NorduGrid middleware
• ARC plug-in in progress…
– LRMS (DRMAA-based)
• Grid Engine
– LRMS (CLI-based/ssh)
• torque
• Grid Engine
JSAGA
Develop API extensions
– Grid-RPC (from SAGA core)
– Service Discovery API (a
SAGA extension)
• with plug-ins for
technologies
– BDII
• with plug-ins for schemas
– GLUE
– CIM
17
Perspectives
job
Job submission
– principle
• describe user's job
• submit it to the grid
– middleware select the
execution host
– OGF standards
• BES, DRMAA, SAGA
– examples
JSAGA
Grid-RPC
Remote Procedure Call (RPC)
– principle
• deploy user's service on grid
• call a procedure
– middleware select the service
instance
– OGF standards
• Grid-RPC, SAGA
– examples
18
Future direction of interop.
Client and server sides interoperability are complementary
– Server-side interoperability efforts (in particular standardization)
are essential to slow down middleware APIs diversity
– But can we imagine server-side interoperability for all kind of
distributed resources ?
• HPC/HTC
• academic/industrial grids
• international/regional grids
• clusters, SSH server, local host
• RPC grids, desktop grids, clouds
• next technologies…
– Server-side interoperability depends on middleware and resource
providers only
• with client-side interoperability, (advanced) users can integrate
themselves resources they need to access
• …and share their contribution with others !
JSAGA
19
JSAGA
20