Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Web Application Architecture دكترمحسن كاهاني http://www.um.ac.ir/~kahani/ Client/Server Systems Networked computing model Processes distributed between clients and servers Client – Workstation (usually a PC) that requests and uses a service Server – Computer (PC/mini/mainframe) that provides a service For DBMS, server is a database server دكتر كاهاني-مبانی کامپیوتر Client/Server Architectures File Server Architecture Client does extensive processing Database Server Architecture Three-tier/N-tier Architecture Client does little processing دكتر كاهاني-مبانی کامپیوتر File Server Architecture FAT CLIENT All processing is done at the PC that requested the data Entire files are transferred from the server to the client for processing. Problems: Huge amount of data transfer on the network Each client must contain full DBMS Heavy resource demand on clients Client DBMSs must recognize shared locks, integrity checks, etc. دكتر كاهاني-مبانی کامپیوتر File Server Architecture FAT CLIENT دكتر كاهاني-مبانی کامپیوتر Database Server Architectures 2-tiered approach Client is responsible for I/O processing logic Some business rules logic Server performs all data storage and access processing DBMS is only on server Advantages Clients do not have to be as powerful Greatly reduces data traffic on the network Improved data integrity since it is all processed centrally Stored procedures some business rule enforcement handled by server دكتر كاهاني-مبانی کامپیوتر 2-Tier Architecture Advantages: Compiled SQL statements Reduced network traffic Improved security Improved data integrity Thinner clients دكتر كاهاني-مبانی کامپیوتر 2-Tier Architecture Disadvantages Writing stored procedures takes time Proprietary nature of stored procedures reduces portability Each client must be loaded with the applications used at that location Upgrades to an application require that each client be upgraded separately دكتر كاهاني-مبانی کامپیوتر Database server architecture Thinner clients DBMS only on server دكتر كاهاني-مبانی کامپیوتر 3-Tier or N-Tier Architectures Three layers: Client Application server Database server GUI interface (I/O processing) Business rules Data storage Thin Client PC just for user interface and a little application processing. Limited or no data storage. دكتر كاهاني-مبانی کامپیوتر Three-tier architecture Thin Clients Business rules on separate server DBMS only on DB server دكتر كاهاني-مبانی کامپیوتر 4-Tier or N-Tier Architectures Four layers: Browser Client Web Server Application server Database server Thinnest Client PC just for user interface and minimal application processing. Almost no data storage (sometimes no hard drive). دكتر كاهاني-مبانی کامپیوتر WebApp simple model Browser Web Server HTTP Requests HTTP Responses Disk I/O Web Pages On Disk دكتر كاهاني-مبانی کامپیوتر Programmability Drawback to the simple document model Static Assumes documents created before they are requested. دكتر كاهاني-مبانی کامپیوتر Server-side programmability The request causes the response to be “generated” There are several ways to do this: CGI ASP PHP Servlets دكتر كاهاني-مبانی کامپیوتر CGI Common Gateway Interface URL (i.e., the request) determines the name of a program to run CGI provides a way to specify a set of parameters to give the program. Result of running the program is the generated web document that is returned to the client. دكتر كاهاني-مبانی کامپیوتر CGI Example http://wwwx.cs.unc.edu/~kmp/cgi/ex1.cgi?from=ketan&mesg=hello Server name Program name Parameter “from” Parameter “mesg” set to “ketan” set to “hello” دكتر كاهاني-مبانی کامپیوتر ASP Active Server Pages (Microsoft product) Uses Visual Basic for scripting. Programs embedded into page. Special objects provided for managing CGI query request and keeping state. Integrated into the Microsoft Internet Information Server 3.0 دكتر كاهاني-مبانی کامپیوتر ASP Basics ASP files are plain ASCII text Scripts in VBScript or JavaScript Server side scripts are enclosed in <% and %> tags Only HTML is sent to client Users can use the <SCRIPT> tag to run additional interpreters (i.e., PERL) Giving the file an extension of ASP makes it an Active Server Page دكتر كاهاني-مبانی کامپیوتر ASP Script Processing ASP read line by line Server script processed and results sent to client Server-side includes also available - processed first HTML or client-side script passed to client Integrated script debugger in IIS 4.0 / 5.0 دكتر كاهاني-مبانی کامپیوتر PHP PHP is an interpreted scripting language. Document contains a PHP program mixed with HTML (like ASP) Strong database support Growing popularity دكتر كاهاني-مبانی کامپیوتر PHP Language Basics All PHP code is contained in one of several script tags: <? // Some code ?> <?php // Some code here ?> <script language=“PHP"> // Some code here </script> دكتر كاهاني-مبانی کامپیوتر Java Servlets Java version of Perl/CGI Java program created and run to service request and generate reply Special features for state management. Can take advantage of any/all other Java packages and features Key advantage: persistence دكتر كاهاني-مبانی کامپیوتر Java Server Page (JSP) Java Server Pages (JSP) A simplified, fast way to create dynamic web content HTML or XML pages with embedded Java Code or Java Beans Can be a mix of template data in HTML/XML with some dynamic content A JSP is a complied to a Java Servlet automatically by the Servlet container, it is then cached Latest JSP Spec is 1.2 دكتر كاهاني-مبانی کامپیوتر JSP Basics Used in JSP pages, pages that end *.jsp Comment <%-- Comment --%> Declaration <%! int x = 0; %> Expression <%= expression %> Outputs to the Response stream Like a “printf” to the browser Do NOT use semi-colon to terminate the line Scriplets - contains Java Code <% code fragments %> دكتر كاهاني-مبانی کامپیوتر Web App Model II Browser HTTP Requests Web Server HTTP Responses Servlet Programmable, dynamic, document construction Disk I/O Info On Disk دكتر كاهاني-مبانی کامپیوتر At the other end. End result of server-side mechanisms is a web document. Client receives and displays the document. What does display the document mean? دكتر كاهاني-مبانی کامپیوتر Client Side Technologies HTML JavaScript CSS DHTML XML XSL Java Applets Plugins دكتر كاهاني-مبانی کامپیوتر Client Side Scripting Client side scripts are embedded inside HTML document. They are interpredted by browser. When Web brower encounters a script, it calls a scripting interpreter, which parses and deciphers the scripting code. Provide response to questions and queries without interventions from the server Validate user data Calculate expressions Link to other applications Java script develped by Netscape Navigator 2. Also supported in Microsoft Internet Explorer 3 and laster (but called Jscript). VB Script is a subset of the Microsoft Visual Basic language. دكتر كاهاني-مبانی کامپیوتر Interactive content: choice between fat client vs. thin client. Client side advantages Faster response time Better animation Simpler server programs Client side disadvantages Longer load time Browser compatibility Complexity in web page design دكتر كاهاني-مبانی کامپیوتر Javascript Advantage Easy to learn and use Wide browser support Protection of local resources Disadvantage Browser compatibility issues Not object oriented Unable to gain access to local resources دكتر كاهاني-مبانی کامپیوتر Java applet Advantage High functionality Object oriented and full graphics functionality Protection of local resources Wide Browser support With Java2, be able to gain access to local resources with signed applets Disadvantage JVM compatibility issues Difficulty to install and configure for local access Loading time and performance may be poor for large application. دكتر كاهاني-مبانی کامپیوتر Active X controls Advantage High functionality Object based and full graphics functionality Complete access of local resources with signed controls Disadvantage Only runs on Microsoft platforms Trust and protection issues دكتر كاهاني-مبانی کامپیوتر Plug-in Advantage Easy to learn and install Can be used for very special applications (e.g. streaming audio/video, viewing documents, 3-D animation) High functionality Protection of local resources Disadvantage Need installation Unable to gain access to local resources دكتر كاهاني-مبانی کامپیوتر Web App Model III Browser HTTP Requests Web Server HTTP Responses Applet Programmable, dynamic interface to the document Servlet Programmable, dynamic, document construction Disk I/O Info On Disk دكتر كاهاني-مبانی کامپیوتر Backend Databases Using a DBMS instead of files Using SQL to store/retrieve data ODBC JDBC دكتر كاهاني-مبانی کامپیوتر Web App Model IV Browser HTTP Requests DB On Disk Web Server HTTP Responses Applet Programmable, dynamic interface to the document Servlet Programmable, dynamic, document construction SQL Database Structured, table-based, information storage دكتر كاهاني-مبانی کامپیوتر MVC مبانی کامپیوتر-دكتر كاهاني Web App As MVC Browser HTTP Requests DB On Disk Web Server HTTP Responses Applet Programmable, dynamic interface to the document Servlet Programmable, dynamic, document construction SQL Database Structured, table-based, information storage View Controller Model دكتر كاهاني-مبانی کامپیوتر