|
Portlet-line
Production |
| |
This work
focuses on the automatic production of web applications,
specifically Portlets. The aim is to create Software Product
Lines (SPL) of Portlet Applications. |
| |
|
|
Portlets |
| |
A Portlet is a
Web component that processes requests and generates dynamic
content. Portlet consumers (e.g. a portal) use Portlets as
pluggable user interface components. Typically, a Portlet is
rendered as a window in the portal, the Portlet being a main
building block for portal construction. The recent delivery
of standards, namely,
Web Services for Remote Portlets (WSRP) and
Java
Specification Request 168 promise to bring
interoperability to the Portlet realm. Nothing is said about
how the Portlet should be implemented. |
| |
|
|
A simple example |
| |
For instance, a very simple calculator could be used in
different context and/or with distinct requirements. To this
end, the factory capability should be set-up to deal with
these distinct requirements. |
| |
|
|
| Basic interface in english |
Calculator with memory, basic
operations and trigonometric operations |
 |
 |
| |
|
| Calculator in basque language with
memory and basic operations |
Calculator in french language with
memory and basic operations |
 |
 |
| |
|
|
| |
|
|
Core Asset
Development (Domain Analysis) > Feature modeling |
|
One of
the most important tasks while facing a product line
approach is to exhaustively analyze the domain in which
products are to be produced. A fair study of this domain
results in the following features:
- Memory: optional feature to save numbers.
- Operations: add, sub, trigo.,
- Languages: english, spanish, basque, catalan,
portuguese, …
- Containers: tomcat, jboss, … distinct portal
containers in which application is to deployed.
|
| |
These features are modelled with a simple feature model
showed below. In addition, some approaches propose to
model it in UML and save it in XML. |
| |
 |
| |
|
|
Core Asset
Development |
| |
Application core assets should be developed, this issue
will not be described in this point. Please, refer to
Atarix PPL Portlet
Framework for more information in this issue. |
|
|
|
Product
production > The production plan |
| |
A production plan is needed in order to build a final
product. This item is extensively described by [Chastek
02] work on production plans. In this work, we represent
the production process part using
Apache Ant build
script. This script performs the following steps: |
|
- Clean project
- Compile product source
- Build WAR
- Deploy WAR
|
|
 |
|
BUT, this
production plan change depending on some product features.
For instance, if the container is JBOSS, the way in which
the product is deployed changes. So, we have to deal with
this change. And what we decided to do is to follow AHEAD (the
same as for other artifacts). Please, refer to [Diaz 05]
detailed explanation. |
|
|
|
Product and Process Features |
|
Customer
distinguishes product through features, and these features
impact in the core assets used and in process followed to
build the product. Likewise, there exist some features that
impact on the strategy decided by the company to all, some
or just one product. These strategy features change the way
in which the product is builded (i.e. the production plan). |
| |
|
|
Process Features |
|
A study for
process features
results in the following:
- Logging: optionally logging process execution.
- Performance monitoring: optionally measure the time
for each process.
- Versioning: svn, cvs, … optionally save produced
product.
- Error-handling: optionally manage possible errors
raised during execution.
|
| |
These features are modelled with a simple feature model
showed below. |
| |
 |
| |
|
|
Production process Architecture |
|
To deal with
variability at product and process level, it is necessary to
define a process architecture with 3 main processes (see
below): |
| |
C is the product-build
process, which is the typical process used to build a
system (compile, deploy, ...). C
is layered in distinct layers (each one realizing some
increment/refinement to fulfill some product
feature). |
| |
B is the product-specific
process, which is the process used to compose
C layers into a layer with
product core assets (sources, xml files, libraries...).
B is layered in distinct
layers (each one realizing some increment/refinement to
fulfill some process feature). |
| |
A is the production process,
which is the process used to compose
B process. This process is
unique. |
| |
 |
| |
|
|
Tool Suppport > Product-line Factory |
|
In order to
support the ideas presented before, we have developed a
Portlet application which support process features selection,
process building, product features selection, and end-product
building.
This tool is a prototype, but if you want to show a demo or
use it, just send an email to us. |
| |
Some screenshots of this application follows. |
| |
 |
| |
 |
| |
|
|
Summary |
|
In brief,
this work borns as an attempt to automatically produce
Portlets. Thus, it is part of a wider
endeavour in attempting to apply a product-line approach to
Portlet implementation. We believe the main contributions
are related to applying variability to the production plan,
to separate product and process features, and to provide a
way to do it automatically. |
| |
|
|
Demo |
|
Currently, there is
an online demo available at http://www.onekin.org/splc2005.
You can also see a video demo.
Write us if you enjoyed the demo and has any comment or suggestion.
|
| |
|
|
More information |
| |
This work is
yet being in progress. So, in the future more developments
are expected. We are working to do so possible. If you have any suggestion,
idea, want any additional information, or any feedback, please contact us
at
struji@ehu.es . |
| |
|
|
References |
| |
- Díaz, O., Trujillo, S., Anfurrutia, F.I.: Supporting
production strategies as refinements of
the production process. Software Product Line Conference
(SPLC 2005), LNCS 3714,
pp.210-221 (2005)
- Benavides, D., Trujillo, S., Trinidad, P.: On the
Modularization of Feature Models. Software Product Line
Conference (SPLC 2005), European Workshop`on Model
Transformations (EWT). To be published.
- D. Batory, J.Neal Sarvela, and A. Rauschmayer.
Scaling Step-Wise Re_nement. IEEE
Transactions on Software Engineering, 30(6):355.371,
June 2004.
- G. Chastek and J.D. McGregor. Guidelines for
Developing a Product Line Production Plan.
Technical report, CMU/SEI, June 2002. CMU/SEI-2002-TR-06.
- P. Clements and L.M. Northrop. Software Product
Lines - Practices and Patterns. Addison-
Wesley, 2001.
- K. Czarnecki and U. Eisenecker. Generative
Programming. Addison-Wesley, 2000.
- Apache Software Foundation. Apache Ant.
http://www.ant.apache.org/.
- J.D. McGregor. Product Production. Journal Object
Technology, 3(10):89.98, November/
December 2004.
- N. Serrano and I. Ciordia. Ant: Automating the
Process of Building Applications. IEEE
Software, 21(6):89.91, November/December 2004.
|
| |
|