CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.

Slides:



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

Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
ICIS-NPDES Plugin Design Preview Webinar ICIS-NPDES Full Batch OpenNode2 Plugin Project Presented by Bill Rensmith Windsor Solutions, Inc. 3/15/2012.
CE203 - Application Programming Autumn 2013CE203 Part 51 Part 5.
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
Application Graphic design / svetagraphics.com 01 FRAMEWORK data service.
1 C. Shahabi Application Programming for Relational Databases Cyrus Shahabi Computer Science Department University of Southern California
U of R eXtensible Catalog Team MetaCat. Problem Domain.
Stanford University EH&S A Service Oriented Architecture For Rich Internet Applications Sheldon M. Heitz.
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
1 Foundations of Software Design Lecture 27: Java Database Programming Marti Hearst Fall 2002.
SQL Server 2000 and XML Erik Veerman Consultant Intellinet Business Intelligence.
Conceptual Architecture of PostgreSQL PopSQL Andrew Heard, Daniel Basilio, Eril Berkok, Julia Canella, Mark Fischer, Misiu Godfrey.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
Selected Topics in Software Computing Distributed Software Development CVSQL Final Project Presentation.
CSCI 6962: Server-side Design and Programming JDBC Database Programming.
Database Programming in Java Corresponds with Chapter 32, 33.
MAHI Research Database Data Validation System Software Prototype Demonstration September 18, 2001
9/15/2015© 2008 Raymond P. Jefferis IIILect Application Layer.
Resource Management and Accounting Working Group Working Group Scope and Components Progress made Current issues being worked Next steps Discussions involving.
Data Management Kelly Clynes Caitlin Minteer. Agenda Globus Toolkit Basic Data Management Systems Overview of Data Management Data Movement Grid FTP Reliable.
Data File Access API : Under the Hood Simon Horwith CTO Etrilogy Ltd.
OracleAS Reports Services. Problem Statement To simplify the process of managing, creating and execution of Oracle Reports.
OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
CVSQL 2 The Revenge of the SQL. The present Read-only access to CVS repository logs Language is a subset of SQL XML interface for returning results Built-in.
(Business) Process Centric Exchanges
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice HP Library Encryption - LTO4 Key.
Cohesion and Coupling CS 4311
Partitioning Patterns How to partition complex actors and concepts into multiple classes. Layered Initialization Filter Composite.
WEB/DB1 DATABASE PROGRAMMING 3JDBC by the ASU Scholars.
CVSQL 2 Current Project Status. CVSQL Server – Status Configuration Manager –Handles server and database configuration files: To Do Authentication Subsystem.
Copyright © 2012 UNICOM Systems, Inc. Confidential Information z/Ware Product Overview illustro Systems International A Division of UNICOM Global.
Mike Jackson EPCC OGSA-DAI Architecture + Extensibility OGSA-DAI Tutorial GGF17, Tokyo.
12/6/2015B.Ramamurthy1 Java Database Connectivity B.Ramamurthy.
UNIT III - JDBC JDBC Overview – JDBC implementation – Connection class – Statements - Catching Database Results, handling database Queries. Networking–
OPeNDAP Hyrax Harnessing the power of the BES OPeNDAP Hyrax Back-End Server Patrick West
JDBC CS 260 Database Systems. Overview  Introduction  JDBC driver types  Eclipse project setup  Programming with JDBC  Prepared statements  SQL.
Basics of JDBC Session 14.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
AFS/OSD Project R.Belloni, L.Giammarino, A.Maslennikov, G.Palumbo, H.Reuter, R.Toebbicke.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Event Management. EMU Graham Heyes April Overview Background Requirements Solution Status.
WebScan: Implementing QueryServer 2.0 Karl Geiger, Amgen Inc. BRS NA UG August 1999.
Java Object-Relational Layer Sharon Diskin GUS 3.0 Workshop June 18-21, 2002.
Ch. 31 Q and A IS 333 Spring 2016 Victor Norman. SNMP, MIBs, and ASN.1 SNMP defines the protocol used to send requests and get responses. MIBs are like.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
Agenda for Today  DATABASE Definition What is DBMS? Types Of Database Most Popular Primary Database  SQL Definition What is SQL Server? Versions Of SQL.
The Holmes Platform and Applications
ASP.NET Programming with C# and SQL Server First Edition
DEPTT. OF COMP. SC & APPLICATIONS
Web Technologies IT230 Dr Mohamed Habib.
z/Ware 2.0 Technical Overview
Magento Technical Guidelines Eugene Shakhsuvarov, Software Magento
Knowledge Byte In this section, you will learn about:
Ch > 28.4.
Monitoring Java Applications with JAMon
DUCKS – Distributed User-mode Chirp-Knowledgeable Server
What’s changed in the Shibboleth 1.2 Origin
Lecture 1: Multi-tier Architecture Overview
Conceptual Architecture of PostgreSQL
Conceptual Architecture of PostgreSQL
Java Database Connectivity
Chapter 10 ADO.
Supporting High-Performance Data Processing on Flat-Files
Consuming Web Services with 2E Generated Objects
Java Object-Relational Layer
Plug-In Architecture Pattern
Presentation transcript:

