Authenteo is a revolutionary new framework for building web 2.0 applications. Authenteo goes beyond AJAX with a framework which uses a true client centric application using transparently remote data-driven data model with sophisticated learning precaching algorithms. Now you can write true model-viewer-controller applications without having to deal with requests and responses, sessions, and terribly awkward programming constraints that we traditionally had to deal with in web application development. If you would like to go directly to the API, go here: API Documentation
Authenteo has built in object persistence and continuation support (it is built on Narrative JavaScript) for a straightforward approach to web development. Authenteo uses a multi-tiered architecture to separate application logic, business logic, and security. This architecture is service oriented approach to web application development, that utilizes an open format (
JSPON
) for application server interchange.
In the old development model of compile and rebuild and recreate all objects, Java works very well. It is statically typed and objects are non-augmentable and this works fine when objects are recreated each time the code is executed. However, applications are increasingly moving in the direction of persisting objects, and therefore objects maintain a longer life. In order to achieve true continuum of object persistence, object augmentation is becoming increasingly important. Additionally, rapid development models of dynamically modifying logic and data structures are becoming increasingly used in modern development. Once again, dynamic object augmentation is essential for this, and Java does not support this in its native object model, and can only be achieved through artificial wrappers around maps.
Authenteo uses a dynamic augmentable prototypical object model to achieve dyanamic rapid development in persisting object environment. This model solves many challenges for developers and greatly improves the development process by allowing applications to use one-offs objects and dynamically modify code without rebuilds. This significantly improves the power of applications and the development process.
Prototyped augmentable objects are natively supported in Javascript, but Java objects are not prototypable, nor are they augmentable. Javascript uses highly optimized native code to manipulate its objects, Because of this, Javascript actually performs much better for the majority of the processing required to carry out data access and manipulation of the logic in an application built on this type of data model.
Authenteo also uses Javascript to render pages. Page rendering is based upon processing HTML DOM structures to handle and render the layout templates. Browsers provide highly optimized native code support for parsing HTML, and therefore Javascript interacting with this DOM structure can actually outperform Java in rendering the layout templates to create pages. In our tests, Javascript/browser based rendering significantly outperforms Java in template parsing/rendering.
All data is stored through a consistent data storage interface. Therefore all configuration settings can be accessed through the user interface using the normal data browser. The only configuration is a small file that can be altered to setup alternative data sources.
It is important to make the client/server model as ubiquitous as possible for building a true Model-View-Controller. Most frameworks are built around a server centric model and attempt to hide the http request and response process, but there are large costs for the user experience with all the interactions between the model and controller taking place through requests and all interactions between the model and viewer taking places through responses (HTML pages going to the user), each of these being inherently slow.
Alternatively in a client centric model, the development is centered around the user experience on the browser. The MVC approach can be used with much greater success since the model can communicate with the viewer and the controller directly without remote communication. The http request and responses are used to access and synchronize the data model, which can optimized automatically to much greater degree than inter-MVC communication.
A client centric application maintains its state on the client, not on the server, therefore it is not necessary to maintain a stateful connection. This eliminates the problem of user timeouts and also excessive resource consumption on servers. The concept of an http session is a terrible, awkward construct that unfortunately undergirds a large percentage of today?s applications. Can you imagine if other parts of your application were built on the concept that you when accessed an object, its resources would remain around for another 10 minutes even if you only needed and for a momentary access, and if you did need to keep an reference to it, it would only stay valid for 10 minutes, and you would have to recreate it if you didn?t access within the last 10 minutes. The concept of an http session is terrible for users, because they experience timeouts, requiring them to re-login and navigate back to their original state, and it is terrible for servers since it holds onto resources for a much greater period of time than they are needed (if a user accesses a page and quickly moves onto a different page, the session sticks around for another 10 minutes or whatever the timeout length is). The inadequacies of such an approach have driven the AJAX craze. Full page refreshes for any MVC communications is unacceptable for truly interactive clients, so AJAX has helped with this problem, but AJAX still requires an http request/response.
In a client centric application this problem does not exist. The resources to maintain the state of the application are held as long as the users browser state stays the same, no longer, no shorter. Therefore the user never experiences timeouts and the server does not need to hold on to resources.
Authenteo maintains the REST (representative state in the request) principle, a founding principle of the http protocol and World Wide Web, and therefore eliminates many of the problems of modern web applications in maintaining state information. Authenteo does use the http session construct for the purposes of the optimizing data model transfer, but it is purely for performance reasons and the timeout can be very low to minimize server resource load without causing any timeouts or other problems for users.
If you would like to view the development documentation go here:
Authenteo 1.1 is available.
Now with
Firebug integration
. Make changes to CSS and HTML with Firebug and save the changes
Check out press releases and the following articles on Authenteo: