CS 415 N-Tier Application Development By Umair Ashraf July 2nd,2013 National University of Computer and Emerging Sciences Lecture # 7 N-Tier Architecture.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

SWE 316: Software Design and Architecture
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Objectives In this session, you will learn to:
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
8.
Business Continuity and DR, A Practical Implementation Mich Talebzadeh, Consultant, Deutsche Bank
Technical Architectures
CSLA Presenter Sergey Barskiy, senior consultant at Magenic Technologies your questions Send an in order.
1 Chapter 2 Database Environment Transparencies © Pearson Education Limited 1995, 2005.
Distributed Systems Architectures
Chapter 13 Physical Architecture Layer Design
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Distributed Information Systems - The Client server model
Chapter 2 Database Environment Pearson Education © 2014.
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
DATABASE MANAGEMENT SYSTEMS 2 ANGELITO I. CUNANAN JR.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
N-Tier Architecture.
Software Development Architectures Ankur K. Rajopadhye Louisiana Tech University.
Client/Server Architectures
Client/Server Technology Two-Tier Architecture Three-Tier Architecture Josh Antonelli Jenn Lang Joe Schisselbauer Chad Williams.
The Design Discipline.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Database Architectures and the Web Session 5
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
CSC271 Database Systems Lecture # 4.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
DAT602 Database Application Development Lecture 12 C/S Model Database Application.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
CS 415 N-Tier Application Development By Umair Ashraf June 28,2013 National University of Computer and Emerging Sciences Lecture # 5 Microsoft MVC3 Architecture.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
© 2005 Prentice Hall10-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Bayu Adhi Tama, M.T.I 1 © Pearson Education Limited 1995, 2005.
Introduction Database integral part of our day to day life Collection of related database Database Management System : software managing and controlling.
Arch-1 9.Architecture. Arch-2 What’s Architecture? Description of sub-system –Components/sub-systems –Their interaction Framework for communication.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Chapter 1 Revealed Distributed Objects Design Concepts CSLA.
Chapter 2 Database Environment.
Creating competitive advantage Copyright © 2003 Enterprise Java Beans Presenter: Wickramanayake HMKSK Version:0.1 Last Updated:
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
J2EE Platform Overview (Application Architecture)
Chapter 12: Architecture
INLS 623– Stored Procedures
N-Tier Architecture.
Distribution and components
Introduction to J2EE Architecture
#01 Client/Server Computing
Introduction to Databases Transparencies
Lecture 1: Multi-tier Architecture Overview
Chapter 12: Physical Architecture Layer Design
Chapter 6 – Architectural Design
Software models - Software Architecture Design Patterns
MORE ON ARCHITECTURES The main reasons for using an architecture are maintainability and performance. We want to structure the software into reasonably.
#01 Client/Server Computing
Presentation transcript:

CS 415 N-Tier Application Development By Umair Ashraf July 2nd,2013 National University of Computer and Emerging Sciences Lecture # 7 N-Tier Architecture issues

Agenda/Contents for Today’s Lecture  Quiz 1 Solution  MVC3 /MVC4 Framework Review  Practical Demonstration  N-Tier Architecture issues.  Assignment 1 on MVC3/MVC4 framework

What Is Scaffolding?  Scaffolding in ASP.NET MVC can generate the boilerplate code you need for create, read, update, and delete (CRUD) functionality in an application. The scaffolding templates can examine the type definition for a model (such as the Album class you’ve created), and then generate a controller and the controller’s associated views. The scaffolding knows how to name controllers, how to name views, what code needs to go in each component, and also knows where to place all these pieces in the project for the application to work.

Overview  N-Tier architecture  is an industry-proved software architecture model,  suitable to support enterprise-level client/server applications by resolving issues like scalability, security, fault tolerance and etc.

N-Tier Architecture Introduction  Some Terminology's Difference and Relationship Some Terminology's Difference and Relationship  Tier and Layer Tier and Layer  Tier And Process Tier And Process  Layer and Process Layer and Process

Tier and Layer  Tier  the physical deployment computer.  Usually an individual running server is one tier.  Several servers may also be counted as one tier, such as server failover clustering.  Layer  logic software component group mainly by functionality;  is used for software development purpose.  Tier and Layer  Layer software implementation has many advantages and is a good way to achieve N-Tier architecture.  Layer and tier may or may not exactly match each other.  Each layer may run in an individual tier.  Multiple layers may also be able to run in one tier.  A layer may also be able to run in multiple tiers.  For example, in Diagram 2 below, the persistence layer in.NET can include two parts: persistence Lib and WCF data service, the persistence lib in the persistence layer always runs in the same process as business layer to adapt the business layer to the WCF data service. However, the WCF data service in persistence layer can run in a separate individual tier.  Here is another example: we may extract the data validation in business layer into a separate library (but still kept in business layer), which can be called by client presenter layer directly for a better client- side interactive performance. If this occurs, then data validation part of the business layer runs in the same process of the client presenter layer, the rest of business layer runs in a separate tier.

