OPeNDAP’s Server4: Building a High Performance Data Server for the DAP Using Existing Software James Gallagher*, Nathan Potter*, Patrick West**, Jose Garcia**

Slides:



Advertisements
Similar presentations
1 Copyright © 2002 Pearson Education, Inc.. 2 Chapter 1 Introduction to Perl and CGI.
Advertisements

COM vs. CORBA.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Hyrax Installation and Customization ESIP ‘08 Summer Meeting Best Practices in Services and Data Interoperability Dan Holloway James Gallagher.
OPeNDAP’s Server4 Building a High Performance Data Server for the DAP Using Existing Software Building a High Performance Data Server for the DAP Using.
® OGC Web Services Initiative, Phase 9 (OWS-9): Innovations Thread - OPeNDAP James Gallagher and Nathan Potter, OPeNDAP © 2012 Open Geospatial Consortium.
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
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.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Technical Architectures
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
Hyrax Installation and Customization Dan Holloway James Gallagher.
INTRODUCTION TO WEB DATABASE PROGRAMMING
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 24 – Web Servers (PWS, IIS, Apache, Jigsaw) Outline 24.1Introduction 24.2Microsoft Personal.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Hyrax Architecture Two cooperating processes: –Front-end provides DAP interface –Back-end reads data Both parts can be customized –Front-end: different.
Adapting Legacy Computational Software for XMSF 1 © 2003 White & Pullen, GMU03F-SIW-112 Adapting Legacy Computational Software for XMSF Elizabeth L. White.
Chapter 4: Core Web Technologies
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2.
Introduction to J2EE Architecture Portions by Kunal Mehta.
ITIS 1210 Introduction to Web-Based Information Systems Chapter 23 How Web Host Servers Work.
OPeNDAP Developer’s Workshop Feb OPeNDAP 4 Data Server – Hyrax James Gallagher and Nathan Potter 21 Feb 2007.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Computer Emergency Notification System (CENS)
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Ocean Observatories Initiative Data Management (DM) Subsystem Overview Michael Meisinger September 29, 2009.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
DAP Servers and Services Section 2 APAC ‘07 OPeNDAP Workshop 12 Oct 2007 James Gallagher Thanks to Jennifer Adams, John Caron, Roberto De Almeida, Nathan.
ASP.NET in Definition: 1.ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites,
OPeNDAP Hyrax Harnessing the power of the BES OPeNDAP Hyrax Back-End Server Patrick West
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
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.
Steven Perry Dave Vieglais. W a s a b i Web Applications for the Semantic Architecture of Biodiversity Informatics Overview WASABI is a framework for.
Electronic Commerce Semester 1 Term 1 Lecture 7. Introduction to the Web The Internet supports a variety of important tools, such as file transfer, electronic.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
1 Earth System Grid Center for Enabling Technologies OPeNDAP Services for ESG March 9, 2016 Peter Fox, Patrick West, Stephan Zednik RPI Performance Measures.
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.
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
Java Web Services Orca Knowledge Center – Web Service key concepts.
J2EE Platform Overview (Application Architecture)
Using Community-Driven Metadata Conventions with On-Line Data
Netscape Application Server
WEB SERVICES.
Self Healing and Dynamic Construction Framework:
Other Services in Hyrax
Enterprise Application Architecture
Future Development Plans
OPeNDAP’s Server4: Building a High Performance Data Server for the DAP
OPeNDAP/Hyrax Interfaces
Web Application Development Using PHP
Presentation transcript:

