Wednesday, February 27, 2013

CPK - Community Plugin Kickstarter - Request For Comments

CPK

One more Ctool in the works. Once again I'm calling out for comments, suggestions, whatever. Let me know what you thing and suggestions for improvements, or even if you think this makes no sense at all.

Motivation

Pentaho is very well known for being a very good Business Analytics software, but is in fact much more than that; Pentaho is a great platform to build on top of.
Using an easy analogy, I see Pentaho acting as an operating sytem where people can build Application on top of

Objective

The goal of CPK is to provide a simple and easy way to develop pentaho plugins that behave like packaged applications, simplifying it's structure.
The UI is built using CDE, with a simple methodology to create new dashboards / pages and a sitemap that provides simple navigation and a default template
There are 3 options for doing server-side code:
  1. Kettle transformations
  2. Javascript server side code execution
  3. Java classes
The first two are recommended, since it's easier to register new endpoints just by dropping code in a directory and no compilation is necessary.
With this approach not only we expect to make it easier and faster to develop plugins, we also hope to lower down the specific technical requirements to build them. The end goal is that business consultants are able to build new plugins, not requiring specific java knowledge.

Structure

This is the resulting plugin structure. Ideally, no compilation is necessary, so everything except maybe the lib directory could be stored in a VCS system.
This is the proposed stub configuration
to be completed
CPK_Plugin
|-- conf
|-- dashboards
|-- endpoints
|-- lib
`-- plugin.xml

CPK administrative features

Besides providing the regular templating for creating new plugins, CPK can have an administrative UI with the following features:
  • List existing plugins
  • Detect if the plugins are up to date with the latest version of CPK
  • Allow the creation of new plugins
  • Allow to change plugin metadata
  • List and register new endpoints (UI and code)
Here's a list of stretch goals / nice to have
  • Import UI from existing dashboards in solution
  • Allow editing dashboards from this UI
  • Submit marketplace metadata to Pentaho
  • Generate distribution zip package

Updates

As the CPK framework or any of it's dependencies gets improved, the plugins themselves can't stay outdated. There will be a version information attached to the CPK plugin version so that it's possible to upgrade to the latest version.

Dependencies

CPK will have as little code as possible, making it as simple as possible to develop plugins. However, it will need a few dependencies:
  • Pentaho
  • CPF - Community Plugin Framework, with the common set of code for the plugins
  • CDE - Community Dashboard Editor
  • CDF - Community Dashboard Framework
  • CDA - Community Data Access

Link with Pentaho Marketplace

Once a plugin is developed, and the authors think it's in a state that can be shared, CPK will be able to generate a packaged plugin and metadata information so it can be integrated into Pentaho's marketplace.
Pentaho will then be able to categorize / approve the plugin so that it becomes available to other users through the marketplace

License

This project uses MPLv2

13 comments:

  1. I really like this idea. We already use Kettle as a toolkit to do lots of things that aren't classic ETL.

    ReplyDelete
  2. I didn't put my eyes on it's structure yet, but think it'd be awesome to be able to build Analyzer VIZs using CPK.

    ReplyDelete
  3. I really like it too! I agree that Pentaho's platform allow us to do much more than BI analysis.

    ReplyDelete
  4. Do you mean, like, think of SugarCRM Plugin, Asterisk, OpenBravo, WordPress Webstrean Solution... Do you mean THAT? Man, you gonna freak the skull out of SAS... Sweet!!! :-D

    ReplyDelete

  5. Thanks for the feedback everyone.

    Marcelo - that's a great suggestion!

    ReplyDelete
  6. great idea.... I also believe that pentaho could be used as a kind of portal... building "small/lite apps" on top... like portlets...

    one ring to rule them all!

    ReplyDelete
  7. Looking forward to another great blog. Good luck to the author. all the best.




    aion accounts

    ReplyDelete
  8. This comment has been removed by a blog administrator.

    ReplyDelete
  9. This comment has been removed by a blog administrator.

    ReplyDelete
  10. I learnt a lot from your blog. It was worth taking time to read the blog. Keep the good work.


    University of Phoenix Online

    ReplyDelete
  11. I must say, I thought this was a pretty interesting read when it comes to this topic. Liked the material. . . . .


    dentist kilgore tx

    ReplyDelete
  12. Very marverlous post! I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts
    online classes

    ReplyDelete
  13. I love it when things get improved, thanks for putting up a great guide. Hope it will help me out in my future projects
    Phoenix University

    ReplyDelete