Versions Compared

Key

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

Table of Contents
maxLevel2

Proposal 1: Implement Registry Extension (RXT) 2.0 + Associated UI support

Description

Configurable Governance Artifacts are one of many well-defined extension points supported by the WSO2 Governance Registry. Using RXT you can model any type of assets which suits your requirements using its comprehensive configuration language.

In this project existing RXT model will be architectured to provide enhanced usability to users. Following are the main improvements expected but developer should brainstorm more improvements during the initial research.

Deliverables

  • New RXT Format, JSON-based

  • Provide UI Template for basic types and ability for user to provide their own template if they want

  • Auto-generate UI from Template  

Skills Needed

  • Java
  • XML
  • JSON
  • SOA

References

[1] http://docs.wso2.org/pages/viewpage.action?pageId=22185121  

[2] http://wso2.com/library/webinars/2012/01/governing-enterprise-assets-wso2-governance-registry/  

Proposal 2: Implement support for a binary protocol for the SOAP/REST service requests on WSO2 Application Server  

Background   

Currently, the requests between the WSO2 Enterprise Service Bus (ESB) [1] and the back-end products like WSO2 Application Server (based on Tomcat) use http protocol to communicate. But HTTP requests are comparatively slow, so the idea is to introduce a binary protocol as a better option compared to HTTP protocol.

The WSO2 ESB acts as a proxy between the client and back-end services. The back-end SOAP and REST based services are hosted on WSO2 products like WSO2 AS, WSO2 Data Services server etc.

Requirement

The architecture to add a new transport protocol and Binary protocol implementations are already in place. The student need to integrate a chosen binary transport protocol with WSO2 products.

  • We currently prefer Protocol Buffers [2], but the student have the opportunity to do a quick study between binary protocols such as Thrift, Avro etc. and convince the community on a better choice.

  • Student will need to get familiarize with Axis2 based services and transports and the binary protocol of choice.

Deliverables 

  • Full implementation for the integration of binary protocol

  • Performance comparison between binary and http protocols

  • Unit tests based on JUnit

  • Integration tests based on TestNG for WSO2 ESB and WSO2 AS

Skills Needed 

  • Java

Possible Mentor/s

  • Kasun Gajasinghe
  • Sagara Gunathunga
  • Supun Malinga

References

[1] http://wso2.com/products/enterprise-service-bus/  

[2] https://code.google.com/p/protobuf-net/  

Proposal 3: Apache Tomcat based runtime implementation for Jaggery.js

Description

At present jaggery scripts can only be executed in a carbon server runtime. This limits it wide adoption. The intention of this project is to port the app deployment and execution modules to work with tomcat server runtime. This will enable developers to write jaggery scripts and directly deploy them in apache tomcat.

By porting it to vanila tomcat jaggery script update time, application deployment time and also the runtime distribution size can be minimized. Hence will be quite useful for developers who wants to startup with a minimum jaggery runtime.

Deliverables

Fully working distribution of jaggery with apache tomcat runtime. This include but not limited to porting jaggery deployment module, script execution module and caching module. The developer need to run the jaggery test suite and verify the implementation and provide test cases for the relevant new developments.

Skills needed

  • Java
  • JavaScript
  • Mozilla Rhino (Optional)

Possible Mentor/s

Proposal 4: SCXML editor for Developer Studio

Description 

SCXML is an XML based language used to define State Charts/State Machines for different life-cycle based applications. It is a well defined specification by W3C [1]. Currently SCXML is used to define LIfe-cycle model in WSO2 Governance Registry and there is no proper SCXML Eclipse plugin available in the Market. Therefore this Project proposal is to implement a SCXML Editor plugin for Eclipse. At the end of the successful completion, this Plugin will be a part of the WSO2 Developer Studio IDE. This Eclipse plugin should be provide graphical and source editors for compose SCXML configurations.

Deliverables 

  • SCXML Eclipse plugin with Design View
  • Source View to define SCXML configurations

Skills Needed 

  • Java
  • Eclipse Plugin Development
  • Eclipse EMF
  • Eclipse GMF
  • XML
  • SCXML

References

[1]. http://www.w3.org/TR/scxml/

Possible mentor/s 

  • Jasintha Dasanayake
  • Viraj Rajaguru 

Proposal 5: WSO2 Deployment Engine (GUI Tool) 

Description

