Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of ContentsmaxLevel3

Table of Contents
maxLevel3
printablefalse

Proposal 1: Siddhi Process Monitor for WSO2 CEP

...

[1] https://github.com/wso2/siddhi

[2] http://wso2.com/library/articles/2013/12/demystifying-wso2-esb-pass-through-transport-part-iproducts/complex-event-processor/

[3https://docs.wso2.com/display/CEP400/CEP+Event+Flow 

...

Java, Shell Scripting

References

[1] http://wso2.com/landing/app-factory/
[2] https://docs.wso2.com/display/AF200/WSO2+App+Factory+Documentation

Possible Mentor/s

Anuruddha Premalal ( anuruddha AT wso2 DOT com)
Dimuthu Leelarathne (dimuthul AT wso2 DOT com)

...

The Private PaaS is an open source Platform as a Service (PaaS) solution implemented on Apache Stratos. It is a multi-tenant, self-service, metered, middleware cloud for complex, enterprise-ready projects. It can be run on Google Compute Engine (GCE), Amazon EC2, OpenStack, CloudStack and Google Kubernetes. Currently WSO2 Private PaaS has a RDBMS which contains cloud service usage information, however it does not have a billing system. In this project it is required to implement a web based billing system which could integrate Google Checkout for generating invoices and making payments for cloud service usage. 

As the first step of this project a literature review needs to be done analyzing existing billing models of PaaS solutions and design a billing model. This should be configurable via the Web application according to custom billing requirements. Once the billing model is in place the web application needs to be implemented to generate a detailed invoice  based on the Infrastructure as a Service (IaaS) resource usage and PaaS service usage. This also Finally an aggregated invoice needs to consider the profit margin of the PaaS provider. Finally an aggregated invoice needs to be generated for the be generated for the cloud user. PaaS administrator should be able to login to the billing system and view detailed billing information of each PaaS user. 

Deliverables 

  • A web application that can integrate Google Wallet for generating Invoices for cloud usage.

Skills Needed 

  • Java
  • Web services
  • SQL

Possible Mentor/s

  • Imesh Gunaratne (imesh AT wso2 DOT com)
  • Lakmal Warusawithana (lakmal AT wso2 DOT com)

References

[1] http://wso2.com/cloud/private-paas/

[2] http://stratos.apache.org

[3] https://www.google.com/wallet/

 

Proposal 11: Recommendation Solution for WSO2 Machine Learner

Description

WSO2 Machine Learner is a Machine Learning Server. Recommendations systems takes item sales and item views as input and recommend items for users based on their interest. (see 1). Goal of this project is to add a recommendation system to WSO2 Machine Learner so that a Retail web site can easily add recommendations support using WSO2 Machine Learner. 

Project would involve following steps. 

  1. Develop a REST API that has operations a) reportSale(user, item), b) reportView(user, item), c) getRecommendations(user).
  2. Develop a Java Script based client for REST API and set of html code that can be added to a web site just like Google Analytics scripts. 
  3. In the REST API, for a) and b) save events to WSO2 Machine Learner. Then use the Spark Recommendation algorithm 2 to make recommendations and expose those results though operation getRecommendations( ..)

When this is done, a retail web site can add the java script code into the site in the same manner as Google analytics scripts and receive recommendations based on the sales and item views.

Deliverables 

  • REST API to report user interactions with the Retail Web Store.
  • REST API to get recommendations for a given user.
  • Java script based API client to be used in the Website.
  • Integrate Spark's recommendation algorithms into ML.

Skills Needed 

  • Java
  • JAX-RS (can be learned)
  • Java Script and HTML

Possible Mentor/s

  • Srinath Perera (srinath AT wso2 DOT com)
  • Nirmal Fernando (nirmal AT wso2 DOT com)

References

[1] infolab.stanford.edu/~ullman/mmds/ch9.pdf

[2] https://spark.apache.org/docs/latest/mllib-guide.html

 

Proposal 12: Deep Learning for WSO2 Machine Learner

Description

Deep learning refers to neural networks that consist of more than one hidden layers.  Goal of this project is to add a new extension to  analytics workflow of WSO2 Machine Learner, so that end users can build deep learning models without going through the  details of training deep learning algorithms.

