Onekin Research Group - Department of Computer Languages and Systems - University of the Basque Country
 
 Home
 Portlets
 A example
 CAD
 Production plan
 Product & Process Features
 Process Features
 Architecture
 Tool
 Summary
 Demo
 More
 References
 
 
 
-> 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:
 
  1. Clean project
  2. Compile product source
  3. Build WAR
  4. 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.
  Production Architecture
   
-> 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.
     
   
 
  Last Update: September 12th, 2005