a web application easily by using Smarty (New Digi-
tal Group Inc., 2007), which is a template engine for
PHP. However, it is impossible to separate View from
Model or Logic completely because these are HTML
based frameworks.
Struts (Apache Software Foundation, 2007c) is a
famous framework for supporting Java based web ap-
plication development. It also enables us to develop
a MVC based web application easily by collaborat-
ing with JSTL (Apache Software Foundation, 2007b)
and Velocity (Apache Software Foundation, 2007a).
However, we have to manage a XML formalized con-
figuration file called struts-config.xml to define dis-
patching rules, including requested URLs, Actions
and JSPs. In addition, Struts does not support depen-
dency injection. Therefore, unit testing and manage-
ment of this configuration file are difficult in a large
scale application development. Spring (Source, 2007)
is a framework which includes DI container, libraries
for presentation layer and database access layer.
However, we have to manage XML based configu-
ration files like struts-config.xml in Struts framework.
Seasar2 (The Seasar Foundation, 2007) is a DI Con-
tainer which introduces convention over configuration
concept. Therefore we do not have to manage config-
uration files even in a large scale application.
However, these frameworks and containers can
not separate View completely by source code level.
On the other hand, Cairngorm (Adobe Labs, 2007)
is a framework for supporting to develop Flex appli-
cations based on MVC architecture, however, it does
not support dependency injection. Therefore devel-
opers have to define binding values or event handler
directly in visible component tags, that is it does not
support complete separation of View component.
8 CONCLUSIONS
We have presented a framework called Camel for de-
velopment of RIAs. Camel has made it possible to
separate View completely from any other components
in source code level. That is, designers and develop-
ers do not have to share any source codes in applica-
tion development processes, and it becomes easy not
only to modify designs or logics separately but also
to do testing an application.In addition, we have also
introduced convention over configuration concept to
reduce any configuration files to use this framework
and shown the usage and utility of this framework by
implementing a real application.
Finally, we would like to point out further issues to
be resolved. In current implementation, Camel lacks
validation mechanism for values bound to Model. We
plan to introduce to extend validation mechanism of
Flex with dependency injection. In addition, we usu-
ally make a mistake to type rule based names in de-
velopment process. Therefore, we plan to provide a
tool to complement these names as a Eclipse plug-in.
REFERENCES
37signals (2007). Ruby on Rail. http://
www.rubyonrails.org/.
Adobe Labs (2007). Cairngorm Framework.
http://labs.adobe.com/wiki/index.php/Cairngorm.
Adobe Systems Inc. (2007a). Adobe Flash CS3 Profes-
sional. http:// www.adobe.com/products/flash/.
Adobe Systems Inc. (2007b). Adobe Flex2.
http://www.adobe.com/products/flex/.
Allaire, J. (2002). Macromedia flash mx-a next-generation
rich client. In Technical report, Macromedia.
Apache Software Foundation (2007a). Apache Velocity
Project. http://velocity.apache.org/.
Apache Software Foundation (2007b). JSTL.
http://jakarta.apache.org/taglibs/.
Apache Software Foundation (2007c). Struts.
http://struts.apache.org/.
Driver, M., Valdes, R., and Phifer, G. (2005). Rich inter-
net applications are the next evolution of the web. In
Technical report, Gartner.
Duhl, J. (2003). White paper: Rich internet applications. In
Technical report, IDC.
Ecma International (2005). Ecma script for xml specifica-
tion.
Laszlo Systems Inc. (2007). Laszlo.
http://www.laszlosystems.com.
Major Computing (2007). Mojavi Framework.
http://www.mojavi.org/.
Microsoft Inc. (2007). Smart Client Developer Center.
http://msdn.microsoft.com/smartclient/.
Mozilla.org (2007). XUL.
http://www.mozilla.org/projects/xul/.
New Digital Group Inc. (2007). Smarty.
http://smarty.php.net/.
Source, S. (2007). Spring Framework.
http://www.springframework.org/.
Sun Microsystems Inc. (2007). Java Web Start Technology.
http://java.sun.com/products/javawebstart/index.jsp.
The Seasar Foundation (2007). Seasar.
http://www.seasar.org/.
Zend Technologies (2007). Zend Framework.
http://framework.zend.com/.
CAMEL FRAMEWORK - A Framework for Realizing Complete Separation of Developer’s and Designer’s Work in
Rich Internet Application
143