15.01.2015 Views

4th International Conference on Principles and Practices ... - MADOC

4th International Conference on Principles and Practices ... - MADOC

4th International Conference on Principles and Practices ... - MADOC

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!