You are on page 1of 39

ITT545:WEB

ENGINEERING
CHAPTER 3: Web Applications Architecture

PREPARED BY: NOR AIMUNI MD RASHID/ UiTM CAWANGAN MELAKA KAMPUS JASIN
Chapter Outline
 Fundamentals of Architecture
 Developing Architectures
 Categorizing Architectures
 Specifics and Components of a Generic Web
Application Architecture
 Layered Architectures
 Data Aspect and Database Centric Architectures
 Architectures for Web Document Management and
Multimedia data
Chapter Objectives & Outcomes

 By the end of this chapter, student should be able to:


 Understand the fundamentals of architecture and process in
developing architectures
 Categorize the architectures and identify specifics and
components of a generic web application architecture
3.1 FUNDAMENTALS OF
ARCHITECTURE
SOFTWARE ARCHITECTURE
PROPERTIES
 1. It should describe the software structure.
 2. It should do transition from analysis to implementation.
 3. It should be viewed from different angles with different
viewpoints.
 4. It should be simple and understandable.
 5. It should represent the framework for a flexible system.
CRITERIAS OF ARCHITECTURE
 1. Architecture of a software system should consist
of its structures, the decomposition into
components and their interfaces and relationships.
It should consider both the static and the
dynamic aspects of the Web application so that it
can be reused to build a better design.
 2. The architecture should be such that it helps in
easy transition from analysis to
implementation phase.
CRITERIAS OF ARCHITECTURE
 3. The following four types of views are usually
considered:
 (a) The conceptual view that identifies the entities of
the applications and their relationships;
 (b) The runtime view that describes the components at
the system runtime like servers, communication links,
etc.;
 (c) The process view that maps processes at system
runtime and takes care of features like synchronization
and concurrency; and
 (d) The implementation view that describes system’s
software artifacts like subsystems, components or source
code.
CRITERIAS OF ARCHITECTURE
 4. The architecture should make a system more
understandable. Breaking the system into
smaller components will help us in coping with the
complex architecture, complex design, complex
code, complex testing, and hence, complex Web
maintenance.
 5. The architecture should be flexible, i.e., it
should be easy to incorporate changes into the
software. Its maintenance should be easy.
3.2: DEVELOPING ARCHITECTURES
JACOBSON’S FACTORS AFFECTING WEB
ARCHITECTURE.
3.3 CATEGORIZING
ARCHITECTURES
PROPOSED ARCHITECTURES
 1. Distributed object middleware (DOM): This
type of infrastructure allows to access remote
(distant/ far off) objects transparently. It works on
Remote Procedure Call (RPC) method.
 For example, CORBA is a DOM system that allows
objects on different platforms to interact; MicroSoft’s
Distributed Component Object Model (DCOM) and
Sun’s Enterprise Java Beans (EJB) are also DOM-based
systems.
PROPOSED ARCHITECTURES
 2. Virtual shared memory (VSM): It allows
the distributed processes to access common
data. The processes themselves access a
shared memory. An appropriate middleware
(that is transparent for the processes) is used
to distribute the data. This data can be
anywhere in the system. That is why it is
called virtual.
PROPOSED ARCHITECTURES
 3. Message-oriented middleware (MOM):
The systems that offer functionalities for
asynchronous transmission (messages are
sent to the receiver regardless of its status—
receiver available or not) of messages are
called MOM systems. These systems ensure
that messages are delivered nevertheless.
 For example, Sun’s Java Messaging Service
(JMS) and Microsoft Message Queue (MSMQ).
PROPOSED ARCHITECTURES
 4. Peer-to-Peer (P2P): Peer-to-peer means
direct, point-to-point communication between
two devices (named as peers) without using
any server. The peers are basically equal.
 For example, JXTA and Xmiddle.
PROPOSED ARCHITECTURES
 5. Service-oriented middleware (SOM): The SOM
enhances the DOM systems by the concept of these
services. These objects use a defined interface to
make a service available for other systems or
services. The SOM defines communication protocols
between services. It provides the location and
migration-transparent access to services. So, it
supports a simple integration of services beyond
platform boundaries.
 For example, Sun’s Jini system.
3.4 SPECIFICS OF WEB
PLATFORM ARCHITECTURES
WEB INFRASTRUCTURE ARCHITECTURE/
WEB PLATFORM ARCHITECTURE (WPA)
 The WPA has been developed for different types of
problems. For example, J2EE (Sun’s) and .NET of
problems.
 For example, J2EE (Sun’s) and .NET platform. It tries to
provide basic services for session handling, protocol
wrapping and data access. Not only application
servers but also some specific architectural solutions
have been developed for the issues like security of
data, including firewalls, caching proxies, etc.
CHALLENGES FOR THE WEB
 1. The use of different types of systems has reduced security on
the Web.
 2. Another challenge in Web application development is the
inhomogeneity and immaturity of technical infrastructures.
According to the survey by Gorton and Liu in 2002, it is found
that newer versions are in fact slower than the older systems.
 3. Web applications use a large number of different technical
infrastructures (ranging from struts to EJBs) to solve the given
problems, and that too, concurrently. This is also a great
challenge.
CHALLENGES FOR THE WEB
 4. Internationalization of Web applications is another
challenge today. Web applications need support of
different languages. These are supported by OS. For
example, the Java platform involves internationalization
mechanisms ranging from different character encodings
to multi-language user interfaces.

WPAs provide a variety of range of functionalities to