Project consists of following steps:

  1. Develop a Jaggery [1] interface, end-users will use this interface to interact with deep learning algorithms. Interface should includes a) facility to choose algorithms and hyper-parameters b) According to the selected algorithm and hyper-parameters, network architecture should be displayed c) When training, activities of hidden-layers should be inspected via the user interface.
  2. Develop a deep learning back-end using Deeplearning4J [2] library. 
  3. Evaluate the performance using few well-known datasets  such as MNIST handwritten recognition dataset [3], Caltech 101 [4].

Deliverable

A new extension to the analytics workflow of the WSO2 Machine Learner.

Skills Needed 

  • Machine learning
  • Java
  • User interface designing using HTML, JavaScript and d3.js

Possible Mentor/s

  • Srinath Perera (srinath AT wso2 DOT com)
  • Nirmal Fernando (nirmal AT wso2 DOT com)
  • Upul Bandara ( upul AT wso2 DOT com)

References

[1]. http://jaggeryjs.org/
[2]. http://deeplearning4j.org/
[3]. http://yann.lecun.com/exdb/mnist/
[4]. http://www.vision.caltech.edu/Image_Datasets/Caltech101/

 

 

Proposal 13: ESB - End-to-end Message Tracing Support 

Description

The end-to-end message tracing of message mediation flow need to be implemented based on WSO2 ESB and WSO2 BAM. The project requires changes at ESB core engine level as well as to write a new data publisher to BAM. Also, at BAM level, we need to have the UI level support for tracing the entire message flow with BAM gadgets. 

Deliverables

  • ESB Core engine level support for tracing/dumping the messages

  • Mediation tracing data agent. 

  • Message Tracing dashboard. 

Skills Needed

...

Steps to Follow

  • Do a literature review on billing patterns of cloud services
  • Do a literature review on existing open source billing systems
  • Find information on Google Wallet API
  • Find information on WSO2 Private PaaS usage data model
  • Prepare a project proposal with the above information and share it with the mentor
  • Use WSO2 Dev mailing list for the communication

Deliverables 

  • A web application that can integrate Google Wallet for generating Invoices for cloud usage for WSO2 Private PaaS.

Skills Needed 

  • Java
  • Web services
  • SQL

WSO2 Private PaaS Version

  • WSO2 Private PaaS 4.1.0 = Apache Stratos 4.1.0 + WSO2 product cartridges

Possible Mentor/s

  • Imesh Gunaratne (imesh AT wso2 DOT com)
  • Lakmal Warusawithana (lakmal AT wso2 DOT com)

References

[1] http://wso2.com/cloud/private-paas/

[2] http://stratos.apache.org

[3] https://www.google.com/wallet/

 

Proposal 11: Recommendation Solution for WSO2 Machine Learner

Description

WSO2 Machine Learner is a Machine Learning Server. Recommendations systems takes item sales and item views as input and recommend items for users based on their interest. (see 1). Goal of this project is to add a recommendation system to WSO2 Machine Learner so that a Retail web site can easily add recommendations support using WSO2 Machine Learner. 

Project would involve following steps. 

  1. Develop a REST API that has operations a) reportSale(user, item), b) reportView(user, item), c) getRecommendations(user).
  2. Develop a Java Script based client for REST API and set of html code that can be added to a web site just like Google Analytics scripts. 
  3. In the REST API, for a) and b) save events to WSO2 Machine Learner. Then use the Spark Recommendation algorithm 2 to make recommendations and expose those results though operation getRecommendations( ..)

When this is done, a retail web site can add the java script code into the site in the same manner as Google analytics scripts and receive recommendations based on the sales and item views.

Deliverables 

  • REST API to report user interactions with the Retail Web Store.
  • REST API to get recommendations for a given user.
  • Java script based API client to be used in the Website.
  • Integrate Spark's recommendation algorithms into ML.

Skills Needed 

  • Java
  • JAX-RS (can be learned)
  • Java Script and HTML

Possible Mentor/s

  • Srinath Perera (srinath AT wso2 DOT com)
  • Nirmal Fernando (nirmal AT wso2 DOT com)

References

[1] infolab.stanford.edu/~ullman/mmds/ch9.pdf

[2] https://spark.apache.org/docs/latest/mllib-guide.html

 

Proposal 12: Deep Learning for WSO2 Machine Learner

Description

Deep learning refers to neural networks that consist of more than one hidden layers.  Goal of this project is to add a new extension to  analytics workflow of WSO2 Machine Learner, so that end users can build deep learning models without going through the  details of training deep learning algorithms.

