Software Architecture
in Practice
RiSE’s Seminars
Bass’s at all Book :: Chapters 13
Fred Durão
July 16th, 2005
Summary

The world wide web – A case study in
Interoperability (Chapter 13)




The original requirements
Architectural Solution
The evolution of web based e-commerce architecture
The architectural business cycle today
July 16th, 2005
2
The word wide web – A case
study in Interoperability
July 16th, 2005
3
The World Wide Web :: Chapter 13
History



Tim Berners Lee and CERN members seen the need
of creating a information network;
In 1989, Tim Berners Lee created a document
named “Information Management: A proposal”;
In 1990, a reformulated version of his document
became a project named World Wide Web
July 16th, 2005
4
The World Wide Web :: Chapter 13
The www original requirements










Remote access across networks
Heterogeneity
Noncentralization
Access to existing data
Ability for users to add data
Private links
Bells and whistles – the data display was on 24 x 80 character ASCII Terminal
Data analysis
Live links – given that information changes all the time
Some non requirements became requirements like SSL (Secure
Socket Layer) and HTTPS (HttpSecure)
July 16th, 2005
5
The World Wide Web :: Chapter 13
Internet Statistics
Date
Number of Web
Sites
% of .com Sites
Hosts per Web
Server
6/1993
130
1.5
13,000
6/95
23.500
31.3
270
1/98
1.834.710
-
16.2
1/01
27.585.719
54.68
4.0
Source: Used with permission of Matthew Gray of the Massachusetts
Institute of Technology
July 16th, 2005
6
The World Wide Web :: Chapter 13
Internet Growth



Web has been doubling
in size every 3 to 6
year months
From 130 sites in
6/1993 to more that
230.000 sites in mid1996
and 27 million in early
2001
Internet Backbones in the USA 1996
July 16th, 2005
7
The World Wide Web :: Chapter 13
Architectural Solution


Based on client and servers and wwwLibs
- compact, portable library that can be built on to create Web-based
applications such as clients, servers, databases, and Web Spiders
HTTP
Client based on
libWW
July 16th, 2005
Server based on
libWWW
8
The World Wide Web :: Chapter 13
libWWW layers
Support a set of application functionalities for writing applications
Support a set of network-protocol-aware modules, like HTTP,
FTP, TELNET
Provides the abstraction of stream of all data transported
Provides standard interfaces to Web Applications
Portability layer that provide platform-independent function
July 16th, 2005
Application Module
Access Module
Stream Modules
Core
Generic Utilities
9
The World Wide Web :: Chapter 13
Lessons learned from libWWW




Formalized application programming interfaces
(APIs) are required;
Functionality and the API’s that present it must be
layered;
The library must support a dynamic, open-ended
set of features;
Processes built on the software must be thread
safe;
July 16th, 2005
10
The World Wide Web :: Chapter 13
An Early Client-Server Architecture using
libWWW

WWW Client


External Viewer
HTTP Client


UI Manager, Cache Manager and more…
WWW Server


CGI
HTTP Server

Stream Manager, Access Control and more…
July 16th, 2005
11
The World Wide Web :: Chapter 13
Common Gateway Interface - CGI




CGI is one of the most important requirement
driving the evolution of Web software
CGI scripts allowed dynamic request information to
be returned to clients
The most common use of CGI were create dynamic
HTML document and return it to users
CGI allowed users “put” information into the web,
in contrast to “get” operation that servers normally
provide. E.g. add info on databases by filling out a form
July 16th, 2005
12
The World Wide Web :: Chapter 13
How the WW Achieved Quality Goals
Goal
How Achieved
Tactics Used
Remote Acess
Build Web on top of Internet
Adherence to defined
protocols
Interoperability
Use libWWW to mask platform
details
Abstract common services
Hide information
Extensibility of software
Isolate protocol and data type
extensions in libWWW; allow
for plug-in components
Abstract common services
Replace Components
Scalability
Use client-server architecture
Introduce concurrency
Reduce computational
overhead
July 16th, 2005
13
The World Wide Web :: Chapter 13
The Evolution of Web-Based E-Commerce
Architectures

The new requirements:

High performance
Customer will not tolerate the site simply refusing
their requests;


High availability


Scalability


Customer
Possibility of growth to maintain acceptable levels of customer service.
Security


The Web Sites have to be available 24/7;
Adapt mechanisms for avoiding stealing or modifying data.
Modifiability

Ability for changes
July 16th, 2005
14
The World Wide Web :: Chapter 13
A typical e-commerce system
Bussines Rules and Application
LOAD
BALANCER
1
1
ROUTER/
FIREWALL
Browser/User Interaction
1
1
1..*
BROWSER
July 16th, 2005
1
PROXY
SERVER
1
1..*
WEB SERVER
1
Data Services
1..*
1
APPLICATION
SERVER
1..*
DATABASE
SERVER
15
The World Wide Web :: Chapter 13
E-Commerce Architecture
achieving qualities

Web Browsers claim for MODIFIBILITY

HTTPS claims for SECURITY

Proxy Servers claim for PERFORMANCE

Reuters and Firewalls claim for SECURITY

Load Balancing claims for SCALABILITY and AVAILABILTY
July 16th, 2005
16
The World Wide Web :: Chapter 13
E-Commerce Architecture



achieving qualities
Web Servers claim for PERFORMANCE
Databases claim for PERFORMANCE, SCALABILITY and
AVAILABILITY
Application Servers claim for PERFORMANCE,
MODIFIABILITY and SCALABILITY
July 16th, 2005
17
The World Wide Web :: Chapter 13
The Architecture Business Cycle Today


Several types of organization provide the technical
environment: Service providers and Data providers
A number of open-source projects have increased



E.g. Apache Project
Web-enable languages, particularly Java, are changing
the way functionality is developed over the Web
The emergence of the Web as a distributed development
environment has given rise to several new organizations
and products
July 16th, 2005
18
The World Wide Web :: Chapter 13
References

Bass L., Clements P. and Kazman R. Software
Architecture in Practice. Second Edition, 2003.
“o mundo pode esperar”
July 16th, 2005
19
Descargar

Software Engineering with Reusable Components