cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Did you get an answer that solved your problem? Please mark it as an Accepted Solution so others with the same problem can find the answer easily. X

Thingworx and IoT gateway to PRODUCTION and TEST environment

jgabriel
12-Amethyst

Thingworx and IoT gateway to PRODUCTION and TEST environment

Hello,

we are in process of connecting IoT gateway to multiple Thingworx environments, namely PRODUCTION and TEST. Problem is that IoT Gateway Agent does not accept multiple endpoints nor identifier, so we are forced to use multiple Agents with different names. But when we move projects from TEST to PROD, we also need to disconnect all the connections bound to specific name.

One of the solutions is described bellow in image from LiveWorx 2017 presentation (pdf in attachment) by Yale Evans​.

I was just wondering, is there more elegant way do this? Replacing name of the Thing in XML when moving to PROD is problematic.

Maybe support of multiple endpoints in kepware or support of identifiers, so that you only have to flip them in Remote Thing?

Thanks and regards JG.

1 ACCEPTED SOLUTION

Accepted Solutions

So either I need to:

  • change architecture and get aproval from PTC licensing
  • request mentioned features on IoT gateway

Both options are for a long run. =)

Thanks Charles, I greatly appreciate your input on this!

View solution in original post

8 REPLIES 8
yevans
4-Participant
(To:jgabriel)

If you review the next few pages in that presentation I also described creating another intermediary entity that binds its properties to the kepserver entities. Then in all your development work, you only utilize the data in the intermediary entity.

The intermediary entity would have the same name in all environments, but its properties would be bound to the environment-specific kepserver entity.

You would export this intermediary entity once from dev, do a mass replace of "_DEV" with "_QA" to update the binding definitions and import to QA (and the same for PRD). Then, when you are changing all the other entities that ONLY REFERENCE the intermediary entity, you will NOT have to replace anything in the XML exports. (You would not be including the intermediary entity, just the other entities that reference it).

Also you can look into using the federation capabilities of Thingworx - you can connect Kepserver to only one Thingworx server, and federate the data from that Thingworx server to other Thingworx servers. This may or may not work depending on the functions you are performing in Thingworx.

Let me know if this helps or if you have any other questions.

Yale Evans

jgabriel
12-Amethyst
(To:yevans)

Thank you, I think I get the point here.

But this all could be easily solved if:

  • IoT gateway Agent could have different name for Agent and for RemoteThing, also called Identifier in ThingWorx.
  • IoT gateway Agent supported multiple endpoints.

Do you know if any of this is possible? If not, maybe it is good candidate for feature request?

Maybe here the approach would be more like a bus instead of a gateway pushing data to different servers. What I mean, the solution would be more like a MQTT where any server can subscribe to tags ( same tags or different )

Thanks for the tip, that's actually good idea for this kind of IoT application.

But with kepserver, I would have to spin up standalone MQTT broker and change architecture... That is something, we cannot afford right now.

Yea I know, but maybe we need to set a MQTT broker on the cloud, and make all Kepservers connect to the MQTT broker, and then you have the bus on the cloud and just connect from here to the TW Servers.

Or maybe you can set a TW Server as the bus ( all Kepservers to this TW Instance ), and then use federation in order to push data from this TW Server to other TW Servers ( Dev, Test, Prod ), in that way you can use all TW<->Kepserver integration features.

We are in corporate environment, so no cloud for us. =)

Federation could work, but it is change of architecture... Also not sure how many instances can we run with one license...

Well When I mean cloud, I mean a Server

Yes you are right, with one licence you can run one production server, and this will end up on two production servers, but maybe if you speak with ThingWorx guys they can agree that's the same solution...

Kepserver 1                                                              Thingworx Development                                             

Kepserver 2  <-------- > Thingworx Gateway Server <---- Federation --->  Thingworx QA

Kepserver 3                                                              Thingworx De Production

So either I need to:

  • change architecture and get aproval from PTC licensing
  • request mentioned features on IoT gateway

Both options are for a long run. =)

Thanks Charles, I greatly appreciate your input on this!

Top Tags