1 / 54

Object-Oriented Enterprise Application Development

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.

berg
Download Presentation

Object-Oriented Enterprise Application Development

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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

  12. 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.

  13. 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.

  14. 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.

  15. Architectures

  16. 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.

  17. 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.

  18. 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.

  19. 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.

  20. 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.

  21. Standard Hardware & Software Configurations

  22. 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

  23. 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.

  24. 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.

  25. 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.

  26. Architecture Capabilities

  27. 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.

  28. 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.

  29. 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.

  30. 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.

  31. 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.

  32. 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.

  33. 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.

  34. HTTP

  35. 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.

  36. 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/

  37. 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.

  38. 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)

  39. 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

  40. 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.

  41. 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

  42. 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

  43. 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

  44. 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.

  45. Required Technology

  46. 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.

  47. 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.

  48. Software • This class requires the following software components: • Relational database • Web server • Application server • Web browser

  49. 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)

  50. 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.

More Related