SlideShare uma empresa Scribd logo
1 de 22
Unit 7: Design Patterns and Frameworks (cont.)
 Other Web presentation layer issues:
       Design Pattern: Context Object
       Web Presentation layer refactoring: Synchronizer Token
       Session state management


 Web presentation/Business layers integration
         Integration patterns with remote business layer:
                Service Locator
            

                Business Delegate
            



 Business layer architectural patterns
       Transaction Script
       Domain Model
       Table Module




dsbw 2008/2009 2q                                                1
Context Object
 Problem: You want to avoid using protocol-specific system
    information outside of its relevant context.
         For example, web components receive protocol-specific HTTP
          requests. Sharing HTTP requests with other components both within
          and outside the presentation tier exposes these components to protocol
          specifics.
 Forces:
        You have components and services that need access to system
      
        information.
       You want to decouple application components and services from
        the protocol specifics of system information.
       You want to expose only the relevant APIs within a context.

 Solution: Use a Context Object to encapsulate state in a protocol-
    independent way to be shared throughout your application


dsbw 2008/2009 2q                                                             2
Context Object: Structure




             Example:




dsbw 2008/2009 2q           3
Context Object: Sequence Diagram




dsbw 2008/2009 2q                  4
Synchronizer Token
 Problem: Clients make duplicate resource requests that should be
    monitored and controlled, or clients access certain views out of
    order by returning to previously bookmarked pages.

 Forces:
          You want to control the order or flow of the requests.
      

          You want to control duplicate request submissions from a client.
      
          Such duplicate submissions may occur when the user clicks the
          Back or Stop browser buttons and resubmits a form

 Solution: Use a Synchronizer Token to monitor and control the
    request flow and client access to certain resources.




dsbw 2008/2009 2q                                                        5
Synchronizer Token: Mechanics
                      Create one or more helper classes
                       responsible for generating and
                       comparing one-time-use, unique
                       tokens.
                      The component managing this activity
                       delegates to these helpers, managing
                       the temporary storage of a fresh
                       token for each client submission.
                      A copy of the token is stored per user
                       on the server and on the client
                       browser. The token is typically stored
                       on the client browser as a hidden field
                       and on the server in a user session.
                      Add logic to check whether the token
                       arriving with the client request
                       matches the token in the user
                       session.


dsbw 2008/2009 2q                                           6
Session State Management

     Solution        Implementation        Benefits          Drawbacks

On the Client       Hidden Form Fields Easy to            Limited amount of
                                       implement.         data
                    HTTP Cookies
                                       No problems with   Security concerns
                    URI Rewriting
                                       load-balanced      if data not
                                       server clusters    encrypted

On the Web          HttpSession and    Easy-to-use APIs   Load-balanced
container           the like                              server clusters
                                                          require special
                                                          treatments
On a DB             Stored in a DB     Sharable           Penalizes DB
                    table                                 performance
                                       Recoverable




dsbw 2008/2009 2q                                                           7
Web Presentation/Business Layers Integration

                                  Web Container

                                  Web Presentation Layer



                                      Business Layer

                                    Data Source Layer

                     Web server




 Local procedure calls between web presentation and business
  components
 Direct access to the controllers in the business layer




dsbw 2008/2009 2q                                               8
Web Presentation/Business Layers Integration

                                             Application Server
                         Web Container
                                               Business Layer
                          Web Presentation
                               Layer
                                              Data Source Layer

            Web server




 Remote communication between web presentation and business
    components:
      Communication protocols and/or middleware for distributed
       components
      Name and/or directory services to locate remote components
      DTOs to transfer data between remote components



dsbw 2008/2009 2q                                                   9
Service Locator
 Problem: You want to transparently locate business components
    and services in a uniform manner.
 Forces:
         You want to use a lookup mechanism to locate business components
          and other services.
         You want to centralize and reuse the implementation of lookup
          mechanisms for application clients.
         You want to encapsulate vendor dependencies for registry
          implementations, and hide the dependency and complexity from the
          clients.
         You want to avoid performance overhead related to initial context
          creation and service lookups.
         You want to reestablish a connection to a previously accessed
          component and service
 Solution: Use a Service Locator to implement and encapsulate
    service and component lookup.


dsbw 2008/2009 2q                                                             10
Service Locator: Structure
                                Target: the service or
                                 component that the Client is
                                 looking up
                                IntialContext: the starting
                                 point in the lookup and
                                 creation process.
                                RegistryService: the registry
                                 implementation that holds the
                                 references to the services or
                                 components that are
                                 registered as service
                                 providers for Clients
                                Cache: holds onto references
                                 that have been previously
                                 looked up.




