Lee moon soo created ZEPPELIN-732:
-------------------------------------

             Summary: Packaged user code that runs on interpreter process
                 Key: ZEPPELIN-732
                 URL: https://issues.apache.org/jira/browse/ZEPPELIN-732
             Project: Zeppelin
          Issue Type: Sub-task
            Reporter: Lee moon soo


User writes code and Zeppelin run and display the result on the notebook.
If user code can be packaged and reused, that would be really useful. 

The idea is simple, run packaged user code on interpreter process, just like an 
user code, and display result on notebook just like an paragraph result. 

I'd like to call packaged user code as Application.

*How user runs Application?*

Zeppelin have list of applications in 'Registry'. Depends on resources 
available in paragraph, Zeppelin suggest possible applications as a icon 
button, just like Zeppelin suggest possible visualization for table result.

When user click the icon button, then an application is downloaded from 
'Repository' and run on the interpreter process.


*How application artifact looks like?*

Application is downloadable / runnable artifact that contains user code that 
interact with Zeppelin provided API.
I think Jar format would be simplest way to go without inventing new package 
format and leveraging maven repository.

*What is Registry?*

Each application is described by package metadata. package metadata contains 
package name, icon, description, artifact, version, required resources, 
license, etc.
Registry is collection of package metadata. Zeppelin community can maintain one 
central registry.


*How application displays output?*

Each paragraph has output message, angular objects, dynamic forms. Single 
paragraph will have multiple applications and each of them has their own output 
message, angular objects, dynamic form values, just like an paragraph output. 


*What is resources?*

resource is object available in ResourcePool. It can be paragraph result, it 
can be something exposed from interpreter (e.g. SparkContext).
Package metadata describes required resource for the package. Zeppelin will 
scan resource available in the resourcepool and suggest possible package for 
the paragraph.

*What this issue trying to do?*

Minimal implementation of 'Application runtime'.
Which includes application download and loader, application selection icon, 
displaying output and examples.

*Possible future work*

This application framework can be extended to use built-in pivot function to 
transform input data. Then it becomes one possible implementation of pluggable 
visualization.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to