Student: Nirmal Fernando
Student e-mail: nirmal070125 AT gmail DOT com
Student Major: Computer Science and Engineering
Student Degree: Undergraduate
Student Graduation: October 2011
Organization: Apache Software Foundation
Assigned Mentor: Raymond Feng
Abstract:
Apache Tuscany provides a comprehensive infrastructure to simplify the task of developing and managing Service Oriented Architecture (SOA) solutions based on Service Component Architecture (SCA) standard. Tuscany Java SCA is a lightweight runtime that is designed to run standalone or provisioned to different host environments.
Task is to implement a tool which generates composite diagrams from the composite files to illustrate the SCA artifacts and their wirings. SCA artifacts are composite, component, service, reference.
This tool can serve multiple purposes:
1) Help document Tuscany's tutorials and samples
2) Be integrated with the SCA domain manager to visualize the SCA domain (contributions, composites, nodes etc)
Implementation Plan:
Composite XML should be generated using the Tuscany's in-memory representation of the composite model.
It will then will give as an input for the Composite Analyzer. Composite Analyzer then analyzes the XML document
and grab the relevant DOM Elements such as Composite, Component, Service, Reference, Wire etc. and starts to
build the SVG document using SVG DOM API of Apache Batik.
After Composite Analyzer built up the SVG document it will be the output which represents the composite diagram.
DOM elements (Composite, Component, Service, Reference, Wire etc.) possibly be static classes which holds the
shape of the artifact, colour, other static properties and will be given the dynamic properties (such as position, size etc.)
as input, in order to create a DOM element and it will be then handover to the Composite Analyzer.
Deliverables:
- Code of the tool which will be built.
- Tests to verify the accuracy of the diagrams generated.
- User documentation on operation of the tool and sample diagrams generated.
Time-line:
April 20 - May 23
- Continue studying on
- How Tuscany works
- How to create a SCA components by reading and implementing sample SCA components.
- Discuss the problems, ideas and the conflicts with the mentor and other Tuscany community members.
- Understand the APIs of the NoSQL DBMSs.
- Contact the Apache Cassandra, CouchDB and Hadoop/Hbase communities if there is a problem of understanding.
May 24 - July 10
- Decide the API for access and manipulate data in the NoSQL datastore component.
- Starting implementation of the Datastore components
- Stage 1 : Implementing component for Apache Cassandra
- Do functional tests for the component
- Stage 2 : Implementing component for CouchDB
- Do functional tests for the component
July 11
- Mid-term evaluation of the project.
July 12 - August 15
- Stage 3 : Component Hadoop/Hbase
- Do functional tests for the component
- Create a SCA Composite out of all the components
- Do functional tests for the component
- Write a documentation and a tutorial for the new components using a well known use-case scenario.
August 16 - August 22
- Make the final adjustments to all the deliverables for the submission.
August 26
- Final evaluation deadline.
Community Interactions:
Working with a Open source model of communication I like to interact the community via,
- JIRA issue tracking system
- Apache Tuscany mailing-list
- irc channel (#tuscany)
- private chats on gtalk or Skype
Using this mediums I like to do my project fully open to the community and take the precious ideas of each and every community member.
Biography:
I am Eranda Sooriyabandara a final year student of Department of Computer Science and Engineering, University of Moratuwa, Sri Lanka. As I am very much interested in databses I have experienced in working with databases like Apache Derby, MySQL, PostgreSQL, Oracle and Apache Cassandra as a 'NoSQL'. Also I have knowledge on Service Oriented Architecure and related topics like web services, SOAP since I had 6 month internship in a SOA middleware company.
The reason I invove in this project is because this is a great chance to learn about 'NoSQL' databases like Apache Cassandra, CouchDB, Hadoop/Hbase and AppEngine datastore and I can experience the Service Component Architecture, which is bit new technology to me but I like to learn the further while doing my contribution to Apache Tuscany. Also working with a experienced community is a big opportunity to me to learn new technologies from a the best.