dsbw 2008/2009 2q                                              11
Service Locator: Sequence Diagram




dsbw 2008/2009 2q                   12
Business Delegate
 Problem: You want to hide clients (Web presentation components)
    from the complexity of remote communication with business service
    components.
 Forces:
         You want to access the business layer components from your Web
          presentation layer components.
         You want to minimize coupling between clients and the business
          services, thus hiding the underlying implementation details of the
          service, such as lookup and access.
         You want to avoid unnecessary invocation of remote services.
         You want to translate network exceptions into application or user
          exceptions.
         You want to hide the details of service creation, reconfiguration, and
          invocation retries from the clients.
 Solution: Use a Business Delegate to encapsulate access to a
    business service.

dsbw 2008/2009 2q                                                                  13
Business Delegate: Structure




dsbw 2008/2009 2q              14
Business Delegate: Sequence Diagram




dsbw 2008/2009 2q                     15
“Classic” J2EE Architecture
                    Web Container
                                                           J2EE
                         Servlets / Web Classes
                                                           Server

                           Business Interface



                           Business Delegate


                                    RMI

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




                      DBMS                 Legacy System

dsbw 2008/2009 2q                                                     16
Business Layer Architectural Patterns
  Architectural            Description               Benefits             Drawbacks
    Pattern
 Transaction        A single procedure for       Simple paradigm      Duplicated code as
 Script             each action that a user                           several transactions
                                                 Works well with
                    might want to do: takes                           need to do similar
                                                 RDBMS
                    the input from the                                things
                    presentation, processes
                    it, and stores data in the
                    database.
 Domain Model       Conceptual Model             Pure OO: reuse,      Object-Relational
                    objects become Business      inheritance,         impedance
                    Layer components             polymorphism, etc.   mismatch.
                                                 Design Patterns      Data Mapper.

 Table Module       Third way solution: OO       Takes advantage      Not so easy to
                    business layer with          of many Data         implement than
                    coarse objects that          Access APIs          Transaction Script
                    correspond to DB tables      (ADO.NET, JDO,       Not so powerful
                                                 JDBC, …)             than Domain Model


dsbw 2008/2009 2q                                                                         17
Transaction Script: Example
       : WebPresLayer                                             : DataSourceLayer

                            : NewPostTrans

                    execute( )
                                   insert? = false
                                            findAuthorsByName(name)

                                                                                      : RecordSet

                                                             next()

                            alt    insertInToAuthors(name, password)             [empty RecordSet]
                                   insert? = true
                                                        get(quot;passwordquot;)
                                   insert? = “passwords match”

                            opt                                                            [insert?]
                                   insertInToPosts(title, content, author)




dsbw 2008/2009 2q                                                                                      18
Domain Model: Example
                                         authorsDict :
  : WebPresLayer
                                          Dictionary                                                   Post
                                                                      Author
                                                                                                  title : String
                                                                name : String
                      : NewPostTrans                                                              date : Date
                                                                password : String
                                                                                     1     0..*   content : String
               execute( )
                               get(name)

                                                                                  [author didn’t exist]
                     opt               (name, password)         a : Author
                               put(name, a)


                             newPost(password, title, content )
                                                                            checkPassword(password)

                                                                                                    [passwordOK]
                                                          opt
                                                                                      p : Post
                                                                        a     p




dsbw 2008/2009 2q                                                                                                    19
Table Module: Example
     : WebPresLayer                     : Authors        : Posts         : DataSourceLayer

                       : NewPostTrans

                execute( )
                              newPost(...)
                                                    findAuthorsByName(name )

                                                                                             : RecordSet


                                                                      next()

                                                insertInToAuthors(name, password)


                                                                   get(quot;passwordquot;)
                                  addNewPost(title, content, authorName)
                                                             insertInToPosts(...)




dsbw 2008/2009 2q                                                                                          20
Business Layer Architectural Patterns




dsbw 2008/2009 2q                       21
References
 Books
         ALUR, Deepak et al. Core J2EE Patterns: Best Practices and
          Design Strategies, 2on Edition, Prentice Hall PTR, 2003.
       FOWLER, Martin Patterns of Enterprise Application Architecture,
        Addison Wesley, 2002.
       JOHNSON, Rod and HOELLER Juergen. Expert One-on-One J2EE
        Development without EJB, Willey Publishing, 2004


 Web sites
         www.corej2eepatterns.com
         java.sun.com/blueprints/corej2eepatterns/




dsbw 2008/2009 2q                                                      22

Mais conteúdo relacionado

Mais procurados

