Rymdbaserad arkitektur

Rymdbaserat arkitekturdiagram

En rymdbaserad arkitektur ( SBA ) är ett förhållningssätt till distribuerade datorsystem där de olika komponenterna interagerar med varandra genom att utbyta tupler eller poster via ett eller flera delade utrymmen. Detta kontrasteras med de mer vanliga för meddelandekötjänst där de olika komponenterna interagerar med varandra genom att utbyta meddelanden via en meddelandeförmedlare. På sätt och vis utbyter båda tillvägagångssätten meddelanden med någon central agent, men hur de utbyter meddelanden är mycket särskiljande.

En analogi kan vara där en meddelandeförmedlare är som en akademisk konferens , där varje presentatör har scenen och presenterar i den ordning de är schemalagda; medan ett tuppelutrymme är som en Unconference , där alla deltagare kan skriva på en gemensam whiteboard samtidigt och alla kan se den samtidigt.

  • Tuple Spaces
    • varje utrymme är som en "kanal" i ett meddelandeförmedlarsystem som komponenter kan välja att interagera med
    • komponenter kan skriva en "tupel" eller "entry" i ett utrymme, medan andra komponenter kan läsa poster/tuples från utrymmet, men med kraftfullare mekanismer än meddelandeförmedlare
    • att skriva inlägg till ett utrymme är i allmänhet inte beställt som i en meddelandeförmedlare, men kan vara vid behov
    • att designa applikationer med detta tillvägagångssätt är mindre intuitivt för de flesta och kan ge mer kognitiv belastning att uppskatta och utnyttja
  • Meddelandemäklare
    • varje mäklare stöder vanligtvis flera "kanaler" som komponenter kan välja att interagera med
    • komponenter skriver "meddelanden" till en kanal, medan andra komponenter läser meddelanden från kanalen
    • att skriva meddelanden till en kanal är i allmänhet i sin ordning, där de vanligtvis läses upp i samma ordning
    • att designa applikationer med detta tillvägagångssätt är mer intuitivt för de flesta, ungefär som NoSQL- databaser är mer intuitiva än SQL

Ett nyckelmål för båda tillvägagångssätten är att skapa löst kopplade system som minimerar konfigurationen, särskilt delad kunskap om vem som gör vad, vilket leder till målen bättre tillgänglighet, motståndskraft, skalbarhet, etc.

Mer specifikt är en SBA en distribuerad datorarkitektur för att uppnå linjär skalbarhet av tillståndsfulla, högpresterande applikationer med hjälp av tupelrymdsparadigmet . Den följer många av principerna för representationell tillståndsöverföring (REST), tjänsteorienterad arkitektur (SOA) och händelsedriven arkitektur (EDA), såväl som delar av grid computing . Med en rymdbaserad arkitektur byggs applikationer av en uppsättning självförsörjande enheter, så kallade processing-units (PU). Dessa enheter är oberoende av varandra, så att applikationen kan skalas genom att lägga till fler enheter. SBA-modellen är nära besläktad med andra mönster som har visat sig vara framgångsrika när det gäller att ta itu med skalbarhetsutmaningen för applikationer, såsom shared nothing architecture (SN), som används av Google, Amazon.com och andra välkända företag. Modellen har också tillämpats av många företag inom värdepappersbranschen för att implementera skalbara elektroniska värdepappershandelsapplikationer.

Historia

Rymdbaserad arkitektur (SBA) uppfanns och utvecklades ursprungligen hos Microsoft 1997–98. Internt hos Microsoft var det känt som Youkon Distributed Caching Platform (YDC). De första stora webbprojekten baserade på det var MSN Live Search (släpptes i september 1999) och senare MSN Customer marketing data store (multi-terabyte in-memory DB som delas av alla MSN-webbplatser) samt ett antal andra MSN-webbplatser som släpptes i slutet av 1990-talet och början av 2000-talet. Se amerikanska patent 6 453 404 och 6 449 695: och andra patent baserade på dessa:

Komponenter i rymdbaserad arkitektur

En applikation som bygger på principerna för rymdbaserad arkitektur har vanligtvis följande komponenter:

Processenhet
Enheten för skalbarhet och fail-over. Normalt byggs en bearbetningsenhet av en POJO- behållare (Plain Old Java Object), som den som tillhandahålls av Spring Framework .
Virtuell mellanprogram
En vanlig körtids- och klustringsmodell, som används över hela mellanvarustacken . De centrala middleware-komponenterna i en typisk SBA-arkitektur är:
Komponent Beskrivning
Meddelanderutnät Hanterar flödet av inkommande transaktioner samt kommunikationen mellan tjänster
Datanätet Hanterar data i distribuerat minne med alternativ för att synkronisera dessa data med en underliggande databas
Bearbetningsrutnät Parallell bearbetningskomponent baserad på master/arbetarmönstret (även känt som ett svart tavlamönster ) som möjliggör parallell bearbetning av händelser mellan olika tjänster
POJO-driven tjänstemodell
En lättviktig tjänstemodell som kan ta vilken standard Java-implementering som helst och förvandla den till en löst kopplad distribuerad tjänst. Modellen är idealisk för interaktion med tjänster som körs inom samma bearbetningsenhet.
SLA-driven container
Den SLA-drivna containern möjliggör distribution av applikationen på en dynamisk pool av maskiner baserade på Service Level Agreements. SLA-definitioner inkluderar antalet instanser som måste köras för att följa programskalnings- och fail-over-policyerna, såväl som andra policyer.

Se även

Litteratur

Artiklar/tidningar, tekniska: