SlideShare a Scribd company logo
1 of 25
Migrating Interactive Legacy
 Systems To Web Services

              Porfirio Tramontana
              Anna Rita Fasolino
               Giovanni Frattolillo
        Dipartimento di Informatica e Sistemistica
           University of Naples Federico II, Italy


                 Gerardo Canfora
    RCOST – Research Centre on Software Technology
         University of Sannio, Benevento, Italy
                                                     1
Motivation

   Growing interest is currently being devoted to Service Oriented
    Architectures
       IDC estimates that worldwide spending on Web services-based
        software projects will reach $11 billion by 2008, compared to $1.1 billion
        in 2003 (Neal Leavitt, IEEE Computer, November 2004)

   Possible approaches for obtaining Web Services
       Developing them from scratch
       Reusing existing software

   Legacy Systems pervade fundamental productive activities:
       Public administration, bank, tourism, customer relationships, …

   A relevant issue: migrating legacy system functionalities toward
    Web Services

                                                              2
Three basic questions …
     1.   What to expose as a Web Service?
     2.   When the migration is convenient?
             G. Lewis, E. Morris and D. Smith have approached this question
              in the yesterday tutorial and in the previous talk …
             S. Tilley, J. Gerdes, T. Hamilton, S. Huang, H. Muller, K. Wong
              also outline the challenges inherent in migrating to Web services
     3.   Which approaches for the migration?
             Sneed and Sneed present a tool supported process to make
              accessible selected sections of legacy code as Web Services;
             E. Stroulia, M. El-Ramly, P. Sorenson propose methods based on
              the analysis of screen features and on the tracing of user
              interactions to reverse engineering interfaces of an interactive
              legacy system in order to support the migration

                       A specific problem:
the migration of interactive legacy system functionalities toward
                          Web Services          3
Comparing Interaction paradigms…

Form based Interactive Systems                  Web Services
Users query the system by inputting    A Client party invokes a
data and sending commands, by          service implemented by a
interacting with the user interface.   provider party, using a request
                                       message.

System answers by producing a          The provider processes the
response screen, containing output     request and sends a response
values and new input fields and        message with the obtained
command buttons                        results.

                                         Req

                                         Resp

                   Which approaches for the migration?
                            Wrapping             4
The Wrapper

   The goal of the wrapper is to drive the legacy system during the
    execution of each possible interaction scenario associated with
    the use case to migrate, by providing it with the needed flow of
    data and commands.
   The wrapped legacy system use case is accessible as a Web
    Service

                          Application Server
         Web
                             Wrapper
        Service
        Request
                                   Legacy System

        Web
       Service
       Respons
          e
                                                  5
A key requirement of the Wrapper

   The wrapper must be reusable for migrating different use
    cases, so…

   The wrapper behavior requested for each use case will
    not be embedded in the wrapper…

   But it will be separately specified for each use case

   A key question: obtaining for each use case a complete
    model of the interaction between the legacy system and
    the user

   A Reverse engineering problem!
                                                6
Modelling Interactions between User
        and Legacy System


                            Input: 3


                Input: /
                                       Input: 4




                                       Input: Quit
An example: a scenario from the
“Division” use case of a legacy
calculator program


                                        7
The Model of the Interaction
   A Finite State Automaton FSA= (S, T, A, Sin, Sfin)
    where:
       S is the set of Interaction 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.


                   +   First     A1   Second    A2
            Menu                                                quit
                       Operand        Operand          Result          Menu
                       Request        Request




Initial State                                                                 Final State
                Interaction States       Transitions      Actions
                                                                  8
A problem
                                                              Access
                           Login               Password       Permitted
                 Login             Password
                 Request           Request    Password
                                                          ?
                                               Password        Access
                                                               Denied


                           What the next State?
   The next state depends on the internal logic or on the internal state of
    the legacy system.
   A solution: Non Deterministic Finite State Automata
      a 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
                                                                 9
Another Wrapper Requirement
   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



                                                              Access
                                                Password     Permitted
                    Login    Login   Password
                   Request            Request
                                                  Password
                                                               Access
                                                               Denied


                   Same Action, but different Transitions!

                                                                   10
Screen Templates
 A description of Legacy Screen is needed for the identification: Screen
Templates
    A Screen Template is a collection of Fields:

         Labels;

         Input Fields;

         Output Fields;

    Each field has a Location on the Screen. Location may be defined as a:

         Fixed Location, i.e. coordinates of the field;

         Relative Location, i.e. distance from another field.


                                                                                  Initial Cursor Position

                       Fixed Location
                   x                         1                                                     *
                   y
                                              Locati on    1      *    Field     *            Screen Template
                                                                  1 optional
                                                                                          size
                  Relati ve Location
                                        *
                 offset x
                 offset y


                                                   Label               Output Fi el d         Input Fiel d
                                            Regul ar Expression       Value                 Value
                                                                                                       11
Characterising Interaction States
        An Interaction State is characterised by                                                           a
         Screen Template and a set of actions                                                              to
         perform on its fields, causing transitions                                                        to
         other Interaction States
   User Actions may be:                     Screen T empl ate                                       Set Input Field
                                                                                                   Value
      Set Input Field Actions                             1

                                         *                 *
      Get Output Field Actions                  Interaction State   1   1..*   User Action         Get Output Field
                                                                                                   Value
      Submit Command Actions      +to
                                                               *
                                                   +from                                            Submit
                                  Transi ti on                                                     Command




                                                                                              12
Wrapper Architecture
         Application Server
         Wrapper
                                                  State              Screen
                                                Identifier          Template
                                                                                    FSA
Legacy       Terminal                                              Description
                                       Identified    Legacy Screen,              Description
System       Emulator           Interaction State    Current State
                                                                                 Document
                    Actions                    Automaton
              Legacy Screen                     Engine


                              Web Service               Web Service
                                 Request                Response




                                                                      13
Terminal Emulator

                               Legacy     Terminal
                               System     Emulator
                                                 Actions        Automaton
                                           Legacy Screen         Engine


   The Terminal Emulator component is
    responsible for the dialogue between the
    Wrapper and the Legacy System terminal
       Different implementations of the Terminal Emulator
        are needed for different Legacy System Terminals
            Stream Oriented terminals;
            Block oriented terminals;
            Web Applications.
                                                           14
State Identifier
       The      State      Identifier           State
        component is responsible               Identifier
                                                                    Screen
                                                                   Template
                                                                                   FSA
        for the identification of the               Legacy Screen,
                                                                  Description
                                                                                Description
        Interaction State reached                   Current State
                                                                                Document
        by the Legacy System                   Automaton
                                                Engine
           It has to match the current screen of the legacy system with the
            Screen Templates associated with potentially reachable
            Interaction States
           The Screen Templates descriptions are part of the Automaton
            Description Document
   Moreover, the State Identifier
           localises Labels
           localises Input Fields
           Localises Output Fields and read their values
                                                                     15
Automaton Engine
   The Automaton Engine is responsible for interpreting the FSA
    associated with a given service offered by the legacy system. It:
         Sends commands to and receives screens from the Terminal Emulator
         Queries the State Identifier about the identification of the Current
          Interaction State
         Interprets the request message received from the application server
         Builds the response message and sends it to the application server
         Manages Automaton Variables (i.e. temporary variables needed to save
          intermediate results of the execution of the Automaton)
                                                              NOT (Current Interaction State = Final State)




                          Start Activity                                 Interpretation Activity

         do/ Get Request Message                           do/ Get Output Field Values                        Current Interaction
                                                           do/ Set/Update Automaton Variables                                               Final Activity
         do/ Init Automaton Variables                                                                         State = Final State
         do/ Start Legacy System                           do/ Set Input Field Values
                                                                                                                                    do/ Build Response Message
         event Legacy Screen Returned/ Get Legacy Screen   do/ Submit Transition Command
         do/ Identify Current Interaction State            event Legacy Screen Returned/ Get Legacy Screen
                                                           do/ Identify Current Interaction State




                                                                                                                             16
Finite State Automaton Description
                                                       Document
                                                                       Fixed Location
                                                                                                                                              Relative Location
                                                                                                                                                                  <automa>                                 <screen id="GoToHeader">
                                                                                                                 Location                  offset x
                                                                   x
                                                                                                                                           offset y               <automa-states>                           <size width="80" height="25"/>
                                                                   y
Transition
                                                                                                                 1         1           *                                                                    <simple-field id="GoToHeaderId"
                               +to                                                                                               1
                                                                                                                                                                  ….                                       optional="false" input="false">
                                          *                                 1        Initial Cursor Position
             +from
                                  *                                                                                      *
                                                                                                                                                 Label
                                                                                                                                                                                                               <fixed-location>
                     *     Interaction State                               Screen T emplate
                                                                                          *
                                                                                                             *
                                                                                                                     Field                                         <state id="go_to_header" type="automa"         <point x="0" y="22"/>
                                                                                                                                     Regular Expression
                                      1
                                              1                                                                                                                   screen="PineGoToHeaderScreen">               </fixed-location>
                                  1       1
                                                                                                                                                                        <description>State                     <content pattern="Message number to
                                                                            *
                                                                                                                                                                        </description>                     jump to" length="25"/>
                              1                                                 Get Output             Get
                                                                                                                                                                        <layout>                            </simple-field>
                                                                                                                 Output Fi eld         Input Fi eld
                                                                                Field Action                                                                              <location x="1" y="2"/>           <simple-field id="prompt" optional="true"
                                                                                                   *         *
                 Submit Com mand
                                                                                                                                             1                            <size width="8" height="2"/>     input="true">
                     Action
                 Command
                                                                                                                                                                        </layout>                               <fixed-location>
                                                                                                                               Set                                      <actions>                                   <point x="25" y="22"/>
                                                                   *                                                                                                       <set-fields-action>                  </fixed-location>
                                                       Set/Update Automaton
                                                                                               *                       *                                                     <field ref="prompt">              <content pattern="" length="5"/>
                                                                                                   Set Input Field
                               Response                    Variable Action
                                                                                                        Action
                                                                                                                                                                                <data ref="/root/header"/>     <focus order="1">
                                                      Expression
                                                                                               Expression                                                                    </field>                           <advance-key id="ENTER"/>
                                     1
                                  Build                              *                                                                                                     </set-fields-action>                </focus>
                                                                                                       *
    Request                          1                         Set/Update            Get                                                                                </actions>                          </simple-field>
    1                    Build Response Action                                                                                                                          <next-states>                       <caret-location>
   Get
                                              1 Get                    1
                                                                                                                                                                           <next-state ref="bad_header"> <fixed-location>
                                                           *
      1          1                                                               *                                                                                      </next-state>                           <point x="28" y="22"/>
   Init Action                                          Automaton Variable
                                                                                                                                                                           <next-state ref="header">         </fixed-location>
                                                  *                                                                                                                    </next-state>                        </caret-location>
                                                                                                                                                                       </next-states>                      </screen>
                                          Set
                                                                                                                                                                       </state>
                                                                                                                                                                                                           …


                 Automaton Description
                                                                                                                                                                                                          </automa-states>
                                                                                                                                                                                                          </automa>

                 Document UML model
                                                                                                                                                                            An excerpt of an Automaton
                                                                                                                                                                              Description Document

                                                                                                                                                                                                            17
A Case study
   A migration case study has been carried out
    according to a process including the following
    phases:
       Identification, i.e. reverse engineering of the
        interaction model;
       Design, i.e. defining the FSA describing the Wrapper
        behaviour;
       Implementation, i.e. realisation of the XML FSA
        Description Document;
       Web service deploy, i.e. deployment of the wrapper in
        the context of an application server;
       Validation, i.e. testing of the scenarios of the migrated
        use case
                                                 18