Integrating WebSphere Service Registry and Repository V8 with Process Server
Integrating WebSphere Service Registry and Repository V8 with Process ServerIntegrating WebSphere Service Registry and Repository V8 with Process Server
Integrating WebSphere Service Registry and Repository V8 with Process ServerGaneshNagalingam1
 
Integrating IBM Business Process Manager with a hybrid MobileFirst application
Integrating IBM Business Process Manager with a hybrid MobileFirst applicationIntegrating IBM Business Process Manager with a hybrid MobileFirst application
Integrating IBM Business Process Manager with a hybrid MobileFirst applicationGaneshNagalingam1
 
The business benefits_of_metastorm_bp_mv9
The business benefits_of_metastorm_bp_mv9The business benefits_of_metastorm_bp_mv9
The business benefits_of_metastorm_bp_mv9wnowakkk
 
Pilot Study - WSO2 Enterprise Integrator v6.1.1
Pilot Study - WSO2 Enterprise Integrator v6.1.1Pilot Study - WSO2 Enterprise Integrator v6.1.1
Pilot Study - WSO2 Enterprise Integrator v6.1.1GaneshNagalingam1
 
A Service Oriented Architecture For Order Processing In The I B M Supp...
A  Service  Oriented  Architecture For  Order  Processing In The  I B M  Supp...A  Service  Oriented  Architecture For  Order  Processing In The  I B M  Supp...
A Service Oriented Architecture For Order Processing In The I B M Supp...Kirill Osipov
 
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworksukdpe
 
Jee design patterns- Marek Strejczek - Rule Financial
Jee design patterns- Marek Strejczek - Rule FinancialJee design patterns- Marek Strejczek - Rule Financial
Jee design patterns- Marek Strejczek - Rule FinancialRule_Financial
 
C# .NET Developer Portfolio
C# .NET Developer PortfolioC# .NET Developer Portfolio
C# .NET Developer Portfoliocummings49
 
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-finalRohit Kelapure
 
Swarn Singh_CV_SSE
Swarn Singh_CV_SSESwarn Singh_CV_SSE
Swarn Singh_CV_SSESwarn Singh
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)blahap
 
Introducing adf business components
Introducing adf business componentsIntroducing adf business components
Introducing adf business componentsPrabhat gangwar
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion developmentDataNext Solutions
 
SQL Server 2012 : réussir la migration - Stéphane Haby - Antonio De Santo - d...
SQL Server 2012 : réussir la migration - Stéphane Haby - Antonio De Santo - d...SQL Server 2012 : réussir la migration - Stéphane Haby - Antonio De Santo - d...
SQL Server 2012 : réussir la migration - Stéphane Haby - Antonio De Santo - d...dbi services
 
Putting *Sparkle* in Your Social Applications! Customization and Branding wit...
Putting *Sparkle* in Your Social Applications! Customization and Branding wit...Putting *Sparkle* in Your Social Applications! Customization and Branding wit...
Putting *Sparkle* in Your Social Applications! Customization and Branding wit...Mitch Cohen
 

Mais procurados (20)

Integrating WebSphere Service Registry and Repository V8 with Process Server
Integrating WebSphere Service Registry and Repository V8 with Process ServerIntegrating WebSphere Service Registry and Repository V8 with Process Server
Integrating WebSphere Service Registry and Repository V8 with Process Server
 
Integrating IBM Business Process Manager with a hybrid MobileFirst application
Integrating IBM Business Process Manager with a hybrid MobileFirst applicationIntegrating IBM Business Process Manager with a hybrid MobileFirst application
Integrating IBM Business Process Manager with a hybrid MobileFirst application
 
Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)
 
The business benefits_of_metastorm_bp_mv9
The business benefits_of_metastorm_bp_mv9The business benefits_of_metastorm_bp_mv9
The business benefits_of_metastorm_bp_mv9
 
Pilot Study - WSO2 Enterprise Integrator v6.1.1
Pilot Study - WSO2 Enterprise Integrator v6.1.1Pilot Study - WSO2 Enterprise Integrator v6.1.1
Pilot Study - WSO2 Enterprise Integrator v6.1.1
 
A Service Oriented Architecture For Order Processing In The I B M Supp...
A  Service  Oriented  Architecture For  Order  Processing In The  I B M  Supp...A  Service  Oriented  Architecture For  Order  Processing In The  I B M  Supp...
A Service Oriented Architecture For Order Processing In The I B M Supp...
 
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, ...)
 
OpenESB
OpenESBOpenESB
OpenESB
 
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
 
Jee design patterns- Marek Strejczek - Rule Financial
Jee design patterns- Marek Strejczek - Rule FinancialJee design patterns- Marek Strejczek - Rule Financial
Jee design patterns- Marek Strejczek - Rule Financial
 
C# .NET Developer Portfolio
C# .NET Developer PortfolioC# .NET Developer Portfolio
C# .NET Developer Portfolio
 
Grottarossa:Why?
Grottarossa:Why?Grottarossa:Why?
Grottarossa:Why?
 
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
 
Swarn Singh_CV_SSE
Swarn Singh_CV_SSESwarn Singh_CV_SSE
Swarn Singh_CV_SSE
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)
 
Introducing adf business components
Introducing adf business componentsIntroducing adf business components
Introducing adf business components
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion development
 
SQL Server 2012 : réussir la migration - Stéphane Haby - Antonio De Santo - d...
SQL Server 2012 : réussir la migration - Stéphane Haby - Antonio De Santo - d...SQL Server 2012 : réussir la migration - Stéphane Haby - Antonio De Santo - d...
SQL Server 2012 : réussir la migration - Stéphane Haby - Antonio De Santo - d...
 
Putting *Sparkle* in Your Social Applications! Customization and Branding wit...
Putting *Sparkle* in Your Social Applications! Customization and Branding wit...Putting *Sparkle* in Your Social Applications! Customization and Branding wit...
Putting *Sparkle* in Your Social Applications! Customization and Branding wit...
 

Destaque

Caa s mainstream_nurture
Caa s mainstream_nurtureCaa s mainstream_nurture
Caa s mainstream_nurtureAIMFirst
 
[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process ModelsCarles Farré
 
Se for cross industry presentation #1
Se for cross industry presentation #1Se for cross industry presentation #1
Se for cross industry presentation #1AIMFirst
 
Yahoo! Mojito talk on Agency Hackday
Yahoo! Mojito talk on Agency HackdayYahoo! Mojito talk on Agency Hackday
Yahoo! Mojito talk on Agency HackdayGaurav Vaish
 
applications overview
applications overviewapplications overview
applications overviewMark Jutila
 
Armazenamento Em Tanques - Estudante do curso INSPETOR DE EQUIPAMENTOS
Armazenamento Em Tanques - Estudante do curso INSPETOR DE EQUIPAMENTOSArmazenamento Em Tanques - Estudante do curso INSPETOR DE EQUIPAMENTOS
Armazenamento Em Tanques - Estudante do curso INSPETOR DE EQUIPAMENTOSMário Sérgio Mello
 
WHAT IS ETHICS IN MARKETING BY KARTIK PARASHAR
WHAT IS ETHICS IN MARKETING BY KARTIK PARASHARWHAT IS ETHICS IN MARKETING BY KARTIK PARASHAR
WHAT IS ETHICS IN MARKETING BY KARTIK PARASHARKartik Parashar
 
E4 e automotive_designengineering_v5
E4 e automotive_designengineering_v5E4 e automotive_designengineering_v5
E4 e automotive_designengineering_v5AIMFirst
 
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อม
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อมแนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อม
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อมChacrit Sitdhiwej
 
การทบทวนความรู้และแนวทางการตอบคำถาม
การทบทวนความรู้และแนวทางการตอบคำถามการทบทวนความรู้และแนวทางการตอบคำถาม
การทบทวนความรู้และแนวทางการตอบคำถามChacrit Sitdhiwej
 
Projeto Green Park
Projeto Green ParkProjeto Green Park
Projeto Green Parkslides-mci
 
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)Chacrit Sitdhiwej
 
A Necessária Integração dos Indicadores de Qualidade de Energia e Aspectos de...
A Necessária Integração dos Indicadores de Qualidade de Energia e Aspectos de...A Necessária Integração dos Indicadores de Qualidade de Energia e Aspectos de...
A Necessária Integração dos Indicadores de Qualidade de Energia e Aspectos de...slides-mci
 

Destaque (20)

Caa s mainstream_nurture
Caa s mainstream_nurtureCaa s mainstream_nurture
Caa s mainstream_nurture
 
Floor plans
Floor plansFloor plans
Floor plans
 
Ratios modelo de_analisis_interpretación_forma_gerencial
Ratios modelo de_analisis_interpretación_forma_gerencialRatios modelo de_analisis_interpretación_forma_gerencial
Ratios modelo de_analisis_interpretación_forma_gerencial
 
Swimming pool
Swimming poolSwimming pool
Swimming pool
 
Characters
CharactersCharacters
Characters
 
