Nexaweb attacks Web app performance, but neglects data management.
Some companies market integrated development environments (IDEs) to be "all Java," "data oriented," or "driven by business process management." Nexaweb Technologies' Nexaweb is built on a different kind of premise (I'm taking liberty with characterization here): "The Web environments for applications and most Web applications suck." More specifically, most Web applications are slow and unresponsive to the user. They also lack the richness of user interface people are accustomed to from their desktop software. Insofar as these assertions are true, Nexaweb offers a significant solution.
I'll go into some detail on the technology behind Nexaweb because it's a young company with bright ideas, and the ideas are interesting even when the implementation has yet to be fully realized.
A Novel Platform
Nexaweb's model for a Web application deployment platform has three main elements: a Nexaweb Server running in a Java application server; a messaging system based on XML; and an intelligent Java thin client running in a browser. In this tiered Java-XML-Java approach, there's no HTML and no scripting language. The innovation is using XML to transmit data, logic, and user interface (UI) instructions from server to client (and vice versa), all in the service of better performance and a better user experience.
Heavy on the Server
The server side of Nexaweb is relatively traditional, if Java can now be said to be traditional. The operational environment is a J2EE application server, which can be IBM WebSphere, BEA WebLogic, Oracle 9 Application Server, JBoss, or Apache Tomcat, the last of which ships with Nexaweb Studio. The Nexaweb Server is loaded into the application server and performs the heavy lifting for Nexaweb-enabled applications. Its main task is the transformation and management of data, business logic, graphics, and UI descriptions to and from the Nexaweb clients. It uses servlets, JSP, and EJBs to do this work, and much of a Nexaweb application is programmed into similar components.
PRODUCT SPEC SHEET
Ten Canal Park
Cambridge, MA 02141
Minimum Requirements: JRE (Java Runtime Environment) 1.3; a Java Servlet Container supporting JSS (Java Servlet Specification) 2.2; 256MB RAM (1GB recommended); 400MHz CPU (1GHz recommended); JVM (Java Virtual Machine) 1.1.5 for the client browser.
Platforms: Windows 2003 Server (with Apache Tomcat) or Windows 2000 (with IBM WebSphere, BEA WebLogic, Tomcat, or Oracle AS).
Pricing: Based on server CPU and number of sessions. Starting price is $20,000 per deployment.
This version of Nexaweb supports server clusters — multiple instances of the Nexaweb Server, each of which can theoretically support up to 1,000 client sessions — and each of those sessions can process hundreds of transactions per second. I say theoretically because Nexaweb's architecture makes benchmarking this system difficult, and performance is obviously tied to the capabilities of the host application server. What I can say is that while clustering is supported, Nexaweb doesn't provide much in the way of cluster management or monitoring tools.
Magic in the Message
As I mentioned earlier, the main task of the Nexaweb Server is transformation and management of data, business logic, graphics, and UI descriptions to and from the client — the messaging system. The transformation is largely to repackage the information into XUL (pronounced "zool") and graphics into Scalable Vector Graphics (SVG), a W3C standard for describing 2D graphics in XML. By reducing complex graphical and UI commands into terse, compressed XML and updating with incremental changes, the amount of communication between the client and server is kept to a minimum. The workload, especially with MCOs, is allocated between client and server to maximize speed and responsiveness. This is how the "magic" in Nexaweb is performed.
Light at the Client
The Nexaweb client is installed at run time within a browser and, at around 165K, loading usually isn't perceived by the user. Essentially, the client handles its end of network communication, executes MCO business logic, displays the UI, and manages client-side events. Nexaweb is insistent that developers stay within the limits of JDK 1.1 (an early version of Java) for client-side programming so that applications can run on any platform and any browser. The goal is to provide the widest possible deployment, with the greatest benefit from central storage of the application, and enhanced performance.
Figure 1:Nexaweb Studio provides the visual surface for developing Web applications that use XUL (XML user interface language) for the client program.
How Enterprises Are Attacking the IT Security EnterpriseTo learn more about what organizations are doing to tackle attacks and threats we surveyed a group of 300 IT and infosec professionals to find out what their biggest IT security challenges are and what they're doing to defend against today's threats. Download the report to see what they're saying.
IT Strategies to Conquer the CloudChances are your organization is adopting cloud computing in one way or another -- or in multiple ways. Understanding the skills you need and how cloud affects IT operations and networking will help you adapt.