3 tier web development
Download
Skip this Video
Download Presentation
3 Tier Web Development

Loading in 2 Seconds...

play fullscreen
1 / 27

3 Tier Web Development - PowerPoint PPT Presentation


  • 140 Views
  • Uploaded on

3 Tier Web Development. Bryan Duggan. Three important decisions. Organisation Navigation Choice of technology. Organisation. How files are organised on the server By file type Separate folders for html, js, images By content Separate folders for sales, marketing, college. Navigation.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '3 Tier Web Development' - lesley


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
three important decisions
Three important decisions
  • Organisation
  • Navigation
  • Choice of technology
organisation
Organisation
  • How files are organised on the server
    • By file type
      • Separate folders for html, js, images
    • By content
      • Separate folders for sales, marketing, college
navigation
Navigation
  • Frames ?
  • Site map
  • Search on each page
  • Drop down lists
  • Search
  • Long pages (links back to the top)
  • Back functionality
choice of technology
Choice of technology
  • Client
    • HTML/XHTML
    • CSS
    • Flash
    • Javascript
    • Java
    • CSS
    • Voice
  • Middle tier
    • PHP
    • ASP
    • JSP
    • Cold fusion
  • Server
    • MySQL
    • SQL Server
    • Oracle
question
Question…
  • Place the following terms in the 3-tier architecture:
    • JavaScript, SSI, J2EE, MySQL, Oracle, CSS, PHP, ASP.NET, Flash, Java Applets, JSP, Dreamweaver, Microsoft .NET
http protocol
HTTP Protocol

RFC’s:

1945

2068

2616

Parameters

Request

Web Browser

Response

Query

E.g. A user fills in a form, which gets submitted to a web server

Port Numbers (16 bit numbers) identify the service

Results

Web Server

Database (Optional)

http://www.ietf.org/rfc/rfc1945.txt?number=1945

displaying a web page in a browser
Displaying a Web page in a Browser
  • <a href= http://www.cems.uwe.ac.uk/~cjwallac/UFIE8V-2004/l2_3tier.html>Lecture 2</a>
  • URL is decoded : protocol/host/file
  • Page requested from host
  • Page is returned
  • HTML codes determine how text is rendered
  • If page contains links e.g. <img src=red.gif>, browser must repeat the same process on each
dynamic web page needed when
Dynamic Web page needed when:
  • Consistent look and feel on each page of a large site
  • Data is derived from a database
  • Depends on real time
  • Pages depend on user choice
  • Business transactions e.g. e-commerce…
presentation tier
Presentation tier
  • Issue request to remote server
  • accept the returned HTML (or JPEG..) file
  • render (i.e. create a 2-d image ) the HTML
  • allow plug-ins to handle new file types
  • execute client-side scripts in JavaScript
  • support interaction between client-side scripts and the web page
  • accept user input via a variety of controls on a form
persistence tier
Persistence tier
  • interaction with the database using standard languages e.g SQL queries and table returns
  • define and modify the data structures (e.g. tables) themselves ( the Database Schema)
  • insert, update and delete data
  • maintain data persistently, with backup and recovery
  • handle transactions to support concurrent access to the database via locking et
  • optimise access by compilation of queries, indexing, replication of tables etc.
application layer
Application Layer
  • accepting requests from the Presentation layer
  • interpreting the requests according to business rules and past transactions from this client
  • requesting the appropriate data from the Persistence layer
  • computing derived data
  • creating the HTML (or GIF, MIDI..) for the page
  • providing run-time support for:
    • Thousands of concurrent users
    • compilation to machine code
    • multi-threading [ allow multiple processes to run concurrently]
    • caching [holding results in a temporary store to reduce re-calculation]
lamp architecture
LAMP Architecture

Linux

Parameters

Request

Mozilla/IE

Response

Query

Results

Apache

/IIS

Running

PHP interpreter

HTTP

MySQL

Lynux, Apache, MySQL, PHP

history of php
History of PHP
  • PHP originally stood for “Personal Home Page”
  • It started out, in 1994, as a simple preprocessor of HTML files
    • built by Rasmus Lerdorf (born in Greenland, grew up in Denmark and Canada, graduated from U of Waterloo in 1993, now prominent member of Open Source movement)
    • original purpose was to log people who viewed his on-line resume
  • Since then, has been developed by a growing community of open source developers
  • Name now supposed to stand for “PHP Hypertext Pre-Processor”
