Table of Contents | ||||
---|---|---|---|---|
|
...
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 l ightweight, 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:
...
The idea of incremental learning with streaming data focuses on two objectives:
...
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)
...
Deliverables
- SAML Assertion Query/Request Profile support for Identity Server with test automation and documentation.
Skills Needed
- Java
- Designing Restful APIs Apache CXF
...
Possible mentors
Omindu Rathnaweera (omindu 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)
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)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)Proposal 24: [CDMF] [EMM] Device Policy Merging
Description
If we take an android device which belongs to a user in user-group A, ideally both policies should be applicable.
Deliverables
- Extension point for current EMM policy module
Skills Needed
- Essential Java development skills
References
- Introduction to WSO2 EMM Policies
- WSO2 Connected Device Management Framework (CDMF) Policy Module Source Repositary
Possible mentors
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.
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
- Development of Location Based Services in Mobile Commerce
- Next Generation Location Based Services for Mobile Devices
Possible mentors
Proposal 26: [CDMF] Dynamic Server side Policy Enforcement to the Users and Devices
Description
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.
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.
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
- WSO2 Connected Device Management Framework (CDMF) Policy Module Source Repositary
- W SO2 Complex Event Processor
Possible mentors
Proposal 27: [CDMF] Calculate Device Health Status using Analytics and API Calls
Description
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
Possible mentors
Proposal 28: [CDMF] [IOT] IOT SDK for creating Device Agents
Description
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
Possible mentors
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
Possible mentors
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
Possible mentors
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
HTML, JavaScript.
- D3
- dagre-d3
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)