FINAL PROPOSAL: Pattern Oriented Framework for the rapid implementation of Java/JDK applications
Edgar Galvis
Edgar.Galvis at fsw.com
Sat Mar 1 12:34:12 PST 2008
FINAL PROPOSAL
Pattern Oriented Framework for the rapid implementation of Java applications
Edgar Galvis
1. Summary
----------
This proposal describes a Pattern Oriented Framework for the rapid implementation of Java applications. This integrated framework is based on a messaging architecture which provides strong encapsulation and loose coupling; framework components can be interchangeably plugged into complex framework applications using a "Lego" approach. This framework is envisioned to provide capabilities for the implementation of applications based on design patterns. The framework itself is conceived, from the ground up, based on design patterns.
The main goal of this project is to provide a complete reference implementation of the proposed framework.
2. Goals
--------
The framework should address the following goals:
A) The pattern oriented framework should implement and/or facilitate the implementation of well-known design patterns like Gang Of Four design patterns (GoF) and J2EE Design patterns. The framework itself should be conceived and implemented based on design patterns (from the ground up). The framework should also facilitate and accelerate the implementation of applications based on design patterns.
B) The framework architecture should be based on a messaging design pattern: framework objects should be able to interchange information and perform computations by sending, receiving and processing messages. A messaging API provides strong encapsulation and loose coupling; framework components can be interchangeably plugged into complex framework applications using a "lego/messaging" architecture. The framework should take full advantage of the power and simplicity of the messaging design pattern/API.
C) The framework lego/messaging architecture should provide transparent access to remote components: remote framework objects should be treated as local objects. Design patterns implemented by the framework (adapters, remote proxies and facades) should make this possible by hiding the complexities associated with remote APIs.
D) The framework should provide transparent integration with other technologies via framework adapters, proxies and the implementation of related design patterns. These technologies include BPM, Data Access Object implementations (DAO), Model View Controller implementations (MVC), EJBs, AJAX, JMS, XML and Web Services.
E) The framework should be designed to be lightweight and fast (low overhead).
F) The framework messaging/lego architecture should improve and simplify design/development efforts. There should be a tight correspondence between UML design diagrams and the framework messaging based applications and components needed for the implementation. The framework should provide wizards and automated capabilities for generating framework applications. Framework components should be easily added to BPM process diagrams. In future versions of the framework, it should be possible for application modules to be generated directly from the UML design diagrams.
G) The framework messaging architecture should facilitate testing and debugging efforts. The framework should provide capabilities for testing components as independent units by sending messages to the component and verifying the expected reply messages.
H) In order to provide additional productivity, the framework should be integrated with open source IDEs.
3. Previous work
----------------
Many of the goals above are met by the current version of the reference implementation of the framework. This reference implementation needs to be completed. A fair amount of work needs to be done in terms of automated framework Wizards and BPM integration.
A Java Specification Request (JSR) is being submitted. The project JSR and the progress achieved so far have been documented via the project web site: http://jt.dev.java.net/
Early versions of the pattern oriented framework have been successfully utilized in several mission critical applications. Reuse, implementation costs and quality have been improved significantly as a result.
4. Benefits to the community
----------------------------
The main goal of the pattern oriented framework is the rapid implementation of applications based on the Java architecture/JDK. There are many benefits associated with using design pattern technologies in terms of speed of development, quality and cost reduction.
This type of integrated framework based on design patterns and a Lego/messaging architecture is able to accelerate development efforts while reducing cost significantly. The framework architecture provides strong encapsulation and loose coupling. Framework components can be easily plugged into complex framework applications. The framework also improves the implementation process of applications based on design patterns.
The framework implements and/or facilitates the implementation of well-known design patterns like GoF design patterns and J2EE Design patterns. The user is able to reuse these implemented components out of the box. This brings improvements in terms of quality and cost reductions.
The messaging architecture is able to provide transparent access to remote components. Design patterns implemented by the framework (adapters, remote proxies and facades) make it possible by hiding the complexities associated with remote APIs.
The framework improves design and development efforts. There is a tight correspondence between several UML diagrams and the framework messaging architecture. Framework components can be easily added to BPM process diagrams. Testing and debugging efforts are also improved by the messaging architecture. It is envisioned that the framework will provide wizards and capabilities for automated generation of application modules. Notice that many UML diagrams are based on a messaging model. Therefore it is only natural that its implementation be based on a messaging architecture. This isn't usually the case.
The framework is very lightweight and fast (low overhead). It is also suitable for all Java platforms, not only the Java Standard and Enterprise Editions.
Although there are some capabilities based on design patterns and some commercial pattern oriented frameworks; there is currently no integrated open source framework to meet the goals and needs listed above.
5. Deliverables
---------------
The projects deliverables are as follows:
1) Complete source code for the reference implementation of the framework (feature complete).
2) Complete Agile documentation. This includes design documentation, user manuals, installation notes, API documentation (javadoc), etc.
3) Source code for sample framework applications and framework scripts for automated and regression testing.
4) Updated project web site.
Standard software practices are being followed for the implementation of this project. The project will be delivered using the Agile methodology in accordance with the established community governance rules and procedures. Four iterations are envisioned. Each iteration should produce a complete revision of the reference implementation. A QA/testing phase will be part of each iteration. Each iteration will also involve planning, requirements and design activities.
6. Sun Involvement/Participation
--------------------------------
No Sun involvement/participation is required.
7. Team Membership
-------------------
This project has support from both private entities and the open source community. Some of the project members are listed at http://jt.dev.java.net/ New sponsors and teams members are welcome.
Edgar Galvis has had several roles over a period of many years in the computer industry. Roles include Computer Science Professor, Computer Scientist at research facilities and roles as a technical consultant and architect for several major corporations. His work with Java and the Java Architecture spans over 10 years.
8. Sun Microsystems Contributor Agreement & Copyrights
------------------------------------------------------
This proposal is contributed under the terms of the Sun Microsystems Contributor agreement.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/challenge-discuss/attachments/20080301/a36bfdb3/attachment.html
More information about the challenge-discuss
mailing list