Once a favorite among developers for writing fast, smart yet powerful applications, PowerBuilder had close to 100,000 users during its peak time. PowerBuilder and its revolutionary Data Window, a data-handling object, were an instant hit with many developers. PowerBuilder offers a rich set of tools that aid not only in interface development, appearance and behavior, but also in reporting and providing a direct and simplified approach to database content. Data Window was the big difference that made PowerBuilder distinct and stand apart from other Database Management System vendors.
It is still favored by the developers for developing business and enterprise wide solutions, which offers speed in performance by uniting seamless data access with its rich palette of UI controls.
PowerBuilder is as good as before for developing client/server application on local/wide area network but fails to impress as an option for developing web/mobile solutions or as a “lift and shift” modernization option.
PowerBuilder still has an active, vibrant and loyal customer base that vow to continue to use its unassailable features and sheer ease in development.
Few years back, Sybase initially supported the deployment of PowerBuilder components (PBNVO) as CORBA in multiple application servers and took it further to support deployments on WebSphere and Weblogic via plug-ins. Though later very little was done by Sybase which had started realigning itself towards .NET as its preferred platform for PowerBuilder deployments as could be seen in its Version 12.0 that completely supports .NET framework and deploys managed code in a compiled form.
All this with a catch though. The PowerBuilder Version 12.0 allowed the PowerBuilder codes to be deployable in .NET environments but it required a lot of tweaking efforts in reality, especially for the earlier versions of PowerBuilder.
Moreover PowerBuilder still relies heavily on PowerScript as its scripting medium and does not allow the developer to edit directly into .NET languages like VB.NET, C# or ASP.NET leaving enterprises to depend on two vendors, Microsoft and Sybase for ensuring compatibility and stability between the two.
This situation leaves the customer with little choice but to either go in for:
No tool or an upgrade can provide a single click migration interface for moving legacy code to newer technologies; a proposal certain vendors claim their tool can deliver.
Migration of legacy code involves not only the translation of code to suit the new technology, but also the design and porting of a new architecture, data elements, infusing new technological capabilities and other functional and non-functional demands all of which require manual intervention with high quality functional and technical expertise.
Single click migration is a mere marketing gimmick to influence customers into believing that it is possible.
Some vendors claim that they can deliver a 100% migration using their suite which is appealing for any legacy modernization plan, yet unconvincing at the same time, as there is no single tool or set of tools that would ensure total automation in the modernization process of legacy application along with its code, design, flow and data.
Manual intervention is an ineluctable role in the modernization process, most evident during project management and analysis also as not all complex code characteristics can be readily upgraded by a tool.
Technological divergences between legacy and target platform furthermore render automated translation of language elements difficult. At best, migration through the use of tools can be automated effectively only up to 60%-70% and can help generate target code, artefacts etc. The percent of automation depends on other factors such as congeniality between legacy and target platforms, architectural changes, code standardizations and additional requirements.
Until a few years ago “information” was the nucleus for any business application system and the success or failure of the application solely depended on how effectively and efficiently information was designed and handled. The applications were built keeping in mind the information’s scope, need, reach and access prerogatives.
Due to emerging IT trends “technology” and “user experience” have lately also become crucial to any business application design along with “information”. Such is the situation that application(s) which ignore these trends are branded “legacy” for not keeping up with changing times.
To give an example, the impact of mobile computing has forced businesses to rethink and realign their business processes and their legacy application systems with these emerging trends to stay competitive. These technological waves and its associated user experience cannot be ignored as they create multiple challenges and opportunities for business houses.
Elements for a solid and mature application framework are drawn from the needs of its primary drivers; namely, business motives, corporate policies, competitors benefits, user experience, etc. These drivers are combined with abstract business functionality bundled with attributes like maintainability, security, reliability, availability and usability.
Application framework forms the technical foundation base on which functional modules and utilities are developed. The maturity of these functional units depends on the extent of coverage with respect to the actual business requirements.
Over time, applications often lose their business value and proposition due to constantly changing business needs and IT trends resulting in a wide gap between the actual usage and prevailing business needs.
The continued maintenance of these applications can only assure continual usage of the application and enhancements can at best instil moderate benefits to application usage. The burgeoning gap between the “almost static” architectural framework for the application and the current business/IT trends could only be bridged by a full blown architectural restructuring that would address all functional and non-functional requirements.
Legacy modernization refers to the porting of legacy systems to a modern programming realm by retaining and extending the value of the legacy investments to new platforms. A definite modernization program also involves architectural driven modernization to accommodate all necessary functional and non-functional requirements that are needed for addressing current trends and tackling future initiatives.
Any approach for architectural restructuring must include:
Architectural restructuring is a complex task that involves deep and thorough understanding of the existing application architecture, framework and standardizations. Further, it is essential that the precise modernization process and methodology with a clear focus on future requirements, corporate initiatives and directions is adopted.
ZSL adopts the Factory Model Approach, the most appropriate and favored development technique for designing frameworks. This approach has a distinct advantage over other methods because objects can be selected and created based on need and purpose at the time of execution.
The following are some of the techniques that are employed in architectural restructuring:
Legacy code is analyzed and grouped according to set activities and processes that they perform relating to either business functionality or application behavior and are encapsulated in classes.
These classes form part of the architecture based tool set, which is a collection of all the functional and non-functional units of the application. Based on the target technology selected for modernization and code feasibility in implementing a particular functionality in the target platform, the appropriate activity and/or process from the project specific toolset will be picked for architectural restructuring.
.NET comes in different flavors – WinForm and WebForm. As the name suggests, WinForm is used for client/server enterprise application development while WebForm is for providing users with a browser interface.
Modernization of PowerBuilder applications to WebForms provides much wanted global accessibility, which is missing in PowerBuilder. Users from any part of the world can access the application through a web browser.
MVC, Model/View/Controller is a software architectural pattern that “isolates” the domain logic from the user interface, thereby permitting independent development, testing and maintenance of each component. This pattern is the latest “mantra” in software circles and many frameworks have been designed using guidelines created for incorporating MVC.
Migrating to WebForm using MVC and without MVC is no different as far as user accessibility and experience are concerned.
WinForm is a Windows application supported by .NET and allows modernization of legacy applications to Windows Form client/server applications providing the same flexibility, look and feel of the PowerBuilder application
JAVA is a confluence of several software products based on specifications spelled out by Sun Microsystems, which provided the base for developing application software in a cross-platform environment.
Since there are numerous products in the JAVA realm, it becomes imperative that the right choice is made in moving from PowerBuilder to JAVA. Important factors that need consideration include the various technological benefits and development ease of single-vendor solution vs multi-vendor dependencies.
Oracle’s Application Development Framework, usually called Oracle ADF, is a comprehensive Java framework for building enterprise wide applications. Similar to PowerBuilder it also has a visual and declarative approach to development and helps in developing rapid applications based on ready-to-use design patterns, metadata-driven and visual tools.
ADF is based on the MVC pattern wherein there is a clear “separation” of the domain logic from the user interface, thereby permitting independent development, testing, and maintenance of each separately without disturbing other functionalities. Now that Sun has been taken over by Oracle, Java specifications and its future lie entirely with Oracle, who is one of the world's largest technology providers.
Java Server Faces (JSF) is a Java based Web Application Framework intended exclusively for development and integration of web-based user interfaces. Like ADF, JSF is based on the MVC pattern creating a clear “separation” of the domain logic from the user interface, thereby permitting independent development, testing and maintenance of each separately without disturbing other functionalities.
PrimeFaces is a User Interface framework used for front-end development. Combining PrimeFaces with Spring, a middleware framework, creates a powerful approach in application modernization.