LabVIEW Craft
  • Blog
  • About
  • Contact
  • Tools
  • Resources

Let's Collaborate

1/25/2017

4 Comments

 
Jon McBee
I recently published the code behind the event-driven reactive programming examples on the Composed System Bitbucket page under the project name Stream.  Stream is open source and if you are interested in collaborating on it let me know.  Because the source code is now being hosted in a public repository I am going to remove the VIP from the Tools page on this blog, that VIP is already out of date so go to the Bitbucket page and get the latest version.
Picture
The version of Stream that you have access to on the Bitbucket page is two major revisions ahead of the original VIP that was downloadable on the Tools page of this blog.  The first major revision fixed bugs in the original and also added supporting libraries for synchronous and asynchronous actor implementations, error handling, and logging.  The second major revision added the ability to register as publishers and subscribers to streams by data type.
This video shows the mechanics of setting up a publisher and a subscriber using named topics with Stream.  This is the method that all of my blog posts and example code has used up until now.  This method relies on both the publisher and the subscriber knowing the name of the topic they want to register with and it also relies on both the publisher and the subscriber using the same data type, which is a form of semantic coupling.
This video shows how Stream now allows for publishers and subscribers to register using data type instead of topic name.  I added this ability in an effort to loosen the semantic coupling between the producer and the consumer.  This change is completely backwards compatible and you can upgrade to the latest version without breaking any existing code.  
That's all I have for this post, just a quick update on registering by data type and an announcement that the code base has been open sourced and is being hosted on the Composed System Bitbucket page.  If you are interested in collaborating please contact me; you can get in touch with me through the Contact page on this blog site, or through the Composed Systems website, or any of the many social media outlets we both have access to, get creative.  

Jon McBee is the Founder and Managing Partner at Composed Systems and is a Certified LabVIEW Architect, Certified LabVIEW Embedded Developer, Certified TestStand Developer, an NI Certified Professional Instructor, a LabVIEW Champion, and a Certified ScrumMaster
4 Comments
ridzuan link
1/30/2017 09:11:07 pm

Hi John;

First of all, thank you for open source the project. It looks great. I have downloaded the source code and run the examples. The examples run smoothly. However there are some errors related to the missing subVIs. Can you upload the missing subVIs. Thanks



Reply
Jon McBee
1/31/2017 06:48:04 am

Hello ridzuan,

I am glad that you have started exploring Stream. I believe that the errors you are seeing are related to a Websocket mediator extension that I wrote. The Websocket mediator depends on two VIP's from a company called Intelligent Energy. I just added those to the Bitbucket repository under "...\package\Support Packages". The author of these Websocket libraries has published newer versions but I have not updated my code to use them, sounds like a project for a collaborator...

Let me know if this doesn't address the issue you are seeing.

Regards,
Jon

Reply
kosist link
6/29/2017 05:29:11 pm

Dear Jon,
first of all - thank you very much for such an interesting blog! Your articles are very inspiring in exploring of new architecture solutions and designs; they are really very interesting!
As I've recently started with Actor Framework, I've read your articles regarding mediator pattern implementation. Now I'm playing with this Stream project.
I have a question, please. Could you, please, advice - is it a good idea, to use your Message Broker as part of private data (I mean reference to Message Broker) of some parent Actor (b/c I'd like to keep using "pure" Actor Framework), and implement just method to access this private data value (so I can get reference to Msg Broker in any child actor). And then, inside of actors, what are childs of this parent actor, I can by need to Register Publisher, and Subscribe if needed.
Will it be inline with initial design, or to put Msg broker reference inside of "deep" parent actor is not good idea?
Thanks a lot in advance!

Reply
Jon McBee
7/12/2017 02:42:55 pm

Hi kosist,

I'm glad you enjoy the blog. I've gotten busy on other projects lately and haven't had much time for new posts unfortunately. My personal opinion on your question is that it is perfectly fine to inject the by reference mediator object into an abstract actor and have its children make use of it. I will be writing a new blog post soon where I do this so that I can use Stream as part of an MVC-ish implementation using AF actors as UI components.

Reply



Leave a Reply.

    RSS Feed

    Tags

    All
    Abstract Messaging
    Actor Framework
    Agile
    AI
    Asynchronous Programming
    Best Practices
    C#
    Complexity
    Continuations
    Control Values By Index
    Craftsmanship
    Dependency Inversion
    Dependency Viewer
    Futures/Promises
    Genetic Algorithm
    Liskov Substitution
    Malleable VIs
    Mediator Pattern
    .NET
    Object Oriented
    Object-Oriented
    Packed Project Library
    Parallelism
    Polymorphism
    Pub/Sub
    RawCap
    Root Loop
    Scrum
    Task Parallel Library
    TCP/IP
    TDD
    Test Engineering
    UML
    Unit Test
    VI Scripting
    VI Server
    WireShark

    Archives

    April 2019
    July 2018
    October 2017
    March 2017
    February 2017
    January 2017
    December 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    February 2016
    January 2016
    December 2015
    November 2015
    October 2015
    August 2015
    February 2015
    January 2015

    LabVIEW Blogs

    Eyes on VIs
    LabVIEW Hacker
    VI Shots
    LabVIEW Artisan
    Software Engineering for LabVIEW
    ​Wiresmith Techology
Picture
Powered by the Panda Ant

  • Blog
  • About
  • Contact
  • Tools
  • Resources