Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Web Application Architectures & Modelling Web Applications: A Comprehensive Overview, Lecture notes of Web Design and Development

Web Engineering and Techniques for Student and Staff Members

Typology: Lecture notes

2021/2022

Uploaded on 02/08/2023

sudharson_kumar
sudharson_kumar 🇬🇧

6 documents

1 / 43

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
WEB APPLICATION
ARCHITECTURES & MODELLING
WEB APPLICATIONS
2.1 Introduction
2.1.1. What is an Architecture?
An architecture of a system is best represented as structural details of the system. It is
a common practice for practitioners to draw the system architecture as a structural component
or class diagram in order to represent the relationships between the subsystems.
The web application architecture describes the interactions between applications,
databases, and middleware systems on the web. It ensures that multiple applications work
simultaneously.
The most important properties of software architectures:
1. Architecture describes structure:
The architecture of a software system consists of its structures, the decomposition
into components, and their interfaces and relationships. It describes both the static and the
dynamic aspects of that software system, so that it can be considered a building design and
flow chart for a software product.
2. Architecture forms the transition from analysis to implementation:
The architecture is transformed to implementation by breaking the functional
requirements and quality requirements down into software components and their
relationships and interfaces in an iterative approach. This process is supported by a
number of approaches, such as the Unified Process.
2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b

Partial preview of the text

Download Web Application Architectures & Modelling Web Applications: A Comprehensive Overview and more Lecture notes Web Design and Development in PDF only on Docsity!

WEB APPLICATION

ARCHITECTURES & MODELLING

WEB APPLICATIONS

2.1 Introduction

2.1.1. What is an Architecture?

An architecture of a system is best represented as structural details of the system. It is a common practice for practitioners to draw the system architecture as a structural component or class diagram in order to represent the relationships between the subsystems.

The web application architecture describes the interactions between applications, databases, and middleware systems on the web. It ensures that multiple applications work simultaneously.

The most important properties of software architectures:

1. Architecture describes structure:

The architecture of a software system consists of its structures, the decomposition into components, and their interfaces and relationships. It describes both the static and the dynamic aspects of that software system, so that it can be considered a building design and flow chart for a software product.

2. Architecture forms the transition from analysis to implementation:

The architecture is transformed to implementation by breaking the functional requirements and quality requirements down into software components and their relationships and interfaces in an iterative approach. This process is supported by a number of approaches, such as the Unified Process.

2.2 Web Application Architectures & Modelling Web Applications

3. Architecture can be looked at from different viewpoints:

There are four different views: (1) the conceptual view, which identifies entities of the application domain and their relationships; (2) the runtime view, which describes the components at system runtime, e.g., servers, or communication connections; (3) the process view, which maps processes at system runtime, while looking at aspects like synchronization and concurrency; and (4) the implementation view, which describes the system’s software artifacts, e.g., subsystems, components, or source code. This differentiation into different viewpoints is also supported by modeling languages, e.g., the Unified Modeling Language – UML.

4. Architecture makes a system understandable:

Structuring software systems and breaking them down into different perspectives allows us to better manage the complexity of software systems, and the systems become easier to understand.

5. Architecture represents the framework for a flexible system:

It refers to architecture as a ―framework of change‖, i.e., the software architecture forms the framework in which a software system can evolve.

2.1.2. Categorizing Architectures

Architectures for Web application environments based on layering aspect and Data aspect.

 Layering aspect: Layering means that software systems are structured in several tiers. Many frameworks in the field of distributed systems and Web applications are primarily structured by the layering aspect, e.g., J2EE (Sun Microsystems 2003a) Architectures used to integrate legacy systems, also referred to as Enterprise Application Integration (EAI), and portals also fall in this category.

 Data aspect: Data can be structured or non-structured. Structured data follow a defined scheme like tables in a relational database or XML structures in a document. Non- structured data are multimedia contents, e.g., images, audio, and video, which typically do not follow an explicit scheme.

Architectures for Web application based on distribution of data and messages (Distributed Environment).

1. Distributed Object Middleware (DOM)

This type of infrastructure allows us to access remote objects clearly. This type appears based on the Remote Procedure Call mechanism (RPC). Some DOM systems also have objects on different platforms, such as CORBA, to interact. Other examples of this type of system include DCOM (Distributed Component Object Model) from Microsoft or EJB (Enterprise Java Beans) from Sun Microsystems.

2.4 Web Application Architectures & Modelling Web Applications

