Hi Pierce, I have created the link. The link is as follows : 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]> 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]> > Reply-To: "[email protected]" <[email protected]> > Date: Monday, March 21, 2016 at 10:37 AM > To: "[email protected]" <[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 >
