2. Three tiers and their
languages
Client Server Database
Html Java, Ruby SQL
JSP, ERB Visual Basic
JavaScript PHP, Perl
Python
3. MVC
Model, View, Controller
Model - Database
◦ Requests sent using SQL, Structured Query Language.
◦ Response is either an array of data or a confirmation.
View – Web page
◦ Requests sent using Html or embedded programming code
(JSP, ERB, ASP)
Controller – Program on server
◦ Sits between the model and view.
◦ Receives requests from the view, sends them on to the
model and sends a response back to the view.
◦ Most critical software and trickiest to write.
4. HTTP
Hypertext Transfer Protocol
Http is a stateless protocol.
◦ Stateless means that nothing is remembered.
◦ Once a response has been sent, the server forgets where it
went.
Request
◦ Requests are sent by the client to the server.
◦ They can either be requests for a new page or involve a
form with parameters.
Response
◦ The server sends a response page in return.
◦ It might be a linked page or data retrieved from a database.
5. Methods
Get
◦ Used for simple requests.
◦ Parameters are sent in the URL string.
◦ http://localhost:3000/library/find? title
="Oliver Twist"
Post
◦ Parameters are sent within the packet.
◦ Used when there are many parameters or when security is
an issue.
◦ Rails uses only post when there are parameters.
6. Action
The action contains the URL of the server and the server
program to be executed.
The URL comes before the question mark and the
parameters after.
Example of a URL string:
http://localhost:3000/library/find? title
="Oliver Twist“
http is the connection protocol.
localhost:3000 is the name of the server and
the access port on the server.
library/find gives the directory (library) for the
server program and the program (find) to use
in that directory.
7. HTML Forms
Forms consist of data fields and a submit
button. They can also have links to JavaScript
code and formatting tags.
<form method="post" action="http://localhost:3000/library/find">
<p>
<b>Book Title:</b>
<input type = "text" name="title" value = "" size = 20 />
</p>
<p><input type= "submit" value="Find a Book“ /></p>
</form>
8. This shows an html table containing
three forms. The form in the center is
the one on the previous slide.
9. Programming Languages
Java – uses Java servlets, Java Server Pages (JSP) and Java
beans.
Ruby on Rails – uses ruby programs and Embedded Ruby
(ERB).
Visual Basic – Uses VB programs and Active Server Pages
(ASP).
Others
◦ PHP (Personal Home Page – originally)
◦ CGI (Common Gateway Interface)
◦ Perl (Named after the parable of the pearl)
◦ Python (Named for the Monty Python skits)
◦ Tcl (Tool Command Language)
10. Java
Developed by James Gosling at Sun
Microsystems in 1991.
Java servlets on the server control
the flow between the client and the
database.
JSP (Java Server Pages) can be
embedded in the html on the web
page. They are compiled into
servlets before they are executed.
Java server pages are connected to
Java beans on the server. The beans
handle the requests and responses.
11. Ruby on Rails
Ruby was developed by Yukihiro
Matsumoto in 1993 and publically
released in 1995.
It is a scripting language and is fully
object oriented.
It combines Perl syntax with Smalltalk-
like features.
It is said to follow the ‘principle of
least surprise.’
12. Ruby on Rails
Rails was developed by David
Heinemeier Hansson and
released as open source in
July 2004.
It is based on the MVC
(model, view, controller)
pattern.
Programmers work on a
higher level than with Java
servlets.
13. Rails
Rails relies on a number of conventions.
JSP and Java beans have some conventions,
but rails has a lot more.
Rails translates commands into SQL, saving
programmers many hassles.
Some ‘boiler plate’ is stored separately and added
to web pages when required.
This includes web page headers, CSS
(Cascading Style Sheets) and JavaScript.
Database modifications are systematically handled
by ‘migrations.’ These are ruby programs that
when executed change the database.
14. Servers
The principal open-source server is Apache, hosting 49% (June
2008) of all web sites.
There are many modified versions.
Apache Tomcat – used for JSP and Java beans.
Google Web Server (GWS)
IBM WebSphere
Microsoft Internet Information Services (ISS) is the main proprietary
server, hosting 35.4% of all web sites.
15. Databases
Most databases use the relational model,
developed by E. F. Codd in the 1960s and ‘70s.
Data is stored in tables with rows and columns.
Queries are usually made with SQL.
Microsoft has Access for Windows computers.
MySQL is open source and has more than 11 million
installations world-wide.
Oracle is a widely used proprietary database
developed by the Oracle Corporation.
Rails comes with sqlite3.
There are many more.
16. Connecting to a database
Most databases are standalone programs and
so require that each time they are accessed,
you must set up a new connection.
For Java, the connection is
sun.jdbc.odbc.JdbcOdbcDriver
Odbc stands for open database connection,
and the ‘J’ in Jdbc is for Java.
Odbc is a protocol from Microsoft that is based on
the X/Open SQL specification.
InstantRails comes with SQLite3. It is part of
the application and does not require a new
connection for each query.
17. Web Browsers
The first web browser was Mosaic, released in
1993. It was developed by the NCSA, National
Center for Supercomputing Applications. It turned
into the Netscape Navigator and was discontinued
by AOL in 2007.
Microsoft’s Internet Explorer is the most widely
installed browser with around 73% of market share
world-wide.
Firefox from the Mozilla Foundation has around
19% of the usage share (August 2008).
There are a number of other browsers, including
Safari for Macs with a market share around 6%.