[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models
 
Se for cross industry presentation #1
Se for cross industry presentation #1Se for cross industry presentation #1
Se for cross industry presentation #1
 
汉语语音教学和相关问题探讨
汉语语音教学和相关问题探讨汉语语音教学和相关问题探讨
汉语语音教学和相关问题探讨
 
Yahoo! Mojito talk on Agency Hackday
Yahoo! Mojito talk on Agency HackdayYahoo! Mojito talk on Agency Hackday
Yahoo! Mojito talk on Agency Hackday
 
applications overview
applications overviewapplications overview
applications overview
 
Armazenamento Em Tanques - Estudante do curso INSPETOR DE EQUIPAMENTOS
Armazenamento Em Tanques - Estudante do curso INSPETOR DE EQUIPAMENTOSArmazenamento Em Tanques - Estudante do curso INSPETOR DE EQUIPAMENTOS
Armazenamento Em Tanques - Estudante do curso INSPETOR DE EQUIPAMENTOS
 
WHAT IS ETHICS IN MARKETING BY KARTIK PARASHAR
WHAT IS ETHICS IN MARKETING BY KARTIK PARASHARWHAT IS ETHICS IN MARKETING BY KARTIK PARASHAR
WHAT IS ETHICS IN MARKETING BY KARTIK PARASHAR
 
E4 e automotive_designengineering_v5
E4 e automotive_designengineering_v5E4 e automotive_designengineering_v5
E4 e automotive_designengineering_v5
 
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อม
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อมแนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อม
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อม
 
การทบทวนความรู้และแนวทางการตอบคำถาม
การทบทวนความรู้และแนวทางการตอบคำถามการทบทวนความรู้และแนวทางการตอบคำถาม
การทบทวนความรู้และแนวทางการตอบคำถาม
 
Projeto Green Park
Projeto Green ParkProjeto Green Park
Projeto Green Park
 
Thermax report (1)
Thermax report (1)Thermax report (1)
Thermax report (1)
 
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)
 
A Necessária Integração dos Indicadores de Qualidade de Energia e Aspectos de...
A Necessária Integração dos Indicadores de Qualidade de Energia e Aspectos de...A Necessária Integração dos Indicadores de Qualidade de Energia e Aspectos de...
A Necessária Integração dos Indicadores de Qualidade de Energia e Aspectos de...
 
Property Law
Property LawProperty Law
Property Law
 

Semelhante a [DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)

[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 ArchitecturesCarles Farré
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)Carles Farré
 
Architecture1101 jy21cyl
Architecture1101 jy21cylArchitecture1101 jy21cyl
Architecture1101 jy21cylZouhayr Rich
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soaumityalcinalp
 
Easy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applicationsEasy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applicationsJack-Junjie Cai
 
How to become a Citrix Performance Hero
How to become a Citrix Performance HeroHow to become a Citrix Performance Hero
How to become a Citrix Performance HeroeG Innovations
 
Business Service Management on the Fly—In under 60 Minutes!
Business Service Management on the Fly—In under 60 Minutes!Business Service Management on the Fly—In under 60 Minutes!
Business Service Management on the Fly—In under 60 Minutes!Novell
 
SaaS transformation with OCE - uEngineCloud
SaaS transformation with OCE - uEngineCloudSaaS transformation with OCE - uEngineCloud
SaaS transformation with OCE - uEngineClouduEngine Solutions
 
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...BizTalk360
 
OOW 2012: Integrate Cloud Applications with Oracle SOA Suite
OOW 2012: Integrate Cloud Applications with Oracle SOA SuiteOOW 2012: Integrate Cloud Applications with Oracle SOA Suite
OOW 2012: Integrate Cloud Applications with Oracle SOA SuiteRajesh Raheja
 
BSM201.pdf
BSM201.pdfBSM201.pdf
BSM201.pdfNovell
 
Day Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure PlatformDay Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure PlatformWade Wegner
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applicationsManish Corriea
 
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...
Edge 2016 Session 1886  Building your own docker container cloud on ibm power...Edge 2016 Session 1886  Building your own docker container cloud on ibm power...
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...Yong Feng
 
VMWorld 2004 - Justifying the transition from Physical to Virtual
VMWorld 2004 - Justifying the transition from Physical to VirtualVMWorld 2004 - Justifying the transition from Physical to Virtual
VMWorld 2004 - Justifying the transition from Physical to VirtualDavid Kent
 
AX2012 Technical Track - Entreprise portal, Czesia Langoswka
AX2012 Technical Track -  Entreprise portal, Czesia LangoswkaAX2012 Technical Track -  Entreprise portal, Czesia Langoswka
AX2012 Technical Track - Entreprise portal, Czesia Langoswkadynamicscom
 
Java Development on Bluemix
Java Development on BluemixJava Development on Bluemix
Java Development on BluemixRam Vennam
 
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...EuroCloud
 

