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

Decoupling actors with Event-Driven Architectures

12/14/2016

0 Comments

 
Jon McBee
In my last post I took a look at data-centric and message-centric communication and their effects on software systems.  This post will take that discussion a little bit further by connecting the idea of data-centric messaging to Event Driven Architecture (EDA).  Along the way, we will build up a vocabulary that we can use to disucss systems of actors and the types of coupling we encounter while building them.
Picture

Read More
0 Comments

Hello World

6/30/2016

1 Comment

 
Jon McBee
Typically the first program you write when you are learning a programming language is, "Hello World!".  Due to the popularity of my prior post on optimizing the traveling salesman problem with genetic algorithms I decided to write a general parallelized Genetic Algorithm Framework for LabVIEW, naturally the first thing I taught it to do was to say, "Hello World!".
Picture

Read More
1 Comment

You've Got Mail

4/20/2016

3 Comments

 
Jon McBee
This post will serve as a summary of a presentation I gave recently on Message Abstraction.  We will start with a survey of messaging in LabVIEW and finish with an implementation of the Mediator design pattern (code included, scroll all the way to the bottom to download).
Picture

Read More
3 Comments

Fun With the Actor Framework: Pub/Sub

11/3/2015

12 Comments

 
Jon McBee
Communication between Actors is meant to be done by traversing the Actor tree.  Assuming we decide not to pass message enqueuers around to all Actors in the tree, we will end up with a lot of message classes and a lot of message routing.  The extra messages and routing, however, buys us robustness as Actor E has no way of knowing if Actor C currently exists.  But what if we could bypass the tree for certain types of messages in a way that allowed us to decouple our actors from each other...
Picture

Read More
12 Comments

Fun with the Actor Framework: Low Coupled Messaging

8/12/2015

13 Comments

 
Jon McBee
As writers of software we strive to craft code with high cohesion and loose coupling.  This can be tough to do with the Actor Framework as the default method of sending messages between actors effectively couples them together.  Depending on your application this coupling may not matter, but I will show you one way to manage it if it does.
Picture
The above image illustrates a small section of the flow of control for an application used to calculate properties of a black hole.  There is a high level module used to calculate the tidal force that objects experience while near a black hole's event horizon.  This tidal force calculation requires the black hole's mass as an input, which is calculated by a lower level module.  The high level tidal force module needs the black hole's mass in order to perform its calculation, and it depends on the low level mass module to supply it.  

Read More
13 Comments

    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

    October 2019
    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