Using The IDRS in a Team Enviroment
Now this is the law of the jungle -
As old and as true as the sky;
And the wolf that keep it may prosper,
But the wolf that shall break it may die.
As the creeper that girdles the tree trunk,
The law runneth forward and back -
And the strength of the pack is the wolf
And the strength of the wolf is the pack.
-Rudyard Kipling
In the above poem Rudyard Kipling speaks about the law of the jungle for a wolf, that no matter how much a wolf contributes to the pack, the wolf is only as strong as the pack it serves. In a pack of wolves, these elegant and effective hunters must work together in perfect harmony in order to survive. They have refined the art of pack hunting to such perfection that they can defeat a foe many times their individual size.
As always, there is a lesson to be learned from nature. A well-coordinated team can attack any project, no matter how large. This is truer in web development then in any other form of software development. Web development isn't as refined and structured as typical software development projects. A combination of the remoteness between client and server and the unbounded variety of both clients and servers make structuring web development difficult at best. The standards that govern the internet are a double edged sword. While they insure that the internet remains free and open, they make a standard in web development very difficult to find.
One such attempt to develop a standard in web development is the Model-View-Control (MVC) method of development. The idea is that each page in a web application is based on data (model), which is independent of presentation (view) and requires a system that will manage which presentation is used for any situation (control). While this system works very well, it only attacks the technical half of the problem.
The other half of the problem is the management side. Software is typically developed in teams. Web application development is no different. There are typically four parts to a web development team: Designer, Programmer, DB Admin and System Admin. Each part of the team needs to be able to interact with one and other without stepping on each other's toes.
The Web Designer is typically the head of the development team, and does not usually stem from a technical discipline, but rather a business or graphics background. The web designer tends to think of usability and aesthetic properties of a web application. A web designer is usually the one that builds most of the HTML for the web application as well, comprising the bulk of the View work.
The programmer takes on the responsibility of designing and implementing business logic for the web application making up the Control portion of MVC model. The ideal design would include components that could be simply used by the web designer without any need of technical knowledge.
The DB Admin maintains the data stored in the Model portion of MVC development. They produce SQL statements that the programmer and designer use in the web application. They also have the job of making sure that the data is clean and efficient.
The system administrator does not fit directly into the MVC development model, but they have the tumultuous task of maintaining the software and the hardware the web application runs on. They also have to make sure that security measures are kept and maintained to ensure the validity of the web application.
The goal of the Internet Document and Report Server (IDRS) is to allow these four parts of the web development pack to work together. Each aspect is designed to allow for maximum collaboration between pack members.
For web designers there are several key advantages to using the idrs. The core syntax of the idrs is made up of the Reporting Markup Language (RML), an XML like syntax that is familiar to anyone who knows HTML. The core RML syntax is combined with an open scripting model that is not bound to any one language. The idrs currently supports Jpython and BeanShell as scripting languages.
RML pages are also broken up into three pieces: RML specific, header and body. The RML specific portion contains information describing the scripting languages and weather or not a document is HTML or not. This allows for plain text documents, XML, WML or any other text formating system. The header contains all business logic while the body contains presentation, thus completing the MVC model of development.
A third advantage for web developers in the idrs is it's built in security scheme. The idrs has full user/group based security that can be customized to suit your needs. This eliminates the lengthy process of defining and implementing simple security.
Finally the idrs forces all forms to conform to a naming convention of rml-object_input-name, making maintenance of complex web forms painless.
The idrs also provides many advantages for programmers. The largest of which is the simplified development structure programmers may use. They are able to build objects that can be passed application contexts, database connections and data from web forms without extra programming. For nearly all situations programmers never even have to deal with type checking for data from forms! This is because the information from forms is passed into a method as individual type cast objects. Programmers can design their software as if it is a part of a standard application and not go through any extra trouble because it is a web application.
Components built by programmers can easily be dropped into RML pages without the need for the web designer being required to understand how the component works.
For DB administrators, it allows them to maintain database connections from one central location. All database connections are controlled by the main idrs servlet, simplifying db admin.
System administrators will appreciate the fact that the idrs is built on Java, and so will run in any servlet 2.2 compliant container, using the container's scalability capabilities to grow. The idrs will also interface with any JDBC driver, not forcing a particular database. The idrs stores all documents inside of the database, making deployment as simple as copying static content, setting up support software and restoring a database. Finally the idrs is built on a modular design, allowing for alternative security implementations that are invisible to developers.