Versions Compared

Key

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

 

Table of Contents
maxLevel3
printablefalse

...

Proposal 1: Native inbound and connector for IBM MQ 7.5

Description

Currently with WSO2 Enterprise Service Bus recommended way to connect to IBM MQ is using JMS transport. But this has limitations and sometimes gives issues when integrating. 

...

Microservice Framework for Java (MSF4J) [1]  is a lightweight, fast runtime that can host annotation based services, such as JAX-RS in a micro service architecture[2]. Microservices developed using WSO2 MSF4j can start in just a few milliseconds in a Docker container and can easily be added to a Docker image definition.

 MSF4J requires development tooling to make it appealing to the Java Development Community. It requires end-to-end tooling that helps developer to implement a microservice, run and unit-test a microservice in the integrated development environment itself.

Deliverables

  • IntelliJ IDEA Plugin for running a Java Service in MSF4J

  • Eclipse Plugin for running a Java Service in MSF4J

...

  • Java

  • Eclipse plugin development

  • IntelliJ plugin development

References

[1] http://wso2.com/products/microservices-framework-for-java/

[2] http://martinfowler.com/articles/microservices.html

Possible Mentor/s

Dimuthu Leelarathne

...

In Machine Learning, Ensemble learning is a combining of multiple learning algorithms/models to obtain better predictive accuracy than what could be obtained from a single learning algorithm. Final prediction is done by taking a weighted vote of the predictions of the combined algorithms. Currently WSO2 machine learner does not facilitate this. The main tasks of the project is to:

...

Proposal 13: [ESB/Tooling] Automated tests for ESB Graphical editor using SWTBot

Description

Currently we do not have automated tests for ESB graphical editor[1] which is a GMF based drag and drop tool to develop ESB configurations. We can use Eclipse SWTBot[2] to implement automated tests for these kind of GMF editors. Idea is to implement an automated test suite to cover graphical functionalities of ESB editor by composing mediation flows which involves Proxy services, APIs, Sequences, Endpoints, mediators and their properties etc.

...

Proposal 14: [ESB/Tooling] Support JSON, CSV, Java, Excel and Web services formats in Data Mapper tool.

Description

Today, enterprise applications use different data formats and different data structures. WSO2 Data Mapper tool can be used to map different data formats/structures between two systems/applications while system integrations. WSO2 Data mapper tool is based on Eclipse GMF and builds graphical input data model and output data model using provided Apache Avro[1] schemas.

Developers can extend Data mapper tool to support any data format by adding a data type transformer to generate Avro schema based on the relevant data format(Eg: JSON, CSV etc). This project is to write data format transformers to transform CSV, JSON, Java, Excel, Web services formats to Avro format. 

Deliverables

  • Components for generating Apache Avro schemas for data formats such as JSON, Java, Excel, Web services.

...

  • Java
  • Knowledge on WSO2 CEP

References

[1] http://dl.acm.org/citation.cfm?doid=2370816.2370826 

[2] http://dl.acm.org/citation.cfm?doid=2528412

Possible Mentors

Miyuru Dayarathna (miyurud AT wso2 DOT com)

...

Possible mentors

Omindu Rathnaweera (omindu AT wso2 DOT com) 

Darshana Gunawardana (darshanaAT wso2 DOT com)
Johann Nallathamby (johann AT wso2 DOT com)
 

Proposal 21: [IS] Document Based NoSQL Support for WSO2 Identity Server Database

Description

WSO2 Identity Server out of the box supports LDAP, Microsoft Active Directory and Relational Databases as User Stores. With the fast growth of enterprise level NoSQL databases, it is important to support NoSQL [1] user stores to improve the value that WSO2 Identity Server can deliver to enterprises in terms of user data management.
In order to support NoSQL, It is expected to customize or write a new User Store Manager [2] that supports storing/retrieving data from NoSQL databases.
The database architecture has to be completely redesigned for optimizing the performance of operations. Initially, new document collections can be created for each database table referring the current relational database schema. Some of the document collections can be combined together as embedded documents or new data models [3] should be created for performance improvement considering the following facts.  

- Document size considerations
- Complexity of data structures
- Data Consistency

The performance has to be further improved by creating appropriate indexes. 
Initially the project should be done on MongoDB 3.2 [4] which is a Document based NoSQL database that is widely used [5]. Test automation should be done appropriately as Unit Tests or Integration Tests for all the operations in the userstore manager. 
Based on completion, other Document based databases such as CouchDB, RavenDB can be considered for implementation.

Deliverables

  • Database Architecture Diagrams
  • Custom Userstore Manager
  • Automated Tests
  • Developer documentation
  • Articles/blog posts on using the custom userstore manager

Skills Needed

  • Java
  • Database knowledge and SQL
  • Understanding of NoSQL
  • MongoDB 3.2
  • Using MongoDB with Java [6]
  • Test Automation (Junit, Selenium)

References 

[1] http://www.planetcassandra.org/what-is-nosql/
[2] https://docs.wso2.com/display/IS500/Writing+a+Custom+User+Store+Manager
[3] https://docs.mongodb.org/manual/data-modeling/
[4] https://www.mongodb.com/mongodb-3.2
[5] http://db-engines.com/en/ranking
[6] https://docs.mongodb.org/ecosystem/drivers/java/

Possible mentors

Tharindu Edirisinghe (tharindue AT wso2 DOT com)
Darshana Gunawardana (darshana AT wso2 DOT com)
Johann Nallathamby (johann AT wso2 DOT com)

 

Proposal 22: [IS] RESTful Fine Grained Authorization-as-a-Service (AZaaS)

Description

This is to implement “REST Profile of XACML v3.0 Version” specification[1] from OASIS on WSO2 Identity Server[2]. WSO2 Identity Server already have a XACML implementation based on WSO2 Balana engine[3]. Currently the implementation is based on SOAP services. This needs to be accessible in REST manner and integrated to WSO2 Identity Server in this project scope. 

Deliverables

 

  • REST implementation for XACML policy decision point of WSO2 Identity Server
  • Test automation for the implementation
  • Documentation  (For Dev and Users)

Skills Needed

  • Java
  •  Basic understanding of REST and SOAP
  •  Understanding written code

References

[1] - http://docs.oasis-open.org/xacml/xacml-rest/v1.0/xacml-rest-v1.0.html

[2] - http://wso2.com/products/identity-server/ 

[3] - https://github.com/wso2/balana

[4] - Access Control

[5] - http://xacmlinfo.org/category/balana/

[6]- http://pushpalankajaya.blogspot.com/search/label/XACML

Possible mentors

Pushpalanka Jayawardhana (lanka AT wso2 DOT com)
Darshana Gunawardana (darshana AT wso2 DOT com)
Johann Nallathamby (johann AT wso2 DOT com)

 

Proposal 23: [IS] Policy Administration and Delegation Profile for XACML

 

Description 

This is to implement “XACML v3.0 Administration and Delegation Profile” specification[1] from OASIS on WSO2 Identity Server[2]. WSO2 Identity Server already have a XACML implementation based on WSO2 Balana engine[3]. It's policy administration point(PAP) needs to be improved to have authorization and delegation support when defining, modifying XACML policies.

Deliverables 

  • Implementation of XACML policy administration and delegation in WSO2 Identity Server
  • Test automation for the implementation
  • Documentation  (For Dev and Users)
 

Skills Needed 

  • Java
  • Understanding written code
  • Analytical thinking
 

References

 

[1] - http://docs.oasis-open.org/xacml/3.0/administration/v1.0/xacml-3.0-administration-v1.0.html 

[2] - http://wso2.com/products/identity-server/ 

[3] - https://github.com/wso2/balana

[4] - Access Control 

[5] - http://xacmlinfo.org/category/balana/

[6]- http://pushpalankajaya.blogspot.com/search/label/XACML


Possible mentors

Pushpalanka Jayawardhana (lanka AT wso2 DOT com)
Darshana Gunawardana (darshana AT wso2 DOT com) 
Johann Nallathamby (johann AT wso2 DOT com)



Proposal 24: [CDMF] [EMM] Device Policy Merging

Description

Existing policy implementation in EMM only supports policy priority order where the applicable highest priority policy is appliedona device.
For exampleif there are two policies as given below (in-order).
1. Disable camera on all android devices
2. Disable wifi on all devices which belong to role "user-group A"

If we take an android device which belongs to a user in user-group A, ideally both policies should be applicable.
But due to the limitations in existing policyimplementationonly the policy 1 will be applied based on priority.
This behaviourshould be changed to merge options (i.e camera disable, wifi disable) in both policies and send as a one applicable policy to the device. 

Deliverables

  • Extension point for current EMM policy module  

Skills Needed

  • Essential Java development skills

References

  1. Introduction to WSO2 EMM Policies
  2. WSO2 Connected Device Management Framework (CDMF) Policy Module Source Repositary

Possible mentors

Harshan Liyanage (harshan@wso2.com)
Prabath Abeysekara (prabatha@wso2.com)
Geeth Munasinghe (geeth@wso2.com)


Proposal 25: [CDMF] [EMM] Location and Time-based Device Policy Enforcement

Description

WSO2 EMM is periodically monitoring the behavior of enrolled/registered devices using policies.
These policies will be enforced by administrators to the device with a set of predefined configurations.
Current criteria of policy enforcement is based on device platform, ownership type (BYOD, COPE) and allocated user or role.
  