Project consists of following steps:

  1. Develop a Jaggery [1] interface, end-users will use this interface to interact with deep learning algorithms. Interface should includes a) facility to choose algorithms and hyper-parameters b) According to the selected algorithm and hyper-parameters, network architecture should be displayed c) When training, activities of hidden-layers should be inspected via the user interface.
  2. Develop a deep learning back-end using Deeplearning4J [2] library. 
  3. Evaluate the performance using few well-known datasets  such as MNIST handwritten recognition dataset [3], Caltech 101 [4].

Deliverable

A new extension to the analytics workflow of the WSO2 Machine Learner.

Skills Needed 

  • Machine learning
  • Java
  • User interface designing using HTML, JavaScript and d3.js

Possible Mentor/s

  • Srinath Perera (srinath AT wso2 DOT com)
  • Nirmal Fernando (nirmal AT wso2 DOT com)
  • Upul Bandara ( upul AT wso2 DOT com)

References

[1]. http://jaggeryjs.org/
[2]. http://deeplearning4j.org/
[3]. http://yann.lecun.com/exdb/mnist/
[4]. http://www.vision.caltech.edu/Image_Datasets/Caltech101/

 

 

Proposal 13: ESB - End-to-end Message Tracing Support 

Description

The end-to-end message tracing of message mediation flow need to be implemented based on WSO2 ESB and WSO2 BAM. The project requires changes at ESB core engine level as well as to write a new data publisher to BAM. Also, at BAM level, we need to have the UI level support for tracing the entire message flow with BAM gadgets. 

Deliverables

  • ESB Core engine level support for tracing/dumping the messages

  • Mediation tracing data agent. 

  • Message Tracing dashboard. 

Skills Needed

Fundamental knowledge on WSO2 ESB message flow and WSO2 BAM, hive and Jaggery.  

References

[1] https://docs.wso2.com/display/BAM230/User+Guide

Possible Mentor/s

Isuru Udana ( isuruu AT wso2 DOT com)

Kasun Indrasiri (kasun AT wso2 DOT com)

 

 

Proposal 14: Integrating nginx to WSO2 App Manager

Description

WSO2 App Manager has several key profiles. Namely, App Store, App Publisher, Identity Provider(IdP) & App Gateway. App Gateway is currently implemented using WSO2 Enterprise Service Bus. This proposal is to integrate nginx as App Gateway in WSO2 App Manager. Main functionalities of App Gateway includes receiving all web application requests, calling Identity Provider (IdP) for authentication requests, applying throttling policies & publishing statistics.

Deliverables

Set of nginx extensions that would convert a standard nginx server into WSO2 App Gateway

Skills Needed

Fundamental knowledge in WSO2 App Manager, WSO2 Enterprise Service Bus & WSO2 Identity Server

References

[1] https://docs.wso2.com/display/BAM230/User+GuideAPPM100

Possible Mentor/s

Isuru Udana Sumedha Rubasinghe ( isuruu sumedha AT wso2 DOT com)
Kasun Indrasiri Dinusha Senanayake (kasun dinusha AT wso2 DOT com)
 Ruwan Yatawara (ruwan AT wso2 DOT com)

 

...

Proposal 15: Integrating Apache HTTP Server to WSO2 App Manager

Description

WSO2 App Manager has several key profiles. Namely, App Store, App Publisher, Identity Provider(IdP) & App Gateway. App Gateway is currently implemented using WSO2 Enterprise Service Bus. This proposal is to integrate nginx as Apache HTTP Server as App Gateway in WSO2 App Manager. Main functionalities of App Gateway includes receiving all web application requests, calling Identity Provider (IdP) for authentication requests, applying throttling policies & publishing statistics.

Deliverables

Set of nginx Apache HTTP Server extensions that would convert a standard nginx Apache HTTP server into WSO2 App Gateway

Skills Needed

Fundamental knowledge in WSO2 App Manager, WSO2 Enterprise Service Bus & WSO2 Identity Server

References

[1] https://docs.wso2.com/display/APPM100

Possible Mentor/s

Sumedha Rubasinghe (sumedha AT wso2 DOT com)
Dinusha Senanayake (dinusha AT wso2 DOT com)
Ruwan Yatawara (ruwan AT wso2 DOT com)

 

Proposal

...

Description

