DaVinciA Model-driven Web Engineering Framework for Java |
|
News
Contents on this page
AboutDaVinci is a comprehensive framework for model-driven Web Engineering. It's designed as a complete toolkit which consists of three parts: the DaVinci Architecture Layer, the DaVinci Modeling Framework and the DaVinci Runtime Library. Before describing all three parts in more detail, the major characteristics of the overall framework will be explained. CharacteristicsA fundamental difference to existing Web Engineering frameworks is the architectural concept of DaVinci which is specified in the DaVinci Architectural Layer. The architecture is based on the assumption that, for a Web application (by contrast to a more document-centric Web site) the hypermedia paradigm is more circumstance than useful. A classical Web site is based on URLs, hyperlinks, and various kinds of resources which is the basic concept of hypermedia systems like the Web. In the scope of DaVinci, a Web application is more like a traditional application running in the browser. Thus the bahavioural (or functional) aspect is much more important than pages. Pages are generated and transient. Therefore, the basic idea of DaVinci was to eleminate the classical hypermedia paradigm and to inject an additional layer between the Servlet Container and the application (see figure showing the DaVinci Stack). The DaVinci Architectural Layer provides concepts which are missing in the Servlet API but essential for Web applications. While other projects (e.g. Java Server Faces or Struts) do not re-define the interaction process, DaVinci defines a dedicated GUI model as well as an interaction process. These four important aspects outline the main characteristics of the DaVinci Web Engineering Framework:
The DaVinci Architectural LayerThe figure below shows the DaVinci Stack. Between the Servlet Container and a DaVinci Web Application there is the DaVinci Architectural Layer. The DaVinci Modeling FrameworkThe DaVinci Modeling Framework is a UML-based toolkit for modeling DaVinci applications. It defines the modeling process starting with use cases and storyboarding, then defining the GUI (user-experience model), the database design and finally the application logic which can be done using UML thoroughly. The DaVinci Modeling Framework will provide a rich set of CASE tools which will facilitate and automate the modeling process. There is already a simple View Stubs Generator which takes a view tree configuration file and generates all views (JSP files) based on configurable skeleton templates. The generator can be found in the package at.davinci.casetools. The DaVinci Runtime LibraryThis is the JAVA library containing all required classes for running DaVinci applications. In other words, this is the implementation of the DaVinci Architectural Layer. Currently it also includes all development libraries and CASE tools. But these will be extracted and become part of the DaVinci Modeling Framework in future. Generic client/server applicationsThe framework is designed in such a way as to enable the development of any client/server applications. This means, the DaVinci Architectural Layer can be decoupled from the Servlet Context/Web Server-bundle and run on-top of an autonomous DaVinci kernel module. Different FrontController implementations enable the integration of different client/server communication protocols (e.g. FTP, POP3, plain socket communication, etc.). Thus it's possible to use a POP3-FrontController, which will react on incoming e-mails. This can seamlessly migrate different communication channels within a business application and enable business workflows, that are not only based on HTTP, but also on E-Mail, FTP, etc. The framework can also be used for writing arbitrary socket-based server applications (for example a socket-based configuration utility running on an embedded device, etc.) Currently there is a SocketController, which can be connected with an arbitrary telnet client, and a ConsoleRenderer which will render the state of the view tree into plain text. Quick StartTo demonstrate the framework in a running environment, you can download the DaVinci Sample Application. You only need a Java Runtime and a Servlet Container (e.g. Tomcat). The application already includes the DaVinci Runtime Library (davinci-runtime.jar)!
Requirements
PublicationsA. Langegger, J. Palkoska, R. Wagner: DaVinci - A Model-driven Web Engineering Framework. International Journal of Web Information Systems, Vol. 2, Issue 2, p. 119-132, 2006. Troubador Publishing.A. Langegger, J. Palkoska, R. Wagner: Simplifying a Web Application's Architecture - The DaVinci Framework. In Proceedings of The Seventh International Conference on Information Integration and Web-based Applications and Services (iiWAS'05, Malaysia), Vol. 2, pp. 643-654, Sept. 2005. Andreas Langegger: Architektur und Design eines PHP4-basierten Frameworks für Webapplikationen. Master Thesis, Upper Austria University of Technology, Prof. Rimbert Rudisch. August 2003. DocumentationCurrently we have only a Java Doc style documentation. An extensive documentation will come later if there are free resources again. Download
Contribute, Donate or just help fixing bugsIf you think, we all need such a piece of software and you would like to contribute, please contact me (via e-mail, address below)! If you want to donate the project, please contact me (via e-mail, address below). And if you have found any bug, please, please contact me (via e-mail, address below)! Credits and LicenseLicense: GNU General Public License (C)2006 by Andreas Langegger (http://www.langegger.at) Last update: Nov 24 2006 |