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)