internet engineering: web application architecturece.sharif.edu › courses › 86-87 › 1 ›...
TRANSCRIPT
![Page 1: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/1.jpg)
Internet Engineering:
Web Application Architecture
Ali Kamandi
Sharif University of Technology
Fall 2007
![Page 2: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/2.jpg)
Centralized Architecture
terminals
mainframe
terminals
2
![Page 3: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/3.jpg)
Two Tier Application Architecture
� In the 90’s, systems should be client-
server
3
![Page 4: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/4.jpg)
Client-Server Architecture
� Client-Server divides programs into two types
� Server – manages information system resources or
provides well defined services for client
� Client – communicates with server to request resources
or services
� Advantage – Deployment flexibility
�scalability, maintainability
� Disadvantage – Potential performance, security, and
reliability issues from network communication
4
![Page 5: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/5.jpg)
3 Layer Architecture
5
![Page 6: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/6.jpg)
Three-Layer Architecture
� Layers can reside on one processor or be distributed to multiple processors
� Data layer – manages stored data in databases
� Business logic layer – implements rules and procedures of business processing
� Presentation (View) layer – accepts user input and
formats and displays processing results
6
![Page 7: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/7.jpg)
Web Architecture
PHP script
Web Server
(Apache, IIS)
Browser
(IE, FireFox,
Opera)
Desktop
(PC or MAC)
Database
Database
Server
SQLHTTP
HTML data
DHTML
Presentation HTML+DHTML
Dynamic HTML Generation,Business Logic
Persistence
7
![Page 8: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/8.jpg)
Enterprise Application Model
8
![Page 9: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/9.jpg)
Internet and Web-based Application Architecture
�Web is complex example of client-server architecture
�Can use Web protocols and browsers as application interfaces
�Benefits
�Accessibility
�Low-cost communication
�Widely implemented standards
9
![Page 10: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/10.jpg)
Negative Aspects of Internet Application Delivery
� security
� Fluctuating reliability of network throughput, slow
speed
� Volatile, changing standards
10
![Page 11: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/11.jpg)
Presentation layer (Client Side)
� Issue request to remote server using appropriate protocol (usually HTTP)
� Accept and render the returned HTML (or JPEG, ..) file
� Allow plug-ins to handle new file types
� execute client-side scripts in JavaScript
� Accept user input via a variety of controls on a form
11
![Page 12: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/12.jpg)
Application Layer: Server Side Presentation + Business Logic� Server (Apache, IIS)
� Identifying appropriate action to take – fetch a file� Sending output back to caller � Support for:
� thousands of concurrent users �multi-threading [ allow multiple processes to run concurrently]� caching [holding results in a temporary store to reduce re-
calculation]
� Server Script (e.g. in PHP)� Interacting with the server (accessing input and generating
output)� interpreting the requests according to business rules� requesting the appropriate data from the Persistence layer� computing derived data� creating the HTML (or GIF, ...) for the page
12
![Page 13: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/13.jpg)
Persistence layer
� interaction with the database using standard languages e.g. SQL queries using database-specific protocol over TCP/IP
� define and modify the data structures (e.g. tables)
� insert, update and delete data
� maintain data persistently, with backup and recovery
� handle transactions to support concurrent access to the database via locking
� optimise access by compilation of queries, indexing, replication of tables etc.
13
![Page 14: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/14.jpg)
Enterprise IT Requirements
DB2
DATAWAREHOUSE
BACKOFFICE
FRONTOFFICE
APPLICATIONINTEGRATION
Legacy Apps
Purchased Apps
Thin Client Apps Business
Intelligence
INTERNET
On-lineIntegration
SAP
Custom Apps
Off-lineIntegration
14
![Page 15: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/15.jpg)
Enterprise Application Model
15
![Page 16: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/16.jpg)
J2EE clients
�Web clients
�Dynamic web pages with HTML, rendered by
web browsers.
�Can include applets.
�Communicates with server typically using HTTP.
�Application clients
�User interface using GUI components such as
Swing and AWT.
�Directly accesses the business logic tier.16
![Page 17: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/17.jpg)
Web-tier Components
�Client can communicate with the business tier either directly or through servlets or JSP that are located in the web-tier.
� Servlets are special classes to realize the request-response model (get, post of HTTP).
�JSP is a developer-friendly wrapper over the servlet classes.
17
![Page 18: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/18.jpg)
Business-tier Components
�Business logic, rules, computation
�Enterprise Java Beans (EJB) can be used to implement this tier.
�This tier receives the data from the web-tier and processes the data and sends it to the EIS-tier and takes the data from the EIS and sends it to the web-tier.
18
![Page 19: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/19.jpg)
Enterprise Information System (EIS) Tier
� In general this corresponds to the database (relational database) and other information management system.
�The other information management systems may include Enterprise Resource Planning (ERP) and legacy system connected through open database connectivity.
19
![Page 20: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/20.jpg)
Enterprise Java Bean (EJB) (1)
�EJBs are distributed components used to implement business logic (no UI)
�Client of EJBs can be JSPs, servlets, other EJBs and external applications
�Clients see interfaces
20
![Page 21: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/21.jpg)
Enterprise Java Bean (EJB) (2)
�At run-time, an enterprise bean resides in an EJB container.
�An EJB container provides services such as security, transaction, deployment, …
�Process of installing an EJB in a container is called EJB deployment.
21
![Page 22: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/22.jpg)
Enterprise Java Bean (EJB) (3)
�Entity Beans�Represent persistent business Entity
�Persisted in storage system (usually Database)
�Session Beans�Encapsulate complex business logic
�Can coordinate transactional work on multiple entity beans
�Stateful/Stateless
�Message Driven beans
22
![Page 23: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/23.jpg)
JMS
�Point-to-point
�Destination is “queue”
23
![Page 24: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/24.jpg)
JMS
�Publish-subscribe
�Destination is “topic”
24
![Page 25: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/25.jpg)
What is Application Server
�Application servers enable the development of multi-tiered distributed applications. They are also called “middleware”
�An application server acts as the interface between the database(s), the web servers and the client browsers
25
![Page 26: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/26.jpg)
J2EE Application Servers
� Major J2EE products:
�BEA WebLogic
� IBM WebSphere
�Sun iPlanet Application Server
�Oracle 9iAS
�HP/Bluestone Total-e-Server
�Borland AppServer
�Jboss (free open source)
�…
26
![Page 27: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/27.jpg)
J2EE Benefits
� Component based model
� Container provided services
� Highly Scaleable
� Simplified Architecture
� Flexible security model
� Integration with existing systems
� Freedom to choose vendors of application servers, tools, components
� Multi-platform
27
![Page 28: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/28.jpg)
J2EE Multi-tier Model
28
![Page 29: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/29.jpg)
J2EE Application Scenarios
�Multi-tier typical application
29
![Page 30: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/30.jpg)
J2EE Application Scenarios
�Stand-alone client
30
![Page 31: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/31.jpg)
J2EE Application Scenarios
�Web-centric application
31
![Page 32: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/32.jpg)
J2EE Application Scenarios
�Business-to-business
32
![Page 33: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/33.jpg)
J2EE Services and APIs
� JNDI - Naming and directory services�Applications use JNDI to locate objects, such as
environment entries, EJBs, datasources, message queues
� Transaction service:�Controls transactions automatically
� Security
� J2EE Connector Architecture� Integration to non-J2EE systems, such as
mainframes and ERPs.�Standard API to access different EIS
33
![Page 34: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/34.jpg)
.NET Developer Tools
� Visual Studio.NET is an integrated development environment for developing .NET applications
� It includes support for multiple languages�Visual Basic.NET
�Visual C#.NET
�Visual C++.NET
�ASP.NET
34
![Page 35: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/35.jpg)
.NET High Level Description
� Common Language Runtime
� Platform Interoperability
�"You very seldom want to port an existing application
between platforms, but you do want to interoperate between applications regardless of platform; therefore, industry standard support for Web Services is of great importance.”
� -Dan Fox, Solutech, Inc. Author of: Building Distributed
Applications with Visual Basic.NET
35
![Page 36: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/36.jpg)
ASPX
� Microsoft Active Server Pages, .NET
� IIS Server
� Old ASP
�HTML with embedded server scripts
�Session Support
�VB Scripts
� ASPX.NET
�Separation of HTML and code
�Multiple Languages
36
![Page 37: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/37.jpg)
IIS
� Internet Information Services (IIS, sometimes Server or System) is a set of Internet-based services for servers using MS Windows
� Used for corporate, commerce and secure websites.
� It is integrated with Windows 2000 and Windows 2003 Server.
37
![Page 38: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/38.jpg)
Forrester Report: The State of Technology
AdoptionSource: http://download.microsoft.com/download/c/7/5/c75837dc-90bb-44d8-ae70-
db7bcc5980b9/TheStateofTechnologyAdoption.pdf
38
![Page 39: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/39.jpg)
Pros and Cons of J2EE
� Pros
� Portability
� Vendor choices for tools and application servers
� Rich developer community, many free tools.
� Cons
� Complex application development environment
� Tools can be difficult to use
� Java Swing limited for developing GUI's (?)
� Performance
39
![Page 40: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/40.jpg)
Pros and Cons of .Net
� Pros
�Easy to use tools
�Strong framework for building GUI's
�Language support
�Performance
� Cons
�Portability
�Choice of IDE's Limited
40
![Page 41: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/41.jpg)
.Net and J2EE key differences
�Fundamental Philosophy:
�“One language, Many Systems” vs. “Many
Languages, One System.”
41
![Page 42: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/42.jpg)
Questions
42
![Page 43: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/43.jpg)
.NET Online Resources
�http://www.msdn.microsoft.com/netframew
ork/
�http://www.gotdotnet.com/
�http://www.startvbdotnet.com
�http://www.asp.net
�http://www.dotnetwire.com
43
![Page 44: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/44.jpg)
J2EE Online Resources
�http://java.sun.com/j2ee/index.jsp
�http://library.theserverside.com/rlist/term/J
2EE.html
�http://www.javaworld.com
44
![Page 45: Internet Engineering: Web Application Architecturece.sharif.edu › courses › 86-87 › 1 › ce317 › resources › root › Slides... · 2015-04-06 · Internet and Web-based](https://reader033.vdocuments.site/reader033/viewer/2022042315/5f04413f7e708231d40d1282/html5/thumbnails/45.jpg)
Assignment 2
� Compare .Net and J2EE
� See these papers:
� http://java.sun.com/performance/reference/whitepapers/WS_Test-1_0.pdf
� http://www.gotdotnet.com/team/compare/Benchmark_response.pdf
� Analyze the benchmarks and prepare a report.
� Benchmark approach, fairness, results