SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Turning Web Applications into Web
 Services by Wrapping Techniques

                    Giusy Di Lorenzo
                   Anna Rita Fasolino
                   Lorenzo Melcarne
                  Porfirio Tramontana
                     Valeria Vittorini
              Dipartimento di Informatica e Sistemistica
               University of Naples Federico II, Italy
Motivation

   With the diffusion of new paradigms and technological
    solutions for the Web (RIA and Ajax, SOA, …), existing
    Web Applications are rapidly becoming legacy

   A strategic objective: to integrate existing Web
    applications with the new platforms

   An Open Issue:
         Turning Web applications functionalities into Web Services using
          systematic migration approaches based on Wrapping techniques



Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007             2
Comparing Interaction paradigms…

           Web Applications                                               Web Services
Users seeing an HTML page, fill                                  A Client party invokes a
input fields in a form and submit                                service implemented by a
them, or click on a link in the page.                            provider party, using a request
Web Server answers by producing a                                message.
HTML page containing output values                               The provider processes the
and new input fields and command                                 request and sends a response
buttons that is rendered by the                                  message with the obtained
browser                                                          results.

                                                                   Req

                                                                   Resp



  Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                                     3
Turning WA to WS

   Turning Web applications functionalities
    into Web services
         Transforming the original (non programmatic)
          user-oriented interface of the Web application
          into a programmatic interface that exposes
          the full functionality and data of the
          application and that can be suitable for:
             Web Services
             APIs (e.g. accessible via Ajax requests)




Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007   4
Migration solutions

   White Box
         Invasive; they depend on the specific languages and technologies
          adopted on the server side of the Web Application

   Black Box
         Web Wrappers solutions
         Baumgartner et al., 2004
               Web Services returning output data of Web pages obtained via visual
                selection
         Jiang and Stroulia 2004
               Web Services returning output data of Web pages obtained via http
                request/response analysis
         Canfora et al. 2006
               Web Services executing functionalities of form based legacy system via
                wrappers




Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                             5
Our Wrapper solution
         The goal of our wrapper is to drive the Web Application during
          the execution of each possible interaction scenario associated
          with the use case to migrate, by providing it with the needed
          flow of http requests
         The Wrapper behaviour must replicate all the possible behaviour
          of the user of the Web application in the execution of the
          functionality to migrate

                                                   Application Server
                       Web
                                                      Wrapper
                      Service
                      Request
                                                            Web Application

                       Web
                      Service
                     Response

Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                  6
Wrapper Architecture
                          Application Server
                           Wrapper                                 State              Discriminating
                                                                                       Expression
                                                                 Identifier                            Automaton
       Web                      Browser
                                                        Identified                     ,               Description
    Application                 Emulator         Interaction State    Current State
                                                                                                       Document
                                        Click or Submit        Automaton
                                  HTML Page                     Engine


                                               Web Service               Web Service
                                                  Request                Response

• Http Unit acts as a Browser Emulator
• A XPath Library (such as Jaxp) supports the Class Identifier
• The behaviour of the wrapper for a given functionality to migrate is completely described in
the corresponding Automaton Description Document

  Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                                                       7
The Model of the Interaction

   A Finite State Automaton FSA= (S, T, A, Sin,
    Sfin) where:
        S is the set of Interaction States; they may be:
              Input States
              Output States
              I/O States
              Exception States
        A is the set of Actions performed by the user when an
         Interaction State occurs,
        T is the set of Transitions between states,
        Sin and Sfin are the Initial and Final states of the
         interaction.


Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007   8
Non Deterministic finite State Automata
                                                                Login and        Access
                                                   Login and    Password         Permitted
                       Home        Click ‘Login’
                                                               Login and
                       Page                        Password
                                                    Request    Password      ?
                                                                 Login and        Access
                                                                 Password         Denied


                                  What is the next State?
 The next state depends on the internal logic or on the internal state of the legacy system.

 Non Deterministic Finite State Automaton (NFA) is a finite state machine where for each pair
of state and input symbol there may be several possible next states

 The wrapper must know the list of the possible Next States of a given State
    • Possible successors of Password Request State are Access Permitted and Access Denied states

 The wrapper must be able to identify the current state on the basis of the returned screen
    • Wrapper must discriminate among Access Permitted screen and Access Denied screen

  Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                                      9
The proposed Migration process
1.         Selection of the Web application functionality to be turned into a
           Web service, based on:
             Business Value
             Potential reusability
             Cohesion and State Independence

2.         Reverse Engineering of the Web application User Interface
      1.      Identification of execution scenarios
      2.      Characterisation of execution scenario steps

3.         Interaction Model design
      1.      Evaluation of alternative modelling solutions
      2.      XML-based design of the model

4.         Wrapper Deploy and Validation


Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                10
The Migration Toolkit
           Web Pages                   Candidate Features
                                                               Interaction
                                                               states and
                                                             discriminating
                                                                                                      This toolkit
                          Classified
                                         Discriminating       expressions      Interaction           supports the
           Page            pages
                                          Expression                              State                migration
          Collector                        Generator                           Repository              process
    Page                                                                                                 steps
Classification          Interaction model knowledge
                                                                                    Discriminating    needed to
                                                                                     Expressions
                                                                                                     produce the
                                Automaton                 Classified pages      Page                  Automaton
  XML Automaton description
                                                                                                      description
                                 Designer                                     Classifier              needed by
                                                                                                     the Wrapper

                                  Web Pages


  Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                                             11
Case studies

   Based on a real italian Web Application for
    train journeys planning and booking
   3 case studies have been carried out n
    order to:
         Explore the feasibility of the wrapping
          approach
         Explore the different migration alternatives
             Service BS1 realise a simple train booking service
             Services BS2 and BS2* realise a more complex
              service in two different manners

Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007       12
Booking Service #1

         Input:
               Departure Station – Arrive Station – Date and
                Starting Time – Login – Password
         Behaviour:
               The system books one seat on the first available
                train solution listed in the timetable iff it can be
                purchased on-line and the Standard fare can be
                applied
         Output:
               Train number – Departure Time – Coach number –
                seat number – Exception description

Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007           13
BS1 Automaton

                                State 3
                               Available
                                                      State 5
                                                   Train Details
                                                                           State 6                   • No preconditions
                             Standard Fare            shown
                                                                        Authentication
                                                                                                     • 19 Interaction States
                                                                                                     • 14 scenarios
           State 2                          State 4                State 7
                                                                                   Failed
                                                                                         States 11
                                                                                                         • 1 successful
                                        Not Available              Booking
        Available Trains
                                        Standard Fare                          Authentication            • 13 exceptions
       State 1                         States 8
       Home                   Other Exception
                                 Scenarios



                          State 9
                        Not Available
                           Trains

                 States 10
            Incorrect
           Input data




Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                                                             14
Booking Service #2

         Input:
               Departure Station – Arrive Station – Date and
                Starting Time – Login – Password - NMax
         Behaviour:
               The system books one seat on the first available
                train solution listed in the timetable iff it can be
                purchased on-line, the Standard fare can be
                applied and it is in the first NMax listed solutions
         Output:
               Train number – Departure Time – Coach number –
                seat number – Exception description

Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007           15
BS2 realisation

   Problem:
         The interaction model need to maintain some
          information about the current state of the interaction
               Number of done searching attempts
         Some pieces of logic must be added to the automaton
               If the number of attempts N is equal to the number of
                maximum allowed attempts NMax then go to an exception
                state else decrease the departure time and retry
         2 possible solution:
               Put the logic in the automaton
               Put the logic in a Workflow


Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007            16
BS2 – Automaton solution
                                 State 3                State 5
                                                                                                   • An Automaton Variable N is
                                                                                                   managed, representing the
                                                                         State 6
                                Available            Train Details    Authentication
                              Standard Fare            Showed
                                                                                                   actual attempt number.
                                                         (1)
                                                   State 4
                                               Not Available          State 7
                                                                                       States 11
                                                                                      Failed
                                                                                                   • The value of Departure
                                                                                                   Time is decreased in State 4
                   State 2                     Standard Fare         Booking      Authentication
                  Available
                   Trains
                                                      N++
                                              (2)
        State 1                               State 12
        Home                                  Too Much
                                              Attempts
            N=0




• States 4 and 12 hthe State Identifier has
the same interface: the State Identifier can
discriminate between them by evaluating the
value of the Automaton Variable N:
      • N=NMax  State 12
      • N<NMax  State 4
  Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                                                            17