Semelhante a [DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3) (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
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
 
Architecture1101 jy21cyl
Architecture1101 jy21cylArchitecture1101 jy21cyl
Architecture1101 jy21cyl
 
Servlet programming
Servlet programmingServlet programming
Servlet programming
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soa
 
Easy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applicationsEasy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applications
 
Microsoft Dynamics GP 2013 - Mejoras
Microsoft Dynamics GP 2013 - MejorasMicrosoft Dynamics GP 2013 - Mejoras
Microsoft Dynamics GP 2013 - Mejoras
 
How to become a Citrix Performance Hero
How to become a Citrix Performance HeroHow to become a Citrix Performance Hero
How to become a Citrix Performance Hero
 
Business Service Management on the Fly—In under 60 Minutes!
Business Service Management on the Fly—In under 60 Minutes!Business Service Management on the Fly—In under 60 Minutes!
Business Service Management on the Fly—In under 60 Minutes!
 
SaaS transformation with OCE - uEngineCloud
SaaS transformation with OCE - uEngineCloudSaaS transformation with OCE - uEngineCloud
SaaS transformation with OCE - uEngineCloud
 
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
Windows Azure Workflows Manager - Running Durable Workflows in the Cloud and ...
 
OOW 2012: Integrate Cloud Applications with Oracle SOA Suite
OOW 2012: Integrate Cloud Applications with Oracle SOA SuiteOOW 2012: Integrate Cloud Applications with Oracle SOA Suite
OOW 2012: Integrate Cloud Applications with Oracle SOA Suite
 
BSM201.pdf
BSM201.pdfBSM201.pdf
BSM201.pdf
 
Day Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure PlatformDay Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure Platform
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
 
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...
Edge 2016 Session 1886  Building your own docker container cloud on ibm power...Edge 2016 Session 1886  Building your own docker container cloud on ibm power...
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...
 
VMWorld 2004 - Justifying the transition from Physical to Virtual
VMWorld 2004 - Justifying the transition from Physical to VirtualVMWorld 2004 - Justifying the transition from Physical to Virtual
VMWorld 2004 - Justifying the transition from Physical to Virtual
 
AX2012 Technical Track - Entreprise portal, Czesia Langoswka
AX2012 Technical Track -  Entreprise portal, Czesia LangoswkaAX2012 Technical Track -  Entreprise portal, Czesia Langoswka
AX2012 Technical Track - Entreprise portal, Czesia Langoswka
 
Java Development on Bluemix
Java Development on BluemixJava Development on Bluemix
Java Development on Bluemix
 
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
 

Mais de Carles Farré

Aplicacions i serveis web (ASW)
Aplicacions i serveis web (ASW)Aplicacions i serveis web (ASW)
Aplicacions i serveis web (ASW)Carles Farré
 
DSBW Final Exam (Spring Sementer 2010)
DSBW Final Exam (Spring Sementer 2010)DSBW Final Exam (Spring Sementer 2010)
DSBW Final Exam (Spring Sementer 2010)Carles Farré
 
Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Carles Farré
 
[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyondCarles Farré
 
[DSBW Spring 2009] Unit 09: Web Testing
[DSBW Spring 2009] Unit 09: Web Testing[DSBW Spring 2009] Unit 09: Web Testing
[DSBW Spring 2009] Unit 09: Web TestingCarles Farré
 
[DSBW Spring 2009] Unit 08: WebApp Security
[DSBW Spring 2009] Unit 08: WebApp Security[DSBW Spring 2009] Unit 08: WebApp Security
[DSBW Spring 2009] Unit 08: WebApp SecurityCarles Farré
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)Carles Farré
 
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)Carles Farré
 
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
[DSBW Spring 2009] Unit 04: From Requirements to the UX ModelCarles Farré
 
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)Carles Farré
 
[DSBW Spring 2009] Unit 02: Web Technologies (1/2)
[DSBW Spring 2009] Unit 02: Web Technologies (1/2)[DSBW Spring 2009] Unit 02: Web Technologies (1/2)
[DSBW Spring 2009] Unit 02: Web Technologies (1/2)Carles Farré
 
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web EngineeringCarles Farré
 
[ABDO] Data Integration
[ABDO] Data Integration[ABDO] Data Integration
[ABDO] Data IntegrationCarles Farré
 
[ABDO] Logic As A Database Language
[ABDO] Logic As A Database Language[ABDO] Logic As A Database Language
[ABDO] Logic As A Database LanguageCarles Farré
 

Mais de Carles Farré (14)

