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
[2] Configure with IBM WebSphere MQ
[3] http://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 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
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:
- Create an input layer and training/testing dataset will be fed to the input layer.
- 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.
- 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.
In addition to above, other parameters such as learning rate, regularization and etc. should be able to configure inside the visual editor.
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
[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
The idea of incremental learning with streaming data focuses on two objectives:
- Identifying patterns in the recent history.
- Updating the patterns with incoming data without catastrophic forgetting.
These objectives can be approached in two methods:
- 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.
- 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
[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
Deliverables
Eclipse plugin.
Skills Needed
- Java
- Eclipse plugin development
References
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
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] SCIM 2.0 Support to WSO2 Identity Server.
Description
System for Cross-domain Identity Management (SCIM) is an open standard for automating the exchange of user identity information in cloud-based applications and services. It is designed to make managing user identities in cloud-based applications and services easier.WSO2 Identity Server is an open standards based Identity and Access Management system. Currently, Identity Server partially supports SCIM 1.1specifications. The objective of the project is to improve the existing SCIM implementation to support SCIM 2.0 specifications.
Deliverables
- Making WSO2 Identity Server fully compliant with SCIM 2.0
Skills Needed
- Java
- Designing Restful APIs Apache CXF
- Skill to read and understand specifications, and translate it to working code
References
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
- WSO2 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
- Multi-region/cloud deployments
- Centralized logging
- Monitoring
- Metering
- Software updates
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)