WSO2 App Manager has several key profiles. Namely, App Store, App Publisher, Identity Provider(IdP) & App Gateway. App Gateway is currently implemented using WSO2 Enterprise Service Bus. This proposal is to integrate Apache HTTP Server as App Gateway in WSO2 App Manager. Main functionalities of App Gateway includes receiving all web application requests, calling Identity Provider (IdP) for authentication requests, applying throttling policies & publishing statistics.

Deliverables

Set of Apache HTTP Server extensions that would convert a standard Apache HTTP server into WSO2 App Gateway

Skills Needed

Fundamental knowledge in WSO2 App Manager, WSO2 Enterprise Service Bus & WSO2 Identity Server

References

...

16 : Enable selenium testing in Appfactory test stage

Description

Applications created in wso2 appfactory has a testing lifecycle stage. Idea of this project is to facilitate this stage with selenium testing capabilities.

Users should be able trigger the selenium tests against a deployed web application and retrieve the test results. And they will be given with the option to run test either in headless mode or not, depending on the mode; will have to run the test on a compatible server.

Skills Needed

Java, Basic Knowledge in Selenium

References

[1] http://wso2.com/landing/app-factory/

[2] https://docs.wso2.com/display/APPM100/display/AF200/WSO2+App+Factory+Documentation


Possible Mentor/s

Sumedha Rubasinghe Anuruddha Premalal ( sumedha anuruddha AT wso2 DOT com)Dinusha Senanayake

Dimuthu Leelarathne (dinusha dimuthul AT wso2 DOT com)Ruwan Yatawara (ruwan AT wso2 DOT com)

 

Proposal 16 : Enable selenium testing in Appfactory test stage

Description

Applications created in wso2 appfactory has a testing lifecycle stage. Idea of this project is to facilitate this stage with selenium testing capabilities.

...


Proposal 17 : Data Wrangler extension for WSO2 Machine Learner

Description

WSO2 Machine Learner is a Server which provides Machine Learning on Big data. Wrangler [1] [2] is an interactive tool for data cleaning and transformation. Goal of this project is to add an extension for WSO2 Machine Learner for interactive data cleaning and transformation using Wrangler.

This project requires to:

  • Develop a Jaggery [3] user interface to interactively perform tasks (a selected subset of operations) on data cleaning and transformations.

  • Connect Wrangler with the Jaggery User Interface.

  • Develop a back-end to convert the scripts generated from Wrangler to Java.

Deliverable

A new extension to the analytics workflow of the WSO2 Machine Learner.

Skills Needed

  • Java

...

  • HTML, JavaScript.

References

[1] http://

...

vis.stanford.

...

edu/

...

wrangler/

...

[2] https://

...

github.com

...

/StanfordHCI/wrangler

[3] http://jaggeryjs.org/

Possible Mentor/s

...

Srinath Perera (srinath AT wso2 DOT com)

Nirmal Fernando (nirmal AT wso2 DOT com)

...

Supun Sethunga (

...

supuns AT wso2 DOT com)

Proposal

...

18 : Extensible Visual Composer Siddhi Language 

Description

WSO2 Machine Learner is a Server which provides Machine Learning on Big data. Wrangler [1] [2] is an interactive tool for data cleaning and transformation. Goal of this project is to add an extension for WSO2 Machine Learner for interactive data cleaning and transformation using Wrangler.

This project requires to:

  • Develop a Jaggery [3] user interface to interactively perform tasks (a selected subset of operations) on data cleaning and transformations.

  • Connect Wrangler with the Jaggery User Interface.

  • Develop a back-end to convert the scripts generated from Wrangler to Java.

Deliverable

A new extension to the analytics workflow of the WSO2 Machine Learner.

Skills Needed

...

Java

...

Complex Event Processor is a relatime analytics engine that support SQL like queries. Idea of the project is to build a visual composer for Siddhi language that provides a palette of operators and let users drag and drop those operators to a canvas and visually compose queries. We will provide a JSON description of operators, and the project involve developing a palette initialised with those operators and develop the canvas for visually composing queries. 

Composer must be developed with D3 or libraries based on D3. 

Deliverable

Visual Composer.

Skills Needed

  • HTML, JavaScript.

  • D3

References

[1] http://vis.stanford.edu/wranglerwso2.com/products/complex-event-processor/

[2] https://github.com/StanfordHCI/wrangler[3] http://jaggeryjsd3js.org/

 

Possible Mentor/s

Srinath Perera (srinath AT wso2 DOT com)

Nirmal Fernando Suho (nirmal suho AT wso2 DOT com)Supun Sethunga (supuns AT wso2 DOT com)