solve common problems.
3.4 COMPONENTS OF A GENERIC
WEB APPLICATION ARCHITECTURE
COMPONENTS OF WEB APPLICATION
ARCHITECTURE.
WEB INFRASTRUCTURE ARCHITECTURE/
WEB PLATFORM ARCHITECTURE (WPA)

 Web application architecture defines the interactions between applications, 


middleware systems and databases to ensure multiple applications can work
together.
 With web applications, you have the server vs. the client side. In essence, there
are two programs running concurrently:
 The code which lives in the browser and responds to user input
 The code which lives on the server and responds to HTTP requests
WEB INFRASTRUCTURE ARCHITECTURE/
WEB PLATFORM ARCHITECTURE (WPA)
When a user types in a URL and taps “Go,” the browser will
find the Internet-facing computer the website lives on and
requests that particular page.

The server then responds by sending files over to the


browser.

After that action, the browser executes those files to show


the requested page to the user.

Now, the user gets to interact with the website. Of course,


all of these actions are executed within a matter of seconds
COMPONENTS OF WEB APPLICATION
ARCHITECTURE.
 1. Client: Several Web browsers like Chrome, IE, Firefox, Mozilla, etc. are
available. These browsers are installed at the client-side.
 2. Firewall: A firewall (may be a hardware or a software) controls the
communication between insecure networks (like Internet) and the secure
networks [like Local Area Networks (LANs)].
 3. Proxy: A proxy is basically used to store some Web pages in the cache
temporarily. But, it can also assume other functionalities like doing
customization (as per customer’s requirements) or even user tracking.
 4. Web server: Several Web servers are created like Yahoo server in the
USA. When the client sends the request, the server receives that request,
and then, the server responds to that request using synchronous
communication.
COMPONENTS OF WEB APPLICATION
ARCHITECTURE.
 5. Database server: It is a server which provides the company’s data in
an ordered form, usually a table.
 6. Media server: It is used basically to stream non-structured bulk data
like a video or an audio.
 7. Content management server: It holds the contents to serve an
application. These contents are available in the form of semi-structured
data like XML documents.
 8. Application server: It holds the functionality needed by several
applications like workflow or customization.
 9. Legacy/ older application: It refers to an older system that should
be integrated with the internal or external component.
3.5 LAYERED ARCHITECTURES
TWO-LAYER ARCHITECTURE

 The client-server or the request-response model


 A client request can be on the:
 1. Static HTML pages that do not require any processing
logic on the server. Even database can be accessed
through the application logic on the Web server like in form
of CGI scripts; and
 2. Dynamic HTML pages that include script instructions
directly in the HTML code like when server-side include
(SSI) is used. They are interpreted by databases. The
application logic or dynamic HTML pages can use services.
It provides access to
N-LAYER ARCHITECTURE
the application data.

It hosts the business logic


of the application in an
application server.

It delivers the result of


the request in the
required output format.
3.6 DATA ASPECT AND
DATABASE CENTRIC
ARCHITECTURES
DATA STORAGE FORM
 Data that is stored or processed may be stored in
any of the following three forms:
 1. Ordered data in a database;
 2. Documents used in different word processing
software; and
 3. Multimedia data stored in media servers.
DATABASE CENTRIC
ARCHITECTURES
 The objective is to integrate databases into Web applications.
 It is easy to do this integration as the relational databases
available today are very much mature (like MS-SQL SERVER,
MYSQL, PARADOX, SYBASE, ORACLE, etc.).
 Microsoft provides the facility of Open Database Connectivity
(ODBC), which connects front end to the back end.
 Sun provides Java Database Connectivity (JDBC) to connect
Java applications to the back end.
 These databases can be accessed either directly from within
Web server extensions (in two-tier architectures) or over
application servers (in N-layer architectures).
3.7 ARCHITECTURES FOR WEB
DOCUMENT MANAGEMENT AND
MULTIMEDIA DATA
CONTENT MANAGEMENT
 Content management architectures support the
integration of Web documents from different
sources that can be easily integrated with the Web
applications. Content management systems are
used to implement content management
architectures.
CONTENT MANAGEMENT
ARCHITECTURES
ARCHITECTURES FOR MULTIMEDIA DATA

 Applications of multimedia data streaming


 1. It makes the existing contents available
on demand like video-on-demand.
 2. It allows broadcasting of live contents to
a large number of users. This is known as
Web casting.
PROBLEMS WITH MULTIMEDIA DATA
 1. Each client establishes his or her own connection to the server.
This leads to bandwidth and server load problems. Solution to
this problem:
 Push mechanism: This mechanism will not transmit the contents
to a local node unless at least one user or a specific number of
users requested them. This method is used when there is no
information about the spatial distribution of the user group.
 Pull mechanism: This mechanism transmits the contents by a
pre-defined distribution plan. This means that the media
distribution can be optimized with regard to the transmission
medium like a satellite and the transmission time. This type of
distribution must know the local distribution of the user group. But,
this method is not widely used, as building such distribution
architecture is very costly and maintenance-intensive.
PROBLEMS WITH MULTIMEDIA DATA
 2. Poor interactivity of media : Some browser plug-ins
like MS Windows Media Player are used to visualize the
multimedia contents, but these plug-ins have no way of
representing links or anchors.

 3. Time-sensitive media like audio and: the contents of


an HTML page (text or images) cannot be easily
synchronized to a medium’s contents.
 Languages like Synchronized Multimedia Integration Language
(SMIL) can overcome this type of limitation.
END OF CHAPTER

You might also like