COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) 1COMP9321,

Slides:



Advertisements
Similar presentations
Overview Environment for Internet database connectivity
Advertisements

CH-4 Ontologies, Querying and Data Integration. Introduction to RDF(S) RDF stands for Resource Description Framework. RDF is a standard for describing.
XML: Extensible Markup Language
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Distributed components
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
WWW and Internet The Internet Creation of the Web Languages for document description Active web pages.
COMPUTER TERMS PART 1. COOKIE A cookie is a small amount of data generated by a website and saved by your web browser. Its purpose is to remember information.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
Chapter 16 The World Wide Web. 2 The Web An infrastructure of information combined and the network software used to access it Web page A document that.
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
Chapter 4: Core Web Technologies
Practical RDF Chapter 1. RDF: An Introduction
© 2002 by Prentice Hall 1 David M. Kroenke Database Processing Eighth Edition Chapter 14 Networks, Multi-Tier Architectures, and XML.
The Semantic Web Service Shuying Wang Outline Semantic Web vision Core technologies XML, RDF, Ontology, Agent… Web services DAML-S.
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
1 Welcome to CSC 301 Web Programming Charles Frank.
Project Overview Graduate Selection Process Project Goal Automate the Selection Process.
Dr. Azeddine Chikh IS444: Modern tools for applications development.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
CIS/SUSL1 Fundamentals of DBMS S.V. Priyan Head/Department of Computing & Information Systems.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
OWL Representing Information Using the Web Ontology Language.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 4 1COMP9321, 15s2, Week.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 6 1COMP9321, 15s2, Week.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 7 1COMP9321, 15s2, Week.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 3 1COMP9321, 15s2, Week.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 11 (Part I) 1COMP9321,
Simple Object Access Protocol
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
 XML derives its strength from a variety of supporting technologies.  Structure and data types: When using XML to exchange data among clients, partners,
Database application development 1. Chapter 8 © 2013 Pearson Education, Inc. Publishing as Prentice Hall OBJECTIVES  Define terms  Explain three components.
1 LM 6 Database Applications Dr. Lei Li. Learning Objectives Explain three components of a client-server system Describe differences between a 2-tiered.
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
XML 1. Chapter 8 © 2013 Pearson Education, Inc. Publishing as Prentice Hall SAMPLE XML SCHEMA (XSD) 2 Schema is a record definition, analogous to the.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
COMP9321 Web Application Engineering Semester 2, 2016
WWW and HTTP King Fahd University of Petroleum & Minerals
COMP9321 Web Application Engineering Semester 2, 2017
Web Software Model CS 4640 Programming Languages for Web Applications
COMP9321 Web Application Engineering Semester 2, 2017
Introduction to J2EE Architecture
Chapter 27 WWW and HTTP.
Lecture 1: Multi-tier Architecture Overview
LOD reference architecture
Introduction to World Wide Web
SDMX IT Tools SDMX Registry
Presentation transcript:

COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) 1COMP9321, 15s2, Week12

Assignments 2 COMP9321, 15s2, Week12

Assignments 3 Assignment 1 – GradeBook Assignment 2 – GradeBook Assignment 3 – Due Sunday, October , 23:59:59

Final Exam 4 COMP9321, 15s2, Week12

Final Exam 5 COMP9321, 15s2, Week12

Final Exam 6 COMP9321, 15s2, Week12

Final Exam 7 COMP9321, 15s2, Week12

Week 1 – 11 Review 8 COMP9321, 15s2, Week12

Different Layers in an Application 9COMP9321, 15s2, review->Week 2

Presentation Layer 10COMP9321, 15s2, review->Week 2 method HTML method attribute send how to send form-data get  URL variables (with method="get"), or post  HTTP post transaction (with method="post"). specifies as Method? Get/Post

Static vs. Dynamic Web Page 11COMP9321, 15s2, review->Week 2 dynamic web pages 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! application server web page whose construction is controlled by an application server processing server-side scripts. software framework that provides both facilities to create web applications and a server environment to run them. is-a Java application servers e.g. It's core set of API and features are defined by Java EE. Java ServletsJava Server Pages The Web modules include Java Servlets and Java Server Pages.

