develpreneur podcast

Blackboard Pattern : A Way to Brainstorm In Software

The blackboard pattern is arguably the least known among our first group.  This is a pattern that is not common because it is best used with some specialized tasks.  However, you may be familiar with it if you work in speech recognition, vehicle tracking, sonar signals interpretation, or similar open-ended forms of searching and matching. The Blackboard Pattern Defined Three appears to be the magic number for parts of an architectural pattern.  Likewise, this pattern again has three concepts that make it up.  There is the blackboard, the knowledge source, and the control.  These parts work together to match data to a solution. The Blackboard pattern uses the idea of a blackboard as a place to hold global data.  We... Read more

develpreneur podcast

Model-View-Controller : A Pattern Based on Functional Area

The Model-View-Controller pattern is one that is common and often seen in frameworks.  It provides us with a nice place to “hang” our code. The Model-View-Controller Pattern Defined We have another pattern that contains three parts.  In this case, we have the model, the view, and the controller.  These each has an area of functionality they contain and are intended to act without regard to the other areas.  The effect is not unlike other patterns that divide and delegate functionality.  The MVC pattern divides by interaction with a user.  We have the View that displays information to the user.  Then, we have the Controller that handles input.  Finally, we have the Model that addresses the core functionality and data. Clearly... Read more

develpreneur podcast

Event Bus Pattern : A Software News Feed

We often see the Event Bus architectural pattern in notification frameworks and Android development.  This approach provides us with a way to have a news feed mechanism across clients and processes. The Event Bus Pattern Defined There are three main players in this event bus pattern.  The players are the sources, the bus, and the listeners.  Within the bus, there are channels.  In this pattern, the listeners subscribe to a channel or channels.  Likewise, the sources post messages to one or more of these.  That allows sources to note something happened.  Likewise, any subscribers will see it.  Note that this is a one-way architecture.  Listeners will not communicate directly with sources.  However, you could have a return bus that listeners... Read more

develpreneur podcast

Peer-To-Peer : An Architecture Pattern Where Everyone Shares The Work

This episode digs into the peer-to-peer software architecture pattern.  It is common among file-sharing and crypto networks.  Likewise, the pattern is not too complicated.  However, it is robust and secure as we have tightly defined communication paths.  We also have every node playing the role of both client and server. The Peer-To-Peer Pattern Defined The description of peer-to-peer is even less complex than client-server.  We have two nodes with a bi-directional link between them.  Each node can serve as a client or as a server.  Therefore, we also see this at times when we want to keep two machines synchronized for load balance and fail-over purposes.  The network can expand to any number of nodes.  However, each node connects to... Read more

develpreneur podcast

Broker Pattern – Send Requests To The Correct Worker

The broker pattern may seem very similar to some others we have examined.  However, it is more about distributed systems than balancing traffic.  The pipe-filter and master-slave patterns provide single path processing.  This pattern sends the requests down different paths based on the request itself. The Broker Pattern Defined A broker pattern is a sort of tree structure.  We start with a client that makes a request to the broker.  The broker assesses that request and then sends it to a server that can handle the request.  Note that the selected server is not a candidate for load purposes as much as its services.  The broker queries servers (or server report when they register) for services provided.  This pattern allows... Read more

develpreneur podcast

Pipe-filter : An Architecture for Processing Data

The pipe-filter architectural pattern is very common and used to process data.  It is flexible and scalable.  This pattern has existed in other areas.  However, it is the perfect solution for software problems that need steps or filters. The Pipe-Filter Pattern Defined Think of a start and an endpoint.  Data has to go from beginning to end, and work will be done on it along the way.  The work done is the filters, and we can place any number of filters along the journey.  Each one is stand-alone in a sense as it takes in data, does the work, and then spits it out on the other end.  We can change countless steps like this together as one might do... Read more