Skip to end of metadata
Go to start of metadata

 


 

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. 

Deliverables

  • Custom inbound endpoint as consumer.
  • Connector as producer.

Skills Needed

  • JMS Transport
  • Message brokers
  • Java

References

[1] JMS Inbound Protocol

[2] Configure with IBM WebSphere MQ

[3http://mrmalakasilva.blogspot.com/2013/10/connecting-mechanisms-other-than.html

[4] Creating a Third Party Connector and Publishing in WSO2 Connector Store

 

Possible Mentor/s

Malaka Silva

Sajini De Silva 


 

Proposal 2:  Developer Tooling for Microservice Framework for Java

Description

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

Skills Needed

  • 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



Proposal 3: [ML] Visual (Deep) Neural Network Builder

Unlike other machine learning algorithms, neural networks can be constructed using few basic computational units such as logistic and rectifier linear units (ReLU). Depending on the number of such units per layer and number of layers in the network, it is possible to create a wide range of neural network architectures.

The main idea of this project is to build a visual interface that helps people to easily create and train neural networks by just dragging and dropping basic computational units. The main workflow of the visual builder would be:

  1. Create an input layer and training/testing dataset will be fed to the input layer.
  2. Next,  create one or more hidden layers and specify connections between input/hidden and hidden/hidden layers. Also, he needs to specify the computational units use in the hidden layers.
  3. Next step would be, specifying the output layer. Depending on the problem (whether it is classification or regression), the user might pick a suitable output layer from available layers.
  4. In addition to above, other parameters such as learning rate, regularization and etc. should be able to configure inside the visual editor.

  5. Finally, it should be possible to train the network using visual network builder.

Nice to have features: hyper-parameter optimization using cross-validation, graphs for visualizing training/cross-validation errors. 

Deliverables

Visual neural network builder integrated with WSO2 Machine Learner.

Skills Needed

  • Basic Machine Learning knowledge.
  • Java/Apache Spark/DeepLearning4J
  • Jaggery/JavaScript/HTML

References

[1]. http://deeplearning4j.org/
[2]. http://spark.apache.org/

Possible Mentor/s

Upul Bandara ( upul AT wso2 DOT com )

Nirmal Fernando ( nirmal AT wso2 DOT com)


Proposal 4: [ML] Ensemble Methods Support for WSO2 Machine Learner

Description

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:

  • Implement a ensemble method(s), to combine multiple algorithms.
  • Create a UI to include the end to end flow of training the algorithm.
  • Integrate it to the WSO2 Machine Learner.

With the implemented method, user should be able to build an ensemble solution:

  • Using models that are already trained.
  • By training all the components (algorithms associated) of the ensemble method, as a set of completely new algorithms.

 

Deliverables

  • Ensemble Method integration for WSO2 Machine Learner.

 

Skills Needed

  • Basic Machine Learning knowledge
  • Java
  • Knowledge in HTML, js
  • UI/UX skills

 

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 5: [ML] Natural Language Processing Toolbox for WSO2 Machine Learner

Description

Currently, there are few natural language processing (NLP) functionalists implemented for WSO2 Machine Learner (ML) as independent components. But we need to have a unified end-to-end NLP solution which aligns with current WSO2 ML workflow. The main task of this project would be unifying existing NLP tools into one solution with possible extensions and relevant UI elements.


Deliverables

  • Natural Language Processing Toolbox for WSO2 Machine Learner

 

Skills Needed

  • Basic knowledge in machine learning
  • Basic knowledge in natural language processing
  • Java
  • HTML, CSS, JS
  • UI/UX skills
  • Familiarity with ML/NLP libraries (Apache Spark, Deeplearning4j, Apache OpenNLP)


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

[4] http://spark.apache.org/

[5]  http://deeplearning4j.org/

[6] https://opennlp.apache.org/

 

Possible Mentors

CD Athuraliya (chathurike AT wso2 DOT com)

Nirmal Fernando (nirmal AT wso2 DOT com)


Proposal 6: [ML] Predictive analytics with online data for WSO2 Machine Learner

Description

 

In the real world scenarios, many different types of data are acquired sequentially. Traditional way of waiting for data to be collected and identifying patterns is a one time process. As the new data arrives, these patterns change and the learned patterns need to be evolved accordingly and the decisions based on these models change as well. Concept of machine learning algorithms with streaming data has been emerged under these circumstances.

The idea of incremental learning with streaming data focuses on two objectives:

  1. Identifying patterns in the recent history.
  2. Updating the patterns with incoming data without catastrophic forgetting.

These objectives can be approached in two methods:

  1. Incremental algorithms - there are machine learning algorithms which can be modified to support incremental learning. eg. mini-batch k-means, stochastic gradient descent based linear models, SVM, etc.
  2. Periodic re-training - machine learning models are trained with buffered data periodically.

The student has to consider these points when designing the architecture of the system. Moreover, data horizon (how quickly a most recent data point becomes a part of the model) and data obsolescence (how long does it take a past data point to become irrelevant to the model) need to be taken into account and should be adjustable.

WSO2 ML uses Apache Spark for its' machine learning algorithms. Apache Spark already supports learning algorithms with streaming data such as k-means clustering and generalized linear models. Student may use these implementations in their systems. It is not required to support incremental learning for every algorithm available in the WSO2 ML as there are technical limitations in employing incremental learning with those.

 

Deliverables

  • Designing an architecture for incremental learning and visualizations.
  • Creating the incremental learning component.
  • Creating interactive visualizations for incremental learning models.
  • Allowing users to change parameters of the algorithms on the fly (during the incremental learning procedure) by analyzing the models. (Optional).
  • Documentation and examples.
     

Skills Needed

  • Basic knowledge in machine learning
  • Basic knowledge about working with streaming data
  • Java
  • Scala (optional)
  • UI/UX skills
  • Familiarity with Apache Spark


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

[4] http://spark.apache.org/

[5] https://spark-summit.org/east-2015/talk/streaming-machine-learning-in-spark

 

 

Possible Mentors

Pruthuvi Maheshakya Wijewardena (maheshakya AT wso2 DOT com)

Nirmal Fernando (nirmal AT wso2 DOT com)

 


Proposal 7: [ESB/GW] Improve production system debugging capabilities of ESB (ESB Flight Recorder)

Description

When an issue occurs in a production server, to investigate the incident, we need to get several information from the server instance.
At the moment we need to extract these information manually and sometimes we may not get required information before the server goes to a catastrophic situation.
This project is about automatically extracting useful information from the server, when there are potential issues.

Following are the high level requirements
- Alerts on increase of resources
- Automatically generate required information for debugging (dumps)
- Handle/prevent catastrophic situations
- Correlate dumps with environment changes like request load and generate reports that can be used to analyse a problem

Deliverables

  • ESB Production debugger component.

Skills Needed

  • Java

References

https://docs.wso2.com/display/ESB490/WSO2+Enterprise+Service+Bus+Documentation

Possible Mentors

Isuru Udana (isuruu AT wso2.com)

Isuru Ranawaka (isurur AT wso2.com)

 


Proposal 8: [ESB/GW] HTTP Load balancer on top of WSO2 Gateway 

Description

Building a HTTP load balancer on top of WSO2 Gateway

Following are the high level requirements

  • HTTP/S static load balancing 
  • Fully compliant with HTTP specification  
  • Performance : Must be able to compete with existing load balancers 
  • Session persistence, Heartbeat/Health check, Redirects 

Deliverables

  • HTTP Load balancer product milestones. 

Skills Needed

  • Java, knowledge on Load balancing techniques 

References

[1] https://github.com/wso2/product-gw

Possible Mentors

Isuru Ranawaka (isurur AT wso2.com)

Kasun Indrasiri (kasun AT wso2.com)

 

 


Proposal 9: [ESB/GW] File Gateway on top of WSO2 Gateway 

Description

Building a File Gateway on top of WSO2 Gateway

Following are the high level requirements

  • Managed file transfer   
  • FTP, SFTP and other types of file transfer
  • Transferring large files 
  • Must cover all the file based integration user cases support in ESB. 

Deliverables

  • File Gateway product milestones. 

Skills Needed

  • Java  

References

[1] https://github.com/wso2/product-gw

[2] https://commons.apache.org/proper/commons-vfs/filesystems.html

Possible Mentors

Viraj Senevirathne (virajs AT wso2.com)

Kasun Indrasiri (kasun AT wso2.com)

 


Proposal 10: [ESB/GW] Security Gateway on top of WSO2 Gateway 

Description

Building a Security Gateway on top of WSO2 Gateway

Following are the high level requirements

  • Securing your enterprise services from various attacks (XML threat protection, etc.)
  • Controlling the inward traffic to your services (Filtering, Throttling)
  • Provides security enforcement like OAuth2 to the services
  • Analytics/Reporting of threats on the system

Deliverables

  • Security Gateway product milestones. 

Skills Needed

  • Java  

References

[1] https://github.com/wso2/product-gw

[2] http://www.websense.com/content/web-security-gateway-features.aspx

Possible Mentors

Chanaka Fernando (chanakaf AT wso2.com)

Prabath Siriwardana (prabath AT wso2.com)

Senduran Balasubramaniam (senduran AT wso2.com)


Proposal 11: [ESB/GW] WSO2 ESB mediation config migration tool

Description

Building a tool to migrate existing synapse configurations and data to a new configuration which is based on a new mediation language

Following are the high level requirements

  • Building a model to map synapse configurations with the new mediation language
  • Gracefully handle configurations which are not compatible across two different mediation languages
  • Migrate data related to the server instances

Deliverables

  • Migration tool milestones

Skills Needed

  • Java 
  • Domain Specific Languages (DSL)
  • Synapse

References

[1] WSO2 Enterprise Service Bus Documentation

[2] http://martinfowler.com/books/dsl.html

 

Possible Mentors

Chanaka Fernando (chanakaf AT wso2.com)

Ravi Undupitiya (ravi AT wso2.com)

 


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.

Deliverables

  • Automated test suite to test graphical functionalities of ESB graphical editor

Skills Needed

  • Basic knowledge on Eclipse EMF/GMF
  • Basic knowledge on WSO2 ESB configurations
  • Java

References

[1] https://docs.wso2.com/display/DVS380/Creating+ESB+Artifacts

[2] http://www.eclipse.org/swtbot/

[3]  https://wiki.eclipse.org/SWTBot/UsersGuide#GEF.2FGMF-based_editor_testing

[4] https://wiki.eclipse.org/SWTBot/Automate_test_execution 

Possible Mentors

Viraj Rajaguru (viraj AT wso2 DOT com)

Nuwan Pallewela (nuwanp AT wso2 DOT com)

 


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.

Skills Needed

  • Java
  • Basic knowledge on Apache Avro

References

[1] https://avro.apache.org/docs/1.7.7/spec.html

Possible Mentors

Viraj Rajaguru (viraj AT wso2 DOT com)

Nuwan Pallewela (nuwanp AT wso2 DOT com)

 


Proposal 15: [ESB/Tooling] ESB Visual editor enhancements

Description

WSO2 Developer Studio provides comprehensive graphical composition tool to create ESB configurations[1] for WSO2 ESB. ESB Graphical editor is a drag and drop tool where users can develop, debug, deploy and test their configurations in a cost-effective manner. We have identified few areas in this tools which can be improved further for a better user experience.

Followings are the high level requirements

  • Provide ability to aggregate properties in to a single element when we have large number of property mediators 
  • Utilize editor space properly 
  • Enhance editor for complex use cases
  • Improve performance of editor to gain smoothness

Deliverables

  • Improve ESB graphical editor in above mentioned areas.

Skills Needed

  • Java
  • Basic knowledge on Eclipse GMF

References

[1] https://docs.wso2.com/display/DVS380/Creating+ESB+Artifacts

Possible Mentors

Viraj Rajaguru (viraj AT wso2 DOT com)

Isuru Udana (isuruu AT wso2 DOT com)

 


Proposal 16: [DevStudio kernel/Tooling] Contact Development Team feature in DevStudio.

Description

Developer Studio is an eclipse based IDE which provides  complete Eclipse-based SOA development environment for WSO2 Carbon middleware platform. Currently Developer Studio users contact the development team via wso2 web support portal (Jira), so they may have to put additional effort to send error logs,meta data..etc more importantly sometimes they may not aware of sending error logs and other required meta data.  Hence, we need a new feature for users to be able to contact development team within the IDE itself. This feature can be used to capture and report errors to Development team (WSO2). When sending relevant docs, this feature will automatically collect the all relevant meta information (log files , JDK version , OS info.etc ) and generate a full detailed report and send it to the development team.
Furthermore, when an unexpected error occur, a message dialog should pop up and ask the user to send the error report to us. 

Deliverables

  • Eclipse plugin.

Skills Needed

  • Java
  • Eclipse plugin development 

References

[1] http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fextension-points%2Findex.html

Possible Mentors

Jasintha Dasanayaka (jasintha AT wso2 DOT com)

Kavith Lokuhewage (kavith AT wso2 DOT com)

 


Proposal 17: [CEP]  Auto-tuning of WSO2 CEP

Description

Recent research conducted on auto-tuning of event processing systems have shown significant performance benefits [1][2]. This project proposes implementation of auto-tuning (i.e., self-tuning) for WSO2 Siddhi and extending the proposed methodology for WSO2 CEP product. The aim of this project is to utilize software auto-tuning techniques to create efficient CEP execution plans which will allow for scaling WSO2 CEP both in shared memory and distributed memory settings. During the project we will first identify and document tunable components of WSO2 CEP and then design and implement an auto-tuning mechanism for WSO2 Siddhi. Next, we will test and evaluate the performance benefits obtained by auto-tuned WSO2 Siddhi query plans. Once the auto-tunner for Siddhi has been completed, we will design and implement an auto-tuning mechanism for WSO2 CEP server distributed version. Finally, we will test and evaluate the performance benefits obtained by auto-tuning WSO2 CEP server distributed version. Throughout the project period we will document the auto-tuning algorithms, the system designs, implementation, and evaluation details.

Deliverables

  • Auto-tuner for WSO2 CEP

Skills Needed

  • 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)

