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.

socket.io

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,

SAP BusinessObjects Design Studio_Real time chat component_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).

SAP BusinessObjects Design Studio_Real time chat component_browser1

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.

SAP BusinessObjects Design Studio_Real time chat component_browser2

6. As you can see below, the server has detected that there are two participants.

SAP BusinessObjects Design Studio_Real time chat component_nodeJS

SAP BusinessObjects Design Studio_Real time chat component_node-JS

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:

SAP BusinessObjects Design Studio_Real time chat component with NodeJS

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!

Source:http://visualbi.com/blogs/design-studio/real-time-chat-component-in-sap-businessobjects-design-studio-with-node-js-expre…

To report this post you need to login first.

10 Comments

You must be Logged on to comment or reply to a post.

  1. Mustafa Bensan

    Hi Nithyanandam,

    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,

    Mustafa.

    (0) 
  2. Karol Kalisz

    Hi Nithyanandam,


    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).


    Karol

    (0) 
    1. Mike Howles

      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.

      (0) 
      1. Nithyanandam Venu Post author

        Hi michal,

        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 . 🙂

        Thanks,
        Nithyanandam

        (0) 
        1. Mike Howles

          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:

          • Who (and for a chat that means more than one person at the same time) the heck is going to be real-time chatting in a dashboard versus picking up a phone or writing an E-Mail?

            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!

          (0) 
          1. Nithyanandam Venu Post author

            Hi michal,

            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.

            Thanks,
            Nithyanandam

            (0) 
          2. Javier Caycho

            Hi all,

               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..???

            Regards,

            Javier

            (0) 

Leave a Reply