COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 8 1COMP9321, 15s2, Week.

Slides:



Advertisements
Similar presentations
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Advertisements

3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
J2EE Design patterns Sharath Sahadevan August 8, 2002 St Louis Java SIG.
Spring, Hibernate and Web Services 13 th September 2014.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 10.
Object-Oriented Enterprise Application Development J2EE Blueprints.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Faculty of Information Technology © Copyright UTS Faculty of Information Technology 2004Design-1 Advanced Java Programming Design issues Chris Wong
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
J2EE Kenneth M. Anderson CSCI Web Technologies October 3, 2001.
.NET Mobile Application Development Remote Procedure Call.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Software – Part 3 V.T. Raja, Ph.D., Information Management College of Business Oregon State University.
B. RAMAMURTHY Web services. Topics What is a web service? From OO to WS WS and the cloud WS code.
Enterprise Resource Planning
UNIT-V The MVC architecture and Struts Framework.
Data Access Patterns. Motivation Most software systems require persistent data (i.e. data that persists between program executions). In general, distributing.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
SOA, BPM, BPEL, jBPM.
Java Frameworks Indy Java Users Group January 29, 2003.
JDBC Session 5 Tonight: Data Access Patterns 1.J2EE Architecture & Design Patterns 2.The Data Access Tier 3.Data Access Patterns –DataAccessObject (DAO)
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
The Design Discipline.
Semantic Web. Course Content
Introduction to distributed systems Dr. S. Indran 23 January 2004.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Enterprise JavaBeans. Lesson 1: Introduction to Server-Side Component Software.
第十四章 J2EE 入门 Introduction What is J2EE ?
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
Core Indigo Patterns Ted Neward
Enterprise Integration Patterns CS3300 Fall 2015.
آرمان حسين‌زاده آذر  Access to data varies depending on the source of the data.  Access to persistent storage, such as to a database, varies greatly.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 7 1COMP9321, 15s2, Week.
CSCE 315 – Programming Studio Spring Goal: Reuse and Sharing Many times we would like to reuse the same process or data for different purpose Want.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Simple Object Access Protocol
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Web Services An Introduction Copyright © Curt Hill.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
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.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
EJB Enterprise Java Beans JAVA Enterprise Edition
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
A service Oriented Architecture & Web Service Technology.
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
COMP9321 Web Application Engineering Semester 2, 2016 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 8 1COMP9321, 16s2, Week.
COMP9321 Web Application Engineering Semester 2, 2016
COMP9321 Web Application Engineering Semester 1, 2017
WEB SERVICES.
Unit – 5 JAVA Web Services
Introduction to J2EE Architecture
Design and Maintenance of Web Applications in J2EE
Inventory of Distributed Computing Concepts and Web services
Service-centric Software Engineering
Lecture 1: Multi-tier Architecture Overview
Inventory of Distributed Computing Concepts
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Distributed Systems through Web Services
Middleware, Services, etc.
Presentation transcript:

COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 8 1COMP9321, 15s2, Week 8

Assignment 2 2 COMP9321, 15s2, Week 8 Deadline Extended: The due date for assignment2 is (end of Mid Semester Break): Sunday, October , 23:59:59. Demo: Week 10 (the week starting 5 October), during the lab times in UNSW, CSE, Calendar:

J2EE Design Patterns 3 COMP9321, 15s2, Week 8 Last Week, Design Pattern Part I: Model View Controller: MVC is the J2EE BluePrints recommended architectural design pattern for interactive applications. Front Controller (Command): For providing a central dispatch point to handle all incoming requests.

J2EE Design Patterns 4 COMP9321, 15s2, Week 8 This Week, Design Pattern Part II: Service Locator: Typically used in business layer for locating resources (such as database connection) Data Access Object: A typical pattern for data access layer (linking the data storage layer with the application) Business Delegate: A pattern to reduce coupling between presentation-tier clients and business services.

Service Locator Pattern 5 COMP9321, 15s2, Week 8

Service Locator Pattern 6 COMP9321, 15s2, Week 8 Context Service lookup and creation involves complex interfaces and network operations. Problem The service locator pattern is a design pattern used in software development to encapsulate the processes involved in obtaining a service with a strong abstraction layer. When J2EE clients interact with the server side components (EJB: Enterprise Java Beans) or DataSources, clients must locate the service component, which referred to as a lookup operation in JNDI: Java Naming and Directory Interface. Locating a JNDI-managed service object is common to all clients that need to access that service object. It is easy to see that many types of clients repeatedly use the JNDI service, and the JNDI code appears multiple times across these clients. This results in an unnecessary duplication of code in the clients that need to look up services.