Aplicacions i serveis web (ASW)
Aplicacions i serveis web (ASW)Aplicacions i serveis web (ASW)
Aplicacions i serveis web (ASW)
 
DSBW Final Exam (Spring Sementer 2010)
DSBW Final Exam (Spring Sementer 2010)DSBW Final Exam (Spring Sementer 2010)
DSBW Final Exam (Spring Sementer 2010)
 
Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Web Usability (Slideshare Version)
Web Usability (Slideshare Version)
 
[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond
 
[DSBW Spring 2009] Unit 09: Web Testing
[DSBW Spring 2009] Unit 09: Web Testing[DSBW Spring 2009] Unit 09: Web Testing
[DSBW Spring 2009] Unit 09: Web Testing
 
[DSBW Spring 2009] Unit 08: WebApp Security
[DSBW Spring 2009] Unit 08: WebApp Security[DSBW Spring 2009] Unit 08: WebApp Security
[DSBW Spring 2009] Unit 08: WebApp Security
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
 
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
 
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
 
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
 
[DSBW Spring 2009] Unit 02: Web Technologies (1/2)
[DSBW Spring 2009] Unit 02: Web Technologies (1/2)[DSBW Spring 2009] Unit 02: Web Technologies (1/2)
[DSBW Spring 2009] Unit 02: Web Technologies (1/2)
 
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
 
[ABDO] Data Integration
[ABDO] Data Integration[ABDO] Data Integration
[ABDO] Data Integration
 
[ABDO] Logic As A Database Language
[ABDO] Logic As A Database Language[ABDO] Logic As A Database Language
[ABDO] Logic As A Database Language
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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 RobisonAnna Loughnan Colquhoun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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 MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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 DevelopmentsTrustArc
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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?Antenna Manufacturer Coco
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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 slidevu2urc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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 WorkerThousandEyes
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 

Último (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)

  • 1. Unit 7: Design Patterns and Frameworks (cont.)  Other Web presentation layer issues:  Design Pattern: Context Object  Web Presentation layer refactoring: Synchronizer Token  Session state management  Web presentation/Business layers integration  Integration patterns with remote business layer: Service Locator  Business Delegate   Business layer architectural patterns  Transaction Script  Domain Model  Table Module dsbw 2008/2009 2q 1
  • 2. Context Object  Problem: You want to avoid using protocol-specific system information outside of its relevant context.  For example, web components receive protocol-specific HTTP requests. Sharing HTTP requests with other components both within and outside the presentation tier exposes these components to protocol specifics.  Forces: You have components and services that need access to system  information.  You want to decouple application components and services from the protocol specifics of system information.  You want to expose only the relevant APIs within a context.  Solution: Use a Context Object to encapsulate state in a protocol- independent way to be shared throughout your application dsbw 2008/2009 2q 2
  • 3. Context Object: Structure Example: dsbw 2008/2009 2q 3
  • 4. Context Object: Sequence Diagram dsbw 2008/2009 2q 4
  • 5. Synchronizer Token  Problem: Clients make duplicate resource requests that should be monitored and controlled, or clients access certain views out of order by returning to previously bookmarked pages.  Forces: You want to control the order or flow of the requests.  You want to control duplicate request submissions from a client.  Such duplicate submissions may occur when the user clicks the Back or Stop browser buttons and resubmits a form  Solution: Use a Synchronizer Token to monitor and control the request flow and client access to certain resources. dsbw 2008/2009 2q 5
  • 6. Synchronizer Token: Mechanics  Create one or more helper classes responsible for generating and comparing one-time-use, unique tokens.  The component managing this activity delegates to these helpers, managing the temporary storage of a fresh token for each client submission.  A copy of the token is stored per user on the server and on the client browser. The token is typically stored on the client browser as a hidden field and on the server in a user session.  Add logic to check whether the token arriving with the client request matches the token in the user session. dsbw 2008/2009 2q 6
  • 7. Session State Management Solution Implementation Benefits Drawbacks On the Client Hidden Form Fields Easy to Limited amount of implement. data HTTP Cookies No problems with Security concerns URI Rewriting load-balanced if data not server clusters encrypted On the Web HttpSession and Easy-to-use APIs Load-balanced container the like server clusters require special treatments On a DB Stored in a DB Sharable Penalizes DB table performance Recoverable dsbw 2008/2009 2q 7
  • 8. Web Presentation/Business Layers Integration Web Container Web Presentation Layer Business Layer Data Source Layer Web server  Local procedure calls between web presentation and business components  Direct access to the controllers in the business layer dsbw 2008/2009 2q 8
  • 9. Web Presentation/Business Layers Integration Application Server Web Container Business Layer Web Presentation Layer Data Source Layer Web server  Remote communication between web presentation and business components:  Communication protocols and/or middleware for distributed components  Name and/or directory services to locate remote components  DTOs to transfer data between remote components dsbw 2008/2009 2q 9
  • 10. Service Locator  Problem: You want to transparently locate business components and services in a uniform manner.  Forces:  You want to use a lookup mechanism to locate business components and other services.  You want to centralize and reuse the implementation of lookup mechanisms for application clients.  You want to encapsulate vendor dependencies for registry implementations, and hide the dependency and complexity from the clients.  You want to avoid performance overhead related to initial context creation and service lookups.  You want to reestablish a connection to a previously accessed component and service  Solution: Use a Service Locator to implement and encapsulate service and component lookup. dsbw 2008/2009 2q 10
  • 11. Service Locator: Structure  Target: the service or component that the Client is looking up  IntialContext: the starting point in the lookup and creation process.  RegistryService: the registry implementation that holds the references to the services or components that are registered as service providers for Clients  Cache: holds onto references that have been previously looked up. dsbw 2008/2009 2q 11
  • 12. Service Locator: Sequence Diagram dsbw 2008/2009 2q 12
  • 13. Business Delegate  Problem: You want to hide clients (Web presentation components) from the complexity of remote communication with business service components.  Forces:  You want to access the business layer components from your Web presentation layer components.  You want to minimize coupling between clients and the business services, thus hiding the underlying implementation details of the service, such as lookup and access.  You want to avoid unnecessary invocation of remote services.  You want to translate network exceptions into application or user exceptions.  You want to hide the details of service creation, reconfiguration, and invocation retries from the clients.  Solution: Use a Business Delegate to encapsulate access to a business service. dsbw 2008/2009 2q 13
  • 15. Business Delegate: Sequence Diagram dsbw 2008/2009 2q 15
  • 16. “Classic” J2EE Architecture Web Container J2EE Servlets / Web Classes Server Business Interface Business Delegate RMI J2EE EJB Container Server (Same or Session EJB Separate JVM Entity EJB (optional) DBMS Legacy System dsbw 2008/2009 2q 16
  • 17. Business Layer Architectural Patterns Architectural Description Benefits Drawbacks Pattern Transaction A single procedure for Simple paradigm Duplicated code as Script each action that a user several transactions Works well with might want to do: takes need to do similar RDBMS the input from the things presentation, processes it, and stores data in the database. Domain Model Conceptual Model Pure OO: reuse, Object-Relational objects become Business inheritance, impedance Layer components polymorphism, etc. mismatch. Design Patterns Data Mapper. Table Module Third way solution: OO Takes advantage Not so easy to business layer with of many Data implement than coarse objects that Access APIs Transaction Script correspond to DB tables (ADO.NET, JDO, Not so powerful JDBC, …) than Domain Model dsbw 2008/2009 2q 17
  • 18. Transaction Script: Example : WebPresLayer : DataSourceLayer : NewPostTrans execute( ) insert? = false findAuthorsByName(name) : RecordSet next() alt insertInToAuthors(name, password) [empty RecordSet] insert? = true get(quot;passwordquot;) insert? = “passwords match” opt [insert?] insertInToPosts(title, content, author) dsbw 2008/2009 2q 18
  • 19. Domain Model: Example authorsDict : : WebPresLayer Dictionary Post Author title : String name : String : NewPostTrans date : Date password : String 1 0..* content : String execute( ) get(name) [author didn’t exist] opt (name, password) a : Author put(name, a) newPost(password, title, content ) checkPassword(password) [passwordOK] opt p : Post a p dsbw 2008/2009 2q 19
  • 20. Table Module: Example : WebPresLayer : Authors : Posts : DataSourceLayer : NewPostTrans execute( ) newPost(...) findAuthorsByName(name ) : RecordSet next() insertInToAuthors(name, password) get(quot;passwordquot;) addNewPost(title, content, authorName) insertInToPosts(...) dsbw 2008/2009 2q 20
  • 21. Business Layer Architectural Patterns dsbw 2008/2009 2q 21
  • 22. References  Books  ALUR, Deepak et al. Core J2EE Patterns: Best Practices and Design Strategies, 2on Edition, Prentice Hall PTR, 2003.  FOWLER, Martin Patterns of Enterprise Application Architecture, Addison Wesley, 2002.  JOHNSON, Rod and HOELLER Juergen. Expert One-on-One J2EE Development without EJB, Willey Publishing, 2004  Web sites  www.corej2eepatterns.com  java.sun.com/blueprints/corej2eepatterns/ dsbw 2008/2009 2q 22