WWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz
|
|
- Colin Lane
- 6 years ago
- Views:
Transcription
1 WWW Architecture I Software Architecture VO/KU ( / ) Roman Kern KTI, TU Graz Roman Kern (KTI, TU Graz) WWW Architecture I / 81
2 Web Development Tutorial Java Web Development Roman Kern (KTI, TU Graz) WWW Architecture I / 81
3 Web App - Static Content Java web application Most basic way to create a Java web application... using Servlet... using JSPs (Java Server Pages) Example: Maven project For example using Maven and Tomcat Roman Kern (KTI, TU Graz) WWW Architecture I / 81
4 Web App - Static Content Example Static Web Application 1 mvn archetype:generate -DgroupId=at.tugraz.sa -DartifactId=webapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 2 mkdir -p src/main/java/at/tugraz/sa 3 kate pom.xml (add the servlet dependency) 4 kate src/main/webapp/web-inf/web.xml (add the Hello servlet) 5 kate src/main/java/at/tugraz/sa/helloservlet.java (add the servlet code) 6 optional: kate src/main/webapp/index.jsp (add some code) 7 mvn package (build the.war file) 8 Copy the target/webapp.war into the webapps directory of Tomcat (or symlink) 9 Start Tomcat, e.g. bin/catalina.sh run 10 Point browser to localhost:8080/webapp/hello/ (for the servlet) 11 optional: Point browser to localhost:8080/webapp/ (for the jsp) Roman Kern (KTI, TU Graz) WWW Architecture I / 81
5 Sample pom.xml (just the dependency part) <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.5</version> <scope>provided</scope> </dependency> Roman Kern (KTI, TU Graz) WWW Architecture I / 81
6 Sample web.xml <?xml version="1.0" encoding="utf-8"?> <web-app xmlns=" xmlns:xsi=" xsi:schemalocation=" version="2.5"> <servlet> <servlet-name>hello</servlet-name> <servlet-class>at.tugraz.sa.helloservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping> </web-app> Roman Kern (KTI, TU Graz) WWW Architecture I / 81
7 Sample Servlet package at.tugraz.sa; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class HelloServlet extends HttpServlet { protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html"); response.setstatus(httpservletresponse.sc_ok); response.getwriter().println("<h1>hello Servlet</h1>"); response.getwriter().println("session=" + request.getsession(true).getid()); } } Roman Kern (KTI, TU Graz) WWW Architecture I / 81
8 Sample JSP <html> <body> <h2>hello World!</h2> The time is now <%= new java.util.date() %> </body> </html> Roman Kern (KTI, TU Graz) WWW Architecture I / 81
9 Database Connection Java database connection The hard way: JDBC The more convenient way: Object-Relational Mapping (ORM) e.g. Hibernate, Java Persistence API (JPA) Roman Kern (KTI, TU Graz) WWW Architecture I / 81
10 Web App - Dynamic Content Java based dynamic web application There are many existing libraries to develop dynamic Java web applications e.g. Java Server Faces (JSF), Wicket, Struts, Google Web Toolkit (GWT),... Separate the client from the server REST like services on the server JavaScript application on the client Roman Kern (KTI, TU Graz) WWW Architecture I / 81
11 Web App - Dynamic Content Example for a Java based dynamic web application Server-side: REST API Jersey Client-side: JavaScript AngularJS (functionality) + Bootstrap (layout) The server and the client communicate by exchanging JSON objects. AngularJS supports the Model-View-Controller pattern on the client side. Roman Kern (KTI, TU Graz) WWW Architecture I / 81
12 Recap Architecture Styles Roman Kern (KTI, TU Graz) WWW Architecture I / 81
13 Recap Separation of Concerns Layered Architectures Client Server Architecture Model-View-Controller Decouple Notification Architectures Interceptor Blackboard Reusability Pipes and Filters Roman Kern (KTI, TU Graz) WWW Architecture I / 81
14 Recap Data Integrability Data Centred Architectures Client Server Architecture Performance & Scalability Data Flow Architectures Peer to Peer Architecture Service Architectures Roman Kern (KTI, TU Graz) WWW Architecture I / 81
15 Outline 1 Introduction 2 Quality Requirements 3 Web Protocols 4 Web Architecture 5 Web Systems 6 Web Applications 7 Web n-tier Architecture 8 Web Data Management Roman Kern (KTI, TU Graz) WWW Architecture I / 81
16 Introduction Introduction Basic concepts Roman Kern (KTI, TU Graz) WWW Architecture I / 81
17 Introduction The Web Started as a static information system Hypermedia: documents linked into a web By following links users retrieve the documents Based on HTTP, HTML, URL (global addressing schema) All components very simple: the major reason for the huge success Roman Kern (KTI, TU Graz) WWW Architecture I / 81
18 Systems Rate of Growth Introduction Time to reach 50 million people Telephone 75 years Radio 35 years TV 13 years The Web 4 years Roman Kern (KTI, TU Graz) WWW Architecture I / 81
19 Introduction Functional Requirements Berners-Lee: Web s major goal was to be a shared information space through which people and machines could communicate. A way for people to structure their information Usable for themselves and others A way to reference and structure information provided by others Cross-platform, global scope Roman Kern (KTI, TU Graz) WWW Architecture I / 81
20 Quality Requirements Quality Requirements Design goals of the Web. Roman Kern (KTI, TU Graz) WWW Architecture I / 81
21 Quality Requirements Quality attributes Usability: it must be very easy to use I.e. very easy to create, structure and reference information Participation was voluntary and it was the only possibility to attract the users Very error forgiving in structuring and referencing because of non-technical background of users Roman Kern (KTI, TU Graz) WWW Architecture I / 81
22 Quality Requirements Quality attributes Technical simplicity: it must be very easy for developers to implement All components simple and text-based I.e the first version of HTTP: servers need to respond to the GET method HTML very simple: easy to write parsers and browsers URLs extremely simple Roman Kern (KTI, TU Graz) WWW Architecture I / 81
23 Quality Requirements Quality attributes Extensibility: it must be easy to add new features The first versions of components very simple - improvements were needed User requirements change even in a closed environment In a global scope the change is only feature that does not change E.g. very soon users wanted to have search facility apart browsing - HTML forms were introduced Roman Kern (KTI, TU Graz) WWW Architecture I / 81
24 Quality Requirements Quality attributes Scalability: it needs to match the Internet-scale More precisely: anarchic scalability The Internet is not under control of a single organization it is totally decentralized Need to continue operating when under an unanticipated load or malformed or maliciously constructed data Roman Kern (KTI, TU Graz) WWW Architecture I / 81
25 Quality Requirements Quality attributes Anarchic scalability: consequences Clients cannot be expected to maintain knowledge of all servers Servers cannot be expected to retain knowledge of state across requests Documents cannot have back-links: the number of references to a resource is proportional to the number of people interested in that information Roman Kern (KTI, TU Graz) WWW Architecture I / 81
26 Quality Requirements Development of The Web The original Web was not designed to meet all of the requirements and quality attributed defined above It lacked also an architectural vision at that time that would meet these ambitious requirements Web Consortium was founded to solve these problems A lot of researchers worked on defining an architecture to meet these needs Roman Kern (KTI, TU Graz) WWW Architecture I / 81
27 Web Protocols Web Protocols Basic Technological Building Blocks Roman Kern (KTI, TU Graz) WWW Architecture I / 81
28 Web Protocols HTTP Protocol The Hypertext Transfer Protocol (HTTP) builds the basic communication infrastructure HTTP is a text based protocol between a client and a server A HTTP request consists of a method and a number of headers A HTTP response consists of a status code and a number of header Both, request and response, may contain additional (binary) content Roman Kern (KTI, TU Graz) WWW Architecture I / 81
29 Web Protocols HTTP Protocol In the first (wildly used) version of HTTP (1.0):... the connection between the client and the server is closed after the response... therefore no need to specify the size of the content being transmitted In version 1.1:... the protocol supports keep-alive to reuse the same connection for multiple request/responses... a header that specifies the content length is needed Roman Kern (KTI, TU Graz) WWW Architecture I / 81
30 Web Protocols HTTP Protocol There are a number of common headers The cookie header allows the server to store a small piece of data on the client... used for session tracking The content type header specifies the type of the payload and optionally its encoding The last change date, or specific hash values help to detect whether content has been changes on the server Roman Kern (KTI, TU Graz) WWW Architecture I / 81
31 Web Protocols HTTP Protocol - Example Example Request GET /webapp/hello/ HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86\_64; rv:19.0) Gecko/ Firefox Cookie: JSESSIONID=9C E65F0CB175BDF ; Example Response HTTP/ OK Server: Apache-Coyote/1.1 Content-Type: text/html;charset=iso Content-Length: 64 Date: Mon, 02 Dec :46:05 GMT <content> Roman Kern (KTI, TU Graz) WWW Architecture I / 81
32 Web Protocols Early Web Applications Initially Web applications just served static content The first response to dynamic content has been the Common Gateway Interface (CGI)... as it has been easy to transform a command line application to a web application The web server invokes the application and the standard output is used for the HTTP response Disadvantage: For each request one needs to spawn a new process Roman Kern (KTI, TU Graz) WWW Architecture I / 81
33 Web Architecture Web Architecture Basic Architecture Styles of the Web Roman Kern (KTI, TU Graz) WWW Architecture I / 81
34 Web Architecture Deriving the Web architecture Introducing constraints on the Web architecture to obtain an optimal solution to the requirements and quality attributes Each constraint will have advantages and disadvantages The whole design process is then a balancing process Optimisation to obtain a best-match for the Web architecture Roman Kern (KTI, TU Graz) WWW Architecture I / 81
35 Client-server Web Architecture Figure: Client-server style Roman Kern (KTI, TU Graz) WWW Architecture I / 81
36 Web Architecture Client-server Separation of concerns Separates user-interface from data manipulation concerns Supports independent evolvability E.g. clients and servers can be developed independently and across organizational boundaries Supports Internet-scale attribute Roman Kern (KTI, TU Graz) WWW Architecture I / 81
37 Stateless Web Architecture Figure: Stateless server Roman Kern (KTI, TU Graz) WWW Architecture I / 81
38 Web Architecture Stateless Communication must be stateless in nature Each request from client must contain all the information needed to process that request I.e. it can not take advantage of session information stored on the server Session state is completely on the client Roman Kern (KTI, TU Graz) WWW Architecture I / 81
39 Web Architecture Stateless Supports visibility, reliability and scalability Visibility: only look at a single request to determine the full nature of the request Reliability: it eases the task of recovering from partial failures Scalability: not having to store state between requests allows the server component to quickly free resources Scalability: simplifies implementation because servers do not need to manage information across multiple requests Roman Kern (KTI, TU Graz) WWW Architecture I / 81
40 Web Architecture Cache Figure: Cache Roman Kern (KTI, TU Graz) WWW Architecture I / 81
41 Web Architecture Cache Information can be labeled (by servers) as cacheable If a response is cacheable, then a client cache is given the right to reuse that response data for later, equivalent requests Improves efficiency, scalability, user-perceived performance Decreases reliability if the data does not match Midway: ask a server if the data has changed Roman Kern (KTI, TU Graz) WWW Architecture I / 81
42 Uniform interface Web Architecture Roman Kern (KTI, TU Graz) WWW Architecture I / 81
43 Web Architecture Uniform interface Uniform interface between components Visibility of interactions is improves Simplifies the overall architecture Decouples implementations from the services Improves Internet-scale Roman Kern (KTI, TU Graz) WWW Architecture I / 81
44 Web Architecture Uniform interface Uniform interface degrades efficiency Information is accessed and transferred in a standardized form rather than in an application specific form To define a uniform interface we need: Identification of resources (URL) Manipulation of resources through representations (HTML, recently XML) Self-descriptive messages (GET, POST, PUT, DELETE in HTTP) Roman Kern (KTI, TU Graz) WWW Architecture I / 81
45 Layered system Web Architecture Figure: Layered system Roman Kern (KTI, TU Graz) WWW Architecture I / 81
46 Web Architecture Layered system Improves Internet-scale Application composed of layers that are only aware of the neighbouring components not the complete system Bounds complexity and promotes independence between components Supports scalability by introduction of proxies, shared-caches, gateways E.g. load-balancing behind a gateway Reduce user-perceived performance because they add processing overhead Roman Kern (KTI, TU Graz) WWW Architecture I / 81
47 Code on demand Web Architecture Figure: Code on demand Roman Kern (KTI, TU Graz) WWW Architecture I / 81
48 Web Architecture Code on demand Client functionality can be extended by downloading code E.g. Java applets, Flash, JavaScript Improves extensibility Independent development Roman Kern (KTI, TU Graz) WWW Architecture I / 81
49 Web Systems Web Systems Web as a Platform Roman Kern (KTI, TU Graz) WWW Architecture I / 81
50 Web Systems The Evolution of the Web The Web evolved as a platform Started out with simple Homepages with static documents Developed more and more interactivity Finally into a complex system of different types Roman Kern (KTI, TU Graz) WWW Architecture I / 81
51 Types of Web Systems Web Systems Roman Kern (KTI, TU Graz) WWW Architecture I / 81
52 Web Systems The Web Two faces of the Web The Web as an application platform The Web as a huge distributed database Roman Kern (KTI, TU Graz) WWW Architecture I / 81
53 Web Applications Web Applications Develop Application for the Web Roman Kern (KTI, TU Graz) WWW Architecture I / 81
54 Web Applications Specifics of Web applications What are the issues when building Web applications? User requirements User interface and usability Application state (manage state) and hypertext (navigate) Addressability Architecture Roman Kern (KTI, TU Graz) WWW Architecture I / 81
55 Web Applications Application state on the Web: Hypertext Traditionally, application logic manages the application state E.g., the current state of the data, user inputs, etc. Typically, Web browsers supported only HTML and does not have direct connection to the application logic Communication over network and HTTP with the application logic Web server needs to track users and sessions HTTP is stateless (connection-less), need for special mechanics E.g., session id in cookies or added to the URL Roman Kern (KTI, TU Graz) WWW Architecture I / 81
56 Web Applications Typical Stack of Web-Applications Roman Kern (KTI, TU Graz) WWW Architecture I / 81
57 Web Applications Application state on the Web: Hypertext However, Web server provides only low-level tracking Responsibility of the application logic to manage sessions Manage it within the application server Application server has other responsibilities as well Can lead to serious scalability problems Roman Kern (KTI, TU Graz) WWW Architecture I / 81
58 Web Applications Application state on the Web: Hypertext We can move session management to the client? Transfer parts of the application logic into the client (Code on demand) E.g. Manage it there with AJAX (Asynchronous JavaScript and XML) But other problems arise How to recover states with a new session: AJAX applications have typically single URLs? How to recover previous state, i.e. browser back button problem? Roman Kern (KTI, TU Graz) WWW Architecture I / 81
59 Web Applications Application state on the Web: Hypertext The optimal solution is typically somewhere in the middle: Manage only important states on the server Manage those states with unique URLs E.g. each important application state has a new unique URLs Use linking to relate states to each other No management of the state on the server: no scalability problems No management of the state on the client: no recovery problems Roman Kern (KTI, TU Graz) WWW Architecture I / 81
60 Web Applications Application state on the Web: Hypertext Example: Google Maps Google Maps uses AJAX to maintain a permalink Any action that you execute changes the permalink The permalink is kept as a part of HTML This is the equivalent of the address bar Roman Kern (KTI, TU Graz) WWW Architecture I / 81
61 Web Applications Example: Google Maps Permalink Roman Kern (KTI, TU Graz) WWW Architecture I / 81
62 Web Applications Application state on the Web: Hypertext A little bit of extra DOM/JavaScript work keeps the Permalink up to date as you navigate Every point on the map is a separate application state that has its own URL Application states were destroyed by AJAX but was put back by application design It allowed communities to grow around the Google Maps application Only because of proper management of application states with URLs Roman Kern (KTI, TU Graz) WWW Architecture I / 81
63 Web Applications Addressability URL as the addressing schema For example: /student/add /student/show /student/exam/add /student/exam/show Allow you to share application states for UI and services Just offer different content representations E.g. for UIs: HTML, for services: XML or JSON Roman Kern (KTI, TU Graz) WWW Architecture I / 81
64 Web Applications Addressability Advantages for humans (UIs) Meaningful, easier for humans URL can be bookmarked Search engines can retrieve different parts and index it Advantages for service integration You might link services to each other Roman Kern (KTI, TU Graz) WWW Architecture I / 81
65 Web n-tier Architecture Web n-tier Architecture Layered Architecture for the Web Roman Kern (KTI, TU Graz) WWW Architecture I / 81
66 Web n-tier Architecture Architecture: User-oriented database applications In traditional software engineering UODA are built with an N-tier architecture They started as 2-layer applications Data management layer and application/presentation layer Roman Kern (KTI, TU Graz) WWW Architecture I / 81
67 Web n-tier Architecture Architecture: 2-layer applications Relational database as the Data Management layer Scripts (e.g. PHP) as application/presentation layer One and the same scripts implements application logic and the presentation (e.g. generating of HTML) Everything runs on the server Roman Kern (KTI, TU Graz) WWW Architecture I / 81
68 Web n-tier Architecture Architecture: Problems of 2-layer applications Mixture of application and presentation related functionality Changes in application logic lead to changes in presentation functionality and vice versa E.g. changing a table that present some application data leads to changes in the return values of some application specific functions Even more dangerous the presentation layer talks directly to the DML Better modularity is achieved with the third layer Roman Kern (KTI, TU Graz) WWW Architecture I / 81
69 Web n-tier Architecture Architecture: 3-layer applications Separation between Application and Presentation layer No direct connection between Presentation and Data Management Decoupling of Application and Presentation layer Possibility to exchange Presentation layers Example: making a Web gateway to an existing application The old GUI (e.g. a standalone GUI) is replaced with a Web GUI Roman Kern (KTI, TU Graz) WWW Architecture I / 81
70 Web n-tier Architecture Architecture: 3-layer applications Roman Kern (KTI, TU Graz) WWW Architecture I / 81
71 Web n-tier Architecture Architecture: 3-layer applications Roman Kern (KTI, TU Graz) WWW Architecture I / 81
72 Web n-tier Architecture Architecture: 3-layer applications Presentation tier: HTML, templates and scripts to generate HTML Application logic tier: the actual application, the business logic Data access tier: manages persistent application data Roman Kern (KTI, TU Graz) WWW Architecture I / 81
73 Web n-tier Architecture Architecture: 3-layer applications With introduction of AJAX different possibilities where to situate tiers E.g. presentation in browser: HTML + (presentation) JavaScript, application and data access on server E.g. presentation and application in browser: HTML + (presentation and application) JavaScript, data access on server Note: May require additional considerations in regard to security (if the application logic is done on the client) Roman Kern (KTI, TU Graz) WWW Architecture I / 81
74 Web n-tier Architecture Architecture: 3-layer applications Roman Kern (KTI, TU Graz) WWW Architecture I / 81
75 Web n-tier Architecture Architecture: 3-layer applications There are numerous architecture variants built on the top of N-tier architectures The most important for Web applications: Model-View-Controller architecture It was invented in the early days of GUIs To decouple the graphical interface from the application data and logic Very useful also for Web applications Roman Kern (KTI, TU Graz) WWW Architecture I / 81
76 Web Data Management Web Data Management Architecture Styles for Data Handling Roman Kern (KTI, TU Graz) WWW Architecture I / 81
77 Web Data Management Architecture: Data Management Often Web applications deal with relational databases Need to manage relational data in object-oriented applications Use design patterns like Data Access Object (DAO) Use object/relational mapping (ORM), like Hibernate framework or JPA Roman Kern (KTI, TU Graz) WWW Architecture I / 81
78 Web Data Management Architecture: Data Management The Web we use is full of data (Web as a database) Book information, opinions, prices, arrival times, blogs, tags, tweets, etc. The data is organized around a simple data model: node-link model Each node is a data item that has a unique address and a representation Representation formats are e.g. HTML, PDF,... for humans, or e.g XML, JSON for programs Nodes can be interlinked using their unique addresses Roman Kern (KTI, TU Graz) WWW Architecture I / 81
79 Web Data Management Architecture: Data Management Information retrieval How to find what I m looking for? The mainstream approach are search engines with full-text processing Another approaches analyze links Links in databases, or within/between documents/sites Mixed approach: full-text and links, e.g. Google Roman Kern (KTI, TU Graz) WWW Architecture I / 81
80 Web Data Management Architecture: Data Management Yet another approach is managing metadata Metadata is data about other data, often semi-structured On the web Tag information items (everything that you can access via URL) in a structured manner Social Web 2.0 applications or Microformats Search inside metadata Roman Kern (KTI, TU Graz) WWW Architecture I / 81
81 Web Data Management The End Next: Web Architectures II Roman Kern (KTI, TU Graz) WWW Architecture I / 81
WWW Architecture. Software Architecture VO/KU ( / ) Denis Helic. KMI, TU Graz. Dec 7, 2011
WWW Architecture Software Architecture VO/KU (707.023/707.024) Denis Helic KMI, TU Graz Dec 7, 2011 Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, 2011 1 / 118 Outline 1 Introduction 2 Quality requirements
More informationImplementation Architecture
Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2014-11-19 Roman Kern (KTI, TU Graz) Implementation Architecture 2014-11-19 1 / 53 Outline 1 Definition 2
More informationIntroduction to Servlets. After which you will doget it
Introduction to Servlets After which you will doget it Servlet technology A Java servlet is a Java program that extends the capabilities of a server. Although servlets can respond to any types of requests,
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts
More informationImplementation Architecture
Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition
More informationArchitectural Styles II
Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66
More informationICOM 5016 Database Systems. Database Users. User Interfaces and Tools. Chapter 8: Application Design and Development.
Chapter 8: Application Design and Development ICOM 5016 Database Systems Web Application Amir H. Chinaei Department of Electrical and Computer Engineering University of Puerto Rico, Mayagüez User Interfaces
More informationEnterprise Java Unit 1- Chapter 3 Prof. Sujata Rizal Introduction to Servlets
1. Introduction How do the pages you're reading in your favorite Web browser show up there? When you log into your favorite Web site, how does the Web site know that you're you? And how do Web retailers
More informationServlets by Example. Joe Howse 7 June 2011
Servlets by Example Joe Howse 7 June 2011 What is a servlet? A servlet is a Java application that receives HTTP requests as input and generates HTTP responses as output. As the name implies, it runs on
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 14, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, 2012 1 / 80
More information04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6
04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is
More informationSession 8. Introduction to Servlets. Semester Project
Session 8 Introduction to Servlets 1 Semester Project Reverse engineer a version of the Oracle site You will be validating form fields with Ajax calls to a server You will use multiple formats for the
More informationRoy Fielding s PHD Dissertation. Chapter s 5 & 6 (REST)
Roy Fielding s PHD Dissertation Chapter s 5 & 6 (REST) Architectural Styles and the Design of Networkbased Software Architectures Roy Fielding University of California - Irvine 2000 Chapter 5 Representational
More informationAdvanced Internet Technology Lab # 4 Servlets
Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2011 Advanced Internet Technology Lab # 4 Servlets Eng. Doaa Abu Jabal Advanced Internet Technology Lab # 4 Servlets Objective:
More informationCloud Computing Platform as a Service
HES-SO Master of Science in Engineering Cloud Computing Platform as a Service Academic year 2015/16 Platform as a Service Professional operation of an IT infrastructure Traditional deployment Server Storage
More informationJAVA SERVLET. Server-side Programming INTRODUCTION
JAVA SERVLET Server-side Programming INTRODUCTION 1 AGENDA Introduction Java Servlet Web/Application Server Servlet Life Cycle Web Application Life Cycle Servlet API Writing Servlet Program Summary 2 INTRODUCTION
More informationSSC - Web applications and development Introduction and Java Servlet (I)
SSC - Web applications and development Introduction and Java Servlet (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics What will we learn
More informationSession 9. Introduction to Servlets. Lecture Objectives
Session 9 Introduction to Servlets Lecture Objectives Understand the foundations for client/server Web interactions Understand the servlet life cycle 2 10/11/2018 1 Reading & Reference Reading Use the
More informationChapter 10 Web-based Information Systems
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial
More informationWeb Programming Paper Solution (Chapter wise)
Introduction to web technology Three tier/ n-tier architecture of web multitier architecture (often referred to as n-tier architecture) is a client server architecture in which presentation, application
More informationZero Latency HTTP The comet Technique
Zero Latency HTTP The comet Technique Filip Hanik SpringSource Inc Keystone, Colorado, 2008 Slide 1 Who am I bla bla fhanik@apache.org Tomcat Committer / ASF member Co-designed the Comet implementation
More informationINF5750. RESTful Web Services
INF5750 RESTful Web Services Recording Audio from the lecture will be recorded! Will be put online if quality turns out OK Outline REST HTTP RESTful web services HTTP Hypertext Transfer Protocol Application
More informationOverview of Web Application Development
Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34 Table of Contents Overview Architecture 1 Overview
More informationWeb Engineering (CC 552)
Web Engineering (CC 552) Introduction Dr. Mohamed Magdy mohamedmagdy@gmail.com Room 405 (CCIT) Course Goals n A general understanding of the fundamentals of the Internet programming n Knowledge and experience
More informationThis tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps.
About the Tutorial Servlets provide a component-based, platform-independent method for building Webbased applications, without the performance limitations of CGI programs. Servlets have access to the entire
More informationsessionx Desarrollo de Aplicaciones en Red A few more words about CGI CGI Servlet & JSP José Rafael Rojano Cáceres
sessionx Desarrollo de Aplicaciones en Red José Rafael Rojano Cáceres http://www.uv.mx/rrojano A few more words about Common Gateway Interface 1 2 CGI So originally CGI purpose was to let communicate a
More informationReST 2000 Roy Fielding W3C
Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST
More informationEnterprise Software Architecture & Design
Enterprise Software Architecture & Design Characteristics Servers application server, web server, proxy servers etc. Clients heterogeneous users, business partners (B2B) scale large number of clients distributed
More informationCaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces
CaptainCasa & Java Server Faces 1 Table of Contents Overview...3 Why some own XML definition and not HTML?...3 A Browser for Enterprise Applications...4...Java Server Faces joins the Scenario!...4 Java
More informationWeb Applications. Software Engineering 2017 Alessio Gambi - Saarland University
Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system
More informationCopyright 2014 Blue Net Corporation. All rights reserved
a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed
More informationWeb Engineering. Introduction. Husni
Web Engineering Introduction Husni Husni@trunojoyo.ac.id Outline What is Web Engineering? Evolution of the Web Challenges of Web Engineering In the early days of the Web, we built systems using informality,
More informationCNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies
CNIT 129S: Securing Web Applications Ch 3: Web Application Technologies HTTP Hypertext Transfer Protocol (HTTP) Connectionless protocol Client sends an HTTP request to a Web server Gets an HTTP response
More informationThe Basic Web Server CGI. CGI: Illustration. Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems 4
CMPUT 391 Database Management Systems The Basic Web based Applications, - - CMPUT 391 Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems
More informationThe Architecture of the World Wide Web
The Architecture of the World Wide Web Laboratory of Computer Technologies L-A Laboratorio di Tecnologie Informatiche L-A Giulio Piancastelli & Andrea Omicini {giulio.piancastelli, andrea.omicini}@unibo.it
More informationWeb based Applications, Tomcat and Servlets - Lab 3 -
CMPUT 391 Database Management Systems Web based Applications, - - CMPUT 391 Database Management Systems Department of Computing Science University of Alberta The Basic Web Server CMPUT 391 Database Management
More informationOracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)
Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand) Code: URL: D101074GC10 View Online The Developing Applications for the Java EE 7 Platform training teaches you how
More informationThe Architecture of the World Wide Web
The Architecture of the World Wide Web Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini after Giulio Piancastelli andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di
More informationWeb Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18
Web Frameworks MMIS 2 VU SS 2011-707.025 Denis Helic KMI, TU Graz March 10, 2011 Denis Helic (KMI, TU Graz) Web Frameworks March 10, 2011 1 / 18 Web Application Frameworks MVC Frameworks for Web applications
More informationCOPYRIGHTED MATERIAL
Introduction xxiii Chapter 1: Apache Tomcat 1 Humble Beginnings: The Apache Project 2 The Apache Software Foundation 3 Tomcat 3 Distributing Tomcat: The Apache License 4 Comparison with Other Licenses
More informationApplication Design and Development: October 30
M149: Database Systems Winter 2018 Lecturer: Panagiotis Liakos Application Design and Development: October 30 1 Applications Programs and User Interfaces very few people use a query language to interact
More informationTest On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions
Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions Chapter 1: Abstract The Proway System is a powerful complete system for Process and Testing Data Analysis in IC
More informationMigrating traditional Java EE applications to mobile
Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16
More informationREST Easy with Infrared360
REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style
More informationJava Training Center, Noida - Java Expert Program
Java Training Center, Noida - Java Expert Program Database Concepts Introduction to Database Limitation of File system Introduction to RDBMS Steps to install MySQL and oracle 10g in windows OS SQL (Structured
More informationINTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature
INTRODUCTION TO SERVLETS AND WEB CONTAINERS Actions in Accord with All the Laws of Nature Web server vs web container Most commercial web applications use Apache proven architecture and free license. Tomcat
More informationREST Web Services Objektumorientált szoftvertervezés Object-oriented software design
REST Web Services Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline HTTP REST REST principles Criticism of REST CRUD operations with REST RPC operations
More informationAbout the Authors. Who Should Read This Book. How This Book Is Organized
Acknowledgments p. XXIII About the Authors p. xxiv Introduction p. XXV Who Should Read This Book p. xxvii Volume 2 p. xxvii Distinctive Features p. xxviii How This Book Is Organized p. xxx Conventions
More informationEnterprise Web based Software Architecture & Design
IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark class discussions Enterprise Web based
More informationWeb Architecture and Technologies
Web Architecture and Technologies Ambient intelligence Fulvio Corno Politecnico di Torino, 2015/2016 Goal Understanding Web technologies Adopted for User Interfaces Adopted for Distributed Application
More informationTABLE OF CONTENTS CHAPTER TITLE PAGE
vii TABLE OF CONTENTS CHAPTER TITLE PAGE DECLARATION DEDICATION ACKNOWLEDGEMENT ABSTRACT ABSTRAK TABLE OF CONTENTS LIST OF TABLES LIST OF FIGURES LIST OF APPENDICES ABBREVIATIONS ii iii iv v vi vii xi
More informationWeb Architecture Review Sheet
Erik Wilde (School of Information, UC Berkeley) INFO 190-02 (CCN 42509) Spring 2009 May 11, 2009 Available at http://dret.net/lectures/web-spring09/ Contents 1 Introduction 2 1.1 Setup.................................................
More informationThe World Wide Web. Internet
The World Wide Web Relies on the Internet: LAN (Local Area Network) connected via e.g., Ethernet (physical address: 00-B0-D0-3E-51-BC) IP (Internet Protocol) for bridging separate physical networks (IP
More informationEEC-682/782 Computer Networks I
EEC-682/782 Computer Networks I Lecture 20 Wenbing Zhao w.zhao1@csuohio.edu http://academic.csuohio.edu/zhao_w/teaching/eec682.htm (Lecture nodes are based on materials supplied by Dr. Louise Moser at
More informationComprehensive AngularJS Programming (5 Days)
www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop
More informationIntroduction. This course Software Architecture with Java will discuss the following topics:
Introduction This course Software Architecture with Java will discuss the following topics: Java servlets Java Server Pages (JSP s) Java Beans JDBC, connections to RDBMS and SQL XML and XML translations
More informationFront End Programming
Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page
More informationWeb Development. Lab. Bases de Dados e Aplicações Web MIEIC, FEUP 10/11. Sérgio Nunes
Web Development Lab. Bases de Dados e Aplicações Web MIEIC, FEUP 10/11 Sérgio Nunes 1 Summary The Internet The World Wide Web Web Technologies 2 Introduction 3 Previous Experience? 4 Web and Internet What
More informationJava Enterprise Edition. Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1
Java Enterprise Edition Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1 Java Beans Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 2 Java Bean POJO class : private Attributes public
More informationType of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes
Java CORE JAVA Core Java Programing (Course Duration: 40 Hours) Introduction to Java What is Java? Why should we use Java? Java Platform Architecture Java Virtual Machine Java Runtime Environment A Simple
More informationUnraveling the Mysteries of J2EE Web Application Communications
Unraveling the Mysteries of J2EE Web Application Communications An HTTP Primer Peter Koletzke Technical Director & Principal Instructor Common Problem What we ve got here is failure to commun cate. Captain,
More informationNotes beforehand... For more details: See the (online) presentation program.
Notes beforehand... Notes beforehand... For more details: See the (online) presentation program. Topical overview: main arcs fundamental subjects advanced subject WTRs Lecture: 2 3 4 5 6 7 8 Today: the
More informationJ2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies
J2EE - Version: 25 Developing Enterprise Applications with J2EE Enterprise Technologies Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 5 days Course Description:
More informationSpecialized - Mastering JEE 7 Web Application Development
Specialized - Mastering JEE 7 Web Application Development Code: Lengt h: URL: TT5100- JEE7 5 days View Online Mastering JEE 7 Web Application Development is a five-day hands-on JEE / Java EE training course
More informationIntroduc)on to Computer Networks
Introduc)on to Computer Networks COSC 4377 Lecture 3 Spring 2012 January 25, 2012 Announcements Four HW0 s)ll missing HW1 due this week Start working on HW2 and HW3 Re- assess if you found HW0/HW1 challenging
More informationProgramming the World Wide Web by Robert W. Sebesta
Programming the World Wide Web by Robert W. Sebesta Tired Of Rpg/400, Jcl And The Like? Heres A Ticket Out Programming the World Wide Web by Robert Sebesta provides students with a comprehensive introduction
More informationIntroduction Haim Michael. All Rights Reserved.
Architecture Introduction Applications developed using Vaadin include a web application servlet based part, user interface components, themes that dictate the look & feel and a data model that enables
More informationDatabase Applications
Database Applications Database Programming Application Architecture Objects and Relational Databases John Edgar 2 Users do not usually interact directly with a database via the DBMS The DBMS provides
More informationCSCI-1680 WWW Rodrigo Fonseca
CSCI-1680 WWW Rodrigo Fonseca Based partly on lecture notes by Sco2 Shenker and John Janno6 Administrivia HW3 out today Will cover HTTP, DNS, TCP TCP Milestone II coming up on Monday Make sure you sign
More informationCLIENT SERVER ARCHITECTURE:
CLIENT SERVER ARCHITECTURE: Client-Server architecture is an architectural deployment style that describe the separation of functionality into layers with each segment being a tier that can be located
More informationServlet and JSP Review
2006 Marty Hall Servlet and JSP Review A Recap of the Basics 2 JSP, Servlet, Struts, JSF, AJAX, & Java 5 Training: http://courses.coreservlets.com J2EE Books from Sun Press: http://www.coreservlets.com
More informationFast Track to Java EE
Java Enterprise Edition is a powerful platform for building web applications. This platform offers all the advantages of developing in Java plus a comprehensive suite of server-side technologies. This
More informationKaazing Gateway: An Open Source
Kaazing Gateway: An Open Source HTML 5 Websocket Server Speaker Jonas Jacobi Co-Founder: Kaazing Co-Author: Pro JSF and Ajax, Apress Agenda Real-Time Web? Why Do I Care? Scalability and Performance Concerns
More informationCOURSE DETAILS: CORE AND ADVANCE JAVA Core Java
COURSE DETAILS: CORE AND ADVANCE JAVA Core Java 1. Object Oriented Concept Object Oriented Programming & its Concepts Classes and Objects Aggregation and Composition Static and Dynamic Binding Abstract
More informationWWW, REST, and Web Services
WWW, REST, and Web Services Instructor: Yongjie Zheng Aprile 18, 2017 CS 5553: Software Architecture and Design World Wide Web (WWW) What is the Web? What challenges does the Web have to address? 2 What
More informationCOMP9321 Web Application Engineering
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2411
More informationSession 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes
Session 8 Deployment Descriptor 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/_status_codes
More informationDeveloping Applications with Java EE 6 on WebLogic Server 12c
Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need
More informationCOMP9321 Web Application Engineering
COMP9321 Web Application Engineering Semester 1, 2017 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2457
More informationHttpServlet ( Class ) -- we will extend this class to handle GET / PUT HTTP requests
What is the servlet? Servlet is a script, which resides and executes on server side, to create dynamic HTML. In servlet programming we will use java language. A servlet can handle multiple requests concurrently.
More informationWebservices In Java Tutorial For Beginners Using Netbeans Pdf
Webservices In Java Tutorial For Beginners Using Netbeans Pdf Java (using Annotations, etc.). Part of way) (1/2). 1- Download Netbeans IDE for Java EE from here: 2- Follow the tutorial for creating a web
More informationSession 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p
Session 24 Spring Framework Introduction 1 Reading & Reference Reading dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p http://engineering.pivotal.io/post/must-know-spring-boot-annotationscontrollers/
More information(p t y) lt d. 1995/04149/07. Course List 2018
JAVA Java Programming Java is one of the most popular programming languages in the world, and is used by thousands of companies. This course will teach you the fundamentals of the Java language, so that
More informationTapestry. Code less, deliver more. Rayland Jeans
Tapestry Code less, deliver more. Rayland Jeans What is Apache Tapestry? Apache Tapestry is an open-source framework designed to create scalable web applications in Java. Tapestry allows developers to
More informationApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum
ApacheCon NA 2015 How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum 1Tech, Ltd. 29 Harley Street, London, W1G 9QR, UK www.1tech.eu 1 Overview Common Getting Started Problems Common
More informationProgramming the Web 06CS73 INTRODUCTION AND OVERVIEW. Dr. Kavi Mahesh, PESIT, Bangalore. Textbook: Programming the World Wide Web
Programming the Web 06CS73 INTRODUCTION AND OVERVIEW Dr. Kavi Mahesh, PESIT, Bangalore Textbook: Programming the World Wide Web Introduction: Internet and World-Wide Web Internet History Internet Protocols
More informationCSCI-1680 WWW Rodrigo Fonseca
CSCI-1680 WWW Rodrigo Fonseca Based partly on lecture notes by Scott Shenker and John Jannotti Precursors 1945, Vannevar Bush, Memex: a device in which an individual stores all his books, records, and
More information1Z Java EE 6 Web Component Developer Certified Expert Exam Summary Syllabus Questions
1Z0-899 Java EE 6 Web Component Developer Certified Expert Exam Summary Syllabus Questions Table of Contents Introduction to 1Z0-899 Exam on Java EE 6 Web Component Developer Certified Expert... 2 Oracle
More information1.1 A Brief Intro to the Internet
1.1 A Brief Intro to the Internet - Origins - ARPAnet - late 1960s and early 1970s - Network reliability - For ARPA-funded research organizations - BITnet, CSnet - late 1970s & early 1980s - email and
More informationAdobe ColdFusion (2016 release)
Adobe (2016 release) Feature improvement history Features included in each edition of Adobe API Manager API monitoring API version and lifecycle management API access control API rate limiting and throttling
More informationTable of Contents WWW. WWW history (2) WWW history (1) WWW history. Basic concepts. World Wide Web Aka The Internet. Client side.
Table of Contents WWW World Wide Web Aka The Internet Karst Koymans Informatics Institute University of Amsterdam (version 44, 2014/10/06 11:35:56 UTC) Tuesday, October 7, 2014 WWW history Basic concepts
More informationComputer Networks. Wenzhong Li. Nanjing University
Computer Networks Wenzhong Li Nanjing University 1 Chapter 8. Internet Applications Internet Applications Overview Domain Name Service (DNS) Electronic Mail File Transfer Protocol (FTP) WWW and HTTP Content
More informationLTBP INDUSTRIAL TRAINING INSTITUTE
Java SE Introduction to Java JDK JRE Discussion of Java features and OOPS Concepts Installation of Netbeans IDE Datatypes primitive data types non-primitive data types Variable declaration Operators Control
More informationSemantic Web Lecture Part 1. Prof. Do van Thanh
Semantic Web Lecture Part 1 Prof. Do van Thanh Overview of the lecture Part 1 Why Semantic Web? Part 2 Semantic Web components: XML - XML Schema Part 3 - Semantic Web components: RDF RDF Schema Part 4
More informationInformation Network Systems The application layer. Stephan Sigg
Information Network Systems The application layer Stephan Sigg Tokyo, November 15, 2012 Introduction 04.10.2012 Introduction to the internet 11.10.2012 The link layer 18.10.2012 The network layer 25.10.2012
More informationSession 9. Deployment Descriptor Http. Reading and Reference. en.wikipedia.org/wiki/http. en.wikipedia.org/wiki/list_of_http_headers
Session 9 Deployment Descriptor Http 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/http_status_codes
More informationImplementing a Numerical Data Access Service
Implementing a Numerical Data Access Service Andrew Cooke October 2008 Abstract This paper describes the implementation of a J2EE Web Server that presents numerical data, stored in a database, in various
More informationEtanova Enterprise Solutions
Etanova Enterprise Solutions Front End Development» 2018-09-23 http://www.etanova.com/technologies/front-end-development Contents HTML 5... 6 Rich Internet Applications... 6 Web Browser Hardware Acceleration...
More informationSetting up a Maven Project
Setting up a Maven Project This documentation describes how to set up a Maven project for CaptainCasa. Please use a CaptainCasa version higher than 20180102. There were quite some nice changes which were
More informationApplication Protocols and HTTP
Application Protocols and HTTP 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross Administrivia Lab #0 due
More information