Rymdbaserad arkitektur
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:
- Xu, Dezheng; Xiaoying Bai; Guilan Dai (2006). "En Tuple-Space-Based Coordination Architecture for Test Agents in the MAST Framework" (PDF) . 2006 Andra IEEE International Symposium on Service-Oriented System Engineering (SOSE'06) . Tsinghua University, Kina. s. 57–66. doi : 10.1109/SOSE.2006.6 . ISBN 0-7695-2726-4 . S2CID 19977346 .
- Engelhardtsen, Fritjof Boger; Tommy Gagnes (2002). "Att använda JavaSpaces för att skapa adaptiva distribuerade system" (PDF) . Högskolan i Agder, Norge.