Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 1850B200C14 for ; Tue, 7 Feb 2017 17:09:23 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 16B6A160B4B; Tue, 7 Feb 2017 16:09:23 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 15B0A160B3E for ; Tue, 7 Feb 2017 17:09:21 +0100 (CET) Received: (qmail 73503 invoked by uid 500); 7 Feb 2017 16:09:21 -0000 Mailing-List: contact dev-help@airavata.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@airavata.apache.org Delivered-To: mailing list dev@airavata.apache.org Received: (qmail 73493 invoked by uid 99); 7 Feb 2017 16:09:21 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Feb 2017 16:09:21 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 931981A047C for ; Tue, 7 Feb 2017 16:09:20 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.398 X-Spam-Level: ** X-Spam-Status: No, score=2.398 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id 5OPGz20GhSXQ for ; Tue, 7 Feb 2017 16:09:15 +0000 (UTC) Received: from mail-wr0-f180.google.com (mail-wr0-f180.google.com [209.85.128.180]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 882865FB43 for ; Tue, 7 Feb 2017 16:09:14 +0000 (UTC) Received: by mail-wr0-f180.google.com with SMTP id k90so41390405wrc.3 for ; Tue, 07 Feb 2017 08:09:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=OTeLdmohevrctf2LKycGjSYqCXyvw+NgJaafAMWWvYY=; b=it7VNQn67UBDu5VquqU67BEA+sGv35+nIqsfTVG/hqRXNLkT1VpVYFYvtCipJxxNWe fDM0A3xqw4cBA6c1FSDN41T6ydnev4EaxqDJcq7sM+rGTyiwiPEh1Oddvbbt82XXKoM6 2v50LhimCFTFPGEb3rieCM+FQhjGTEc5JGj3OUws/IMCaFgGdsYdL6PRZNGL43pjtQrB c5CpBuDMcwJlQnV1L7PKMRxr/LQCPCnR9a0XkXh8ra9vnP5cK7yIpJlM33Pfv9y43NKi r9+3xhyLCLwRYTQrAYj/d16GgfHE5zyoUAQUeOyU+YS/H+Qx5X3DDz4X1D1mIkg4B/eJ G/qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=OTeLdmohevrctf2LKycGjSYqCXyvw+NgJaafAMWWvYY=; b=CRBFsbPg4VGMHURhiKcYIXQ4oSAp8t9EbARLwMFtmjR35M8vgeArfrEpGJMUVj9SsW h+XQe/dfQy/oytEZ3OexHBcvlqISj2ENtYhstBl6vMf4DkqWqRi5asM20F1MS061BI9n M1rahzhnDt80+N+glkKts9T3TT70ujEpISeXBAKivmCV7H9lRwmU1qu2he1IUIRmoUJp T/WrXsz3GvOn0gddfVMQHkvae7dz/Jk7Icm+h654AOErmXCsEweJGOK9ZLy6gqfOwMEi 7QCVVDnHmYRMlwzxvzHCHEQgiUFxPxac8UIW/MEr9/ai6QBw2nO8DXdqTLt15pDEBENO N4eA== X-Gm-Message-State: AIkVDXJfo7nFiDbfKDiBEVowmNWqnH2k/PKYmj3/ONyD8gxTFQZYQU6+zBF8zIi4upYQXG6ml8tEDrARMNvhWw== X-Received: by 10.223.166.80 with SMTP id k74mr14673781wrc.171.1486483753706; Tue, 07 Feb 2017 08:09:13 -0800 (PST) MIME-Version: 1.0 Received: by 10.223.132.36 with HTTP; Tue, 7 Feb 2017 08:09:13 -0800 (PST) In-Reply-To: References: <978DE32E-EF88-42DB-80F5-87F7682349D3@iu.edu> From: Amila Jayasekara Date: Tue, 7 Feb 2017 11:09:13 -0500 Message-ID: Subject: Re: Requirements for an updated portal architecture To: dev Content-Type: multipart/alternative; boundary=f403045cf0021ab0610547f2f8fc archived-at: Tue, 07 Feb 2017 16:09:23 -0000 --f403045cf0021ab0610547f2f8fc Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Sorry, mistakenly pressed "Send" button before I finish typing :-). On Tue, Feb 7, 2017 at 11:01 AM, Amila Jayasekara wrote: > Hi Marcus, > > Nice summary of requirements. > > Some questions inline. > > On Fri, Feb 3, 2017 at 4:31 PM, Christie, Marcus Aaron > wrote: > >> Dev, >> >> I=E2=80=99ve been taking feedback from other Airavata developers and wor= king on >> requirements for a next generation architecture for the PGA. First I=E2= =80=99ll >> list out the requirements as I see them. Then I will propose what I feel= is >> a best fit for these requirements. Feedback on all of this is much >> appreciated. >> >> >> Requirements >> >> The following is a list of problems we would like to solve by adopting a >> new web framework. A new web framework here means both the backend >> framework for server side code as well as the frontend framework for cli= ent >> side code. >> > > I am little confused about the overall organization of the PGA. Isnt > backend means Airavata ? (sorry i am outdated on most of the things). > > >> >> 1. Have the ability to independently add new views to the portal. >> Framework should have some concept of modularity so new functionality ca= n >> be added without having to make changes to other parts of the portal. Th= is >> would facilitate new features moving into production faster. >> >> 2. Have the ability to make calls to Identity Server (SOAP) and Airavata >> (Thrift). Would be good if there is support for interacting with other >> remote computing protocols and HPC resources. >> > I was under the impression that IS has a REST interface also. Anyhow I am not sure about this. Also, what you meant by "support for interacting with other remote computing protocols and HPC resources" ? Can you give few examples ? IMO, if Portal need any information from the HPC resource it should go through Airavata for security reasons and also for communication reasons. If resource host a web server to extract information, it is find get information directly from resource (without going through Airavata) > >> 3. Be themable/skinnable and modular. Gateways should be able to >> customize the look and feel and make the portal their own. Gateways shou= ld >> be able to customize the functionality available in the portal, removing >> and adding just the functionality tailored for that specific gateway. >> >> 4. The backend framework should support different modes of web >> development: server-side rendered views as well as REST API for client s= ide >> views. >> >> 5. The backend framework should be able to easily integrate with existin= g >> scientific codes for visualization and analysis. This would allow >> developing lightweight domain specific functionality within the portal >> itself. >> >> 6. The backend and frontend frameworks should have active communities an= d >> some longevity, helping to ensure continued support in the future. >> >> 7. The backend and frontend frameworks should have a gentle learning >> curve to promote onboarding new contributors. Setting up a local >> development environment should be relatively easy. >> >> 8. The frontend framework should allow the development of more >> sophisticated client side views: >> =E2=80=A2 Domain specific and interactive views for configuring >> applications and viewing results >> =E2=80=A2 Domain specific and interactive views for browsing, fi= ltering >> and managing remote and personal data collections >> =E2=80=A2 More up front validation of application configurations >> >> >> >> Proposed solution >> >> With these requirements I feel like Django as a backend framework and >> React as a frontend framework are the best fit. Here are the benefits I = see >> of adopting Django: >> * Django has a builtin concept of modularity, the application [1]. This >> would allow the independent development of new views for new funtionalit= y >> (req 1) as well as making it possible to tailor a portal to a gateway=E2= =80=99s >> needs (req 3). >> * Django has a very active community and lots of off the shelf >> applications [2] that can be used to either quickly develop common porta= l >> functionality or to add gateway specific features >> * Being written in Python means that the backend can easily integrate >> with Python scientific codes for quick data analysis and visualization t= asks >> * A side benefit of a Python based portal is the opportunity to develop = a >> first class Airavata client in Python. This could enable scripts to take >> advantage of the Airavata API or Juptyer like interactions with the API. >> * Django is well-documented and relatively straightforward to work with, >> easing on-boarding of new developers >> >> Regarding React, I see these benefits: >> * React is a much more powerful and scalable approach to web UI >> development than just using jQuery, which is what the current PGA uses. >> With React we can build UIs with a higher degree of interactivity. And w= e >> can build richer, more domain-specific interfaces. >> * Unlike other JS frameworks that have a very large API to learn, the >> concepts and API surface of React is fairly small. The main challenge is >> learning to =E2=80=9Cthink in React=E2=80=9D [3] >> >> Again, feedback on this is much appreciated. >> > Its kind of hard to evaluate any product without actually prototyping. Django seems promising. However, I found this [4], on Django. Not sure whether those are really valid arguments. Thanks -Thejaka > >> >> Thanks, >> >> Marcus >> >> [1] https://docs.djangoproject.com/en/1.10/ref/applications/ >> [2] https://djangopackages.org/ >> [3] https://facebook.github.io/react/docs/thinking-in-react.html > > > [4] https://news.ycombinator.com/item?id=3D4076834 --f403045cf0021ab0610547f2f8fc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Sorry, mistakenly pressed "Send" button before I= finish typing :-).

