Tuesday, November 07, 2006

Jkook Blue Prints for JAVA

Jkook Blue Prints for JAVA(BizSutra)
The Introduction
Software development has been challenging as ever. The irony is it has been repetitive for most of us. Over the years I have developed many software products and written heaps of code. Lets take a case of a simple 'Ledger Application' . The first ledger application I have written is in C. Later learnt that a more stable version in COBOL exists in mainframe world. Next a database bug bit me. The Dbase. Then went on to write it in FoxPro. Then came the Open Systems . Had to write it again in Visual Basic (plus oracle). Long Before which i had the taste of technologies like magic and power builder.
Not very long ago I did it again using LAMP.
Welcome to JAVA. History repeated using Servlets. Later with glorified technologies like jsp, struts ...etc . Today i am writing in EJB 2 and Looking forward to write it in ejb3.

The hope the reader of this blog appreciates that the above memoir is not about a specific product. Its about a group of functional requirements which are being solved using different coding languages and techniques. A closer observation reveals that most of these requirements have never changed. And are not going to change in the future. But irony is most of the programmers approach has been consistent. The 'boringly repetitive approach' in question is freshly design, freshly code, freshly gather requirements, use same old faulty patterns. How many times have to coded user authentication,auditing ?

How do we avoid having to code the same set of functional requirements over all again and again?
This is precisely what this BizSutra for Java is going to provide. Wait a min what about those latest technologies and frame-works aren't they supposed to make your life easier?
Yes they do.But does not solve the problem discussed here. Technology is just one piece of this puzzle. Frame-works provide solutions in isolation. We need an integrated solution addressing most of the business requirements.
Let me explain with an example
Auditing is most common requirement. Say we use ejb for auditing. Then what about undo/redo support. Where is does Authentication/Authorization happen ? Most of the frame works provide solutions which work for both requirements. But in isolation. Each of them has to be coded separately and integrated. The BizSutra proposes a single implementation for both the requirements. The challenge is to identify all such common requirements and bundle them as a single implementation.

Business Application Defined
does not attempt to solve all problems. It should be used to develop Business Applications. Typical Business Applications are Accounting, Banking, Inventory Management, Invoice. These types of applications share a common set of functional requirements ie,
[Authentication , Authorization, Audit, Undo/Redo, Persistence, Maker-Checker, One or Two business work-flows, Bulk Import and Export]

The Deliverable :
A comprehensive set of business functionality.
The technology oriented frame-works provide solutions for a specific set of technical problems.(for example scope of Hibernate is persistence , Scope of Struts is MVC). These capabilities are exposed as services or an api. One has to consume these services appropriately to build a Business Application.
BizSutras provides integrated implementation for all the business function discussed above.

No comments: