Native XML Database for Information Systems Chris Wallace ISD3 March 2006.

Slides:



Advertisements
Similar presentations
Database Ed Milne. Theme An introduction to databases Using the Base component of LibreOffice LibreOffice.
Advertisements

XML: Extensible Markup Language
The Web Warrior Guide to Web Design Technologies
A Comprehensive Web Application Development and Deployment Platform.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Information Retrieval in Practice
Introduction to XQuery and eXist Week 21 DSA. DSA - XQuery2 Refresher on XPath XML databases XQuery Applications –Whiskies (again) –A simple blog The.
Web Forms: Web Pages with Server Controls. 2 Objectives Understand the background of the Internet, and the notions of packet switching and a stateless.
XSLT XML DBs, and Schemas Week 18 DSA. The Whisky Case study XSLT can be applied in the client. –Add a xml processing instruction to the xml to bind to.
DSA Semester 2. XML Tagged data Hello A really interesting course, well taught Interchange of data RSS, BPEL4WS, RossettaNet … Structure document representation.
Native XML Database for Information Systems Chris Wallace IS School Research Seminar Feb 2006.
Introduction to XQuery and eXist XQuery workshop April 2006.
Introduction to XQuery and eXist DSA. XSLT Tutorial Problems Bad language : – No ! – for XML schema –Some XSLT engines tolerant of extra tags (permissive),
Lecture 2 Web application architecture. Themes Architecture : The large scale structure of a system, especially a computer system Design choice: The need.
Introduction to XQuery and eXist Week 17 DSA. DSA - XQuery2 XPath. Hierarchical file systems have been navigable with path expression since Unix –/abc/cde/../../efg.
XML Workshop XSLT. XML Tagged data Hello A really interesting course, well taught Interchange of data RSS, BPEL4WS, RossettaNet … Structure document representation.
Multiple Tiers in Action
Native XML Database for Information Systems Chris Wallace SMRG Seminar Feb 2006.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Overview of Search Engines
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Quick Tour of the Web Technologies: The BIG picture LECTURE A bird’s eye view of the different web technologies that we shall explore and study.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
ITIS 1210 Introduction to Web-Based Information Systems Chapter 24 How Websites Work with Databases How Websites Work with Databases.
Web Application Architecture and Communication. Displaying a Web page in a Browser
Languages in WEB Presented by: Jenisha Kshatriya BCM SS09.
XForms: A case study Rajiv Shivane & Pavitar Singh.
Server-side Scripting Powering the webs favourite services.
SednaSpace A software development platform for all delivers SOA and BPM.
Lecture 7 Interaction. Topics Implementing data flows An internet solution Transactions in MySQL 4-tier systems – business rule/presentation separation.
DATABASE and XML Moussa Mané. Learning Objectives ● Learn about Native XML Databases ● Learn about the conversion technology available ● Understand New.
XP New Perspectives on XML, 2 nd Edition Tutorial 10 1 WORKING WITH THE DOCUMENT OBJECT MODEL TUTORIAL 10.
Information Systems Design 3 UFIE8V Lecture topics Admin –StaffingStaffing –UWE OnlineUWE Online –AssessmentAssessment Themes Case studies.
JavaScript is a client-side scripting language. Programs run in the web browser on the client's computer. (PHP, in contrast, is a server-side scripting.
OracleAS Reports Services. Problem Statement To simplify the process of managing, creating and execution of Oracle Reports.
Fundamentals of Database Chapter 7 Database Technologies.
Client side web programming Introduction Jaana Holvikivi, DSc. School of ICT.
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
3-tier application architecture A technical view
National Center for Supercomputing Applications NCSA OPIE Presentation November 2000.
Creating Dynamic Web Pages Using PHP and MySQL CS 320.
Project Overview Graduate Selection Process Project Goal Automate the Selection Process.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
1 Welcome to CSC 301 Web Programming Charles Frank.
Project Overview Graduate Selection Process Project Goal Automate the Selection Process.
Mike Jackson EPCC OGSA-DAI Architecture + Extensibility OGSA-DAI Tutorial GGF17, Tokyo.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
INT-2: XQuery Levels the Data Integration Playing Field Carlo (Minollo) Innocenti DataDirect XML Technologies, Program Manager.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
XML Databases. XML Like HTML –Tags –Fixed vocabulary of tags and fixed structure –Tags indicate formatting, not semantics Strict HTML – XHTML –Always.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
HTML III (Forms) Robin Burke ECT 270. Outline Where we are in this class Web applications HTML Forms Break Forms lab.
Basics Components of Web Design & Development Basics, Components, Design and Development.
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
//liveVirtualacademy2011/ What’s New for ASP.NET 4.5 and Web Development in Visual Studio 11 Developer Preview Γιώργος Καπνιάς MVP, MCT, MCDP, MCDBA, MCTS,
Presented by: K.AMARNATH Ht.no:10841f0045 Guided by: T.Suneetha.
Web Programming Language
Business rules.
Introduction to Dynamic Web Programming
Introduction and Principles
PHP / MySQL Introduction
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Presentation transcript:

