Home Unix/Linux Mainframe Other Servers Software Reviews
 
 

  SoftwareMining: In-Depth  

Exclusive Interview with 

Dr. Cyrus Montakab  

Founder & CEO  
SoftwareMining
  

"I setup SoftwareMining to address the need for COBOL legacy transformation. However, during its existence we have engaged in a lot of work in COBOL and Java architecture and design, in addition to migrations."

SoftwareMining is a leading supplier of tools and services for rapid modernization of legacy COBOL applications.  It provides a proven, cost effective route for quick and risk-free migration.  Softwaremining unlocks the value in legacy systems by transforming them into Java/JSP and C#/.NET through a unique, heuristics driven, semi-automated process developed by Dr Cyrus Montakab. With SoftwareMining you will be able to migrate your COBOL applications to maintainable J2EE compliant Java or .NET C# within 1 year.

SoftwareMining's tools and expertise permit and facilitate:

      change of application architecture from COBOL to easily maintainable and strategic Java or C#

      automatic generation of legible, 'future-proof' applications ideally suited for SOA-centric solutions

      automated, heuristic [i.e. AI technology-based] application clean-up; i.e. removal of dead code

      automated and dynamic re-documentation

      automated extraction of business processes and rules for reuse in other applications per SOA principles

The platforms already supported by Softwaremining include: CICS, IMS, IDMS, ESQL, HP e3000, DEC VAX, ICOBOL, MicroFocus, AccuCOBOL, WANG, STRATUS, SHADOW, BULL, UNISYS, FUJITSU, HITACHI and TANDOM.

SoftwareMining was founded in 1993 by Dr. Montakab, an experienced software engineer. Dr. Montakab is a specialist in Artificial Intelligence (AI) and SoftwareMining's tools were developed originally from a project of Dr. Montakab's, using his knowledge of AI to create CORECT (COBOL Reverse Engineering Translation Tool). CORECT was created to translate COBOL into 4GL, then Visual Basic, and more recently into Delphi and Java - which it generates as an Applet or Application.

By 1999 CORECT was able to generate Java code for HTML/Servlet architecture and in 2000 additional development resources were brought in to handle J2EE and XML as well as produce flowcharts and documentation from the source COBOL code, thus offering the market a uniquely valuable, affordable and commercially risk-free alternative to the byte-code translators available from competitor organizations.

SoftwareMining now produces commercial transformation tools and offers a total transformation service package through strategic partnerships with companies that support and enhance CORECT, and provide migration services on four continents. SoftwareMining also provides architecture design and programming consultancy in e-commerce, migration and transformation to global companies such as Deutsche Bank, Sema Group, and SwissRe Insurance. SoftwareMining is a registered technology partner of IBM, Borland and Sun Microsystems, as well as an active member of OMG Legacy Transformation Work Group.

Dr. Cyrus Montakab, gives us an exclusive, in-depth look at what is possible with SoftwareMinning's technology and services in this interview with Anura Guruge, IT In-Depth's editor at large.


Q1: Cyrus, to cut to the chase, and also to grab the our readers attention, is there a SOA-related play you can have by using your tools to create Java- or NET-based services from COBOL routines?

A1: Absolutely!

      We are currently working with a client which wants SOA.

Basically, any COBOL batch program can be easily turned into SOA.

Much of the original code typically focuses on Business Logic.

Therefore the translated code is basically Business-Logic oriented: How an invoice is calcalated or how an order is processed.

The translated code Java code - sits on top of a Framework which controls the application 'plumbing'.

The plumbing controls various non-business related activities such as Database Access (JDBC or via EJB), Screens JSP, XML or AWT, deployment: Tomcat, WebSphere or WebLogic, or Java Application .. One . of the features of the framework is how the programs communicate with each other: Is it native Java, EJB Invocation, RMI or SOA.

So, provided that the translated code can act like a Service (take an input, process it and return an out-put without any user interaction) - then we can turn that piece of code into a SOA.

Q2: Cyrus, are there any practical limits as to the size [e.g. number of COBOL statements] of COBOL application that can be converted with your technology

