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
On the Server Machine
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 (188.8.131.52, in this case). If you have downloaded the previous version, I strongly recommend you upgrade to the new version.
Sounds awesome - I'm excited for an opportunity to try it out!
I got error 43 when try to installing this file. The details error is:
Main Package Name: Actor Framework v184.108.40.206
Package Name with Error: Actor Framework v220.127.116.11
Error Message: VIPM could not install the package national_instruments_lib_actor_framework_experiment_remotelaunch1-18.104.22.168 .
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
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.
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.
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 22.214.171.124 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 !
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.
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 ?
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.