php history contd
PHP history (contd.)
  • Initially, PHP comprised a simple parser plus a library of C functions
  • The parser would scan a HTML file looking for instances of a new non-standard tag and replace the contents of these tag instances with the result of executing some functions in the C library
  • As a result, much PHP syntax looks like C
  • Other parts of it, however, have a Perl flavour – but, of course, Perl also borrows C syntax
enabling php in http servers
Enabling PHP in HTTP servers
  • PHP is available on many servers today, in Windows and all types of Unix environments
  • It is supported by Apache, AOLServer, Roxen and others
  • Servers can be configured to enable PHP in different ways
  • The httpd recognizes a file who name has the suffix .php as a PHP file
installing php on windows
Installing PHP on Windows
  • Install Apache web server (Accept the defaults)
  • Install MySQL
    • Optionally install the query browser and administrator
  • Create a folder to hold your web documents:

C:\Documents and Settings\bduggan\My Documents\Courses\Web Development (China)\Websites

install php
Install PHP
  • Unzip to c:/PHP
  • Rename the file c:\php\php.ini-dist to php.ini
  • Edit the line doc-root to read:
    • doc_root = C:\Documents and Settings\bduggan\My Documents\Courses\Web Development (China)\Websites
  • Edit the line extension-dir to read:
    • extension-dir=c:\php\ext
  • Edit http.conf and change:

DocumentRoot "C:/Documents and Settings/bduggan/My Documents/Courses/Web Development (China)/Websites“

  • Add:

ScriptAlias /php/ "c:/php/"

AddType application/x-httpd-php .php .php5

Action application/x-httpd-php "/php/php-cgi.exe"

SetEnv PHPRC "C:/php“

also add
Also Add:

#

# This should be changed to whatever you set DocumentRoot to.

#

<Directory "C:/Documents and Settings/bduggan/My Documents/Courses/Web Development (China)/Websites">

#

# Possible values for the Options directive are "None", "All",

# or any combination of:

# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

#

# Note that "MultiViews" must be named *explicitly* --- "Options All"

# doesn\'t give it to you.

#

# The Options directive is both complicated and important. Please see

# http://httpd.apache.org/docs/2.2/mod/core.html#options

# for more information.

#

Options Indexes FollowSymLinks

#

# AllowOverride controls what directives may be placed in .htaccess files.

# It can be "All", "None", or any combination of the keywords:

# Options FileInfo AuthConfig Limit

#

AllowOverride None

#

# Controls who can get stuff from this server.

#

Order allow,deny

Allow from all

</Directory>

slide21
Add:

<Directory "C:/PHP">

#

# Possible values for the Options directive are "None", "All",

# or any combination of:

# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

#

# Note that "MultiViews" must be named *explicitly* --- "Options All"

# doesn\'t give it to you.

#

# The Options directive is both complicated and important. Please see

# http://httpd.apache.org/docs/2.2/mod/core.html#options

# for more information.

#

Options Indexes FollowSymLinks

#

# AllowOverride controls what directives may be placed in .htaccess files.

# It can be "All", "None", or any combination of the keywords:

# Options FileInfo AuthConfig Limit

#

AllowOverride None

#

# Controls who can get stuff from this server.

#

Order allow,deny

Allow from all

</Directory>

a first php file
A first PHP file

<html>

<head>

<title>PHP Test</title>

</head>

<body>

<?phpecho “<p>Hello World</p>";?>

</body>

</html>

Test this file and make sure PHP displays Hello World

optionall install phpmyadmin
Optionall install phpMyAdmin
  • This allows you to access MySQL in a web browser
how php files are processed
How PHP files are processed
  • The httpd demon simply copies regular HTML content in the .php file to the message body that will be sent to a client which requests the .php file
  • The new non-standard tag is of the form

<?php…?>

  • The text inside the tag is PHP code

<?phpecho “<p>Hello World</p>";?>

  • The httpd demon executes this PHP code and copies the output text, generated by this PHP code, to the message body that will be sent to the client
  • Thus, from the above, the client would see only

<p>Hello World</p>

note following response
Note following response:
  • Chunked transfer-encoding is used
    • Because the httpd demon does not know, before executing the PHP content, how long the message body will be
  • PHP code will been replaced, in the message body, by its output
php files are not special
PHP files are not special
  • PHP files do not have to be executable
  • They can be regarded as simply HTML files with some new tags
php tags
PHP tags
  • In the example just seen, the PHP tag was

<?php … ?>

  • This is the best PHP tag to use – it is the one which works best if we are also using XML, because it avoids conflicts with XML Processing Instructions
  • However, you may occassionally see the following tags being used in other people’s PHP code:

<? … ?>

<% … %>

<script language=“php”> … </script>

ad