Object-Oriented Enterprise Application Development Introduction to the Internet.

54
Object-Oriented Enterprise Application Development Introduction to the Internet
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    221
  • download

    0

Transcript of Object-Oriented Enterprise Application Development Introduction to the Internet.

Page 1: Object-Oriented Enterprise Application Development Introduction to the Internet.

Object-Oriented Enterprise Application Development

Introduction to the Internet

Page 2: Object-Oriented Enterprise Application Development Introduction to the Internet.

Topics

During this class we will examine:

A Brief History of the Internet

N-Tier Architectures

HTTP Protocol and the Request-Response Model

Required Technology for the Course

Page 3: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (1 of 12)

Like all other technology the Internet has evolved over time.

The following slides show an abbreviated timeline of the Internet's evolution.

Page 4: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (2 of 12)

1957The USSR launches Sputnik. The US response is to form Advanced Research Projects Agency (ARPA) within the Department of Defense (DoD).

1961Leonard Kleinrock of MIT produces the first paper on packet switching theory.

Page 5: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (3 of 12)

1964Paul Baran of RAND produces paper on packet switching networks.

1969ARPANET commissioned by the DoD.

1971Ray Tomlinson develops the first email program.

Page 6: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (4 of 12)

1972Ray Tomlinson modifies the email program for ARPANET.

RFC 318 for Telnet.

1973Bob Metcalfe proposes Ethernet.

RFC 454 for FTP.

ARPA study shows that email is 75% of the traffic over ARPANET.

Page 7: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (5 of 12)

1975First ARPANET mailing list created by Steve Walker.

1977RFC 733 for mail.

1978TCP split into TCP and IP.

Page 8: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (6 of 12)

1979USENET established.

Kevin MacKenzie proposes the use of smileys.

1977RFC 733 for mail.

1980First virus infects ARPANET. It was accidental.

Page 9: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (7 of 12)

1983University of Wisconsin produces the first name server.

1984DNS is introduced.

Number of hosts breaks 1,000.

Moderated USENET groups introduced.

Page 10: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (8 of 12)

1985Symbolics.com becomes the first registered domain.

100 years to the day of the last spike being driven on the cross-Canada railroad, the last Canadian university is connected to NetNorth in a one-year effort to have coast-to-coast connectivity.

Page 11: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet (9 of 12)

1986Number of hosts breaks 10,000.

1987Internet worm released.

CERT formed.

DoD adopts the OSI model.

Internet Relay Chat (IRC) developed by Jarkko Oikarinen

Page 12: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet(10 of 12)

1989Number of hosts breaks 100,000.

1990ARPANET ceases to exist.

World.std.com becomes the first provider of dial-up Internet access.

Page 13: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet(11 of 12)

1991WWW released by CERN (Tim Berners-Lee).

PGP released by Phillip Zimmerman.

1993INTERNIC formed.

Mosaic introduced.

Page 14: Object-Oriented Enterprise Application Development Introduction to the Internet.

An Introduction to the Internet(12 of 12)

1994First on-line shopping malls and banks appear.

1995Sun launches Java.

Netscape goes public.

1998ICANN (Internet Corporation for Assigned Names and Numbers) formed.

Page 15: Object-Oriented Enterprise Application Development Introduction to the Internet.

Architectures

Page 16: Object-Oriented Enterprise Application Development Introduction to the Internet.

N-Tier Architectures

Technical architectures have evolved to handle the increasingly complex requirements of the applications that they support.

These architectures are loosely described in terms of tier. The degree of tier governs the overall structure of the architecture as well as its inherent properties and limitations.

Page 17: Object-Oriented Enterprise Application Development Introduction to the Internet.

1-Tier Architectures

This architecture describes a single server that handled all incoming requests.

Scalability is limited by the capacity of the server.

The client is usually a dumb terminal.

Page 18: Object-Oriented Enterprise Application Development Introduction to the Internet.

2-Tier Architectures

This architecture describes a smart client that interacts with a single server.

The client handles simple logic.

The server provides data and business logic.

Page 19: Object-Oriented Enterprise Application Development Introduction to the Internet.

3-Tier Architectures

This is a 2-tier architecture with an additional server.

The new server handles all requests for data.

This separates business logic from data logic.

Page 20: Object-Oriented Enterprise Application Development Introduction to the Internet.

N-Tier Architectures

This is a common architecture for Internet applications.

Presentation, business, and data access logic are separated into dedicated tiers within the architecture.