BS2* – Workflow Solution

                     (1)
                         Receive
                                                                     Implemented with BPEL
                                                                      Reuses the basic service
                       Request Train
                         Booking
                                                                  
                               N=0
                      (2)
                                                                      BS1
                         Invoke
                     Booking Service     BS1
                                                                     The other activities model
                                                                      the business logic of BS2
[ReplayBS =" NA Fare   Exc"       [ReplayBS ! = "NA Fare   Exc"
             &                                  Or
       N < =Nmax ]                         N >Nmax]

                                                                          Realised as BPEL directives
                            (3)
                                                                      
                                                                          or other Web Services
   (4)                                 (5)
   Modify (DepartHour )
                                           Reply
         & N++
                                       Train Booking




Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007                                            18
Discussion
   BS2, Automaton Solution
      Better performances
      Can reuse transition isolation mechanisms that could be
       implemented in the existing WA
      Larger Automaton
      Much effort in Automaton design and testing

   BS2*, Workflow Solution
      Easier to implement and test (for peoples that are skilled in
       workflow design!)
      Possibility to reuse existing services
      Transition isolation mechanisms should be implemented in the
       workflow
      Worst performances

Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007           19
Conclusions

   A tool supported process for wrapping based migration of
    functionalities of Web Application to Web Services has
    been proposed
   Reported case studies show the feasibility of the wrapper
    solution in real problems
   Comparisons between different possible solutions have
    been proposed
   Future Works:
         Support to existing RIAs
         Improvements of process steps in order to reduce effort
         Training of peoples in order to realise empirical studies for
          evaluation and comparison of the needed effort

Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007              20
Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007   21

Weitere ähnliche Inhalte

Ähnlich wie Turning Web Applications into Web Services by Wrapping Techniques

Building tomorrow's web with today's tools
Building tomorrow's web with today's toolsBuilding tomorrow's web with today's tools
Building tomorrow's web with today's toolsJames Pearce
 
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
 
The path towards pervasive computing
The path towards pervasive computingThe path towards pervasive computing
The path towards pervasive computingMichel Burger
 
Migrating Interactive Legacy Systems To Web Services
Migrating Interactive Legacy Systems To Web ServicesMigrating Interactive Legacy Systems To Web Services
Migrating Interactive Legacy Systems To Web ServicesPorfirio Tramontana
 
Complex End-to-End Testing
Complex End-to-End TestingComplex End-to-End Testing
Complex End-to-End TestingErika Barron
 
Mobile Web Network
Mobile Web NetworkMobile Web Network
Mobile Web Networkchenjennan
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Atlassian
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Atlassian
 
Asynchronous Mobile Web Services:
Asynchronous Mobile Web Services: Asynchronous Mobile Web Services:
Asynchronous Mobile Web Services: Dr. Fahad Aijaz
 
Component based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between RoutesComponent based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between RoutesIRJET Journal
 
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...Nathaniel Palmer
 
ESWC SS 2012 - Tuesday Keynote John Domingue: Services, Semantics and Linked ...
ESWC SS 2012 - Tuesday Keynote John Domingue: Services, Semantics and Linked ...ESWC SS 2012 - Tuesday Keynote John Domingue: Services, Semantics and Linked ...
ESWC SS 2012 - Tuesday Keynote John Domingue: Services, Semantics and Linked ...eswcsummerschool
 
Unit 3-SOA Technologies
Unit 3-SOA TechnologiesUnit 3-SOA Technologies
Unit 3-SOA Technologiesssuser3a47cb
 
Working with Data and Web Services in Microsoft Silverlight 2
Working with Data and Web Services in Microsoft Silverlight 2Working with Data and Web Services in Microsoft Silverlight 2
Working with Data and Web Services in Microsoft Silverlight 2goodfriday
 
Web 2.0 and the Geoweb Part 1: Web 2.0 Examples
Web 2.0 and the Geoweb Part 1: Web 2.0 ExamplesWeb 2.0 and the Geoweb Part 1: Web 2.0 Examples
Web 2.0 and the Geoweb Part 1: Web 2.0 ExamplesGovernment/CU Denver
 
