COMP9321 Web Application Engineering

Similar documents
COMP9321 Web Application Engineering

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering

Introduction to JSP and Servlets Training 5-days

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering. Extensible Markup Language (XML)

COMP9321 Web Application Engineering

Fast Track to Java EE 5 with Servlets, JSP & JDBC

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering

XML Metadata Standards and Topic Maps

AIM. 10 September

COMP9321 Web Application Engineering

Oracle 10g: Build J2EE Applications

Fast Track to Java EE

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial.

SERVICE-ORIENTED COMPUTING

112. Introduction to JSP

JAVA 2 ENTERPRISE EDITION (J2EE)

112-WL. Introduction to JSP with WebLogic

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

ADVANCED JAVA COURSE CURRICULUM

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

KINGS COLLEGE OF ENGINEERING 1

This course is intended for Java programmers who wish to write programs using many of the advanced Java features.

COMP9321 Web Application Engineering

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

DVS WEB INFOTECH DEVELOPMENT TRAINING RESEARCH CENTER

GUJARAT TECHNOLOGICAL UNIVERSITY

About the Authors. Who Should Read This Book. How This Book Is Organized

AN ISO 9001:2008 CERTIFIED COMPANY ADVANCED. Java TRAINING.

a. Jdbc:ids://localhost:12/conn?dsn=dbsysdsn 21. What is the Type IV Driver URL? a. 22.

Course Content for Java J2EE

Module 3 Web Component

a paradigm for the Introduction to Semantic Web Semantic Web Angelica Lo Duca IIT-CNR Linked Open Data:

ive JAVA EE C u r r i c u l u m

CTI Short Learning Programme in Internet Development Specialist

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

LTBP INDUSTRIAL TRAINING INSTITUTE

XML: Extensible Markup Language

Oracle Fusion Middleware 11g: Build Applications with ADF I

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java

XML for Java Developers G Session 8 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti

Courses For Event Java Advanced Summer Training 2018

LTBP INDUSTRIAL TRAINING INSTITUTE

The Data Web and Linked Data.

CTI Higher Certificate in Information Systems (Internet Development)

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

WebGUI & the Semantic Web. William McKee WebGUI Users Conference 2009

Specialized - Mastering JEE 7 Web Application Development

Event Stores (I) [Source: DB-Engines.com, accessed on August 28, 2016]

JAVA MICROSERVICES. Java Language Environment. Java Set Up. Java Fundamentals. Packages. Operations

Table of Contents Fast Track to Java EE 5 with Servlets/JSP and JDBC

11. EXTENSIBLE MARKUP LANGUAGE (XML)

Copyright 2014 Blue Net Corporation. All rights reserved

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

ADVANCED JAVA TRAINING IN BANGALORE

CO Java EE 7: Back-End Server Application Development

Oracle WebLogic Server 11g: Administration Essentials

ReST 2000 Roy Fielding W3C

/ / JAVA TRAINING

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Oracle. Exam Questions 1z Java Enterprise Edition 5 Web Services Developer Certified Professional Upgrade Exam. Version:Demo

The XML Metalanguage

JavaServer Pages. What is JavaServer Pages?

Oracle Fusion Middleware 11g: Build Applications with ADF I

Database Applications

IBM Rational Application Developer for WebSphere Software, Version 7.0

Database. Request Class. jdbc. Servlet. Result Bean. Response JSP. JSP and Servlets. A Comprehensive Study. Mahesh P. Matha

Semantic Web Fundamentals

Java Server Page (JSP)

Study Guide. MarkLogic Professional Certification. Taking a Written Exam. General Preparation. Developer Written Exam Guide

JSP - SYNTAX. Any text, HTML tags, or JSP elements you write must be outside the scriptlet. Following is the simple and first example for JSP:

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies

Advanced Java Programming

Data Presentation and Markup Languages

EMC Documentum xdb. High-performance native XML database optimized for storing and querying large volumes of XML content

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

> Semantic Web Use Cases and Case Studies

Linked Data and RDF. COMP60421 Sean Bechhofer

IT6503 WEB PROGRAMMING. Unit-I

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

Proposal for Implementing Linked Open Data on Libraries Catalogue

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache

ITARC Stockholm Olle Olsson World Wide Web Consortium (W3C) Swedish Institute of Computer Science (SICS)

ITARC Stockholm Olle Olsson World Wide Web Consortium (W3C) Swedish Institute of Computer Science (SICS)

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY. (An NBA Accredited Programme) ACADEMIC YEAR / EVEN SEMESTER

Java Training Center, Noida - Java Expert Program

Knowledge Representations. How else can we represent knowledge in addition to formal logic?

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Implementation Architecture

COMP9321 Web Application Engineering

Migrating traditional Java EE applications to mobile

COWLEY COLLEGE & Area Vocational Technical School

Developing Applications with Java EE 6 on WebLogic Server 12c

Transcription:

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 COMP9321, 17s1, Week12 1

Assignments COMP9321, 17s1, Week12 2

Assignments Assignment 1 GradeBook Assignment 2 GradeBook Assignment 3 Due end of Week 12 (Sunday, May 28 2017, 23:59:59) COMP9321, 17s1, Week12 3

Final Exam COMP9321, 17s1, Week12 4

Final Exam COMP9321, 17s1, Week12 5

Final Exam COMP9321, 17s1, Week12 6

Final Exam COMP9321, 17s1, Week12 7

Sample Final Exam COMP9321, 17s1, Week12 8

COMP9321, 17s1, Week12 9

Sample Question: Why is the stateless nature of HTTP a problem in Web application development? You Must illustrate your answer with an example. COMP9321, 17s1, Week12 10

Sample Question: Why is the stateless nature of HTTP a problem in Web application development? You Must illustrate your answer with an example. COMP9321, 17s1, Week12 11

Sample Question: Describe the Model-View-Controller (MVC) architecture pattern in detail. What are the advantages of using MVC over an architecture based solely on JSP pages? COMP9321, 17s1, Week12 12

Sample Question: Describe the Model-View-Controller (MVC) architecture pattern in detail. What are the advantages of using MVC over an architecture based solely on JSP pages? COMP9321, 17s1, Week12 13

Week 1 11 Review COMP9321, 17s1, Week12 14

Different Layers in an Application COMP9321, 17s1, review->week 2 15

Presentation Layer HTML <form> method attribute specifies how to send form-data as URL variables (with method="get"), or HTTP post transaction (with method="post"). Method? Get/Post COMP9321, 17s1, review->week 2 16

Static vs. Dynamic Web Page A static web page is delivered to the user exactly as stored, in contrast to dynamic web pages which are generated by a web application, and on demand! is-a web page whose construction is controlled by an application server processing server-side scripts. is-a e.g. software framework that provides both facilities to create web applications and a server environment to run them. Java application servers http://docs.oracle.com/javaee/6/tutorial/doc/ It's core set of API and features are defined by Java EE. The Web modules include Java Servlets and Java Server Pages. COMP9321, 17s1, review->week 2 17

Java Servlets http://java.sun.com/products/servlet/index.jsp http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html COMP9321, 17s1, review->week 2 18

A Lifecycle of a Servlet The Web container controls the lifecycle of a servlet class: initialisation ServletConfig ServletContext COMP9321, 17s1, review->week 2 19

Attributes and Sharing Attributes COMP9321, 17s1, review->week 2 20

Managing the User State A problem in HTTP request/response: HTTP is a stateless protocol. A single request/response; Nothing is remembered 'between requests' from the same user; Web applications need to maintain users + their data. It is a programmer's responsibility: The term "session" is used to represent the data associated with one user while she navigates around a Web application. Session is a conversional state between client and server. Session can consists of multiple request and response between client and server. Since HTTP is stateless, the only way to maintain a session is when some unique information about the session (session id) is passed between server and client in every request and response. COMP9321, 17s1, review->week2 21

Cookies Cookies are text files stored on the client computer and they are kept for various information tracking purpose. Java Servlets transparently supports HTTP cookies. There are three steps involved in identifying returning users: Server script sends a set of cookies to the browser. e.g. session id Browser stores this information on local machine for future use. Next time, browser sends request + those cookies to the server and server uses that information to identify the user. COMP9321, 17s1, review->week2 22