Enabling policy enforcement of a device based on Location and Time will be two more applicable conditions to the Device.
Enabling the policies to be activated on given time periods and predefined locations is the main objective of this project. 
 

Deliverables

  • Extension point for current EMM policy module with location and time based policy publishing capability

Skills Needed

  • Mobile Application Development skills
  • Web Service Development skills
  • Geo Fencing know-how
  • Essential Java development skills

References

  1. Development of Location Based Services in Mobile Commerce
  2. Next Generation Location Based Services for Mobile Devices

Possible mentors

Kamidu Punchihewa (sachithp@wso2.com)
Prabath Abeysekara (prabatha@wso2.com)
Geeth Munasinghe (geeth@wso2.com)
Kasun Delgolla (kasund@wso2.com)

  

Proposal 26: [CDMF] Dynamic Server side Policy Enforcement to the Users and Devices

Description

This should be a dynamic policy creation and enforcement mechanism based on the functionality of the devices.
The functionality of the devices should ideally be monitored and matched against a pre-set “rule” enforced via the UI.
Upon reaching the rule’s triggering point, a dynamically generated policy should be applied and picked up in PDP (Policy Decision Point) [1].
Subsequent operation attempts pertaining to the policy enforced device must be validated and restrictions must be added according to the policy in action.
 
Eg: If a device is shaken then restrict the access to users to whom the device is been shared with from 10 am to 11 pm.

This will trigger and create a policy that will be used for authorization in the key validation service.
In here the input for the rule will be the sensor data and action triggering will be either group of devices/users that needs be restricted.
The policy will be triggered while monitoring the sensor stream in CEP [2].
 

Deliverables

  • A UI to create and map rules and an extension point for the key validation service.

Skills Needed

  • Essential Java development skills
  • Essential Javascript development skills

References

  1. WSO2 Connected Device Management Framework (CDMF) Policy Module Source Repositary
  2. WSO2 Complex Event Processor

Possible mentors

Ayyoob Hamza (ayyoob@wso2.com)
Geeth Munasinghe (geeth@wso2.com)

 

Proposal 27: [CDMF] Calculate Device Health Status using Analytics and API Calls

Description

There should be a common approach to decide the status of the device in CDMF[1], whether it is active or not.
A possible approach to decide this would be combining the information from the data publishing calls and
device bound API calls and then this information can be combined to predict the status of the device.
 

Deliverables

  • An extension point to be created in device communication port such as a tomcat valve and in the event receivers.


Skills Needed

  • Essential Java development skills

References

  1. WSO2 Connected Device Management Framework (CDMF)

Possible mentors

Ayyoob Hamza (ayyoob@wso2.com)
Kasun Delgolla (kasund@wso2.com)

 

Proposal 28: [CDMF] [IOT] IOT SDK for creating Device Agents

Description

An SDK for IOT - Device specific agents to connect to the IoT Server using languages such as C, C++, java, python.
A subsequent phase would be auto generating code using tooling for agents written in specific languages.

Eg: arduino, raspberrypi, android, beaglebone, Intel, IOS.
 In addition, through tooling we should enable the capability to decide
which transport such as MQTT, XMPP, HTTP to be used.
 

Deliverables

  • An extension point to the device plugin indicating the firmware specific language used for the device in concern.


Skills Needed

  • Essential Java development skills
  • Essential C, C++ and Python development skills

References

  1. Reference Code generation tools: swagger-codegen

Possible mentors

Ayyoob Hamza (ayyoob@wso2.com)
Shabir Mohamed (shabir@wso2.com)
Rasika Perera (rasikap@wso2.com)
 

Proposal 29: [Cloud] Native Cloud Support for Running WSO2 Middleware on Microsoft Azure

Description

WSO2 middleware can be deployed on Microsoft Azure either using virtual machines or containers. In this project will focus on Virtual Machine approach as container support is still primitive on Azure (except for running Kubernetes on Azure). To do this we need implement a Carbon Membership Scheme for providing automatic cluster discovery similar to Kubernetes Membership Scheme [1].

In addition, we need to demonstrate how following areas would work on Microsoft Azure with native Azure features:

  • Auto healing
  • Autoscaling
  • Automatic cluster discovery
  • Dynamic load balancing
  • VM/Container support
  • Multi-tenancy
  • Configuration orchestration
  • Artifact distribution
  • Software update distribution
  • Multi-region/cloud deployments
  • Centralized logging
  • Monitoring
  • Metering

Deliverables 

  • Carbon Membership Scheme for Microsoft Azure

  • Artifacts needed for deploying WSO2 products on Microsoft Azure

  • A document explaining steps for deploying WSO2 products on Microsoft Azure