Native XML Database for Information Systems Chris Wallace ISD3 March 2006

Chris Wallace, ISD3 2 Exploring the design space Native XML database (NXD) –Storing, querying and updating XML documents without mapping into relations –Schema-free –Trees are to NXD what tables are to RDBMS –Tables are trees Information Systems –Focus on semi-structured data (mixture of simple data items, text and complex nested structures) –Searching, derived data, visualisation –Process support –Large problem space variously supported by spreadsheets, word documents, ad-hoc databases, increasingly web-integrated data. “design as a conversation with the materials in the situation” (Schon)

Chris Wallace, ISD3 3 eXist Native XML Database Open source Java European team of developers led by Wolfgang Meier Documents (files) are organised in collections (folders) in a file store –XML Documents stored in an efficient, B+ tree structure with indexes –Non-XML resources (XQuery, CSS, JPEG..), etc can be stored as binary Deployable in different ways –Embedded in a Java application –Part of a Cocoon pipeline –As web application in Apache/Tomcat –With embedded Jetty HTTPserver (as on stocks) Multiple Interfaces –REST – to Java servlet –SOAP –XML:RPC

Chris Wallace, ISD3 4 NXD case studies FOLD –modules, programmes, scheme operations, staff, organisational structures, events Family photos and history –Integration of meta-data on family photos with family history (births, deaths and marriages)meta-databirths, deaths and marriages ISD3 Assignment –a web-based calculator –e.g. a currency convertercurrency converter State-machine simulator –Coke machineCoke machine

Chris Wallace, ISD3 5 ISD3 Coursework 1 Develop a simple web-based calculator Not just a programming exercise –User interface design Users language, units, not raw data User interaction design –Data design choice of representation of domain facts –Veracity Relationship between data in database and domain being modelled How is veracity monitored and maintained –Process Examine some of the XP processes –Test-driven development

Chris Wallace, ISD3 6 Application Design Data model is one simple table: –Currency code, name and symbol –Latest conversion rates from GBP to currency X Currency Coding –Use ISO4217 e.g. XE.COM list ISO4217XE.COM list Core algorithm: –Conversion from N X to ? Y is N * rate(X to GBP) * rate(GBP to Y) i.e. N * (1/rate (GBP to X) * rate(GBP to Y) Currency rates to be updated by an administrator – (not via a web-service) Interface is to be a sticky form: –Input form and output result on one page –Input form default values from last input Veracity management –Rates must be dated and sourced –

Chris Wallace, ISD3 7 Technical Decisions Choice of platform: –PL/SQL and Oracle –ASP.NET and SQL Server –JSP (Java Servlet Page) and JDBC to Postgres(say) –PHP and MySQL –XML and Native XML Database (eXist) Calculation location: –client-side in ECMAScript (aka JavaScript) –server-side with/without Ajax

Chris Wallace, ISD3 8 Two approaches PHP-MySQL –Define and create MySQL table –Write PHP script to provide interface and access the database using SQL –Write editor for the Currency table XML –Create MS Excel spreadsheet of currencies –Convert to XML in Excel and save –Write XQuery script to provide interface

Chris Wallace, ISD3 9 Development Process for currency converter XP Practices: –‘Spike’ Simple end to end implementation –Incremental development Setup eXist databaseeXist database –Using the Admin interface: Create a directory for application Create a subdirectory for currency data Create XML dataset(s) in Excel Upload to eXist Write the XQuery script cur.xqlcur.xql Upload to eXist Execute in browser

Chris Wallace, ISD3 10 Currency Data in XML Start MS Excel 2003 Create the spreadsheet with column headings Convert to List (needs XML add-in) Save as XML dataXML data CodeNameRate GBPSterling1 USDUS Dollars EUREuro NZDNZ Dollars JPYYen

Chris Wallace, ISD3 11 XQuery W3C candidate recommendation – Designed by, amongst others, Don Chamberlin – rlin.pdfhttp:// rlin.pdf A functional programming Language –Based on XPath (tree-access language) –Integrate, select, update, compute and construct XML documents –cf PL/SQL

Chris Wallace, ISD3 12 Write the XQuery script Use the admin interface to test simple queries Use a syntax aware editor if possible –JEdit –Dreamweaver –Java Client interface to eXist –PFE32

Chris Wallace, ISD3 13 Executing an XQuery eXist DB cur.xql XQuery Engine parameters html Client BrowsereXist: Server Get cur.xql + parameters servlet fetch cur.xql render User clicks link cur.xql?fromAmount=100&fromCode=USD&toCode=EUR XSLT

Chris Wallace, ISD3 14 XQuery Script (1) declare namespace request=" let $fromAmount := request:request-parameter("fromAmount",“100"), $fromCode := request:request-parameter("fromCode","GBP"), $toCode := request:request-parameter("toCode","EUR"), $currencies := collection('/db/calculator/currencies')//Currency, $fromCurrency := $currencies[Code=$fromCode], $toCurrency := $currencies[Code=$toCode], $toAmount := round(xs:decimal($fromAmount) * xs:decimal($toCurrency/Rate) div xs:decimal($fromCurrency/Rate) ) return

