18

We are designing an electrical system in which the two primary sub-systems work in a manner such that the first one controls the power for the second one (and handles some primary tasks), and the second sub-system is then responsible for more advanced tasks.

Now, there is a common terminology that is used in similar systems: master-slave architecture or relationship. However, in a master-slave relationship, the master not only has the "control", it also has more "power" and do the more advanced tasks. In our case, the first system has "control", but is not "powerful" enough to do advanced tasks. That is, in our case, the first system is more of a "gatekeeper" rather than a "master".

What would be a proper terminology for such systems or relationships?

The question, while being asked for a specific case, is general and is asking about such relationships in general, and not necessarily engineering systems.

PS:

In case someone points out, I'm asking this here and not some Engineering forum, because we need a new term for it, which does not formally exist in engineering circles.

  • Would parent/child work in your case? – code-blooded Nov 14 at 9:36
  • Comments are not for extended discussion; this conversation has been moved to chat. – tchrist Nov 17 at 5:28
  • There are several questions on ELU about this, but I propose that this should be the main question and the others closed as duplicates of this later one (as strange as that might seem). – Mitch Nov 17 at 16:32

11 Answers 11

19

Client-Agent would fit the general pattern of what you describe.

The client gives requests and commands, and perhaps handles basic tasks that they're capable of.

The agent acts, that is, carries out more complex tasks when requests come from the client.

The metaphor is strong. Clients commonly hire agents who work for them in law and real estate. The power of choice resides with the client, but the power of expertise and (in more complex cases) the ability to act rests with the agent.

  • 6
    I'd offer another variant depending on the actual role of system 1, Dispatch-Agent – Andy Nov 13 at 20:58
  • 1
    In technical writing for software, we often use the concept of servers and agents. In our case, the server stores a list of tasks. The agent connects to the server and pulls the task list. The agent disconnects from the server. The agent performs the tasks. When the agent has completed the task, the agent connects back to the server and reports the results. So the server "decides" or controls what needs to be done. The agent does the work and returns a result to the server. – Paul Pehrson Nov 15 at 3:14
18

We have a compute cluster similar to that; most nodes do the actual work, but a few must be set aside to distribute the workload. We have a redundant set of coordinators or dispatchers, and they assign tasks to workers. (Developers are calling them coordinators, and system admins called them dispatchers.)

I've also seen supervisor/worker used in this context.

If you're formalizing based on functionality, it might be worth considering what monitoring functionality, scheduling methods, or reporting tasks would differentiate between a coordinator, a dispatcher, and a supervisor. The words are used interchangeably here and now, but in practice there are a variety of management methods for different workloads.

  • 2
    +1 for supervisor/worker, that seems ideal – theonlygusti Nov 13 at 21:00
4

You can use primary / secondary.

A similar situation occurs in distributed computing, such as database replication. MongoDB, for instance, uses this terminology. In this case, the primary receives all new writes (new information), but reading can be done from any other. Since the primary needs to be available to do writes, the secondary would handle more advanced queries.

It seems that terminology has precedence in electrical systems, which may or may not communicate something different. I'd avoid this answer if it causes confusion. But if it is the same idea, then it's a known answer.

https://docs.mongodb.com/manual/core/replica-set-elections/

  • 1
    MSSQL also uses this terminology. – Chloe Nov 14 at 2:44
4

It appears like you need a substitute for slave. A slave does not have authority to take decisions, nor he has the ability. Closest I can think of is master-disciple or mentor-disciple. Disciple has freedom and could be smarter than master.

  • 3
    I'd add master-apprentice as an option as well – vancy-pants Nov 13 at 20:30
  • 1
    Authority is invoked in making decisions; you don’t need authority to take the decision. – Lawrence Nov 14 at 5:43
  • 3
    @lawrence "take a decision" in British and Indian English is similar to "make a decision" in American English. It does require authority. – barbecue Nov 15 at 2:24
3

Director-Executive might work here, to use the parlance from corporate governance. The directors decide what is to be done and the executives organise how it is to be done, and the actual doing of the job.

Strategic-Tactical is another pair that might work, if you are looking for adjectives rather than nouns.

  • At my company executives are c-level people, and directors are much further down the chain, so that would be confusing to me. – Paul Pehrson Nov 15 at 3:11
3

Leader / Follower

Heroku uses this term for its master/slave databases, so it's also used in 'engineering'. One database is written to, and the follower just copies the leader as a backup.

It's also used in dancing.

1

Scripture and Prophets. As scripture implies a set of instructions that are virtuous and trusted, while prophets describe the people who produce and perform important work. Source: https://www.theserverside.com/opinion/Master-slave-terminology-alternatives-you-can-use-right-now

  • 2
    I wouldn't ever use this but points for creativity – Fred Stark Nov 15 at 3:34
1

I'd like to add Sender/Receiver.

The Sender sends requests and commands.

The Receiver receives and acts on those requests and commands.

It should be pretty difficult to mistake the two.

  • It's actually more complex than that, I would guess. Consider server A and server B. Server A sends work for server B to do. In your analogy, server A is the Sender and server B is the receiver. But how does server B communicate back to server A that the task is done? In that case, server B is sending the completion notification to server A. So the Receiver is sending data back to the Sender? I'm more a fan of primary and secondary, but then you need to ask if secondaries ever act as primaries, and then how do you deal with that? – Paul Pehrson Nov 15 at 3:09
  • Hmm yea, you're right @Paul. Sender/Receiver doesn't do a good job of representing the feedback nature of the Receiver. I guess from what I wrote, I'm talking about the sending/receiving of "requests and commands" so responses would be outside of what my choice of words represent. – scohe001 Nov 15 at 3:26
1

Main and Menial

Main:

larger, more important, or having more influence than others of the same type

Menial:  

a person doing menial work;

of or relating to servants

0

Terms like manager, boss, or chief could be used for the power-control part of your system. For the other part, worker or related words could be used, including (in some cases fancifully) actor, laborer, operator, peon, prole, slave, servant, clerk, expert, guru, maven, boffin, artisan, provider, staff, techie, adviser or advisor, assistant, and specialist.

0

If this master-slave term is being used to communicate via interface like SPI than I'd suggest Publisher-Subscriber

  • I did provide a context "If this master-slave term is being used to communicate via interface like SPI". And I provide the link for explanation. – Gani Tamudia Nov 19 at 4:35

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