A Case Study

   Legacy system: Pine (ver. 4.64)
       client mail software, that allows a user to read, compose and
        manage e-mail messages from an existing message box.
   Pine is a form based legacy system based on stream
    oriented terminals.
       Usually, Pine is accessible via the Telnet protocol.
   We submitted to the migration process the Get Message
    use case that allows the owner of a mailbox to get the text
    of a specific e-mail message contained in a specific
    mailbox folder.
                          Use case:        Get Message
                          Preconditions    None
                          Input            Login, Password, Folder, Message Number
                          Output           Date, From, To, cc, Subject, Body, Exception
                          Postconditions   None
                                                                     19
The Automaton: graphical view
                     Login
           1                        2         Password        4                                                  Folder
                                                                                   g                  5                         8                       9
      Authentication       Authentication Menu               Main                                                                          j
                                                                                                  Go To Folder             Folder Open            Go To Message
     Menu (Ask Login)        (Ask Password)                  Menu

                                                                                       Folder
                       Password
                                                                                                           Folder                   Mess.Numb.             Mess.Numb.
                                  3
                           Authentication                                           6                  7                       10
                                                                                                                                                        12
                           Menu (Incorrect                        q            Folder Not         Empty Folder            Bad Message
                                                                                                                                                      Header
                             Password)                                           Found                                      Number
                                                    17
                                              Exit Confirm
                    <Control>C                                                              q                                   <enter>
                                              (Folder Not                                                                                            >
                                                                             18
                                                Found)                                                                    11
                                 16                                    Exit Confirm                                                             13
                                                                                                                     Folder Open
                         Main Menu (User                              (Empty Folder)                                                       Message First
                                                                                                                    (Bad Message
                          not admitted)                                                                                                       Page
                                                                                                       q              Number)
                                                                                        19
                                       q
                                                              y                    Exit Confirm                                                             <space>
                                            21                                    (Bad Message
                                                         y                                                                       <space>
                                      Exit Confirm                       y          Number)
                                       (User not                                                                                                         14
7 different scenarios:                 admitted)
                                                         y                     y
                                                                                        20             q
                                                                                                                     15
                                                                                                                  Message End
                                                                                                                                                    Message Mid
                                                                                  Exit Confirm                                                         Page
1)     One Page Message                                                          (Read Message)                                         <space>                   <space>
2)     Read
       Two Pages Message
       Read
More than two Pages Message Read
Bad Message Number
Empty Folder
Folder Not Found
7)     Incorrect Password                                                                                                 20
The Automaton: a tabular specification
    Interactio      Interaction State Description                                 Actions                                  Submit       Next
    n State ID                                                                                                            Command       State
    START                                           Init (Login, Password, Folder, Message Number)                                  1
    1            Authentication Menu (Ask Login)    Set Input Field: Login                                            <Enter>       2
    2            Authentication Menu (Ask           Set Input Field: Password                                         <Enter>       3,4
                 Password)
    3            Authentication Menu (Incorrect     Set Automaton Variable: Exception = “Incorrect Login and          <Control>C    16
                 Password)                          Password”
    4            Main Menu                                                                                            g             5
    5            Go To Folder                       Set Input Field: Folder                                           <Enter>       6,7,8
    6            Folder Not Found                   Set Automaton Variable: Exception = “Folder not found”            q             17
    7            Empty Folder                       Set Automaton Variable: Exception = “No messages in the folder”   q             18
    8            Folder Open                                                                                          j             9
    9            Go To Message                      Set Input Field: Message Number                                   <Enter>       10,12
    10           Bad Message Number                 Set Automaton Variable: Exception = “Incorrect Message Number”    <Enter>       11
    11           Folder Open (Message not found)                                                                      q             19
    12           Header                                                                                               >             13
    13           Message First Page                 Get Output Fields: (Date, From, To, Cc, subject,, Body);          <Space>       14,15
                                                    Set Automaton Variables: (Output: (Date, From, To, Cc, subject,
                                                    Body))
    14           Message Mid Page                   Get Output Field: Body                                            <Space>       14,15
                                                    Update Automaton Variable: Body = Body + Output:Body
    15           Message End                        Get Output Field: Body                                            q             20
                                                    Update Automaton Variable: Body = Body + Output:Body
    16           Main Menu (User not admitted)                                                                        q             21
    17           Exit Confirm (Folder Not Found)                                                                      y             END
    18           Exit Confirm (Empty Folder)                                                                          y             END
    19           Exit Confirm (No Message)                                                                            y             END
    20           Exit Confirm (Read Message)                                                                          y             END
    21           Exit Confirm (User not admitted)                                                                     y             END


                                                                                                                          21
    END                                             Build Response: (Date, From, To, Cc, Subject, Body, Exception)
Testing Strategy
       A Test Suite comprehending 7 Test Cases had
        been selected in order to cover the 7 linear
        independent paths individuated on the FSA
    TC#    TC Description                     Interaction State Sequence
    1      One Page Message Read              S-1-2-4-5-8-9-12-13-15-20-E

    2      Two Pages Message Read             S-1-2-4-5-6-9-12-13-14-15-20-E
    3      More Than Two Pages Message Read   S-1-2-4-5-8-9-12-13-14-14-15-16-21-E
    4      Bad Message Number                 S-1-2-4-5-8-9-10-11-19-E

    5      Empty Folder                       S-1-2-4-5-7-18-E

    6      Folder Not Found                   S-1-2-4-5-6-17-E

    7      Incorrect Password                 S-1-2-3-16-17-E




         We noticed that all the 7 scenarios of the
          migrated use case had been covered by the
          selected Test Suite                 22
Conclusions

   A method and a tool supporting the wrapping of
    interactive legacy system have been presented
   A     preliminary   experiment   showed     the
    effectiveness of the approach
       A more detailed description of the potentialities of the
        tool and of the experiment that have been carried out
        will be presented in the Tool Demo Session after the
        lunch!
   Many ideas for future works arises …

                                                23
