Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am trying to find a name for this architectural pattern that I have seen in many places before:

Poller - (There are a number of these)

  • These are either plugins or services acting on there own
  • communicate with equipment of various sorts collecting data and pushing that data to a central service in a normalized form.
  • each poller knows how to communicate with a particular device,
  • collects the devices status but does not act on it, just passes it on.

Central Server

  • Receives normalized data, files it in key / value store.
  • Periodically (or by some trigger) evaluates conditions that refer to the data. The conditions cause some action to occur (like an event to be logged, or message to be sent to an operator)
share|improve this question
    
I believe those 'pollers' are called agents, so maybe agent pattern or similar? –  edwardw Dec 8 '11 at 16:05

3 Answers 3

The very well known Publish Subscribe pattern exactly covers this.

Just a small introduction to Publish Subcribe and putting terminology consistent we can say the following:

Publish subscribe model

This diagram and more good details are available from Open Pattern Repository

According to this, the Producer elements are the ones which are polling the sensors internally - once they have information they push it to the Subscription manager (a.k.a central system). Of course, there is one more thing listed here is that of final Consumer. While you have not mentioned, but any form of mechanism to retrieve this information (be it a brower or any app) is end consumer.

One of the most common usage of this pattern is System Monitoring tools Any thing from Nagios, OpenNMS, CollectD to advanced OSS used in telecom or ISP netowrk essentially use this pattern.

While this pattern is widely understood and very simple there are many facets to it - essentially the mechanics of different parts of the communication can vary widely while the core pattern still holds. Here is a great ACM paper that can give deep study of the same.

The Many Faces of Publish/Subscribe by PATRICK TH. EUGSTER, PASCAL A. FELBER, RACHID GUERRAOUI, ANNE-MARIE KERMARREC ACM Computing Surveys, Vol. 35, No. 2, June 2003, pp. 114–131.

share|improve this answer

I don't know that I've ever come across a technical term for this other than a monitoring system. Maybe data collection network or a data acquisition system ( http://en.wikipedia.org/wiki/Data_acquisition ). What you are referring to as pollers would seem to fall into the category of data loggers: http://en.wikipedia.org/wiki/Data_logger

If that isn't exactly what you were looking for maybe it will be a useful starting point for you.

share|improve this answer

Isn't this an example of a producer/consumer architecture, where the poller produce data and the central server consumes it?

(Although I should point out that if I were to read 'producer/consumer' I would focus my attention on the synchronization issues, which may or may not be the concept you're trying to convey)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.