Mäklare mönster

Mäklarmönstret är ett arkitektoniskt mönster som kan användas för att strukturera distribuerade programvarusystem med frikopplade komponenter som interagerar med fjärranrop . En mäklarkomponent ansvarar för att samordna kommunikationen, såsom vidarebefordran av förfrågningar, samt för att överföra resultat och undantag.

Definition

Mäklarmönstret är ett arkitekturmönster som involverar användningen av en mellanliggande mjukvaruenhet som kallas "mäklare" för att underlätta kommunikation mellan två eller flera programvarukomponenter. Mäklaren fungerar som en "mellanhand" mellan komponenterna, vilket gör att de kan kommunicera utan att vara direkt medvetna om varandras existens.

I mäklarmönstret är mäklaren ansvarig för att ta emot meddelanden från en komponent och vidarebefordra dem till lämplig mottagare. Komponenterna som kommunicerar genom mäklaren kallas servrar eller klienter. Mäklaren kan också utföra ytterligare uppgifter, såsom att filtrera, ändra meddelanden, säkerställa en QoS (Quality of Service) t.ex. 0 för "högst en gång", eller säkerhet, eller tillhandahålla ytterligare tjänster till programvarukomponenterna.

Mäklarmönstret gör att komponenterna kan förbli frikopplade och fokuserade på sitt eget ansvar, samtidigt som de kan kommunicera och samarbeta med andra komponenter i systemet. Det kan också användas för att minska antalet beroenden mellan komponenter, vilket gör systemet mer flexibelt och lättare att underhålla.

Terminologi

Mäklare

  • Upprätthåll en routingtabell över registrerade programvarukomponenter.
  • Underhåll en filtertabell för att omdirigera de överförda meddelandena till rätt programvarukomponenter.
  • Kan garantera ytterligare funktioner som säkerhet (se informationssäkerhet ) och QoS (se tjänstens kvalitet ).

Server

  • Programvarukomponenter som ansvarar för att skicka ut ett meddelande.
  • Den finns även under förlagets namn .

Klient

  • Programvarukomponenter som prenumererar och väntar på ett specifikt meddelande.
  • Den kan också hittas under följande namn:
    • Konsument
    • Abonnent

Fördelar

  • Dynamiska förändringar, tillägg, raderingar och omplaceringar av komponenter möjliga.
  • En kommunikationskälla med/till mäklaren. som definierar gränssnittet.
  • Komponenter behöver inte känna varandra.

Nackdelar

  • En central komponent som måste vara robust och effektivt skriven.
  • Ingen datakonsistens för överförda meddelanden.

Real-life implementering av mönstret

Förvirring kring mönstret

Det finns mycket amalgam med Publish-subscribe-mönstret eftersom det delar en viss mängd likheter (t.ex. MQTT-Client-Broker-Explained by HiveMQ) . Ändå, när det kommer till representationen, finns det några kärnskillnader:

  • Mäklarens arkitektoniska mönster representeras av ett många till en till många- diagram.
  • Det arkitektoniska mönstret Publicera-prenumerera representeras av Many to Many -diagrammet. Här är meddelandefunktionerna dolda som ett tvärgående problem .