July 16 th, 2005 Software Architecture in Practice RiSE’s Seminars Bass’s at all Book :: Chapters 13 Fred Durão
July 16th, 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 16 th, The word wide web – A case study in Interoperability
July 16th, 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 The World Wide Web :: Chapter 13
July 16th, 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) The World Wide Web :: Chapter 13
July 16th, Internet Statistics DateNumber of Web Sites % of.com SitesHosts per Web Server 6/ ,000 6/ / / Source: Used with permission of Matthew Gray of the Massachusetts Institute of Technology The World Wide Web :: Chapter 13
July 16th, Internet Growth Internet Backbones in the USA 1996 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 sites in mid and 27 million in early 2001
July 16th, 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 The World Wide Web :: Chapter 13
July 16th, libWWW layers The World Wide Web :: Chapter 13 Portability layer that provide platform-independent function Provides standard interfaces to Web Applications Provides the abstraction of stream of all data transported Support a set of network-protocol-aware modules, like HTTP, FTP, TELNET Support a set of application functionalities for writing applications
July 16th, 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; The World Wide Web :: Chapter 13
July 16th, 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… The World Wide Web :: Chapter 13
July 16th, 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 The World Wide Web :: Chapter 13
July 16th, How the WW Achieved Quality Goals GoalHow AchievedTactics Used Remote AcessBuild Web on top of InternetAdherence to defined protocols InteroperabilityUse libWWW to mask platform details Abstract common services Hide information Extensibility of softwareIsolate protocol and data type extensions in libWWW; allow for plug-in components Abstract common services Replace Components ScalabilityUse client-server architectureIntroduce concurrency Reduce computational overhead The World Wide Web :: Chapter 13
July 16th, 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 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 The World Wide Web :: Chapter 13
July 16th, A typical e-commerce system The World Wide Web :: Chapter 13
July 16th, 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 The World Wide Web :: Chapter 13
July 16th, 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 The World Wide Web :: Chapter 13
July 16th, 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 The World Wide Web :: Chapter 13
July 16th, References Bass L., Clements P. and Kazman R. Software Architecture in Practice. Second Edition, “o mundo pode esperar” The World Wide Web :: Chapter 13