Last update: 2011 Jan 9
The Natural Approach
ItsNat is an innovative open source Java AJAX Component based Web Framework, it offers a natural approach to modern web development.
Why natural? ItsNat leverages the old tools to build the new AJAX based Web 2.0 applications: pure (X)HTML and pure Java W3C DOM!
ItsNat is server centric using a unique approach called TBITS, "The Browser Is The Server". ItsNat simulates a Universal W3C Java Browser at the server, with ItsNat the server mimics the behavior of a web browser, containing a W3C DOM Level 2 node tree and receiving W3C DOM Events.
How it works
From server the developer can register W3C DOM Event listeners listening for W3C DOM events. This registry is automatically propagated to the client, when the user, for instance, clicks a "listened" element the real browser event is sent to the server using AJAX, converted to a W3C DOM event and received by the server based listener(s).
The DOM is used to modify the original tree/layout on loading time or as a response of a AJAX event, this original layout is defined using pure (X)HTML/SVG/XUL/XML based templates with absolutely NO logic! (extreme separation of view and logic). If the modification is big ItsNat provides "template fragments", a template fragment is a piece of markup that can be inserted (included) as DOM into the main tree statically or dynamically (typically as a response of a user/AJAX event).
Don't worry about the memory size of a DOM tree, ItsNat provides a smart DOM tree cache in a serialized form (pure text not DOM) for the static parts of a page/fragment shared between pages and DOM subtrees no longer going to be used can be removed only in server.
This approach perfectly fits with the Single Page Interface web paradigm. In typical ItsNat applications there is no reload, no page navigation, no back and forward problems, the methodology used is more similar to the desktop style of development.
As of v1.3 ItsNat provides a new stateless mode, in this new mode there is no page state kept in server allowing horizontal scaling to multiple symmetric servers with no need of session replication or server affinity!!
ItsNat provides many more (core) features:
A Component System
ItsNat also provides a Component system (constructed over the Core level). These components are AJAX based from the scratch inspired in Swing and reusing Swing as far as possible such as data and selection models (but ItsNat does not want to be a Swing forced clone in web, is not a pixel based web framework).
ItsNat provides several button types, text based components, labels, lists, tables, trees (all of them with content editable "in place"), file upload based on AJAX...
The most interesting feature is: any element can be a component, for instance any element can be a normal button, a check box, a radio button, any element list may be a combo or a list component, for instance a group of SVG circles may be a multiple selection list component. Furthermore components can be used to generate XML!!
ItsNat components are not intrusive, they are not "black boxes", you can customize and control every element used, every attribute. Components are highly extensible and customizable, for instance there is no default decoration when selection ItsNat tells you when and what has been selected, ItsNat may be seen as a meta-framework.
To do user defined components, for instance compound components, is amazingly easy.
ItsNat normal mode is stateful making use of server memory (and optionally sessions) to storing in server the browser state, when using multiple symmetric servers sticky sessions are required (unless session replication is enabled).
Stateless mode provides a new kind of Single Page Interface STATELESS SEO compatible Web Sites!!
What ItsNat is NOT, what is MISSING (deliberately)!
Requisites / Platforms
ItsNat is pure Java and runs in any Java Virtual Machine v1.5 as the minimum configuration and virtually any Servlet compliant container.
ItsNat has been tested in Tomcat v6 and v7, GlassFish v2 and v3, Oracle’s Java SE 1.6 developer kits.
Google App Engine is supported including AJAX with some limitations.
Supported desktop browsers (previous versions may work): Google Chrome, FireFox, Internet Explorer 6+ (including v9+), Opera 12.12+, Safari 5.1.7+
Supported mobile browsers (previous versions may work): Android 2.1+, BlackBerry JDE 4.6+ (Flip, Bold, Storm 1 and 2 and upper), iPhone/iPad/iPod iOS 6.1+, Opera Mini 4.x+, Opera Mobile 12.10+, S60WebKit (since S60 5th v1), S40WebKit (since S40 6th).up
ItsNat is open source GNU Lesser General Public License v3 (LGPL v3) licensed, this license allows closed source applications developed on top of ItsNat.
Alternative commercial licenses exist if LGPL v3 is not for you. More info.up
The ItsNat Feature Showcase, is a special Java AJAX web application developed with ItsNat. Follow this LINK.
More demos and web applications running ItsNatup
Download & Installation
The ItsNat distribution includes binaries, source code, javadoc, manuals and the ItsNat Feature Showcase.
Visit the download section.up
ItsNat is a product authored by the Spanish citizen Jose Maria Arranz Santamaria.up