SlideShare a Scribd company logo
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

More Related Content

What's hot

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
GaneshNagalingam1
 
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
GaneshNagalingam1
 
Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
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
wnowakkk
 
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
GaneshNagalingam1
 
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
 
Unit 01 - Introduction
Unit 01 - IntroductionUnit 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, ...)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
OpenESB
OpenESBOpenESB
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
ukdpe
 
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
Rule_Financial
 
C# .NET Developer Portfolio
C# .NET Developer PortfolioC# .NET Developer Portfolio
C# .NET Developer Portfolio
cummings49
 
Grottarossa:Why?
Grottarossa:Why?Grottarossa:Why?
Grottarossa:Why?
Maurizio Farina
 
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
Rohit Kelapure
 
Swarn Singh_CV_SSE
Swarn Singh_CV_SSESwarn Singh_CV_SSE
Swarn Singh_CV_SSE
Swarn 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 components
Prabhat gangwar
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion development
DataNext 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
 

What's hot (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...
 

Viewers also liked

Caa s mainstream_nurture
Caa s mainstream_nurtureCaa s mainstream_nurture
Caa s mainstream_nurture
AIMFirst
 
Floor plans
Floor plansFloor plans
Floor plans
eviekASmedia
 
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
Franz Lenin Aleister Ramirez Weepio
 
Swimming pool
Swimming poolSwimming pool
Swimming pool
Sarita Ranabhat
 
Characters
CharactersCharacters
Characters
eviekASmedia
 
[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
Carles Farré
 
Se for cross industry presentation #1
Se for cross industry presentation #1Se for cross industry presentation #1
Se for cross industry presentation #1
AIMFirst
 
汉语语音教学和相关问题探讨
汉语语音教学和相关问题探讨汉语语音教学和相关问题探讨
汉语语音教学和相关问题探讨
The British Chinese Language Teaching Society
 
Yahoo! Mojito talk on Agency Hackday
Yahoo! Mojito talk on Agency HackdayYahoo! Mojito talk on Agency Hackday
Yahoo! Mojito talk on Agency Hackday
Gaurav Vaish
 
applications overview
applications overviewapplications overview
applications overview
Mark 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 EQUIPAMENTOS
Má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 PARASHAR
Kartik Parashar
 
E4 e automotive_designengineering_v5
E4 e automotive_designengineering_v5E4 e automotive_designengineering_v5
E4 e automotive_designengineering_v5
AIMFirst
 
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อม
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อมแนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อม
แนวทางการศึกษาและกฎหมายกับวิทยาศาสตร์สิ่งแวดล้อม
Chacrit Sitdhiwej
 
การทบทวนความรู้และแนวทางการตอบคำถาม
การทบทวนความรู้และแนวทางการตอบคำถามการทบทวนความรู้และแนวทางการตอบคำถาม
การทบทวนความรู้และแนวทางการตอบคำถาม
Chacrit Sitdhiwej
 
Projeto Green Park
Projeto Green ParkProjeto Green Park
Projeto Green Park
slides-mci
 
Thermax report (1)
Thermax report (1)Thermax report (1)
Thermax report (1)
Anurag Baruah
 
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)
ความรู้เบื้องต้นเกี่ยวกับกฎหมาย (๑)
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
 
Property Law
Property LawProperty Law
Property Law
guest37cbd035
 

Viewers also liked (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
 

Similar to [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 Architectures
Carles 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 jy21cyl
Zouhayr Rich
 
Servlet programming
Servlet programmingServlet programming
Servlet programming
Mallikarjuna G D
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soa
umityalcinalp
 
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
Jack-Junjie Cai
 
Microsoft Dynamics GP 2013 - Mejoras
Microsoft Dynamics GP 2013 - MejorasMicrosoft Dynamics GP 2013 - Mejoras
Microsoft Dynamics GP 2013 - Mejoras
DH Soluciones Informaticas S.A.S
 
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
eG 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 - uEngineCloud
uEngine 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 Suite
Rajesh Raheja
 
BSM201.pdf
BSM201.pdfBSM201.pdf
BSM201.pdf
Novell
 
Day Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure PlatformDay Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure Platform
Wade Wegner
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
Manish 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 Virtual
David 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 Langoswka
dynamicscom
 
Java Development on Bluemix
Java Development on BluemixJava Development on Bluemix
Java Development on Bluemix
Ram 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
 

Similar to [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...
 

More from 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 beyond
Carles 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 Testing
Carles 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 Security
Carles 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 Model
Carles 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 Engineering
Carles Farré
 
[ABDO] Data Integration
[ABDO] Data Integration[ABDO] Data Integration
[ABDO] Data Integration
Carles Farré
 
[ABDO] Logic As A Database Language
[ABDO] Logic As A Database Language[ABDO] Logic As A Database Language
[ABDO] Logic As A Database Language
Carles Farré
 

More from 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
 

Recently uploaded

A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 

Recently uploaded (20)

A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 

[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