Chris Wallace, ISD3 15 XQuery Script (1) declare namespace request=" let $fromAmount := request:request-parameter("fromAmount",“100"), $fromCode := request:request-parameter("fromCode","GBP"), $toCode := request:request-parameter("toCode","EUR"), $currencies := collection('/db/calculator/currencies')//Currency, $fromCurrency := $currencies[Code=$fromCode], $toCurrency := $currencies[Code=$toCode], $toAmount := round(xs:decimal($fromAmount) * xs:decimal($toCurrency/Rate) div xs:decimal($fromCurrency/Rate) ) return … Default Return node sequence of all Currency elements in this doc Filter Condition Cast

Chris Wallace, ISD3 16 XQuery Script (2) return Currency Calculator Currency Calculator Amount to Convert <input type="text" name="fromAmount“ value="{$fromAmount}"/> Embedded XQuery XML

Chris Wallace, ISD3 17 XQuery (3) From Currency {for $currency in $currencies let $code := data($currency/Code), $name := data($currency/Name) return if ($code = $fromCode) then {$name} else {$name} } FLWOR expression conditional

Chris Wallace, ISD3 18 Round two - enhancements Add another currency –ZAR Rand Add new columns –Source and date/time Update spreadsheet –Add columns and data Update XQuery script – cur2.xqlXQuery script cur2.xql –Add source – Sources and oldest date

Chris Wallace, ISD3 19 Round 3 – Currency Table Same document used for different purpose: –currency.xslcurrency.xsl –curtable.xqlcurtable.xql –Run it curtable.xqlcurtable.xql

Chris Wallace, ISD3 20 The FOLD

Chris Wallace, ISD3 21 FOLD Design Some table data for maintenance in spreadsheet form. Forces some compromises in the data structure –Multi-valued fields (not nested) –Specific roles (not generic) Module specifications, Programme Structures, Organisational Groups –deeply structured documents –complex relationships

Chris Wallace, ISD3 22 Research Areas Design practice for NDX –‘Pattern language’ to help map from conceptual model to multiple XML schemes –Identifier design –Structuring documents by responsibility and versions NDX in organisational use –Social effects of distributed responsibility –Visualisation of complex relationships –Handling integrity problems – accept inconsistency as a way of life –Management of veracity

Chris Wallace, ISD3 23 Process support Short term – Process support –Form generation –Linkage to process documentation Medium term – Process monitoring –Online capture of significant dates Coursework hand-in date Date exam sent to moderator Date coursework returned to students –Derived information Workload prediction based on coursework schedule and student numbers Display of latest coursework returned and SMS message to students –State-based process modelling Exam moderation Long term- Process management –Workflow –Process enactment software

Chris Wallace, ISD3 24 Next 6 weeks Web Services – Application integration Process modelling –Use cases and scenarios –State machines Business Process Modelling