Home Overview Online Demo News Download Docs/Support Commercial
ItsNat Overview
Introduction
Features
Requisites / Platforms
Licensing
Online DEMO
Download
Docs & Support
Credits

Last update: 2009 Jun 23  

spiral Introduction


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

When the Java user code modifies the server DOM tree this modification is detected (using DOM mutation events) and automatically sent to the real web browser as JavaScript DOM based code, synchronizing the client DOM with the server. This approach fits perfectly well with AJAX! AJAX is not an addition is a core part of ItsNat.

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 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 (X)HTML (or XML) markup that can be inserted (included) as DOM into the main tree statically or dynamically (typically as a response of a user/AJAX event).

Load Process

Event Processing

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.

This approach perfectly fit 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.
up
"I really found ItsNat's 'The Browser Is The Server' (TBITS) approach one of the smartest ideas I’ve seen in the web programming area in the last years." ddpole's Blog
"ItsNat is an open source Java Ajax framework that will basically answer the need of any developer who doesn’t want to delve into JavaScript development." Stephen Palmer
"One of ItsNat's strengths is its IDE agnosticism (same as Wicket). In other words, there are no special artifacts, it simply uses standard Java EE artifacts such as HTML, servlets and general Java classes (and no ItsNat-specific servlet or filter needs to be registered in web.xml)." Geertjan Wielenga (Sun Microsystems)
"The only thing I will say about ItsNat, is that it looks like a nice clean technology. I dont think it is a good idear to let java generate html because you always want something the default cannot do. The view should be written in the appropriate language (i.e. in this example HTML). That makes your life much more simpler." Marc de Kwant (wowww)

spiral Features


Core features

ItsNat provides many more (core) features:

  • Client to server synchronization
  • Web-continuations ("continue" events)
  • User defined event types
  • Timers
  • Long running asynchronous server tasks (client is notified when finished)
  • COMET without special application servers
  • DOM utils (to simplify DOM manipulation)
  • Resolution of ${} based variables in markup
  • ElementCSSInlineStyle support in the server
  • Automatic page remote/view control of other users/sessions!!
  • XML generation
  • Non-HTML namespaces support like pure SVG with AJAX and SVG
    embedded in XHTML
  • JavaScript generation utilities
  • Events fired by the server sent to the client simulating user actions (server-sent events) for instance to test the view from the server
  • Custom pretty URLs
  • Previous/forward document navigation (pull and push referrers)
    with back/forward button support
  • Degraded modes (AJAX disabled and JavaScript disabled modes)
  • ...

A Component System

ItsNat provides a Component system (constructed over the Core level) too. 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")...

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.


What ItsNat is NOT, what is MISSING (deliberately)!

No XML configuration (use Spring or the configuration technique you like more), no declarative navigation, no JSP, no custom tags, no declarative programming, no view-Java bindings, no logic mixed with view, no new (expression) languages, no "pull/active views" (ItsNat pushes data/markup to the view), no page based development (ItsNat is event based), no highly closed, not customizable and intrusive components, no obscure HTML and JavaScript generation, not fully programmatic view definition (ItsNat uses pure XML/HTML templates), not JavaScript centric, no big and obscure JavaScript libraries hard to debug and maintain open to modifications by malicious users in runtime, not AJAX as a forced add-on, not oriented to tools (use your favorite X/HTML designer and pure Java IDE), not developer/designer substitution by the framework, no loss of developer control.

up

spiral Requisites / Platforms

ItsNat is pure Java and runs in any Java Virtual Machine v1.4 as the minimum configuration and virtually any Servlet compliant container.

ItsNat have been tested in Tomcat 5.5, GlassFish v2, Sun’s Java SE 1.4 and 1.5 developer kits.

Supported desktop browsers: FireFox 1+, Internet Explorer 6+ (inc. v8), Safari 3+, Opera 9+, Google Chrome, QtWebKit and QtJambi (Qt 4.4), Arora (QtWebKit based)

Mobile browsers: Opera Mini 4.x, Opera Mobile 8.6x (including 9.5), NetFront 3.4+ (SonyEricsson phones), Minimo 0.2, Pocket IE of Windows Mobile 6 & 6.1, IE Mobile 6 (WM 6.1.4 or "6 on 6"), iPhone/iPod Touch, Android (v1.0 r1), S60WebKit (since S60 3rd), S40WebKit (since S40 6th), BlackBerry JDE 4.6+ (Bold, Storm etc), Iris 1.0.8+, QtWebKit of Qt Embedded for Linux and Windows CE (Qt 4.4), SkyFire 0.9 and Fennec 1.0a1 (FireFox Mobile).

up

spiral Licensing

ItsNat is open sourced with the GNU Affero General Public License v3 for open source applications. Open source applications based on ItsNat must be distributed with this license, including web applications in production as ASP.

For closed source applications there is an alternative commercial license. Development licenses for closed source applications are FREE, only deployment licenses for production purposes have a fee. More info.

up

spiral Online Demo

The ItsNat Feature Showcase, is a special Java AJAX web application developed with ItsNat. Follow this LINK.

up

spiral Download

The ItsNat distribution includes binaries, source code, javadoc, manuals and the ItsNat Feature Showcase.

Visit the download section.

up

spiral Documentation & Support

Visit the support section.

up

spiral Credits

ItsNat is a product authored by Jose Maria Arranz Santamaria and licensed by Innowhere Software Services S.L., a Spanish company.

up

Terms of Use Privacy Statement Contributor Agreement delicious icon Add to delicious