Many business Web-based applications do not offer APIs to enable other applications to access their data and functions in a programmatic manner. This makes their composition difficult for instance to synchronize data between two applications. To address this challenge, this paper presents Abmash, an approach to facilitate the integration of such legacy Web applications by automatically imitating human interactions with them. By automatically interacting with the GUI of Web applications, the system supports all forms of integrations including bidirectional interactions and is able to interact with AJAX-based applications. Furthermore, the integration programs are easy to write because they deal with end-user, visual UI elements. The integration code is simple enough to be called a 'mash-up'. Copyright © 2013 John Wiley & Sons, Ltd.
Much of the work on software maintenance focuses on migrating legacy applications to the web @cite_19 and only a few papers discuss their integration. For instance Vinoski @cite_14 showed that integrating legacy code with classical middleware requires to invasively modify the code. Sneed presented @cite_24 @cite_39 an approach to integrate legacy software into a service oriented architecture. It consists of automatically creating XML output from PL I, COBOL and C C++ interfaces, which can be wrapped into a SOAP-based web service. Abmash neither modifies existing code nor ports applications to the web: it integrates legacy web applications. There are also some pieces of research on automated data migration (e.g. @cite_41 ). However, data migration is only one aspect of application integration, the scope of Abmash is larger.
@cite_14 @cite_41 @cite_39 @cite_24 @cite_19
2166379807 2137560763 1521332670 2146648240
Migration of form based legacy systems towards service-oriented computing is a challenging task, requiring the adaptation of the legacy interface to the interaction paradigm of Web services. In this paper, a wrapping methodology is proposed to make interactive functionalities of legacy systems accessible as Web services. The wrapper that is used for interacting with the legacy system acts as an interpreter of a finite state automaton that describes the model of the interaction between user and legacy system. This model is obtained by black box reverse engineering techniques. A migration process and a software architecture that allow a functionality of a legacy system to be exported as a Web service are presented in the paper. Legacy programs, i. e. programs which have been developed with an outdated technology make-up for the vast majority of programs in many user application environments. It is these programs which actually run the information systems of the business world. Moving to a new technology such as service oriented architecture is impossible without taking these programs along. This contribution presents a tool supported method for achieving that goal. Legacy code is wrapped behind an XML shell which allows individual functions within the programs, to be offered as Web services to any external user. By means of this wrapping technology, a significant part of the company software assets can be preserved within the framework of a service oriented architecture. Maintenance tends to degrade the structure of software, ultimately making maintenance more costly. At times, then, it is worthwhile to manipulate the structure of a system to make changes easier. However, it is shown that manual restructuring is an error-prone and expensive activity. By separating structural manipulations from other maintenance activities, the semantics of a system can be held constant by a tool, assuring that no errors are introduced by restructuring. To allow the maintenance team to focus on the aspects of restructuring and maintenance requiring human judgment, a transformation-based tool can be provided--based on a model that exploits preserving data flow-dependence and control flow-dependence--to automate the repetitive, error-prone, and computationally demanding aspects of restructuring. A set of automatable transformations is introduced; their impact on structure is described, and their usefulness is demonstrated in examples. A model to aid building meaning-preserving restructuring transformations is described, and its realization in a functioning prototype tool for restructuring Scheme programs is discussed. Large software systems undergo significant evolution during their lifespan, yet often individual changes are not well documented. In this work, we seek to automatically classify large changes into various categories of maintenance tasks — corrective, adaptive, perfective, feature addition, and non-functional improvement — using machine learning techniques. In a previous paper, we found that many commits could be classified easily and reliably based solely on the manual analysis of the commit metadata and commit messages (i.e., without reference to the source code). Our extension is the automation of classification by training Machine Learners on features extracted from the commit metadata, such as the word distribution of a commit message, commit author, and modules modified. We validated the results of the learners via 10-fold cross validation, which achieved accuracies consistently above 50 , indicating good to fair results. We found that the identity of the author of a commit provided much information about the maintenance class of a commit, almost as much as the words of the commit message. This implies that for most large commits, the Source Control System (SCS) commit messages plus the commit author identity is enough information to accurately and automatically categorize the nature of the maintenance task.