Client-server 3-tier N-tier



Similar documents
Complete Java Web Development

SSC - Web development Model-View-Controller for Java web application development

Japan Communication India Skill Development Center

Japan Communication India Skill Development Center

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Glassfish, JAVA EE, Servlets, JSP, EJB

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Web Application Architectures

Customer Bank Account Management System Technical Specification Document

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Japan Communication India Skill Development Center

Japan Communication India Skill Development Center

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

zen Platform technical white paper

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

JAVA/J2EE DEVELOPER RESUME

Client/server is a network architecture that divides functions into client and server

Tutorial: Building a Web Application with Struts

Application of MVC Platform in Bank E-CRM

Commercial software development with the help of J2EE architecture and MVC

Oracle Application Development Framework Overview

Web. Studio. Visual Studio. iseries. Studio. The universal development platform applied to corporate strategy. Adelia.

AD-HOC QUERY BUILDER

Understanding Application Servers

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Java Technology in the Design and Implementation of Web Applications

Software Architecture

New Web Application Development Tool and Its MDA-Based Support Methodology

Proposal for DSpace Web MVC

CrownPeak Java Web Hosting. Version 0.20

Portals, Portlets & Liferay Platform

Building Web Applications, Servlets, JSP and JDBC

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Java Application Developer Certificate Program Competencies

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

Software Architecture Document

MVC pattern in java web programming

Design Approaches of Web Application with Efficient Performance in JAVA

Java 2 Platform, Enterprise Edition (J2EE) Bruno Souza Java Technologist, Sun Microsystems, Inc.

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Net-WMS FP Net-WMS SPECIFIC TARGETED RESEARCH OR INNOVATION PROJECT. Networked Businesses. D.8.1 Networked architecture J2EE compliant

A Java Framework for Multi-Tier Web-Centric Applications Development

Windows 2000 / NT 4.0 / 95 / 98, MS-DOS, Suse Operating Systems

Eclectic Computing. Time Tracking Tool Software Architecture Document. Version <1.3>

Stock Trader System. Architecture Description

Performance Comparison of Persistence Frameworks

Web Container Components Servlet JSP Tag Libraries

Enterprise Integration Architectures for the Financial Services and Insurance Industries

B. WEB APPLICATION ARCHITECTURE MODELS

SwiftScale: Technical Approach Document

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

How To Develop A Web Dialog For An Org Database With A Database On A Computer (Oracle)

Distributed Database Design

Research Article. ISSN (Print) *Corresponding author Lili Wang

What Is the Java TM 2 Platform, Enterprise Edition?

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

PHP Web Authoring for Database Management based on MVC Pattern

Course Name: Course in JSP Course Code: P5

How to make a good Software Requirement Specification(SRS)

Mastering Tomcat Development

The Comparison of J2EE and.net for e-business

Nicholas S. Williams. wrox. A Wiley Brand

C/S Basic Concepts. The Gartner Model. Gartner Group Model. GM: distributed presentation. GM: distributed logic. GM: remote presentation

Java EE Web Development Course Program

Tutorial on Client-Server Architecture

Service Oriented Architectures

A Comparative Study of Web Development Technologies Using Open Source and Proprietary Software

SAS Information Delivery Portal

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Architecture Workshop

Tier Architectures. Kathleen Durant CS 3200

System types. Distributed systems

Chapter 1 Introduction to Enterprise Software

HPC PORTAL DEVELOPMENT PLATFORM

Software Architecture Documentation

Modern Software Development Tools on OpenVMS

How To Understand The Architecture Of Java 2Ee, J2Ee, And J2E (Java) In A Wordpress Blog Post

Heterogeneous Tools for Heterogeneous Network Management with WBEM

DTS Web Developers Guide

Enterprise Application Integration

Core Java+ J2EE+Struts+Hibernate+Spring

Architectural Framework for Operational Business Intelligence System

Web and Enterprise Applications Developer Track

Web Applications: Overview and Architecture

JEE Web Applications Jeff Zhuk

CSI 2132 Lab 8. Outline. Web Programming JSP 23/03/2012

Holistic Performance Analysis of J2EE Applications

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

Transcription:

Web Application Design Notes Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 642 Software Engineering for the World Wide Web N-Tier Architecture network middleware middleware Client Web Server Application Server DB Server Client-server 3-tier N-tier 3 December 2013 Offutt 2 1

Design Goals A major design goal of the N-tier architecture is separation of concerns : 1. Presentation 2. Logic 3. Data Also to support our seven criteria : 1. Maintainability 2. Security 3. Scalability 4. 3 December 2013 Offutt 3 Separation of Concerns Presentation HTML & JSP Data content Data representation Data storage Servlets & beans Data structures Beans & java classes Data base & files Oracle, sql 3 December 2013 Offutt 4 2

Separation of Concerns (2) doget() and dopost() should be simple and short Shift processing to other methods and classes Put complicated logic in non-servlet classes Put almost no logic in JSPs JSPs should present data they get from other classes JSP Use to process user input Use JSPs to present data that is on server Servlet Beans & Java classes DB 3 December 2013 Offutt 5 Design Specification Good Habits Software Requirements Baseline Information Architecture Specification Site map, Web Page Flows, Compositions, Labeling, Data Element Mappings Web Application Design High-Level Software Design Software Architecture and System Architecture Diagram Class Diagrams Sequence Diagrams Class Specifications 3 December 2013 Offutt 6 3

Model-View-Controller (MVC) The MVC architecture is a common abstraction in web application design Divides the responsibilities of objects Decreases coupling between objects and layers (supports easier maintenance) Helps divide the work supports development expertise areas One of the first web design patterns Probably over-used If I only have one tool, a hammer, all problems look like nails 3 December 2013 Offutt 7 Model-View-Controller (MVC) method calls events state query View Renders the model Requests updates from the model Sends user inputs to controller Allows controller to select view Model Encapsulates application state Responds to state queries Exposes application functionality Notifies views of changes change notification HTML / JSP view select user inputs data structures state change Java Controller Defines application behavior Maps user actions to model updates Selects a view for response One view for each function Graphic from Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition, Nicholas Kassem et al., October 2000 3 December 2013 Offutt 8 4

Web Application Design Complexity Complexity HTML Pages Basic JSPs and JSPs with Design frameworks Servlets Modular with Modular Components Components and Enterprise beans SWE 642 JSPs JSPs JavaBeans components custom tags Graphic from Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition, Nicholas Kassem et al., October 2000 JSPs JavaBeans components custom tags templates enterprise beans 3 December 2013 Offutt 9 Common Design Mistakes No design specifications and no comments in code Overly limiting collaboration amongst the development team only 1-2 people understanding and owning the design Coding for future requirements Don t code ahead requirements will always be different Instead, use a flexible design Choosing a design framework that is too complicated Then making it worse by only using part of the framework Using the be lazy parts of agile processes without using the do it better parts 3 December 2013 Offutt 10 5

Best Practices Establish a Software Requirements Baseline Create design specifications Use Java Doc Train all of the development team on the design patterns and design constructs selected for the application, especially the connection points between tiers 30 minute rule every person can explain design in 30 minutes Design/develop adaptable systems, using object-oriented principles Use meaningful package, class, method, and variable names 3 December 2013 Offutt 11 Web Application Design Summary SWE 642 teaches the basics, but only scratches the surface of designing web applications SWE 642 gives a solid grounding, but your knowledge is far from complete Dozens of design frameworks are available to help build better web applications Be sure to learn the concepts, not just the syntax! Practitioners and educators are learning more every day The web changes every aspect of software engineering 3 December 2013 Offutt 12 6