Tools to Build Clients.

Slides:



Advertisements
Similar presentations
James Gallagher OPeNDAP 1/10/14
Advertisements

Database Architectures and the Web
Ruby (on Rails) CSE 190M, Spring 2009 Week 3. Web Programming in Ruby Ruby can be used to write dynamic web pages Similar to PHP, chunks of Ruby begins.
Remote Procedure Call Design issues Implementation RPC programming
Oracle9i Database Administrator: Implementation and Administration 1 Chapter 2 Overview of Database Administrator (DBA) Tools.
Streaming NetCDF John Caron July What does NetCDF do for you? Data Storage: machine-, OS-, compiler-independent Standard API (Application Programming.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Remote Procedure Call in SR Programming Language By Tze-Kin Tsang 3/20/2000.
16/22/2015 2:54 PM6/22/2015 2:54 PM6/22/2015 2:54 PMObject-Oriented Development Concept originated with simulating objects and their interactions. Adapted.
(Remote Access Security) AAA. 2 Authentication User named "flannery" dials into an access server that is configured with CHAP. The access server will.
Chapter 8: Network Operating Systems and Windows Server 2003-Based Networking Network+ Guide to Networks Third Edition.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
University of Illinois at Urbana-ChampaignHDF 1McGrath/Yang 2/27/02 Transitioning from HDF4 to HDF5 Robert E. McGrath Kent Yang.
Intelligent Tutoring System Mobile Communication Team Drew Boatwright Nakul Dureja Richard Liou.
Classes and Class Members Chapter 3. 3 Public Interface Contract between class and its clients to fulfill certain responsibilities The client is an object.
1 3 Web Proxies Web Protocols and Practice. 2 Topics Web Protocols and Practice WEB PROXIES  Web Proxy Definition  Three of the Most Common Intermediaries.
MCSE Guide to Microsoft Exchange Server 2003 Administration Chapter Four Configuring Outlook and Outlook Web Access.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Coverages and the DAP2 Data Model James Gallagher.
Contrasting styles of Web UI Development: GWT vs Native JavaScript Roland Schweitzer Weathertop Consulting, LLC Jeremy Malczyk JISAO.
Oracle 10g Database Administrator: Implementation and Administration Chapter 2 Tools and Architecture.
Andrew S. Budarevsky Adaptive Application Data Management Overview.
Integrating netCDF and OPeNDAP (The DrNO Project) Dr. Dennis Heimbigner Unidata Go-ESSP Workshop Seattle, WA, Sept
Server-Side Functions. Contents Background on DAP2 and Constraints Writing Server Functions: short version Programming with libdap A Real Server Function.
DAP4 James Gallagher & Ethan Davis OPeNDAP and Unidata.
Easily Serving and Accessing HDF-EOS2 Datasets Using DODS Technologies Richard Chinman, UCAR-IITA, DODS Project Manager
Remote Data Access with OPeNDAP Dr. Dennis Heimbigner Unidata netCDF Workshop October 25, 2012.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
Information Technology: GrADS INTEGRATED USER INTERFACE Maps, Charts, Animations Expressions, Functions of Original Variables General slices of { 4D Grids.
FSM – ConfDB Integration FW WG Meeting 17 th March, 2006 Fernando Varela Rodriguez, IT-CO (with the input from: Clara, Alex, Sascha, Piotr and Francisca)
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
PDAC-10 Middleware Solutions for Data- Intensive (Scientific) Computing on Clouds Gagan Agrawal Ohio State University (Joint Work with Tekin Bicer, David.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Threads. Readings r Silberschatz et al : Chapter 4.
OPeNDAP Developer’s Workshop Feb Server-side Functions for Geo-spatial Selection James Gallagher 22 Feb 2007.
1 Introduction Read D&D Sec 1.8; Sec 1.13 THE Java tutorial -
9/21/04 James Gallagher Server-Side: The Basics This part of the workshop contains an overview of the two servers which OPeNDAP has developed. One uses.
TSDS (HPDE DAP). Objectives (1) develop a standard API for time series-like data, (2) develop a software package, TSDS (Time Series Data Server), that.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Parallel Virtual File System (PVFS) a.k.a. OrangeFS
DEPTT. OF COMP. SC & APPLICATIONS
Tiny http client and server
Copyright © Jim Fawcett Spring 2017
DAP+NETCDF Using the netCDF-4 Data Model
Checking the Server.
Clients.
CS533 Concepts of Operating Systems
Other Services in Hyrax
Efficiently serving HDF5 via OPeNDAP
Organization of Programming Languages
OpenStorage API part II
Checking the Server.
Best Angular 2 interview questions and Answer that have been designed for Angular 2 programmers who are preparing online interviews on Angular 2 interviews question. Visit Website:
Chapter 3: Windows7 Part 4.
This pointer, Dynamic memory allocation, Constructors and Destructor
Java Programming Language
Access HDF5 Datasets via OPeNDAP’s Data Access Protocol (DAP)
Chapter 40 Remote Method Invocation
Lecture Topics: 11/1 General Operating System Concepts Processes
Accessing Remote Datasets through the netCDF interface.
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
Elena Pourmal The HDF Group HDF Workshop July 17, 2018
ExPLORE Complex Oceanographic Data
Java Remote Method Invocation
Jim Fawcett CSE687 – Object Oriented Design Spring 2014
Future Development Plans
OPeNDAP/Hyrax Interfaces
Adapting an existing web server to S3
L. Glimcher, R. Jin, G. Agrawal Presented by: Leo Glimcher
Presentation transcript:

Tools to Build Clients

Toolkits based on C/C++ Libdap C++ library, the reference implementation of DAP2 Ocapi C library, client side only Libnc-dap Build clients using netCDF Loaddap Build clients using either Matlab or IDL

Two types of Clients Built using DAP implementations Complete access to all data sets served Well matched to network I/O operations Can be confusing to use - not intended for casual use Built using non-DAP APIs Easy APIs to use because many people are familiar with them - designed to be suited to application domains Not well matched to all data sets - data model mis-match between the API and the DAP2

Libdap C++ Basic use model: open a ‘connection’ to a server Get the data set’s metadata Access data Close connection

Libdap Connect Class Provides the interface for most client access The Connect constructor method is used to ‘connect’ to a URL Four methods are used to get the DAS, DDS, DDX and Data responses Other methods control miscellaneous features: Configure client-side caching Set username and password credentials Establish whether the client can process compressed responses Get the server/protocol version given a virtual connection has been established

Libdap example Look at libdap’s Connect.h source file for the complete interface to Connect The getdap client uses Connect Look at the libdap source file getdap.cc ‘name’ below is the URL minus any CE

Get a Response - How getdap gets the DDS The request. ‘expr’ is the constraint expression passed in using ‘-c’. The DDS object is a value-result parameter Getdap just prints the DDS using the DD::print() method

Getdap access data in much the same way… The data request. Note that the DDS is a value-result parameter here too. However the variables in this DDS are loaded with data The print_data function handles access to the data values

More about using libdap Responses from the ‘get’ methods of Connect are libdap container classes DAS: Semantic metadata; access values using methods bound to the DAS class DDS: Syntactic metadata; access name and type information for the dataset Data: Also returned using a DDS, but now the variables hold data

About Connect’s Get Methods DDS -vs- Data: The syntactic metadata is represented using a DDS object with variables that are instances of classes which specialize BaseType Or, think of the DDS/Variables objects as a parse tree typical of a compiler or interpreter This tree is used to record/express the variables’ types and their relationships

Where data resides In the DDS ‘parse tree’ data can be held in the variables. Accessor methods can be used to read values out. These Accessors behave like most data read functions (stdio’s read(), netCDF’s get_var(), et c.) providing data in blocks of memory.

Client APIs Summary C++ is hard(er) to use for many people, but the basic mode of operation for libdap (C++) and Ocapi ( C) is the same: Open Read Close The read operation used for our interfaces are very similar to those used with netCDF, HDF4, HDF5 Grab the metadata, look at the types, allocate memory, read data per variable. DAP APIs (libdap, Ocapi) provide a way to read several variables at once (optimized for network I/O), but the concepts are really the same.