Page 21: Object-Oriented Enterprise Application Development Introduction to the Internet.

Standard Hardware & Software Configurations

Page 22: Object-Oriented Enterprise Application Development Introduction to the Internet.

Standard Hardware & Software

Modern e-commerce applications involve a staggering array of specialized hardware and software.

For this course we'll only be concerned with three (3) specific technologies:

Web Servers

Application Servers

Database Servers

Page 23: Object-Oriented Enterprise Application Development Introduction to the Internet.

Web Servers

Web servers deliver presentation content to a client.

As a general rule, the web server is the only part of an e-commerce application with which a client interacts.

Its fundamental role is to act as the application's server-side presentation layer.

Page 24: Object-Oriented Enterprise Application Development Introduction to the Internet.

Application Servers

Application servers are used to hold an application's business logic.

Clients rarely communicate with an application server directly; the client communicates with a web server which sends the request to the application server.

Page 25: Object-Oriented Enterprise Application Development Introduction to the Internet.

Database Servers

Database servers hold an application's data logic.

It is usually only the application server that communicates with the database server.

This maintains the separation between the application's business and data logic.

Page 26: Object-Oriented Enterprise Application Development Introduction to the Internet.

Architecture Capabilities

Page 27: Object-Oriented Enterprise Application Development Introduction to the Internet.

Server Architecture Issues

When designing a server architecture, we need to be aware of the following issues:

Availability

Scalability

Performance

Security

Manageability

These are sometimes referred to as the capabilities of an architecture.

Page 28: Object-Oriented Enterprise Application Development Introduction to the Internet.

Availability

Availability is concerned with keeping a system operational despite hardware or software problems.

This is sometimes called fault tolerance.

One key approach to ensure availability is redundancy.

Page 29: Object-Oriented Enterprise Application Development Introduction to the Internet.

Scalability

Scalability is a measure of how easily an architecture can handle increased loads or be installed on higher-capacity hardware.

We generally want our architectures to be upwardly scalable.

Page 30: Object-Oriented Enterprise Application Development Introduction to the Internet.

Performance

Performance can have many metrics depending on the aspects of the architecture that we deem to be important.

Some critical measures include:Response time

Throughput

These performance metrics often require us to split servers across physical devices.

Page 31: Object-Oriented Enterprise Application Development Introduction to the Internet.

Security

The goal of security is to ensure that the only information that a user sees is the information that they are supposed to see.

This is common for e-commerce sites involving the exchange of sensitive information such as credit card numbers or personal data.

Page 32: Object-Oriented Enterprise Application Development Introduction to the Internet.

Manageability

Manageability is concerned with the effort required to make changes to the architecture such as installations or configuration alterations.

Once we get into multi-tiered architectures, this capability can quickly become a significant burden on an application support group.

Page 33: Object-Oriented Enterprise Application Development Introduction to the Internet.

Cost

Cost is the strongest force in the e-commerce realm.

All of our architectural decisions must be put through a reasonable cost-benefit analysis.

We must be able to convince management that the cost of an architectural feature will be justified by the benefits of that feature.

Page 34: Object-Oriented Enterprise Application Development Introduction to the Internet.

HTTP

Page 35: Object-Oriented Enterprise Application Development Introduction to the Internet.

HyperText Transfer Protocol

Many modern N-tier architectures are designed as Internet applications.

The underlying network protocol of the Internet is TCP/IP.

Internet applications make use of the HyperText Transfer Protocol, or HTTP, to provide communications between clients and servers.

Page 36: Object-Oriented Enterprise Application Development Introduction to the Internet.

HTTP Versions

In 1997 most servers and browsers communicated using HTTP 1.0

The current version is HTTP 1.1.

The HTTP specification is administered by the World Wide Web Consortium (W3C).

http://www.w3.org/Protocols/

Page 37: Object-Oriented Enterprise Application Development Introduction to the Internet.

Request-Response Model

When working with HTTP, a request-response model is used:

The client opens a connection to a server,

The client requests some resource from the server.

The server sends a response containing the requested resource back to the client.

The client and server close their connections.

Page 38: Object-Oriented Enterprise Application Development Introduction to the Internet.

HTTP Request

Conceptually a request is just that: a request for a specified resource from a target server on a given port.

An HTTP request has the following format:Request-method URI and HTTP version

Optional request headers

A blank line

Optional data (POST method only)

Page 39: Object-Oriented Enterprise Application Development Introduction to the Internet.

