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 >