CVSQL 2 The Design

System Overview

System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing and execution Client utility –Uses new XML-RPC network interface JDBC driver –Uses updated CVSQL2 XML network interface

CVSQL Server

Networking component –CVSQL1 and CVSQL2 XML protocol support –XML-RPC protocol support SQL parser –Parses the SQL query string SQL engine –Executes the query Data Provider modules –CVS log data provider –Palantir event provider Server configuration and control

Networking CVSQL XML protocol support –Legacy software support –CVSQL2 extension – “protocol 2.0” response byte count report used only on client's explicit request XML-RPC support –Uses available third-party XML-RPC C++ implementation (XmlRpcPP) Desired network interface selection is done via configuration file –Only one network interface active at any moment

SQL Parser Completely rewritten from ground-up Modular –Configurable lexical analyzer –Recursive-descent syntax parser Validates the string representation of SQL query and transforms it into SQLQuery object SQLQuery object contains: –SQLQuerySelection – description of selected columns –SQLQueryTables – a list of data sources for the query –SQLQueryExpression – a selection filter for the data –GroupBy, OrderBy – data ordering and grouping

SQL Engine Executes the SQL query Works on ResultSet objects –join, filter The result is also a ResultSet object Supported data types: –String, DateTime, Integer, Decimal, Null Database independent –Table list and structure provided by the SQLDatabase object

Data Providers Gather data from external sources –CVS log, Palantir event log Present the data as ResultSet objects –Unnamed objects – only the SQLDatabase object knows table names and their references to table providers Have intimate knowledge of data structure –data fields, column types Register upon program start –module type, reference to object factory Created by database separately for each table Take additional options to control data gathering

Server Configuration Server configuration file example: -->

Database Configuration Database configuration file example:

The Client Simple command-line utility Operation: 1) Get the query string input from the user 2) Send the query to the server using XMLRPC 3) Obtain the result in XML format and present it back to the user ● Uses third party XML-RPC library (XmlRpcPP)

JDBC Driver CVSQLAPI – Contains all I/O logic and XML parsing – Send() CVSQLServerResponse – Throws CVSQLException CVSQLException for I/O or general error CVSQLProtocolException for XML errors. CVSQLServerResponse – Encapsulates the three important XML elements resp / result definition values

JDBC Driver (cont'd) Handling XML Chunks – CVSQL XML protocol sends chunks, not documents – Multiple root elements resp for non-data/error db for row-data – Proposed solution Protocol "upgradability" InputStream wrapper

JDBC Driver (cont'd) Protocol Upgradability – Server assumes v1.0 protocol for compatibility – Client requests protocol upgrade Sends "protocol 2.0" command Occurs at any time Protocol switch takes effect AFTER server's response

JDBC Driver (cont'd) XML Protocol 2.0 – Root XML elements prefixed with XML element byte length in ASCII decimal ASCII newline (0x0a) – Example >>> protocol OK >>> login user <<< 41...

JDBC Driver (cont'd) InputStream Wrapper – XMLElementInputStream extends InputStream – Knowledge of expected XML chunk length (data- length) – Remembers bytes read from input stream since last reset() (read-bytes) – Behavior InHeader read() returns bytes from the XML processing header (<?xml version=...) InData && read-bytes < data-length read() calls are passed directly InData && read-bytes >= data-length read() returns EOF (-1)

JDBC Driver (cont'd) CVSQLResultSet – Version 2.0 adds constructor for static ResultSet, not created from server response – Allows for use within CVSQLDatabaseMetaData and CVSQLResultSetMetaData classes CVSQLDriver – Accepts URLs containing sub-protocol "cvsql" – Example – Version 1.0 code needs to be verified safe with malformed URLs

JDBC Driver (cont'd) CVSQLStatement – Result set data is obtained during the call to execute. – In version 1.0, protocol exceptions are not detected until a call to getResultSet – In version 2.0, exceptions are thrown in execute for bad queries as well as I/O errors. CVSQLDatabaseMetaData – Version 1.0 used static values for limited meta-data support – Version 2.0 uses the CVSQL Server v2.0 DESCRIBE command to obtain database info – Limited only by data returned by DATABASE query

JDBC Driver (cont'd) CVSQLConnection – Version 1.0 needs review and rework – Work carefully with the Properties object to avoid RuntimeExceptions

Project Status Requirements defined –except for Palantir – still in the research phase System design completed We're ready to code –work already started on SQL parser and engine Overall status: On Track! ;-) Questions? Thank you CVSQL 2 Team