4th International Conference on Principles and Practices ... - MADOC
4th International Conference on Principles and Practices ... - MADOC
4th International Conference on Principles and Practices ... - MADOC
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Aranea—Web Framework C<strong>on</strong>structi<strong>on</strong> <strong>and</strong> Integrati<strong>on</strong> Kit<br />
Oleg Mürk<br />
Dept. of Computer Science <strong>and</strong> Engineering,<br />
Chalmers University of Technology,<br />
SE-412 96 Göteborg, Sweden<br />
oleg.myrk@gmail.com<br />
Jevgeni Kabanov<br />
Dept. of Computer Science,<br />
University of Tartu,<br />
J. Liivi 2, EE-50409 Tartu, Est<strong>on</strong>ia<br />
ekabanov@gmail.com<br />
ABSTRACT<br />
Currently there exist dozens of web c<strong>on</strong>troller frameworks<br />
that are incompatible, but at the same time have large porti<strong>on</strong>s<br />
of overlapping functi<strong>on</strong>ality that is implemented over<br />
<strong>and</strong> over again. Web programmers are facing limitati<strong>on</strong>s <strong>on</strong><br />
code reuse, applicati<strong>on</strong> <strong>and</strong> framework integrati<strong>on</strong>, extensibility,<br />
expressiveness of programming model <strong>and</strong> productivity.<br />
In this paper we propose a minimalistic comp<strong>on</strong>ent model<br />
Aranea that is aimed at c<strong>on</strong>structing <strong>and</strong> integrating serverside<br />
web c<strong>on</strong>troller frameworks in Java. It allows assembling<br />
most of available web programming models out of reusable<br />
comp<strong>on</strong>ents <strong>and</strong> patterns. We also show how to integrate<br />
different existing frameworks using Aranea as a comm<strong>on</strong><br />
protocol. In its default c<strong>on</strong>figurati<strong>on</strong> Aranea supports both<br />
developing sophisticated user interfaces using stateful comp<strong>on</strong>ents<br />
<strong>and</strong> nested processes as well as high-performance<br />
stateless comp<strong>on</strong>ents.<br />
We propose to use this model as a platform for framework<br />
development, integrati<strong>on</strong> <strong>and</strong> research. This would<br />
allow combining different ideas <strong>and</strong> avoid reimplementing<br />
the same features repeatedly. An open source implementati<strong>on</strong><br />
of Aranea framework together with reusable c<strong>on</strong>trols,<br />
such as input forms <strong>and</strong> data lists, <strong>and</strong> a rendering engine<br />
are ready for real-life applicati<strong>on</strong>s.<br />
1. INTRODUCTION<br />
During the last 10 years we have witnessed immense activity<br />
in the area of web framework design. Currently,<br />
there are more than 30 actively developed open source web<br />
frameworks in Java [10], let al<strong>on</strong>e commercial products or<br />
other platforms like .NET <strong>and</strong> numerous dynamic languages.<br />
Not to menti<strong>on</strong> in-house corporate frameworks that never<br />
saw public light. Many different <strong>and</strong> incompatible design<br />
philosophies are used, but even within <strong>on</strong>e approach there<br />
are multiple frameworks that have small implementati<strong>on</strong> differences<br />
<strong>and</strong> are c<strong>on</strong>sequently incompatible with each other.<br />
The advantage of such a situati<strong>on</strong> is that different ap-<br />
Permissi<strong>on</strong> to make digital or hard copies of all or part of this work for<br />
pers<strong>on</strong>al or classroom use is granted without fee provided that copies are<br />
not made or distributed for profit or commercial advantage <strong>and</strong> that copies<br />
bear this notice <strong>and</strong> the full citati<strong>on</strong> <strong>on</strong> the first page. To copy otherwise, to<br />
republish, to post <strong>on</strong> servers or to redistribute to lists, requires prior specific<br />
permissi<strong>on</strong> <strong>and</strong>/or a fee.<br />
PPPJ 2006, August 30–September 1, 2006, Mannheim, Germany.<br />
Copyright 2006 ACM ...$5.00.<br />
proaches <strong>and</strong> ideas are tried out. Indeed, many very good<br />
ideas have been proposed during these years, many of which<br />
we will describe later in this paper. On a l<strong>on</strong>ger timescale<br />
the str<strong>on</strong>ger (or better marketed) frameworks <strong>and</strong> approaches<br />
will survive, the weaker will diminish. However, in<br />
our opini<strong>on</strong>, such situati<strong>on</strong> also has a lot of disadvantages.<br />
1.1 Problem Descripti<strong>on</strong><br />
First of all let’s c<strong>on</strong>sider the problems of the web framework<br />
ecosystem from the viewpoint of applicati<strong>on</strong> development.<br />
Framework user populati<strong>on</strong> is very fragmented as a<br />
result of having many incompatible frameworks with similar<br />
programming models. Each company or even project, is<br />
using a different web framework, which requires learning a<br />
different skill set. As a result, it is hard to find qualified<br />
work force for a given web framework. For the same reas<strong>on</strong><br />
it is even harder to reuse previously developed applicati<strong>on</strong><br />
code.<br />
Moreover, it is sometimes useful to write different parts<br />
of the same applicati<strong>on</strong> using different approaches, which<br />
might prove impossible, as the supporting frameworks are<br />
incompatible. Portal soluti<strong>on</strong>s that should facilitate integrating<br />
disparate applicati<strong>on</strong>s provide very limited ways<br />
for comp<strong>on</strong>ents to communicate with each other. Finally,<br />
frameworks are often poorly designed, limiting expressiveness,<br />
productivity <strong>and</strong> quality.<br />
System programmers face additi<strong>on</strong>al challenges. Creators<br />
of reusable comp<strong>on</strong>ents have to target <strong>on</strong>e particular framework,<br />
c<strong>on</strong>sequently their market shrinks. Framework designers<br />
implement overlapping features over <strong>and</strong> over again,<br />
with each new feature added to each framework separately.<br />
Many useful ideas cannot be used together because they<br />
have been implemented in different frameworks.<br />
We think that web framework market would win a lot if<br />
there were two or three popular platforms with orthog<strong>on</strong>al<br />
philosophies that would c<strong>on</strong>solidate prop<strong>on</strong>ents of their approach.<br />
Applicati<strong>on</strong> programmers would not have to learn a<br />
new web framework at the beginning of each project. Writing<br />
reusable comp<strong>on</strong>ents <strong>and</strong> applicati<strong>on</strong> integrati<strong>on</strong> would<br />
be easier <strong>and</strong> more rewarding. Framework designers could<br />
try out new ideas much easier by writing extensi<strong>on</strong>s to the<br />
platform <strong>and</strong> targeting a large potential user-base.<br />
1.2 C<strong>on</strong>tributi<strong>on</strong>s<br />
In this paper we will describe a comp<strong>on</strong>ent framework<br />
that we named Aranea. Aranea is written in Java <strong>and</strong> allows<br />
assembling server-side c<strong>on</strong>troller web frameworks out<br />
of reusable comp<strong>on</strong>ents <strong>and</strong> patterns. Aranea applicati<strong>on</strong>s<br />
are pure Java <strong>and</strong> can be written without any static c<strong>on</strong>-<br />
1<br />
163