What ever happened to client/server applications that were all the rage in the 1990s?
Attention to moving legacy systems into the service-oriented architecture (SOA) world has tended to focus on the most ancient of business computing systems, the giant mainframes of the 1970s with programs written in COBOL. But this week a new UML and best practices-based tools announced by Nexaweb Technologies Inc. focus on modernizing the client/server applications developed in the 1990s.
"You've got a lot of customers out there who have aging client/server applications," says Judith Hurwitz, CEO of the analyst firm Hurwitz & Associates. "They were built 10 or 15 years ago. You know the way software works, old software never dies. So the problem is these applications have been hanging around. They are awful in terms of how they use resources. They are hogs in terms of using desktop resources, server resources and they can't be modernized very easily because the technology is old. So customers need to be able to move the client/server apps into new generation technology with Web 2.0 interfaces."
Speaking on behalf of the Nexaweb Advance tools announced Monday, David McFarlane, the company's COO, paints an even bleaker picture of the state of client/server than Hurwitz does.
"It's kind of embarrassing to say, but most companies don't know how their enterprise applications work," he explained. "When they were written they weren't particularly well documented. Since then they've gone through 10 or even 15 years of scope-creep. New and ever different parties have participated in developing those applications to the point where they bear no resemblance to the original architecture.
This ignorance is not bliss, but a barrier to modernization.
He said IT departments frequently "lack the skills to go back in and reverse engineer these applications that are critical to running their business. So this has been a huge barrier."
The new Nexaweb tool creates a UML model of the application, he explained, so the customer can then use the UML model to determine how they want to proceed with modernization. It also documents how much spaghetti code there is.
"We often find through this process that 25-to-50 percent of the code in an application is redundant," McFarlane said. "It's been created through sloppy development processes where they cut and paste and hack their way through a development cycle."
Nexaweb's UML and best practices approach impresses Hurwitz, who said, "It's pretty cool what they're doing. They're using some of their consulting best practices to help migrate the data and the logic structure into a Web 2.0 services-based architecture."
McFarlane said that the Nexaweb tools can also auto-generate Java code for as much as 50 percent or more of the re-written application.
Hurwitz said this automation is part of a trend toward encapsulating best practices into software.
"It's not like black magic," she said. "It's a combination of codifying best practices, putting it into software. What they're basically doing is leveraging best practices. What do you do with automation? You take what you've learned from doing implementations and you codify that. So you're turning your learning into software. There's been a lot of that kind of thing done in software the last few years, taking best practices and putting it into software, so not everything has to start from scratch."
The Nexaweb approach to the "application transformation process" includes the following steps:
- Capture:Auto-generate documentation of legacy artifacts, logic, user interface (UI) elements and data maps in UML
- Re-factor: Eliminate duplicitous and corrupt code, review code for architectural integrity and deliver UI and business logic to customer-specified architecture
- Re-compose: Auto-generate XML from documented legacy code, add new features and modify workflow, design Web UI and functionality using an Eclipse-based IDE
- Deploy: Deploy Web application across any architecture including JSP/HTML through to Ajax and Java, on any JEE/Java, PHP, or .NET servers, and via the Web or the desktop
- Maintain: Centrally managed code base supports all users, whatever their client configuration and network connection type, to reduce application maintenance time and costs by 75% on average
"All of this operates in an SOA infrastructure," McFarlane said. "The development environment allows you to move your application to a shared services model. It makes sure your development process promotes the concept of reuse and operates with SOA policy and governance tools."