JavaServer Pages (JSP) Technology JavaServer Pages (JSP) technology allows you to easily create web content that has both static and dynamic components. JSP technology makes available all the dynamic capabilities of Java Servlet technology; but provides a more natural approach to creating static content. JSPissimilartoPHP,butitusestheJavaprogramming language. To deploy and run JavaServer Pages, a compatible web server with a servlet container, such as Apache Tomcat, is required. COMP9321, 17s1, review->week3 23

JSP COMP9321, 17s1, review->week3 24

JSP Basics Scripting Elements Traditional Modern Scriptlet Expression Declaration Comments EL Scripting ${ } JSP Page JSP Elements Directive Elements Page Include Taglib COMP9321, 17s1, review->week3 Action Elements Template Text (HTML bits ) custom Standard <abc:mytag> <jsp:usebean> <jsp:getproperty> <jsp:setproperty> <jsp:include> <jsp:forward> <jsp:param> 25

Extensible Markup Language (XML) XML originally designed to meet the challenges of large-scale electronic publishing. XML separates presentation issues from the actual data. XML plays an increasingly important role in the exchange of a wide variety of data on the Web and elsewhere. Needs a communication protocol? e.g. SOAP stands for Simple Object Access Protocol SOAP is based on XML SOAP is a W3C recommendation SOAP uses XML Information Set for its message format. COMP9321, 17s1, review->week4 26

The XML Family XML: a markup language used to describe information. DOM: a programming interface for accessing and updating documents. DTD and XML Schema: describes the structure and content of XML documents. XSLT: a language for transforming XML documents XPath: a query language for navigating XML documents. XPointer: for identifying fragments of a document. XLink: generalises the concept of a hypertext link. XInclude: for merging documents. XQuery: a language for making queries across documents. RDF: a language for describing resources. COMP9321, 17s1, review->week4 27

Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. Web of Data beyond the Web of Documents! Machine Readable Human Readable The amount of information is growing exponentially. COMP9321, 17s1, review->week5 28

W3C's "Semantic Web Vision 1. Web information has exact meaning 2. Web information can be understood and processed by computers 3. Computers can integrate information from the web COMP9321, 17s1, review->week5 29

Resource Description Framework (RDF) RDF is a framework for describing resources on the web. Web documents concepts from the real world (e.g. people, organisations, topics, things) e.g. Publishing such descriptions on the Web creates the Semantic Web. RDF uses Web identifiers (URIs) to identify resources. URIs (Uniform Resource Identifiers) are very important, providing both the core of the framework itself and the link between RDF and the Web. COMP9321, 17s1, review->week5 30

Web Ontology Language (OWL) Ontology is about the exact description of things (web information) and their relationships. OWL was designed to provide a common way to process the content of web information OWL and RDF are much of the same thing, but OWL is a stronger language with greater machine interpretability than RDF. OWL provides additional vocabulary along with a formal semantics OWL making it easier for machines to automatically process and integrate information available on the Web. OWL has three sublanguages OWL Lite OWL DL OWL Full OWL is complex: OWL is a large set of additional terms http://www.w3.org/tr/owl-features/ COMP9321, 17s1, review->week5 31

Rules There is a long history of rule languages and rule-based systems eg: logic programming (Prolog), production rules Lots of small and large rule systems E.g. from mail filters to expert systems Why rules on the Semantic Web? There are conditions that ontologies (ie, OWL) cannot express a well known example is Horn rules: (P1 P2 ) C http://www.w3.org/tr/rif-overview/ COMP9321, 17s1, review->week5 32

A new requirement: exchange of rules Applications may want to exchange their rules: e.g. negotiate ebusiness contracts across platforms e.g. describe privacy requirements and policies Rule Interchange Format (RIF): Goals: expresses the rules a bit like a rule language can be used to exchange rules among engines Challenges: Rule based systems can be very different different rule semantics A universal exchange format is not feasible http://www.w3.org/tr/rif-overview/ COMP9321, 17s1, review->week5 33

Linking Open Data (LOD) - Goal: expose open datasets in RDF - Set RDF links among the data items from different datasets - Set up query endpoints - Result: billions of triples and millions of links - The important point here is that : the data becomes available to the World via a unified format (ie, RDF). the various datasets are interlinked together e.g. DBpedia project COMP9321, 17s1, review->week5 34

