The OGSA-DAI Client Toolkit The OGSA-DAI Team

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming Lecture 10 API Review; Where Next.
Advertisements

© 2007 Open Grid Forum Data Management Challenge - The View from OGF OGF22 – February 28, 2008 Cambridge, MA, USA Erwin Laure David E. Martin Data Area.
A PPARC funded project AstroGrid and OGSA-DAI: Early experiences Kona Andrews Guy Rixon Institute of Astronomy University of Cambridge.
Open Grid Service Architecture - Data Access & Integration (OGSA-DAI) Dr Martin Westhead Principal Consultant, EPCC Telephone: Fax:+44.
An Overview of OGSA-DAI Kostas Tourlas
“Workflow” in Data Access and Integration An OGSA-DAI/DAIS Perspective Mario Antonioletti EPCC
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
OGSA-DAI Lectures Part 2 Tom Sugden, EPCC 2 nd International Summer School on Grid Computing, Vico Equense, Italy.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Amy Krause Applications Consultant, EPCC Tom Sugden Applications Consultant, EPCC OGSA-DAI Client Toolkit Principles.
1 Java Networking – Part I CS , Spring 2008/9.
Inside the GDS The Engine, Activities, Data Resource Implementations and Role Mapping EPCC, University of Edinburgh Tom Sugden First.
NextGRID & OGSA Data Architectures: Example Scenarios Stephen Davey, NeSC, UK ISSGC06 Summer School, Ischia, Italy 12 th July 2006.
CS3771 Today: network programming with sockets  Previous class: network structures, protocols  Next: network programming Sockets (low-level API) TODAY!
1 An Introduction to OGSA-DAI Konstantinos Karasavvas 13 th September 2005.
Writing Perform Documents EPCC, University of Edinburgh Amy Krause ( Tom Sugden First International Summer.
Mike Jackson EPCC OGSA-DAI Today Release 2.2 Principles and Architectures for Structured Data Integration: OGSA-DAI.
Integration case study Week 8 – Lecture 1. Enrolment request (Workstation) Application server Database server Database New University Student Record System.
17 July 2006ISSGC06, Ischia, Italy1 Agenda Session 26 – 14:30-16:00 An Overview of OGSA-DAI OGSA-DAI today – and future features How to extend OGSA-DAI.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
SQL Server 2000 and XML Erik Veerman Consultant Intellinet Business Intelligence.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
An program As a simple example of socket programming we can implement a program that sends to a remote site As a simple example of socket.
1 OGSA-DAI: Status and Future Plans Neil Chue Hong.
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Database Programming in Java Corresponds with Chapter 32, 33.
Presented by Robert Zaremba.  Remote messages must be sent to a message queue so that components are decoupled  Both sides of a communication must be.
1 Dr. Markus Hillenbrand, ICSY Lab, University of Kaiserslautern, Germany A Generic Database Web Service for the Venice Service Grid Michael Koch, Markus.
Data Management Kelly Clynes Caitlin Minteer. Agenda Globus Toolkit Basic Data Management Systems Overview of Data Management Data Movement Grid FTP Reliable.
WSRF Supported Data Access Service (VO-DAS)‏ Chao Liu, Haijun Tian, Dan Gao, Yang Yang, Yong Lu China-VO National Astronomical Observatories, CAS, China.
ITIS 1210 Introduction to Web-Based Information Systems Chapter 23 How Web Host Servers Work.
Web Services Week 7 Aims: A detailed look at the underlying mechanisms for communication between web services Objectives: SOAP, WSDL, UDDI.
OGSA-DAI User Guide The OGSA-DAI Team
ES Metadata Management Enabling Grids for E-sciencE ES metadata OGSA-DAI NA4 GA Meeting, D. Weissenbach, IPSL, France.
Open Data Protocol * Han Wang 11/30/2012 *
Creating Dynamic Web Pages Using PHP and MySQL CS 320.
OGSA-DAI Architecture The OGSA-DAI Team
Java + XML. Java 2 Enterprise Edition Server Side java Servlets JSP JavaBeans Web Services Database jdbc.
Application code Registry 1 Alignment of R-GMA with developments in the Open Grid Services Architecture (OGSA) is advancing. The existing Servlets and.
ILDG Middleware Status Chip Watson ILDG-6 Workshop May 12, 2005.
OGSA-DAI in OMII-Europe Neil Chue Hong EPCC, University of Edinburgh.
1 1 EPCC 2 Curtin Business School & Edinburgh University Management School Michael J. Jackson 1 Ashley D. Lloyd 2 Terence M. Sloan 1 Enabling Access to.
WEB/DB1 DATABASE PROGRAMMING 3JDBC by the ASU Scholars.
Overview Web Session 3 Matakuliah: Web Database Tahun: 2008.
Jsp (Java Server Page) Is a server side program.
Data access and integration with OGSA-DAI: OGSA-DQP Steven Lynden University of Manchester.
INFSO-RI Enabling Grids for E-sciencE OGSA DAI Data Access and Integration Marek Ciglan Institute of Informatics, Slovac Academy.
State Key Laboratory of Resources and Environmental Information System China Integration of Grid Service and Web Processing Service Gao Ang State Key Laboratory.
Mike Jackson EPCC OGSA-DAI Architecture + Extensibility OGSA-DAI Tutorial GGF17, Tokyo.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
Amy Krause EPCC OGSA-DAI An Overview OGSA-DAI Technology Update GGF17, Tokyo (Japan)
JDBC. Java.sql.package The java.sql package contains various interfaces and classes used by the JDBC API. This collection of interfaces and classes enable.
Reliable File Transfer: Lessons Learned Bill Allcock, ANL Ravi Madduri, ANL.
12/6/2015B.Ramamurthy1 Java Database Connectivity B.Ramamurthy.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
1 Introduction to Servlets. Topics Web Applications and the Java Server. HTTP protocol. Servlets 2.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
The OGSA-DAI Project Databases and the Grid Neil Chue Hong Project Manager EPCC, Edinburgh
Mike Jackson EPCC OGSA-DAI Today – Release 8 OGSA-DAI Tutorial GGF17, Tokyo.
Fundamentals of MyBATIS
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
1 OGSA-DAI: Service Grids Neil P Chue Hong. 2 Motivation  Access to data is a necessity on the Grid  The ability to integrate different data resources.
Data Breakout. OGSA Architecture – databases Eldas, OGSA-DAI and GridMiner implement a slightly old version of OGSA / DAIS –Architecture doc describes.
OGSA-DAI.
FILE TRANSFER SPEEDS OVER HTTP AND FTP Yibiao Li 06/01/2009 Christmas Meeting 2008/09.
Amy Krause EPCC OGSA-DAI An Overview OGSA-DAI on OMII 2.0 OMII The Open Middleware Infrastructure Institute NeSC,
Beyond HTTP Up to this point we have been dealing with software tools that run on browsers and communicate to a server that generates files that can be.
Client Access, Queries, Stored Procedures, JDBC
A Web-Based Data Grid Chip Watson, Ian Bird, Jie Chen,
Java Database Connectivity
Presentation transcript:

The OGSA-DAI Client Toolkit The OGSA-DAI Team

2 Overview  The Client Toolkit  OGSA-DAI Service Types  Locating and Creating Data Services  Requests and Results  Delivery of Data  Data Integration

3 Why use a Client Toolkit?  Nobody wants to write XML!  Users aren’t concerned about the connection mechanism  Protects developer from –Changes in activity schema –Changes in service interfaces –Low-level APIs –DOM manipulation

4 OGSA-DAI Services  OGSA-DAI uses three main service types –DAISGR (registry) for discovery –GDSF (factory) to represent a data resource –GDS (data service) to access a data resource accesses represents DAISGR GDSF GDS Data Resource locates creates

5 ServiceFetcher  The ServiceFetcher class creates service objects from a URL ServiceGroupRegistry registry = ServiceFetcher.getRegistry( registryHandle ); GridDataServiceFactory factory = ServiceFetcher.getFactory( factoryHandle ); GridDataService service = ServiceFetcher.getGridDataService( handle );

6 Registry  A registry holds a list of service handles and associated metadata  For example, clients can query a registry for all registered Grid Data Factory Services GridServiceMetaData[] services = registry.listServices( OGSADAIConstants.GDSF_PORT_TYPE );  The GridServiceMetaData object contains the handle and the port types that the factory implements String handle = services[0].getHandle(); QName[] portTypes = services[0].getPortTypes();

7 Creating Data Services  A factory object can create a new Grid Data Service. GridDataService service = factory.createGridDataService();  Grid Data Services are transient (i.e. have finite lifetime) so they can be destroyed by the user. service.destroy();

8 Interaction with a GDS Client GDS Activity Request Activity  Client sends a request to a data service  A request contains a set of activities

9 Interaction with a GDS Client GDS Result Response Result  The Data service processes the request  Returns a response document with a result for each activity

10 Activities and Requests  A request contains a set of activities  An activity dictates an action to be performed –Query a data resource –Transform data –Deliver results  Data can flow between activities HTML data web rowset data SQL Query Statement XSLT Transform Deliver ToURL

11 Examples of Activities  SQLQuery SQLQuery query = new SQLQuery( "select * from littleblackbook where id='3475'");  XPathQuery XPathQuery query = new XPathQuery( );  XSLTransform XSLTransform transform = new XSLTransform();  DeliverToGFTP DeliverToGFTP deliver = new DeliverToGFTP( "ogsadai.org.uk", 8080, "myresults.txt" );

12 Simple Requests  Simple requests consist of only one activity  Send the activity directly to the perform method SQLQuery query = new SQLQuery( "select * from littleblackbook where id='3475'"); Response response = service.perform( query );

13 Constructing an ActivityRequest SQL Query Statement XSLT Transform Delivery ToURL ActivityRequest add

14 Constructing a Request cont. SQL Query Statement XSLT Transform Delivery ToURL ActivityRequest ActivityRequest request = new ActivityRequest(); request.add( query ); request.add( transform ); request.add( delivery );

15 Data Flow  Connecting activities SQLQuery query = new SQLQuery( "select * from littleblackbook where id<=1000"); DeliverToURL deliver = new DeliverToURL( url ); deliver.setInput( query.getOutput() ); SQL Query Statement Deliver ToURL

16 Performing Requests  Finally… perform the request! Response response = service.perform( request );  The response contains status and results of each activity in the request. System.out.println( response.getAsString() );

17 Processing Results  Varying formats of output data –SQLQuery JDBC ResultSet: ResultSet rs = query.getResultSet(); –SQLUpdate Integer: int rows = update.getModifiedRows(); –XPathQuery XML:DB ResourceSet: ResourceSet results = query.getResourceSet();  Output can always be retrieved as a String String output = myactivity.getOutput().getData();

18 Delivery  Data can be pulled from or pushed to a remote location.  OGSA-DAI supports third-party transfer using FTP, HTTP, or GridFTP protocols. DeliverToURL deliver = new DeliverToURL( url ); deliver.setInput( myactivity.getOutput() ); DeliverToGFTP deliver = new DeliverToGFTP( “ogsadai.org.uk”, 8080, “tmp/data.out” ); deliver.setInput( myactivity.getOutput() );

19 Delivery Methods Web Server GDS GridFTP server Local Filesystem FTP server DeliverFromURL DeliverTo/FromURL DeliverTo/FromGFTP DeliverTo/FromFile DeliverTo/FromStream DeliverTo/FromSMTP

20 Delivery Activities  The DeliverFromURL and DeliverToURL activities transfer data to/from a remote location. DeliverFromURL deliver = new DeliverFromURL( url ); myactivity.setInput( deliver.getOutput() );  Supported protocols are http, ftp, and file.  Other delivery activities: –DeliverFromGFTP/DeliverToGFTP –DeliverToStream

21 Delivering data to another GDS  The GDT port type allows to transfer data from one data service to another.  Push: A DeliverToGDT activity of GDS1 connects to an InputStream activity of GDS2  Pull: Alternatively, an OutputStream activity can be connected to a DeliverFromGDT activity InputStream GDS1 GDS2 DeliverToGDT

22 Delivering Data  Transfer in blocks or in full  InputStream activities wait for data to arrive at their input –Therefore, the InputStream activity at the sink has to be started before the DeliverToGDT activity at the source  OutputStream activity waits for data to be read from its output –OutputStream activity at the source must be started before DeliverFromGDT at the sink

23 Data Integration Scenario GDS2 GDS3 Relational Database Relational Database GDS1 Relational Database Client select + output stream select + output stream deliver deliver from GDT bulk load join tables

24 Conclusion  Easy to use –No XML! –Less low-level APIs –Improves usability and shortens learning curve for client development  Protects developer –Shielded from schema changes, protocols, etc –Deprecation policy needed  Limitations –Metadata and service-data not yet addressed adequately –Higher-level abstraction possible (no factory)