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 <[email protected]> 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 <[email protected] 
> <mailto:[email protected]>> 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 <[email protected] <mailto:[email protected]>>
> Reply-To: "[email protected] <mailto:[email protected]>" 
> <[email protected] <mailto:[email protected]>>
> Date: Monday, March 21, 2016 at 10:37 AM
> To: "[email protected] <mailto:[email protected]>" 
> <[email protected] <mailto:[email protected]>>
> 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
> 

Reply via email to