HTTP Request - Sample

Suppose I issue a request for the following URL:http://www.depaul.edu/~cjones/index.html

The HTTP request would appear as:GET /~cjones/index.html HTTP/1.0

Page 40: Object-Oriented Enterprise Application Development Introduction to the Internet.

HTTP Request Methods

There are three (3) key request methods:GET: Data sent to the server goes on the URI as arguments.

POST: The same as GET but data sent to the server goes on a separate line. This provides basic security.

HEAD: As GET but the server only provides the response headers and not the actual content.

Page 41: Object-Oriented Enterprise Application Development Introduction to the Internet.

HTTP Response

As you would expect, a response is generated when the server returns the requested resource back to the requestor..

An HTTP response has the following format:

HTTP/version Status-Code Message

Page 42: Object-Oriented Enterprise Application Development Introduction to the Internet.

HTTP Response - Sample

Suppose I issue a request for the following URL:http://www.depaul.edu/~cjones/index.html

The HTTP request would appear as:GET /~cjones/index.html HTTP/1.0

The HTTP response might appear as:HTTP/1.0 200 OK

Page 43: Object-Oriented Enterprise Application Development Introduction to the Internet.

Typical HTTP Responses

These are some common HTTP responses:200 OK

204 No Content

301 Moved Permanently

401 Unauthorized

404 Not Found

500 Internal Server Error

501 Not Implemented

Page 44: Object-Oriented Enterprise Application Development Introduction to the Internet.

Consequences

The request-response model results in side-effects that change how we write software to function layered on top of HTTP.

Because each request is independent from every other request, HTTP is considered a stateless protocol.

We'll address this issue later in the course.

Page 45: Object-Oriented Enterprise Application Development Introduction to the Internet.

Required Technology

Page 46: Object-Oriented Enterprise Application Development Introduction to the Internet.

Hardware

In order for this course to function, you'll need a computer.

It can be a laptop or desktop. You should be able to install software on it.

You're better off using your own hardware if possible.

I'll try to have some university machines configured with the software if necessary.

Page 47: Object-Oriented Enterprise Application Development Introduction to the Internet.

Hardware Configuration

I don't care what platform you use but it needs to be compatible with:

Intel Pentium Processor

Microsoft Windows NT 4.0 or Windows 2K

I don't provide hardware support. If you need this kind of support, start cracking open the manuals.

Page 48: Object-Oriented Enterprise Application Development Introduction to the Internet.

Software

This class requires the following software components:

Relational database

Web server

Application server

Web browser

Page 49: Object-Oriented Enterprise Application Development Introduction to the Internet.

Software Configuration

I'm standardizing the software configuration:

Microsoft Access or Cloudscape 3.6 (database)

Tomcat 3.2 (web & application server)

MSIE or Netscape (web browser)

Page 50: Object-Oriented Enterprise Application Development Introduction to the Internet.

Java

This class requires extensive use of Java.

Based on your operating system you have two (2) choices:

Windows 95/98: Install Java 1.3 Standard Edition and then install the JSDK (Java Servlet Development Kit) on top of it.

Windows NT/2K: Install Java 1.2.2 Enterprise Edition. You can also use the Windows 95/98 installation instructions.

Page 51: Object-Oriented Enterprise Application Development Introduction to the Internet.

Review

During this class we've discussed:

A Brief History of the Internet

N-Tier Architectures

HTTP Protocol and the Request-Response Model

Required Technology for the Course

Page 52: Object-Oriented Enterprise Application Development Introduction to the Internet.

Resources

Hobbes' Internet TimelineRobert H. Zakon, 1993-2000.

Core Web ProgrammingHall, M. Core Books. 1998, Upper Saddle River, NJ: Prentice-Hall, Inc. 1279.ISBN: 0-13-625666-X

Page 53: Object-Oriented Enterprise Application Development Introduction to the Internet.

Coming Attractions

Next week we will begin using the JDBC API.

We'll look at the mechanics around setting up and accessing a JDBC compliant database.

We'll discuss transaction control and the proper closing and de-allocation of JDBC resources.

Please read chapter 18 in your text.

Page 54: Object-Oriented Enterprise Application Development Introduction to the Internet.

Coming Attractions

Next week we will begin using the JDBC API.

We'll look at the mechanics around setting up and accessing a JDBC compliant database.

We'll demonstrate how to manipulate the database using JDBC.

We'll discuss transaction control and the proper closing and de-allocation of JDBC resources.