Posted: 2018-08-02 01:57 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Link copied. Please paste this link to share this article on your social media post.
We're trying to bring data from an external application into an SBO ES. We have experimented with providing a webservice and having SBO poll that webservice, however for some customers there is too much data and we hit the maximum response size in the ES SimpleXMLWebService.
As a result of this, we've started experimenting with using SmartConnector to actively write the values into the ES when the values change. However, before we go this route we want to make sure this approach will scale.
We're currently using the SboEwsRESTEndpoint and using the PUT /Values/<id>/Value request for each point in our application. Currently we are doing this synchronously, only starting one write after another completes. With this approach we can't keep up with 100 writes per second, which I think should be achievable. I'm considering just parallelizing these 100 writes, but I would like to know if there is a more efficient way to batch-write values into SBO than what I'm doing now.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Link copied. Please paste this link to share this article on your social media post.
Hi Josh,
What you are describing, sounds like a very common use case for Smart Connector. While you can do what you are saying, and update EBO values with the REST endpoints.
What I would suggest is that you go back to using the Web Service and use Smart Connector to do something like below:
- Discovery Processor:
- Sends requests to the Web Service and scaffolds up an EWS server in Smart Connector with all the EWS objects.
- Runs as often as you think you may have new objects
- Update Processor:
- Runs very often (maybe every 5 seconds?)
- Keeps the values of the EWS objects in sync
If you do this, you just need to host this EWS server in EBO, and you don't have to worry response size limits as EWS doesn't really have these.
Let me know if I am completely off the mark with what you are trying to do.
Regards,
-Jeff
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Link copied. Please paste this link to share this article on your social media post.
Hi Josh,
What you are describing, sounds like a very common use case for Smart Connector. While you can do what you are saying, and update EBO values with the REST endpoints.
What I would suggest is that you go back to using the Web Service and use Smart Connector to do something like below:
- Discovery Processor:
- Sends requests to the Web Service and scaffolds up an EWS server in Smart Connector with all the EWS objects.
- Runs as often as you think you may have new objects
- Update Processor:
- Runs very often (maybe every 5 seconds?)
- Keeps the values of the EWS objects in sync
If you do this, you just need to host this EWS server in EBO, and you don't have to worry response size limits as EWS doesn't really have these.
Let me know if I am completely off the mark with what you are trying to do.
Regards,
-Jeff
Posted: 2018-08-03 09:05 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Link copied. Please paste this link to share this article on your social media post.
I think I understand. If we go this route, do we need to create a custom processor for this, or does such a processor already exist that I can download? Our application already produces data in a form easily digestible to the SimpleXMLWebservice Interface in SBO, so ideally we could somehow exploit this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Link copied. Please paste this link to share this article on your social media post.
Hi Josh,
There is nothing that exists today that will do exactly what you want, so you would need to write a Smart Connector extension with these processors. (although as a side note, I was working on a Smart Connector extension that could more generically read web services and server the data through a Smart Connector EWS Server, but since this is a pet project of mine, I don't get much time to work on it, and not likely to be done anytime soon..)
If you haven't yet, I would take a look at the Smart Connector Developers Guide: SmartConnector Developers Guide.pdf
It actually is a step by step guide on how to developer something very similar to what you are trying to do. So it should give a really good head start in seeing how this works. The full code that the developers guide uses can be found on GitHub. GitHub - BuildingsLabs/SmartConnectorSamples: Sample projects for SmartConnector
Let me know if you have any questions .
Regards,
-Jeff