Query RDF Data (SPARQL) SPARQL Protocol And RDF Query Language, is an RDF query language. This specification defines the syntax and semantics of the SPARQL query language for RDF. SPARQL can be used to express queries across diverse data sources. SPARQL contains capabilities for querying required and optional graph patterns The results of SPARQL queries can be results sets or RDF graphs. http://www.justanswer.com/ COMP9321, 17s1, review->week5 35

Data Persistence When you work with a relational database in a Java application, the Java code issues SQL statements to the database via the JDBC API. The Java Database Connectivity (JDBC) API provides universal data access from the Java programming language. Using the JDBC API, you can access virtually any data source, from relational databases to spreadsheets and flat files. The JDBC API is comprised of two packages: java.sql javax.sql (Hibernate, pp.5-29) COMP9321, 17s1, review->week6 36

Accessing DB from an Application COMP9321, 17s1, review->week6 37

PreparedStatement object A more realistic case is that the same kind of SQL statement is processed over and over (rather than a static SQL statement). In PreparedStatement, a place holder (?) will be bound to an incoming value before execution (no recompilation). COMP9321, 17s1, review->week6 38

Data Access Objects (DAO) COMP9321, 17s1, review->week6 39

Object-Relational Impedance Mismatch Problems COMP9321, 17s1, review->week6 40

Object-Relational Impedance Mismatch Problems https://docs.oracle.com/cd/e16162_01/user.1112/e17455/img/mismatch.gif COMP9321, 17s1, review->week6 41

What is NoSQL? Stands for No-SQL or Not Only SQL?? Class of non-relational data storage systems E.g. BigTable, Dynamo, PNUTS/Sherpa,.. Usually do not require a fixed table schema nor do they use the concept of joins Distributed data storage systems All NoSQL offerings relax one or more of the ACID properties (will talk about the CAP theorem) Chapter 19: Distributed Databases COMP9321, 17s1, review->week6 42

Three properties of a system CAP Theorem Consistency (all copies have same value) Availability (system can run even if parts have failed) Via replication. Partitions (network can break into two or more parts, each with active systems that can t talk to other parts) Brewer s CAP Theorem : You can have at most two of these three properties for any system. Very large systems will partition at some point. COMP9321, 17s1, review->week6 43

Design Patterns A pattern is a proven solution to a problem in a context. Each pattern expresses a relation between a certain context, a problem, and a solution. A design pattern represents a solutions to problems that arise when developing a software. Design pattern are granular and applied at different levels such as: Frameworks Subsystems Sub-subsystems Categories include: Design Architectural Analysis Creational Structural Behavioral COMP9321, 17s1, review->week7 44

J2EE Design Patterns COMP9321, 17s1, review->week7 45

General Guideline for Servlet/JSP/JavaBeans COMP9321, 17s1, review->week7 46

Securing your Web Application: Threats! COMP9321, 17s1, review->week9 47

Securing your Web Application: Threats! COMP9321, 17s1, review->week9 48

Session Management COMP9321, 17s1, review->week9 49

Transport Layer Security (e.g. HTTPS) COMP9321, 17s1, review->week9 50

Performance COMP9321, 17s1, review->week10 51

Performance Metrics Response Time Throughput Availability Reliability Resource Utilization COMP9321, 17s1, review->week10 52

Scalability COMP9321, 17s1, review->week10 53

Utilization Law Little s Law Forced Flow Law Operational Laws COMP9321, 17s1, review->week10 54

Architectural Considerations - Network COMP9321, 17s1, review->week11 55

General Techniques for Improving Performance and Scalability 1. Caching/Replication 2. Parallelism 3. Redundancy 4. Asynchrony 5. Resource Pooling COMP9321, 17s1, review->week11 56

Improving Performance using HTTP features COMP9321, 17s1, review->week11 57

Improving Database Access COMP9321, 17s1, review->week11 58

COMP9322!! from building a web site (cs9321) to building web services (cs9322)... context: global/distributed/complex business applications Goals: understand the concept of services and business processes articulate the motivation behind web service-based technologies apply the knowledge in practical situations COMP9322 course aims: provide students with a deep understanding of SOA, service-orientation paradigm, business processes and Web services as an implementation technology. COMP9321, 17s1, Week12 59

Good Luck! COMP9321, 17s1, Week12 60

COMP9321, 17s1, Week12 61