airavata-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Suresh Marru <sma...@apache.org>
Subject Re: [GSoC Proposal] - Re-Factoring Apache Airavata Codebase to incorporate well-known object-oriented Design patterns and principles
Date Fri, 25 Mar 2016 00:03:00 GMT
Hi Abhishek,

In addition to addressing Marlon’s comments on the doc, it will be helpful you demonstrate
some basic understanding of Airavata within next two weeks. You can start by a small example
and explain how you would take an example component or set of classes and apply design patterns
to them. 

Suresh

> On Mar 21, 2016, at 5:23 PM, Abhishek Jain <ajain13@binghamton.edu> wrote:
> 
> Hi Pierce,
> I have created the link. The link is as follows :
> 
> https://docs.google.com/document/d/1k_vjIiLIdvZh470HCDAqxJoj8EKq4V7n0wPe2O538eg/edit?usp=sharing
<https://docs.google.com/document/d/1k_vjIiLIdvZh470HCDAqxJoj8EKq4V7n0wPe2O538eg/edit?usp=sharing>
> 
> I have created the draft under the GSoC proposal site under Apache foundation with the
same title.
> I have provided commenting and suggesting privileges.
> 
> 
> Regards,
> Abhishek Jain
> 
> On Mon, Mar 21, 2016 at 4:50 PM, Pierce, Marlon <marpierc@iu.edu <mailto:marpierc@iu.edu>>
wrote:
> 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