On Tue, Feb 7, 2017 at 11:01 AM, Amila Jayasekara <<= a href=3D"mailto:thejaka.amila@gmail.com" target=3D"_blank">thejaka.amila@g= mail.com> wrote:
Hi Marcus,

Nice summary of r= equirements.

Some questions inline.

On = Fri, Feb 3, 2017 at 4:31 PM, Christie, Marcus Aaron <<= a href=3D"mailto:machrist@iu.edu" target=3D"_blank">machrist@iu.edu>= wrote:
Dev,
I=E2=80=99ve been taking feedback from other Airavata developers and workin= g on requirements for a next generation architecture for the PGA.=C2=A0 Fir= st I=E2=80=99ll list out the requirements as I see them. Then I will propos= e what I feel is a best fit for these requirements. Feedback on all of this= is much appreciated.


Requirements

The following is a list of problems we would like to solve by adopting a ne= w web framework.=C2=A0 A new web framework here means both the backend fram= ework for server side code as well as the frontend framework for client sid= e code.

I am little confused abo= ut the overall organization of the PGA. Isnt backend means Airavata ? (sorr= y i am outdated on most of the things).
<= div>=C2=A0

1. Have the ability to independently add new views to the portal. Framework= should have some concept of modularity so new functionality can be added w= ithout having to make changes to other parts of the portal. This would faci= litate new features moving into production faster.

