“A picture worth a thousand words” is a known fact which doesn’t need proof. At present we discuss about the value and the power of data. We use various tools to analyze them, we do business intelligence capturing trends or anomalies. However in the end you need to express the meaning in a sensible manner for the key decision makers. Would you go write thousand words or rather draw something, summarize the findings and let the stakeholder explore for more.
WSO2 Middleware stack has all the pieces you need to harvest, store & analyze (both real-time and periodical) vast amount of data sets, but when it comes to summarizing and presenting, the stack had somewhat a week tool set. We envisioned the idea of “SOA Last Mile” since latter part of 2009 with products such as WSO2 Gadget Server, WSO2 Mashup Server and frameworks such as viskit. We experimented, wrote code and delivered enterprise grade products to achieve this vision. For instance WSO2 Gadget Server was one of the most downloaded products during 2010 – 2011 time span, and even now people are using it for various data presentation purposes.
Users who downloaded the Gadget Server always wanted more. Its never just about putting few widgets in a screen. You need to express an idea, which is not hindered by a 3 x 4 grid. They wanted L/H/E shape layouts, they wanted data trees and drill downs, they were not happy with just rearranging pieces on a fixed canvas, but to control the server side data flows, and filter them according to what they wish for.
During early 2012, were took these concerns seriously, we rethought about our story for the presentation layer. We learnt from our mistakes in the first iteration. First we started creating a framework that is flexible enough to build powerful web applications. Simplicity, flexibility, stability and developer adoption were our goals. We made jaggery.js; a server side javascript runtime for web application development. With jaggery we have built and are building some of the enterprise grade WSO2 Products, which are robust and scalable.
With that we revisited the concepts behind the Gadget Server, and considered the questions our users asked and thought of how we can re-innovate. We came up with a new model, where users themselves can create the visualizations/presentations they need from the building blocks that we provide. We believed that OpenSocial Gadget technology has a strong usecase when creating re-usable widgets which can be embedded in a page (We didn’t want to throw that away), then we saw a clear usecase of jaggery, where it can play a major role when writing server side code without an effort.
We added above two capabilities to gather and created an environment which enables the user to create pages to present their data in a visually appealing manner. With this model, users can create, L/H/E shaped layouts, re-use the gadgets which are discoverable from an integrated store, and connect/create data sets through backend logic.
We see two distinct user groups using WSO2 User Engagement Server, business users who need to create a dashboard quickly to show some stats and more focused developer groups who create pages and microsites to present information for their enterprises. UES has all the tools needed to serve both these user groups. A visual workbench hiding the underline complexities and a powerful editor to create larger sites with detailed content.
UES is an evolving story, we simply released 1.0.0. There is a long way to go. We have ideas of creating and packaging a data mapping tool, so you can mix and match data fragments and visualize them. Have plans on providing an integrated social experience, so when you create a page or a site, you can embed the social element in to it.
You can download UES from [1], documentation can be found at [2], source code is at [3]. You can report any issues or suggestions at [4]
- http://wso2.com/products/user-engagement-server
- http://docs.wso2.org/wiki/display/UES100/WSO2+User+Engagement+Server+1.0.0+Documentation
- https://github.com/wso2/ues
- https://wso2.org/jira/browse/UES