WSO2 Data Analytics Server 3 introduces all-in-one solution with the ability to build systems that collect and analyze data and communicate the results. It combines real-time, batch, interactive, and predictive analysis of data into one integrated platform that is by design capable of analyzing millions of events per seconds which can be expected out of Internet of Things (IoT) solutions, as well as mobile and web applications.
Some of the content of the old WSO2 BAM also applicable to WSO2 DAS such as Collect & Store any Type of Business Events, High Performance Data Capture Framework, Pre-Built Data Agents for all WSO2 Products, etc. But since DAS is a complete revamp of old BAM, there are core changes such as analytics engine is now based on spark, and pluggable storage architecture and not cassandra centric (DAS 3.0 have RDBMS and hbase connectors).
DAS also includes all WSO2 CEP features, therefore users can do both real time and batch based analysis. Basically it’s kind of analytics platform.
The old BAM is mainly focused on batch analysis.
Also DAS would be in the future include Machine Learning Features as well, and it is an another name for whole analytics platform. For those who are courious to know more about WSO2 BAM vs WSO2 DAS, there is a good documentation about this topic.
WSO2 DAS is structured around a workflow model consisting of three main phases as illustrated in the diagram below: collecting, analyzing and decision making and finally communicating.
The more data enterprises generate, the more important become the reports based on these huge amounts of data. If those reports are not clear and easy to understand, there is a high chance that it will end up with wrong decisions which might have significant impact on the business itself.
In this post focus will be on the presentation component of WSO2 DAS. Well known fact is that our brain can process and understand visual (graph) representations much faster and easier than data organized, for example, in tables. Considering that, it’s extremely important to provide the best possible way to present it.
Assumption is that your data is already collected and organized within DAS. When it comes to the point where you need to present it (to create a Dashboard), there are three main approaches:
- Make use of WSO2 Dashboard Server;
- “Hybrid Mode”;
- Fully-Custom Mode;
WSO2 Dashboard Server – Fast and easy but very limited
WSO2 Dashboard Server is the successor of WSO2 User Engagement and is now integrated in WSO2 DAS. With Dashboard Server you can step into the complex world of modern business analytics. In general, out of the box you’ll get a very intuitive wizard to create desired dashboards.
Following the WSO2 manual, very fast you’ll be able to see your first dashboard up and running. On that dashboard you are able to configure elements (Gadgets) directly from the web browser, without additional tools, like you can see on the screenshot below. Like all WSO2 products, identity and access management is tightly integrated and can be utilized to provide specific dashboards based on the roles a user is assigned to. Final outcome is a gadget which comforms to Google Gadgets specification.
Downside of this approach is that you’re limited to the wizard’s features. If the available options (line and bar charts) are not sufficient you need to “make your hands dirty” and have to customize the gadgets the way you like.
Hybrid Mode – Develop custom WSO2 Dashboard Gadget
WSO2 Dashboard Server did not reinvent the wheel and relies on Google Gadgets specification. Dashboard Server by itself is developed with Bootstrap and the already discussed wizard generates components based on well-known D3 library. Both libraries can be considered industry standard tools.
Development of own gadgets is not rocket science and by making it available at this location it will be picked up by WSO2 DAS immediately (don’t forget to refresh the page of your browser) : DAS_HOME/repository/deployment/server/jaggeryapps/portal/store/carbon.super/
You’re free to work with custom HTML + JS + CSS + Google Gadgets API. As a side note, you should be aware of that Google Gadgets are not fancy mainstream anymore and documentation is sometimes not reflecting specific implementation status of Gadget API.
The described hybrid mode will work well when you need more control over gadgets but still can live with some compromises induced by the framework. Still the framework can be a significant time and money saver, depending on the specific requirements.
Fully custom dashboards
When you really want to be in control of every bit and pixel you can opt for developing a dashboard from scratch without any limiting framework. Walking this extra mile can be in some cases worth the effort and WSO2 DAS will be just the data provider.
In this approach you’ll make use of WSO2 DAS REST API. DAS will provide you all necessary data and you’ll have freedom to represent it the way you want. For example, you can decide to use AdminLTE, very popular free and open source, Bootstrap based dashboard template. Maybe you want to develop Android / iOS native application and to have your business advisor always by hand? You can, for example, receive a push notification once the supplies of your most important product are on low level. With this workflow WSO2 DAS can become very important player for your business.
This approach will also be useful if you already have some kind of business monitoring and need to use WSO2 DAS only as another part of it.
All together in practice
So, now when you understand about the data presentation alternatives, it’s good to demonstrate everything with a real world example in antoher blog, which will be published next week. So stay tuned!
Read also our other WSO2 tutorials and blogs, written by our WSO2 Gurus. In case you need WSO2 support, contact the Yenlo WSO2 Guru team to get WSO2 Development Support or WSO2 Operational Support. Of course we do deliver excellent WSO2 training services as well, based on reallife WSO2 tutorials.
Thanks to Jochen Traunecker and Rob Blaauboer for their contribution to this blog.