jZeno is an open source java development framework that offers the ability to develop rich web applications. The main architectural goal of jZeno is to allow people to create web applications using pure java development as much as possible. Largely reducing the need to know technologies like javascript, HTML, CSS, database specific SQL, JSP, JSF, etc... Instead of expressing things on a low technical level we not only provide standard components to use, but encourage people to focus on learning more important skills much deeper. We think these skills are a thorough understanding of java, OO development, design patterns and other abstraction techniques.
jZeno is also more than a software development framework. It is also a set of standards and guidelines to be used within your projects. We believe that many companies regularly (re-)created these types of standards and guidelines in order to streamline their development process. Thus jZeno is also an attempt to provide these things in open source.
jZeno proposes a standard architecture for your application. jZeno applications have a traditional layered architecture :
1. The presentation layer. Here jZeno proposes that you create your own 'dynamic components'. If performed well this allows you to avoid much code duplication in this layer. Reducing the codebase of your presentation layer compared to struts/JSP applications. jZeno's dynamic components provide for easy data binding, input validation and event handling. Application developers are strongly encouraged to build components that correspond to concepts (and thus objects/classes) from the domain model.
2. The business layer. Here jZeno proposes a view where persistent objects can be manipulated and are synchronized to the database automatically. A so-called auto-sync aspect automatically detects which objects were modified or created on the persentation layer or the business layer, and applies this new information to the database. In essence most developers will only need to learn how to write queries (using HQL), and not worry about session interactions. jZeno also provides many (traditional) services like transaction management, security enforcing, dead-lock detection and retry, etc...
3. The domain model layer. In this layer we propose you write methods that allow persistent object to be more than just representations of records in the database. Domain objects can have rich functionality. This allows you to avoid some code duplication among business facades.