Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Introducing remote launch for Actors

I finally got it all working. I can now cause an actor to launch on a remote system just by replacing the normal Launch Actor.vi with a new Remote Launch Actor.vi... the new VI has the identical conpane as Launch Actor but with the App Refnum input terminal. I chose to make it a separate VI instead of just adding to Launch Actor so that the AF itself is still entirely unencumbered by network code. Thus anyone who isn't using network connectivity doesn't pay the price of having to load the network classes into memory.

The connection uses VI Server. I could have used any of several other protocols, some of which would have been more secure, but I chose to go with what I know, and even that I had some difficulties with.

There's lots of documentation and comments throughout the newly added VIs. The biggest documentation is on the block diagram of "Upper Proxy Actor.lvclass:Launch Remote Actor.vi"... there you'll find a PNG of the network topology and the relationships among all the various parts.

The *only* change to the main Actor class is the addition of one new method: Receive Message.vi, which is protected and dynamic dispatch, meaning this change is fully backward compatible with AF 4.1 should we decide to make it official.

The two machines do have to be peers on the network... I did not figure out how to make a bi-directional network connection where one machine is behind a router and using port forwarding. That would have required using a different communications protocol than VI Server since I cannot open an app refnum on the client side to itself and then pass that to the server, nor is there any other credentials that I know that would work.

To see it work, here's a demo:

On the Client Machine

  1. Install the new experimental fork that I've posted below... this will require you to uninstall any existing AF install first (the installer checks for that).
  2. Unzip "Demo App.zip" posted below.
  3. Configure your VI Server properties in Tools >> Options to allow the server machine to connect by putting its address in the options. Or just put in "*" which will allow any machine to connect -- terribly unsecure, but works great when you keep getting your DHCP lease bumped while testing... *shakes fist at ISP*
  4. Open this VI: "TEST Open This on Remote Machine But Do Not Run It.vi".

On the Server Machine

  1. Install the new experimental fork that I've posted below... this will require you to uninstall any existing AF install first (the installer checks for that).
  2. Unzip "Demo App.zip" posted below.
  3. Configure your VI Server to allow the client machine, as described above.
  4. Open the VI "TEST Local With Proxy.vi".
  5. Before running the VI, type in the IP Address and the VI Server port for the client.
  6. Run the VI. You should see the panel open on the client side, and you'll see 5 heartbeat messages from the client to the server, and then the whole system should shut down cleanly.
  7. Run it again, but this time leave the IP Address blank... this will cause the nested actor to launch on the local system.

That's it. Let me know what you think.

Update by niACS (8/24/15):  I have attached a new version of the Launch Remote Actor package, which can be used with LabVIEW 2014 and later.  The new package consists of only three actors (Proxy, Upper Proxy, and Lower Proxy) and does not modify the core framework that ships with LabVIEW.

This version comes in a VI Package Configuration, and includes the demo files (which get installed in the examples folder).

This version does not include support for the Desktop Execution Trace Toolkit.  In the near future, I will post a version that does, but that version will only work with LabVIEW 2015 and later.

Update by niACS (9/9/15):  The VIPC I posted last month had a bug that affected redirection of Stop and Last Ack messages.  I have removed that version, and attached a new one that fixes the problem.  The new VIPC has the version number of the core package attached (1.0.0.15, in this case).  If you have downloaded the previous version, I strongly recommend you upgrade to the new version.

Message 1 of 16
(16,431 Views)

Sounds awesome - I'm excited for an opportunity to try it out!

Elijah Kerry
NI Director, Software Community
0 Kudos
Message 2 of 16
(9,330 Views)

Hi AristosQueue;

I got error 43 when try to installing this file. The details error is:

"

Main Package Name: Actor Framework v4.3.0.35

Package Name with Error: Actor Framework v4.3.0.35

Error Message: VIPM could not install the package national_instruments_lib_actor_framework_experiment_remotelaunch1-4.3.0.35 .

Error Code: 43

Error Source: Pre-Install Custom Action.vi<err>All of the files currently in vi.lib\ActorFramework could not be deleted. Some of them may have been deleted. The files were all successfully backed up in vi.lib\ActorFramework_standard.zip, which can be used to restore any missing files. This was not done automatically to avoid any further issues resulting from modifying your files since something is obviously not working correctly in this installer.

"

How to resolve this issue? Thanks

DAKBIAS
0 Kudos
Message 3 of 16
(9,330 Views)

You have existing Actor Framework files in your vi.lib that cannot be deleted. You may have made them read only or you may not have administrator privileges to modify the files.

0 Kudos
Message 4 of 16
(9,330 Views)

Thanks AristosQueue. I renamed the existing ActorFramework folder to a new name and Create empty folder with the same name. Then I copy the "PackageID.txt" from old folder to the new one before installing the new installer with VIPM. Now it works.

DAKBIAS
Message 5 of 16
(9,330 Views)

Hey everyone,

I have a rather simple question:

I'm a little confused regarding the version numbering of the AF and the most current version or which version includes what...

According to "Read this first AF" (https://decibel.ni.com/content/docs/DOC-17193), the current AF 4.3 version is either for LV 2012 or something is mixed in my understanding.

Via searching I found version 4.3.1.27 including nested actors..

Simple put: I'm confused about what versions exist and what versions contain what....

Would it be possible to clarify on this issue or maybe create a version history document with every version and the changes implemented in that version?

(If there is already such a document, please point me towards it and accept my apologies for not finding it via the search function)...

I think especially for people getting started with AF, this might be helpful, since they can just grab the newest version and start from there and not worry about compatibility to previous versions...

Thank you very much for all your hard and good work !

Regards

Niels Göran


Message 6 of 16
(9,330 Views)

For anyone just getting started with AF, they shoud just use the version that ships with their copy of LabVIEW.

It's my fault there's a mess of versions... I didn't understand how the VIPM version and the AF .lvlib version and the LabVIEW version were getting tangled until it was pointed out to me at the CLA summit this past March. There's not really any way to untangle the historical versions without a massive effort that I'm just not willing to expend. Sorry -- it's a mess, but I will try to make it better  going forward. The next time we create new VIPMs for AF, we'll try to track this all better.

Message 7 of 16
(9,331 Views)

Thank you for your quick answer..

Allow me a follow-up question: What version ships with LabVIEW 2014?

And does that version includes Report Error Msg and the Remote Launching of actors ?

Thanks !

Message 8 of 16
(9,331 Views)

It does include Report Error Msg. It includes all the hooks you need for remote launch to work, but it does not actually include the remote launch VI or the two proxy actor classes needed to make it work. I've never gotten enough other people to test those out to make me confident enough to ship them, but they should load and work with 2014.

0 Kudos
Message 9 of 16
(9,331 Views)

Can i launch an Actor on a remote RT system?

Brian G. Shea
Certified LabVIEW Architect
Message 10 of 16
(9,331 Views)