Open problems and future works

   Definition of criteria for identifying migrable use cases
   Exploring the feasibility of the approach for the migration of different
    categories of legacy systems:
        Legacy system using block oriented terminals
        Legacy Web Applications
   Defining and validating reverse engineering approaches     for
    obtaining the FSA specification (in particular Screen Template
    description)
        Concept Analysis approaches
        Feature Selection approaches
   Exploring the scalability of the approach for more complex
    functionalities to migrate
        Identification of elementary functionalities to be migrated
        Orchestration of migrated functionalities obtaining complex services


                                                              24
25

More Related Content

What's hot

What Is Functional Testing?
What Is Functional Testing?What Is Functional Testing?
What Is Functional Testing?QA InfoTech
 
Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineeringAlonzee Tash
 
User interface design(sommerville) bangalore university
User interface design(sommerville) bangalore universityUser interface design(sommerville) bangalore university
User interface design(sommerville) bangalore universityJaisha Shankar
 
Chapter 2 software development life cycle models
Chapter 2 software development life cycle modelsChapter 2 software development life cycle models
Chapter 2 software development life cycle modelsdespicable me
 
Unit4 Software Engineering Institute (SEI)’s Capability Maturity Model (CMM) ...
Unit4 Software Engineering Institute (SEI)’sCapability Maturity Model (CMM)...Unit4 Software Engineering Institute (SEI)’sCapability Maturity Model (CMM)...
Unit4 Software Engineering Institute (SEI)’s Capability Maturity Model (CMM) ...Reetesh Gupta
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software EngineeringSatishDabhi1
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introductionPiyush Gogia
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 
Software QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaSoftware QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaShamain Peiris
 
Iterative Incremental development
Iterative Incremental developmentIterative Incremental development
Iterative Incremental developmentOliver Schreck
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testingpingkapil
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringAli Raza
 

What's hot (20)

Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
What Is Functional Testing?
What Is Functional Testing?What Is Functional Testing?
What Is Functional Testing?
 
Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineering
 
Testing Best Practices
Testing Best PracticesTesting Best Practices
Testing Best Practices
 
Dynamic Testing
Dynamic TestingDynamic Testing
Dynamic Testing
 
User interface design(sommerville) bangalore university
User interface design(sommerville) bangalore universityUser interface design(sommerville) bangalore university
User interface design(sommerville) bangalore university
 
Chapter 2 software development life cycle models
Chapter 2 software development life cycle modelsChapter 2 software development life cycle models
Chapter 2 software development life cycle models
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Unit4 Software Engineering Institute (SEI)’s Capability Maturity Model (CMM) ...
Unit4 Software Engineering Institute (SEI)’sCapability Maturity Model (CMM)...Unit4 Software Engineering Institute (SEI)’sCapability Maturity Model (CMM)...
Unit4 Software Engineering Institute (SEI)’s Capability Maturity Model (CMM) ...
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software Engineering
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Software QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath DarshanaSoftware QA Fundamentals by Prabhath Darshana
Software QA Fundamentals by Prabhath Darshana
 
QA in an Agile Environment
QA in an Agile EnvironmentQA in an Agile Environment
QA in an Agile Environment
 
Iterative Incremental development
Iterative Incremental developmentIterative Incremental development
Iterative Incremental development
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testing
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
 

Viewers also liked

Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.Hassan Nasser
 
Organizacion de la Escuela de Salud
Organizacion de la Escuela de SaludOrganizacion de la Escuela de Salud
Organizacion de la Escuela de SaludPedro Huaylinos
 
El destete temporal para mejorar eficiencia reproductiva en rebanos doble pro...
El destete temporal para mejorar eficiencia reproductiva en rebanos doble pro...El destete temporal para mejorar eficiencia reproductiva en rebanos doble pro...
El destete temporal para mejorar eficiencia reproductiva en rebanos doble pro...Viateca
 
IDG.tv 2014
IDG.tv 2014IDG.tv 2014
IDG.tv 2014idgsms
 
Diarios digitales, Noticias 24 y el Noticiero Digital
Diarios digitales, Noticias 24 y el Noticiero Digital Diarios digitales, Noticias 24 y el Noticiero Digital
Diarios digitales, Noticias 24 y el Noticiero Digital Leibys Alvarez
 
What's that creature living in my cloud?
What's that creature living in my cloud?What's that creature living in my cloud?
What's that creature living in my cloud?Alexandra Richards
 
Web 2.0 y computación en la nube
Web 2.0 y computación en la nube Web 2.0 y computación en la nube
Web 2.0 y computación en la nube luisa_morales53973
 
Proyecto de ortografía. erick y william
Proyecto de ortografía. erick y williamProyecto de ortografía. erick y william
Proyecto de ortografía. erick y williamAlexanderUC
 
Tutorial stupeflix studio
Tutorial stupeflix studioTutorial stupeflix studio
Tutorial stupeflix studiosaraibarbudo
 
Nachhaltigkeit im Büro - Blau machen im Green Office
Nachhaltigkeit im Büro - Blau machen im Green OfficeNachhaltigkeit im Büro - Blau machen im Green Office
Nachhaltigkeit im Büro - Blau machen im Green OfficeRalph J. Schiel
 
Presentación Dulce Tentación
Presentación Dulce Tentación Presentación Dulce Tentación
Presentación Dulce Tentación Vane Rodriguez
 
Recent advances on low-rank and sparse decomposition for moving object detection
Recent advances on low-rank and sparse decomposition for moving object detectionRecent advances on low-rank and sparse decomposition for moving object detection
Recent advances on low-rank and sparse decomposition for moving object detectionActiveEon
 
Guia seleccion lecturas verano 2014 cp san miguel
Guia seleccion lecturas verano 2014 cp san miguelGuia seleccion lecturas verano 2014 cp san miguel
Guia seleccion lecturas verano 2014 cp san miguelMariona Martinez Dorado
 

