LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Datasocket security methods

Has anyone looked into creating a simple username/password client authorization for datasockets?

I've recently got something running using datasockets and presently I don't have a way to limit the number of datasocket clients other than by total number in the datasocket server.

It would be nice to have username/password accounts so that I could limit the number of connections for each specific client (most would be limited to 1 connection).

I'm sort of at a junction now where I'm trying to decide if Labview/Datasockets is ultimately the best way (certainly it's been the fastest to date) to go or whether or not to implement the code in a different manner, like Java.

Alex
0 Kudos
Message 1 of 5
(3,056 Views)
Hi AJF,

It would be fairly simple to create some conditional code that checks for a username and password in order to establish a Datasocket connection. Use the Datasocket VIs in the case instead of the Front Panel Datasocket functionality.

Have you tried this approach? If you have, let me know your results, thanks.
- Philip Courtois, Thinkbot Solutions

Thinkbot Solutions
0 Kudos
Message 2 of 5
(3,050 Views)
I didn't describe my application well enough and think my issue may be more one of program structure. I do use the data socket VI's presently and I can imagine easily how to implement user/password for a single program.

At present, however, I have several copies of the same LV application (built with app builder) running on one machine, each writing unique data to it's own data socket (differentiated by name).

Various clients connect to our server and receive this data using another of our LV apps built with app builder. What data the clients can view is "customized" using the particular version of the client software we send them (pre-set with the data socket names on our server).

What I'd like ultimately to do is not have to distribute software to clients but just give them a username/password and then control what they see via a web browser (or generic LV app) on our server. This is why I was thinking about using Java, however, I'd rather not go that route if I don't have to because already a bit of work has gone into the data generating LV code at the lower level.

What's the easiest way to exchange data between LV and a Java app?

If I assume that I will still be distributing some generic software to clients (LV communicating over data sockets), I'm looking for the best (and/or easiest) way to dynamically customize their data view. This may involve me writing another LV program to run on our server that hosts the username/password exchange and then remaps the existing datasocket names to a predetermined set that is customized for that particular user. I don't know if this is the best way, or most memory efficient, etc, and it seems to still limit the customization that I can apply on our end to something that has been preconfigured with the LV client software on their end.

If you have any ideas about this let me know.

Alex
0 Kudos
Message 3 of 5
(3,034 Views)
I'm taking a look at the Web Publishing Tool. This looks interesting, it shows a copy of the VI running on my machine, although how do I get the user to be able to interact with the VI via the web browser?

Alex
0 Kudos
Message 4 of 5
(3,022 Views)
Hi Alex,

Remote Front Panel is a very useful feature that might be the right choice for your application - it will definitely keep things more simple than creating the same functionality manually.

To gain control of the panel on the clieant side, just right-click and choose "Request Control of VI". Remember that only one client can have control at a time. Read more about Remote Panels here:

Remote Panels in LabVIEW -- Distributed Application Development

Developing Remote Front Panel LabVIEW Applications

Password Protecting a Remote Front Panel in LabVIEW?
- Philip Courtois, Thinkbot Solutions

Thinkbot Solutions
0 Kudos
Message 5 of 5
(3,006 Views)