Technical overview. Three layer architecture. Design patterns. Interfaces. Inversion of Control

Similar documents
Aspect-oriented Refactoring of a J2EE Framework for Security and Validation Concerns

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

OXAGILE RESUMES SUMMARY OF QUALIFICATIONS TECHNICAL SKILLS SENIOR JAVA SOFTWARE ENGINEER

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

Core Java+ J2EE+Struts+Hibernate+Spring

Customer Bank Account Management System Technical Specification Document

Web Presentation Layer Architecture

Unit Testing. and. JUnit

Adapter, Bridge, and Façade

Japan Communication India Skill Development Center

Java (12 Weeks) Introduction to Java Programming Language

Visual Paradigm product adoption roadmap

From Object-Oriented Programming to Component Software

A Practical Guide to Test Case Types in Java

Specialized Programme on Web Application Development using Open Source Tools

Development of a Personal Budgeting Application Using the Waterfall Model. Lorena Flores and Dr. Jacalyn Huband Department of Computer Science

Building Web Services with Apache Axis2

Object Oriented Database Management System for Decision Support System.

Java Application Developer Certificate Program Competencies

This document gives an outline of Tim Ward s work on mobile phone systems

Performance Comparison of Persistence Frameworks

Requirements Design Implementation. Software Architectures. Components Software Component Architecture. DSSA: Domain-Specific Software Architectures

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms

Cache Database: Introduction to a New Generation Database

Oracle Application Development Framework Overview

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007

The Google Web Toolkit (GWT): The Model-View-Presenter (MVP) Architecture Official MVP Framework

Object Relational Database Mapping. Alex Boughton Spring 2011

Modern Software Development Tools on OpenVMS

Java (J2SE & J2EE) and Web Development Training Catalog

Web Applications and Struts 2

Testing Tools Content (Manual with Selenium) Levels of Testing

Software Engineering Techniques

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

BDD FOR AUTOMATING WEB APPLICATION TESTING. Stephen de Vries

Android Developer Fundamental 1

Semarchy Convergence for Data Integration The Data Integration Platform for Evolutionary MDM

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

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

PLV Goldstein 315, Tuesdays and Thursdays, 6:00PM-7:50PM. Tuesdays and Thursdays, 4:00PM-5:30PM and 7:50PM 9:30PM at PLV G320

Japan Communication India Skill Development Center

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer

Java Technology in the Design and Implementation of Web Applications

Lab 9. Spam, Spam, Spam. Handout 11 CSCI 134: Spring, To gain experience with Strings. Objective

Aspect Oriented Programming. with. Spring

Cohort: BCA/07B/PT - BCA/06/PT - BCNS/06/FT - BCNS/05/FT - BIS/06/FT - BIS/05/FT - BSE/05/FT - BSE/04/PT-BSE/06/FT

Agile Best Practices and Patterns for Success on an Agile Software development project.

Intruduction to Groovy & Grails programming languages beyond Java

Japan Communication India Skill Development Center

How To Write An Online Shopping Application In Java Ee

Client Overview. Engagement Situation. Key Requirements for Platform Development :

An Architecture for Web-based DSS

JSR-303 Bean Validation

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

Patterns & Techniques for Separating Business Logic in New SOA System Development. Iyad Jabri Intelliun Corporation CEO

ebay : How is it a hit

GlassFish Security. open source community experience distilled. security measures. Secure your GlassFish installation, Web applications,

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Database Application Design and Development. What You Should Know by Now

If you wanted multiple screens, there was no way for data to be accumulated or stored

Aspect-Oriented Programming

Code Qualities and Coding Practices

Applying MDA in Developing Intermediary Service for Data Retrieval

Japan Communication India Skill Development Center

Realizing Enterprise Integration Patterns in WebSphere

No no-argument constructor. No default constructor found

Implementação. Interfaces Pessoa Máquina 2010/ Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011

JUnit. Introduction to Unit Testing in Java

Understand State Information in Web Applications

Reuse in Oracle SOA Suite 12c: Templates, Libraries or Services?

Introduction to C Unit Testing (CUnit) Brian Nielsen Arne Skou

Roles in Building Web Applications using Java

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Specialized Programme on Web Application Development using Open Source Tools

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Infrastructure that supports (distributed) componentbased application development

CrownPeak Java Web Hosting. Version 0.20

Nexawebホワイトペーパー. Developing with Nexaweb ~ Nexaweb to Improve Development Productivity and Maintainability

Semantic Stored Procedures Programming Environment and performance analysis

Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013

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

Spring Batch - Reference Documentation

Introduction to Service Oriented Architectures (SOA)

ITDUMPS QUESTION & ANSWER. Accurate study guides, High passing rate! IT dumps provides update free of charge in one year!

Monitoring of Tritium release at PTC.

What is Data Virtualization? Rick F. van der Lans, R20/Consultancy

An Approach for Extracting Modules from Monolithic Software Architectures

SPRING INTERVIEW QUESTIONS

Programming with Data Structures

Web Cloud Architecture

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

Glassbox: Open Source and Automated Application Troubleshooting. Ron Bodkin Glassbox Project Leader

Framework as a master tool in modern web development

Tutorial on Client-Server Architecture

A Modular Approach to Teaching Mobile APPS Development

Wireless Web Content Management Using J2ME

Web Application Development for the SOA Age Thinking in XML

Web Development in Java

A Web Services Created Online Training and Assessment Scheme

Transcription:

Introduction

Technical overview Three layer architecture Interfaces Design patterns Inversion of Control

Three-layer architecture Logical structuring mechanism of software solution Typical layers: presentation, business and persistence Different from three-tier Physical structuring mechanism for system infrastructure

Three-layer architecture User Presentation Layer User interface. Contains only presentation functionality. Can be web, desktop, remote service etc. Service/Business Layer Performs the logic (functionality) of the application. Exposes use-case functionality through interfaces. Persistence Layer Provides access to the storage medium (database, flat file, xml file...) through CRUD methods (Storage medium)

Example: Student System Presentation Layer A Java Swing GUI Some interface methods: int addstudent( String name ); void adddegreetostudent( int studentid, int degreeid ); void removedegreefromstudent( int studentid, int degreeid ); boolean studentfulfillsdegreerequirements( int studentid, int degreeid ); Service/Business Layer Some interface methods: int savestudent( Student student ); Student getstudent( int id ); Collection<Student> getallstudents(); void delstudent( Student student ); Persistence Layer

Layered Architecture: Principles Separation of concerns Presentation layer contains presentation logic only! Presentation layer communicates only with service layer No shortcuts... Assume nothing about the implementation! Only interact with the contract (the interface)

Layered Architecture: Advantages Flexibility Easy to replace the layers Reusability Re-use of components Testability Mockup-implementations Maintainability Cleaner, understandable code Scalability Distribution of components across servers

Interfaces Tool/concept referring to point of interaction between components Fundamental in software system design separation of specification and implementation Defines a contract with implementing classes What is accessible

Interface in Java Declared using the interface keyword Can only contain method signatures and constant declarations Abstract can t be instantiated A class may implement any number of interfaces No multiple inheritance in Java Polymorphism at best! public interface List { int maxsize = 1000; } boolean add( Object o ); Object get( int index ); Object remove( int index ); // other...

Interfaces - Example public interface List { boolean add( Object o ); Object get( int index ); Object remove( int index ); } The interface List somelist = new ArrayList(); Instantiation An implementation backed by an array public class ArrayList implements List { private Object[] array = new Object[100]; public boolean add( Object o ) { array[ size++ ] = o; return true; } public Object get( int index ) { return array[ index ]; } public Object remove( int index ) { E temp = array[ index ]; array[ index ] = null; return temp; }

Interfaces - Advantages Easy to switch implementations List Program to concrete classes (bad practice!) LinkedList list = new LinkedList(); LinkedList list = new ArrayList(); ArrayList Won t work! Cannot convert from ArrayList to LinkedList LinkedList Program to interfaces (good practice!) List list = new LinkedList(); List list = new ArrayList(); Works! Choose your own implementation!

Interfaces - Advantages In projects with many co-operating components: Interactions between components can be defined prior to implementation Implementation details can be hidden Dev A Dev B Application object List interface List implementation

Interfaces - Advantages Easier to refactor components Internal methods are not exposed and can be changed or removed Implementation to use can be decided during runtime More elegant programming model since components can share the same interface ReportGenerator PdfReportGenerator ExcelReportGenerator

Layering + Interfaces Formation of standardized tools/resources For example: transactional, logging, security, FRAMEWORKS Enterprise programming Complex with traditional program flow New design paradigm IoC

Framework overview Struts Spring Application framework Provides wiring of system components Provides abstraction layer for other frameworks Web framework Generates dynamic content Hibernate Object-relational mapping system Enables object orientation and database independency Presentation Layer Service/Business Layer Persistence Layer

Framework overview Maven Software project management tool Helps with: Build process Project structure Dependency management Information and documentation Subversion Revision control system Enables multiple developers to work on the same source code base JUnit Unit testing framework Verifies that individual units of code are working properly