OPeNDAP’s Server4: Building a High Performance Data Server for the DAP Using Existing Software James Gallagher*, Nathan Potter*, Patrick West**, Jose Garcia** and Peter Fox** *OPeNDAP, Inc., **NCAR/ESSL/HAO OLFS Java Servlet Engine BES Unix Daemon BES Commands XML- encapsulated object File system with data files, SQL Database, … DAP2 THREDDS HTML Optional THREDDS catalogs Network Protocol and Process start/stop activities Data Store Interfaces BES Framework PPT* Initialization/ Termination DAP2 Access NetCDF3HDF4FreeForm … Data Catalogs Commands** BES BES Commands/ XML Documents OPeNDAP has been working in conjunction with NCAR/ESSL/HAO to develop a modular, high performance data server that will be the successor to the current OPeNDAP data server. The new server, called Server4, is really two servers: A 'Back-End' data server which reads information from various types of data sources and packages the results in DAP objects; and A 'Front-End' which receives client DAP request and then decides how use features of the Back-End data server to build the correct responses. This architecture can be configured in several interesting ways: The Front- and Back-End components can be run on either the same or different machines, depending on security and performance needs, new Front-End software can be written to support other network data access protocols and local applications can interact directly with the Back-End data server. This new server's Back-End component will use the server infrastructure developed by HAO for use with the Earth System Grid II project. Extensions needed to use it as part of the new OPeNDAP server were minimal. The HAO server was modified so that it loads 'data handlers ユ at run-time. Each data handler module only needs to satisfy a simple interface which both enables the previously existing data handlers written for the old OPeNDAP server to be used and also simplifies writing new handlers from scratch. The Back-End server leverages high-performance features developed for the ESG II project, so applications that can interact with it directly can read large volumes of data efficiently. The Front-End module of Server4 uses the Java Servlet system in place of the Common Gateway Interface (CGI) used in the past. New front-end modules can be written to support different network data access protocols, so that same server will ultimately be able to support more than the DAP/2.0 protocol. As an example, we will discuss a SOAP interface that's currently in development. In addition to support for DAP/2.0 and support for a protoype SOAP interface, the new server includes support for the THREDDS cataloging protocol. THREDDS is tightly integrated into the Front-End of Server4. The Server4 Front-End can make full use of the advanced THREDDS features such as attribute specification and inheritance, custom catalogs which segue into automatically generated catalogs as well as providing a default behavior which requires almost no catalog configuration. Abstract The essential features of Server4 are:  Two process design can be adapted to a variety of different configurations  The server supports several different application protocols for different types of information  Formal communication between the processes (to be published soon) will enable other groups to write their own front-ends The OPeNDAP Lightweight Front end Server (OLFS) is the first of the two processes which make up Server4. The OLFS is implemented in the Java programming language using the Java Servlet (J2EE) technology. The functions carried out by the OLFS are limited to examining the incoming request, passing that request to another process or servlet and packaging the result so that it is a correctly-formatted response. The OLFS does not need to interpret the content of the client requests or BES responses, only how to encapsulated them in different types of MIME, SOAP, or XML documents. In addition to support for OPeNDAP’s Data Access Protocol, version 2 (DAP2), the OLFS provides support for: THREDDS data catalogs HTML directory pages A prototype SOAP interface for DAP (aka DAP4) The OLFSThe BES The OLFS support for DAP2 is dependent on the functions which are provided by the Back End Server (BES). When the OLFS receives a DAP2 data or metadata request, it recasts that request in terms of commands that can be sent to the BES. The BES’s response is then packaged in a MIME document for transmission back to the client program. THREDDS support in the OLFS takes two forms. First, the OLFS uses a THREDDS catalog to store the bulk of the front end ユ s configuration information. The OLFS also uses the THREDDS Java class library to handle requests for THREDDS catalogs. Data providers can configure the OLFS to return hand written catalogs, automatically generated catalogs, or a mixture of both. The hand-written catalogs are stored on the computer that runs the OLFS; the automatically generated catalogs are built on demand by asking the BES for catalog information. THREDDS catalogs are available as XML documents and as HTML for use with a web browser. The OLFS also provides an updated version of OPeNDAP Server3 data directories. These directories are HTML pages which can be navigated in a web browser. Unlike Server3 ユ s pages, these pages are dynamically generated by the Server4 software, are not dependent on the host computer ユ s web daemon or servlet engine. Clients can switch between the two directory listing types and the OLFS can easily be configured to use one or the other by default. The OLFS also provides an ideal platform to experiment with different data access techniques. The first implemented is a prototype SOAP/DAP4 interface. This interface, although still in a prototype phase, provides several improvements over the older DAP2 interface. It provides a way to request both forms of metadata (syntactic and semantic) in a single XML document, an XML/Multipart-MIME documents response for data and request pooling so that several requests (and their responses) can be pooled and sent to the server in a single network transaction. Other application protocol interfaces are certainly possible and the formalization of the BES communication protocol should simplify their development by groups other than OPeNDAP. We choose to implement the OLFS using Java Servlets because those provide a good balance between: Increased performance Ease of installation Security features Code reuse The BES is a framework for developing high performance data servers developed at the High Altitude Observatory of NCAR/ESSL. The BES ユ s essential feature is that virtually all of its functionality is implemented through plugin modules loaded at run- time. This provides a way to combine software components developed for different projects into a new data server. The BES supports three main types of plugin modules: Network protocol and initialization/termination modules Command modules Format modules As delivered for use with the OLFS, the BES includes a PPT network protocol module, DAP and data store catalog command modules, and a number of format modules. The different types of modules are defined by C++ classes which describe the interface that a particular module must implement. Specializations of these classes are compiled to shared-object libraries and loaded by the BES at run-time using information in the BES configuration file. The BES has more advanced memory management than the Server3 software, which is needed for large data requests. The BES includes support for SSL authentication, although this is not currently accessible through the OLFS. Availability/Features  Beta release of version 1.4 on 18 December 2006, see  Coordinated release of data format handlers for:  NetCDF3 (including large file support)  HDF4  FreeForm  An early version of our HDF5 handler  Other handlers to follow Support  Use the mail list (join at  Or, send a message to Presented at the Fall 2006 AGU meeting, San Francisco, CA. Development of Server4 by OPeNDAP funded by NSF with the generous assistance of NCAR/ESSL/HAO. Reused software components developed using funding from NASA, NOAA and DOE by OPeNDAP, NCAR/ESSL/HAO and others. DAP2 Request/Reply Logic Java Servlet Engine THREDDS R/R Logic HTML R/R Logic SOAP-DAP R/R Logic DAP2 BES Commands/ XML Documents OLFS THREDDS HTML SOAP Background In 1993 the University of Rhode Island began a NASA-funded effort to develop a data system for ocean data that would take advantage of the Internet. Out of that effort, the Data Access Protocol, a server implementing the protocol and several compatible client applications were developed. The data server was based on the Common Gateway Interface (CGI) used for many web-based interfaces, largely because of the simplicity of those types of systems. As the use of the server spread, its limitations became more apparent. At the same time, other issues with the data system became apparent and new work was started to address those issues (such as metadata non-uniformity, searching difficulty and collection organization). Server4 is one aspect of that work. Its goals are to make it easier to solve these problems and to reuse as much of our (and others’) existing DAP-compliant software as possible. Software reuse is an important part of the Server4 effort. Since the start of work on the DAP, significant effort has been made developing DAP-compliant server software (client software too, although that is not the focus of this poster) and to make a new server we needed to use as much of that work (and knowledge) as possible. In the OLFS, the THREDDS implementation is 100% from the Unidata THREDDS library. Other elements were written new for this project. In the BES, the framework itself is an extended version of the Earth System Grid II data server developed by NCAR/ESSL/HAO. It represents about 70% reuse. The BES Format Modules are about 5% new software with the remaining 95% reused from the Server3 ‘Data Handlers’ (in fact the source code distributions for the format modules still build the Server data handlers too). The PPT modules used by both the BES and OLFS are inherited from the ESG II project Software Reuse By using THREDDS catalogs, Server4 is taking advantage of the development effort of Unidata, Inc. (part of UCAR) and its progress on data organization. The BES is the result of the Earth System Grid II project’s needs for a high performance data server which could subset data. By using this software as a basis for Server4, we inherit a platform designed for high performance without the expense of its development. This is higher performance is an important element of Server4. *PPT protocol support is built into the BES **A small set of basic commands such as ‘show help’ are built in.