MeasureWorks eFinancials - Best practices for a successfull mobile experienc...
MeasureWorks eFinancials  - Best practices for a successfull mobile experienc...MeasureWorks eFinancials  - Best practices for a successfull mobile experienc...
MeasureWorks eFinancials - Best practices for a successfull mobile experienc...MeasureWorks
 

Ähnlich wie Turning Web Applications into Web Services by Wrapping Techniques (20)

Building tomorrow's web with today's tools
Building tomorrow's web with today's toolsBuilding tomorrow's web with today's tools
Building tomorrow's web with today's tools
 
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
 
The path towards pervasive computing
The path towards pervasive computingThe path towards pervasive computing
The path towards pervasive computing
 
Migrating Interactive Legacy Systems To Web Services
Migrating Interactive Legacy Systems To Web ServicesMigrating Interactive Legacy Systems To Web Services
Migrating Interactive Legacy Systems To Web Services
 
Complex End-to-End Testing
Complex End-to-End TestingComplex End-to-End Testing
Complex End-to-End Testing
 
Mobile Web Network
Mobile Web NetworkMobile Web Network
Mobile Web Network
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 
Asynchronous Mobile Web Services:
Asynchronous Mobile Web Services: Asynchronous Mobile Web Services:
Asynchronous Mobile Web Services:
 
Component based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between RoutesComponent based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between Routes
 
Net Services
Net ServicesNet Services
Net Services
 
SOA patterns
SOA patterns SOA patterns
SOA patterns
 
Web servers
Web serversWeb servers
Web servers
 
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
 
ESWC SS 2012 - Tuesday Keynote John Domingue: Services, Semantics and Linked ...
ESWC SS 2012 - Tuesday Keynote John Domingue: Services, Semantics and Linked ...ESWC SS 2012 - Tuesday Keynote John Domingue: Services, Semantics and Linked ...
ESWC SS 2012 - Tuesday Keynote John Domingue: Services, Semantics and Linked ...
 
Unit 3-SOA Technologies
Unit 3-SOA TechnologiesUnit 3-SOA Technologies
Unit 3-SOA Technologies
 
UNIT 3 web iiiBCA.pptx
UNIT 3 web iiiBCA.pptxUNIT 3 web iiiBCA.pptx
UNIT 3 web iiiBCA.pptx
 
Working with Data and Web Services in Microsoft Silverlight 2
Working with Data and Web Services in Microsoft Silverlight 2Working with Data and Web Services in Microsoft Silverlight 2
Working with Data and Web Services in Microsoft Silverlight 2
 
Web 2.0 and the Geoweb Part 1: Web 2.0 Examples
Web 2.0 and the Geoweb Part 1: Web 2.0 ExamplesWeb 2.0 and the Geoweb Part 1: Web 2.0 Examples
Web 2.0 and the Geoweb Part 1: Web 2.0 Examples
 
MeasureWorks eFinancials - Best practices for a successfull mobile experienc...
MeasureWorks eFinancials  - Best practices for a successfull mobile experienc...MeasureWorks eFinancials  - Best practices for a successfull mobile experienc...
MeasureWorks eFinancials - Best practices for a successfull mobile experienc...
 

Mehr von Porfirio Tramontana

An Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfAn Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfPorfirio Tramontana
 
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Porfirio Tramontana
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationPorfirio Tramontana
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsPorfirio Tramontana
 
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Porfirio Tramontana
 
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Porfirio Tramontana
 
Web Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEWeb Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEPorfirio Tramontana
 
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Porfirio Tramontana
 
Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Porfirio Tramontana
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web ApplicationsPorfirio Tramontana
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Porfirio Tramontana
 
Improving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindImproving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindPorfirio Tramontana
 
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingTechniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingPorfirio Tramontana
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolPorfirio Tramontana
 
A GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingA GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingPorfirio Tramontana
 
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Porfirio Tramontana
 
Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Porfirio Tramontana
 
Using GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsUsing GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsPorfirio Tramontana
 
A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsPorfirio Tramontana
 
DynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionDynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionPorfirio Tramontana
 

Mehr von Porfirio Tramontana (20)

An Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfAn Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdf
 
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing Automation
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applications
 
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
 
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
 
Web Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEWeb Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSE
 
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
 
Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications
 
