ArticlePDF Available

Bottom-up and top-down COBOL system migration to Web Services: An experience report

Authors:

Abstract and Figures

Moving from mainframe systems to a service-oriented architecture (SOA) using Web services is an attractive but daunting task. The bottom-up or direct migration approach enables the effective modernization of legacy systems to Web services. Conversely, bringing migration into fruition with the top-down or indirect-migration approach is more difficult, but it achieves better migration results. Employing both approaches on the same large enterprise system is uncommon, which leaves no room for comparison. This article describes the migration processes, costs, and outcomes of applying both approaches on a real Cobol system.
Content may be subject to copyright.
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
Bottom-up and top-down COBOL system migration to Web
Services: An experience report
Juan Manuel Rodriguez Marco Crasso Cristian Mateos
Alejandro Zunino Marcelo Campo
November 23, 2011
Abstract
Moving from mainframe systems to Service-Oriented Architecture (SOA) using Web Services is an
attractive but daunting task. The bottom-up or Direct Migration approach enables the eective mod-
ernization of legacy systems to Web Services. Conversely, bringing migration into fruition with the
top-down or Indirect Migration approach is recognized as being comparatively harder but achieves better
migration results. In practice, it is very uncommon to employ both approaches to the same large enter-
prise system, which leaves no room for comparison. This paper reports the outcomes of applying both
migration approaches on a real COBOL system, presents the followed migration processes, their costs,
and reports on the discoverability and reusability of target Web Services.
Keywords:M.3.0.a Web Services Modeling, M.1.0.d Services Architectures
1 Introduction
Legacy systems are an undesired yet unavoidable reality for many enterprises. COBOL programs1, which
run in mainframes, and implement business logic of large financial organizations and governments are a
good example. Migration of legacy systems becomes a necessity when they force organizations to incur
high costs including payments for processing power, and encumber hiring programmers that master the in-
volved technologies. Governments increasing tendency to adhere to open-source platforms also encourages
migration.
Community’s experience confirms that SOA and Web Services are a right target for migrating legacy
systems, specially when loose coupling among providers’ and clients’ systems, and agility to respond to
changes in requirements [1] are needed [2, 3, 4]. The reported experiences show two main migration ap-
proaches, namely Direct and Indirect Migration [2]. The former represents a bottom-up approach as it
encourages engineers to upgrade the legacy COBOL programs to services. This involves implementing a
thin service layer that describes programs’ APIs using the Web Services Description Language (WSDL),
and communicates clients’ applications with COBOL using Simple Object Access Protocol (SOAP). In-
deed, many tools can automatically wrap COBOL programs with COM+objects, which are wrapped by
.NET Web Services afterwards. Despite its simplicity, the bottom-up approach has not one Achilles’ heel,
but two. First, though a SOA-based system frontier is supposed to describe the services’ oered APIs,
this approach confines WSDL documents to be mere XML representations of the “COMMAREAs”, or
the interface exposed by COBOL programs, which may disregard established Web Services design con-
cerns [5, 6, 7]. Besides, even when system migration is ultimately achieved, the mainframe cannot be
turned obecause business logic implementation still resides in COBOL programs.
Instead, Indirect Migration represents a top-down approach that requires to abstractly define target
service APIs based on a high-level view of the legacy functionality, and then re-writing the business logic,
or parts of it, for implementing defined interfaces. Despite being rather more expensive than the bottom-up
migration approach, Indirect Migration has two advantages. First, such derived high-level view should lead
organizations to improve the system boundaries [8] using well-known services design good practices [7].
1According to Gartner consulting, over 200 billion lines of COBOL code are running worldwide.
1
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
Second, porting business logic from COBOL to modern platforms like JEE or .NET also means abandoning
the mainframe for new, more cost-eective computing environments.
The pros and cons of both migration approaches are something very well known, discussed and un-
doubted in the software industry community. Many case studies reporting either bottom-up or top-down
experiences exist in the literature. However, none of them compares the outcomes of employing both ap-
proaches on the same real large enterprise system because supporting two migration attempts is not feasible
for most enterprises. However, we report the migration of a large government COBOL system to SOA by
using both approaches. This paper explains the historical reasons that originated both migration attempts,
the specific steps that were performed to migrate the system, and then presents empirical evidences con-
firming that the top-down attempt cuts down mainframe dependency and outputs better designed WSDL
documents at the expenses of higher costs. Therefore, we expect that project managers that have to deal
with decisions like those described in this paper find it as an interesting and valuable contribution.
2 Legacy System Overview
The legacy system belongs to a large Argentinean government agency. This data-centric COBOL system
maintains records related to individuals including personal information, relationships, work background,
and received benefits. The system runs on an IBM mainframe, and accesses a DB2 database of around
0.8 PetaBytes. Two migration attempts were performed to modernize, and expose through a Web portal a
portion of such system.
Specifically, the system parts that were migrated using both approaches include 32 Customer Infor-
mation Control System (CICS) transactions accessing 80 database tables. CICS is a transaction manager
designed for rapid, high-volume processing, which allows organizing several programs as an atomic task.
These programs comprise business logic, and database accesses (mostly input validations and queries). On
average, each transaction groups near 19 files, comprises 8,178 lines of code, and performs 6 SQL queries.
The 32 transactions represent 600 files having 261,688 lines of code. Additionally, for each transaction
there exist documents specifying functionality, and diagrams illustrating the dependencies among various
transactions.
3 First Attempt: Bottom-Up Approach
During 2009, the agency IT department faced the requirement of exposing system functionality as Web
Services by using .NET, but conditioned by tight budget constrains and strict deadlines. Therefore, the IT
department decided to follow the bottom-up approach, which resulted in each transaction wrapped by a
code-first based Web Service with only one operation. Code-first is a Web Service interface construction
method that promotes to develop service implementations first (.NET-wrapped COBOL in this case) and
to derive WSDL interfaces later. For each migrated transaction, the IT department members performed
4 steps:
1. Automatically creating a COM+object including a method with the inputs/outputs defined in the
associated COMMAREA, which forwards object invocations to the transaction. This was done us-
ing a tool called COMTI Builder. Component Object Model Transaction Integrator (COMTI) is a
technology that allows wrapping CICS transactions with COM+objects.
2. Automatically wrapping the COM+object with a C# class for invoking the COM+object. This was
done using Visual Studio built-in support to add project references.
3. Manually including specific annotations in the C# code to deploy it using the framework-level ser-
vices of the .NET platform for generating the code-first Web Service.
4. Automatically testing the communication between the final Web Service, and its associated transac-
tion, which was performed by means of the soapUI tool.
2
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
The organization IT department reported that it took 1 day to train a developer on these four steps and the
tools employed. Professional and paid versions of the two first tools were used2, whereas a free version of
soapUI was employed.
Then, trained developers migrated one transaction per hour, mostly because all the steps except step 3
were tool-supported and automatic. Additionally, the accuracy and correctness of migrated services were
not validated since they decorated the legacy system without modifying its implementation.
4 Second attempt: Top-down Approach
On February, 2010, the agency outsourced the migration of the same 32 transactions using the top-down
approach. One reason to do this was to remove transactions’ load from the mainframe, because the IT
department estimated that the agency would had to hire more processing power by mid 2010. Another
reason was to set a precedent in the feasibility of understanding and re-implementing the original programs,
since most of them have being steadily modified for more than 30 years following the quickest available
way, which is undoubtedly not always the best way to upgrade source code. Hence, the starting point was
the same for both migration attempts. The steps followed during the top-down migration attempt are listed
below:
1. Manually defining potential WSDL documents basing on the knowledge the agency had on the trans-
actions’ functionality.
2. Exhaustively revising the legacy source code.
3. Manually refining the WSDL documents in 1) by basing on opportunities to abstract and reuse param-
eter data-type definitions, group functionally related transactions into one cohesive service, improve
textual comments and remove duplicated transactions, which were detected at 2). For data-type
definitions, naming type elements using explanatory names and constraining their ranges.
4. Supplying the WSDL documents defined at 3) with implementations using .NET.
5. Testing the generated Web Services with the help of the agency IT department.
During the first step, three Web Services experts and two agency members designed WSDL documents to
sketch desired system frontier together. This step comprised daily meetings between not only the specialists
and the project managers in charge of the original COBOL programs, but also the people responsible for
developing applications that would consume the migrated Web Services.
The second step involved revising the legacy code, and its documentation. Six software analysts ex-
haustively read each transaction source code and found out that:
17 transactions comprised a lot of business logic, and returned around 100 output parameters,
all the transactions were coarse-grain because they oered a large view of the back-end data,
12 transactions implemented almost exactly the same functionality,
many transactions internally called the same programs, which were acknowledged as potential ser-
vice operations [9], or returned the same parameters. One program was called by 9 transactions,
another by 8, another by 5, a fourth program was called by 4, and finally two programs were called
by 3 transactions.
At step 3, the specialists employed previous findings to refine the service interfaces specified beforehand.
They derived potential interfaces for the target services and preliminary entities in XSD (XML Schema
Definition). Hence, final WSDL documents were iteratively built based on the desired business services,
and the interfaces derived from the existing COBOL, which to some extent conditions the functionality
that the resulting services can oer. Step 3 ended up with 45 operations organized in 7 WSDL documents.
2IBM migration tools were not used as the agency had licenses for similar tools from other vendors, whose use is enforced through
an organization-wide policy.
3
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
0
200
400
600
800
1000
1200
1400
Total lines of WSDL/XSD code
per service
Individual WSDL/XSD documents
5032 LOC in 32 WSDL documents
0 lines of documentation
3964 LOC in 8 documents
242 lines of documentation
Bottom-Up Top-Down
Figure 1: WSDL/XSD code lines of the dierent service interfaces.
They have comments describing oered operations, but not business object definitions, which were placed
in a separate XSD file so they can be reused from dierent service descriptions.
At step 4 two more people were incorporated into the project for implementing the services using the
.NET ASP 2.0 Web Service Application template as the agency required. Each service implementation
consisted on a WSDL document, and a handful of C# classes implementing the business logic. Accord-
ingly, 268 C# classes comprising 44,154 lines of code were written. Data accesses were handled through
MyBatis3, a data mapper which required developers to establish relational to object-oriented mappings via
XML configuration files.
Finally, at step 5, the agency IT department employees planned and conducted functional tests to ensure
that the Web Services were functionally equivalent to the migrated transactions. Basically, they executed
the same test cases twice: using a terminal for invoking a mainframe transaction, and using the Web
Service operation that resulted from migrating that transaction. After that, they compared both results and
cooperated with the 8 external developers when something had to be fixed.
This migration attempt demanded 13 months. Step 1 demanded one month, step 2 needed three months,
step 3 took only one month, step 4 (implementation) required six months, and finally, step 5 two months.
5 Comparing resulting WSDL documents
We studied the WSDL documents that resulted from both migration attempts, to assess the qualitative
dierences of simply decorating the legacy transactions over re-engineering them by taking into account
specific services API design concerns. We employed classical metrics (total lines of code and number of
resulting files) and a well-established catalog of common WSDL bad practices –i.e. anti-patterns– that
jeopardize service understandability, legibility and discoverability [5]. Although both migrations satisfied
the agency non-functional requirements –e.g. performance– , these are not discussed here for brevity.
Indeed, preliminary results show a slight performance advantage when using the re-engineered system
rather than using the wrapped one, but these systems run on dierent platforms making hard to assess a fair
performance study. Finally, comparisons are based on statistics of the code of the deployed services.
The first evident dierence is the number of WSDL documents in each specification: 32 with the
bottom-up approach, and 7 -plus 1 separated XSD file- with the top-down one. Despite exposing the
3http://www.mybatis.org/dotnet.html
4
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
Table 1: Manifestation of Web Service discoverability anti-patterns.
Row Anti-pattern name Problem description Bottom-
up
Top-
down
1st Inappropriate or lacking
comments
Occurs when some operations within a WSDL have no comments or the
comments do not eectively describe their associated element’s (message,
operation) purpose.
YES NO
2nd Ambiguous names Occurs when some WSDL operations’ or messages’ names do not accurately
represent the elements’ semantics.
YES NO
3rd Redundant port-types Occurs when a port-type is repeated within the WSDL document, usually in the
form of one port-type instance per binding type (e.g. HTTP, HTTPS and SOAP).
PARTIAL
50%
NO
4th Enclosed data model Occurs when the XSD data model is defined within the WSDL document
instead of being defined in a separate file, which dicult data-type reuse across
several Web Services. The exception for this rule is when it is known
before-hand that data-types are not going to be reused.
YES NO
5th Undercover fault information
within standard messages
Occurs when error information is returned using output messages rather than
fault messages.
YES NO
6th Redundant data models Occurs when a data-type is defined more than once in the same WSDL
document.
YES NO
same functionality, the bottom-up specification had 4 times many files as the top-down specification had
(Figure 1). This stems from the fact that the bottom-up specification was blindly generated, whereas
transactions were deliberately grouped by their functional similarity in the same Web Service for the top-
down migration, which is highly desirable since it allows service consumers to seek semantically-related
operations within a single WSDL document [5].
Another dierence is the number of lines of WSDL+XSD code per document, which on average is 157
and 495 respectively. The bottom-up specification contained smaller WSDL documents, which are usually
preferred by developers [5], but at the cost of scattering the functionality across several Web Services.
Thus, finding a needed operation might require to inspect more WSDL documents. While, the top-down
specification included less, albeit larger, WSDL documents, but arguably oered a better alternative to the
contract length vs functionality scattering trade-o.
The documentation present in resulting specifications is also a dierence. The bottom-up WSDL doc-
ument has no comments, while the top-down WSDL documents have 242 lines of comments, i.e. near
5 lines per operation on average.
Six of the anti-patterns described in [5] were present in the studied WSDL documents, as summarized
in Table 1. For fairness reasons, the anti-patterns detection was performed by two WSDL specialists not
involved in the migration processes with a limited knowledge on system functionality. Besides, since
detection of some anti-patterns is somewhat subjective, a peer-review methodology was applied to prevent
biases.
The first two rows describe anti-patterns that impact on comments and names [5]. It is reasonable to ex-
pect these anti-patterns to aect the WSDL documents of the bottom-up specification, since all information
included in them is derived from COBOL code and it does not oer a standard way to indicate the scope
and purpose of comments in the code, and code identifiers have length restrictions of up to 4 characters in
some COBOL flavors.
The third row describes an anti-pattern that ties abstract service interfaces to concrete implementations,
hindering black-box reuse [5]. We have checked that this anti-pattern was caused by the tools employed
for generating WSDL documents during the first migration attempt. Likewise, the fourth row describes an
anti-pattern that is generated by many code-first tools, which force data models to be included within the
generated WSDLs, and cannot be avoided with the bottom-up.
The anti-pattern described in the fifth row deals with errors being transferred as part of the output mes-
sages, which under bottom-up resulted from the original transactions that used the same COMMAREA
for returning both output and error information, and from the employed method that converted any COM-
MAREA parameter into a service input/output parameter. In contrast, top-down WSDL documents had
5
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
Complex data-type definition
Web Service interface (WSDL documents)
The Web Service interface exchanges the data-type. Yellow links mean that the WSDL associated with the
service includes just one explicit reference to the data-type. Similarly, a red link means that the
WSDL document references two or more occurrences of the data-type.
Keys:
Figure 2: Data model reuse of top-down services. For the sake of readability, transitive data-type reuse is
not illustrated.
a proper designed error handling mechanism based on standard SOAP faults. Finally, bottom-up WSDL
documents had no error handling because ASP tools, in their out-of-the-box versions, do not support fault
messages.
The last anti-pattern relates to bad data model designs. Firstly, bottom-up produced 182 dierent
data-types, of which 73% were defined only once, and the rest were duplicated across dierent WSDL
documents. This problem stems from a combination of two facts: the poor quality of data model design in
the transactions, and the tools employed for migrating them to XSD.
With the top-down approach, 104 data-types represented business objects, including 39 simple types
(mostly enumerations) and 65 complex types, in addition 131 data-types were needed for making WSDL
documents compliant with the document/wrapped standard structure –this means, a message formed by one
element–, which is recommended by the Web Service Interoperability standards (WS-I)4. For example, the
Cuil data-type, which represents a business object that is analogous to the Social Security Number in the
United States, is defined in the shared XSD schema as a complexType, but also wrapped by an element
in the WSDL documents. Figure 2 uses the Guess tool [10] to show the relationships between the top-
down Web Services and the 104 data-types designed for representing business objects. As observed, the
abstractions that best represent the core business of the agency –e.g. the Cuil entity– resulted in XSD entities
with higher fan-in.
6 Conclusions: approaches costs vs. benefits
We observed that with the employed top-down approach mainframe independence was achieved, but also
better WSDL documents in terms of desirable design concerns such as understandability, discoverability
and reusability, were generated. This nevertheless involved rewriting and porting the business logic of the
32 transactions, which demanded the resources specified in the third column of Table 2.
In contrast, as shown in the second column, the bottom-up approach took 5 days and 1 trained developer
to migrate the same transactions. We have considered that the cost was u$s 3,000 for the bottom-up
attempt because this was the average monthly salary for a senior .NET Developer paid by the agency, and
it had the respective software licenses for the employed tools beforehand. Clearly, this could be not the
4Basic Profile Version 1.1: http://www.ws- i.org/Profiles/BasicProfile-1.1.html
6
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
Table 2: Comparison of resources required by the two migration approaches.
Required Resources Bottom-up Top-Down
.NET Developers 1 8
Web Services technologies experts 0 3
Time 5 days 13 months
Commercial software tools employed COMTI Builder and Visual Studio Visual Studio
Money u$s 3,000 (*) u$s 320,000
(*) This was the average monthly salary in Argentine for a senior .NET Developer at the time of the bottom-up migration attempt.
Table 3: Comparison of the employed migration approaches.
Requirement Migration Approach
Bottom-up Top-down
Minimum essential manpower hiring, regardless of the actual regular sta
Minimum organizational changes
Speed to produce the service-oriented version of the legacy system
Port the legacy code to a modern computer programming paradigm/language,
enhancing system understandability, stabilizability and maintainability
Either lower-cost or modern hardware platforms for hosting the migrated system
Updated documentation of current system functionality, dataflows and
workflows
A clear SOA frontier of the migrated system, increasing third-party applications
development
Minimum requirements for testing, validating migrated functionality accuracy
and correctness
Minimum operational risk when deploying the migrated system
case for many enterprises and then a project manager should consider tool licensing (according to http:
//www.microsoft.com/biztalk/en/us/pricing-licensing.aspx such a license costs u$s 44,228)
and man-power hiring. For performing the top-down attempt, external developers and experts were hired,
whose salaries have been included in its cost.
The bottom-up approach was virtually performed without costs, however the legacy code was not re-
moved, meaning that in the future there will be two software layers to deal with. Instead, though the
second attempt was more expensive, it may be indirectly helping to reduce other costs, namely transactions
maintenance and payments for processing power, since by not removing the transactions’ load from the
mainframe (only 6 of them represented the 56% of total mainframe load) the agency would had to hire
more processing power at a cost of u$s 2 millions a year. In other words, the agency saved the money
invested in the second migration.
By basing on this reported experience software engineers and particularly project managers should
ponder that bottom-up is inherently better than their counterparts regarding time-to-market, due this ap-
proach bases on decorating the legacy system by means of tool-supported methods. However, a top-down
approach may achieve better SOA designs and eventually allows an organization to modernize legacy plat-
forms. Table 3 provides a checklist for those practitioners wondering which migration approach should be
followed according to certain requirements, which were extrapolated from this experience.
Recently, meet-in-the-middle methods like the one supported by the NACA project5have been ex-
plored. These methods attempt to bring out and combine the best of top-down and bottom-up approaches.
Therefore, we believe that in the near future this topic will undoubtedly require more research.
5http://code.google.com/p/naca/
7
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
Acknowledgments
We acknowledge the financial support provided by ANPCyT through grant PAE-PICT 2007-02311.
References
[1] N. Gold, A. Mohan, C. Knight, and M. Munro, “Understanding Service-oriented software,” Software,
vol. 21, no. 2, pp. 71–77, 2004.
[2] S.-H. Li, S.-M. Huang, D. C. Yen, and C.-C. Chang, “Migrating legacy information systems to Web
Services architecture,” Journal of Database Management, vol. 18, no. 4, pp. 1–25, 2007.
[3] A. De Lucia, R. Francese, G. Scanniello, and G. Tortora, “Developing legacy system migration meth-
ods and tools for technology transfer,Software Practice Experience, vol. 38, no. 13, pp. 1333–1364,
2008.
[4] M. Colosimo, A. D. Lucia, G. Scanniello, and G. Tortora, “Evaluating legacy system migration tech-
nologies through empirical studies,” Information and Software Technology, vol. 51, no. 2, pp. 433–
447, 2009.
[5] M. Crasso, J. M. Rodriguez, A. Zunino, and M. Campo, “Revising WSDL documents: Why and
how,” Internet Computing, vol. 14, no. 5, pp. 30–38, 2010.
[6] J. M. Rodriguez, M. Crasso, A. Zunino, and M. Campo, “Improving Web Service descriptions for
eective service discovery,” Science of Computer Programming, vol. 75, no. 11, pp. 1001–1021,
2010.
[7] M. Papazoglou and W.-J. van den Heuvel, “Service-oriented design and development methodology,”
International Journal of Web Engineering and Technology, vol. 2, no. 4, pp. 412–442, 2006.
[8] G. Lewis, E. Morris, and D. Smith, “Analyzing the reuse potential of migrating legacy components
to a Service-Oriented Architecture,” in Software Maintenance and Reengineering, pp. 15–23, IEEE
Computer Society, 2006.
[9] S. Alahmari, E. Zaluska, and D. D. Roure, “A service identification framework for legacy system
migration into SOA,” in International Conference on Services Computing, vol. 0, pp. 614–617, IEEE
Computer Society, 2010.
[10] E. Adar, “GUESS: A language and interface for graph exploration,” in Conference on Human Factors
in Computing Systems, pp. 791–800, ACM Press, 2006.
Juan Manuel Rodriguez (http://www.exa.unicen.edu.ar/~jmrodri) is working on his Ph.D. The-
sis about quality of Web Services APIs at the UNICEN, being founded by the Argentinian National
Council for Scientific and Technical Research (CONICET) and working under the supervision of
Alejandro Zunino and Marcelo Campo. He holds a Systems Engineer degree from the UNICEN. He
is a member of ISISTAN Research Institute.
Marco Crasso (http://www.exa.unicen.edu.ar/~mcrasso) received a Ph.D. degree in Computer
Science from the UNICEN in 2010. He is a member of the ISISTAN and the CONICET. His research
interests include Web Service discovery and programming models for SOA.
Cristian Mateos (http://www.exa.unicen.edu.ar/~cmateos) received a Ph.D. degree in Computer
Science from the UNICEN, in 2008, and his M.Sc. in Systems Engineering in 2005. He is a full time
Teacher Assistant at the UNICEN and member of the ISISTAN and the CONICET. He is interested
in parallel/distributed programming, Grid middlewares and Service-oriented Computing.
8
This article is a pre-print of the article "J. M. Rodriguez, M. Crasso, C. Mateos, A. Zunino and M. Campo: ’Bottom-up and Top-down COBOL System
Migration to Web Services: An Experience Report’. IEEE Internet Computing. Vol. 17, Number 2, pp. 44-51. IEEE Computer Society. 2013. ISSN
1089-7801."
The published version is available at http://dx.doi.org/10.1109/MIC.2011.162
Alejandro Zunino (http://www.exa.unicen.edu.ar/~azunino) received a Ph.D. degree in Com-
puter Science from the UNICEN, in 2003, and his M.Sc. in Systems Engineering in 2000. He is
a full Adjunct Professor at UNICEN and member of the ISISTAN and the CONICET. His research
areas are Grid computing, Service-oriented computing, Semantic Web Services and mobile agents.
Marcelo Campo (http://www.exa.unicen.edu.ar/~mcampo) received a Ph.D. degree in Computer
Science from the Universidade Federal do Rio Grande do Sul, Brazil, in 1997. He is a full Asso-
ciate Professor at the UNICEN, Head of the ISISTAN, and member of the CONICET. His research
interests include intelligent aided software engineering, software architecture and frameworks.
9
... While research efforts in studying maintenance in modern PL stacks resulted in advanced tooling [5]- [11] and guidance to improve developer productivity [12], [13], investigating maintenance of mainframe systems is rare with most studies focusing on language migration [14]- [16]. Given the low success rate (less than 50% 1 ) of the mainframe migration effort, we posit that mainframe developers need support and innovation in the most routine software maintenance activities, such as locating and fixing software defects [17]. ...
... Sneed et al. [49], [50] reported on two industrial COBOL migration projects involving code restructuring and automated language translation. De Marco et al. [15] described migration methodology designed for a newspaper company, while Rodriguez et al. [16] discussed two migration approaches based on a case study of 32 COBOL transactions. Although these studies made a significant step towards restructuring and migrating COBOL code, the ways to natively support large-scale production COBOL systems have not yet been investigated. ...
Preprint
Full-text available
Mainframe systems are facing a critical shortage of developer workforce as the current generation of COBOL developers retires. Furthermore, due to the limited availability of public COBOL resources, entry-level developers, who assume the mantle of legacy COBOL systems maintainers, face significant difficulties during routine maintenance tasks, such as code comprehension and defect location. While we made substantial advances in the field of software maintenance for modern programming languages yearly, mainframe maintenance has received limited attention. With this study, we aim to direct the attention of researchers and practitioners towards investigating and addressing challenges associated with mainframe development. Specifically, we explore the scope of defects affecting COBOL systems and defect location strategies commonly followed by COBOL developers and compare them with the modern programming language counterparts. To this end, we surveyed 30 COBOL and 74 modern Programming Language (PL) developers to understand the differences in defects and defect location strategies employed by the two groups. Our preliminary results show that (1) major defect categories affecting the COBOL ecosystem are different than defects encountered in modern PL software projects; (2) the most challenging defect types in COBOL are also the ones that occur most frequently; and, (3) COBOL and modern PL developers follow similar strategies to locate defective code.
... Despite the enormous complications present in the maintenance and migration of COBOL projects, software engineering research on COBOL is limited. Most efforts are towards restructuring COBOL code [18], extracting knowledge and business rules [19], and supporting the migration of legacy COBOL systems and industrial case studies [8,16,20,21]. Ciborowska et al. [7] surveyed differences in defects and defect location strategies in COBOL and modern programming languages by interviewing 30 COBOL and 74 modern programming language developers. The survey showed significant differences in defect types present in COBOL and modern programming language projects, with similar defect location strategies employed by the developers in both kinds of projects [7]. ...
Preprint
Full-text available
Despite being proposed as early as 1959, COBOL (Common Business-Oriented Language) still predominantly acts as an integral part of the majority of operations of several financial, banking, and governmental organizations. To support the inevitable modernization and maintenance of legacy systems written in COBOL, it is essential for organizations, researchers, and developers to understand the nature and source code of COBOL programs. However, to the best of our knowledge, we are unaware of any dataset that provides data on COBOL software projects, motivating the need for the dataset. Thus, to aid empirical research on comprehending COBOL in open-source repositories, we constructed a dataset of 84 COBOL repositories mined from GitHub, containing rich metadata on the development cycle of the projects. We envision that researchers can utilize our dataset to study COBOL projects' evolution, code properties and develop tools to support their development. Our dataset also provides 1255 COBOL files present inside the mined repositories. The dataset and artifacts are available at https://doi.org/10.5281/zenodo.7968845.
... Finally, in sub-step four, the domain data model has to be defined based on an existing database data model and the business processes that it caters for. To achieve the optimal data model results, a top-down approach has to be used instead of a bottom-up one [55]. ...
Article
Full-text available
Migration from a monolithic architecture to a microservice architecture is a complex challenge, which consists of issues such as microservices identification, code decomposition, commination between microservices, independent deployment, etc. One of the key issues is data storage adaptation to a microservice architecture. A monolithic architecture interacts with a single database, while in microservice architecture, data storage is decentralized, each microservice works independently and has its own private data storage. A viable option to fulfil different microservice persistence requirements is polyglot persistence, which is data storage technology selected according to the characteristics of each microservice need. This research aims to propose and evaluate the approach of monolith database migration into multi-model polyglot persistence based on microservice architecture. The novelty and relevance of the proposed approach are double, that is, it provides a general approach of how to conduct database migration from monolith architecture into a microservice architecture and allows the data model to be transformed into multi-model polyglot persistence. Migration from a mainframe monolith database to a multi-model polyglot persistence was performed as a proof-of-concept for the proposed migration approach. Quality attributes defined in the ISO/IEC 25012:2008 standard were used to evaluate and compare the data quality of the microservice with the multi-model polyglot persistence and the existing monolith mainframe database. Results of the research showed that the proposed approach can be used to conduct data storage migration from a monolith to microservice architecture and improve the quality of the consistency, understandability, availability, and portability attributes. Moreover, we expect that our results could inspire researchers and practitioners toward further work aimed to improve and automate the proposed approach.
... This work also provides information on the automated generation of Java from COBOL source code, and how the authors tested to ensure functionality equivalence between the modernized and legacy system. In another work on migrating COBOL, Rodriguez et al. [9] present two approaches for migrating from COBOL to a web service-based system and compare and contrast each using a case study on a realworld system. Similarly and more recently, additional work has been done on migrating COBOL to Java using an automated translating method by Mossienko et al. [8]. ...
Preprint
Full-text available
As the current COBOL workforce retires, entry-level developers are left to keep complex legacy systems maintained and operational. This creates a massive gap in knowledge and ability as companies are having their veteran developers replaced with a new, inexperienced workforce. Additionally, the lack of COBOL and mainframe technology in the current academic curriculum further increases the learning curve for this new generation of developers. These issues are becoming even more pressing due to the business-critical nature of these systems, which makes migrating or replacing the mainframe and COBOL anytime soon very unlikely. As a result, there is now a huge need for tools and resources to increase new developers' code comprehension and ability to perform routine tasks such as debugging and defect location. Extensive work has been done in the software engineering field on the creation of such resources. However, the proprietary nature of COBOL and mainframe systems has restricted the amount of work and the number of open-source tools available for this domain. To address this issue, our work leverages the publicly available technical forum data to build an open-source collection of COBOL programs embodying issues/defects faced by COBOL developers. These programs were reconstructed and organized in a benchmark suite to facilitate the testing of developer tools. Our goal is to provide an open-source COBOL benchmark and testing suite that encourage community contribution and serve as a resource for researchers and tool-smiths in this domain.
... However, the framework only meets the early stage requirements as the experiment was limited to 6,500 lines of code. Rodriguez et al. (2013) present a case study of migration from legacy to web services (relying on Java or .NET). The authors describe a 'direct migration', which consists in implementing an intermediary layer between legacy and web services. ...
... However, the framework only meets the early stage requirements as the experiment was limited to 6,500 lines of code. Rodriguez et al. (2013) present a case study of migration from legacy to web services (relying on Java or .NET). The authors describe a 'direct migration', which consists in implementing an intermediary layer between legacy and web services. ...
Article
This paper deals with the problem of reducing technical debt and modernizing legacy applications, particularly COBOL heritage on “mainframe” computers (a.k.a. mainframes”). The proposed approach aims at offering a cost-effective method to modernize legacy applications. Indeed, literature shows both technical and scientific solutions whose economic facet is often totally ignored. This lets researchers and engineers believe that re-doing all from scratch proceeds at constant cost. This is untrue. Cost-effective methods are then urgently expected. To that extent, it is essential to remind that the cost of transformation is a critical concern, especially when the to-be-transformed applications rely on millions of lines of, very often, stratified COBOL code. To illustrate this idea, the paper describes the case study of the French Tax Administration modernization in its choice of re-hosting complex legacy software (several million lines of code).
Article
Full-text available
Web services provide a uniform framework to achieve a high level of interaction between distributed heterogeneous software systems and data resources shared over the Internet. Producing a well-designed web service is significant because it leads to a more understandable service and a higher level of interaction and leads to effective software maintainability. However, web service is suffering from a poor design problem named anti-patterns. Analysis of the literature returned a plethora of studies on anti-patterns that caused difficulties for developers to synthesize and summarized the possible types of anti-patterns and further comprehend each of them. Due to this limitation, this paper aims to provide organized literature on the types of anti-patterns found in web services. A scoping review was conducted by searching scholarly documents, analyzing, and classified them based on their anti-pattern types. The review provided in this paper could be used as a guide for developers to identify the anti-patterns that could be found in web services.
Chapter
Modernization of monolithic “legacy” mainframe COBOL applications to enable them for modern service- and cloud-centric environments is one of the ongoing challenges in the context of digital transformation for many organizations. This challenge has been addressed for many years by different approaches. However, the possibility of using a pure Open Source Software (OSS)-based approach to run existing transactional COBOL code as part of Java EE-based web applications has just recently been demonstrated by the author. Therefore, in this paper, an overview of the previously proposed Quick Web-Based Interactive COBOL Service (QWICS) is given and its new extension to run message-processing COBOL applications via JMS is described. QWICS runs on Un*x-like operating systems such as Linux, and therefore on most platforms, but in particular on the mainframe itself. This enables a mainframe-to-mainframe re-hosting, preserving the unique features of the mainframe platform like superior availability and security.
Article
Full-text available
Service Oriented Architectures (SOA) are rapidly emerging as the premier integration and architectural approach in contemporary, complex, heterogeneous computing environments. SOA is not simply about deploying software: it also requires that organisations evaluate their business models, come up with service-oriented analysis and design techniques, deployment and support plans, and carefully evaluate partner/customer/supplier relationships. Since SOA is based on open standards and is frequently realised using Web Services (WS), developing meaningful WS and business process specifications is an important requirement for SOA applications that leverage WS. Designers and developers cannot be expected to oversee a complex service-oriented development project without relying on a sound design and development methodology. This paper provides an overview of the methods and techniques used in service-oriented design and development. The aim of this paper is to examine a service development methodology from the point of view of both service producers and requesters and review the range of elements in this methodology that are available to them.
Article
Full-text available
Web services-based systems with Service-Oriented Architecture (SOA) are widely accepted as one of the possible solutions for an enterprise information system to retain/keep its old legacy systems. Using this aforementioned architecture, enterprise information systems tend to be more flexible and agile to fit into the capricious business environment, and thus, will be easier to be integrated with other additional applications. The purpose of this manuscript is to propose a migrating solution to convert the architecture of the legacy system into SOA with a systematic approach. This proposed methodology is different from other traditional object-oriented approaches, which migrates the system to have a services-oriented focus without incorporating general objected-oriented (00) or functional oriented feature. In this study, a case study and information capacity theory were employed to verify/validate that this approach is indeed an effective and a practicable one.
Conference Paper
Service-Oriented Architecture (SOA) enables the re-engineering and migration of legacy software systems into loosely-coupled and interoperable sets of services. Existing approaches focus mainly on defining coarse-grained services corresponding to the key business requirements. An improved migration of legacy systems onto SOA-based systems requires identifying the ‘optimal’ services with an appropriate level of granularity. This paper proposes a novel framework which identifies the key services effectively. The framework approach focuses on defining these services based on a Model-Driven Architecture approach supported by a SOA meta-model. Effective guidelines are proposed for identifying the optimal service granularity over a wide range of possible service types.
Article
We present two controlled experiments conducted with master students and practitioners and a case study conducted with practitioners to evaluate the use of MELIS (Migration Environment for Legacy Information Systems) for the migration of legacy COBOL programs to the web. MELIS has been developed as an Eclipse plug-in within a technology transfer project conducted with a small software company [16]. The partner company has developed and marketed in the last 30 years several COBOL systems that need to be migrated to the web, due to the increasing requests of the customers. The goal of the technology transfer project was to define a systematic migration strategy and the supporting tools to migrate these COBOL systems to the web and make the partner company an owner of the developed technology. The goal of the controlled experiments and case study was to evaluate the effectiveness of introducing MELIS in the partner company and compare it with traditional software development environments. The results of the overall experimentation show that the use of MELIS increases the productivity and reduces the gap between novice and expert software engineers.
Conference Paper
An effective way of leveraging the value of legacy systems is to expose their functionality, or subsets of it, as services. In the business world, this has become a very popular approach because it allows underlying systems to remain largely unchanged, while exposing functionality to a larger number of clients through well-defined service interfaces. The U.S. Department of Defense (DoD) is also adopting this approach by defining service-oriented architectures (SOAs) that include a set of infrastructure common services on which organizations can build additional domain services or applications. When legacy systems or components are to be used as the foundation for domain services, there must be an analysis of how to convert the functionality in existing systems into services. This analysis should consider the specific interactions that is required by the SOA and any changes that need to be made to the legacy components. We have recently helped an organization evaluate the potential for converting components of an existing system into services that would run in a new and tightly constrained DoD SOA environment. This paper describes the process that was used and outlines several issues that need to be addressed in making similar migrations.
Conference Paper
As graph models are applied to more widely varying fields, researchers struggle with tools for exploring and a nalyzing these structures. We describe GUESS, a novel system for graph exploration that combines an interpreted language w ith a graphical front end that allows researchers to rapi dly prototype and deploy new visualizations. GUESS also contains a novel, interactive interpreter that connects the language and interface in a way that facilities exploratory visualization tas ks. Our language, Gython, is a domain-specific embedded language which provides all the advantages of Python with ne w, graph specific operators, primitives, and shortcuts. We h ighlight key aspects of the system in the context of a large use r survey and specific, real-world, case studies ranging from soc ial and knowledge networks to distributed computer network analysis.
Article
In a previous article, the authors demonstrated that avoiding several common design errors in Web Service Description Language (WSDL) documents helps developers effectively discover Web services. Their proposed guidelines are unfortunately applicable only when publishers follow the top-down, or contract-first, method of building services, which lacks popularity due to its inherent costs. Here, they present an approach for preventing such errors when using a counterpart - method namely, bottom-up or code-first - and measure the approach's impact on service discovery.
Article
This paper presents the research results of an ongoing technology transfer project carried out in cooperation between the University of Salerno and a small software company. The project is aimed at developing and transferring migration technology to the industrial partner. The partner should be enabled to migrate monolithic multi-user COBOL legacy systems to a multi-tier Web-based architecture. The assessment of the legacy systems of the partner company revealed that these systems had a very low level of decomposability with spaghetti-like code and embedded control flow and database accesses within the user interface descriptions. For this reason, it was decided to adopt an incremental migration strategy based on the reengineering of the user interface using Web technology, on the transformation of interactive legacy programs into batch programs, and the wrapping of the legacy programs. A middleware framework links the new Web-based user interface with the Wrapped Legacy System. An Eclipse plug-in, named MELIS (migration environment for legacy information systems), was also developed to support the migration process. Both the migration strategy and the tool have been applied to two essential subsystems of the most business critical legacy system of the partner company. Copyright © 2008 John Wiley & Sons, Ltd.
Article
Service-oriented software is being hailed as the next revolutionary approach to software development. Service orientation allows organizations to rapidly and dynamically form new software applications to meet changing business needs, thus alleviating the software evolution problems that occur with traditional applications. The largest of these problems is the need to understand existing software before changing it. This article looks ahead toward the automated construction of service-oriented software, discussing software understanding in the context of service orientation and identifying potential new problems. The authors conclude that, while service orientation certainly helps solve some aspects of the evolution problem, software comprehension takes a new and potentially more challenging role.
Article
Service-Oriented Computing (SOC) is a new paradigm that replaces the traditional way to develop distributed software with a combination of discovery, engagement and reuse of third-party services. Web Service technologies are currently the most adopted alternative for implementing the SOC paradigm. However, Web Service discovery presents many challenges that, in the end, hinder service reuse. This paper reports frequent practices present in a body of public services that attempt to prevent the discovery of any service. In addition, we have studied how to solve the discoverability problems that these bad practices cause. Accordingly, this paper presents a novel catalog of eight Web Service discoverability anti-patterns. We conducted a comparative analysis of the retrieval effectiveness of three discovery systems by using the original body of Web Services versus their corrected version. This experiment shows that the removal of the identified anti-patterns eases the discovery process by allowing the employed discovery systems to rank more relevant services before non-relevant ones, with the same queries. Moreover, we conducted a survey to collect the opinions from 26 individuals about whether the improved descriptions are more intelligible than the original ones. This experiment provides more evidence of the importance of correcting the observed problems.