This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Project Proposals for 2014
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
- Nuwan Bandara (nuwan@wso2.com)
- Ruchira Wageesha (ruchira@wso2.com)
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
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).
The data and events that will be extracted and summarized are listed below.
BPEL related statistics:
Process related information (i.e total instance count, count by instance state, instances by process version, etc)
Process instance related information (i.e instance activities, process variables, current state of the instance, etc)
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
Proposal 23: WSO2 App Cloud integration with GitHub
App Cloud is a Application PaaS hosted by WSO2. It is allows project teams to collaboratively create, run and manage enterprise applications. At present the App Cloud supports code repos that are inbuilt. There is a requirement to allow external applications where source code in GitHub to be, build, deployed and managed in AppCloud.
Deliverables
Ability to build, deploy and manage applications hosted in GitHub via App Cloud
Skills Needed
- Java
Possible Mentor/s
- Dimuthu
- ManjulaR