Confidential - Property of infiNET Solutions. Architecting and Designing Scalable, Multitier Systems in J2EE infiNET Solutions David R. King – Chief Technology.

Slides:



Advertisements
Similar presentations
3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Advertisements

A component- and message-based architectural style for GUI software
Apache Struts Technology
1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
Spring, Hibernate and Web Services 13 th September 2014.
Technical Architectures
SOA Basics SSE USTC Qing Ding. Topics Quick introduction to SOA Composite applications Services and SOA.
Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005.
Layers & Tiers Umair Javed Lec - 41.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
The Architecture of Transaction Processing Systems
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Enterprise Programming By J Pearce. Enterprise Software Sales HR Inventory Customer Support Shipping.
Nikolaos Korfiatis The Java 2 Enterprise Edition Platform Dept. of Management & Technology-Athens University of Economics and Business Java 2 Platform.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Nilesh Mandani Competencies include: Volume Licensing Enterprise Resource Planning Customer Relationship Management Business Intelligence Proposal for.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Java Pet Store Application. Outline Introduction Introduction Information Layer Information Layer Application Layer Application Layer Infrastructure Layer.
N-Tier Architecture.
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
1 Copyright © 2004, Oracle. All rights reserved. Introduction to Oracle Forms Developer and Oracle Forms Services.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
An Introduction to Software Architecture
Introduction to J2EE Architecture Portions by Kunal Mehta.
第十四章 J2EE 入门 Introduction What is J2EE ?
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SURENDER SARA 10GAS Building Corporate KPI’s
1 Another group of Patterns Architectural Patterns.
Design Patterns: Structural Design Patterns
Random Logic l Forum.NET l Web Services Enhancements for Microsoft.NET (WSE) Forum.NET ● October 4th, 2006.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Lecture 18: Object-Oriented Design
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
IPS Infrastructure Technological Overview of Work Done.
Apache Struts Technology A MVC Framework for Java Web Applications.
Building J2EE Applications Based on Design Patterns with Business Components for Java Olivier LE DIOURIS Principal Product Manager Oracle Corporation.
Introduction to J2EE 1 Introduction to Java 2 Enterprise Edition Presented by Software engineering group Computer science faculty Binus University Welcome!
The Holmes Platform and Applications
J2EE Platform Overview (Application Architecture)
Introduction to Oracle Forms Developer and Oracle Forms Services
Design Patterns: MORE Examples
Structure of a web application
N-Tier Architecture.
Field of Dreams An Online Sporting Goods Marketplace
Introduction to Oracle Forms Developer and Oracle Forms Services
Java Servlets By: Tejashri Udavant..
Introduction to Oracle Forms Developer and Oracle Forms Services
Software Design and Architecture
EADD – Introduction Chapter -1.
Introduction to J2EE Architecture
Design and Maintenance of Web Applications in J2EE
Service-centric Software Engineering
Architectural Roadmap
Lecture 1: Multi-tier Architecture Overview
The Model Layer What is Model?
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Component-based Applications
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Introduction to SOA and Web Services
SO-Architectural Roadmap
Presentation transcript:

Confidential - Property of infiNET Solutions

Architecting and Designing Scalable, Multitier Systems in J2EE infiNET Solutions David R. King – Chief Technology Officer Yuhong Guo – Senior Software Engineer

Confidential - Property of infiNET Solutions Agenda Our Task Software Process Multitier Systems Overview MVC Design Pattern Component Design Pattern Putting it Together Examples

Confidential - Property of infiNET Solutions Our Task – The Challenge The CEO said: –“Build me on-line payment system for higher education”

Confidential - Property of infiNET Solutions Our Task – Business Perspective Different user roles Multiple merchants on campus Campus and department level branding Single sign-on Various client systems on campus Various business rules by institution

Confidential - Property of infiNET Solutions Our Task – Technology Perspective Configurable Customizable –Apply custom business rules Extendable –Use as a development platform for new functionality Scalable Secure Rapid deployment J2EE – The natural choice

