Service Oriented HTML Application's:
SOHA decouples the front end from service, backend service is presentation agnostic business logics and provides data access, web server serves static HTML/CSS/JavaScript/Assets files without any server pages generating HTML, and on the client side, DOM is built out based on Ajax data, creating rich interactivities without the dependency on browser plugin.
It shows the power of jQuery to creating and changing different user preferences and layout/themes without the help of server page (ASP, ASP.NET MVC, JSP, PHP, Ruby on Rails, ColdFusion, etc.), it dynamically loads HTML, CSS and JavaScript at runtime on demand. These are the fundamentals for building SOHA - Service Oriented HTML Application - all by static files on the web server. Since there is no role reserved for server page technologies and client browser plugin in SOHA.
Key concepts and principles of SOHA are:
- High scalability web tier: no HTML generated from server, web tier just serves static files;
- Maximize application reach-ness: no dependency on browser plug-ins, open to next generation of web standards (HTML5, CSS3, etc.), accessible by all browsers and internet-enabled devices;
- Services logic and data access tier stay presentation agnostic;
- Leverage client side processes: application views will be generated in the client, no server side application logic needed for presentation tier, rich visuals and inter activities are enabled by web standards
- SOA: all dynamic data are retrieved from data service via Ajax, client/server interaction are performed by Ajax calls rather than post back to page itself;
- Clean separation of concerns: service logic just focus on business logic rather than rendering needs; Web server just serves static HTML/CSS/JS files; client side controller (JS) handles user inter activities and Ajax calls, also manipulates DOM; all application Views are controlled by CSS and static HTML serves as model template;
- Simplified Application common tasks: dynamic CSS/scripts/HTML loading, secure static HTML based navigation, static page book marking and redirecting, page to page data transferring, extends Ajax API, etc.