6/4/98SIGMOD'98 -- Cornell Predator Project1 Secure and Portable Database Extensibility Tobias Mayr Michael Godfrey Praveen Seshadri Thorsten von Eicken.

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

An Overview Of Virtual Machine Architectures Ross Rosemark.
Security for Distributed E-Service Composition Stefan SeltzsamStephan BörzsönyiAlfons Kemper Universität Passau.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Java security (in a nutshell)
What iS RMI? Remote Method Invocation. It is an approach where a method on a remote machine invokes another method on another machine to perform some computation.
Object Orientated Programming
Lecture 2: Do you speak Java?. From Problem to Program Last Lecture we looked at modeling with objects! Steps to solving a business problem –Investigate.
Andrea Camesi, Jarle Hulaas Software Engineering Laboratory Swiss Federal Institute of Technology in Lausanne (EPFL) Switzerland.
Multitasking JVMs Isolates and KaffeOS Presentation by James Rose.
Lecture 2: Do you speak Java?. From Problem to Program Last Lecture we looked at modeling with objects! Steps to solving a business problem –Investigate.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Java Introduction 劉登榮 Deng-Rung Liu 87/7/15. Outline 4 History 4 Why Java? 4 Java Concept 4 Java in Real World 4 Language Overview 4 Java Performance!?
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
ISYS 350 Business Application Development
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
Parts of a Computer Why Use Binary Numbers? Source Code - Assembly - Machine Code.
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
9/13/20151 Threads ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original slides.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
VirtualBox What you need to know to build a Virtual Machine.
Basic Security: Java vs.NET Master Seminar Advanced Software Engineering Topics Prof. Jacques Pasquier-Rocha Software Engineering Group Department of Informatics.
© 2012 Pearson Education, Inc. All rights reserved. 1-1 Why Java? Needed program portability – Program written in a language that would run on various.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
School of Computer Science & Information Technology G6DICP Introduction to Computer Programming Milena Radenkovic.
ISYS 350 Business Application Development David Chao.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
CT1513 Introduction To java © A.AlOsaimi.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
Java: An Overview John R Durrett Texas Tech University.
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
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.
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
Java – in context Main Features From Sun Microsystems ‘White Paper’
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
Software Development Introduction
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
1 Sections Java Virtual Machine and Byte Code Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
Presented By Sushil K. Chaturvedi Assistant Professor SRCEM,Banmore 1.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Programming Language Hierarchy, Phases of a Java Program
Topic: Difference b/w JDK, JRE, JIT, JVM
Java security (in a nutshell)
2.1. Compilers and Interpreters
Parallel Programming in Contemporary Programming Languages (Part 2)
Interpreter Style Examples
Chapter 4: Threads.
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
Database Connectivity and Web Development
(Computer fundamental Lab)
Lecture 1 Runtime environments.
Programming language translators
M S COLLEGE ART’S, COMM., SCI. & BMS
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
from Lutz Dietrich and Hans Kluge
Presentation transcript:

6/4/98SIGMOD'98 -- Cornell Predator Project1 Secure and Portable Database Extensibility Tobias Mayr Michael Godfrey Praveen Seshadri Thorsten von Eicken Cornell University

6/4/98SIGMOD'98 -- Cornell Predator Project2 Web based OR-DBMS n Web based access n Extensible server n Functionality in object methods Client OR-DBMS Server Queries Results Connectivity Software SELECT S.Company, S.QuoteHistory.WeeklyAvg() FROM Stocks S

6/4/98SIGMOD'98 -- Cornell Predator Project3 User Defined Functions Ü Portability Ü Security Ü Efficiency ? Client OR-DBMS Server Queries Results Connectivity Software Uploading Methods SELECT S.company FROM Stocks S WHERE S.TimeSeries.myAnalysis()>0

6/4/98SIGMOD'98 -- Cornell Predator Project4 Portability & Security n UDF execution environment of the client similar to that of the server Ü Design & Testing on client site n Granularity of control: u Execution errors u Memory access u System resources u Quality of Service attacks