Skills Needed

  • Java development skills

  • Platform as a Service (PaaS) concepts

  • Basic features of WSO2 Carbon (Deployment patterns, clustering)

References

  1. Kubernetes Membership Scheme

  2. Microsoft Azure

Possible mentors


Lakmal Warusawithana (lakmal AT wso2.com)
Imesh Gunaratne (imesh AT wso2.com)

 

Proposal 30: [Cloud] Native Cloud Support for Running WSO2 Middleware on RedHat OpenShift

Description

WSO2 middleware can be deployed on RedHat OpenShift with Docker. The latest OpenShift release is built on top of Kubernetes and Docker. We need implement a Carbon Membership Scheme for providing automatic cluster discovery similar to Kubernetes Membership Scheme [1]. 

In addition, we need to demonstrate how following areas would work on RedHat OpenShift for running WSO2 Middleware products:

  • Auto healing
  • Autoscaling
  • Automatic cluster discovery
  • Dynamic load balancing
  • VM/Container support
  • Multi-tenancy
  • Configuration orchestration
  • Artifact distribution
  • Software update distribution
  • Multi-region/cloud deployments
  • Centralized logging
  • Monitoring
  • Metering

Deliverables 

  • Carbon Membership Scheme for RedHat OpenShift

  • Artifacts needed for deploying WSO2 products on RedHat OpenShift (scripts, JSON/YAML files, etc)

  • A document explaining steps for deploying WSO2 products on RedHat OpenShift 

Skills Needed

  • Java development skills

  • Platform as a Service (PaaS) concepts

  • Basic features of WSO2 Carbon (Deployment patterns, clustering)

References

  1. Kubernetes Membership Scheme

  2. RedHat OpenShift Architecture

Possible mentors

Isuru Haththotuwa (isuruh AT wso2.com)
Sajith Kariyawasam (sajith AT wso2.com)


 

Proposal 31: [ML] Deployable artefact model for WSO2 Machine Learner

 

Description

 

WSO2 Machine Learner provides a user-friendly wizard type interface where you could configure machine learning analyses and generate models. However, we do not have a concept of deployment artefacts, where you could deploy a dataset, project, analysis simply by dropping a file artefact into respective deployment directories. 

The main tasks of the project is to:

  • Define the architecture
  • Define artefact definitions
  • Implement deployers
  • Refactor ML back-end
 

After introducing this model;

 
  • We should be able to deploy ML artefacts via a Carbon Application (CApp) - increase the portability 
  • We should be able to build an automated model creation system. i.e. we configure an analysis to run periodically that would pick the latest dataset version and build a new model and deploy it if it's more accurate.
  • We should be able to hot deploy artefacts
  

Deliverables

 
  • Deployable artefact model for WSO2 Machine Learner.
  • Artefact definition file/s
  • Tests and documentation

 

Skills Needed

 
  • Basic Machine Learning knowledge
  • Java

 

References

 

[1] https://docs.wso2.com/display/ML110/About+Machine+Learner

 

[2] https://github.com/wso2/product-ml

 

[3] https://github.com/wso2/carbon-ml

  
 

Possible Mentor/s

 

Supun Sethunga (supuns AT wso2 DOT com)

Nirmal Fernando (nirmal AT wso2 DOT com)

 

Proposal 32: [CEP] Visual Query Composer for WSO2 CEP 

Description

WSO2 Complex Event Processor is a realtime analytics engine that supports SQL like queries and with WSO2 CEP 4.1 it has the capability of visualizing Siddhi Queries as a graph. Idea of the project is to build a visual query composer for Siddhi language that provides an easy way of constructing the query graph. 

Composer must be developed with D3 or libraries based on D3 E.g dagre-d3

Deliverable

Query Visual Composer.

Skills Needed

References

[1] http://wso2.com/products/complex-event-processor/

[2] http://d3js.org/

[3] https://github.com/cpettitt/dagre-d3

Possible Mentor/s

Suho (suho AT wso2 DOT com)

Mohan (mohan AT wso2 DOT com)

 

Proposal 33: [Docker] Integration Test Framework for WSO2 Dockerfiles 

Description

Create a suitable integration test framework for the WSO2 Dockerfiles repository [1]. A developer working on the WSO2 Dockerfiles repository should be able to locally run the integration test suite to check if there are no regressions introduced by the changes. Additionally, WSO2 is considering the possibility of integrating the same integration test suite with Pull Requests to verify them, and integrating with a Continuous Integration system such as Jenkins. 

Deliverable

  • An integration test framework and relevant artifacts

Skills Needed

  • Puppet
  • Docker
  • Scripting
  • Java
  • Maven
  • TestNG

References

 

Possible Mentor/s

Chamila (chamilad AT wso2 DOT com)

Vishanth (vishanthb AT wso2 DOT com)