|
![]() Connecting Legacy Software to the WebA cheap, low-risk alternative to the massive Java rewriteL et's say you have some legacy software program that your company produced years ago and it is still useful even if it was written in Fortran, Cobol or Sanskrit. As is commonly the case with engineering companies, this legacy software has evolved to encompass some of the specialized knowledge your company commands. Today's mission is to project the corporate compe tence by allowing users to use this software across the Web. One of the more practical reasons cited is the user interface. If you experienced some training challenges getting users to understand your legacy software's interface, the Web could put that behind you. The browser's interface means there will be no user interface training. This can be analysis software that demonstrates corporate expertise, a design tool helping to select among your products, or even your accounting software yielding a customer's order status. The pressure is mounting to port such software to Java. Its compatibility to the Web is unsurpassed, and it is the language of the future--or is it? The trade journals are certainly beating the drum, but the skeptics are starting to come out of the closet, including in my own article Java, a Balanced Perspective." For a thousand lines of analysis code, a Java development project may be the ideal approach to evaluating a new langua ge, but software that reflects a company's core competence may have passed 100,000 lines as it accumulated years of evolving knowledge. If the conversion budget is not in the checkbook, or the spirit of adventure is similarly absent, then we can discuss alternatives. One of the first, sometimes with a clever name such as middleware, requires developing a Web interface so users can simply operate your software across the Internet. This Web interface is often back to Java as the programming language, or perhaps ActiveX, and the scope of effort varies widely depending on the I/O complexity and speed of your legacy software. Your software's speed is an issue because a browser will produce a nondescript error message if your middleware fails to produce a response within 120 seconds. There is sometimes a way to get around this, but the problem is inherent to the Internet as a stateless system that doesn't track users or the status of their requests. Like so many surprises involving nascent technology, t his annoying detail is sometimes revealed after middleware has been developed that is otherwise functional. Now for an alternative that is cheap and low-risk, but only if you are solving a common subset of the Web-interface problem. For this alternative, the legacy software you wish to connect to the Web cannot be iterative, like a spreadsheet program, where the user tries an input, gets a result and immediately tries another input based on the result. Your software can:
Step 1: Design Web pages to collect the user input, typically through online forms. This can include simple fill-in fields, perhaps with a few snippets of Javascript for entry validation, and links to help pages to explain the desired entries. Pick lists and buttons can replicate much of your legacy software's existing user interface. You can include file attachments from other application programs or simply suggest a clip-and-paste into Web form fields. Step 2: After the user presses the "Submit" button, even the most primitive Web server will produce an e-mail message for your mailbox with the user's selections. This message is simply ASCII text in a repeating format that lends itself to straightforward parsing. You could probably write in a day a parser that produces an input list in a format palatable to your legacy software, assuming, of course, that it can read input from a file. Step 3: You now run your legacy software and specify the input data file parsed from the e-mail message in Step 2. You can clip and paste the result into an e-mail message back to the user, or you can write post-processor to your legacy software that does it automatically. Remember that the e-mail message you produce is almost always just ASCII text, and most e-mail software provides a way to add messages into their queues. If your result requires graphics, you produce the file in the format your users want and attach it to the message. Step 4: The user gets your response as an e-mail message. In the case of an iterative program, this would be unacceptable since your users would prefer an instantaneous response on a Web page. Except for those cases, the proposed approach is usually superior when you consider what engineers would do with the result of your legacy software if the result appeared as a Web page. They would typically save the resulting Web page to their hard drives, and then do something with it (paste it into a report, input it into their software programs, etc.). Their e-mail programs are already set up to gather a nd store information, and sometimes to pass the info to the next step. Viewing a Web page result is not. Steps 2 and 3 can be automated by running your legacy software in an endless loop that either runs the parser if an e-mail message is found in a specified mailbox (and processes the resulting input data file) or loops to check for the message again. If you are looking for a quick proof-of-concept demo, look to your accounting software. Customer requests for order status or statement of account are hardly iterative, and most serious accounting software comes with a 4GL or database development environment for customization. If the report generator reads report specs from an ASCII text file, for example, you may only need to write the e-mail parser. Produce the online form for customers to request an order status or statement of account, and you're done. Once that is up and running, you can tackle the more complex I/O of some of your company's remaining legacy software. You can gather more support after you demonstrate total success on a small project than partial success on a big project.
Not only is the approach described in this article simple, reliable, cheap, secure and quick to implement, but consider these other benefits:
![]()
![]()
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Home | About | Editorial Calendar | Feedback | Subscriptions | Newsletter | Media Kit | Contact | Reprints| RSS|
Digital| Mobile |
| Network Websites |
|
International |
|
Network Features |
|
|
|
All materials on this site Copyright © 2010 EE Times Group, a Division of United Business Media LLC All rights reserved. Privacy Statement | Terms of Service | About |