Abstract

Tuscany Service Component Architecture (Tuscany SCA) provides infrastructure for developing applications by combining the existing components and contributions. These contributions are residing in SCA domains. An SCA domain may be comprised of a single runtime or multiple runtimes. Most of the time, it is distributed across several runtimes within a network. A runtime could be an application Server run time like Apache Geronimo. Tuscany has already been integrated with Geronimo to provide runtimes using command line tools.

The objective of this project is to develop an Admin Console Extension (ACE) for Apache Geronimo for deploying and managing SCA contributions within an SCA domain. So the users will be able to use a graphical user interface to manage contributions instead of existing command line tools. With this ACE, it will be possible to list the contributions available in the SCA domain with their status, deploy contributions in the domain, remove contributions from the domain and manage composites within these contributions. Once these features are implemented, other aspects of an SCA domain will be considered like policy configuration, allocating SCA components to different runtimes, etc. Covering all these aspects will make this ACE a full confirming administration tool.

At the moment Tuscany has a web based SCA domain admin tool to manage contributions within an SCA domain. This will be mashed up into Apache Geronimo as an Admin Console Extension, with some feature additions and improvements. With this ACE, it will be easier for users to manage different SCA contributions directly from the Geronimo admin console. In addition to that, this ACE will be having support for administrating the total SCA domain. This will be a useful feature addition for Tuscany.


Discussion
Tuscany SCA is a major part of the Apache Tuscany project, which facilitates building large applications by combining the existing services. Tuscany provides the entire infrastructure to assemble these services. A service is offered either by a component or by a composite. Composite is an aggregation of one or more components which are co-operating with each other to deliver a particular service. Once these composites are bundled with their configuration details and get packaged in a deployable manner, it is called a contribution. A contribution is an archive and the artifacts in the contribution can be located using hierarchical URIs. These contributions are deployed in SCA domains. An SCA domain contains one or more runtimes. Apache Geronimo is one possible way to create a runtime for an SCA domain.

When an SCA domain is created, it is essential to have a mechanism to manage that domain. Managing contributions is an important aspect of SCA domain management. This includes deploying and managing SCA contributions in the domain. Tuscany already has a web based SCA domain admin tool. It would be really advantageous, if this admin tool can be bound with the Geronimo admin console with some improvements and feature additions. This was not straight forward with the earlier versions of Geronimo as it had a non customizable admin console. But now Geronimo provides an Extensible Administration Console (EAC). Administration Console Extensions (ACE) can be used to make customized admin consoles for the different run times using EAC. Because of this facility, now it is possible to develop an ACE to manage contributions of an SCA domain.

I am planning to facilitate, displaying the existing SCA contributions with their status, deploying new SCA contributions in the domain and remove SCA contributions from the domain. Information like whether all the imports are resolved and the imports which are unresolved will be displayed under the status of the contribution. In addition to that, it is possible to extend the functionality of this admin console to cover the other aspects of an SCA domain, like policy configurations, allocating SCA components to runtimes. Then this will become a total solution for administrating SCA domains.

I will be able to grab a lot of helpful ideas and clues by exploring the existing integration of Tuscany with Geronimo and the web based SCA domain admin tool. Then I'll try to mash up the existing web based SCA domain admin tool with Apache Geronimo as an ACE in my first step. This will be used as the base of the project, and I'll be working on applying necessary modifications and adding more features into this.

I am planning to use Apache Geronimo internal repository to store the contributions. All the above mentioned functionalities will be implemented as a portlet, since portlets are the main building blocks of Admin Console Extensions. A special attention will be paid to make user interfaces as much as simple and user friendly. I'll use the different modes of portlets like view and edit effectively to achieve that task. And the window state is also an important factor, since I will have to properly manage the space provided by Geronimo to display the necessary contents. I’ll try to deliver the source with a high readability and clarity. Java coding standards and good programming practices will be followed throughout the implementation phase. I will try to get the Tuscany community to review the code frequently. I am planning to add some documentation, describing how to use the Admin Console Extension with a sample demonstration.

Community Interaction

This is the most important aspect in open source development. Working with an active and friendly community like Tuscany is a huge advantage to make this project a success. I will try my best to involve the Tuscany community in all phases of my project. I will get the support and suggestions from the Geronimo community whenever necessary. I will maintain the visibility and the transparency of the project in a high degree, so that anyone can forward their ideas and suggestions. Tuscany-dev list will be used for this purpose. Already a discussion on this has been started and can be found at http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg29496.html. Also I am planning to maintain a wiki page displaying the current progress of the project, where others can comment on it.


List of Deliverables


Development Schedule

22nd April 2008 - 29th April 2008 – Getting Familiar with Apache Tuscany, Apache Geronimo and other related technologies

30th April 2008 – 25th May 2008 - Coming up with the finalized list of features and a design. Defining a list of test scenarios

26th May 2008 – 5th July 2008 – First Phase of the development

6th July 2008 – Mid-term evaluation

15th July 2008 – 04th August 2008 – Second Phase of development

04th August 2008 – 17th August 2008 – Documentation, Code Reviews and testing the different scenarios defined in the designing phase

18th August 2008 – Final Evaluation


About Me
I am Thilina Buddhika, a Final Year Undergraduate of University of Moratuwa, Sri Lanka, specializing in the field of Computer Science and Engineering.

I have been working with Java technologies for almost three years. I have developed a fair amount J2EE and J2ME applications. And I have a good exposure to SOA, especially to web services. I have worked with Apache Axis2 and Apache Synapse projects. I have developed a JRuby Binding for Apache Axis2 during my internship period. I also have developed a mediator for Apache Synapse, which is called as URLRewrite Mediator. All the information about this project is available at http://esbsite.org/resources.jsp?path=/mediators/thilinamb/URLRewrite%20Mediator.

With all these projects I have got a good exposure to the open source world, especially to Apache projects. I am familiar with Apache Maven, Apache Ant, Subversion and Apache Tomcat which are widely used in Apache projects.