Jadu as the name suggests, generates scalable,high-performance,database backed business applications for the Web at magical speed with hardly any coding effort. The Tool provides a drag and drop interface for page designing coupled with a selection based page definition which eliminates coding effort completely. The code that is generated takes care of distribution of responsibility in different tiers implicitly. This approach eliminates most of the effort in design,coding and testing phase, reducing the time from analysis to implementation dramatically. Apart from reduction of cost and time to market, the efficient code that is generated provides Web sites with guaranteed performance.
One problem with available code generators is rigidity in structure,content and visual effect. With choice of technologies available in every layer ,such rigid structure does not allow to build application suiting to the domain or desired user reach . Jadu provides the way to address specific development need that is unique to each application. While using Jadu,Technology is a matter of choice even after the whole application has been built. The application architect can choose between HTML/XML or Servlet/JSP or EJB/Java bean at any point of time as easily as selecting few options . This provides a great flexibility which allows to upgrade/change the technology of the running application also as easiliy as during development. The technology choices indicated above are not exhaustive and still more flexibility is in the offing in the next version of the tool.
Software Application development is after all a team approach. A large web application development requires an equally large team. It requires considerable project management skill and well laid down change control mechanism to control the ever changing versions that proliferate as the development moves into maintenance. Jadu provides an implicit way to control version of the application being developed. The other challenge in application development is to channelize individual creativity in an harmonious way. A software application should bear the stamp of uniform thinking ,instead of individual glimpses of brilliance. Jadu handles project management through role based accesses into a project being developed using the tool.
Project access control is role based allowing three roles to influence development process, namely Project architect,Web designer and Application developer. Project architect selects platform, configures master templates and decide directory structure etc.
Apart from that, this role will have total control of work distribution and version control which is again selection based. Web designer role will have access to all visual properties for page and item and can manipulate either through drag and drop interface or by property setting. Web designer can create multiple master templates for different genre of pages. However master templates does not consider visual properties alone. It can contain business logic which is applicable across pages. The Application developer role will take care of imparting business logic to template or pages visually created by the Web designer. While this distribution and control of activity across project roles ease project management and version control nightmares,there is no restriction in same individual donning multiple roles. In other words,based on the constitution of the team,roles can be allocated.Project architect decides the project access roles.
Project architect also decides project storage folder. All page and rule definition files created during development will implicitly get stored in the respective sub folder upon saving. This avoids duplication of files or file names by different developers. Version history gets updated automatically too. Access to developed pages are conditioned based on the role and creator of the pages. This allows the team to be in touch with the progress made across the project while having no right to modify components/pages developed by others.
Jadu provides template approach at different levels to maintain unique look and feel across the web site. It is not only the look but the functionality too that will be inherited this way. There are 3 different genres of Template facility provided by Jadu – Base template,Master Template and Fixed Template. There can be one base template for a project which generally sets the visual tone of the site in general. Master templates are developed using the Base Template and there will be one Master Template for each type of layout like Master,Parent-child,View ,Browse ,LOV etc. Fixed Templates are auto generated(but modifiable) based on Base Template and caters to specific pages of a Web Site like Login, Logout, Home, Help, Error page etc. Fixed templates are not used for other page development but themselves pages used in the site. Project architect decides on the templates for each type of layout and based on that all the pages of that type will be developed. The items and attributes indicated in Master Template can not be changed in individual pages. Once the Master Template is attached to the project and declared mandatory, all pages in the project starts with the same inherited look and feel and functionality.This also facilitates change of look and feel of a Web application from time to time with minimal effort. All that it takes is to define a new Base Template or Master Template for a type, attach to the project and regenerate the pages.
Jadu is designed to generate code separated into appropriate tiers within the application. However the Project architect can still decide on the technologies that is to be used at different tiers. He can choose between XML/HTML in the presentation layer, Servlet/JSP in the Server side and EJB/Java bean as the business component. The authentication requirement and preferred authentication type is also decided at the project level.
4.Ease of Development
Development of Web pages becomes very easy with easy to use Page designer .The drag and drop interface along with selection based property setting makes the Web designer’s work extremely simple.
There are Property setting screens available for Project , Page and Item. The visual and functional properties can be defined at every level. If defined at Project level,the properties can come as default while developing the page.Apart from that the Template properties can be defined through which the look and feel and functionality will be controlled across the project.
The page developed as in the above screen can then be generated to create JSP page which provides the same screen output in HTML.
Jadu is also a storehouse of powerful business repository. Implicit usage of this repository is provided through the business rule layer.
This component provides for fetching,inserting,updating and deleting from/to database. This can perform multiple insertions, updations and deletions and on multiple tables at one go.
Validator provides for generalized way of handling server side validations. It provides for validation based on a table,validation based on a query,Validation based on state of stateful session bean.
Authenticator provides for userid based authentication, user logging and session id generation.
Resource manager maintains UI and database resources information and provides controls for accessing the resources. The controls that can be applied to the resources are role based. Roles can be Hierarchical /Domain dependent or Mixed.
Authorizer provides for defining different authorization behaviors.The behavior contains information about transitions and the actions to be taken during the transitions. A transition is change of Business document from one state to another state when a command is executed.
5.6.Client side validator
0Client side validation/behavior is controlled through Java script library.
6.Business Rule Engine
The Business rule engine is powered by the Business repository. The engine provides a easy to use dialog based interface for defining rules. The rules thus defined internally accesses the business repository without user's explicit knowledge about the repository. This allows the Analyst to take on the application developer's role. The application requirement in the form of Business rule can thus be captured and attached at appropriate level and location. The Rules can be attached at project,page or item level. However all rules are not appropriate at every level and the rule engine takes care of that.
The business rule engine handles following categories of Rules:
With the use of Business rules ,necessity of writing code is almost eliminated.Also provision has been provided in the tool to selective replacement of Repository by the end user so that a function provided by the tool can be replaced by the end user's code with the business rule still remaining applicable. In the next version of the tool, extension of business rule will also be provided.
The tool generates the code in the most efficient way with responsibility separation across technologies and performance as the major plank. The tool has been designed in such a way that while it is generating JSP/Servlet based code at present ,the same pages developed now can be generated into codes in different platforms with the variations coming in the next versions of the tool. To sum up ,this is a tool which will allow to develop application once ,but generate and deploy anywhere,in any platform.