TDS Archictecture Dec 2008. HTTP Tomcat Server TDS is a data server Datasets motherlode.ucar.edu THREDDS Server NetCDF-Java library Remote Access IDD.

Slides:



Advertisements
Similar presentations
Java OSS Web Technologies By Dave Ford Introduction Purpose Describe Javas relationship to the OSS community Describe OSS tools used on recent project.
Advertisements

J2EE Architecture Overview
Streaming NetCDF John Caron July What does NetCDF do for you? Data Storage: machine-, OS-, compiler-independent Standard API (Application Programming.
THREDDS, CDM, OPeNDAP, netCDF and Related Conventions John Caron Unidata/UCAR Sep 2007.
Spring, Hibernate and Web Services 13 th September 2014.
7 +/- 2 Maybe Good Ideas John Caron June (1) NetCDF-Java (aka CDM) has lots of functionality, but only available in Java – NcML Aggregation – Access.
An architecture for webb applications, J2EE
Introduction to Java 2 Enterprise Edition About myself –Neutrinos, Cancer Research, IT Applications Today’s topic: J2EE –Context –Advantages –Components.
 Java  Python  Bigtable(Bt) is a distributed storage system for managing structured data that is designed to scale to a very large size.  Query Language.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
Chapter 13 Web Application Infrastructure. Objectives Explain the components and purpose of a web application platform Describe several common webapp.
Web-based Portal for Discovery, Retrieval and Visualization of Earth Science Datasets in Grid Environment Zhenping (Jane) Liu.
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
© Internna Technologies 1 IWebMvc Features, Possibilities & Goals.
Address - #22, 1 st Floor, Station View Road, Kodambakkam, Chennai JTech Soft Solutions Website:
Intro to Spring CJUG - January What is Spring? “The Spring framework provides central transaction control of various objects.” This means that any.
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
Lecture 2 - Struts ENTERPRISE JAVA. 2 Contents  Servlet Deployment  Servlet Filters  Model View Controllers  Struts  Dependency Injection.
Unidata TDS Workshop THREDDS Data Server Overview October 2014.
OPeNDAP and the Data Access Protocol (DAP) Original version by Dave Fulker.
The Spring Framework Training Get to know Spring Framework Rohit Prabhakar
Chapter 4: Core Web Technologies
HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004.
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
Unidata’s TDS Workshop TDS Overview – Part II October 2012.
OpusCollege and the use of Spring and iBatis
Unidata TDS Workshop TDS Overview – Part I XX-XX October 2014.
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
THREDDS Data Server Ethan Davis GEOSS Climate Workshop 23 September 2011.
NcML Aggregation vs Feature Collections. NcML functionality 1.Modify the objects found in CDM files – Especially Attributes – Don’t have to rewrite the.
Opus College - overview. OpusCollege - background First project: ICT Capacity Building Mozambican Higher Education Institutions Partners: RUG Groningen,
Unidata’s TDS Workshop TDS Overview – Part II Unidata July 2011.
Spring Framework. Spring Overview Spring is an open source layered Java/J2EE application framework Created by Rod Johnson Based on book “Expert one-on-one.
Accomplishments and Remaining Challenges: THREDDS Data Server and Common Data Model Ethan Davis Unidata Policy Committee Meeting May 2011.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
THREDDS Data Server Unidata’s Common Data Model Background / Summary John Caron Unidata/UCAR Mar 2007.
Introduction to Web Dimitar Nenchev Ivan Nakov
DAP4 James Gallagher & Ethan Davis OPeNDAP and Unidata.
Unidata TDS Workshop THREDDS Data Server Overview
Recent developments with the THREDDS Data Server (TDS) and related Tools: covering TDS, NCML, WCS, forecast aggregation and not including stuff covered.
Unidata’s Common Data Model and the THREDDS Data Server John Caron Unidata/UCAR, Boulder CO Jan 6, 2006 ESIP Winter 2006.
Spring Framework. About spring Spring is the most popular application development framework for enterprise Java. Millions of developers around the world.
Unidata’s TDS Workshop TDS Overview – Part I July 2011.
Enterprise Java Overview Panos Konstantinidis Java Developer JUG Leader & Java Champion
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
Page 1 R MVC Design Pattern Definition Properties Describing MVC design patterns.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Kansas City Java User’s Group Jason W. Bedell July 12, 2006
Chapter 9 Web Application Design. Objectives Describe the MVC design pattern as used with Web applications Explain the role and responsibilities of each.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
Singleton Academy, Pune. Course syllabus Singleton Academy Pune – Course Syllabus1.
Text 16 de mayo de 2009 Spring Framework Part III. Portable Service Abstractions and Spring MVC Buenos Aires, June 2009.
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
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.
Update on Unidata Technologies for Data Access Russ Rew
1.Education Overview JAVA EE 6 Technologies
THREDDS Data Server (TDS) and Data Discovery John Caron Unidata/UCAR May 15, 2006.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
Chapter 13 Web Application Infrastructure
J2EE Platform Overview (Application Architecture)
Unit 6-Chapter 2 Struts.
Intro to Spring CJUG - January 2013.
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
JavaServer Faces: The Fundamentals
Developing and testing enterprise Java applications
Presentation transcript:

TDS Archictecture Dec 2008

HTTP Tomcat Server TDS is a data server Datasets motherlode.ucar.edu THREDDS Server NetCDF-Java library Remote Access IDD Data HTTPServer NetcdfSubset WCS/WMS OPeNDAP configCatalog.xml catalog.xml RadarServer

TDS is not a … Portal Discovery service Content Management Service (CMS) Visualization service Other servers using TDS: – Ferret-TDS, CDP, ?? – IOOS CI (future?) – Hyrax (catalog creation)

Tomcat Architecture Catalina webapp servlet webapp servlet Coyote HTTP Connector Coyote AJP Connector Apache httpd aka context war file separate class loader

Tomcat thredds dodsC fileServer wcs ncss TDS Data Services Bulk File Transfer HTTP Server (any file) Remote access, subsetting CDM files OPeNDAP (any CDM file) Web Coverage Server (grids) NetCDF Subset Service (grids) Web Map Server (grids) (soon)

Case 1: dataset = file Assume a dataset maps to 1 file on disk Keep all such files in a small number of directory trees Keep track of data roots – Map(dataRoot, dirLocation)

Case 1: Mapping URLs to datasets {dataRoot}/{filePath} NetcdfDataset.open(dirLocation/filePath) Map(dataRoot, dirLocation)

Case 2 : Virtual datasets 1.Store additional metadata about the file – Discovery metadata in Catalog – Integrate directly into dataset (NcML) 2.Aggregate multiple files into a single dataset – Syntactic level (NcML) – Semantic level (FMRC, netCDF Subset Service)

Case 2: virtual datasets Map(datasetPath, ncmlElement) NcML.open( ncmlElement )

TDS configuration Read Configuration Catalogs – Map(dataRoot, dirLocation) – Map(datasetPath, ncmlElement) – Map(datasetPath, restrictedAccess)

Current Issues File Server not really integrated – need to be able to translate virtual dataset -> file NcML / Catalog XML are different – Catalog metadata may not match dataset metadata – Scanning mechanism for NcML different than for catalogScan Make Configuration easier

Big Issues Manage large / very large collections – Must be integrated with LDM – Must be integrated with scour – Database may be right thing to use – But lots of performance questions Semantic subsetting – Subsetting in coordinate space – Subsetting on data values

Dataset Granularity ( motherlode 30 day archive) NCEP models ( motherlode 30 day archive) – 31 datasets – ~10K files – ~100M GRIB records BUFR – ~50 datasets – 177 K messages / day – 6.7 M observations / day NEXRAD 2 : 738K files (volumes) (x10 sweeps) NEXRAD 3 : 16M files

Forecast Model Run Collection (FMRC)

NetCDF Subset Service Experiment with REST style web service Allow to subset the dataset by: – Lat/lon bounding box – time and vertical coordinate range – list of Variables NetCDF, XML, CSV (spreadsheet) Gridded Data – Output is a CF-1.0 netCDF file – Variation of WCS (simplified request protocol) Grid as Point Datasets (experimental) – Extract vertical profile, time series from one point in model data Station Data: metars (7 day rolling archive)

NEXRAD Radar level 2/3 Subset Service Allow to subset the dataset by: – Lat/lon bounding box – time range – list of Variables Returns THREDDS catalog – With OPeNDAP URLs

Apache Tomcat “Sweet spot” for server functionality – Lighter, simpler Java web application server – Not a full J2EE server Servlet container / JSP server – Standard API Reference implementation (pre 2.5) Part of Apache

Tomcat: The Definitive Guide, Jason Brittain (O’Reilley 2007)

Tomcat Features Thread Pools – manage multiple simultaneous connections Virtual Hosts Clustering and session replication Request processing pipeline – Filters and valves Compression

Tomcat Security Management Manage user authorization – Role based (assign users to roles) – Users in xml files, JNDI, rdbms, etc Authentication – Basic, digest, SSL – Auto redirect to secure port

Jetty 100% Java HTTP Server and Servlet Container “Jetty's claim to fame is that it is designed be embedded in other Java code” Many collaborations, active community production quality Large deployed base Commercially developed by Mort Bay Consulting Apache license

Glassfish Sun’s J2EE server GPL and commercial (Sun Java System Application Server 9) Branch of Tomcat 5 Grizzly HTTP Connector – Based on Java NIO for high performance Configuration GUI

J2EE Services JPA Java Persistence API – connect to database JTA transaction manager JMS Java Message Service EJB 3.0 Enterprise Java Beans JNDI naming and directory interface

Spring Framework Hibernate/Spring = better EJBs – Dominates new web development – JPA/EJB 3.0 are “JCP standards-based” imitations

Spring Framework Lightweight framework for gluing components together – Uses Dependency Injection (IoC = inversion of control) – Encourages separation of concerns and other Software best practices. – Application code does not depend on Spring – Spring managed beans / POJOs Used both for J2SE and J2EE development

Spring Components Data Access Object – Supports JDBC and ORM (Hibernate, JDO) – Consistent abstractions for exceptions and connection Aspect Oriented Programming – Dynamic proxies using interfaces Data Binding and Validation Testing Web MVC Spring Security JMX glue Modules

Spring Web MVC MVC (Model-View-Controller) - separates: – Domain specific code [model] – Web/servlet framework [controller] – Web display technology [view]

Spring Web MVC MVC (Model-View-Controller)

Spring Web MVC Controller – Implements: handleRequest(req,res):ModelAndView – CommandController: map general requests to beans – FormController: map form requests to beans Model – domain specific code – TDS: catalogs, data roots, file – NetCDF: dataset, gridded View – Implements: render(Map,req,res):void – JSP, Velocity, Tiles, iText, POI – Struts, JSF, Tapestry, WebWork – Our own views: byte range file access

TDS on Spring

TDS use of Spring Standard ways to manage complexity – Can simplify collaborations – Ease “Pie Truck” recovery Existing Spring Components – Spring Security – MVC (servlet dispatch) Active community creating components Used by collaborators – CDP, ncWMS