Refactoring the EarthGrid SOAP API to REST style and implementing it to Metacat Serhan Akın Ph.D. candidate in Earth System Sciences Institute of Earth Sciences Istanbul Technical University Mentors: Matt Jones, Mark Servilla Cyberinfrastructure Summer Internships
Motivation Development of open source eco-informatics technologies such as Earthgrid API and Metacat which have high value for ecological community by providing flexible and accessible storage systems for data and metadata. In particular this project will make Earthgrid API more straightforward and so more desirable. Working with the people who is developing such technologies will be a good step in my academic career. 2
Earthgrid API (a.k.a. Ecogrid ) A SEEK project that allows diverse environmental data systems to interoperate ◦ Provides lightweight interfaces on top of complex data management systems ◦ Similar to EML data standardization, need for standard APIs ◦ Integrate diverse data networks from different fields 3
Earthgrid API Query ServiceGet ServicePut Service Authentication Service Identifier Service Search metadata and data, return result sets Retrieve data objects by Identifier Data object creation and modification Verify user identity Provide management on data object identifiers 4
Earthgrid API Existing Earthgrid API is a SOAP API which means all communications are based on standard XML message envelopes. Using “RESTful” technology instead of SOAP based will provide some significant benefits. 5
REST vs SOAP REST stands for Representational State Transfer an "architectural style" that basically exploits the existing technology and protocols of the Web ◦ SOAP based web services are often complex to implement and use, ◦ REST style architecture that provides human readable URLs, easiness to build lightweightness 6
RESTful Earthgrid API: Get Service Example URL Resource Data Management Server URL 7 Data Object ID
Interoperability Gains A standard and straightforward interface to access multiple servers Hides complexities of underlying systems Easy to implement and maintain for data providers: ◦ Apache AXIS tool is needed in Metacat for the SOAP API. 8
Earthgrid API Implementation Earthgrid API Get ServiceQuery ServicePut Service Authentication Service Identifier Service Implementation Layer Data Management System Native Services Client 9 Data Provider Server
Earthgrid API Implementation Completed implementation of REST API to Metacat is a prototype to explore its effectiveness It can be implemented to the other systems like Mercury and Dryad. It will also be a basis for the first prototypes of VDC REST API which is currently being developed. 10
VDC API and Earthgrid REST API Eartgrid API services cover these VDC APIs Authentication Service - Authentication API Authenticated Query/ Get Service - Authorization API Put Service - CRUD API Query / Get Services - Query API 11
VDC API and Earthgrid REST API However, VDC API has a quite different server side architecture ◦ Member / Coordinating nodes ◦ Server Authentication API ◦ Replication API ◦ Capabilities API ◦ State of Health API 12
Future Works Earthgrid API should be implemented to the other systems and it should be revised regarding needs for further features. Also, should be enhanced to cover all VDC API functionalities. 13
Conclusion Learnt code base of Metacat. Gained experience on several tools such as JUnit, SVN and Apache Axis. Met with new people developing eco- informatics technologies and benefited from their valuable experiences. 14
Thanks! 15