Nexawebホワイトペーパー Developing with Nexaweb ~ Nexaweb to Improve Development Productivity and Maintainability Nexaweb Technologies, Inc. February 2012
Overview Many companies today are creating rich internet applications (RIAs) that have a very interactive style, similar to desktop software. Unlike traditional, click and refresh HTML page applications, they can push real time information updates to users (such as financial market data) and support keyboard intensive transaction processing workloads such as call center customer service applications. These new internet applications have these characteristics: Complex, dynamic workflows Dynamic data visualization Large, or real time data throughput The ability to be used offline RIAs are commonly created by organizations that want to: Migrate legacy client/server application functionality to the web so it is easier to access by remote employees or by partners or even customers. Create new Software as a Service (SaaS) businesses that offer web based replacements to traditional client/server applications like customer relationship management (CRM), enterprise resource planning (ERP) and others. Create new web applications that support real time exchange of information with users, and often feature interactive graphics such as charts and maps. Of these three, legacy modernization is often the most difficult. Unlike new applications, the legacy scenario can be complicated by: The need to understand and reuse legacy code and databases The need to modernize not only the software, but the skills of the existing (legacy) project team The need to meet or exceed the performance and usability expectations of legacy users And for all scenarios, enterprise RIA applications typically require the implementation of application frameworks for handling application execution, role based permissions, database access, serviceoriented architecture (SOA) service access, user interface interactions, mobile/desktop device support and more. These frameworks are complex, error prone and can take many months to design and implement. Nexaweb provides software to help companies create RIAs and avoid the complexity, cost and risk of building a J2EE based RIA framework: Legacy Code Analysis & Conversion tools Nexaweb J2EE and Ajax Reference Frameworks Nexaweb Internet Message Bus Declarative RIA user interface (UI) framework and an Eclipse based Nexaweb Interactive Development Environment (IDE) for using it
Nexaweb customers have reported that the Nexaweb software reduces the amount of manual development time, cost and risk by as much as 65%. This leads to faster, lower cost delivery and higher application quality. This paper describes the Nexaweb RIA and application modernization technology so you can understand how it compares to developing without it. Modernizing Legacy to RIA Legacy Code Analysis Modernizing legacy applications to RIAs should begin with an analysis of the legacy source code. Having a firm understanding of the legacy application helps the project team: a) Identify legacy code (e.g., stored procedures, libraries, etc.) that can be re used and how to reuse them b) Understand the application functionality better. Detailed calculations and workflows might not be evident to the project team without analyzing legacy code. Analysis helps you understand the business requirements better If detailed system documentation exists, this step should be easy. Unfortunately, this is seldom the case, and legacy analysis can be an expensive and time consuming. Analyzing and documenting PowerBuilder applications took one consumer packaged goods company up to 40 person days per DataWindow. In just a few hours, the Nexaweb Code Analyzer can analyze PowerBuilder and other legacy languages to produce the following system documentation: A high level overview Breakdown of DataWindows by type and detailed analysis of all controls, referenced DataWindows, events and previews of the window including code references Detailed breakdown of all source code artifacts Comprehensive source code statistics reports A full list of dependencies
Sample Nexaweb Code Analyzer Output Generating Web Application Code from the Nexaweb Code Analyzer If your target application architecture is the J2EE based Nexaweb Reference Framework (described below), then the Nexaweb Code Analyzer can be used to generate the following based on its understanding of your legacy code: Spring Controller Configuration ibatis ORM entries Java beans representing queried data Object Marshaling moving the response back to the client Data binding syntax Interface to manually written code Automatic application generation speeds up development and eliminates the risk of manual coding errors.
Nexaweb Reference Framework Pre Built Application Assembly The Nexaweb Reference Frameworks, for Java and for Ajax, accelerate RIA development. The Frameworks combine Nexawebdeveloped code with open source components (such as Spring, Struts, ibatis, Hibernate, etc.) to handle security, user interface interactions, workflow, SOA access, and other functionality that is common to most RIA applications This allows you to focus on highervalue added development, including the business logic that is unique to your company. The Frameworks have been shown to reduce manual Java and Ajax coding overhead by as much as 67%. The Nexaweb framework reduced the lines of code we needed by 65%, cutting 18 months off our original transformation schedule. The Nexaweb Reference Frameworks include universal clients, which enable your web application to run as a Java or Ajax application in any browser, running on any platform, including mobile devices. Nexaweb's Ajax and Java clients download automatically (in seconds) to a standard Web browser, and
intelligently cache data and program components on demand, to minimize network overhead and optimize response times. The Nexaweb Universal Client delivers: Rendering of GUI controls Data validation for verifying user input Support for Section 508 Accessibility Automatic caching of data The ability to apply client software upgrades in the background Support for off line usage; it will synch updates with the server when reconnected An ultra thin client for desktop style functionality within any browser on any platform or mobile device Declarative User Interface Markup Language & IDE Creating highly interactive RIAs has historically required hardcore messaging, security, and user interface development in Java. Nexaweb includes two features to make this easy. Declarative UI Markup (XAL) Legacy application developers will find it very easy to produce RIA user interfaces using the Nexaweb UI framework called XAL. The code samples below illustrate the relative easy of XAL versus using Java Swing or Javascript, which is harder to learn and very difficult to maintain.
Java Swing UI Code Example public class SwingSample { JFrame mainframe; JButton clickmebutton; JLabel helloworldlabel; JWindow window; public void addcomponentstopane(container contentpane) { helloworldlabel = new JLabel ("Hello World!"); clickmebutton = new JButton ("Click Me!"); clickmebutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { clickmebutton.settext("text Changed"); ); contentpane.setlayout(new BorderLayout()); JPanel panel = new JPanel(); panel.setlayout(new FlowLayout()); panel.add(helloworldlabel); panel.add(clickmebutton); contentpane.add(panel, BorderLayout.CENTER); public void createandshowgui() { mainframe = new JFrame("Sample"); mainframe.setdefaultcloseoperation(jframe.exit_on_close); addcomponentstopane(mainframe.getcontentpane()); mainframe.pack(); mainframe.setvisible(true); public static void main(string[] args) { SwingSample swingsample = new SwingSample(); swingsample.createandshowgui(); Nexaweb XAL Equivalent <window> <label text= Hello, World! /> <button text= Please Click Me oncommand= event-handler.jsp /> </window>
The two code examples makes it clear to see that the declarative UI framework is easier to create and maintain. Nexaweb Studio Nexaweb Studio is an Eclipse based Integrated Development Environment (IDE) that enables visual, drag drop development of rich internet applications (RIAs). It simplifies user interface design, business logic integration with visual wizards, a source editor, syntax validation and UIto logic component mapping and more. Nexaweb Internet Message Bus Real time Data Exchange between Browser and Server The Nexaweb Internet Messaging Bus provides reliable, secure, two way message processing between Web application servers and browser clients. It vastly simplifies the creation of RIAs that bi directionally transfer data between the browser and server by eliminating the need for developers to create protocols, encode and decode messages, understand cloud topology and the communications and networking intricacies that web based client/server programming has traditionally required. Internet Messaging Bus features: Support for Publish/Subscribe, Server Push or Broadcast messaging Optimized message delivery, guaranteed order of delivery, and queuing should the connection between client and server be interrupted Load balancing and failover for high scalability and high availability Easy consumption of SOA services Rapid deployment utilizing Eclipse workbench tools Summary In conclusion, Nexaweb provides application developers with a set of code analysis and generation tools and pre built application frameworks that make it easier, less expensive and less risky to create RIAs. The Nexaweb software has been used by hundreds of companies in North America, Asia and Europe. An independently audited project at Nokia Siemens helped quantify the positive impact of the Nexaweb software:
Nokia Siemens used Nexaweb to deliver a web based application for preparing request for proposal responses to clients seeking proposals for large telecom networks to be created. They reported that the Nexaweb approach and software cut 18 months off their original project estimate. The resulting application is 60% less expensive to administer than the 4 systems it replaced, and sales people now complete RFPs within two hours instead of 30+ days. If you would like to learn more about Nexaweb application development software, please visit www.nexaweb.com or contact us directly to schedule a discussion about your project. Worldwide Headquarters Nexaweb Technologies, Inc. 3 New England Executive Office Park, Suite 150 Burlington, MA 01803 Tel: 781 345 5500 Nexaweb Japan Nihon Nexaweb KK 7F Bureau Ginza, 4 1 12, Tsukiji, Chuo ku, Tokyo 104 0045, Japan Tel: +81 (3) 3541 5061 http://www.nexaweb.co.jp/ jp_info@nexaweb.co.jp