Download InternetApp

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Extensible Storage Engine wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Relational model wikipedia , lookup

Functional Database Model wikipedia , lookup

Database wikipedia , lookup

Concurrency control wikipedia , lookup

Versant Object Database wikipedia , lookup

ContactPoint wikipedia , lookup

Clusterpoint wikipedia , lookup

Database model wikipedia , lookup

Transcript
Internet Applications
Chapter 7
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
1
Uniform Resource Identifiers


Uniform naming schema to identify resources on the
Internet
A resource can be anything:
 Index.html
 mysong.mp3
 picture.jpg

Example URIs:
http://www.cs.wisc.edu/~dbbook/index.html
mailto:[email protected]
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
2
Structure of URIs
http://www.cs.wisc.edu/~dbbook/index.html

URI has three parts:
 Naming schema (http)
 Name of the host computer (www.cs.wisc.edu)
 Name of the resource (~dbbook/index.html)

URLs are a subset of URIs
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
3
Hypertext Transfer Protocol

What is a communication protocol?
 Set of standards that defines the structure of messages
 Examples: TCP, IP, HTTP

What happens if you click on
www.cs.wisc.edu/~dbbook/index.html?

Client (web browser) sends HTTP request to server
Server receives request and replies
Client receives reply; makes new requests


Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
4
HTTP (Contd.)
Client to Server:
Server replies:
GET ~/index.html HTTP/1.1
User-agent: Mozilla/4.0
Accept: text/html, image/gif,
image/jpeg
HTTP/1.1 200 OK
Date: Mon, 04 Mar 2002 12:00:00 GMT
Server: Apache/1.3.0 (Linux)
Last-Modified: Mon, 01 Mar 2002
09:23:24 GMT
Content-Length: 1024
Content-Type: text/html
<HTML> <HEAD></HEAD>
<BODY>
<h1>Barns and Nobble Internet
Bookstore</h1>
Our inventory:
<h3>Science</h3>
<b>The Character of Physical Law</b>
...
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
5
HTTP Protocol Structure
HTTP Requests
 Request line:
GET ~/index.html HTTP/1.1
 GET: Http method field (possible values are GET and POST)
 ~/index.html: URI field
 HTTP/1.1: HTTP version field


Type of client:
User-agent: Mozilla/4.0
What types of files will the client accept:
Accept: text/html, image/gif, image/jpeg
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
6
HTTP Protocol Structure (Contd.)
HTTP Responses
 Status line: HTTP/1.1 200 OK
 HTTP version: HTTP/1.1
 Status code: 200
 Server message: OK
 Common status code/server message combinations:
•
•
•
•




200 OK: Request succeeded
400 Bad Request: Request could not be fulfilled by the server
404 Not Found: Requested object does not exist on the server
505 HTTP Version not Supported
Date when the object was created:
Last-Modified: Mon, 01 Mar 2002 09:23:24 GMT
Number of bytes being sent: Content-Length: 1024
What type is the object being sent: Content-Type: text/html
Other information such as the server type, server time, etc.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
7
Some Remarks About HTTP

HTTP is stateless





No “sessions”
Every message is completely self-contained
No previous interaction is “remembered” by the protocol
Tradeoff between ease of implementation and ease of
application development: Other functionality has to be built
on top
Implications for applications:
 Any state information (shopping carts, user login-information)
need to be encoded in every HTTP request and response!
 Popular methods on how to maintain state:
• Cookies
• Dynamically generate unique URL’s at the server level
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
8
Web Data Formats

HTML
 The presentation language for the Internet

XML
 A self-describing, hierarchal data model

DTD
 Standardizing schemas for XML
XSLT
 RDF
 OWL

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
9
HTML: An Example
<HTML>
<HEAD></HEAD>
<BODY>
<h1>Barns and Nobble Internet
Bookstore</h1>
Our inventory:
<h3>Science</h3>
<b>The Character of Physical
Law</b>
<UL>
<LI>Author: Richard
Feynman</LI>
<LI>Published 1980</LI>
<LI>Hardcover</LI>
</UL>
<h3>Fiction</h3>
<b>Waiting for the Mahatma</b>
<UL>
<LI>Author: R.K. Narayan</LI>
<LI>Published 1981</LI>
</UL>
<b>The English Teacher</b>
<UL>
<LI>Author: R.K. Narayan</LI>
<LI>Published 1980</LI>
<LI>Paperback</LI>
</UL>
</BODY>
</HTML>
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
10
HTML: A Short Introduction
HTML is a markup language
 Commands are tags:

 Start tag and end tag
 Examples:
• <HTML> … </HTML>
• <UL> … </UL>

Many editors automatically generate HTML
directly from your document (e.g., Microsoft
Word has an “Save as html” facility)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
11
HTML: Sample Commands
<HTML>:
 <UL>: unordered list
 <LI>: list entry
 <h1>: largest heading
 <h2>: second-level heading, <h3>, <h4>
