SE511098C2 - Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem - Google Patents

Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem

Info

Publication number
SE511098C2
SE511098C2 SE9704565A SE9704565A SE511098C2 SE 511098 C2 SE511098 C2 SE 511098C2 SE 9704565 A SE9704565 A SE 9704565A SE 9704565 A SE9704565 A SE 9704565A SE 511098 C2 SE511098 C2 SE 511098C2
Authority
SE
Sweden
Prior art keywords
function
function type
information
resources
distribution
Prior art date
Application number
SE9704565A
Other languages
English (en)
Other versions
SE9704565L (sv
SE9704565D0 (sv
Inventor
Jesper Vasell
Original Assignee
Ericsson Telefon Ab L M
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9704565A priority Critical patent/SE511098C2/sv
Publication of SE9704565D0 publication Critical patent/SE9704565D0/sv
Priority to JP2000524892A priority patent/JP2001526436A/ja
Priority to GB0016200A priority patent/GB2348348B/en
Priority to AU17909/99A priority patent/AU751820B2/en
Priority to PCT/SE1998/002177 priority patent/WO1999030456A2/en
Priority to US09/207,887 priority patent/US6415333B1/en
Publication of SE9704565L publication Critical patent/SE9704565L/sv
Publication of SE511098C2 publication Critical patent/SE511098C2/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/35Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

15 20 25 30 511 098 4 Figur 1A illustrerar ett lägestransparent system i vilket en träd betecknad Tl sänder ett meddelande till en annan träd betecknad T2. Eftersom systemet tillämpar lägestransparens, till det behöver den sändande träden Tl inte känna exakta läget för destinationstràden, exempelvis behöver den inte veta i vilken datornod den mottagande träden T2 residerar utan det är tillräckligt med namnet T2.
Figur lB illustrerar ett fall när T2 har försvunnit frän systemet.
Detta kan exempelvis vara fallet om ett fel uppträtt i. nod 3.
Emellertid döljs detta faktum effektivt för den sändande träden Tl beroende pà lägestransparensen och Tl försöker fortfarande sända meddelandet med användning av namnet T2 för att hänvisa till destinationen. Emellertid är namnet T2 nu ogiltigt.
Beroende pà vilken kommunikationsmekanism som används, kan uppträdandet i en sådan situation skiljas sig ät men i bästa fall underrättas den sändande träden om att det inte gick att leverera meddelandet. Kommunikationen. behöver, även. i det bästa fallet, inte erbjuda någon feltolerans i sig utan den ger bara tillämpningen, här den sändande träden Tl, information om felet. tråden T2 fallet när den försvunna (här nod 2).
Figur 1C illustrerar återuppstår* i en annan nod Det lägestransparenta meddelandeöverföringsschemat kommer då att automatiskt ställa in sig på en sådan situation under förutsättning att den àteruppstäende träden har samma namn, nämligen T2, som den försvunna tråden.
Slutligen illustrerar figur lD en situation med tvà instanser av en träd T2, vilket betyder att två trådar är funktionellt 15 20 25 30 511 098 Det andra fallet relaterar till ett namn som hänvisar till vilken entitet som helst som har det speciella namnet. Detta betyder i praktiken att en entitet som bär ett givet namn kan försvinna och en ny entitet kan skapas med användning av samma namn. Bàda dessa slag av namngivning tillhandahåller platstransparens men de skiljer sig ät vad det gäller det sätt pà vilket entiteter eller resurser kan àteruppträda i systemet. I det fallet är bara förflyttning tilläten vilket betyder att en entitet eller en resurs faktiskt rör sig och det tillàtes inte någon destruktion av en entitet pà ett ställe och skapande av en ny entitet pà ett nytt ställe som emellertid är tillàtligt i det andra fallet. De flesta av' de distribuerade systemen är i allmänhet lägestransparenta eller ännu svagare vilket betyder att både namnet pà och läget för den mottagande entiteten måste anges. US-A-5 133 053 'visar ett exempel pä ett system som implementerar lägestransparent meddelandehantering. Även om emellertid lägestransparent meddelandehantering faktiskt implementeras möjliggör detta inte àstadkommandet av ett verkligen skalbart och feltolerant distribuerat system.
Skalbarhet och feltolerans är två relaterade enheter eftersom båda har att göra med systemets uppträdande när förändringar inträffar i systemets tillgängliga resurs. Samma mekanismer är involverade oavsett om en resurser, såsom exempelvis en hel datornod, avlägsnas eller om den tillföres. Anpassning betyder att en tillämpning skall börja använda en tillförd nod vilket betyder att den, eller snarare de entiteter son1 residerar~ pà skall bli adressutrymmet som används vid synliga i Anpassning betyder att de entiteter den, kommunikation i. systemet. som existerade pà en avlägsnad nod också skall försvinna frän kommunikationsadressutrymmet. l5 20 25 30 511 098 inträffar i systemet och som effektivt kan dra fördel av förändringarna eller hantera situationen när fel uppträder.
En nod behövs också som opererar i en distribuerad miljö och som uppfyller de ovan nämnda målen och där en mekanism för sändande av meddelanden används som möjliggör att målen som hänvisats till ovan kan uppnås.
Dessuton1 behövs ett förfarande för' att sända meddelanden. i ett distribuerat kommunikationssystem som är effektivt, medger skalning och vilket möjliggör hanteringen av fel, dvs. som möjliggör feltolerant distribution av meddelanden. Dessutom behövs ett systenu en nod respektive ett förfarande son1 är lätta att styra.
Därför anges ett distribuerat kommunikationssystem såsom inledningsvis hänvisats till, där resurserna är kategoriserade eller grupperade i ett antal funktionstyper. Resurser som àr grupperade till en och samma funktionstyp är funktionellt ekvivalenta åtminstone i en given utsträckning så att de alla blir tänkbara mottagare för ett meddelande som är avsett för en resurs av den antal funktionstypen. Ett funktionstypsinstanser, som vardera svarar mot en speciell resurs, eller en typinstans, anges för varje funktionstyp. Dessutom innefattar varje nod informationshàllande medel som håller information om vilka resurser/funktionstypsinstanser som svarar mot en given funktionstyp och en distribueringsfunktion är associerad med sagda informationshàllande medel och väljer en mottagande funktionstyps- bland de instanserna i de instans tillgängliga informationshàllande medlen. För att sända ett meddelande fràn en sändande nod anges bara funktionstypen för den mottagande resursen lO 15 20 25 30 'potentiellt kunna skalas upp. 511 098 ekvivalenta i den utsträckning att de båda är tänkbara mottagare av ett meddelande sänt av T1. Genom att addera en ytterligare träd med samma funktionalitet skulle tillämpningens genomströmning Denna skalning betyder emellertid inte att tillämpningen mäste skrivas om, det är bara en fràga om att skapa en ytterligare kopia av en träd. Den huvudsakligen nackdelen är att, om lägestransparent kommunikation, eller en ännu svagare form av kommunikation, används, kommer prestanda- uppskalning inte att äga rum eftersom Tl forfarande explicit addresserar T2 vid sändande av meddelanden.
Genom exemplen sàsom illustrerade i figurerna lA-lD blir det uppenbart att lägestransparent meddelandeöverföring kan hantera situationer i vilka befintligheten för en träd förändras.
Emellertid kan den inte i en tillfredsställande utsträckning hantera situationer där trådar försvinner pà ett sätt som gör en distribuerad tillämpning feltolerant. Dessutom understöds ej skalning av en tillämpning eftersom applikationskoden är skriven för att dra fördel av specifika, explicit namngivna resurser (tràdar i de exempel som hänvisas till ovan) och adderandet av nya resuser kräver att det görs förändringar i applikationskoden.
REDOGÖRELSE FÖR UPPFINNINGEN Vad som behövs är därför ett distribuerat kommunikationssystem som är effektivt och lätt att implementera. Speciellt behövs ett system som medger skalning, dvs. som åtminstone i önskad utsträckning möjliggör användningen av nya tillagda noder eller resurser eller liknande och som kan hantera situationen när noder eller resurser avlägnas, när fel uppträder osv., dvs. ett system som är feltolerant. Med andra ord behövs ett system som kan hantera ett system som utvecklar sig och när förändringar l0 l5 20 25 30 511 098 överföring. Fördelaktigt exekverar distribueringsfunktionen i samma kontext som den sändande resursen.
Speciellt är distribueringsfunktionen specifik för en speciell funktionstyp och den förses och registreras av sagda speciella funktionstyp. Alternativt är ett antal distribueringsfunktioner fördefinierade.
Enligt uppfinningen. anropar en. resurs sonn avser att sända ett meddelande till en resurs av en given funktionstyp en sändoperation. Sagda sändoperation häller information om meddelandet och om destinationsfunktionstypen.
I ett fördelaktigt utföringsexempel, som emellertid inte är nödvändigt för fungerandet av föreliggande uppfinning, kan en nod anropa en uppkopplingsoperation för vardera av ett antal funktionstyper med vilka noden avser att kommunicera. Pà det sättet tillhandahàlles en generell referens för kommande sändoperationskommandon.
Fördelaktigt är funktionen för en distribueringsapplikation som sänder meddelanden avkopplad fràn konfigurationen hos den distribuerade applikationen. Speciellt varierar antalet resurser och systemet skalas automatiskt under körtid vilket möjliggör användning av nya tillagda resurser eller anpassning till förlust av en eller flera resurser (såväl som hela noder).
Enligt uppfinningen anges en funktionstyp av association med ett globalt namn och alla instanser av samma funktionstyp exekverar samma funktion. Speciellt tillhandahàlles distribueringsfunktionen av en tillämpning och anropas av sändoperationen. 10 15 20 25 30 511 098 som adressinformation och distribueringsfunktionen väljer vilken funktionstypsinstans som skall bli den faktiska mottagaren bland de funktionstypsinstanser som är associerade med den ingivna funktionstypen så att meddelanden fràn en sändande resurs sändes oberoende av läget för resurserna med vilka en sändande resurs kommunicerar såväl soul oberoende av antalet och namnet därpå.
Exempel pà resurser processresurser, in-/utresurser och lagringsresurser.
Distribueringstillstàndsinformation hàlles i varje nod, speciellt varje datornod, avseende de aktuellt tillgängliga entiteterna av funktionstyp som någon entitet i noden har att varje slag av deklarerat sin avsikt kommunicera med. Alternativt kan distribueringstillstàndsinformation hållas utan någon deklaration om avsikt att kommunicera med speciella funktionstyper.
Fördelaktigt uppdateras de informationshàllande medlen, speciellt kontinuerligt, så att i varje nod information tillhandahålles om vilka resurser av åtminstone ett antal funktionstyper som för närvarande är tillgängliga för meddelanden som adresserar motsvarande funktionstyper. På det sättet tillhandahålles information om tillagda/avlägsnade noder, vilket gör systemet skalningsbart och tolerant för fel.
I ett fördelaktigt utföringsexempel är informationsbärar- protokollet TCP/IP (Tranmission Control Protocol/Internet Protocol).
Fördelaktigt sändes meddelanden ut av distribueringsfunktionen när en resurs har valts ut (dvs. en utvald speciell funktionstyps- instans) med användning av 'vanlig làgestransparent meddelande- lO 15 20 25 30 511 098 10 En nod i ett distribuerat kommunikationssystem som innefattar ett antal resurser och som kommunicerar med andra noder via ett förbindelsenät anges därför också. Resurserna är grupperade i ett antal funktionstyper, där resurser som är grupperade i samma funktionstyp bildar' så kallade funktionstypsinstanser' för sagda funktionstyp och de är åtminstone i viss utsträckning funktionellt ekvivalenta. En nod innefattar dessutom informations-hållande medel som är anordnade för att hälla information om vilka funktionstypsinstanser som svarar mot en given funktionstyp.
Dessutom innefattar den en distribueringsfunktion som är associerad med de informationshàllande medlen och som används för att välja vilken funktionstypsinstans som skall bli den faktiska mottagaren av ett speciellt meddelande och bara funktionstyps- information behöver anges som adressinformation när en nod eller en resurs sänder ett meddelande.
Speciellt användes lägestransparent meddelandeöverföring när ett meddelande sändes till en utvald funktionstypsinstans. De informationshàllande medlen innefattar en distribuerings- tillstàndstabell som innehåller de funktionstypsinstanser som är tillgängliga för vardera av ett antal funktionstyper. Speciellt är för varje funktionstyp i tabellen funktionshanteringsmedel anordnade som innehåller funktionstypsnamn associerad distribueringsfunktion och funktionstypsinstanser, inkluderande åtminstone instansnamn för varje instans.
Ett förfarande för att sända meddelanden i ett distribuerat kommunikationssystem som innefattar ett antal noder som är sammankopplade av ett sammankopplande nät tillhandahålles därför också. Varje nod innefattar ett antal resurser. Enligt förfarandet är resurserna grupperade i ett antal funktionstyper beroende på lO 15 20 25 '30 511 098 I ett fördelaktigt utföringsexempel innefattar de informations- hållande nædlen eni distribueringstillstàndstabell son1 innehåller de funktionstypsinstanser som är tillgängliga för vardera av ett antal funktionstyper. Vilka funktionstyper som är inkluderade i tabellen kan exempelvis tillses genom noden och uppkopplings- operationen som hänvisats till ovan i vilken en indikering tillhandahålles om vilka funktionstyper en nod/resurs avser att kommunicera. med. Emellertid. kan. detta också bestämmas på andra sätt. I ett speciellt utföringsexempel är alla funktionstyper inkluderade men detta beror pà komplexiteten hos systemet och dess kapacitet, lagringsmedel osv.
Fördelaktigt tillhandahàlles för varje funktionstyp som är inkluderad i. distribueringstillståndstabellen funktionshanterande medel som innehåller funktionstypsnamn, dess associerade disitrieringsfunktion och funktionstypsinstanserna, åtminstone inkluderande instansnamnen. Enligt uppfinningen kan en distribuerad funktion skala utan att applikationen behöver skrivas om eller omkompileras, dvs. den kan börja använda nya tillagda noder (resurser och noder) och också hantera förlusten av noder/ resurser .
I ett fördelaktigt utföringsexempel tillhandahàlles en separat exekverande distribueringstjänst för att upprätthålla koherent information i några eller alla noder. I ett utföringsexempel år den separat exekverande distribueringsfunktionen integrerad i styrsystemet, eller själva komunikationssystemet. I ett alternativt utföringsexempel är den anordnad hierarkiskt ovanför systemet. lO 15 20 25 30 511 098 12 för att välja en speciell funktionstypinstans son1 mottagare av meddelandet. Därpå sändes meddelandet till den utvalda funktionstypsinstansen med användning av lägestransparent meddelandeöverföring.
KORTFATTAD FIGURBESKRIVNING Uppfinningen kommer i det följande att beskrivas ytterligare pà ett icke-begränsande sätt som under hänvisning till bifogade figurer i vilka: Fig. 2 pà ett förenklat sätt illustrerar sändandet av ett meddelande enligt uppfinningen, Pig. 3 är en figur som liknar den i figur 1 næn ràgot mera detaljerad, Pig. 4 är en förenklad vy av ett system, Pig. 5 är ett flödesdiagram som beskriver sändandet av ett meddelande enligt ett första utföringsexempel, Fig. 6 är ett flödesdiagram som beskriver proceduren när en ny nod adderas, Fig. 7 är ett flödesdiagram som beskriver den sändande proceduren, Fig. 8 är ett schematiskt flödesdiagram som beskriver en uppkopplingsoperation, 10 15 20 25 30 511 098 ll funktionalitet. grupperade beroende på funktionalitet i en tabell, i vardera, eller åtminstone i ett antal noder som är bestämt enligt nàgot lämpligt kriterium. Funktionstypen anges som adresserings- information när ett meddelande skall sändas till en resurs av en given funktionstyp. Informationen i tabellen används och distribueringsfunktionen anropas. Distribueringsfunktionen använder meddelandet, informationen i de informationshàllande medlen som är relevant för den adresserade funktionstypen och valfri tillämpningsdefinierad information för att välja en speciell instans. Den utvalda instansen returneras och meddelandet sändes lägestransparent till den utvalda instansen. Fördelaktigt innehåller meddelandet ett steg med kontinuerlig uppdatering av de informationshàllande medlen. Därigenom tillhandahàlles i varje nod information om vilka speciella funktionstypsinstanser av åtminstone ett antal funktionstyper som faktiskt är tillgängliga för meddelanden som adresserar motsvarande funktionstyper. Detta möjliggör upp-/nedskalning i körtid tillämpningen.
Ett förfarande för att tillhandahålla kommunikation bland tillämpningar som exekverar på resurser som är belägna i ett antal olika noder i ett nät som förbinder sagda noder, där de faktiska lägena för noderna är tillhandahàlles transperanta för tillämpningarna, ocksâ. Det innefattar steget att hälla, i lagringsmedel i varje nod, information om resurser beroende pà deras funktionalitet, vilka är grupperade i ett antal funktionstyps-instansgrupper, en för vardera av en speciell funktionstyp, och accessa en distribueringsfunktion genom att ange funktionstypen för en resurs som en mottagare av meddelandet och använder informationen i de där sada distribueringsfunktion informationshàllande medlen, meddelandet och urvalsalgoritmerna Dessutom lagras information om resurserna som är lO l5 20 25 30 511 098 14 Alternativt kan användarspecifika eller tillämpningsspecifika funktioner definieras. Fördelaktigt användes en algoritm för att välja den aktuella mottagande funktionstypsinstansen. Givetvis kan vilken önskad metod som helst användas för att välja en mottagande instans. I ett fördelaktigt utföringsexempel används en algoritm som ger den funktionstypsinstans, här bland funktionstyps- instanserna T20, T30, T40 som har den lägsta lasten. I detta fall antas att T3O väljes ut. Meddelandet sändes därpà till T3O med användning av lägestransparent kommunikation. Användningen av meddelandeöverföring baserad pà funktionstyp antar att själva den distribuerade tillämpningen är skriven med användning av ett applikationsprogrammeringsgränsnitt som tillhandahàlles av den funktionsbaserade meddelandeöverföringsmekanismen. Detta involverar användningen av specifika operationer för att tilldela typer till varje deluppgift (process, tràd osv.) i tillämpningen och använda kommunikationsoperationer som tillhandahàlles av den funktionsbaserade meddelandeöverföringsmekanismen. Funktions- baserad meddelandeöverföring är baserad. pà att abstrahera angivandet av en adresserbar entitet eller resurs genom införandet av' en funktionstyp för resurserna. Resurser eller entiteter av samma typ antas vara funktionellt ekvivalenta i den utsträckningen att valet mellan dem är meningsfullt såsom redan diskuterats tidigare i ansökan. Resurserna grupperas sàledes i olika grupper beroende pà funktionstyp. Meddelandet överförs till en funktionstyp snarare än till en specifik resurs. Implicit i denna operation är det faktiska valet av en nmttagande resurs vilket implementeras av distribueringsfunktionen som imlicit anropas som en del av sändande av ett meddelande. Distribueringsfunktionen är en generell funktion som exekverar i samma sammanhang som den sändande entiteten. Antingen är den en tillämpningsspecifik funktion som levereras och registreras av applikationen eller lO l5 20 25 30 511 098 13 Fig. 9 är ett flödesdiagram som beskriver proceduren när resurser avlägsnas.
DETALJERAD BESKRIVNING AV UPPFINNNINGEN Enligt uppfinningen kommuniceras meddelanden baserat pà funktionstyp. Detta sätt att kommunicera meddelanden kan användas i kombination med en distribuerad plattfonn och en distribuerad tillämpning och fördelaktigt blir det fullständiga systemet skalningsbart och feltolerant. Enligt uppfinningen uppnås detta genom det sätt pà vilket entiteter eller resurser sàsom exempelvis behandlingsresurser, in-/utresurser, lagringsresurser, exempelvis trådar, köer osv. adresseras av en entitet eller en resurs som sänder ett meddelande. Istället för att använda namnet på en specifik entitet eller en resurs som adressen, används funktionstypen. Funktionstypen betecknar ett antal olika resurser som betraktas vara funktionellt ekvivalenta i den utsträckning att vilken som helst av dem är en tänkbar mottagare av ett meddelande sänt till den funktionstypen. I utföringsexemplet som illustreras i figur 2 antas att en resurs av slaget träd, här T10, vill sända MSG, ett meddelande, och adressen är given som funktionstypen F10 hos mottagaren. I informationshàllande medel 11 är typinstanser T20, T30, T40 instanser av funktionstypen F10. Denna sà kallade distribueringstillstàndsinformation hàlles i varje nod, speciellt datornod, och illustrerar de aktuellt tillgängliga resurserna av varje funktionstyp som, i detta fall, tråd T1O har deklarerat sin avsikt att kommunicera med. Distribueringsfunktionen 12 utför det faktiska valet av en mottagande entitet och väljer därpå bland de för närvarande tillgängliga funktionstypsinstanserna T20, T30, T40 som tillhör den adresserade funktionstypen F10. Distribuerings- funktionen 12 är fördelaktigt baserad på ett antal moduler sà att det är lätt att plugga in exempelvis fördefinierade funktioner. lO 15 20 25 30 511 098 l6 distribueras den information som är associerad med skapandet av en funktionsinstans till alla (eller till ett givet antal) noder så att (alla) noder vet vilka instanser av en viss funktionstyp som existerar i systemet. Enligt olika uföringsexempel kan distribueringen av tillstàndsinformation variera och den behöver inte vara fullständigt koherent i alla noder, exempelvis kan nägra noder väljas ut/exkluderas eller någon fördröjning kan accepteras i vissa fall osv. Distribueringsfunktionen är associerad med funktionstypen och den anropas implicit när ett meddelande sändes (genom en sändoperation) till funktionstypen. Distribuerings- funktionen använder ett meddelande, en valför applikation- definierad information och distribueringsstatus indata och returnerar den speciella instansen av funktionstypen till vilken meddelandet dà sändes.
I ett distribuerat system som använder meddelandeöverföring baserad pà funktionstyp, innehåller varje nod en distribuerings- tillstàndstabell, en distribueringsfunktionstabell och en distribueringsmanager. Distribueringstillstàndstabellen innehåller information relaterande till alla mottagande funktioner, i form av en tillstàndspost som innehåller namnet pà funktionen, de lägestransparenta namnen pà alla mottagare som tillhör funktionen, och ett namn pà en distribueringsfunktion. Distribuerings- funktionstabellen innehåller implementeringen av alla distribueringsfunktioner som används i varje nod. Normalt är detta ett kodbibliotek, som antingen statiskt eller dynamiskt är länkat till programmen som exekverar i noden. Distribueringsmanagern är en serverentitet (en tråd eller en process) som tar emot beställningar fràn andra noder avseende uppdateringar av, eller sökningar efter, information i tillstàndstabellen. Det antas i den följande implementeringsbeskrivningen att en tjänst för lO 15 20 25 30 511 098 15 också är den en av ett antal fördefinierade distribueringsfunktioner enligt olika utföringsexempel.
I ett utföringsexempel, till vilket speciellt uppfinningen emellertid inte är begränsad, anropar en resurs en uppkopplings- operation för varje typ av resurs som den avser att kommunicera med. Resultatet därav är att en generell referens tillhandahàlles för funktionstypen vilken används i senare meddelandeöverförings- operationer. En distribuerad tillämpning som använder funktionsbaserad meddelandeöverföring har den egenskapen att dess funktion kopplas bort fràn dess konfiguration, vilket betyder att den inte kommer att vara beroende pà det faktiska antalet av, eller namnen pà, entiteter eller resurser som den kommunicerar med eftersom den bara använder namnet pà funktionstypen för resursen i kommunikationsoperationer. Det skall noteras att lägestransparens inte är tillräckligt för att erhålla denna egenskap eftersom också i ett lägestransparent system kommer olika resurser att bero pà att namnen av andra entiteter är giltiga. Som en konsekvens därav kommer numret pà vissa entiteter att byggas in i applikationen.
Enligt uppfinningen kommer både numret pà och namnet pà resurser att skilja sig àt även under körtid. Detta betyder att en illämpning kan skala automatiskt för att använda nya adderade resurser likväl som den automatiskt kommer att anpassa sig till förlusten av en resurs eller en hel nod.
Funktionstypsangivningsmekanismen som associerar ett globalt namn med, en specifik funktionalitet, normalt i fornl av en funktion skriven i något programmeringsspråk. Ifràn en funktionstyp skapas funktionsinstanser som är separata styrflöden (tràdar) som exekverar den funktionalitet som är associerad med funktionstypen. häller information om De informationshàllande medlen distribueringstillståndet. Åtminstone i viss utsträckning 10 15 20 25 30 511 098 18 record ( FTname:EntityAddress ) FTIentry; Typen pà ett FTI namn antas vara samma som typen på adresserna som används av underliggande làgestransparenta meddelandeöverförings- mekanism. En distribueringsfunktion bör vara en funktion som tar tre parametrar: ett meddelande, någon tillämpningsdefinierad distribueringsinformation och slutligen en grupp av FTI instruktioner: FTIname:DistrFunctionType(Message,DistrInfo,Instances); Distribueringsfunktionen skall returnera ett FTI namn som är mottagaren av meddelandet valt av distribueringsfunktionen. Om distribueringsfunktionen inte lyckas göra ett val, skall den returnera en NOLL pekare eller nàgot annat slag av indikation pà fel.
Figur 3 kan också sägas illustrera de informationshàllande medlen som tillhandahàlles i en nod. De innefattar distribuerings- tillstàndstabellen (DS tabell) 21 som innehåller resurserna för ett antal funktionstyper, här kallade funktionstyp 1, funktionstyp 2, funktionstyp 3, funktionstyp 4 (FTl, FT2, FT3, FT4...) osv. För varje funktionstyp tillhandahàlles ett funktionstyps- hanteringsmedel också kallat FTX hanterare. I figuren är hanterar- medlen 223 för FT3 illustrerade. Adressen som används i sàndoperationen är namnet pà en funktionstyp snarare är namnet pà en funktionstypsinstans såsom hänvisats till ovan. Distribuerings- agenten ansvarar för att välja ibland de tillgängliga funktions- lO 15 20 25 30 511 098 17 lägestransparent meddelandeöverföring är tillgänglig. Dessutom antas att denna tjänst använder adressen för en typ angiven av namnet EntityAdress.
Figur 3 illustrerar schematiskt de huvudsakliga datastrukturerna som används för tillhandahàllandet av funktionsbaserad meddelande- överföring enligt uppfinningen vilken såsom diskuterats ovan Implementeringen av fördelaktigt tillhandahàlles i varje nod. funktionsbaserad meddelandeöverföring baseras pà tre datastrukturer, som tillsammans bildar distribueringstillstàndet. datastrukturen är den aktuella (DS) tabellen 21 (FT) 223. distribuerings- kallade Den första som bestàr tillstànds- av poster, funktionstyphanterare DS tabellen 21. är inplementerad som en grupp av FT hanterare 223: DStable:array of FThandle: FT hanterarna 223 har följande (pseudokod) definition: record ( FTname:NameType; DistrFcn:DistrFunctionType; Instanceszarray of FTIentry; ) FThandle; En FT hanterare håller namnet pá den FT som den representerar tillsammans med en referens till den distribueringsfunktion som skall användas när man väljer bland funktionstypsinstanserna, också kallade FTI:er. Den sista delen av FT hanteraren består av en grupp av FTI instruktioner 233 som har följande definition: 10 15 20 25 30 511 098 20 Sàsom kan ses ur figur 3 är informationen i tabellen organiserad i ett antal funktionstyps- eller FT hanterarmedel (av vilka bara det som relaterar till FT3 223 visas) vardera av 'vilka i sin tur innehåller en lista 223 av instansposter. Det finns ett FT hanterarmedel för varje FT som någon FTI will kommunicera med. En FT hanterare innehåller i sin tur ett antal FTI poster av vilka vardera beskriver en av instanserna som svarar emot den relevanta funktionstypen FT. Dessutom innehåller FT hanterare 223 den distribueringsfunktion som tillhandahàlles av tillämpningen.
Fördelaktigt är distribueringsagenten i hög utsträckning transparent för programmeraren av tillämpningen. Emellertid finns det en explicit operation som är associerad med distribuerings- agenterna genom vilken en funktionstypsinstans deklarerar sin avsikt att kommunicera med en speciell funktionstyp. Denna operation åstadkommer skapandet av FS tabellinformationen för en specifik funktionstyp. I det följande kommer de operationer som är associerade med distribueringsagenten att beskrivas mera noggrant.
DS tabell 21 häller alla tillämpnings-funktionstyps-hanterarmedel 223,... (FT hanterare). FS tabell 21 nñjliggör att man kan utgöra uppdateringar av tillståndet i en distribueringsagent såsom exempelvis tilläggande eller avlägsnande av instansposter när funktionstypsinstanser eller FTI:er skapas/avlägnas.
Ett antal distribueringsfunktioner kan fördefinieras enligt ett fördelaktigt utföringsexempel. Detta är emellertid inte nödvändigt för fungerandet av föreliggande uppfinning, de kan också vara användardefinierade. Givetvis kan också andra och/eller annorlunda distribueringsfunktioner definieras. Emellertid anges nàgra exempel pà fördefinierade distribueringsfunktioner nedan, lO 15 20 25 30 511 098 19 typerna eller funktionstypsinstanserna, FTI:er när ett paket sändes till en funktionstyp.
Distribueringsfunktionen tillhandahàlles av tillämpningen och såsom hänvisats till tidigare anropas den implicit som en del av ovan nämnda sändoperation. Implementeringen av distribuerings- agenten är baserad på DS tabell 21 i vilken all information som behövs för att göra ett val bland FT instanserna lagras. DS tabellen delas av alla FTI:er i ett adressutrymme. Ett adressutrymme är här definierat såsom en del av den distribuerade totalplattformen som har den egenskapen att vilka tvä entiteter eller resurser som helst (såsom uppgifter) som existerar i samma adressutrymme kan kommunicera genom skrivning och läsning i samma minne, dvs. de delar samma minnesadressutrymme. I en plattform som använder ett konventionellt UNIX-liknande driftsystem, skulle ett adressutrymme vara ekvivalent med en process.
En distribuerad plattform ses som bestående av ett antal processorer som är förbundna genom ett förbindelsenät som medger att processorer kan utbyta meddelanden. En distribuerad applikation ses här såsom bestående av ett antal jobb, av vilka vardera representerar en distinkt del av totaltillämpningens funktionalitet. Uppdrag kommunicerar genom att sända meddelanden residera i ett allmänhet till varandra och varje jobb sâges specifikt adressutrymme. Ett jobb betecknar i en funktionellt separat och oberoende styrflöde. Jobb kan implementeras på olika sätt beroende på det underliggande driftsystemet och kan exempelvis implementeras som något slag av lättviktsprocesser eller trådar. Emellertid är givetvis också andra alternativ möjliga. 10 15 20 25 30 511 098 22 Denna operation indikerar' att FTI:r1 med. namnet angivet som en andra parameter skall tillhöra funktionstypen angiven lokala SOTTI en första parameter. Den orsakar att den distribuerings- tillstàndstabellen uppdateras pà följande sätt: Own det inte existerar något tillstàndstabellpost för den givna FT:n, skapas en sådan post. Annars används den existerande posten.
Tillstàndstabellsposten uppdateras då för att reflektera tillägget dvs. en ny FTI post adderas till den. av en FTI, Därpå informeras distribueringshanteraren om den nya FTI:n och skickar ut ett broadcast om tillägget av sagda FTI till alla andra noder i systemet med användning av en ADD_INSTANCE beställning såsom kommer att diskuteras ytterligare nedan.
En annan operation används för att ta bort en FTI från en FT: RemoveFTI( FTname:NameType, FTIname:EntityAddress ); Efter anrop av denna operation är den givna FTI:n inte längre en del av den givna FT:n. Operationen söker först upp sagda FT i den lokala distribueringstillståndstabellen_ Om en FT hanterare hittas, uppdateras gruppen av FTI poster så att den FTI som skall avlägsnas inte längre kan hittas i gruppen. Därpå anropas distribueringshanteraren för att sända en REMOVE_INSTANCE begäran (vilket kommer att diskuteras ytterligare nedan) till alla andra noder i systemet.
I ett fördelaktigt utföringsexempel implementeras en så kallad uppkopplingsoperation. Detta är emellertid inte nödvändigt för fungerandet av uppfinningen utan det är fördelaktigt så till vida 10 l5 20 25 30 511 098 21 exempelvis funktionen som väljer en mottagande FTI i samma adressutrymme som sändaren. Om det inte existerar någon sådan FTI, returneras en NOLL instansobjektpekare. En annan fördefinierad distribueringsfunktion som kan tillhandahållas är en som väljer den närmaste FTI:n, dvs. den FTI för vilken latenstiden för att kommunicera ett meddelande är den kortaste.
Ett ytterligare exempel pà en distribueringsfunktion som kan fördefinieras är en funktion som 'väljer en specificerad destinations FTI. Destinations FTI:n skall förses i sin första parameter av distribueringsfunktionen i form av en pekare till ett värde. Om detta värde inte är ett giltigt FTI namn, skall distribueringsfunktionen returnera en NOLL instansobjektpekare. Åter en annan funktion relaterar till väljandet av FTI i det specificerade adressutrymmet. Det specificerade adressutrymmet förses i sin första parameter av distribueringsfunktionen i form av ett värde. Enligt ett ytterligare exempel är en funktion definierad som väljer en lokal FTI under förutsättning att lasten den FTI:n under ett givet tröskelvärde som är hos ligger definierat i. distribueringsfunktionen_ Om lasten emellertid överskrider det givna tröskelvàrdet, då returneras den FTI som har den lägsta lasten. Last definieras här som storleken pà kön som är associerad med en speciell FTI.
I grund och botten finns det fyra olika operationer som ett applikationsprogram använder för att dra fördel av de funktions- baserade meddelandeöverföringstjânsterna. Den första operationen används av en entitet för att indikera att den skulle höra till en speciell funktionstyp: RegisterFTI( FTname:NameType, FTIname:EntityAddress ); 15 20 25 30 511 098 24 Först anropar- dena distribueringsfunktionen. sonx är en. del av FT hanteraren med användning av detta meddelande, distribuerings- informationen angiven som en parameter och gruppen av FTI poster som också hittas i FT hanteraren som parametrar. Distribuerings~ funktionen returnerar därpå ett FTI namn som används som adress vid sändande av meddelandet, med användning av den underliggande lägestransparent-meddelandeöverföringstjänsten.
I en alterantiv implementering, sàsom hänvisats till ovan, skulle den ovan beskrivna uppkopplingsoperationen kunna utelämnas och sändoperationen skulle kunna ta ett FT namn som destinationsadress istället för en FT hanterare: Send( FTname:NameType,msg:MessageType,Distrïnfo:InfoTYpe) I denna implementering antas sändoperationen utföra samma åtgärder som uppkopplingsoperationen, den första gängen som en sändoperation till en specifik FT försöks pä en nod. Det betyder också att sändoperationen mäste leta efter den lokala distribueringstillstàndstabellen för att hitta den korrekta FT hanteraren närhelst den sänder ett meddelande.
För att vara säker pà att informationen som innehàlles i olika noder av systemet är enhetlig, åtminstone i en given utsträckning, tillhandahàlles fördelaktigt en distribueringsmanager i varje nod.
Denna är emellertid separat från tillämpningen men den är associerad med tabellen, DS tabelldistribueringsmanagern är en exkverande driftsystemet eller anordnad i ett lager ovanför driftsystemet. oberoende entitet som antingen är integrerad i Detta hanteras fullständigt separat fràn tillämpningen. lO l5 20 25 30 511 098 23 att det reducerar mängden av onödig information.
Uppkopplingsoperationen används av' en entitet för att indikera dess avsikt att kommunicera med en given funktionstyp FT.
FThandle:Connect( FTname:NameType ); Denna operation letar efter den givna FT:n i distribuerings- tillståndstabellen. Om en FT hanterare hittas, vidtas inga andra åtgärder. Om ingen FT hanterare existerar, läggs en ny FT hanterare till distribueringstillstàndstabellen_ Gruppen av FTI poster i den nya FT hanteraren är initialt tom.
Distribueringsmanagern anropas sen för att sända ut en GET_INSTANCES begäran för FTzn. alla de En sådan begäran sänds ut till andra noderna i systemet, i någon väldefinierad turordning, tills någon nod svarar med en icke-tom UPDATE_INSTANCES begäran.
Innehållet i denna begäran används för att uppdatera gruppen av FTI poster i den nyskapade FT hanteraren.
Uppkopplingsoperationen returnerar en referens till den FT hanterare för den FT för vilken uppkopplingsoperationen anropades.
FT hanterare används i det som adress när Denna följande sändoperationer ska utföras: Send( FT:FThandle,msg:MessageType,DistrInfo:InfoType ) Sändoperationen sänder det givna næddelandet till funktionstypen som är given som en första parameter i form av en FT hanterare.
När den gör detta vidtar sändoperationen följande åtgärder: 10 15 20 25 ji_3o 511 098 26 tabellen. Om ingen FT hanterare hittas, ignoreras beställningen.
Om en FT hanterare existerar, uppdateras gruppen av FTI poster i FT hanteraren så att den skall bilda unionen av FTI namnen i den mottagna beställningen och gruppen av FTI poster som redan finns i FT hanteraren.
GET_INSTANCES( FTname:NameType, Requester:EntityAddress ) En beställning av detta slag får distribueringsmanagern att leta upp den givna FT:n i den lokala distribueringstillståndstabellen_ Om ingen FT hanterare hittas, sändes en UPDATE_INSTANCES beställning med en tom grupp av FTI namn till entiteten som har den adress som innehàlles i. GET_INSTANCES beställningen (under normal drift är detta adressen till distribueringsmanagern. som sände GET_INSTANCE beställningen). Om en FT hanterare hittas, då sändes en UPDATE_INSTANCES beställning som innehåller en grupp av de FTI namn som hittats i FT hanteraren till beställarens adress.
I utföringsexemplet definieras de relevanta datastrukturerna med användning av C-syntax. Emellertid kan givetvis vilket programmeringsspråk som helst användas.
Figur 4 är en förenklad systemvy som illustrerar ett distribuerat system som implementerar funktionsbaserad sändning av meddelanden enligt uppfinningen. I figur 4 illustreras schematiskt tre noder, nod 30. 40A, 4lC, nod 10, nod 20, Varje nod innehåller ett informationshàllande medel 40B, 40C, som innehåller en tillståndstabell 41A, 41B, en distribueringsfunktionstabell funktionstypshanterarmedel såsom diskuterats ovan) 43B, 43C (motsvarande och en distribueringsmanager, 43A, som är en serverentitet, exempelvis en tråd eller en process, som tar emot lO 15 20 25 30 511 098 25 Distribueringsmanagern i en nod skall kunna ta emot och hantera följande beställningar från distribueringsmanager i andra noder i systemet (varje typ av beställning beskrivs av dess namn och data som innehàlles i beställningen): ADD_INSTANCE( FTname:Name Type, FTIname:EntityAddress ) Vid mottagande av denna beställning, letar distribueringsmanagern upp den givna FT:n i den lokala distribueringstillstàndstabellen.
Om FT:n inte hittas, ignoreras beställningen. Annars uppdateras den FT hanterare som hittas i distribueringstillständstabellen genom att lägga till den nya FTI som innehàlles i beställningen till gruppen av FTI poster i FT hanteraren.
REMOVE_INSTANCE( FTname:NameType, FTIname:EntityAddress) Beställningen fär distribueringsmanagern att leta upp den angivna FT:n i. den lokala distribueringstillstàndstabellen_ Cmi denna FT inte hittas, ignoreras beställningen. Annars avlägsnas den FTI som innehàlles i beställningen från gruppen av FTI poster som hittas i FT hanteraren. Om emellertid FTI:n inte kan hittas i FT hanteraren, ignoreras beställningen.
UPDATE_INSTANCES( FTname:NameType, Instances:array of EntityAddress ) Vid mottagande av denna beställning kontrollerar distribuerings- managern först om gruppen av FTI poster som innehàlles i beställningen är icke tom. Om ej, ignoreras beställningen. Annars letar distribueringsmanagern upp FN:n i distribueringstillständs- lO 20 25 30 511 098 28 distribueringsfunktionstabell laddas då in i noden NA. Det antas då att en ny' mottagande entitet eller resurs kallad T50 av funktionstyp F5 skapas, 230. Distribueringsmanagern för NA informerar därpå övriga distribueringsmanagers, exempelvis genom ett broadcast meddelande, om existensen av resurs T50 och att dess funktionstyp är F5, 240. I varje ”gammal” nod undersöks därpå om det finns någon funktionstyp F5 i respektive tabell, 250. Om ja, uppdateras de respektive tillstàndstabellerna i de ”gamla” noderna, 25OA. Om det emellertid inte finns någon sådan post i den ”gamla” noden, är resurser av funktionstyp F5 inte relevanta för den speciella ”gamla” noden, 260. I ett alternativt utföringsexempel kan funktionsty;> F5 introduceras i tillstånds- tabellen i. en gammal nod som inte innehåller någon information alls därom, exempelvis i ett system i vilket det antas att alla noder skall ha information om alla resurser eller om inga uppkopplingsoperationer implementeras.
Figur 7 är ett flödesdiagram som illustrerar fallet när en sàndoperation exekveras av någon resurs i den nya noden i figur 6.
Således exekverar en resurs i NA ett sändmeddelande till typ P5 operationskommando, 310. En sökning utförs då i tillståndstabellen för en post av funktionstyp F5, 320. Om en post hittas, används motsvarande information, 33OA. Om ingen sàndoperation (eller uppkopplingsoperation) har blivit utförd tidigare, kommer ingen post att hittas. Nod NA begär då att distributionsmanagerna i de andra noderna i systemet (i någon. väldefinierad ordning) skall tillhandahålla information relaterande till funktionstyp F5, 340.
När en sådan beställning tas emot i en gammal nod, kommer distributionsmanagern i den gamla noden att undersöka sin tillstàndstabell för att se om det finns någon information om funktionstyp F5, 350. En kontroll utförs då för att se om det kan 10 15 20 25 30 511 098 27 beställningar från andra noder avseende uppdateringar av, eller sökningar efter information i tillståndstabellen. Såsom diskuterats ovan innehåller respektive tillståndstabell information om alla mottagande funktioner eller resurser i form av de läges- tillhör en tillstàndspost som innehåller namnet på funktionen, transparenta namnen på alla nwttagare/resurser som funktionen och ett namn på en distribueringsfunktion. I denna figur illustreras bara funktionstyp 4 och resurserna T45 (i nod 20) respektive T46 (i nod 30). I distribueringsfunktionstabellerna innehàlles inplementeringen av alla distribueringsfunktioner som används i varje nod. Normalt är detta ett så kallat bibliotek som antingen är statiskt eller dynamiskt länkat till programmen som exekverar i noden.
Figur 5 är ett enkelt flödesdiagram som illustrerar sändandet av ett meddelande genom att anropa en sändoperation utan att någon föregående uppkopplingsoperation har anropats. Således anropas en sändoperation som relaterar till sändandet av ett meddelande till 100. en resurs av funktionstyp P6, Distribueringsfunktionenn som är associerad med funktionstyp F6 anropas då implicit, 110.
Distribueringsfunktionen som är associerad med funktionstyp F6 bland 120. väljer därpå en mottagare, dvs. en funktionstypsinstans instanserna av typ F6 i den relevanta tillstàndstabellen, Sàsonl hänvisats till ovan. kan. någon lämplig algoritn1 användas.
Distribueringsfunktionen returnerar därpå den utvalda instansen, och meddelandet sändes till den utvalda instansen, med 130, 140, användning av lägestransparent meddelandekommunikation.
Figur 6 är ett flödesdiagram som illustrerar adderandet av en ny nod till ett system. När en ny nod, här kallad nod NA, adderas, 210, skapas en tillstàndstabell i den nya noden NA, 220. En lO l5 20 25 511 098 30 Resurser kan också avlägsnas från ett system. Det antas här att en hel nod avlägsnas och således också alla resurser/mottagare som finns i den noden. Figur 9 är ett flödesdiagram som schematiskt illustrerar en vilket fall regelrätt nedskalning i resurserna eller mottagarna avlägnas före avlägsnande av själva noden.
Det antas således att en resurs X i nod NR avslägsnas, 610.
Distribueringsmanagern i. noden som skall avlägnas notifieras om avlägsnandet av resurs X, 620. Distribueringsmanagern för nod NR informerar därpå övriga distribueringsmanagers i systemet, exemepelvis genom broadcast av nmtsvarande information, 630. De lokala tillstàndstabeller genom att avlägsna resurs X från varje post i andra distribueringsmanagerna uppdaterar därpå sina vilken den kan förekomma, 640.
Om å andra sidan en oväntad nedskalning inträffar, exempelvis pà grund av ett hàrdvarufel, kan distribueringsmanagern inte sända ut ett broadcast med information om att resurser eller mottagaren på den noden är avlägsnade. Således kan tillståndstabellerna innehålla felaktig information. Det antas emellertid att medel är anordnade för att detektera sådana situationer, såsom exempelvis en övervakningsmekanism eller liknande som är oberoende av själva den funktionsbaserade meddelandeöverföringsmekanismen eller att med fall det detekteras genom att det inte går att kommunicera mottagaren i den avlägsnade noden i vilket distribueringsmanagern för den sändande noden kan skicka ut ett broadcast meddelande med denna information till alla andra distribueringsmanagers. 10 l5 20 25 30 511 098 29 funktionstyp F5, 360. Om ingen hittas post någon post av relaterande till funktionstyç> FS hittas, svarar distribuerings- managern för den berörda noden beställaren med ett meddelande som innehåller informationen att det inte hittats någon post, 360A.
Nästa nod till vilken beställningen om information om funktionstyp F5 kommer dä att vara nästa nod enligt en given ordning, 360B och proceduren fortsätter från steg 340 och framåt tills en post relaterande till funktionstyp F5 hittas i en nod. Denna post sändes dä tillbaka som ett svar till beställaren, dvs. NA, 370.
När NA tar emot ett meddelande med information om enl F5 post, till 380. stoppar den att sända beställningar andra noder och tillständstabellen. i NA uppdateras, Som en del av exekveringen av sändoperationen dras distribueringsfunktionen fràn distribueringsfunktionstabellen med användning av informationen som hittas i den nyligen mottagna tillstàndsposten och distribueringsfunktionen anropas med användning av listan av mottagare fràn tillstàndsposten som argument, 390.
Distribueringsfunktionen väljer dà en mottagare frän tillstàndstabellsposten som ett resultat, 400, och meddelandet sändes till den valda instansen med användning av lägestransparent meddelandeöverföring, 410.
Flödesdiagrammet som illustreras i figur 8 motsvarar det i figur 7 med den skillnaden att den anropade operationen är en uppkopplingsoperation som beskrivits tidigare i ansökan.
Emellertid slutar flödet med det uppdaterande steget, 580, i vilket tillstándstabellen i nod NA uppdateras. Stegen 520-570 är likadana som stegen såsom illustrerade under hänvisning till figur 7. lO 15 20 25 30 511 Û98 32 PATENTKRAV l. Ett distribuerat kommunikationssystenx innefattande ett antal noder (lO,20,30), av vilka vardera innefattar ett antal resurser, och vilka noder är förbundna via ett sammankopplingsnät, där distribuerade tillämpningar exekveras genom sändande av meddelanden mellan resurser i sagda noder, k ä n n e t e c k n a t d ä r a v att resurserna är kategoriserade eller grupperade i ett antal funktionstyper, där resurser som är grupperade till en och samma funktionstyp är funktionellt ekvivalenta åtminstone i en given utsträckning så att ett antal funktionstypsinstanser, som vardera emot en svarar tillhandahålles för (lO,20,30) speciell resurs, varje funktionstyp, hållande medel att varje nod innehåller informations- (l1;2l;4OA,40B,4OC) som håller information om vilka resurser/funktionstypsinstanser som svarar emot en given funktionstyp och att distribueringsfunktioner är associerade med informationshållande medel sagda och (ll;2l;4OA,4OB,4OC), distribueringsfunktioner för' att välja en rmottagande funktions- typsinstans ibland de i de (ll;2l;4OA,4OB,4OC) informationshållande medlen tillgängliga instanserna, där en resurs i en sändande nod som sänder ett meddelande endast anger funktionstypen för resursen som adressinformation och att distribuerings- funktionen väljer vilken resurs/funktionstypinstans som skall vara mottagaren bland de funktionstypsinstanser som är associerade med den ingivna funktionstypen så att meddelanden ifrån en sändande resurs sändes oberoende av såväl läget för resurserna med vilka en sändande resurs kommunicerar som oberoende av numren och namnen därpå. 511 098 31 Uppfinningen är givetvis inte begränsad till de visade utförings- exemplen utan den kan varieras pà ett antal sätt inom ramen av vidhängande patentkrav.

Claims (1)

1. 5 20 25 30 511 098 34 att distribueringsfunktionen exekverar i samma sammanhang som den sändande resursen. 7. Ett distribuerat kommunikationssystem enligt patentkrav 6, k ä n n e t e c k n a t d ä r a v att distribueringsfunktionen är specifik för en speciell tillämpningsfunktion och, att den förses och registreras av' en speciell tillämpningsfunktion. 8. Ett distribuerat kommunikationssystem enligt patentkrav 6, k ä n n e t e c k n a t d ä r a v att ett antal distribueringsfunktioner är fördefinierade. 9. Ett distribuerat kommunikationssystem enligt nàgot av föregående patentkrav, k ä n n e t e c k n a t d ä r a v att en resurs som avser att sända ett meddelande till en given funktionstyp anropar en sändoperation som innehåller information om meddelandet och funktionstypen. 10. Ett distribuerat kommunikationssystem enligt nàgot av föregående patentkrav, k à n n e t e c k n a t d ä r a v att genom att anropa en uppkopplingsoperation för vardera av ett antal funktionstyper med vilka en nod avser kommunicera, skapas en allmän hänvisning för följande sändoperationskommandon. ll. Ett distribuerat kommunikationssystem enligt nàgot av föregàende patentkrav, k ä n n e t e c k n a t d ä r a v 10 15 20 25 30 511 098 33 2. Ett distribuerat kommunikationssystem enligt patentkrav 1, k ä n n e t e c k n a t d ä r a v att resurserna innefattar processresurser och/eller in-/utresurser och/eller lagringsresurser. 3. Ett distribuerat kommunikationssystem enligt patentkrav 1 eller 2, k ä n n e t e c k n a t d ä r a v att de informationshållande medlen (1l;2l;4OA,4OB,4OC) (kontinuerligt) uppdateras så att i varje nod (lO,20,30) information om vilka resurser för åtminstone ett antal funktionstyper som aktuellt är tillgängliga för meddelanden som adresserar motsvarande funktionstyper så att information om tillagda/ avlägsnade noder tillhandahålles, vilket således gör tillämpningen som sänder meddelandet skalningsbart. 4. Ett distribuerat kommunikationssystem enligt något av föregående patentkrav, k ä n n e t e c k n a t d ä r a v att det informationsbàrande protokollet är TCP/IP. 5. Ett distribuerat kommunikationssystem enligt något av föregående patentkrav, k à n n e t e c k n a t d ä r a v att meddelanden sändes vidare av distribueringsfunktionen till en utvald resurs/funktionstypsinstans med användning av vanlig lägestransparent meddelandeöverföring. 6. Ett distribuerat kommunikationssystem enligt något av föregående patentkrav, k ä n n e t e c k n a t d ä r a v 10 15 20 25 30 511 098 36 resurser/funktionstypsinstanser som år tillgängliga för vardera av ett antal funktionstyper. 16. Ett distribuerat kommunikationssystem enligt patentkrav 15, k ä n n e t e c k n a t d ä r a v att för varje funktionstyp i distribueringstillstàndstabellen (2l;4lA,4lB,4lC) ett funktionshanterarmedel (223) är anordnat som innehåller funktionstypsnamn, associerad distiribueringsfunktion och funktionstypsinstanserna/resurserna, inkluderande åtminstone instansnamn. 17. Ett distribuerat kommunikationssystenl enligt något av föregående patentkrav, k ä n n e t e c k n a t d ä r a v att en distribuerad funktion kan skalas utan att tillämpningen behöver skrivas om eller omkompileras. 18. Ett distribuerat kommunikationssystem enligt något av föregående patentkrav, k à n n e t e c k n a t d ä r a v att för att upprätthålla koherent information i (alla) noder, tillhandahålles en separat exekverande distribueringstjänst (43A,43B,43C). 19. En nod i. ett distribuerat kommunikationssystem innefattande ett antal resurser och kommunicerande med. andra noder via ett sammankopplingsnät, k à n n e t e c k n a d d ä r a v att resurserna i systemet år grupperade i ett antal funktionstyper där resurser som är grupperade till samma funktionstyp bildar funktionstypsinstanser av sagda funktionstyp och åtminstone i en lO 15 20 25 30 511 098 35 att funktionaliteten för den distribuerade applikationen som sänder meddelanden. är frànkopplad från. konfigurationen hos den distribuerade tillämpningen. 12. Ett distribuerat kommunikationssystem åtminstone enligt patentkrav 3, k ä n n e t e c k n a t d à r a v att antalet resurser/funktionstypsinstanser varierar under körtid så att systemet automatiskt skalas, möjliggörande användning av nya adderade resurser/anpassning till förlust av en eller flera resurser. 13. Ett distribuerat kommunikationssystem enligt något av föregående patentkrav, k à n n e t e c k n a t d ä r a v att en funktionstyp anges genom associering med ett globalt namn och att alla instanser av samma funktionstyp exekverar samma funktion. 14. Ett distribuerat kommunikationssystem åtminstone enligt patentkrav 9, k ä n n e t e c k n a t d ä r a v att distribueringsfunktionen tillhandahàlles av en tillämpning och anropas av sändoperationen. 15. Ett distribuerat kommunikationssystem enligt något av föregående patentkrav, k ä n n e t e c k n a t d ä r a v att de informationshållande nædlen (11;2l;4OA,4OB,4OC) innehåller en distribueringstillstàndstabell (2l;41A,4lB,4lC) och en distribueringsfunktionstabell (223;42A,42B,42C) som innehåller de 10 l5 20 25 30 511 098 38 23. Förfarande för att sända meddelanden i ett distribuerat kommunikationssystem innehållande ett antal noder som är förbundna genom ett sammankopplingsnät, där varje nod innehåller ett antal resurser, k ä n n e t e c k n a t d ä r a v att det innefattar stegen att: - gruppera resurserna i systemet i ett antal funktionstyper beroende pá funktionalitet, - lagra information om resurserna som är grupperade beroende pà funktionalitet i informationshàllande medel i varje nod, - ange funktionsypen som adressinformation. när ett meddelande skall sändas till en resurs av en given funktionstyp, - anropa en distribueringsfunktion, där - sagda använder distribueringsfunktion meddelandet, informationen i de informationshàllande medlen och valfri tillämpnings-definierad information för att välja en speciell instans, - returnera den utvalda instansen, - sända meddelandet lägestransparent till den utvalda instansen. 24. Ett förfarande enligt patentkrav 23, k ä n n e t e c k n a t d ä r a v att det dessutom innefattar steget att kontinuerligt uppdatera de informationshàllande medlen sà att i varje nod finns information om vilka speciella funktionstypsinstanser för åtminstone ett antal funktionstyper som aktuellt är tillgängliga för meddelanden som funktionstyperna, sà att adresserar de motsvarande UPP' /nedskalning under körtid möjliggörs. 25. Ett förfarande för att tillhandahålla kommunikation bland tillämpningar som exekverar i resurser belägna i ett antal olika lO 15 20 25 30 511 098 37 given utsträckning är funktionellt ekvivalenta, och att informationshàllande medel (ll;2l;4OA,4OB,4OC) är anordnade för att hälla information om vilka resurser/funktionstypsinstanser som svarar emot en given funktionstyp och att dessutom ett antal distribueringsfunktioner är associerade med sagda informationshàllande medel (l1;2l;4OA,4OB,40C), där sagda används för att vilken skall bli distribueringsfunktioner välja resurs/funktionstypsinstans som mottagaren av ett speciellt meddelande och att bara funktionstyps-information anges som adressinformation när en nod sänder ett meddelande. 20. En nod enligt patentkrav 19, k ä n n e t e c k n a d d ä r a v att lägestransparent meddelandeöverföring används för att sända ett meddelande till en utvald funktionstypsinstans. 21. En nod enligt patentkrav 19 eller 20, k ä n n e t e c k n a d d ä r a v att de informationshàllande medlen (11;2l;40A,4OB,4OC) innehåller en distribueringstillstàndstabell (l1;2l;41A,41B,4lC) som innehåller de resurser eller funktionstypsinstanser som är tillgängliga för vardera av ett antal funktionstyper. 22. En nod enligt patentkrav 21, k ä n n e t e c k n a d d ä r a v att för varje funktionstyp i distribueringstillstàndstabellen (1l;2l;4lA,4lB,4lC) ett funktionshanterande medel (223) är anordnat som innehåller funktionstypsnamn, associerad distribueringsfunktion och funktionstypsinstanser inkluderande àmtinstone instansnamn för varje instans. lO 15 511 098 39 noder i ett nät som sammankopplar sagda noder, där de aktuella nodlägena är transparenta för tillämpningarna, k à n n e t e c k n a t d ä r a v att det innefattar stegen att: hälla information i lagringsmedel i varje nod om resurser vilka, beroende pà dess funktionalitet, är grupperade till ett antal funktionstyper, accessa en distribueringsfunktion genom att ange funktionstypen för en resurs som är avsedd som en mottagare av ett meddelande, där sagda distribueringsfunktion använder informationen i de informationshàllande medlen som är relaterad till sagda funktionstyp, meddelandet och en urvalsalgoritm för att välja en speciell funktionstypsinstans som mottagare av meddelandet, sända meddelandet till den utvalda funktionstypsinstansen med användning av lägestransparent meddelandeöverföring.
SE9704565A 1997-12-08 1997-12-08 Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem SE511098C2 (sv)

Priority Applications (6)

Application Number Priority Date Filing Date Title
SE9704565A SE511098C2 (sv) 1997-12-08 1997-12-08 Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem
JP2000524892A JP2001526436A (ja) 1997-12-08 1998-11-30 通信システムおよび通信システムにおけるメッセージ送信方法
GB0016200A GB2348348B (en) 1997-12-08 1998-11-30 Communication system and method of sending messages in a communication system
AU17909/99A AU751820B2 (en) 1997-12-08 1998-11-30 Communication system and method of sending messages in a communication system
PCT/SE1998/002177 WO1999030456A2 (en) 1997-12-08 1998-11-30 A method and apparatus relating to messaging in a distributed communication system
US09/207,887 US6415333B1 (en) 1997-12-08 1998-12-08 Distributed communication system with categorized resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9704565A SE511098C2 (sv) 1997-12-08 1997-12-08 Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem

Publications (3)

Publication Number Publication Date
SE9704565D0 SE9704565D0 (sv) 1997-12-08
SE9704565L SE9704565L (sv) 1999-06-09
SE511098C2 true SE511098C2 (sv) 1999-08-02

Family

ID=20409301

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9704565A SE511098C2 (sv) 1997-12-08 1997-12-08 Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem

Country Status (6)

Country Link
US (1) US6415333B1 (sv)
JP (1) JP2001526436A (sv)
AU (1) AU751820B2 (sv)
GB (1) GB2348348B (sv)
SE (1) SE511098C2 (sv)
WO (1) WO1999030456A2 (sv)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704782B1 (en) * 1999-12-09 2004-03-09 International Business Machines Corporation System and methods for real time progress monitoring in a computer network
US7454516B1 (en) * 2000-08-03 2008-11-18 Microsoft Corporation Scalable virtual partitioning of resources
US7644408B2 (en) * 2003-04-25 2010-01-05 Spotware Technologies, Inc. System for assigning and monitoring grid jobs on a computing grid
US7747717B2 (en) * 2003-08-14 2010-06-29 Oracle International Corporation Fast application notification in a clustered computing system
US20060064400A1 (en) * 2004-09-21 2006-03-23 Oracle International Corporation, A California Corporation Methods, systems and software for identifying and managing database work
US7664847B2 (en) * 2003-08-14 2010-02-16 Oracle International Corporation Managing workload by service
US6985089B2 (en) * 2003-10-24 2006-01-10 Palo Alto Reserach Center Inc. Vehicle-to-vehicle communication protocol
US7467384B2 (en) * 2004-02-20 2008-12-16 Microsoft Corporation Uniform resource discovery with multiple computers
US7461054B2 (en) * 2004-02-20 2008-12-02 Microsoft Corporation Uniform resource discovery and API layering
GB0408868D0 (en) 2004-04-21 2004-05-26 Level 5 Networks Ltd Checking data integrity
GB0506403D0 (en) 2005-03-30 2005-05-04 Level 5 Networks Ltd Routing tables
EP3217285B1 (en) * 2005-03-10 2021-04-28 Xilinx, Inc. Transmitting data
GB0505300D0 (en) 2005-03-15 2005-04-20 Level 5 Networks Ltd Transmitting data
US8245230B2 (en) * 2005-03-14 2012-08-14 Qnx Software Systems Limited Adaptive partitioning scheduler for multiprocessing system
CA2538503C (en) 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
US9361156B2 (en) 2005-03-14 2016-06-07 2236008 Ontario Inc. Adaptive partitioning for operating system
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US8973008B2 (en) * 2005-05-10 2015-03-03 Oracle America, Inc. Combining different resource types
GB0600417D0 (en) 2006-01-10 2006-02-15 Level 5 Networks Inc Virtualisation support
US8713186B2 (en) * 2007-03-13 2014-04-29 Oracle International Corporation Server-side connection resource pooling
JP5663339B2 (ja) * 2011-02-15 2015-02-04 ヤンマー株式会社 データ収集装置及びそれを備えたシステム
US8898289B1 (en) * 2011-03-22 2014-11-25 Netapp, Inc. Distributed event processing method and architecture
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
CN111367669B (zh) * 2020-03-02 2023-08-15 北京小米松果电子有限公司 一种确定最优运算通路的方法、装置及介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694396A (en) * 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
EP0201063B1 (en) * 1985-05-06 1993-07-07 Computer X, Inc. Method of locating processes in a distributed data processing system
EP0201065A3 (en) * 1985-05-06 1989-08-16 Computer X, Inc. Virtual single machine with logical ring and with message-like hardware interrupts and processor exceptions
US5133053A (en) * 1987-02-13 1992-07-21 International Business Machines Corporation Interprocess communication queue location transparency
US5742848A (en) * 1993-11-16 1998-04-21 Microsoft Corp. System for passing messages between source object and target object utilizing generic code in source object to invoke any member function of target object by executing the same instructions
JP3738787B2 (ja) * 1995-10-19 2006-01-25 富士ゼロックス株式会社 資源管理装置及び資源管理方法
US5848272A (en) * 1996-06-04 1998-12-08 Lucent Technologies Inc. Object-oriented intra-process messaging arrangement for windows environments
US6049838A (en) * 1996-07-01 2000-04-11 Sun Microsystems, Inc. Persistent distributed capabilities
US5995999A (en) * 1997-03-12 1999-11-30 Fujitsu Limited Naming system for hierarchically named computer accessible objects

Also Published As

Publication number Publication date
AU751820B2 (en) 2002-08-29
SE9704565L (sv) 1999-06-09
US6415333B1 (en) 2002-07-02
JP2001526436A (ja) 2001-12-18
WO1999030456A3 (en) 1999-08-26
GB2348348B (en) 2003-07-09
GB0016200D0 (en) 2000-08-23
GB2348348A (en) 2000-09-27
AU1790999A (en) 1999-06-28
WO1999030456A2 (en) 1999-06-17
SE9704565D0 (sv) 1997-12-08

Similar Documents

Publication Publication Date Title
SE511098C2 (sv) Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem
US6078955A (en) Method for controlling a computer system including a plurality of computers and a network processed as a user resource
EP2002343B1 (en) Multi-cache cooperation for response output caching
JP2983167B2 (ja) ネットワーク・インタフェース装置およびネットワーク・インタフェースにおけるパケット処理方法
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
US6442568B1 (en) Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment
EP0471442B1 (en) Method for implementing server functions in a distributed heterogeneous environment
JP4799668B2 (ja) リソースデータを要求側プロセスに対してアクセス可能にする方法
US6687831B1 (en) Method and apparatus for multiple security service enablement in a data processing system
US7035902B1 (en) Method, article of manufacture and apparatus for processing an electronic mail document
US9189303B2 (en) Shadow queues for recovery of messages
JPH07101407B2 (ja) スケジユーリング方法及び装置
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
CN1689298B (zh) 用于自主计算的合成服务
CN103312624A (zh) 一种消息队列服务系统和方法
EP2335153A1 (en) Queue manager and method of managing queues in an asynchronous messaging system
US6865741B1 (en) Determining completion of transactions processing in a dynamically changing network
US5790868A (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
US20100070366A1 (en) System and method for providing naming service in a distributed processing system
JP4690987B2 (ja) ネットワーク経由のデータバックアップシステム及びそのための計算機
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
CN104580428A (zh) 一种数据路由方法、数据管理装置和分布式存储系统
US5848272A (en) Object-oriented intra-process messaging arrangement for windows environments
US20060117319A1 (en) Connection of an application to a resource manager selected from a plurality of resource managers
JP4060890B2 (ja) 階層化ドライバ入出力システム内の複数ドライバによる入出力要求の再処理を可能にするファイル・システム・プリミティブ

Legal Events

Date Code Title Description
NUG Patent has lapsed