SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Unit 5: Physical Architecture Design
 Introduction
 Dimensions to be considered

 Architecture Patterns:
         Single server
         Separate database
         Replicated Web servers
         Separated scripting engines
         Application servers
 Web Caching

 Cloud Computing
 J2EE architectures for WebApps

dsbw 2011/2012 q1                       1
Physical Architecture Design: A Definition

                        “
 (physical) architecture design concentrates on the choice of
     the hardware, network, and software components that make
     up the system, to find the mix of these components that best
     meets the application requirements, and at the same time
     respects the technical and economic constraints of the
     project.       ”
                                                  Ceri et al., 2003




dsbw 2011/2012 q1                                                   2
Architecture: Logical vs. Physical

    3-Layered Logical Architecture          2(+)-Tiered Client/Server
                                              Physical Architecture

                     ......
                                      Client             WB
                                                         WB
                                      (tier #1)

                                                  HTTP                  .gif
              Presentation Layer                                    .html
                                                         WS
                                                         WS
            Business Logic Layer      Server
                                      (tier #2)
              Data Mapping Layer                    AppServer
                                                   Scripting Eng.
                                                   WapServer
                                                                    DBMS
    File/Database Management System



                                      Server             HOST
                    ......            (tier #3)
                                                                    DBMS



dsbw 2011/2012 q1                                                              3
Logical-Physical Mapping:Distributed Presentation

 One fragment of the Web presentation layer is executed on
    the Web browser:
       Download and rendering of HTML (XML, …) documents
       Client-side scripting: JavaScript, VBScript
       Execution of embedded components: Applets, ActiveX

 The other fragment of the Web presentation layer is
    executed on the server side:
       Retrieval and delivery of static documents/files
       Execution of server scripts
       Interaction with the Business Logic Layer

 The other layers are executed on the server tier(s)

 AJAX (RIA) applications may change this paradigm.

dsbw 2011/2012 q1                                             4
Dimensions of Architecture Design
 Non-functional requirements that pursue the achievement
    of an adequate level of service

 Physical, financial and organizational constraints that may
    affect decision-making

 Alternative scenarios in architecture deployment




dsbw 2011/2012 q1                                               5
Non-functional requirements that may affect
Architecture Design
 Performance: The application must sustain the expected workload
    defined in terms of
         the maximum number of concurrent users,
         the number of page requests served per unit of time,
         the maximum time for delivering a page to the client
 Scalability: The architecture must be easily extensible
 Availability: Faults should not affect significantly the service
    delivered to users
 State maintenance: The state of the user interaction must be
    preserved, even when the application is distributed on multiple
    machines or failures occur
 Security:
         Data should be protected
         Users should be identified and granted access only to the data and
          functions they are entitled to
dsbw 2011/2012 q1                                                              6
Constraints of Architecture Design
 Cost
         Every configuration requires a different investment, in terms of
          processors, network infrastructure, interfaces, and software licenses
         The application budget may limit the choice of hardware resources
          and software products
 Complexity
         Some configurations are simpler than others to set up and maintain
         The unavailability or the cost of specialized technical skills may
          constrain the architecture design
 Corporate standards and infrastructures
         The WebApp may be deployed within a corporate IT infrastructure,
          which may constrain the selection of hardware resources and
          software products.


dsbw 2011/2012 q1                                                                 7
Scenarios of Architecture Deployment
 Internal
         The application architecture is kept inside the enterprise and
          maintained by the internal IT department.
 Housed
         The application architecture is maintained by the internal IT
          department of the enterprise, but is physically installed at an
          external service provider.
 Hosted
         The application architecture is located at the premises of an
          external service provider, who also maintains it.




dsbw 2011/2012 q1                                                           8
Architecture Pattern: Single Server



                                             Host
                                               · Web server
                    HTTP              HTTP
                                               · Script engine
                           rooter/
                                               · DBMS
        Client             firewall
      (browser)




dsbw 2011/2012 q1                                                9
Single Server Pattern: Evaluation (1/2)
 Performance
       Depends on the configuration of the server: CPU speed,
        available memory, disk access latency, etc.
       The DBMS is both memory and CPU-intensive

 Scalability
         Is bound by the hardware architecture of the selected server
 Availability
       Every software and hardware element is a single point of
        failure: if it breaks, the entire system hangs.
       Can be improved by adding redundant hardware resources
        (multiple CPUs, mirrored disks) and by installing multiple
        processes running different instances of the Web server, script
        engine, and database …

dsbw 2011/2012 q1                                                         10
Single Server Pattern: Evaluation (2/2)
 State maintenance
         No problems with none of the three possibilities to store user
          data: client, server or database
 Security:
         This the weakest aspect of is configuration: attackers breaking
          the firewall and the Web server can take control of the host
          and gain direct access to the database, violating data protection
 Low cost, as far as massive parallelism is not required.
 Low complexity




dsbw 2011/2012 q1                                                          11
Architecture Pattern: Separate Database



                                                        Host 1                  Host 2


               HTTP
                                 HTTP
                      rooter/
   Client                                                            firewall
                      firewall
 (browser)                              Web server + Script engine              DBMS



                                  Demilitarized Zone (DMZ)




dsbw 2011/2012 q1                                                                        12
Separate Database Pattern: Evaluation
 Better performance
       One extra machine
       Each tier can be tuned to the requirements of the installed
        software
 More scalable
       It is possible to act separately on each tier.
       Normally, the first bottleneck is in the middle tier

 Availability is not improved
         Each component is still a single point of failure
 Significantly improved security
         The inner firewall may disallow HTTP requests at all and let only
          database requests pass, making it more difficult for attackers to
          reach the data tier.
dsbw 2011/2012 q1                                                         13
Architecture Pattern: Replicated Web Server




                                                 WS + Script engine #1
                                     HTTP                                           Host 2

              HTTP
                                      HTTP

             HTTPS
                 rooter/ firewall/               WS + Script engine #2
  Client                                                                 firewall
                  load balancer       HTTPS
(browser)                                                                           DBMS




                                                 WS + Script engine #3
                                                       (secure)

                                     Demilitarized Zone (DMZ)



dsbw 2011/2012 q1                                                                            14
Replicated Web Server Pattern: Evaluation

 Improved performance and scalability:
    Load balancing
    Clustering: A cluster is a group of servers (aka nodes) that provide a
     unified view of the services that they individually offer
 Improved availability:
    Fail-over: if a cluster node fails, its workload can be redistributed to
     the other nodes of the same cluster
 Session state maintenance on the replicated servers
    Session affinity (aka sticky sessions): The load balancer sends all the
     incoming requests pertinent to a given session to the same server.
    Session migration: Session state is shared by the servers in the cluster

 Improved data transmission security
    One of the Web servers may be configured to handle the connections
     that require cryptographic protection.


dsbw 2011/2012 q1                                                               15
Architecture Pattern: Separate Script Engine




                                       WS #1      SE #1              Host 2
                             HTTP

              HTTP
                              HTTP
             HTTPS
                 rooter/ firewall/     WS #2      SE #2
  Client                                                  firewall
                  load balancer
(browser)                      HTTPS                                 DBMS




                                        WS #3     SE #3
                                       (secure)




dsbw 2011/2012 q1                                                             16
Separate Script Engine Pattern : Evaluation

 Improved performance, scalability and availability
       Web server and the scripting engine can be replicated
        independently so that the number and configuration of the
        hosts can be optimized: a well-balanced configuration may
        require more machines for the scripting engines than for the
        Web servers.
       The communication overhead introduced by the separation
        should be compensated by the performance increase.




dsbw 2011/2012 q1                                                      17
Architecture Pattern: Application Server




                                                     Application
                                  WS #1      SE #1     Server
                        HTTP                                                  Host 2

             HTTP
                         HTTP
          HTTPS                                      Application
             rooter/ firewall/    WS #2      SE #2     Server      firewall
  Client      load balancer                                                   DBMS
(browser)                 HTTPS



                                                     Application
                                   WS #3     SE #3     Server
                                  (secure)




dsbw 2011/2012 q1                                                                      18
Application Server Pattern: Evaluation
 An application server is a software platform, distinct from the Web
    server, dedicated to the efficient execution of business
    components for supporting the construction of dynamic pages.
 Improved performance, scalability and availability:
         Transparent component distribution, replication, and load balancing:
          The application server automatically manages the creation of
          processes, the replication of business objects and their allocation to
          the available processes, and the allotment of client requests to the
          increase and decrease of the actual workload.
         Automatic failure recovery: The application server may detect
          hardware, software and network failures, and avert client requests
          addressed to a failed component and route them to available replicas
          of the same business object.
         Resource pooling: The application server may handle pools of
          expensive resources, like database connections, and share these
          resource among multiple business objects in an optimized way
dsbw 2011/2012 q1                                                              19
Web Caching
 Caching consists of temporarily storing resources in a fast
    access location, for later retrieval.
 Benefits:
       Reduction of the response time
       Reduction of computation effort when the resource is
        dynamically build
 Anything can be cached:
       Static HTML pages and multimedia files.
       Fragments of pages computed by scripting programs.
       Intermediate data consumed by the scripting programs for
        producing page, e.g. XML files.
       The result of database queries or other application commands


dsbw 2011/2012 q1                                                      20
Web caching: Where to Cache (1/3)

 Browser caching:                         Proxy caching:




Every Web browser contains a cache of     Proxy caches store a local copy of each
HTML pages and multimedia files used to   resource requested by users, and avoid
speed up the rendition of pages that      accessing the Internet for retrieving
contain cached objects.                   frequently asked pages



dsbw 2011/2012 q1                                                                   21
Web caching: Where to Cache (2/3)

 Server accelerators




         A server accelerator is a “buffer” placed in front of a server cluster
          that intercepts requests, caches copies of the objects produced by the
          servers, and delivers them to the subsequent requests.
         Page prefetching: Based on the last request, the server accelerator
          loads into cache those pages that are more probable of being
          requested next.
dsbw 2011/2012 q1                                                               22
Web caching: Where to Cache (3/3)
 Content delivery networks (CDNs)




         CDNs are systems of computers networked together across the
          Internet that allow content providers to outsource their caching
          infrastructures
         When a client requests a page to the origin server, this returns a page
          with rewritten links that point to the nodes of the CDN
         The CDN serves requests selecting the optimal copy of the page by
          taking into account the geographical location of the user and the real-
          time traffic conditions.
dsbw 2011/2012 q1                                                               23
Cloud Computing – A Definition

 Is “a model for enabling convenient, on-demand network
    access to a shared pool of configurable computing resources
    (e.g., networks, servers, storage, applications, and services)
    that can be rapidly provisioned and released with minimal
    management effort or service provider interaction”
                          The NIST Definition of Cloud Computing




dsbw 2011/2012 q1                                                    24
Cloud Computing – Essential Characteristics

 On-demand self-service
         A consumer can unilaterally provision computing capabilities as
          needed
 Broad network access
         Capabilities are available over the network and accessed through
          standard mechanisms.
 Resource pooling
         Physical and virtual resources are dynamically assigned and
          reassigned according to consumer demand.
 Rapid elasticity
         Capabilities can be rapidly and elastically provisioned.
 Measured Service
         Resource usage is monitored, controlled, and reported providing
          transparency for both the provider and consumer of the utilized
          service.

dsbw 2011/2012 q1                                                            25
Cloud Computing – Service Models




                    Source: http://www.collab-ogce.org/gce08/images/7/76/LamiaYouseff.pdf




dsbw 2011/2012 q1                                                                           26
Cloud Computing - Some Providers

  Cloud Layer         Examples of Commercial Cloud Systems
  Cloud Application   Google Apps and Salesforce Customer Relation
  Layer               Management (CRM) system
  Cloud Software
                      Google App Engine and Salesforce Apex System
  Environment
                      Computational Resources: Amazon's EC2. Enomalism
                      Elastic Cloud.
  Cloud Software      Storage: Amazon's S3. EMC Storage Managed
  Infrastructure      Service.
                      Communication: Microsoft Connected Service
                      Framework (CSF).
                      Grid and Cluster Computing Systems like Globus and
  Software Kernel
                      Condor.
  Firmware /          IBM-Morgan Stanley's Computing Sublease, and
  Hardware            IBM's Kittyhawk Project.

dsbw 2011/2012 q1                                                          27
J2EE Architectures for Web Applications
 “Classic” J2EE architecture, using remote EJBs and entity
    beans
 Local EJB architecture, using local EJBs

 Ad hoc J2EE architecture without EJB
 Lightweight container architecture




dsbw 2011/2012 q1                                             28
“Classic” J2EE Architecture

                    Web Container
                                                           J2EE
                         Servlets / Web Classes
                                                           Server

                           Business Interface



                           Business Delegate


                                    RMI

                    EJB Container                            J2EE
                                                            Server
                              Session EJB
                                                           (Same or
                                                           Separate
                                                             JVM
                             Entity EJB (optional)




                      DBMS                 Legacy System
dsbw 2011/2012 q1                                                     29
Local EJB architecture

                    Web Container
                                                             J2EE
                         Servlets / Web Classes
                                                             Server

                           Business Interface



                           Business Delegate

                                      Local EJB Invocation
                    EJB Container

                                                             (Single
                              Session EJB                     JVM)


                             Entity EJB (optional)




                      DBMS                 Legacy System
dsbw 2011/2012 q1                                                      30
Ad hoc J2EE Architecture without EJB

                    Web Container
                                                         J2EE
                         Servlets / Web Classes
                                                         Server

                             Business Interface




                             Implementation




                      DBMS
                                         Legacy System

dsbw 2011/2012 q1                                                 31
Lightweight Container Architecture


                          MVC Web Framework
                                                              J2EE
                                                              Server
                    Web Container


                         Business Interface

                                           POJO
                                       Implementation
                                         with declarative
                                        services via AOP


                          O/R Mapping Layer




                     RDBMS
                                        (Optional) Other
                                     transactional resource
dsbw 2011/2012 q1                                                      32
J2EE Architectures: A Comparison
 Architect.         Simplicity   Productivity      Transaction        Horizontal           Testability
                                                     Capable          Scalability
Remote         Complex to        Poor,             Yes             Inherent support      Poor. It's very
EJBs           implement and     because of                        for distributing      hard to test
               use business      complexity of                     objects.              EJBs outside a
               objects.          distribution                                            container. In-
                                 and EJB                                                 container
                                 programming                                             testing is slow
                                 model.                                                  and complex.
Local EJBs     Slightly less     Slightly better   Yes             Relies on web         Poor. As for
               complex to        than for                          container to          remote EJBs.
               access            remote EJBs.                      deliver clustering.
No EJB, ad     Typically         Productivity is   No. Explicit    Depends on            Depends on
hoc            simpler than      usually better    use of          implementation        implementation
               architectures     than with EJB     specific APIs   strategy.             strategy.
               using EJB.        architectures.    is required.
Light-         Good, as          High              Yes, if using   Relies on web         Good. Easy to
weight         business                            AOP.            container to          test business
container      objects are                                         deliver clustering.   objects outside
               POJOs.                                                                    an application
                                                                                         server.



dsbw 2011/2012 q1                                                                                        33
References
 S. Ceri et al. Designing Data-Intensive Web Applications.
    Capítol 10. Morgan Kaufmann, 2003.
 JOHNSON, Rod and HOELLER Juergen. Expert One-on-One
    J2EE Development without EJB. Willey Publishing, 2004
 Youseff, L.; Butrico, M.; Da Silva, D. Toward a Unified
    Ontology of Cloud Computing. Grid Computing Environments
    Workshop, 2008. GCE '08, pages 1-10.
    http://www.cs.ucsb.edu/~lyouseff/CCOntology/CloudOntolo
    gy.pdf
 National Insitute of Standards and Technology. Cloud
    Computing Definition, V.15.
    http://csrc.nist.gov/groups/SNS/cloud-computing/index.html


dsbw 2011/2012 q1                                             34

Contenu connexe

Tendances

Tendances (20)

What is Virtualization
What is VirtualizationWhat is Virtualization
What is Virtualization
 
Hybrid Cloud and Its Implementation
Hybrid Cloud and Its ImplementationHybrid Cloud and Its Implementation
Hybrid Cloud and Its Implementation
 
Seminar report on cloud computing
Seminar report on cloud computingSeminar report on cloud computing
Seminar report on cloud computing
 
Cloud Architecture in the Data Center
Cloud Architecture in the Data CenterCloud Architecture in the Data Center
Cloud Architecture in the Data Center
 
Reference design for v mware nsx
Reference design for v mware nsxReference design for v mware nsx
Reference design for v mware nsx
 
VMware
VMwareVMware
VMware
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Block Level and File Level
Block Level and File LevelBlock Level and File Level
Block Level and File Level
 
Unit 1 - mobile computing introduction
Unit 1 - mobile computing introductionUnit 1 - mobile computing introduction
Unit 1 - mobile computing introduction
 
Mobile computing unit 5
Mobile computing  unit 5Mobile computing  unit 5
Mobile computing unit 5
 
Network Virtualization
Network VirtualizationNetwork Virtualization
Network Virtualization
 
Unit 2 -Cloud Computing Architecture
Unit 2 -Cloud Computing ArchitectureUnit 2 -Cloud Computing Architecture
Unit 2 -Cloud Computing Architecture
 
Cloud computing (IT-703) UNIT 1 & 2
Cloud computing (IT-703) UNIT 1 & 2Cloud computing (IT-703) UNIT 1 & 2
Cloud computing (IT-703) UNIT 1 & 2
 
Cloud Computing Fundamentals
Cloud Computing FundamentalsCloud Computing Fundamentals
Cloud Computing Fundamentals
 
Maximizing SD-WAN Architecture with Service Chaining - VeloCloud
Maximizing SD-WAN Architecture with Service Chaining - VeloCloudMaximizing SD-WAN Architecture with Service Chaining - VeloCloud
Maximizing SD-WAN Architecture with Service Chaining - VeloCloud
 
Architecture of Mobile Computing
Architecture of Mobile ComputingArchitecture of Mobile Computing
Architecture of Mobile Computing
 
ASP.NET MVC.
ASP.NET MVC.ASP.NET MVC.
ASP.NET MVC.
 
Lecture-1: Introduction to web engineering - course overview and grading scheme
Lecture-1: Introduction to web engineering - course overview and grading schemeLecture-1: Introduction to web engineering - course overview and grading scheme
Lecture-1: Introduction to web engineering - course overview and grading scheme
 
Linux one vs x86
Linux one vs x86 Linux one vs x86
Linux one vs x86
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 

Similaire à Unit 05: Physical Architecture Design

[DSBW Spring 2009] Unit 05: Web Architectures
[DSBW Spring 2009] Unit 05: Web Architectures[DSBW Spring 2009] Unit 05: Web Architectures
[DSBW Spring 2009] Unit 05: Web Architectures
Carles Farré
 
Server2008 R2 Overview
Server2008 R2 OverviewServer2008 R2 Overview
Server2008 R2 Overview
volkerwill
 
Part 1 network computing
Part 1 network computingPart 1 network computing
Part 1 network computing
Linh Nguyen
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
Carles Farré
 
Reply 1 neededThere are a couple of options available when upg.docx
Reply 1 neededThere are a couple of options available when upg.docxReply 1 neededThere are a couple of options available when upg.docx
Reply 1 neededThere are a couple of options available when upg.docx
sodhi3
 

Similaire à Unit 05: Physical Architecture Design (20)

[DSBW Spring 2009] Unit 05: Web Architectures
[DSBW Spring 2009] Unit 05: Web Architectures[DSBW Spring 2009] Unit 05: Web Architectures
[DSBW Spring 2009] Unit 05: Web Architectures
 
Unit 07: Design Patterns and Frameworks (2/3)
Unit 07: Design Patterns and Frameworks (2/3)Unit 07: Design Patterns and Frameworks (2/3)
Unit 07: Design Patterns and Frameworks (2/3)
 
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
Serhiy Kalinets "Embracing architectural challenges in the modern .NET world"
 
Workload migration on the cloud
Workload migration on the cloudWorkload migration on the cloud
Workload migration on the cloud
 
Server2008 R2 Overview
Server2008 R2 OverviewServer2008 R2 Overview
Server2008 R2 Overview
 
TechInsight - Real World Implementation of VDI
TechInsight - Real World Implementation of VDITechInsight - Real World Implementation of VDI
TechInsight - Real World Implementation of VDI
 
Part 1 network computing
Part 1 network computingPart 1 network computing
Part 1 network computing
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
 
Jeffrey Richter
Jeffrey RichterJeffrey Richter
Jeffrey Richter
 
Reply 1 neededThere are a couple of options available when upg.docx
Reply 1 neededThere are a couple of options available when upg.docxReply 1 neededThere are a couple of options available when upg.docx
Reply 1 neededThere are a couple of options available when upg.docx
 
Nuno Godinho
Nuno GodinhoNuno Godinho
Nuno Godinho
 
Dot Net Nuke Presentation
Dot Net Nuke PresentationDot Net Nuke Presentation
Dot Net Nuke Presentation
 
Will Web 2.0 applications break the cloud?
Will Web 2.0 applications break the cloud?Will Web 2.0 applications break the cloud?
Will Web 2.0 applications break the cloud?
 
Get ready for tomorrow, today!
Get ready for tomorrow, today!Get ready for tomorrow, today!
Get ready for tomorrow, today!
 
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineMeteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container Engine
 
Ch02
Ch02Ch02
Ch02
 
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
AAI-4847 Full Disclosure on the Performance Characteristics of WebSphere Appl...
 
J2ee connector architecture
J2ee connector architectureJ2ee connector architecture
J2ee connector architecture
 
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 2
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 2Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 2
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 2
 
Configuring and Troubleshooting XenDesktop Sites
Configuring and Troubleshooting XenDesktop SitesConfiguring and Troubleshooting XenDesktop Sites
Configuring and Troubleshooting XenDesktop Sites
 

Plus de DSBW 2011/2002 - Carles Farré - Barcelona Tech (11)

Unit 09: Web Application Testing
Unit 09: Web Application TestingUnit 09: Web Application Testing
Unit 09: Web Application Testing
 
Unit 08: Security for Web Applications
Unit 08: Security for Web ApplicationsUnit 08: Security for Web Applications
Unit 08: Security for Web Applications
 
Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)
 
Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)
 
Unit 06: The Web Application Extension for UML
Unit 06: The Web Application Extension for UMLUnit 06: The Web Application Extension for UML
Unit 06: The Web Application Extension for UML
 
Unit 04: From Requirements to the UX Model
Unit 04: From Requirements to the UX ModelUnit 04: From Requirements to the UX Model
Unit 04: From Requirements to the UX Model
 
Unit03: Process and Business Models
Unit03: Process and Business ModelsUnit03: Process and Business Models
Unit03: Process and Business Models
 
Unit 02: Web Technologies (2/2)
Unit 02: Web Technologies (2/2)Unit 02: Web Technologies (2/2)
Unit 02: Web Technologies (2/2)
 
Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)
 
Unit 01 - Introduction
Unit 01 - IntroductionUnit 01 - Introduction
Unit 01 - Introduction
 
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Unit 05: Physical Architecture Design

  • 1. Unit 5: Physical Architecture Design  Introduction  Dimensions to be considered  Architecture Patterns:  Single server  Separate database  Replicated Web servers  Separated scripting engines  Application servers  Web Caching  Cloud Computing  J2EE architectures for WebApps dsbw 2011/2012 q1 1
  • 2. Physical Architecture Design: A Definition “  (physical) architecture design concentrates on the choice of the hardware, network, and software components that make up the system, to find the mix of these components that best meets the application requirements, and at the same time respects the technical and economic constraints of the project. ” Ceri et al., 2003 dsbw 2011/2012 q1 2
  • 3. Architecture: Logical vs. Physical 3-Layered Logical Architecture 2(+)-Tiered Client/Server Physical Architecture ...... Client WB WB (tier #1) HTTP .gif Presentation Layer .html WS WS Business Logic Layer Server (tier #2) Data Mapping Layer AppServer Scripting Eng. WapServer DBMS File/Database Management System Server HOST ...... (tier #3) DBMS dsbw 2011/2012 q1 3
  • 4. Logical-Physical Mapping:Distributed Presentation  One fragment of the Web presentation layer is executed on the Web browser:  Download and rendering of HTML (XML, …) documents  Client-side scripting: JavaScript, VBScript  Execution of embedded components: Applets, ActiveX  The other fragment of the Web presentation layer is executed on the server side:  Retrieval and delivery of static documents/files  Execution of server scripts  Interaction with the Business Logic Layer  The other layers are executed on the server tier(s)  AJAX (RIA) applications may change this paradigm. dsbw 2011/2012 q1 4
  • 5. Dimensions of Architecture Design  Non-functional requirements that pursue the achievement of an adequate level of service  Physical, financial and organizational constraints that may affect decision-making  Alternative scenarios in architecture deployment dsbw 2011/2012 q1 5
  • 6. Non-functional requirements that may affect Architecture Design  Performance: The application must sustain the expected workload defined in terms of  the maximum number of concurrent users,  the number of page requests served per unit of time,  the maximum time for delivering a page to the client  Scalability: The architecture must be easily extensible  Availability: Faults should not affect significantly the service delivered to users  State maintenance: The state of the user interaction must be preserved, even when the application is distributed on multiple machines or failures occur  Security:  Data should be protected  Users should be identified and granted access only to the data and functions they are entitled to dsbw 2011/2012 q1 6
  • 7. Constraints of Architecture Design  Cost  Every configuration requires a different investment, in terms of processors, network infrastructure, interfaces, and software licenses  The application budget may limit the choice of hardware resources and software products  Complexity  Some configurations are simpler than others to set up and maintain  The unavailability or the cost of specialized technical skills may constrain the architecture design  Corporate standards and infrastructures  The WebApp may be deployed within a corporate IT infrastructure, which may constrain the selection of hardware resources and software products. dsbw 2011/2012 q1 7
  • 8. Scenarios of Architecture Deployment  Internal  The application architecture is kept inside the enterprise and maintained by the internal IT department.  Housed  The application architecture is maintained by the internal IT department of the enterprise, but is physically installed at an external service provider.  Hosted  The application architecture is located at the premises of an external service provider, who also maintains it. dsbw 2011/2012 q1 8
  • 9. Architecture Pattern: Single Server Host · Web server HTTP HTTP · Script engine rooter/ · DBMS Client firewall (browser) dsbw 2011/2012 q1 9
  • 10. Single Server Pattern: Evaluation (1/2)  Performance  Depends on the configuration of the server: CPU speed, available memory, disk access latency, etc.  The DBMS is both memory and CPU-intensive  Scalability  Is bound by the hardware architecture of the selected server  Availability  Every software and hardware element is a single point of failure: if it breaks, the entire system hangs.  Can be improved by adding redundant hardware resources (multiple CPUs, mirrored disks) and by installing multiple processes running different instances of the Web server, script engine, and database … dsbw 2011/2012 q1 10
  • 11. Single Server Pattern: Evaluation (2/2)  State maintenance  No problems with none of the three possibilities to store user data: client, server or database  Security:  This the weakest aspect of is configuration: attackers breaking the firewall and the Web server can take control of the host and gain direct access to the database, violating data protection  Low cost, as far as massive parallelism is not required.  Low complexity dsbw 2011/2012 q1 11
  • 12. Architecture Pattern: Separate Database Host 1 Host 2 HTTP HTTP rooter/ Client firewall firewall (browser) Web server + Script engine DBMS Demilitarized Zone (DMZ) dsbw 2011/2012 q1 12
  • 13. Separate Database Pattern: Evaluation  Better performance  One extra machine  Each tier can be tuned to the requirements of the installed software  More scalable  It is possible to act separately on each tier.  Normally, the first bottleneck is in the middle tier  Availability is not improved  Each component is still a single point of failure  Significantly improved security  The inner firewall may disallow HTTP requests at all and let only database requests pass, making it more difficult for attackers to reach the data tier. dsbw 2011/2012 q1 13
  • 14. Architecture Pattern: Replicated Web Server WS + Script engine #1 HTTP Host 2 HTTP HTTP HTTPS rooter/ firewall/ WS + Script engine #2 Client firewall load balancer HTTPS (browser) DBMS WS + Script engine #3 (secure) Demilitarized Zone (DMZ) dsbw 2011/2012 q1 14
  • 15. Replicated Web Server Pattern: Evaluation  Improved performance and scalability:  Load balancing  Clustering: A cluster is a group of servers (aka nodes) that provide a unified view of the services that they individually offer  Improved availability:  Fail-over: if a cluster node fails, its workload can be redistributed to the other nodes of the same cluster  Session state maintenance on the replicated servers  Session affinity (aka sticky sessions): The load balancer sends all the incoming requests pertinent to a given session to the same server.  Session migration: Session state is shared by the servers in the cluster  Improved data transmission security  One of the Web servers may be configured to handle the connections that require cryptographic protection. dsbw 2011/2012 q1 15
  • 16. Architecture Pattern: Separate Script Engine WS #1 SE #1 Host 2 HTTP HTTP HTTP HTTPS rooter/ firewall/ WS #2 SE #2 Client firewall load balancer (browser) HTTPS DBMS WS #3 SE #3 (secure) dsbw 2011/2012 q1 16
  • 17. Separate Script Engine Pattern : Evaluation  Improved performance, scalability and availability  Web server and the scripting engine can be replicated independently so that the number and configuration of the hosts can be optimized: a well-balanced configuration may require more machines for the scripting engines than for the Web servers.  The communication overhead introduced by the separation should be compensated by the performance increase. dsbw 2011/2012 q1 17
  • 18. Architecture Pattern: Application Server Application WS #1 SE #1 Server HTTP Host 2 HTTP HTTP HTTPS Application rooter/ firewall/ WS #2 SE #2 Server firewall Client load balancer DBMS (browser) HTTPS Application WS #3 SE #3 Server (secure) dsbw 2011/2012 q1 18
  • 19. Application Server Pattern: Evaluation  An application server is a software platform, distinct from the Web server, dedicated to the efficient execution of business components for supporting the construction of dynamic pages.  Improved performance, scalability and availability:  Transparent component distribution, replication, and load balancing: The application server automatically manages the creation of processes, the replication of business objects and their allocation to the available processes, and the allotment of client requests to the increase and decrease of the actual workload.  Automatic failure recovery: The application server may detect hardware, software and network failures, and avert client requests addressed to a failed component and route them to available replicas of the same business object.  Resource pooling: The application server may handle pools of expensive resources, like database connections, and share these resource among multiple business objects in an optimized way dsbw 2011/2012 q1 19
  • 20. Web Caching  Caching consists of temporarily storing resources in a fast access location, for later retrieval.  Benefits:  Reduction of the response time  Reduction of computation effort when the resource is dynamically build  Anything can be cached:  Static HTML pages and multimedia files.  Fragments of pages computed by scripting programs.  Intermediate data consumed by the scripting programs for producing page, e.g. XML files.  The result of database queries or other application commands dsbw 2011/2012 q1 20
  • 21. Web caching: Where to Cache (1/3)  Browser caching:  Proxy caching: Every Web browser contains a cache of Proxy caches store a local copy of each HTML pages and multimedia files used to resource requested by users, and avoid speed up the rendition of pages that accessing the Internet for retrieving contain cached objects. frequently asked pages dsbw 2011/2012 q1 21
  • 22. Web caching: Where to Cache (2/3)  Server accelerators  A server accelerator is a “buffer” placed in front of a server cluster that intercepts requests, caches copies of the objects produced by the servers, and delivers them to the subsequent requests.  Page prefetching: Based on the last request, the server accelerator loads into cache those pages that are more probable of being requested next. dsbw 2011/2012 q1 22
  • 23. Web caching: Where to Cache (3/3)  Content delivery networks (CDNs)  CDNs are systems of computers networked together across the Internet that allow content providers to outsource their caching infrastructures  When a client requests a page to the origin server, this returns a page with rewritten links that point to the nodes of the CDN  The CDN serves requests selecting the optimal copy of the page by taking into account the geographical location of the user and the real- time traffic conditions. dsbw 2011/2012 q1 23
  • 24. Cloud Computing – A Definition  Is “a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction” The NIST Definition of Cloud Computing dsbw 2011/2012 q1 24
  • 25. Cloud Computing – Essential Characteristics  On-demand self-service  A consumer can unilaterally provision computing capabilities as needed  Broad network access  Capabilities are available over the network and accessed through standard mechanisms.  Resource pooling  Physical and virtual resources are dynamically assigned and reassigned according to consumer demand.  Rapid elasticity  Capabilities can be rapidly and elastically provisioned.  Measured Service  Resource usage is monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service. dsbw 2011/2012 q1 25
  • 26. Cloud Computing – Service Models Source: http://www.collab-ogce.org/gce08/images/7/76/LamiaYouseff.pdf dsbw 2011/2012 q1 26
  • 27. Cloud Computing - Some Providers Cloud Layer Examples of Commercial Cloud Systems Cloud Application Google Apps and Salesforce Customer Relation Layer Management (CRM) system Cloud Software Google App Engine and Salesforce Apex System Environment Computational Resources: Amazon's EC2. Enomalism Elastic Cloud. Cloud Software Storage: Amazon's S3. EMC Storage Managed Infrastructure Service. Communication: Microsoft Connected Service Framework (CSF). Grid and Cluster Computing Systems like Globus and Software Kernel Condor. Firmware / IBM-Morgan Stanley's Computing Sublease, and Hardware IBM's Kittyhawk Project. dsbw 2011/2012 q1 27
  • 28. J2EE Architectures for Web Applications  “Classic” J2EE architecture, using remote EJBs and entity beans  Local EJB architecture, using local EJBs  Ad hoc J2EE architecture without EJB  Lightweight container architecture dsbw 2011/2012 q1 28
  • 29. “Classic” J2EE Architecture Web Container J2EE Servlets / Web Classes Server Business Interface Business Delegate RMI EJB Container J2EE Server Session EJB (Same or Separate JVM Entity EJB (optional) DBMS Legacy System dsbw 2011/2012 q1 29
  • 30. Local EJB architecture Web Container J2EE Servlets / Web Classes Server Business Interface Business Delegate Local EJB Invocation EJB Container (Single Session EJB JVM) Entity EJB (optional) DBMS Legacy System dsbw 2011/2012 q1 30
  • 31. Ad hoc J2EE Architecture without EJB Web Container J2EE Servlets / Web Classes Server Business Interface Implementation DBMS Legacy System dsbw 2011/2012 q1 31
  • 32. Lightweight Container Architecture MVC Web Framework J2EE Server Web Container Business Interface POJO Implementation with declarative services via AOP O/R Mapping Layer RDBMS (Optional) Other transactional resource dsbw 2011/2012 q1 32
  • 33. J2EE Architectures: A Comparison Architect. Simplicity Productivity Transaction Horizontal Testability Capable Scalability Remote Complex to Poor, Yes Inherent support Poor. It's very EJBs implement and because of for distributing hard to test use business complexity of objects. EJBs outside a objects. distribution container. In- and EJB container programming testing is slow model. and complex. Local EJBs Slightly less Slightly better Yes Relies on web Poor. As for complex to than for container to remote EJBs. access remote EJBs. deliver clustering. No EJB, ad Typically Productivity is No. Explicit Depends on Depends on hoc simpler than usually better use of implementation implementation architectures than with EJB specific APIs strategy. strategy. using EJB. architectures. is required. Light- Good, as High Yes, if using Relies on web Good. Easy to weight business AOP. container to test business container objects are deliver clustering. objects outside POJOs. an application server. dsbw 2011/2012 q1 33
  • 34. References  S. Ceri et al. Designing Data-Intensive Web Applications. Capítol 10. Morgan Kaufmann, 2003.  JOHNSON, Rod and HOELLER Juergen. Expert One-on-One J2EE Development without EJB. Willey Publishing, 2004  Youseff, L.; Butrico, M.; Da Silva, D. Toward a Unified Ontology of Cloud Computing. Grid Computing Environments Workshop, 2008. GCE '08, pages 1-10. http://www.cs.ucsb.edu/~lyouseff/CCOntology/CloudOntolo gy.pdf  National Insitute of Standards and Technology. Cloud Computing Definition, V.15. http://csrc.nist.gov/groups/SNS/cloud-computing/index.html dsbw 2011/2012 q1 34