Web Platform Architectures has been developed for a wide range of broad per-way. Application servers, such as the implementation of J2EE and .NET platforms, try to provide basic services for handling sessions (session), packing protocol {protocol wrapping), and data access. In addition to the application servers, the specific architectural solutions have been cloned for a variety of issues, such as security issues, performance, or data integration. Examples of this data are firewalls, caching proxies, and EAI.

Paradoxically, the use of various different systems has been done to evaluate and sustain quality needs. For example, fulfillment of performance needs becomes more difficult due to an increase in the number of components and products used from third party vendors (commercial or open source).

Another problem in WEB application development is the lack of simultaneous and immaturity of technical infrastructure. Gorton and Liu (2002) outlined issues that arise in preparation of performance analysis for the application servers used for fast updates: The survey revealed that the latest product version introduced slower than its predecessor and the new functionality has caused a mismatch in the application code that is running. Only after widespread adaptation occurs, a detailed knowledge of the related product is required.

By ignoring the problems of inequalities and immaturity, WEB applications now use a number of different technical infrastructures for problem solving. Extensive coverage of technical open-source frameworks, such as Struts (http://jakarta.apache.org/struts/) and Cocoon (http://xml.apache.org/cocoon/), will go through application servers (Implementation EJB) to portal frameworks, such as Brazil (http://research.sun. com/Brazil/) and JetSpeed (http://jakarta.apache.org/jetspeed/). In addition, most WEB applications also use multiple frameworks simultaneously.

Another aspect to implement in the field of WEB application architecture is the internationalization of WEB applications requiring support from different languages, character settings, and rendering mechanisms, i.e. rendering Arabic characters from right-to- left at WPA levels. Most of these aspects are supported by programming languages or operating systems. For example, the Java platform offers an internationalization mechanism to achieve different character encoding, ISO-8859-1, UTF-8 for the Multilingual User interface by using the "Resource Bundles ".

All of these different aspects should be taken into consideration when developing architecture in WEB applications, especially WPA which provides a wide scope of functionality to solve common problems and establish context in the place of WEB application development.

2.1.4 Components of a Generic Web Application Architecture

Here, The Communication between these components typically is based on a request- response concept, which involves sending a request to another component (e.g. a web browser) and returning the response to that request via the same communication channel (synchronous communication).

Web Engineering 2.

The basic components of Web architectures and their relationships

Client: Generally, a browser (user agent) is controlled by a user to operate the Web

application.

Firewall: A piece of software regulating the communication between insecure networks (e.g.,

the Internet) and secure networks (e.g., corporate LANs).

Proxy: A proxy is typically used to temporarily store Web pages in a cache.

Web server: A Web server is used to process client request that supports various Web

protocols like HTTP, and HTTPS, etc., Database server: This server normally supplies an organization’s production data in

structured form, e.g., in tables.

Media server: This component is primarily used for content streaming of non-structured bulk

data (e.g., audio or video).

Content management server: Similar to a database server, a content management server

holds contents to serve an application. These contents are normally available in the form of

semi-structured data, e.g., XML documents.

Application server: An application server holds the functionality required by several applications, e.g., workflow or customization.

Legacy application: A legacy application is an older system that should be integrated as an

internal or external component.

Figure 2-1 Basic components of Web application architectures.

Web Engineering 2.

  1. Data layer that provides access for application data,
  2. Business layer which is the hosting business logic of the application on the application server, and
  3. A presentation layer that converts the results of a request in the desired output form.

In addition, security mechanisms, such as firewalls, or caching mechanisms, such as proxies, can be integrated on demand.

Figure 2 - 3 N-Layer Architecture for Web Applications

2.8 Web Application Architectures & Modelling Web Applications

2-layer and N-layer architectures are distinguished from how they are expressed in the application server components. Services such as customization or workflow exist in the context of the application server so that the service is available for all WEB applications.

Horvat, DKK (2003) outlines the horizontal and vertical services, a terminology introduced with CORBA, in the portal architecture. Xiang and Madey (2004) outlines the architecture of a multilayer service By using the Web Service semantic to support the development of WEB applications.

The service is placed inside the application server by the interface. The same interface can be used to manage the service. The WebSphere application Server with its WebSphere Business Components is a good example of this functionality. The advantage is that the profit WEB application can be obtained from the distribution and load mechanisms of applications from the application server. This is called a connector that can be used to integrate external systems, such as business partner systems or legacy application integrations, and enterprise information systems.

Most commercial application servers have been optimized for the processing of database content, although the support of multimedia content and its hyperlink structure is ignored. One example of video data integration into an application server is available at http://www.ibm.eom/software/d ATA/Informix/blades/video/. The WebRatio modeling Tool can map out the hypertext aspects into J2EE and .NET (Ceri, DKK. 2003). Means. Expansion has been implemented on existing implementations, such as J2EE.

2.2.3 JSP-Model-2 architecture

The architecture of the JSP-Model-2 (Java Server Pages) of Sun Microsystems (http://java.sun.com/developer/technicalArticles/javaserverpages/servlets JSP/) implements the MVC pattern for WEB applications and lays the groundwork for integration of aspects of navigation, internationalization, and multiplatform delivery within the WEB application.

2.10 Web Application Architectures & Modelling Web Applications

Figure 2 - 5 The JSP-Model-2 implementation in Struts

Above Figure shows how the Struts framework processes user requests. Here is an explanation of the steps in the picture.

  1. User requests are accepted by the Central ActionServlet. This servlet reads the URI request to find the (Action controller).
  2. The application logic is then executed for this request. The Controller is responsible for the selection or creation of models inside the JavaBean form, which can be presented in the view.
  3. Based on the selected model and other information (user information, user agent [user agent], etc.), ActionServlet can select the view to present the content.
  4. Lastly, the selected view generates output, which is sent to the user.
  5. Unlike JSP-Model-2, Struts allow the conjugation of the view and the allocation of models inside the file (Struts-config. xml). This means that the content can be presented more flexibly, for adaptation reasons or for multiplatform submissions.

Just like JSP-Model-2, Struts allows you to implement an output form that is calculated by the JSP page configuration. On a standard installation, the framework offers a way to use other visualization technologies, such as XSLT.

OOHDM-Java

Jacyntho, DKK (2002) stipulates that the OOHDM-Java2 approach is a result of how the OOHDM navigation model is mapped into the J2EE platform. Its implementation is based on the MVC pattern. Figure shows how the OOHDM-Java2 component is mapped to the MVC pattern. Unlike JSP-Model-2 and Struts, this approach introduces an explicit navigation

Web Engineering 2.

component. The WebRatio Tool supports the modelling and encoding of different components.

Figure 2 - 6 OOHDM-Java2 component Model

Above figure describes the following steps:

  1. An HTTP request is granted to the HTTP Request Parser which then sends a message to the Dispatcher.
  2. Just like Struts, this parser runs the allocated Application object.
  3. After that, the selected application object or other information (such as, user agent) is used to identify the user interface.
  4. Furthermore, the user interface is enriched by the navigation aspects.
  5. And lastly, the result is placed in the appropriate layout and transmitted to the client.

Proxies

The proxy was originally used to save bandwidth, on the grounds that the proxy was declared as caching proxies (Bongio, DKK, 2003). However, proxies have a number of capabilities in their functions, such as

1. Link proxy: It consist of two types. First, the system as a Persistent URL uses a proxy-like component. Specifically, the proxy is used as a server intermediary for client requests on the URL for the server (actual). If the name and location of the requested resource change, the address (URL) is only changed internally, and the client does not know this. This change requires a table between the requested URL and the ―real‖ URL. This table mapping is maintained by proxy. Secondly, the proxy is

Web Engineering 2.

The legacy system allows accessing functionality through an API.

5. Reconstruction of functionalities

Access to transparent functionality to the client in connection with the presence or absence of functionality is implemented directly within the legacy system.

6. Porting

The legacy system is migrated into the Web platform and the original system.

Figure shows architecture used to integrate legacy systems which use wrappers to integrate legacy systems.

Figure 2 - 7 Example of an EAI architecture

This integration approach uses a specific middleware that typically consists of application servers combined with XML technology. One of the examples of this approach is the J2EE-Connector architecture that establishes legacy system integration into the J2EE environment.

The main drawback of the integration approach exists in the application logic and data within the legacy system which can only be accessed inside the. This condition has a negative impact on adaptability and reusability of application and data logic. Other problems relate to the development paradigms used by legacy systems and WEB applications. For example, not all legacy systems support transaction mechanisms in the same way as relational database systems. This issue usually results in a situation with the integration of legacy systems that are a time speculation and costly. least in relation to the fact that most legacy systems are poorly documented and the developers are often no longer available.

2.14 Web Application Architectures & Modelling Web Applications

Portal presents the latest development of multi-layer WEB applications. The Portal attempts to create content that is distributed through multiple nodes of different providers that provide one single node. Below Figure shows a systematic depiction of the base architecture of a portal server. The portal server is based on a portlet that compiles the content and logic of the application within the navigation structure and the appropriate layout for the portal.

An independent aggregation component is used to integrate a set of different portlets into a uniform Web site. These aggregations can be set with the portal provider or manipulated by the user through customization. One portal Server is a JetSpeed open-source (http://portals.apache.org/) project.

Figure 2 - 8 A portal-oriented Web application architecture.

A number of unsolved problems makes the integration of external Web applications more difficult, including the fact that both the performance and scalability of the final system cannot be predicted. This usually means that we can’t predict the response time or the availability of embedded components. Consequently, requirements with regard to the quality of service become an important issue when integrating external services, similarly to multimedia information. Examples for initiatives in this field include the Web Service Endpoint Language (http://www.w3.org/2001/04/wsws-proceedings/rod smith/text13.htm) and the DAML Services Initiative (www.daml.org/services/index.html).

2.3 DATA ASPECT- ARCHITECTURE

Data can be grouped into three architectural categories, namely

2.16 Web Application Architectures & Modelling Web Applications

Figure 2 - 9 Content management architecture for Web Applications

Figure shows the components of the content management architecture. The WEB server receives client requests and submits them to the server. The Server is responsible for distributing and hiding {caching) content. If the content request is not cached, the request will be sent to the Content Management Server. Content can be available directly on the server (in static form as a document, or in the content of databases) or externally accessible. Depending on the type of integration, external content can be retrieved by accessing an external database (directly or by using the aggregation service) or from the syndication service, as opposed to accessing the database, Syndication services can handle additional functionality, such as account billing from licensing rights.

One example of a Publisher component for setting up a static XML document is the Cocoon 2 open-source framework. Cocoon 2 supports XML publication inside the Web. The scope of this application is mainly present on the changes of XML content documents into different output formats. The basic work processing is on the pipeline model, i.e. the request received and delivered to the generator before specified in the configuration file. In the pipeline, the XML document is the subject for some processing steps into the desired output

Web Engineering 2.

format. All processing steps in the pipeline can access information about the request, such as the user agent to adjust the response to the request (customizing the user interface).

Figure 2 - 10 The Cocoon 2 Pipeline

The Generator is invoked at the beginning of the process and is responsible for parsing XML documents. The SAX parser Menggiinakan Generator to read the XML document and then move the SAX message called event Generator should send this event to the pipeline. This SAX event can be used to transform or transmit such documents. That is, the generator makes the data available for processing.

Modifiers (Transformers) can be compared with XSL stylesheets. Lastly, the serializer is responsible for converting it to the desired output form, such as HTML or XML.

A robust configuration mechanism in the form of an XML configuration file can be used to select and assign generators, transformers and serializers. For example, the regular configuration lets people control the pipeline processing, depending on the demand and the results of the processing.

2.2.3 ARCHITECTURES FOR MULTIMEDIA DATA

The ability to handle large volumes of data plays a decisive role when the design system uses multimedia content. When a normal volume of data does not have a decisive role in a database-centric WEB application, that data volume affects the architecture and design of a multimedia WEB application.

Web Engineering 2.

Fig 2.1 1 Streaming media architecture using point-to-point connections

Fig 2. 1 2 Streaming media architecture using a broadcasting infrastructure

2.20 Web Application Architectures & Modelling Web Applications

Another unsolved problem is the lack of interactive media since a dedicated browser plug-in such as, QuickTime Player from Apple, or Windows Media Player from Microsoft is normally used to visualize multimedia content, but does not have a presentation or anchor link. Another issue occurs for time-sensitive media, such as audio and video, because of the content from the presentation page or the anchor. Other issues occur for time-sensitive media, such as audio and video, because the content of the HTML page — text and imagery — doesn't get synced to the content medium. However, languages such as SMIL (Synchronized Multimedia Integration Language) try to address these limits so that they can be used to determine media interaction features.

2.4 MODELING WEB APPLICATIONS

2.4.1 Introduction

In order to reduce uncertainty, log design decisions and facilitate communication between projects, the engineering disciplines successfully employed models. The modeling is designed to provide a system specification for the implementation of the system to be built in sufficient detail. Models that represent the relevant aspects of the system in a simpler and- ideally-understandable way are the results of a modeling process.

Figure 2. 13 Requirements of software application modeling.

Figure 2. 13 shows that the scope of modeling spans along three orthogonal dimensions.

The first dimension traditionally comprises the application logic level and the user interface level in the sense of an encapsulation of the ''what'' and ''how'' of an application. Aspects known as structure (i.e., objects, their attributes, and their relationships to other objects) and behavior (i.e., functions and processes), both of the application logic and the user interface, form another dimension. The third dimension is development phases. The requirements identified in the requirements analysis are first transformed into analysis models, and later design models are based on them.