Sriskandarajah Suhothayan (suho AT wso2 DOT com)


Proposal 18: [ESB] X12 inbound and connector

Description

x12 is a standard that is been used in health care industry. Currently with ESB only hl7 support is available. Based on the research need to provide solution to support x12 messages.

Deliverables

  • x12 custom inbound and connector

  • Documentation and guide

Skills Needed

  • Java
  • Knowledge on WSO2 ESB connectors and inbound
  • Health care domain to some extend

References

[1] http://www.hl7.com/x12.html

Possible Mentors

Miyuru Dayarathna (miyurud AT wso2 DOT com)

Sriskandarajah Suhothayan (suho AT wso2 DOT com)

 

Proposal 19: [PC] Web (Javascript / D3) based BPMN editor to support a subset of commonly used BPMN constructs

Description

WSO2 Process Center (PC) is a product to facilitate business process governance at multiple levels from business users to technical users. A javascript based BPMN editor is required to allow PC users to define business processes using a graphical notation from the web UI. This BPMN editor focuses on supporting a subset of BPMN, which is sufficient to create abstract process models. Developing executable process models is not considered at this stage.

Main task is to create a javascript/D3 based graph editor to construct BPMN models. BPMN constructs like tasks, events and gateways have to supported. Users should be able to draw BPMN diagrams by dragging and dropping BPMN constructs from a pallet and positioning them in a canvas. Resizing, repositioning, deleting, etc of BPMN constructs have to be supported.

