With the growth in Service-Oriented Architecture (SOA) adoption, the need for a systematic approach towards reengineering for SOA also increases. However, several principles of service-orientation pose major challenges for these efforts:
The separation of business from presentation logic;
The loosely coupled relationship between services;
The coarse-grained nature of services.
As legacy systems were not built with these concerns in mind, much effort is needed to accommodate them. The work in SENSORIA for reengineering towards SOA consisted in the development of a methodology that allows a high degree of automation, providing support for the full reengineering cycle and taking into consideration scalability matters.
Our proposal can be seen as an instance of the horseshoe model, a conceptual model for reengineering at different levels, with a focus on transformations at the level of architectural models. This goal is achieved by using techniques such as code pattern matching (to annotate the code), reverse engineering, graph transformation and forward engineering.
Reengineering approach
The process is instantiated in two dimensions to address the technological and the functional evolution. The former is concerned with the technical purpose of the code and the latter focuses on its implementation of relevant business-level functionalities. In order to evaluate this approach a prototype was developed covering the following steps:
Code annotation implemented via an Eclipse plug-in developed by ATX, called CareStudio, which allows the specification and execution of code pattern matching rules.
Reverse engineering achieved via a small tool that was designed just for the purpose of obtaining a graph model from the annotated source code.
Definition of graph transformation rules implemented by using the Eclipse plug-in Tiger EMF Transformer.
Forward engineering is based on a tool that invokes Eclipse Java refactorings.