5 November 2004 www euegee org WS Engines
5 November 2004 www. eu-egee. org WS Engines evaluation: a progress report Laura Bocchi, Andrea Ceccanti EGEE is a project funded by the European Union under contract INFSO-RI-508833 Copyright (c) Members of the EGEE Collaboration. 2004.
Overview • We are evaluating different WS engines according to: Usability • Easiness of installation and usage • Documentation • Presence of support tools for developers Conformance to standards (interoperability) Correctness Performance Licence (Security) • We assume a Linux platform • We need to support C++ services (i. e. , the WMS) JRA 1 IT-CZ Cluster Meeting, Torino, 5/11/2004 - 2
WS Engines • Commercial: Systinet C++ WS engine • http: //www. systinet. com Lightweight Enterprise Integration Framework (LEIF) • http: //roguewave. com ? • Open source: Axis Java Axis C++ g. Soap Python Tools (soap. Py, ZSI (Zolera Soap Interface)) C# Tools on Mono (open source. NET implementation) ? JRA 1 IT-CZ Cluster Meeting, Torino, 5/11/2004 - 3
Ibrid solutions • Since we want to provide a WS interface to C++ services (i. e. , the WMS), we need either: a WS engine written in C/C++, or an ibrid solution that allows us to invoke WMS services from a different programming language • This can be done in Java using JNI/JACE in Python using boost: : python in C#. . . (we still don’t know) JRA 1 IT-CZ Cluster Meeting, Torino, 5/11/2004 - 4
JACE: JNI made easy • JACE a toolkit designed to make it easy to write JNI-based programs (everybody knows JNI is ugly) • JACE provides a C++ runtime library that: allows user to manipulate Java objects as if they are C++ objects manages the lifetime of Java references and binds C++ threads to the JVM maps Java exceptions to C++ exceptions • JACE provides Java tools to generate C++ Proxy and Peer classes starting from Java code Any Java object can be accessed any Java natice function can be implemented in C++ code JRA 1 IT-CZ Cluster Meeting, Torino, 5/11/2004 - 5
Jace overview • Proxy classes are used to access live Java objects services; • Peer classes are used to easily implement native methods declared in Java class definitions • Once you have Proxy and Peer classes, you just have to deal with plain C++ code JRA 1 IT-CZ Cluster Meeting, Torino, 5/11/2004 - 6
Using JACE • Basic WMS functionality: submit. Job(Classad JDL) cancel. Job(String job. ID) • Implement a Java wrapper class that have this methods declared as native • Use JACE to generate Peer and Proxy C++ classes • Implement the calls to the “real” WMS in C++ code • Deploy Java wrapper class on Axis Java JRA 1 IT-CZ Cluster Meeting, Torino, 5/11/2004 - 7
- Slides: 7