Title: Software Architecture in Practice
1Software Architecturein Practice
- RiSEs Seminars
- Basss at all Book Chapters 13
- Fred Durão
2Summary
- 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
3The word wide web A case study in
Interoperability
4History
The World Wide Web Chapter 13
- 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
5The www original requirements
The World Wide Web Chapter 13
- 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)
6Internet Statistics
The World Wide Web Chapter 13
Source Used with permission of Matthew Gray of
the Massachusetts Institute of Technology
7Internet Growth
The World Wide Web Chapter 13
- 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 mid-1996 - and 27 million in early 2001
- Internet Backbones in the USA 1996
8Architectural Solution
The World Wide Web Chapter 13
- 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
9libWWW layers
The World Wide Web Chapter 13
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-independen
t function
10Lessons learned from libWWW
The World Wide Web Chapter 13
- Formalized application programming interfaces
(APIs) are required - Functionality and the APIs 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
11An Early Client-Server Architecture using libWWW
The World Wide Web Chapter 13
- WWW Client
- External Viewer
- HTTP Client
- UI Manager, Cache Manager and more
- WWW Server
- CGI
- HTTP Server
- Stream Manager, Access Control and more
12Common Gateway Interface - CGI
The World Wide Web Chapter 13
- 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
13How the WW Achieved Quality Goals
The World Wide Web Chapter 13
14The Evolution of Web-Based E-Commerce
Architectures
The World Wide Web Chapter 13
- The new requirements
- High performance
- Customer will not tolerate the site simply
refusing - their requests
- High availability
- The Web Sites have to be available 24/7
- Scalability
- Possibility of growth to maintain acceptable
levels of customer service. - Security
- Adapt mechanisms for avoiding stealing or
modifying data. - Modifiability
- Ability for changes
Customer
15A typical e-commerce system
The World Wide Web Chapter 13
16E-Commerce Architecture achieving qualities
The World Wide Web Chapter 13
- 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
17E-Commerce Architecture achieving qualities
The World Wide Web Chapter 13
- Web Servers claim for PERFORMANCE
- Databases claim for PERFORMANCE, SCALABILITY and
AVAILABILITY - Application Servers claim for PERFORMANCE,
MODIFIABILITY and SCALABILITY
18The Architecture Business Cycle Today
The World Wide Web Chapter 13
- 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
19References
The World Wide Web Chapter 13
- Bass L., Clements P. and Kazman R. Software
Architecture in Practice. Second Edition, 2003. - o mundo pode esperar