0% found this document useful (0 votes)
5 views

Web 01 Web Architecture

Web Architecture

Uploaded by

Arfan Shahzad
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Web 01 Web Architecture

Web Architecture

Uploaded by

Arfan Shahzad
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Web Engineering

Arfan Shahzad
{ [email protected] }
Web Architecture

• There is no unique definition of the term “architecture”.

• You can find more than 20 variants of the term on the home page of the
renowned Software Engineering Institute (SEI) at Carnegie-Mellon
University (http://www.sei.cmu.edu).

• Instead of adding another variant, we try to describe the most important


properties of software architectures (according to Starke 2002):
Starke, G., Effektive Software Architekturen – Ein praktischer
Leitfaden, Carl Hanser Verlag, 2002, in German.
Web Architecture cont…
Architecture describes structure
• According to (Bass et al. 1998), 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.
Bass, L., Clements, P., Kazman, R., Software
Architecture in Practice, Addison-Wesley, 1998.
Web Architecture cont…
Architecture can be looked at from different viewpoints

• Depending on the point of view from which architecture is seen, we

can emphasize and itemize different architectural aspects.

• We normally distinguish between four different views (see also

Kruchten 1995, Hofmeister et al. 1995):

Hofmeister, C., Nord, R., Soni, D., Software Architecture in Industrial Applications, Proc. of the 17th
International Conference on Software Engineering (ICSE 1995), Seattle, WA, April, 1995.
Kruchten, P., The 4+1 View Model of Architecture, IEEE Software, 12 (6), November,
1995, pp. 42–50.
Web Architecture cont…
Architecture can be looked at from different viewpoints
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;

4. The implementation view, which describes the system’s software artifacts, e.g., subsystems,
components, or source code.
Web Architecture cont…
Architecture can be looked at from different viewpoints

• This differentiation into different viewpoints is also supported by

modeling languages, e.g., the Unified Modeling Language – UML (see,

for example Booch et al. 1999).

Booch, G., Jacobson, I., Rumbaugh, J., The Unified Modeling


Language User Guide, Addison-Wesley, 1999.
Web Architecture cont…
Architecture can be looked at from different viewpoints
Web Architecture cont…
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.

• In addition, the abstraction of system aspects facilitates the

communication of important architectural issues.


Web Architecture cont…
Architecture represents the framework for a flexible system

• Tom DeMarco (see DeMarco 1995) refers to architecture as a

“framework of change”, i.e., the software architecture forms the

framework in which a software system can evolve.

• If extensions of a system have not been accounted for in advance,

then such an extension will at best be difficult to realize.

DeMarco, T., On System Architecture, Proc. of the 1995 Monterey


Workshop on Specification-Based Software Architectures, Monterey,
CA, September, 1995.
Web Architecture cont…
Developing Architecture
• The requirements of software therefore its architecture frequently change.

• Technical and organizational constraints change during and after the


development of an application.

• This may be due to unclear requirements at the beginning of the


development process or a change of requirements after a system’s
completion.
Web Architecture cont…
Developing Architecture
• This is the reason why software systems are often referred to as

“moving targets”.

• Following figure shows the different factors and constraints

influencing the development of an architecture according to

(Jacobson et al. 1999).

Jacobson, I., Booch, G., Rumbaugh, J., The Unified Software


Development Process, Addison-Wesley, 1999.
Web Architecture cont…
Developing Architecture
Web Architecture cont…
Developing Architecture
• This is the reason why software systems are often referred to as

“moving targets”.

• Following figure shows the different factors and constraints

influencing the development of an architecture according to

(Jacobson et al. 1999).

Jacobson, I., Booch, G., Rumbaugh, J., The Unified Software


Development Process, Addison-Wesley, 1999.
Web Architecture cont…
Categorizing Architecture
• A number of architectures for specific requirements in several
application domains have been developed in the past few years.

• Anastopoulos and Romberg (2001) and Bongio et al. (2003) describe


architectures for Web application environments, taking the layering
aspect of architectures, or the support of different data and data
formats – the data aspect of architectures – into account:
Anastopoulos, M., Romberg, T., Referenzarchitekturen fur Web-Applikationen ¨ , Projekt
Application2Web, Forschungszentrum Informatik (FZI), December, 2001, http://app2web.fzi.de/, in
German, [last visit: 2005-10-15].
Bongio, A., Brambilla, M., Ceri, S., Comai, S., Fraternali, P., Matera, M., Designing Data-Intensive
Web Applications, Morgan Kaufmann, 2003.
Web Architecture cont…
Categorizing Architecture
• Layering aspect: Layering means that software systems are
structured in several tiers to implement the principle of “separation
of concerns” within a software system.

• 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.
Web Architecture cont…
Categorizing Architecture
• Layering aspect: Layering means that software systems are
structured in several tiers to implement the principle of “separation
of concerns” within a software system.

• 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.
Web Architecture cont…
Categorizing Architecture

A 2-layer architecture for Web applications


Web Architecture cont…
Categorizing Architecture

An n-layer architecture for Web applications


Web Architecture cont…
Categorizing Architecture
• 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.

• This makes their automatic processing difficult.


Web Architecture cont…
Categorizing Architecture
• Distributed Object Middleware (DOM)

• Virtual Shared Memory (VSM)

• Message Oriented Middleware (MOM)

• Peer to Peer (P2P)

• Service Oriented Middleware (SOM)


Web Architecture cont…
Components of Generic Web App Architecture

You might also like