2. Have the ability to make calls to Identity Server (SOAP) and Airavata (T= hrift).=C2=A0 Would be good if there is support for interacting with other = remote computing protocols and HPC resources.
<= /div>

I was under the impressio= n that IS has a REST interface also. Anyhow I am not sure about this.
=
Also, what you meant by "suppo= rt for interacting with other remote computing protocols and HPC resources&= quot; ? Can you give few examples ?
IMO, if Portal need any information from the HPC resource it s= hould go through Airavata for security reasons and also for communication r= easons. If resource host a web server to extract information, it is find ge= t information directly from resource (without going through Airavata)
=C2=A0
<= div>

3. Be themable/skinnable and modular. Gateways should be able to customize = the look and feel and make the portal their own. Gateways should be able to= customize the functionality available in the portal, removing and adding j= ust the functionality tailored for that specific gateway.

4. The backend framework should support different modes of web development:= server-side rendered views as well as REST API for client side views.

5. The backend framework should be able to easily integrate with existing s= cientific codes for visualization and analysis. This would allow developing= lightweight domain specific functionality within the portal itself.

6. The backend and frontend frameworks should have active communities and s= ome longevity, helping to ensure continued support in the future.

7. The backend and frontend frameworks should have a gentle learning curve = to promote onboarding new contributors. Setting up a local development envi= ronment should be relatively easy.

8. The frontend framework should allow the development of more sophisticate= d client side views:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=80=A2 Domain specific and interactive views= for configuring applications and viewing results
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=80=A2 Domain specific and interactive views= for browsing, filtering and managing remote and personal data collections<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=80=A2 More up front validation of applicati= on configurations



Proposed solution

With these requirements I feel like Django as a backend framework and React= as a frontend framework are the best fit. Here are the benefits I see of a= dopting Django:
* Django has a builtin concept of modularity, the application [1].=C2=A0 Th= is would allow the independent development of new views for new funtionalit= y (req 1) as well as making it possible to tailor a portal to a gateway=E2= =80=99s needs (req 3).
* Django has a very active community and lots of off the shelf applications= [2] that can be used to either quickly develop common portal functionality= or to add gateway specific features
* Being written in Python means that the backend can easily integrate with = Python scientific codes for quick data analysis and visualization tasks
* A side benefit of a Python based portal is the opportunity to develop a f= irst class Airavata client in Python. This could enable scripts to take adv= antage of the Airavata API or Juptyer like interactions with the API.
* Django is well-documented and relatively straightforward to work with, ea= sing on-boarding of new developers

Regarding React, I see these benefits:
* React is a much more powerful and scalable approach to web UI development= than just using jQuery, which is what the current PGA uses. With React we = can build UIs with a higher degree of interactivity. And we can build riche= r, more domain-specific interfaces.
* Unlike other JS frameworks that have a very large API to learn, the conce= pts and API surface of React is fairly small. The main challenge is learnin= g to =E2=80=9Cthink in React=E2=80=9D [3]

Again, feedback on this is much appreciated.

Its kind of hard to evalua= te any product without actually prototyping. Django seems promising. Howeve= r, I found this [4], on Django. Not sure whether those are really valid arg= uments.

Thanks
-Thejaka
=C2=A0=
<= /div>
<= /div>
--f403045cf0021ab0610547f2f8fc--