540 likes | 695 Views
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.
E N D
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
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.
An Introduction to the Internet (2 of 12) • 1957 • The USSR launches Sputnik. The US response is to form Advanced Research Projects Agency (ARPA) within the Department of Defense (DoD). • 1961 • Leonard Kleinrock of MIT produces the first paper on packet switching theory.
An Introduction to the Internet (3 of 12) • 1964 • Paul Baran of RAND produces paper on packet switching networks. • 1969 • ARPANET commissioned by the DoD. • 1971 • Ray Tomlinson develops the first email program.
An Introduction to the Internet (4 of 12) • 1972 • Ray Tomlinson modifies the email program for ARPANET. • RFC 318 for Telnet. • 1973 • Bob Metcalfe proposes Ethernet. • RFC 454 for FTP. • ARPA study shows that email is 75% of the traffic over ARPANET.
An Introduction to the Internet (5 of 12) • 1975 • First ARPANET mailing list created by Steve Walker. • 1977 • RFC 733 for mail. • 1978 • TCP split into TCP and IP.
An Introduction to the Internet (6 of 12) • 1979 • USENET established. • Kevin MacKenzie proposes the use of smileys. • 1977 • RFC 733 for mail. • 1980 • First virus infects ARPANET. It was accidental.
An Introduction to the Internet (7 of 12) • 1983 • University of Wisconsin produces the first name server. • 1984 • DNS is introduced. • Number of hosts breaks 1,000. • Moderated USENET groups introduced.
An Introduction to the Internet (8 of 12) • 1985 • Symbolics.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.
An Introduction to the Internet (9 of 12) • 1986 • Number of hosts breaks 10,000. • 1987 • Internet worm released. • CERT formed. • DoD adopts the OSI model. • Internet Relay Chat (IRC) developed by Jarkko Oikarinen
An Introduction to the Internet(10 of 12) • 1989 • Number of hosts breaks 100,000. • 1990 • ARPANET ceases to exist. • World.std.com becomes the first provider of dial-up Internet access.
An Introduction to the Internet(11 of 12) • 1991 • WWW released by CERN (Tim Berners-Lee). • PGP released by Phillip Zimmerman. • 1993 • INTERNIC formed. • Mosaic introduced.
An Introduction to the Internet(12 of 12) • 1994 • First on-line shopping malls and banks appear. • 1995 • Sun launches Java. • Netscape goes public. • 1998 • ICANN (Internet Corporation for Assigned Names and Numbers) formed.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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/
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.
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)
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
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.
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
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
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
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.
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.
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.
Software • This class requires the following software components: • Relational database • Web server • Application server • Web browser
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)
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.