A2: The translation of 'business logic' part of a COBOL program results in a Java or C# program of similar size.

So - the real limitation are the one dictated by the target language.  A 50K Lines of Code (LOC) Cobol program is big - but acceptable.

A 50K LOC program in Java is not too desirable - as it may cause memory and performance problems.

We offer 2 means of breaking down large programs:

The first method is by identifying the unrelated areas of code - and then breaking down the program at these points.

The second method is by Business Rule Extraction (BR). The BRE module is based on providing Data and Statement-Type filter criteria. Most programs do a variety of tasks. For example, a Order-Processing program may calculate invoice, update inventory records, have data-entry screens, and etc.

The BRE allows extraction of related code using 'data' and 'statement-types' filters! For example, it can be asked to show "ONLY non-screen-handling, and non-file/db-handling statements which are involved in handling INVOICE record". this will lead to a section of program ONLY showing how the value of invoice is actually calculated

Each large programs can undergo many BRE cycles - breaking the program into smaller - more logical units.

Q3: Cyrus, are there any platform-related limitations when it comes to the conversions [e.g. I/O, services etc.], and if not, can you take a mainframe COBOL program and convert it so that I can run it on a Windows 2003 server?

A3: Typically each COBOL platform uses its own set of libraries; e.g. IBM CICS and IMS, HP TurboImage and VPLUS, Unisys DMS-II etc.

Most of the time there each of the library calls have a good equivalent in Java.  We have needed to develop our own support libraries for these for the following reason.  A single CICS API may be translated into several lines of Java code. We don't want to insert these 'several lines of Java code' into the actual business logic.  That is a bad practice. Instead, we have moved these lines into our own set of libraries. The translated business-logic will just reference the API in these libraries. Currently we have libraries for CICS, IMS, UNISYS DMS-II, BULL, IBM Shadow and HP.

To-date, we haven't come across anything that we have not been able to handle when it comes to migration.

Q4: Cyrus, I see that you also talk about “outsourcing”.  How does this work and given that in the U.S. IT outsourcing is indelibly associated with India, do you also use resources from India?

A4: Currently our outsourcing arm is based in St. Petersburg, Russia.  But we are also discussing the possibility of working with selected Indian outsourcing companies. This will give us a bigger expansion path and the possibility to have coverage over a bigger portion of the working day.

Q5: Cyrus, with ‘re-documentation’ and ‘business rules extraction’ capabilities that you offer, is there a strong
BPM angle possible with your solution set?

A5: The BRE can indeed be used to extract business rules - which can be massaged back into a working application, or they can be used for documentation purposes; i.e. - the following BRE will show how to calculate the value of an Invoice ....

However, we do not see this as a part of Business Process Re-engineering if that is what you mean by BPM.

We believe that the application re-engineering should be done AFTER the translation.

In other works - we think that translation is the first step of an iterative process.  So the first task is to move the code from COBOL to Java or C#. Once the application is moved over, and works fine - the client can move it into 'production' environment - and get a good ROI.

If necessary, then the client can engage in the next step - to further cleanup the application and if necessary re-factor the code.

Q6: Cyrus, as my last question, have you folks, given your hands-on experience, seen any tangible advantages towards opting for either Java or C## [e.g. performance], in preference to the other, or doesn’t it really make a difference – and as a subsidiary, follow-on question, do you folks steer customers towards one language as opposed to the other?

A6: The biggest advantage of Java is that it can be developed on relatively cheap hardware (Windows PC's) - and then deployed on the BIG Unix boxes or even an IBM mainframe.

C# runs faster than Java - but then the biggest machines that you are going to run C# apps is going to be
64-Bit XP!

C# is a recent development for us. We are jointly looking with Microsoft to find smaller COBOL applications to translate into C# - and see how it performs.

 

Thank you very much Cyrus.

Cyrus this was dynamite.  I learned so much from you, very quickly.  I have been involved with legacy transformation, in one way or another since 1996, and you have opened my eyes to some very exciting possibility.  I am SOLD.  I know that our readership will lap this up.  You should be getting a lot of calls soon.  This was great Cyrus.  Many thanks, especially since I know how busy you are right now.