Thursday 16 February 2012

Leverage ZKoss Framework for RIA

Introduction

ZK (Zkoss) is a leading enterprise application development framework to build great modern JAVA web applications. The framework provides intuitive tools that span the entire application development lifecycle, including the UI design, prototyping, development and deployment. The framework also provides libraries for integrating with enterprise components like Spring, JSF and JSP tags. With wonderful community support coupled with the backing of an enterprise for support and value added services, ZK is fast becoming a framework of choice for Developers.

Why ZK?
The choice of an application development framework is largely made by the developers or architects of the application. Mostly, the needs of developers like the available tools, libraries, architecture support, flexibility, community support are considered in choosing the framework. ZK provides solution to most of the needs of the developers. In addition, ZK also takes care of the business needs by providing a wonderful support infrastructure.
Some of the reasons why ZK framework is considered the best choice for both developers and businesses are:
  • Industry Leading MVC Architecture using defacto jQuery and JSON along with transparent Ajax communications
  • End to End productivity tools from UI design to Deployment
  • Rich Modular UI for developing Rich Internet Applications
  • Great Community Support
  • Back up Support by a dedicated team
  • Extensions to enterprise frameworks like Spring, JSF
  • Proven Security Standards
Technical Overview of ZK

The application allows the developers to write their applications are pure java and optionally have fine grained control over the client. The architecture also enables the developers to use, extend and customize ZK’s fundamentals quickly and efficiently. The event-driven model of ZK, facilitates in developing rich internet applications using pure java, thus reflecting desktop programming experience to the clients without the usual concerns of java script, cross browser compatibilities etc.

The extensive set of ZK components varying from UI Components with polymorphic functionality, extension components and core components enable rapid application development and deployment.
The diagram below explains the logical components of ZK.

The MVC pattern enforces the decoupling of View, Model, and Controller, making applications more flexible to change and easier to build.

The View can be implemented using ZK User Interface Markup Language without any programming; meanwhile, ZK automatically wires the UI components and user events to members in the Controller class.

The server-centric solution to Ajax brings a productivity boost, robustness, and security to Web application development; while client side solutions endows Web applications with greater controllability and the ability to leverage client side resources.


Sample Architecture on ZK

OptiSol Business Solutions is one of the pioneers to adapt ZK framework for developing enterprise class java web applications. OptiSol has developed Rich Internet Applications based on ZK/Spring/JSF/Hibernate.


This section provides an overview on the logical architecture of one of the applications developed in ZK by OptiSol team. The application extended ZK components and customized for the application need. The application was built on ZK/JSF/Hibernate/MySql stack with integration to Lucene Search.

  1.  The web components are accessed via Browser Extensions (for limited functionality) as well as ZKoss UI Components (for full feature access).
  2. ZKoss being a framework based on MVC, the controller objects direct the UI requests to the Data Access layer via DAOs (Data Access Object) and DTOs (Data Transfer Object).
  3. The Data Access Layer has two components, Hibernate ORM as the Persistence Layer and MySQL DB as the storage layer.
  4. The access between MySQL and Hibernate ORM is handled through the Hibernate configurations stored as XMLs.
  5. The Lucene Search Engine interacts with Lucene indices to fetch the search results based on instructions from the DAO

No comments:

Post a Comment