Confidential - Property of infiNET Solutions Software Engineering Process Process is critical to a solid system –Solves the business domain problem in a cost efficient way –Addresses Architecture & Design –Addresses Testing & Quality Assurance –Allows effective and efficient contribution of team members (1+1 > 2) –Controls software life-cycle

Confidential - Property of infiNET Solutions Multitier Systems Overview Front-end tier –Resides on end users’ devices Middle tier –Web and application servers Back-end tier –Databases

Confidential - Property of infiNET Solutions MVC Design Pattern Typical MVC pattern for Web

Confidential - Property of infiNET Solutions MVC Design Pattern (cont’d) Problem with typical MVC Controller logic embedded in servlets –Other UI types cannot reuse controller Solution Separate controller logic from servlets and put into regular Java classes

Confidential - Property of infiNET Solutions MVC Design Pattern – New Architecture

Confidential - Property of infiNET Solutions MVC Design Pattern (cont’d) Benefits of separating controller logic from servlets –More flexible Add new interface component for the new UI –Code Mobility Controllers being regular Java classes allows you to deploy the controllers to different tiers as needed –Salable See Code Mobility

Confidential - Property of infiNET Solutions Component Design Pattern Component orientated architecture –Independent module that can be plugged into system Flexibility –Separation of interface from implementation Reusability –Loose coupling between components Scalability –Functionality at different layers

Confidential - Property of infiNET Solutions Component Design Pattern (cont’d) Business logic layer –Light weight component Light view of application data –Application of dynamic business rules Ex. Payment amount must be: –= to some value –>= or <= some value –Minimum amount –Management of session Maintain current state Flow control

Confidential - Property of infiNET Solutions Component Design Pattern (cont’d) User/Service delegation model –User –Service –Service factory –User factory Delegation vs. Inheritance

Confidential - Property of infiNET Solutions Component Design Pattern (cont’d) Application logic layer –Heavy weight component –Domain specific rules –Provides definition of relationship between interfaces

Confidential - Property of infiNET Solutions Component Design Pattern (cont’d) Application Programming Interface (API) –Access by name Bootstrap Mapping –Factory interface Abstract Factory Factory Method –Domain interface

Confidential - Property of infiNET Solutions Component Design Pattern (cont’d) Service Provider Interface (SPI) –Defines configuration format and mechanism –Defines relationship between implementation classes –Defines template method for implementation

Confidential - Property of infiNET Solutions Component Design Pattern (cont’d) Data Access Layer –Encapsulation of data source –Encapsulation of data access method –DAO interfaces –Value object –Data binding

Confidential - Property of infiNET Solutions Component Design Pattern (cont’d) Implementation –XML based configuration Dynamic instantiation Dynamic relationships Dynamic meta-data

Confidential - Property of infiNET Solutions Putting it Together interface PaymentService { PaymentResult postPayment(…); } interface PaymentMethodService { boolean isAddressRequired(); } interface PaymentResult extends Transaction { String getAccountNumber(); } interface CreditCardPaymentResult extends PaymentResult; interface ECheckPaymentResult extends PaymentResult;

Confidential - Property of infiNET Solutions Putting it Together (cont’d) interface Processor { MetaData getMetaData(); Transaction createTransaction(…); } class TransactionData { String getAccountNumber(); void setAccountNumber(String); } interface Transaction { Account getAccount(); boolean hasError(); }

Confidential - Property of infiNET Solutions Putting it Together (cont’d) abstract class AbstractProcessor implements Processor { concrete Transaction createTransaction(…); abstract Transaction createFrom(TransactionData); void setMetaData(MetaData); void setTransactionDAO(TransactionDAO); } class TransactionImpl implements Transaction { TransactionImpl(TransactionData, …); } interface TransactionDAO { boolean add(TransactionData); }

Confidential - Property of infiNET Solutions Putting it Together (cont’d) PaymentService MyPaymentService

Confidential - Property of infiNET Solutions Putting it Together (cont’d) ….

Confidential - Property of infiNET Solutions Examples University of Pittsburgh University of Michigan University of California – San Diego

Confidential - Property of infiNET Solutions Questions & Answers Thank You! David R. King - Yuhong Guo –