Enterprise Application Architecture

Slides:



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

Welcome to Middleware Joseph Amrithraj
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
An architecture for webb applications, J2EE
Data - Information - Knowledge
Technical Architectures
Web Server Hardware and Software
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
Distributed Systems Architectures
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
Nikolaos Korfiatis The Java 2 Enterprise Edition Platform Dept. of Management & Technology-Athens University of Economics and Business Java 2 Platform.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Distributed System Using Java 2 Enterprise Edition (J2EE)
UNIT-V The MVC architecture and Struts Framework.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
IS 466 ADVANCED TOPICS IN INFORMATION SYSTEMS LECTURER : NOUF ALMUJALLY 3 – 10 – 2011 College Of Computer Science and Information, Information Systems.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Enterprise Java Beans CS-422. Application Servers In the late 1980s and though the mid 1990s a number of corporations (Broadvision, Netscape…) marketed.
Lecture On Database Analysis and Design By- Jesmin Akhter Lecturer, IIT, Jahangirnagar University.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
DATABASE PROGRAMMING Lecture on 16 – 05 – PREVIOUS LECTURE QUIZ: - Some students were very creative in transforming 2NF to 3NF. Excellent! - Some.
M1G Introduction to Database Development 6. Building Applications.
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Slide 1 Physical Architecture Layer Design Chapter 13.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
JDBC Chapter 1 JDBC Introduction
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Business Applications– Using Java _____ Presented by Priya Saha.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Internet and Distributed Application Services
Java Server Pages Can web pages be created specially for each user?
J2EE Platform Overview (Application Architecture)
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Netscape Application Server
PGT(CS) ,KV JHAGRAKHAND
N-Tier Architecture.
Chapter 1 Introduction to Computers, Programs, and Java
Principles of Network Applications
MVC and other n-tier Architectures
The Client/Server Database Environment
CSC 480 Software Engineering
CHAPTER 3 Architectures for Distributed Systems
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Book: Integrated business processes with ERP systems
Introduction to J2EE Architecture
Design and Maintenance of Web Applications in J2EE
Book: Integrated business processes with ERP systems
MSIS 655 Advanced Business Applications Programming
IT INFRASTRUCTURES Business-Driven Technologies
Distributed System Using Java 2 Enterprise Edition (J2EE)
Lecture 1: Multi-tier Architecture Overview
JavaServer Faces: The Fundamentals
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
The Database Environment
Component-based Applications
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Presentation transcript:

Enterprise Application Architecture

What is Enterprise Application? An enterprise or e-commerce application is an application that an enterprise or an organization uses to do business using Internet.

Key challenges of enterprise application Performance: Since the application is now exposed to millions of users, its very important that it responds faster enough to user requests. This is one of the most important aspects that play a key role in the success of a business. Reliability: The application must be reliable in terms of processing the business transactions successfully and accurately. Availability: It’s very important that the application be up and running all the times with almost zero downtime. Few seconds of downtime can result in losing thousands of $$. Security: The application must be able to provide a secure environment during the exchange of information between customers and businesses.

Core J2EE Technologies J2EE technologies are standard helper technologies that we use to build enterprise applications. Here is list of important technologies that every J2EE application server supports: Technology Name Description JDBC Used for easy interaction with various Databases Servlets/JSP Used for building dynamic web applications in Java JNDI Used for interacting with Naming and Directory Services JMS Used for interacting with Messaging Systems EJB Component technology for building distributed components Javamail Used for sending Emails

Enterprise Application Architectures Since we are building enterprise applications in Java, we need to know the architecture of a typical enterprise application. Before we look into it, let’s learn something about the various enterprise architectures that we currently have

2-Tier Architecture In this architecture, all the business logic and presentation logic of the application is embedded in the clients computer itself. Therefore if my application has 100 clients, I need to install the application on all the 100 client computers. However the database will still reside on a separate computer that will be shared by all the clients.

Fig: Typical 2-Tier Architecture PT BT DB Client 2 Client 1 Fig: Typical 2-Tier Architecture