Service Locator Pattern 7 COMP9321, 15s2, Week 8 Solution Using a central registry known as the "service locator", which on request returns the information necessary to perform a certain task. Service Locator object will abstract all JNDI usage to hide the complexities of initial context creation and lookup operations Multiple clients can reuse the Service Locator object to reduce code complexity, provide a single point of control msdn.microsoft.com

Service Locator Pattern 8 COMP9321, 15s2, Week 8 To build a service locator pattern, we need: Service Locator InitialContext ServiceFactory BusinessService

Service Locator Pattern 9 COMP9321, 15s2, Week 8 To build a service locator pattern, we need: Service Locator: The Service Locator abstracts the API lookup services, vendor dependencies, lookup complexities, and business object creation, and provides a simple interface to clients. InitialContext ServiceFactory BusinessService

Service Locator Pattern 10 COMP9321, 15s2, Week 8 To build a service locator pattern, we need: Service Locator: The Service Locator abstracts the API lookup services, vendor dependencies, lookup complexities, and business object creation, and provides a simple interface to clients. InitialContext: The InitialContext object is the start point in the lookup and creation process. ServiceFactory: BusinessService:

Service Locator Pattern 11 COMP9321, 15s2, Week 8 To build a service locator pattern, we need: Service Locator: The Service Locator abstracts the API lookup services, vendor dependencies, lookup complexities, and business object creation, and provides a simple interface to clients. InitialContext: The InitialContext object is the start point in the lookup and creation process. ServiceFactory: The ServiceFactory object represents an object that provides life cycle management for the BusinessService objects. eg., The ServiceFactory object for enterprise beans is an EJBHome object. BusinessService:

Service Locator Pattern 12 COMP9321, 15s2, Week 8 To build a service locator pattern, we need: Service Locator: The Service Locator abstracts the API lookup services, vendor dependencies, lookup complexities, and business object creation, and provides a simple interface to clients. InitialContext: The InitialContext object is the start point in the lookup and creation process. ServiceFactory: The ServiceFactory object represents an object that provides life cycle management for the BusinessService objects. eg., The ServiceFactory object for enterprise beans is an EJBHome object. BusinessService: is a role that is fulled by the service that the client is seeking to access. The BusinessService object : is created or looked up or removed by the ServiceFactory. in the context of an EJB application is an enterprise bean. the context of JDBC is a DataSource.

Service Locator Pattern 13 COMP9321, 15s2, Week 8

Identifying Service Locator Pattern in the phonebook lab 14 COMP9321, 15s2, Week 8

Identifying Service Locator Pattern in the phonebook lab 15 COMP9321, 15s2, Week 8

Identifying Service Locator Pattern in the phonebook lab 16 COMP9321, 15s2, Week 8

Dependency Injection 17 COMP9321, 15s2, Week 8

Dependency 18 COMP9321, 15s2, Week 8

SAX Books Parser Example 19 COMP9321, 15s2, Week 8

What is "dependency injection" ? 20 COMP9321, 15s2, Week 8 In software engineering, dependency injection is a software design pattern that implements inversion of control for resolving dependencies. Dependency injection means giving an object its instance variables. Dependency injection provides the ability to pass by reference (or "inject"), service objects into a client (a class or a delegate) at deployment time. This is a top-down approach, in contrast to a bottom-up one wherein the clients discover or create service objects on their own.

Benefits of "dependency injection" … 21 COMP9321, 15s2, Week 8

Data Access Object Data Access Object 22 COMP9321, 15s2, Week 8

Data Access Object Data Access Object 23 COMP9321, 15s2, Week 8 Context Access to data varies depending on the source of the data. Access to persistent storage, such as to a database, varies greatly depending on the type of storage (relational databases, object-oriented databases, flat files, and so forth) and the vendor implementation. Problem For many applications, persistent storage is implemented with different mechanisms, and there are marked differences in the APIs used to access these different persistent storage mechanisms. Other applications may need to access data that resides on separate systems. An example is where data is provided by services through external systems such as business-to-business (B2B) integration systems, credit card bureau service, and so forth.

Data Access Object Data Access Object 24 COMP9321, 15s2, Week 8 Solution Use a Data Access Object (DAO) to abstract and encapsulate all access to the data source. The DAO manages the connection with the data source to obtain and store data.