Viewers also liked (20)

Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
 
Organizacion de la Escuela de Salud
Organizacion de la Escuela de SaludOrganizacion de la Escuela de Salud
Organizacion de la Escuela de Salud
 
El destete temporal para mejorar eficiencia reproductiva en rebanos doble pro...
El destete temporal para mejorar eficiencia reproductiva en rebanos doble pro...El destete temporal para mejorar eficiencia reproductiva en rebanos doble pro...
El destete temporal para mejorar eficiencia reproductiva en rebanos doble pro...
 
MAS POR MENOS: El Juego!. Gamificación y Gestión
MAS POR MENOS: El Juego!. Gamificación y GestiónMAS POR MENOS: El Juego!. Gamificación y Gestión
MAS POR MENOS: El Juego!. Gamificación y Gestión
 
IDG.tv 2014
IDG.tv 2014IDG.tv 2014
IDG.tv 2014
 
Diarios digitales, Noticias 24 y el Noticiero Digital
Diarios digitales, Noticias 24 y el Noticiero Digital Diarios digitales, Noticias 24 y el Noticiero Digital
Diarios digitales, Noticias 24 y el Noticiero Digital
 
Ppt virus
Ppt virusPpt virus
Ppt virus
 
What's that creature living in my cloud?
What's that creature living in my cloud?What's that creature living in my cloud?
What's that creature living in my cloud?
 
Web 2.0 y computación en la nube
Web 2.0 y computación en la nube Web 2.0 y computación en la nube
Web 2.0 y computación en la nube
 
Proyecto de ortografía. erick y william
Proyecto de ortografía. erick y williamProyecto de ortografía. erick y william
Proyecto de ortografía. erick y william
 
Tutorial stupeflix studio
Tutorial stupeflix studioTutorial stupeflix studio
Tutorial stupeflix studio
 
Le tabac
Le tabacLe tabac
Le tabac
 
Nachhaltigkeit im Büro - Blau machen im Green Office
Nachhaltigkeit im Büro - Blau machen im Green OfficeNachhaltigkeit im Büro - Blau machen im Green Office
Nachhaltigkeit im Büro - Blau machen im Green Office
 
Presentación Dulce Tentación
Presentación Dulce Tentación Presentación Dulce Tentación
Presentación Dulce Tentación
 
Recent advances on low-rank and sparse decomposition for moving object detection
Recent advances on low-rank and sparse decomposition for moving object detectionRecent advances on low-rank and sparse decomposition for moving object detection
Recent advances on low-rank and sparse decomposition for moving object detection
 
Search Engine Optimization (SEO) mit Sitecore
Search Engine Optimization (SEO) mit Sitecore Search Engine Optimization (SEO) mit Sitecore
Search Engine Optimization (SEO) mit Sitecore
 
Guia seleccion lecturas verano 2014 cp san miguel
Guia seleccion lecturas verano 2014 cp san miguelGuia seleccion lecturas verano 2014 cp san miguel
Guia seleccion lecturas verano 2014 cp san miguel
 
Limpieza de pozo
Limpieza de pozoLimpieza de pozo
Limpieza de pozo
 
Percusión de caja torácica
Percusión de caja torácicaPercusión de caja torácica
Percusión de caja torácica
 

Similar to Migrating Interactive Legacy Systems To Web Services

Turning Web Applications into Web Services by Wrapping Techniques
Turning Web Applications into Web Services by Wrapping TechniquesTurning Web Applications into Web Services by Wrapping Techniques
Turning Web Applications into Web Services by Wrapping TechniquesPorfirio Tramontana
 
Building a multi touch enabled windows 7 point of sale system
Building a multi touch enabled windows 7 point of sale systemBuilding a multi touch enabled windows 7 point of sale system
Building a multi touch enabled windows 7 point of sale systemChris Eargle
 
SOA Difference FAQs
SOA Difference FAQsSOA Difference FAQs
SOA Difference FAQsUmar Ali
 
Osi model
Osi modelOsi model
Osi modelOnline
 
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009Vincenzo Iozzo
 
Scalability and Reliability in the Cloud
Scalability and Reliability in the CloudScalability and Reliability in the Cloud
Scalability and Reliability in the Cloudgmthomps
 
A Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise ApplicationsA Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise Applicationsruyalarcon
 
Dutch PHP Conference 2015 - The quest for global design principles
Dutch PHP Conference 2015 - The quest for global design principlesDutch PHP Conference 2015 - The quest for global design principles
Dutch PHP Conference 2015 - The quest for global design principlesMatthias Noback
 
Static Software Watermarking
Static Software WatermarkingStatic Software Watermarking
Static Software WatermarkingJames Hamilton
 
Scaling mobile dev teams
Scaling mobile dev teams Scaling mobile dev teams
Scaling mobile dev teams Priyank Gupta
 
The use of Symfony2 @ Overblog
The use of Symfony2 @ OverblogThe use of Symfony2 @ Overblog
The use of Symfony2 @ OverblogXavier Hausherr
 
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker IdentityFederation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker IdentityCA API Management
 
13th Symposium of Association of Anti Virus Asia Researchers (AAVAR 2010) con...
13th Symposium of Association of Anti Virus Asia Researchers (AAVAR 2010) con...13th Symposium of Association of Anti Virus Asia Researchers (AAVAR 2010) con...
13th Symposium of Association of Anti Virus Asia Researchers (AAVAR 2010) con...Aditya K Sood
 
Single sign-on Across Mobile Applications from RSAConference
Single sign-on Across Mobile Applications from RSAConferenceSingle sign-on Across Mobile Applications from RSAConference
Single sign-on Across Mobile Applications from RSAConferenceCA API Management
 
iPhone Developer Summit West
iPhone Developer Summit WestiPhone Developer Summit West
iPhone Developer Summit Westjasonc411
 