6/4/98SIGMOD'98 -- Cornell Predator Project5 Alternative Solutions n Client site execution n Integrated, native execution n Execution in separate process n Software Fault Isolation n Proof Carrying Code n Interpreted languages n Safe languages n Typed Assembly Language n Java Virtual Machine Language based O/S based

6/4/98SIGMOD'98 -- Cornell Predator Project6 Integration of the JVM n Ubiquitous in browsers and with native interfaces n Interpreted/Compiled (JIT) Client Connectivity Software Browser JVM Classloader Security Manager JVM NI Server System Resources Java UDFs Native Methods

6/4/98SIGMOD'98 -- Cornell Predator Project7 Performance Components n Invocation n Execution u Data access u Computation n Callbacks Execution Engine UDF

6/4/98SIGMOD'98 -- Cornell Predator Project8 n Large objects are passed by reference n Selective retrieval : u only certain objects u only parts of objects n Argument overhead vs. control switches Callbacks Execution Engine UDF       

6/4/98SIGMOD'98 -- Cornell Predator Project9 Comparisons n Trusted execution inside server process n Execution in separate process n Execution on JVM inside server process Ü Platform: PREDATOR on a Sparc20 with 64MB of memory running Solaris 2.6. JVM: JDK (includes JIT)

6/4/98SIGMOD'98 -- Cornell Predator Project10 Experimental Setup SELECT UDF(R.ByteArray, NumComps, NumDataAccess, NumCallBacks) FROM ByteArrays R ByteArrays R: Tuple, one attribute ByteArray: Array of bytes (size: ) NumComps: Number of executed integer additions NumDataAccess: Number of iterations over ByteArray NumCallBacks: Number of executed callbacks

6/4/98SIGMOD'98 -- Cornell Predator Project11 Calibration

6/4/98SIGMOD'98 -- Cornell Predator Project12 Invocation Overhead n No data access, computation, or callbacks Ü Control switch cheaper for JVM Ü Costs of argument passing

6/4/98SIGMOD'98 -- Cornell Predator Project13 Invocation Overhead, absolute

6/4/98SIGMOD'98 -- Cornell Predator Project14 Invocation Overhead, relative

6/4/98SIGMOD'98 -- Cornell Predator Project15 Execution: Computation n Argument size bytes, no data access, no callbacks Ü No significant overhead

6/4/98SIGMOD'98 -- Cornell Predator Project16 Computation, absolute

6/4/98SIGMOD'98 -- Cornell Predator Project17 Computation, relative

6/4/98SIGMOD'98 -- Cornell Predator Project18 Execution: Data Access n bytes, no computation, no callbacks Ü High overhead, caused by array bounds checks

6/4/98SIGMOD'98 -- Cornell Predator Project19 Data Access, absolute

6/4/98SIGMOD'98 -- Cornell Predator Project20 Data Access, relative

6/4/98SIGMOD'98 -- Cornell Predator Project21 Callbacks n bytes, no computation, no data access Ü Cheap control switch with native interface

6/4/98SIGMOD'98 -- Cornell Predator Project22 Callbacks, absolute

6/4/98SIGMOD'98 -- Cornell Predator Project23 Callbacks, relative

6/4/98SIGMOD'98 -- Cornell Predator Project24 Results n Low overheads for invocation, computation, and callbacks n Data access overhead  dynamic checks n Overheads for UDFs small in context of processing of real queries Ü JVM forms an efficient safe execution environment for OR-DBMS

6/4/98SIGMOD'98 -- Cornell Predator Project25 Caveats n Portability across different JVM versions n Off-the-Shelf JVMs cause integration problems n Security flaws of the JVM

6/4/98SIGMOD'98 -- Cornell Predator Project26 Future Work - Jaguar Project n Security u Execution environment on server site with fine grained system resource control u Integration of J-Kernel resource management n Portability u Execution environment on client site integrated with query processing u Optimization of client site UDFs

6/4/98SIGMOD'98 -- Cornell Predator Project27