Editor has to be developed in an extensible manner so that it can easily used for constructing other (graph-based) diagrams such as flowcharts with minimal changes.

Deliverables

  • Javascript/D3 based BPMN editor
  • Documentation on extending the editor

Skills needed

  • Strong javascript knowledge
  • D3

References

http://www.omg.org/spec/BPMN/2.0/

Possible mentors

Isuru Wijesinghe (isuruwi AT wso2 DOT com)

Chathura Ekanayake (chathura AT wso2 DOT com)

 

Proposal 20: [IS] SAML Assertion Query/Request Profile support for WSO2 Identity Server

Description

Security Assertion Markup Language (SAML) is an XML based data format for exchanging authentication and authorization data between business entities and it is one of the most widely used open standards to perform browser based single-sign-on. SAML Assertion Query/Request Profile is a profile which defines a protocol for requesting existing assertions by reference or by querying on the basis of a subject and additional statement-specific criteria. 
WSO2 Identity Server supports SAML based single-sign-on in compliance the SAML2 Web Browser SSO profile and the Single Logout Profile. The objective of the project is implement SAML Assertion Query/Request Profile support for Identity Server.
The following documents contain some information which will help to understand the scope of the project.
Introduction to SAML - [1]
SAML web sso and Identity Server - [2]
SAML Assertion Query/Request Profile - [3] (section 6) & [4]
Detailed information about SAML specifications - [5] & [6]

Deliverables

  • SAML Assertion Query/Request Profile support for Identity Server with test automation and documentation.

Skills Needed

  • Java
  • Designing Restful APIs Apache CXF

References

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. W SO2 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)


 
  • No labels