Improving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindImproving Usability of Web Pages for Blind
Improving Usability of Web Pages for Blind
 
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingTechniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications Testing
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA Tool
 
A GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingA GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application Testing
 
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
 
Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications
 
Using GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsUsing GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android Apps
 
A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android Applications
 
DynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionDynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application Comprehension
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

Turning Web Applications into Web Services by Wrapping Techniques

  • 1. Turning Web Applications into Web Services by Wrapping Techniques Giusy Di Lorenzo Anna Rita Fasolino Lorenzo Melcarne Porfirio Tramontana Valeria Vittorini Dipartimento di Informatica e Sistemistica University of Naples Federico II, Italy
  • 2. Motivation  With the diffusion of new paradigms and technological solutions for the Web (RIA and Ajax, SOA, …), existing Web Applications are rapidly becoming legacy  A strategic objective: to integrate existing Web applications with the new platforms  An Open Issue:  Turning Web applications functionalities into Web Services using systematic migration approaches based on Wrapping techniques Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 2
  • 3. Comparing Interaction paradigms… Web Applications Web Services Users seeing an HTML page, fill A Client party invokes a input fields in a form and submit service implemented by a them, or click on a link in the page. provider party, using a request Web Server answers by producing a message. HTML page containing output values The provider processes the and new input fields and command request and sends a response buttons that is rendered by the message with the obtained browser results. Req Resp Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 3
  • 4. Turning WA to WS  Turning Web applications functionalities into Web services  Transforming the original (non programmatic) user-oriented interface of the Web application into a programmatic interface that exposes the full functionality and data of the application and that can be suitable for:  Web Services  APIs (e.g. accessible via Ajax requests) Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 4
  • 5. Migration solutions  White Box  Invasive; they depend on the specific languages and technologies adopted on the server side of the Web Application  Black Box  Web Wrappers solutions  Baumgartner et al., 2004  Web Services returning output data of Web pages obtained via visual selection  Jiang and Stroulia 2004  Web Services returning output data of Web pages obtained via http request/response analysis  Canfora et al. 2006  Web Services executing functionalities of form based legacy system via wrappers Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 5
  • 6. Our Wrapper solution  The goal of our wrapper is to drive the Web Application during the execution of each possible interaction scenario associated with the use case to migrate, by providing it with the needed flow of http requests  The Wrapper behaviour must replicate all the possible behaviour of the user of the Web application in the execution of the functionality to migrate Application Server Web Wrapper Service Request Web Application Web Service Response Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 6
  • 7. Wrapper Architecture Application Server Wrapper State Discriminating Expression Identifier Automaton Web Browser Identified , Description Application Emulator Interaction State Current State Document Click or Submit Automaton HTML Page Engine Web Service Web Service Request Response • Http Unit acts as a Browser Emulator • A XPath Library (such as Jaxp) supports the Class Identifier • The behaviour of the wrapper for a given functionality to migrate is completely described in the corresponding Automaton Description Document Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 7
  • 8. The Model of the Interaction  A Finite State Automaton FSA= (S, T, A, Sin, Sfin) where:  S is the set of Interaction States; they may be:  Input States  Output States  I/O States  Exception States  A is the set of Actions performed by the user when an Interaction State occurs,  T is the set of Transitions between states,  Sin and Sfin are the Initial and Final states of the interaction. Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 8
  • 9. Non Deterministic finite State Automata Login and Access Login and Password Permitted Home Click ‘Login’ Login and Page Password Request Password ? Login and Access Password Denied What is the next State?  The next state depends on the internal logic or on the internal state of the legacy system.  Non Deterministic Finite State Automaton (NFA) is a finite state machine where for each pair of state and input symbol there may be several possible next states  The wrapper must know the list of the possible Next States of a given State • Possible successors of Password Request State are Access Permitted and Access Denied states  The wrapper must be able to identify the current state on the basis of the returned screen • Wrapper must discriminate among Access Permitted screen and Access Denied screen Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 9
  • 10. The proposed Migration process 1. Selection of the Web application functionality to be turned into a Web service, based on:  Business Value  Potential reusability  Cohesion and State Independence 2. Reverse Engineering of the Web application User Interface 1. Identification of execution scenarios 2. Characterisation of execution scenario steps 3. Interaction Model design 1. Evaluation of alternative modelling solutions 2. XML-based design of the model 4. Wrapper Deploy and Validation Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 10
  • 11. The Migration Toolkit Web Pages Candidate Features Interaction states and discriminating This toolkit Classified Discriminating expressions Interaction supports the Page pages Expression State migration Collector Generator Repository process Page steps Classification Interaction model knowledge Discriminating needed to Expressions produce the Automaton Classified pages Page Automaton XML Automaton description description Designer Classifier needed by the Wrapper Web Pages Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 11
  • 12. Case studies  Based on a real italian Web Application for train journeys planning and booking  3 case studies have been carried out n order to:  Explore the feasibility of the wrapping approach  Explore the different migration alternatives  Service BS1 realise a simple train booking service  Services BS2 and BS2* realise a more complex service in two different manners Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 12
  • 13. Booking Service #1  Input:  Departure Station – Arrive Station – Date and Starting Time – Login – Password  Behaviour:  The system books one seat on the first available train solution listed in the timetable iff it can be purchased on-line and the Standard fare can be applied  Output:  Train number – Departure Time – Coach number – seat number – Exception description Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 13
  • 14. BS1 Automaton State 3 Available State 5 Train Details State 6 • No preconditions Standard Fare shown Authentication • 19 Interaction States • 14 scenarios State 2 State 4 State 7 Failed States 11 • 1 successful Not Available Booking Available Trains Standard Fare Authentication • 13 exceptions State 1 States 8 Home Other Exception Scenarios State 9 Not Available Trains States 10 Incorrect Input data Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 14
  • 15. Booking Service #2  Input:  Departure Station – Arrive Station – Date and Starting Time – Login – Password - NMax  Behaviour:  The system books one seat on the first available train solution listed in the timetable iff it can be purchased on-line, the Standard fare can be applied and it is in the first NMax listed solutions  Output:  Train number – Departure Time – Coach number – seat number – Exception description Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 15
  • 16. BS2 realisation  Problem:  The interaction model need to maintain some information about the current state of the interaction  Number of done searching attempts  Some pieces of logic must be added to the automaton  If the number of attempts N is equal to the number of maximum allowed attempts NMax then go to an exception state else decrease the departure time and retry  2 possible solution:  Put the logic in the automaton  Put the logic in a Workflow Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 16
  • 17. BS2 – Automaton solution State 3 State 5 • An Automaton Variable N is managed, representing the State 6 Available Train Details Authentication Standard Fare Showed actual attempt number. (1) State 4 Not Available State 7 States 11 Failed • The value of Departure Time is decreased in State 4 State 2 Standard Fare Booking Authentication Available Trains N++ (2) State 1 State 12 Home Too Much Attempts N=0 • States 4 and 12 hthe State Identifier has the same interface: the State Identifier can discriminate between them by evaluating the value of the Automaton Variable N: • N=NMax  State 12 • N<NMax  State 4 Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 17
  • 18. BS2* – Workflow Solution (1) Receive  Implemented with BPEL Reuses the basic service Request Train Booking  N=0 (2) BS1 Invoke Booking Service BS1  The other activities model the business logic of BS2 [ReplayBS =" NA Fare Exc" [ReplayBS ! = "NA Fare Exc" & Or N < =Nmax ] N >Nmax] Realised as BPEL directives (3)  or other Web Services (4) (5) Modify (DepartHour ) Reply & N++ Train Booking Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 18
  • 19. Discussion  BS2, Automaton Solution Better performances Can reuse transition isolation mechanisms that could be implemented in the existing WA Larger Automaton Much effort in Automaton design and testing  BS2*, Workflow Solution Easier to implement and test (for peoples that are skilled in workflow design!) Possibility to reuse existing services Transition isolation mechanisms should be implemented in the workflow Worst performances Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 19
  • 20. Conclusions  A tool supported process for wrapping based migration of functionalities of Web Application to Web Services has been proposed  Reported case studies show the feasibility of the wrapper solution in real problems  Comparisons between different possible solutions have been proposed  Future Works:  Support to existing RIAs  Improvements of process steps in order to reduce effort  Training of peoples in order to realise empirical studies for evaluation and comparison of the needed effort Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 20
  • 21. Porfirio Tramontana – WCRE 2007 – Vancouver, BC – 10/30/2007 21