Data Access Object: Data Access Object: Sequence Diagram 25 COMP9321, 15s2, Week 8

Business Delegate 26 COMP9321, 15s2, Week 8

Business Delegate 27 COMP9321, 15s2, Week 8 Context A multi-tiered, distributed system requires remote method invocations to send and receive data across tiers. Clients are exposed to the complexity of dealing with distributed components. Problem Presentation-tier components interact directly with business services. This direct interaction exposes the underlying implementation details of the business service application program interface (API) to the presentation tier. As a result, the presentation-tier components are vulnerable to changes in the implementation of the business services: When the implementation of the business services change, the exposed implementation code in the presentation tier must change too.

Business Delegate 28 COMP9321, 15s2, Week 8 Solution Use a Business Delegate to reduce coupling between presentation-tier clients and business services. The Business Delegate hides the underlying implementation details of the business service, such as lookup and access details of the EJB architecture. Using a Business Delegate reduces the coupling between presentation-tier clients and the system's business services. Another benefit is that the delegate may cache results and references to remote business services. Caching can significantly improve performance, because it limits unnecessary and potentially costly round trips over the network.

Business Delegate 29 COMP9321, 15s2, Week 8 Client: requests the BusinessDelegate to provide access to the underlying business service. BusinessDelegate: uses a LookupService to locate the required BusinessService component.

Business Delegate Sequence Diagrams 30 COMP9321, 15s2, Week 8

Business Delegate, API, and API Engineering 31 COMP9321, 15s2, Week 8 What is API? Application programming interface (API) is a set of routines, protocols, and tools for building software applications. An API expresses a software component in terms of its operations, inputs, outputs, and underlying types. An API defines functionalities that are independent of their respective implementations. A good API makes it easier to develop a program by providing all the building blocks. A programmer then puts the blocks together. What is API Engineering? API engineering is an application of engineering to the design, development, and maintenance of APIs.

Business Delegate, API, and API Engineering 32 COMP9321, 15s2, Week 8 Web APIs? Web APIs are the defined interfaces through which interactions happen between an enterprise and applications that use its assets. When used in the context of web development, an API is typically defined as a set of HTTP request messages, along with a definition of the structure of response messages, which is usually in an XML or JSON (JavaScript Object Notation) format.

Business Delegate, API, and API Engineering 33 COMP9321, 15s2, Week 8 Web APIs? While "web API" historically has been virtually synonymous for web service, the recent trend (so-called Web 2.0) has been moving away from Simple Object Access Protocol (SOAP) based web services and service-oriented architecture (SOA) towards more direct representational state transfer (REST) style web resources and resource-oriented architecture (ROA). Part of this trend is related to the Semantic Web movement toward Resource Description Framework (RDF). Web APIs allow the combination of multiple APIs into new applications known as mashups.

API Engineering 34 COMP9321, 15s2, Week 8 Will be covered in COMP9322 API Engineering Seminar Speaker: Prof. Boualem Benatallah Date: Thu 8/10/2015 Time: 15: :00 (2 hours) Room: K17_113 Reason: COMP9322 Open Lecture Please Attend!

More Patterns 35 COMP9321, 15s2, Week 8 Core J2EE Patterns Catalog:

A few more things to consider 36 COMP9321, 15s2, Week 8

Guarding a View 37 COMP9321, 15s2, Week 8

Guarding a View 38 COMP9321, 15s2, Week 8

Guarding a View 39 COMP9321, 15s2, Week 8

Guarding a View 40 COMP9321, 15s2, Week 8

Guarding a View 41 COMP9321, 15s2, Week 8

Duplicate Form Submissions 42 COMP9321, 15s2, Week 8

Duplicate Form Submissions 43 COMP9321, 15s2, Week 8

Duplicate Form Submissions 44 COMP9321, 15s2, Week 8

Synchronizer Token 45 COMP9321, 15s2, Week 8

Synchronizer Token 46 COMP9321, 15s2, Week 8

Background Tasks 47 COMP9321, 15s2, Week 8

Background Tasks 48 COMP9321, 15s2, Week 8

Background Tasks 49 COMP9321, 15s2, Week 8

References 50COMP9321, 15s2, Week 8 Core J2EE patterns, Deepak Alur, John Crupi and Dan Marlks, Prentice Hall Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley

51COMP9321, 15s2, Week 8