Zookeeper big sonata
Zookeeper  big sonataZookeeper  big sonata
Zookeeper big sonataAnh Le
 

Similar to Migrating Interactive Legacy Systems To Web Services (20)

Turning Web Applications into Web Services by Wrapping Techniques
Turning Web Applications into Web Services by Wrapping TechniquesTurning Web Applications into Web Services by Wrapping Techniques
Turning Web Applications into Web Services by Wrapping Techniques
 
Building a multi touch enabled windows 7 point of sale system
Building a multi touch enabled windows 7 point of sale systemBuilding a multi touch enabled windows 7 point of sale system
Building a multi touch enabled windows 7 point of sale system
 
SOA Difference FAQs
SOA Difference FAQsSOA Difference FAQs
SOA Difference FAQs
 
Osi model
Osi modelOsi model
Osi model
 
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
 
Scalability and Reliability in the Cloud
Scalability and Reliability in the CloudScalability and Reliability in the Cloud
Scalability and Reliability in the Cloud
 
A Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise ApplicationsA Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise Applications
 
Dutch PHP Conference 2015 - The quest for global design principles
Dutch PHP Conference 2015 - The quest for global design principlesDutch PHP Conference 2015 - The quest for global design principles
Dutch PHP Conference 2015 - The quest for global design principles
 
Static Software Watermarking
Static Software WatermarkingStatic Software Watermarking
Static Software Watermarking
 
Scaling mobile dev teams
Scaling mobile dev teams Scaling mobile dev teams
Scaling mobile dev teams
 
The use of Symfony2 @ Overblog
The use of Symfony2 @ OverblogThe use of Symfony2 @ Overblog
The use of Symfony2 @ Overblog
 
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker IdentityFederation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
 
13th Symposium of Association of Anti Virus Asia Researchers (AAVAR 2010) con...
13th Symposium of Association of Anti Virus Asia Researchers (AAVAR 2010) con...13th Symposium of Association of Anti Virus Asia Researchers (AAVAR 2010) con...
13th Symposium of Association of Anti Virus Asia Researchers (AAVAR 2010) con...
 
Single sign-on Across Mobile Applications from RSAConference
Single sign-on Across Mobile Applications from RSAConferenceSingle sign-on Across Mobile Applications from RSAConference
Single sign-on Across Mobile Applications from RSAConference
 
Ch 2 network
Ch 2 networkCh 2 network
Ch 2 network
 
Thesis
ThesisThesis
Thesis
 
Mobile Agents
Mobile AgentsMobile Agents
Mobile Agents
 
Mobile Agents
Mobile AgentsMobile Agents
Mobile Agents
 
iPhone Developer Summit West
iPhone Developer Summit WestiPhone Developer Summit West
iPhone Developer Summit West
 
Zookeeper big sonata
Zookeeper  big sonataZookeeper  big sonata
Zookeeper big sonata
 

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

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

Recently uploaded

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Recently uploaded (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Migrating Interactive Legacy Systems To Web Services

  • 1. Migrating Interactive Legacy Systems To Web Services Porfirio Tramontana Anna Rita Fasolino Giovanni Frattolillo Dipartimento di Informatica e Sistemistica University of Naples Federico II, Italy Gerardo Canfora RCOST – Research Centre on Software Technology University of Sannio, Benevento, Italy 1
  • 2. Motivation  Growing interest is currently being devoted to Service Oriented Architectures  IDC estimates that worldwide spending on Web services-based software projects will reach $11 billion by 2008, compared to $1.1 billion in 2003 (Neal Leavitt, IEEE Computer, November 2004)  Possible approaches for obtaining Web Services  Developing them from scratch  Reusing existing software  Legacy Systems pervade fundamental productive activities:  Public administration, bank, tourism, customer relationships, …  A relevant issue: migrating legacy system functionalities toward Web Services 2
  • 3. Three basic questions … 1. What to expose as a Web Service? 2. When the migration is convenient?  G. Lewis, E. Morris and D. Smith have approached this question in the yesterday tutorial and in the previous talk …  S. Tilley, J. Gerdes, T. Hamilton, S. Huang, H. Muller, K. Wong also outline the challenges inherent in migrating to Web services 3. Which approaches for the migration?  Sneed and Sneed present a tool supported process to make accessible selected sections of legacy code as Web Services;  E. Stroulia, M. El-Ramly, P. Sorenson propose methods based on the analysis of screen features and on the tracing of user interactions to reverse engineering interfaces of an interactive legacy system in order to support the migration A specific problem: the migration of interactive legacy system functionalities toward Web Services 3
  • 4. Comparing Interaction paradigms… Form based Interactive Systems Web Services Users query the system by inputting A Client party invokes a data and sending commands, by service implemented by a interacting with the user interface. provider party, using a request message. System answers by producing a The provider processes the response screen, containing output request and sends a response values and new input fields and message with the obtained command buttons results. Req Resp Which approaches for the migration? Wrapping 4
  • 5. The Wrapper  The goal of the wrapper is to drive the legacy system during the execution of each possible interaction scenario associated with the use case to migrate, by providing it with the needed flow of data and commands.  The wrapped legacy system use case is accessible as a Web Service Application Server Web Wrapper Service Request Legacy System Web Service Respons e 5
  • 6. A key requirement of the Wrapper  The wrapper must be reusable for migrating different use cases, so…  The wrapper behavior requested for each use case will not be embedded in the wrapper…  But it will be separately specified for each use case  A key question: obtaining for each use case a complete model of the interaction between the legacy system and the user  A Reverse engineering problem! 6
  • 7. Modelling Interactions between User and Legacy System Input: 3 Input: / Input: 4 Input: Quit An example: a scenario from the “Division” use case of a legacy calculator program 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,  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. + First A1 Second A2 Menu quit Operand Operand Result Menu Request Request Initial State Final State Interaction States Transitions Actions 8
  • 9. A problem Access Login Password Permitted Login Password Request Request Password ? Password Access Denied What the next State?  The next state depends on the internal logic or on the internal state of the legacy system.  A solution: Non Deterministic Finite State Automata  a 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 9
  • 10. Another Wrapper Requirement  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 Access Password Permitted Login Login Password Request Request Password Access Denied Same Action, but different Transitions! 10
  • 11. Screen Templates  A description of Legacy Screen is needed for the identification: Screen Templates  A Screen Template is a collection of Fields:  Labels;  Input Fields;  Output Fields;  Each field has a Location on the Screen. Location may be defined as a:  Fixed Location, i.e. coordinates of the field;  Relative Location, i.e. distance from another field. Initial Cursor Position Fixed Location x 1 * y Locati on 1 * Field * Screen Template 1 optional size Relati ve Location * offset x offset y Label Output Fi el d Input Fiel d Regul ar Expression Value Value 11
  • 12. Characterising Interaction States  An Interaction State is characterised by a Screen Template and a set of actions to perform on its fields, causing transitions to other Interaction States  User Actions may be: Screen T empl ate Set Input Field Value  Set Input Field Actions 1 * *  Get Output Field Actions Interaction State 1 1..* User Action Get Output Field Value  Submit Command Actions +to * +from Submit Transi ti on Command 12
  • 13. Wrapper Architecture Application Server Wrapper State Screen Identifier Template FSA Legacy Terminal Description Identified Legacy Screen, Description System Emulator Interaction State Current State Document Actions Automaton Legacy Screen Engine Web Service Web Service Request Response 13
  • 14. Terminal Emulator Legacy Terminal System Emulator Actions Automaton Legacy Screen Engine  The Terminal Emulator component is responsible for the dialogue between the Wrapper and the Legacy System terminal  Different implementations of the Terminal Emulator are needed for different Legacy System Terminals  Stream Oriented terminals;  Block oriented terminals;  Web Applications. 14
  • 15. State Identifier  The State Identifier State component is responsible Identifier Screen Template FSA for the identification of the Legacy Screen, Description Description Interaction State reached Current State Document by the Legacy System Automaton Engine  It has to match the current screen of the legacy system with the Screen Templates associated with potentially reachable Interaction States  The Screen Templates descriptions are part of the Automaton Description Document  Moreover, the State Identifier  localises Labels  localises Input Fields  Localises Output Fields and read their values 15
  • 16. Automaton Engine  The Automaton Engine is responsible for interpreting the FSA associated with a given service offered by the legacy system. It:  Sends commands to and receives screens from the Terminal Emulator  Queries the State Identifier about the identification of the Current Interaction State  Interprets the request message received from the application server  Builds the response message and sends it to the application server  Manages Automaton Variables (i.e. temporary variables needed to save intermediate results of the execution of the Automaton) NOT (Current Interaction State = Final State) Start Activity Interpretation Activity do/ Get Request Message do/ Get Output Field Values Current Interaction do/ Set/Update Automaton Variables Final Activity do/ Init Automaton Variables State = Final State do/ Start Legacy System do/ Set Input Field Values do/ Build Response Message event Legacy Screen Returned/ Get Legacy Screen do/ Submit Transition Command do/ Identify Current Interaction State event Legacy Screen Returned/ Get Legacy Screen do/ Identify Current Interaction State 16
  • 17. Finite State Automaton Description Document Fixed Location Relative Location <automa> <screen id="GoToHeader"> Location offset x x offset y <automa-states> <size width="80" height="25"/> y Transition 1 1 * <simple-field id="GoToHeaderId" +to 1 …. optional="false" input="false"> * 1 Initial Cursor Position +from * * Label <fixed-location> * Interaction State Screen T emplate * * Field <state id="go_to_header" type="automa" <point x="0" y="22"/> Regular Expression 1 1 screen="PineGoToHeaderScreen"> </fixed-location> 1 1 <description>State <content pattern="Message number to * </description> jump to" length="25"/> 1 Get Output Get <layout> </simple-field> Output Fi eld Input Fi eld Field Action <location x="1" y="2"/> <simple-field id="prompt" optional="true" * * Submit Com mand 1 <size width="8" height="2"/> input="true"> Action Command </layout> <fixed-location> Set <actions> <point x="25" y="22"/> * <set-fields-action> </fixed-location> Set/Update Automaton * * <field ref="prompt"> <content pattern="" length="5"/> Set Input Field Response Variable Action Action <data ref="/root/header"/> <focus order="1"> Expression Expression </field> <advance-key id="ENTER"/> 1 Build * </set-fields-action> </focus> * Request 1 Set/Update Get </actions> </simple-field> 1 Build Response Action <next-states> <caret-location> Get 1 Get 1 <next-state ref="bad_header"> <fixed-location> * 1 1 * </next-state> <point x="28" y="22"/> Init Action Automaton Variable <next-state ref="header"> </fixed-location> * </next-state> </caret-location> </next-states> </screen> Set </state> … Automaton Description </automa-states> </automa> Document UML model An excerpt of an Automaton Description Document 17
  • 18. A Case study  A migration case study has been carried out according to a process including the following phases:  Identification, i.e. reverse engineering of the interaction model;  Design, i.e. defining the FSA describing the Wrapper behaviour;  Implementation, i.e. realisation of the XML FSA Description Document;  Web service deploy, i.e. deployment of the wrapper in the context of an application server;  Validation, i.e. testing of the scenarios of the migrated use case 18
  • 19. A Case Study  Legacy system: Pine (ver. 4.64)  client mail software, that allows a user to read, compose and manage e-mail messages from an existing message box.  Pine is a form based legacy system based on stream oriented terminals.  Usually, Pine is accessible via the Telnet protocol.  We submitted to the migration process the Get Message use case that allows the owner of a mailbox to get the text of a specific e-mail message contained in a specific mailbox folder. Use case: Get Message Preconditions None Input Login, Password, Folder, Message Number Output Date, From, To, cc, Subject, Body, Exception Postconditions None 19
  • 20. The Automaton: graphical view Login 1 2 Password 4 Folder g 5 8 9 Authentication Authentication Menu Main j Go To Folder Folder Open Go To Message Menu (Ask Login) (Ask Password) Menu Folder Password Folder Mess.Numb. Mess.Numb. 3 Authentication 6 7 10 12 Menu (Incorrect q Folder Not Empty Folder Bad Message Header Password) Found Number 17 Exit Confirm <Control>C q <enter> (Folder Not > 18 Found) 11 16 Exit Confirm 13 Folder Open Main Menu (User (Empty Folder) Message First (Bad Message not admitted) Page q Number) 19 q y Exit Confirm <space> 21 (Bad Message y <space> Exit Confirm y Number) (User not 14 7 different scenarios: admitted) y y 20 q 15 Message End Message Mid Exit Confirm Page 1) One Page Message (Read Message) <space> <space> 2) Read Two Pages Message Read More than two Pages Message Read Bad Message Number Empty Folder Folder Not Found 7) Incorrect Password 20
  • 21. The Automaton: a tabular specification Interactio Interaction State Description Actions Submit Next n State ID Command State START Init (Login, Password, Folder, Message Number) 1 1 Authentication Menu (Ask Login) Set Input Field: Login <Enter> 2 2 Authentication Menu (Ask Set Input Field: Password <Enter> 3,4 Password) 3 Authentication Menu (Incorrect Set Automaton Variable: Exception = “Incorrect Login and <Control>C 16 Password) Password” 4 Main Menu g 5 5 Go To Folder Set Input Field: Folder <Enter> 6,7,8 6 Folder Not Found Set Automaton Variable: Exception = “Folder not found” q 17 7 Empty Folder Set Automaton Variable: Exception = “No messages in the folder” q 18 8 Folder Open j 9 9 Go To Message Set Input Field: Message Number <Enter> 10,12 10 Bad Message Number Set Automaton Variable: Exception = “Incorrect Message Number” <Enter> 11 11 Folder Open (Message not found) q 19 12 Header > 13 13 Message First Page Get Output Fields: (Date, From, To, Cc, subject,, Body); <Space> 14,15 Set Automaton Variables: (Output: (Date, From, To, Cc, subject, Body)) 14 Message Mid Page Get Output Field: Body <Space> 14,15 Update Automaton Variable: Body = Body + Output:Body 15 Message End Get Output Field: Body q 20 Update Automaton Variable: Body = Body + Output:Body 16 Main Menu (User not admitted) q 21 17 Exit Confirm (Folder Not Found) y END 18 Exit Confirm (Empty Folder) y END 19 Exit Confirm (No Message) y END 20 Exit Confirm (Read Message) y END 21 Exit Confirm (User not admitted) y END 21 END Build Response: (Date, From, To, Cc, Subject, Body, Exception)
  • 22. Testing Strategy  A Test Suite comprehending 7 Test Cases had been selected in order to cover the 7 linear independent paths individuated on the FSA TC# TC Description Interaction State Sequence 1 One Page Message Read S-1-2-4-5-8-9-12-13-15-20-E 2 Two Pages Message Read S-1-2-4-5-6-9-12-13-14-15-20-E 3 More Than Two Pages Message Read S-1-2-4-5-8-9-12-13-14-14-15-16-21-E 4 Bad Message Number S-1-2-4-5-8-9-10-11-19-E 5 Empty Folder S-1-2-4-5-7-18-E 6 Folder Not Found S-1-2-4-5-6-17-E 7 Incorrect Password S-1-2-3-16-17-E  We noticed that all the 7 scenarios of the migrated use case had been covered by the selected Test Suite 22
  • 23. Conclusions  A method and a tool supporting the wrapping of interactive legacy system have been presented  A preliminary experiment showed the effectiveness of the approach  A more detailed description of the potentialities of the tool and of the experiment that have been carried out will be presented in the Tool Demo Session after the lunch!  Many ideas for future works arises … 23
  • 24. Open problems and future works  Definition of criteria for identifying migrable use cases  Exploring the feasibility of the approach for the migration of different categories of legacy systems:  Legacy system using block oriented terminals  Legacy Web Applications  Defining and validating reverse engineering approaches for obtaining the FSA specification (in particular Screen Template description)  Concept Analysis approaches  Feature Selection approaches  Exploring the scalability of the approach for more complex functionalities to migrate  Identification of elementary functionalities to be migrated  Orchestration of migrated functionalities obtaining complex services 24
  • 25. 25

Editor's Notes

  1. IDC = International Data Corporation
  2. What is possible to expose as a Web Service? Feasible approaches for the migration: White Box Reverse Engineering techniques Invasive approaches they need source code analysis and manipulation Black Box Reverse Engineering techniques The only feasible solution if the source code Is not accessible/modifiable Wrapping
  3. Legacy systems are often based on form based user interface --- Vicewversa WS
  4. Each State is associated with a different state of the user interface Actions cause Transitions Initial State is started by Legacy System launch; Final State is started by Legacy System closure
  5. The Wrapper does not depend on the specific use case to migrate, but it is able to interpret any Automaton described according to the FSA description format
  6. Stream Oriented terminals: They exchange data with the legacy system by using a bi-directional, byte oriented communication channel; The input typed by the operator are sent to the legacy system as soon as typed; The legacy system performs the required elaboration and then sends the output back to the terminal; The screen is organised as a matrix of characters.
  7. Sposterei il processo di wrapping qui, introducendolo come il processo di migrazione seguito nel caso di studio
  8. In this Section, a case study that was carried out for exploring the feasibility of the proposed migration approach will be presented.
  9. Actions = Automaton Engine Actions Submit Command = Action launching a Transition
  10. Si potrebbe eliminare per dirlo a voce