Java Servlets 12COMP9321, 15s2, review->Week 2

A Lifecycle of a Servlet 13COMP9321, 15s2, review->Week 2 The Web container controls the lifecycle of a servlet class: initialisation ServletConfig ServletContext …

Attributes and Sharing Attributes 14COMP9321, 15s2, review->Week 2

Managing the User State 15COMP9321, 15s2, review->Week2 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.

Cookies 16COMP9321, 15s2, review->Week2 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.

JavaServer Pages (JSP) Technology 17COMP9321, 15s2, review->Week3 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. JSP is similar to PHP, but it uses the Java programming language. To deploy and run JavaServer Pages, a compatible web server with a servlet container, such as Apache Tomcat, is required.

JSP 18COMP9321, 15s2, review->Week3

JSP Basics 19COMP9321, 15s2, review->Week3 JSP Page JSP Elements Template Text (HTML bits…) Scripting Elements Directive Elements Action Elements Traditional Modern EL Scripting ${…} Scriptlet Expression Declaration Comments Page Include Taglib custom Standard

Extensible Markup Language (XML) 20COMP9321, 15s2, review->Week4 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.

The XML Family 21COMP9321, 15s2, review->Week4 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.

Semantic Web 22COMP9321, 15s2, review->Week5 standard technologies Web of Data It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. DataDocuments Web of Data beyond the Web of Documents! Machine Readable Human Readable The amount of information is growing exponentially.

W3C's "Semantic Web Vision“ 23COMP9321, 15s2, review->Week5 1.Web information has exact meaning 2.Web information can be understood and processed by computers 3.Computers can integrate information from the web

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

Web Ontology Language (OWL) 25COMP9321, 15s2, review->Week5 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

Rules 26COMP9321, 15s2, review->Week5 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

A new requirement: exchange of rules 27COMP9321, 15s2, review->Week5 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

Linking Open Data (LOD) 28COMP9321, 15s2, review->Week5 - 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

Query RDF Data (SPARQL) 29COMP9321, 15s2, review->Week5 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.

Data Persistence 30COMP9321, 15s2, review->Week6 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)

Accessing DB from an Application 31COMP9321, 15s2, review->Week6

PreparedStatement object 32COMP9321, 15s2, review->Week6 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).

Data Access Objects (DAO) 33COMP9321, 15s2, review->Week6

Object-Relational Impedance Mismatch Problems 34COMP9321, 15s2, review->Week6

Object-Relational Impedance Mismatch Problems 35COMP9321, 15s2, review->Week6

What is NoSQL? 36COMP9321, 15s2, review->Week6 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

CAP Theorem 37COMP9321, 15s2, review->Week6 Three properties of a system 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.

Design Patterns 38 COMP9321, 15s2, review->Week7 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

J2EE Design Patterns 39 COMP9321, 15s2, review->Week7

General Guideline for Servlet/JSP/JavaBeans 40 COMP9321, 15s2, review->Week7

Securing your Web Application: Threats! 41 COMP9321, 15s2, review->Week9

Securing your Web Application: Threats! 42 COMP9321, 15s2, review->Week9

Session Management… 43 COMP9321, 15s2, review->Week9

Transport Layer Security (e.g. HTTPS) 44 COMP9321, 15s2, review->Week9

Performance 45 COMP9321, 15s2, review->Week10

Performance Metrics 46 COMP9321, 15s2, review->Week10 Response Time Throughput Availability Reliability Resource Utilization

Scalability 47 COMP9321, 15s2, review->Week10

Operational Laws 48 COMP9321, 15s2, review->Week10 Utilization Law Little’s Law Forced Flow Law

Architectural Considerations - Network 49 COMP9321, 15s2, review->Week11

General Techniques for Improving Performance and Scalability 50 COMP9321, 15s2, review->Week11 1.Caching/Replication 2.Parallelism 3.Redundancy 4.Asynchrony 5.Resource Pooling

Improving Performance using HTTP features 51 COMP9321, 15s2, review->Week11

Improving Database Access 52 COMP9321, 15s2, review->Week11

COMP9322 !! 53 COMP9321, 15s2, Week12 …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.

54COMP9321, 15s2, Week12 Good Luck!

55COMP9321, 15s2, Week12