analogous
 <B>Title</B>: Bold

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
12
XML – What is this?
Science
Hardcover
Richard
Feynman
The Character of Physical Law
1980
Fiction
R.K.
Narayan
Waiting for the Mahatma
1981
Fiction
R.K.
Narayan
The English Teacher
1980
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
13
XML: An Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BOOKLIST>
<BOOK genre="Science" format="Hardcover">
<AUTHOR>
<FIRSTNAME>Richard</FIRSTNAME><LASTNAME>Feynman</LASTNAME>
</AUTHOR>
<TITLE>The Character of Physical Law</TITLE>
<PUBLISHED>1980</PUBLISHED>
</BOOK>
<BOOK genre="Fiction">
<AUTHOR>
<FIRSTNAME>R.K.</FIRSTNAME><LASTNAME>Narayan</LASTNAME>
</AUTHOR>
<TITLE>Waiting for the Mahatma</TITLE>
<PUBLISHED>1981</PUBLISHED>
</BOOK>
<BOOK genre="Fiction">
<AUTHOR>
<FIRSTNAME>R.K.</FIRSTNAME><LASTNAME>Narayan</LASTNAME>
</AUTHOR>
<TITLE>The English Teacher</TITLE>
<PUBLISHED>1980</PUBLISHED>
</BOOK>
</BOOKLIST>
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
14
XML – The Extensible Markup Language

Language
 A way of communicating information

Markup
 Notes or meta-data that describe your data or
language

Extensible
 Limitless ability to define new languages or data
sets
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
15
XML – What’s The Point?

You can include your data and a description of what
the data represents
 This is useful for defining your own language or protocol

Example: Chemical Markup Language
<molecule>
<weight>234.5</weight>
<Spectra>…</Spectra>
<Figures>…</Figures>
</molecule>

XML design goals:
 XML should be compatible with SGML
 It should be easy to write XML processors
 The design should be formal and precise
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
16
DTD – Document Type Definition
A DTD is a schema for Xml data
 Xml protocols and languages can be
standardized with DTD files
 A DTD says what elements and attributes are
required or optional

 Defines the formal structure of the language
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
17
DTD – An Example
<?xml version='1.0'?>
<!ELEMENT Basket (Cherry+, (Apple | Orange)*) >
<!ELEMENT Cherry EMPTY>
<!ATTLIST Cherry flavor CDATA #REQUIRED>
<!ELEMENT Apple EMPTY>
<!ATTLIST Apple color CDATA #REQUIRED>
<!ELEMENT Orange EMPTY>
<!ATTLIST Orange location ‘Florida’>
--------------------------------------------------------------------------------
<Basket>
<Cherry flavor=‘good’/>
<Apple color=‘red’/>
<Apple color=‘green’/>
</Basket>
<Basket>
<Apple/>
<Cherry flavor=‘good’/>
<Orange/>
</Basket>
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
18
XML and DTDs

More and more standardized DTDs will be developed
 MathML
 Chemical Markup Language

Allows light-weight exchange of data with the same
semantics

Sophisticated query languages for XML are available:
 Xquery
 XPath
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
19
Components of Data-Intensive
Systems
Three separate types of functionality:
 Data management
 Application logic
 Presentation

The system architecture determines whether
these three components reside on a single
system (“tier“) or are distributed across several
tiers
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
20
The Three-Tier Architecture
Presentation tier
Middle tier
Data management
tier
Client Program (Web Browser)
Application Server
Database System
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
21
The Three Layers
Presentation tier
 Primary interface to the user
 Needs to adapt to different display devices (PC, PDA, cell
phone, voice access?)
Middle tier
 Implements business logic (implements complex actions,
maintains state between different steps of a workflow)
 Accesses different data management systems
Data management tier
 One or more standard database management systems
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
22
Example 1: Airline reservations
Build a system for making airline reservations
 What is done in the different tiers?
 Database System

 Airline info, available seats, customer info, etc.

Application Server
 Logic to make reservations, cancel reservations,
add new airlines, etc.

Client Program
 Log in different users, display forms and humanreadable output
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
23
Example 2: Course Enrollment
Build a system using which students can enroll
in courses
 Database System

 Student info, course info, instructor info, course
availability, pre-requisites, etc.

Application Server
 Logic to add a course, drop a course, create a new
course, etc.

Client Program
 Log in different users (students, staff, faculty),
display forms and human-readable output
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
24
Technologies
Client Program
(Web Browser)
Application Server
(Apache Tomcat, J2EE)
Database System
(Oracle,DB2,SQL Server)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
HTML
Javascript
XSLT
JavaFX
Flex, etc.
JSP
Servlets
Cookies
CGI
XML
Stored Procedures
25
Application Servers

Idea: Avoid the overhead of CGI




Main pool of threads of processes
Manage connections
Enable access to heterogeneous data sources
Other functionality such as APIs for session
management
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
26
Application Server: Process Structure
Process Structure
Web Browser
HTTP Web Server
C++ Application
JavaBeans
Application Server
JDBC
ODBC
DBMS 1
DBMS 2
Pool of Servlets
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
27