airavata-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pierce, Marlon" <marpi...@iu.edu>
Subject Re: [GSoC Proposal] - Re-Factoring Apache Airavata Codebase to incorporate well-known object-oriented Design patterns and principles
Date Mon, 21 Mar 2016 20:50:40 GMT
Hi Abhishek,

This is a good start but it will be easier to manage comments if you go ahead and start a
draft proposal in the GSOC 2016 submission site.  I prefer the google doc option to pointing
to the Airavata wiki for proposal development since I can easily comment inline.  Please make
sure you give commenting and suggesting privileges.

Marlon


From: Abhishek Jain <ajain13@binghamton.edu<mailto:ajain13@binghamton.edu>>
Reply-To: "dev@airavata.apache.org<mailto:dev@airavata.apache.org>" <dev@airavata.apache.org<mailto:dev@airavata.apache.org>>
Date: Monday, March 21, 2016 at 10:37 AM
To: "dev@airavata.apache.org<mailto:dev@airavata.apache.org>" <dev@airavata.apache.org<mailto:dev@airavata.apache.org>>
Subject: [GSoC Proposal] - Re-Factoring Apache Airavata Codebase to incorporate well-known
object-oriented Design patterns and principles

Hi Dev Team,

Please review the following GSoC proposal that I plan to submit:


Title: Re-Factoring Apache Airavata Codebase to incorporate well-known object-oriented Design
patterns and principles


Abstract:

Analyze the Airavata code base to incorporate well known creational, structural, and behavioral
design patterns. As the Airavata code base has steadily grown over the years, this project
will evaluate the architecture and make updates wherever necessary so that the code uses classic,
well tested, maintainable, readable, and extensible solutions to common design problems.


Introduction:

Analyze the Airavata code base to incorporate well known creational, structural, and behavioral
design patterns. As the Airavata code base has steadily grown over the years, it consists
of both old and new modules. While the Airavata codebase has been extensively tested for functionality,
it has not been evaluated for design elegance. Given the maturity of the current code base,
it is the appropriate time to study and evaluate which well-known patterns seem to emerge
from all the additions of modules and features.


This project will evaluate the architecture, refactor the code wherever appropriate, and make
updates wherever necessary so that the code uses classic, well tested, maintainable, readable,
loosely coupled, and extensible solutions to common design problems.  The application of patterns
will also ensure that the established design principles and guidelines are followed in all
the modules.


The current use cases of Airavata, including the planned integration with Cloud and Big Data
technologies, will be studied to identify the common traits of the problems being addressed
by Airavata, and incorporate or adjust the code patterns accordingly. For example, as Airavata
is extended for use in Cloud environments, and different components, some with multiple implementation
choices, have to be wired together, the Dependency Injection pattern is appropriate for modularity,
and loosely coupled designed. The Logger code in Airavata can be extended to include levels
to capture the severity of messages, errors, and exceptions.  Additionally, the code will
be updated to use newer Java features such as lambda expressions.

Goals:

  *   Develop a dependency graph of all the modules in the Airavata code base

  *   Evaluate how the components are wired for a successful job launch to understand the
coupling of objects (loosely coupled vs tightly coupled)

  *   Evaluate the current use of patterns and well-known design principles in Airavata and
make updates whenever necessary along with updates to the test suites

  *   Evaluate the design patterns and principles of newly added services such as adding email
functionality to send job status messages, integration of support for Cloud environments such
as Mesos, Marathon, and Aurora, and accordingly update the code with proven design solutions.


Any comment and suggestions would be very helpful.


- Abhishek Jain
Mime
View raw message