Advantages Simple and easy to build 9 Low cost Disadvantages Even a small change to the application requires a reinstall of the application on all the client computers. If some clients are not ready to take the changes, then multiple versions of the application will prevail, thereby causing maintenance nightmares. The performance of the application is dependent on the performance of client computer. Heavy network traffic due to multiple requests to the database from all the client computers. The disadvantages of this architecture outweigh the few advantages making it less useful.

3-Tier Architecture In this architecture, the presentation logic, business logic and data are logically distributed in three tiers. The main difference is that the business logic is permanently isolated from all the client systems and moved to centralized middle tier. The presentation logic on the client systems will query the business logic in the middle tier which in turn accesses the data from the database. This architecture overcomes all the cons of 2-tier system.

Fig: Typical 3-Tier Architecture PT DB Client 1 BT Client 2 Fig: Typical 3-Tier Architecture

Advantages Centralized business logic will offer more flexibility. Business logic is only required to be changed at one place there by eliminating the installation process of the application on client systems. Less network traffic, thereby improving the performance of the application. Application performance is no longer dependent on client computer due to the business logic isolation. 9 No more maintenance nightmares. Disadvantages Any update to the business logic must be accepted by all the clients even if they are not ready for updates.

N-Tier Architecture In this type of architecture, the application logic is divided based on the functionality rather than physically like in 2-tier and 3-tier architectures. A typical n-tier architecture contains the following elements: User Interface: This is something like a web browser that handles the client interactions. Presentation Logic: This defines format using which the information will be displayed. Business Logic: Encapsulates all the business rules by interacting with data sources. Infrastructure Services: These are utility services that the presentation and business logic makes use of.

Breaking the application logic based on functionality offers several benefits like flexibility, better maintenance, improved performance, reusability of code and may more. This architecture is also referred to as Model-View-Controller (MVC) architecture.

Enterprise Architecture An N-tier architecture is applicable to a single application in an enterprise. However, an enterprise application is a collection of several applications within the enterprise with all the applications working in tandem and interacting with each other through well defined interfaces a shown in the following figure.

Simply stating, enterprise architecture is a combination of several n-tier architectures. With this basic knowledge of various architectures, let’s now try to understand somethings about application servers.

J2EE Application Servers Unlike simple Java programs, we don’t use java command to execute the J2EE applications. We use a special program called application server to run the applications. However, we still use the same old javac command to compile the applications. An application server is the heart of any J2EE application. This is the one that runs the enterprise application on the internet. So, we can’t even move a step forward without knowing what this is.

A J2EE application server is a ready made sophisticated application that will host and run all the J2EE applications. There are several free and commercial application servers available in the market today that are developed by noted companies like Sun Microsystems Inc, IBM, BEA and many more. What is the purpose of all these companies developing the same application server? Here is the deal. Sun Microsystems first came up with the notion of J2EE platform that can be used to build large scale enterprise applications in Java. To simplify the development of such applications, they felt the need for the following two things: A Server that runs the applications Helper technologies to build the applications.

They did the hard work and came up with the specifications for the above. These are popularly known as J2EE specifications. Having just the specifications is not good enough. We need someone to convert the specifications into workable realities. Therefore, Sun Microsystems decided to distribute the specifications to companies who can implement them. This is how IBM, BEA, Apache and several other companies came into picture. These companies used the J2EE specifications from Sun Microsystems, and built the two workable components listed above using their expertise. Once they built the application server along with the helper technologies, they started selling it.

A company to build and host enterprise level applications in Java needs a J2EE application server. It will therefore hunt for those who sell the J2EE servers and come across several companies like SUN, IBM, BEA, JBoss and many more. After serious negotiations with the companies, it finally chooses the company who sells it for less $$ and more value. Once you have a J2EE application server, you can start building and running enterprise applications. All the companies that built the J2EE Application Server gave funky names to their product shown in the following table:

“A J2EE application server runs enterprise internet applications that are built using standard J2EE technologies”.