Real time chat component in SAP BusinessObject Design Studio with Node.js ,Express and Socket.io
The enterprises are drifting fast towards Node.js, especially because of its proven performance characteristics. Here, I have tried to utilize some of its features in SAP BusinessObjects Design Studio.
Here’s how I have implemented the Real-time Chat prototype component based on Node.js, express and socket.io.
1. I have used the socket.io chat example from its official website. I installed the node server on my local machine by installing required dependencies such express, node, socket.io libraries using package.JSON and started server file by a command node index.js.
2. Once the server got started, I created a simple chat component in SAP BusinessObjects Design Studio as a socket client. To load socket.io library, I used the require.js module.
3. After the completion of socket client code in component.js file, I executed the SAP BusinessObjects Design Studio application in browser. As you can see, the component looks like this in design mode,
4. Each session will be considered as an individual user. When application is executed on the browser, the user can enter their name to join the chat server. I executed the application locally on a browser (the server is locally running on my system as I mentioned before).
5. To actually use the component, I opened the application URL in a different Google Chrome window and joined as another user. The application will indicate the number of participants for that session.
6. As you can see below, the server has detected that there are two participants.
7. The chat messages appear in both the windows as shown above. When one of the users quits the session (closes the browser window), a message appears as shown below:
As mentioned above, each session will be considered as an individual user. This real time chat component can be implemented as part of a dashboard, wherein a number of users who have opened the same application can view and communicate through the dashboard.
Lot more can be done by incorporating Node.js in SAP BusinessObjects Design Studio and this is just an example. So what are we waiting for? Let’s chat!
Certainly an interesting use case for Design Studio. If you're not planning on converting this to a commercial add-on, you may wish to consider sharing your SDK component code for the benefit of those that would like to learn further from this blog post 🙂 .
Thanks for the comment. However sorry, I can't opensource this, since we have future plan on this.
really interesting idea and nice scenario. Alternative to it would be using the bookmark functionality (as those can be shared between users and updated from both sides).
That's a nice suggestions. Thanks for the comments.
While I'll agree NodeJS is awesome (I use it myself), one could just use an IFRAME pointing to a existing chat room web app (build using Node/JSP/ASP/PHP/BSP/XSJS/whatever) instead of reinventing the wheel.
I agree with what you are saying. However i feel, same effort will be required in both the cases i think, i mean for creating our own chat web application.This is mainly to experiment, how good DS blend with node.js and real time update to develop exciting extensions in future.Correct me if i am wrong . 🙂
I don't think it's about correcting anything wrong, opinions are meant to weigh equally 🙂
If you're creating a web chat application from scratch instead of utilizing existing open source NodeJS-based app like jkingsman/FreeStep · GitHub or tamaspiros/advanced-chat · GitHub then yes the time takes what it takes, I agree with you there.
I guess it's a more philosophical question on:
Again, opinions are just opinions, but this seems like a waste of effort to develop. Many web sites have these little chat room dashlets and it's usually a ghost town. I see this at best as a "checking the box" if you are planning on incorporating it into some commercial addon bundle, but I just don't think it'll be useful. Perhaps a less realtime medium like a bulletin board/forum would be useful, but at that point you could probably just use one of the commentary extensions and be ok with that. Maybe even a twitter-like sentiment panel would work.
But a chat? I'd rather just use E-Mail, corporate IM, or phone - But I could be old fashioned!
As i already stated, this is just an little experiment i made. I am planning to give try things like twitter sentiment panel as you said.This is just a basement to start with,Anyways Thanks for the opinion.
I see this really useful, because we can get in contact with people using the report at the same time, if you go to your corporate chat tool you won't see who is using the report.
For example we have an ad-hoc application where you can select the query for the data source, this is intended to be used for many users and allow them to be connected could be useful for them to share problems, how.to questions, even power users that can develop DS applications can get in contact. This tool can save some effort to a BI Support team.
@Nithyanandam, would be possible to get some hints about the tool? for example how to embed the index.html and main.js files into the DS component..???
Thanks for your comments and use case. However I cannot share information about this to you, since we are planning to develop commercial add-on on this. Feel free to check our website for the extensions