A GUI tool like WSO2 Developer studio which can use to design and generate puppet manifests and IaaS deployment scripts (AWS CloudFormation/Openstack Heat.). Users can drag and drop hosts, services and create the architecture. When a user drag and drop a service on to a host, it will automatically set relevant parameters( update hosts file. update offset.). Then if a user connect two services like an AS and an ELB it will automatically enable proxy port and so on. If there are many AS instances it will automatically enable clustering and update members. And via IaaS APIs (CloudFormation) deploy the hole thing by one click.
[image: https://drive.google.com/a/wso2.com/file/d/0B1VewpRZfuv-ZnZWRi1zTUxHaE84QkJwUXNhTDl6MGdNTVlF/edit?usp=sharing

Deliverables  

  • Give a visual interactive architecture diagram to help users manage deployment architectures
  • Provide a API for the tool. Can use in continuous delivery or integrate with anything else.
  • A GUI tool to do deployment easily with less errors. 
  • Can provide template for common and highly used architecture patterns. 

Skills Needed 

  • UI/UX skills
  • APIs 
  • Some knowledge in Python/Ruby 
  • Knowledge on AWS/Openstack, puppet and how those work.

Possible Mentor/s

  • Chamith
  • ThilinaP
  • Sanjaya
  • Manula

Proposal 6: AMI baker for WSO2 Private PaaS

Description

 A framework to create AWS/Openstack AMIs (Amazon machine images). Simply a user will give some parameter like OS version, packages with relevant versions and some custom scripts. Framework should be able to create an AMI which will fulfill all user needs and directly upload to the endpoint(EC2 or relevant openstack IaaS).

Deliverables 

  • A framework to create AMIs.
  • Reduce or remove puppet running on cartridge bootup process.

Skills Needed 

  • Shell/Python scripting.
  • Knowledge in AWS AMIs.

Possible Mentor/s

  • Chamith
  • LakmalW
  • ThilinaP
  • Sanjaya
  • Manula

Proposal 7: UI Testing Framework for Developer Studio 

Description 

WSO2 DEveloper Studio is a set of Eclipse plugins providing tools for WSO2 Carbon based products. At the moment WSO2 Developer Studio plugins do not have a proper UI testing framework to test Eclipse based UI functionalities. Hence Developer Studio requires a UI testing framework to test UI functionalities implemented with UI Test Framework SWTBot.

Deliverables  

A test framework that can be automate developer studio UI components testing.

Skills Needed

  • Java
  • SWTBot
  • Eclipse Plugin Development
  • UI Testing

Possible Mentor/s

  • Jasintha
  • Viraj

Proposal 8: Implement OSGi JNDI Service Specification for Carbon 5

Description 

The OSGi compendium (5.0) specification defines about how the JNDI service can be utilized from within an OSGi framework. There are already available implementation of this specification such as Apache Arias. For Carbon 5, we can implement this specification by taking multi-tenancy aspect of the platform into consideration. The OSGi JNDI service implementation should be written in a way that it is inherently tenant aware.

This project is suitable for anyone who has a good knowledge in OSGi, JNDI and for someone who is willing to do some R&D and figure out a way to implement this.

Skills Needed 

  • Java
  • OSGi
  • JNDI

Possible Mentor/s 

  • Sameera
  • Kishanthan

Proposal 9: Tooling support for Hive Queries in Developer Studio

Description 

WSO2 Business Activity Monitor Product is using Apache Hadoop for its big data processor and it uses Apache Hive to manage and interact with the Cassandra NoSQL database. Hive requires the query instructions to be provided using Hive Query Language (HQL). Target of this project to Implement tooling support for creating Hive queries that are used in BAM.

Deliverables 

  • A comprehensive HQL Editor that supports syntax coloring, auto completion, etc for Developer Studio.

Skills Needed 

  • Java
  • Eclipse plugin development
  • Hive
  • Cassandra
  • Hadoop

Possible Mentor/s 

  • Anjana
  • Maninda

Proposal 10: WSO2 Complex Event Processor, Event Flow Debugger GUI Tool.

Description 

A GUI tool to represent, monitor and debug the event flows with in CEP. This will be a Web based solution which allows users to view the CEP Execution Plans and the Streams as a graph, get statistics at each component of the event flow and also debug the event flow with the use of breakpoints.

Deliverable

  • Give web based graphical representation of the event flow graphs of CEP.
  • Embed monitoring capability to the flow. E.g event flow rate, memory consumption, queue size
  • Add debugging capabilities to the event flow

Skills Needed 

  • UI/UX skills
  • APIs
  • Some knowledge in HTML, js , Jaggery
  • Knowledge on how debuggers work.

Possible Mentor/s 

  • Suho
  • Srinath
  • Mohan
  • Chanka

Proposal 11: Asset model to support OWL or OWL-lite

Description 

The W3C Web Ontology Language (OWL) is a Semantic Web language designed to represent rich and complex knowledge about things, groups of things, and relations between things. This project will develop using OWL or OWL-lite based semantic classification model for G-Reg assets, based on some open standards for better classification among assets in GReg.

Deliverables

  • Implementation of OWL-lite/OWL based semantic classification model using internal metadata model.
  • Jaggery based UI for classification representation and User interaction.

Skills Needed 

  • Semantic models
  • OWL
  • SOA
  • Jaggery
  • Javascript
  • Java

Proposal 12: Mediation Debugger for WSO2 ESB

Description 

Currently in WSO2 ESB, the only possible way of debugging the message flow is to put logs in the sequence flow.
Idea of this project is to introduce a run time debugging capability for the message flow of WSO2 ESB.
User interface for the Mediation debugger has to be implemented at the WSO2 Developer Studio.
And also it is required to alter the ESB server runtime in a way that it can expose an extension point to plug-in the Mediation debugger to it.

Deliverables 

  • Extension point implementation for ESB server runtime
  • User interface implementation for Mediation Debugger

Skills Needed

  • Java
  • XML

Possible Mentor/s 

  • Kasun
  • Dushan
  • Isuru

Proposal 13: WSO2 Message Broker, Hybrid Message Storage Model - In Memory Message Queuing with RDBMS Clustering

Description 

WSO2 Message Broker has a messaging model which is currently implemented on top of Apache Cassandra which enables the its nodes to be scaled across a cluster. We would like to propose a hybrid model which will store messages in-memory, that will periodically be synced with the database for its backup. This way we could introduce a high performing and reliable model where the nodes would communicate with each other directly and will require the database support for reliability purposes. The database should be RDBMS based with clustering enabled that would allow cluster wide replication across the nodes, ex :- MySQL.

Deliverables

  • Pluggable RDBMS storage model
  • In memory model implementation that operates with above model
  • Authentication/authorization model to connect to store

Skills Needed 

  • Java High Level Language
  • Knowledge on Databases
  • APIs 
  • Understanding on threading/performance

Possible Mentor/s 

  • Srinath
  • Hasitha
  • Shammi
  • Pamod
  • Ishara

Proposal 14: Project Management Tool Container

Description

In WSO2 App Factory one should be able to use a product management tool if needed. There are complete PM tool suites as well as single tools. AF should have provision to be able to add such a suite of tools or just single tools that address one aspect of PM. Also, it should be possible to add several of such single tools by default and allow the user to customize it as needed - i.e. enable / disable required tools. This points to a PM tool container which can either have a complete product with different features or the ability to add several single tools. In this case the container should ideally handle generic features such as multi-tenancy, persistence etc..

Deliverables 

  • Extention point to the PM tool container
  • PM tool container
  • Default PM tools - e.g. Gantt chart tool , sprint planning tools used in scrum

Skills Needed 

  • Java
  • Jaggery
  • Java script

Possible mentor/s 

  • Dimuthu
  • Shiro
  • Manjula

Proposal 15: WS-Security Policy Editor for Developer Studio

Description 

WSO2 middleware platform components are implemented based on number of open standards such as WS-*, XACML, so on. WS-Policy specification [1] provides a framework and model to define different Policy based characteristics for Web-Services. For example WSO2 platform supports defining WS-Policy language to define Security policies [2], Throttling policies, etc. WS-SecurityPolicy is also defined based on WS-Policy language and used to define security aspects for Web Services. At the moment WSO2 Developer Studio does not have a proper editor to implement WS-Security Policy based artifacts. This project proposal is to implement a proper Eclipse based WS-Security Policy Editor plugin which can be integrated with WSO2 Developer Studio IDE. Upon the successful completion of the Project, the Editor will be integrated in to WSO2 Developer Studio IDE.

Deliverables 

  • WS-Policy Eclipse plugin with Design View and Source View to define WS-Policy configurations.
  • Ability to define custom security policies using the WSO2 Developer Studio IDE.

Skills Needed

  • Java
  • Eclipse Plugin Development
  • Eclipse EMF
  • Eclipse GMF
  • XML
  • Web Services
  • SOAP
  • WS-Policy 
  • WS-Security

References

[1] http://www.w3.org/TR/ws-policy/
[2] https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss

Possible Mentor/s 

  • Viraj
  • Sagara
  • Johan

Proposal 16: Automated test case generation tool for WSO2 products

Description 

Idea of this project is to develop a tool to process test scenario documents written in natural language and generate test suites. WSO2 products expose its functionalists via backend Admin services (Web-Service). The tool can directly depend on the backend services to implement test cases based on the given test scenario. This will be behavior driven test development (BDD) tool, which can be used even by non technical users. The project is basically focusing on generating test suites for WSO2 Application Server backend. UI tests will not be considered under the project scope.

Deliverables 

  • Tool with GUI to convert test scenarios into test suites.
  • Test scenario document and test suite developed for WSO2 Application Server.

Skills needed 

  • Java
  • Web-Services
  • NLP
  • UX/UI
  • TestNG

References 

http://jbehave.org/

Possible Mentor/s 

  • Krishantha
  • Malintha
  • DharshanaW

Proposal 17: Business Process Instance Illustrator for WSO2 Business Process Server

Description

Business processes are complex and highly dynamic. Business process instance visualization helps to monitor business process instance data and identify critical process problems pro-actively. Further it helps to identify execution time/performance measures that will help preventing/solving cost intensive activities and improving the speed, quality & efficiency of business processes.

Deliverables

  • A graphical web based UI for displaying runtime data of a BPEL instance. Further it should capable of:
    • Displaying runtime state of a workflow instance.
    • Displaying any exceptions in activities.
    • BPEL activity filtering.
    • Process visualization with different abstraction levels.
    • Performance visualization.

Skills Needed 

  • Java
  • XML
  • Basic understanding on BPEL 2.0
  • Scalable Vector Graphics-SVG (optional)

Possible Mentor/s:

  • Nandika
  • Chathura
  • Hasitha
  • Thilini

Proposal 18: Multi-tenancy capability in WSO2 Storage Server’s Distributed File System powered by HDFS

Description

The WSO2 Storage Server (SS) is an open source, multi-tenanted server for system administrators and developers to easily provision and manage relational databases, NoSQL stores and File systems. In this project it is required to use Hadoop 2.2.0 and implement multi-tenancy in HDFS. The solution should be such that, the carbon framework’s authorization framework coincides with the HDFS authorization.

Deliverable 

Multi-tenancy enabled HDFS feature.

Skills Needed  

  • Java
  • hadoop hdfs
  • Basic understanding on carbon authentication/authorization framework

Possible Mentor/s

  • Prabath Abeysekara
  • Deependra
  • Shani

Proposal 19: Implementing Policy Driven Storage Provisioning for WSO2 SS

Description

The WSO2 Storage Server (SS) is an open source, multi-tenanted server for system administrators and developers to easily provision and manage relational databases, NoSQL stores and File systems. In this project it is required to enable users to create storage structures (databases, keyspaces, etc) based on a template-driven model. The main requirement is to allow users to enter values such as capacity and number of instances and thereby make SS provision DB instances accordingly.

Deliverable 

  • Policy Driven storage provisioning module

Skills Needed 

  • Java
  • RDBMS knowledge
  • C++ basic knowledge

Possible Mentor/s

  • Prabath Abeysekara
  • Deependra
  • Dhanuka

Proposal 20: BAM Toolbox for WSO2 Business Process Server (BPS)

Description

A comprehensive mechanism for monitoring business process (BPEL and Human Task) data . The solution can be used to extract and summarize business process related statistics using WSO2 Business Activity Monitor (BAM).

...

Human task related statistics:
Human Task definition related information (i.e task count, task count by state, etc)
Human Task instance information (i.e participants, task completion time, etc)
Human Task time related information (i.e average response time, average task completion time, etc)
Per user statistics (i.e assigned list of tasks, completed lists of tasks, in-progress tasks, user response time, etc)

Deliverables

  • BPEL and human task event listener to capture events generated at WSO2 BPS
  • BAM publisher to publish events to WSO2 BAM
  • BAM toolbox [1] containing stream definitions, analytic scripts, and dashboard components.

Skills Needed 

  • Java
  • JavaScript
  • Jaggery (optional)
  • XML
  • Basic understanding on BPEL 2.0 and HumanTask 1.1 (optional)
  • Hive Scripting (optional)

Possible Mentor/s 

  • Nandika
  • Chathura
  • Hasitha
  • Thilini

Reference 

[1] http://docs.wso2.org/display/BAM240/Introduction+to+BAM+Toolbox

Proposal 21: iOS Display viewer for PDF, Doc, Excel files for WSO2 EMM 

Deliverables

An iOS application which can view PDF, Doc, Excel

  • Viewer to display PDF,Doc, Excel which is compressed,encrypted.

  • Display offline and online documents

  • Document should be compressed and encrypted while downloading and storing.

Skills Needed 

  • Objective-C

Possible Mentor/s

  • Shan

Proposal 22: Android Display viewer for PDF, Doc, Excel files for WSO2 EMM

Deliverables

An android application which can view PDF, Doc, Excel  

  • Viewer to display PDF,Doc,Excel which is compressed, encrypted

  • Display offline and online documents

  • Document should be compressed and encrypted while downloading and storing.  

Skills  Needed 

  • Android
  • Compression
  • Encryption

Possible Mentor/s

  • Shan  

Proposal 22: PMML based Classifier Support for WSO2 CEP

Predictive Model Markup Language (PMML) - is an XML-based file format developed by the Data Mining Group to provide a way for applications to describe and exchange models produced by data mining andmachine learning algorithms. It supports common models such as logistic regression and feedforward neural networks.

Deliverables

  • PMML extension to WSO2 CEP 

  • Implementation of two usecases using the PMML extension 

Skills  Needed

  • Java
  • Complex Event Processing

Possible Mentor/s

  • Srinath
  • Suho