Tier And Process  If a layer can run in an individual process,  usually it will also be able to run in an individual computer (tier), hence it can be considered capable for an individual tier in N-Tier architecture.  However, this isn’t always true.  For example, assume that there are two layers which are implemented to run in two individual processes; they communicate with each other too.  However, if these two layers are implemented in a such way that their IPC (inter-process communication) is solely based on a non-distributed way, such as the local shared memory, then these two layers can run in two different processes only in the same computer, not in two different computers. Unless there is another alternative distributed IPC way (such as socket) available for these two layers, these two layers will be considered capable for only one tier even though they can run in two different processes of the same computer.

Layer and Process  A layer may  run in an individual process;  in several processes too.  Same as “Tier and Layer Relationship”  Several layer may also  run in an individual process;

N-Tier Architecture

N-Tier Architecture - Advantages  Scalable:  this is due to its capability of multiple tier deployment and the tier decoupling it brought.  For example,  the data tier can be scaled up by database clustering without other tiers involving.  The web client side can be scaled up by load-balancer easily without affecting other tiers.  Windows server can be clustered easily for load balancing and failover.  In addition, business tier server can also be clustered to scale up the application, such as Weblogic cluster in J2EE.  Better and finer security control to the whole system:  we can enforce the security differently for each tier if the security requirement is different for each tier.  For example,  business tier and data tier usually need higher security level than presentation tier does, then we can put these two high security tiers behind firewall for protection.  1 or 2 tiers architecture cannot fully achieve this purpose because of a limited number of tiers.  Also, for N-Tier architecture, users cannot access business layer and data layer directly, all requests from users are routed by client presenter layer to business layer, then to data layer. Therefore, client presenter layer also serves as a proxy-like layer for business layer, and business layer serves as a proxy-like layer for data layer. These proxy-like layers provides further protection for their layers below.  Better fault tolerance ability:  for example,  the databases in data layer can be clustered for failover or load balance purpose without affecting other layers.

 Independent tier upgrading and changing without affecting other tiers:  in object-oriented world, Interface-dependency implementation can decouples all layers very well so that each layer can change individually without affecting other layers too much.  Interface-dependency means a layer depends on another layer by interfaces only, not concrete classes.  Also, the dependency of a layer only on its directly-below layer also minimizes the side effect of a layer’s change on the whole system.  For example,  if keep the interfaces unchanged, we can update or replace the implementation of any layer independently without affecting the whole system.  Due to the changing of business requirement and technology, changing the implementation of a layer to another totally different one does happen often.  Friendly and efficient for development:  the decoupled layers  are logic software component groups mainly by functionality,  are very software development friendly and efficient.  Each layer  can be assigned individually to a team who specializes in the specific functional area; a specialized team can handle the relevant task better and more efficiently.

Issues of the N-Tier architecture  In small applications, the benefits are usually not visible  The performance of the whole application  may be slow if the hardware and network bandwidth aren’t good enough because more networks, computers and processes are involved.  Every data that goes in the system from the user to the database must pass through the components in the middle layers, and therefore the response time of the system will be slower.  More cost for hardware, network, maintenance and deployment  because more hardware and better network bandwidth are needed.  Due to the componentization of the tiers, the complex structure is difficult to implement or maintain

Issues of the N-Tier architecture  You end up creating a lot of classes. This can lead to maintenance issues and could even be a performance issue as it does take time to create a new class at run time.  Quite inefficient.  Must learn API (CORBA, RMI, etc.)  Expensive products  More complex; thus, more potential for bugs  Harder to balance loads  N-tier does not work well when you do not know the structure of the tables from which you will be retrieving data. For example, in a Query By Example (QBE) application where the user may put together several columns from several tables, there is no way to generate classes on the fly to accomplish this.  Creating reports is not something that lends itself to a good n-tier design, as report writers do not use classes to get at data

Assignment 1 Announcement Choose any one case study and implement Web Application using MVC3/MVC3 framework of ASP.NET  Deadline : 8 th July AM.  Group of 2 to 3 people  No Late Submission Allowed  Technology ASP.NET /MVC3 or MVC3 framework  Technology change not allowed without prior approval.

Reference Material Text Book :Professional ASP.NET MVC4 By WROX (EBook uploaded on website ) Other References :