SE517816C2 - Metod och anordning för en applikation - Google Patents

Metod och anordning för en applikation

Info

Publication number
SE517816C2
SE517816C2 SE0003925A SE0003925A SE517816C2 SE 517816 C2 SE517816 C2 SE 517816C2 SE 0003925 A SE0003925 A SE 0003925A SE 0003925 A SE0003925 A SE 0003925A SE 517816 C2 SE517816 C2 SE 517816C2
Authority
SE
Sweden
Prior art keywords
application
existing
name
server unit
mapping
Prior art date
Application number
SE0003925A
Other languages
English (en)
Other versions
SE0003925D0 (sv
SE0003925L (sv
Inventor
Magnus Jaendel
Roland Karlsson
Original Assignee
Terraplay Systems Ab
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 Terraplay Systems Ab filed Critical Terraplay Systems Ab
Priority to SE0003925A priority Critical patent/SE517816C2/sv
Publication of SE0003925D0 publication Critical patent/SE0003925D0/sv
Priority to AU2001296187A priority patent/AU2001296187B2/en
Priority to CN01818055.8A priority patent/CN1257634C/zh
Priority to KR10-2003-7005683A priority patent/KR20030079922A/ko
Priority to JP2002538644A priority patent/JP2004512622A/ja
Priority to PCT/SE2001/002310 priority patent/WO2002035796A1/en
Priority to AU9618701A priority patent/AU9618701A/xx
Priority to IL15531601A priority patent/IL155316A0/xx
Priority to EP01977037A priority patent/EP1334597A1/en
Priority to US10/415,013 priority patent/US6935960B2/en
Publication of SE0003925L publication Critical patent/SE0003925L/sv
Publication of SE517816C2 publication Critical patent/SE517816C2/sv
Priority to NO20031868A priority patent/NO20031868L/no

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Information Transfer Between Computers (AREA)

Description

517 816 2 I beskrivningen och patentkraven finns en applikationssession definierad som en distribuerad datorprocess som bearbetar en virtuell miljö i nätverket.
Denna virtuella miljö innehåller applikationsobj ekt som har en innebörd för den mänskliga användaren, såsom avatarer som är kontrollerade av människor; avatarer kontrollerade av en artificiell intelligens (AI); avatarer delvis kontrollerade av människor och delvis av en AI; förutbestämda roller i ett spel som kan växla mellan användare, t ex kung, krigare, idrottsman och reporter; objekt i den virtuella milj ön; ägodelar tillhörande objekt och avatarer; grupper och lag med avatarer; grupper med objekt; grupper innehållande grupper; platser i den virtuella miljön; mediaströmmar, t.ex. tal och video; och samlingar av mediaströmmar. En avatar är en figur som representerar spelaren i applikationen och oftast visas som en grafisk ikon. Vanligtvis kan en spelare, när denne går med i spelet/applikationen, välja mellan ett antal fantasifulla figurer via klienten. Sofistikerade 3D-avatarer kan t.o.m. ändra skepnad beroende på vad de gör och används till, exmpelvis i spel och på 3D- chattwebbplatser på Intemet. Applikationsobj ekten kan ha namn inom applikationen, vilka hädanefter är refererade till som ”applikationsnamn”.
Dessa används av användarna och/eller av applikationen i syfte att referera till applikationsobjekt. Applikationsnamn är ofta mycket långa. I en distribuerad applikation är det nödvändigt applikationsnamnen är unika inom en session.
Algoritmer för att generera sessionsunika applikationsnamn resulterar ofta i långa applikationsnamn. Det kan också vara av betydelse att applikationsnamnen är meningsfulla för människorna. Korta koder är vanligtvis mindre meningsfulla än långa applikationsnamn. 517 816 Syfte med uppfinningen Ett syfte med föreliggande uppfinning är att spara bandbredd i kommunikationsnätverket.
Ytterligare ett mål med uppfinningen är att möjliggöra världsomspännande fleranvändarsessioner i en mode där användarna är synkroniserade till varandra, vilket gör att en central server därmed inte är nödvändig.
Sammanfattning av uppfinningen Föreliggande uppfinning behandlar ett system för minst en fleranvändarapplikation vilken är distribuerad i ett kommunikationsnätverk, innefattande användarterminaler; åtminstone en första-serverenhet för lagring och mottagande av applikationsdata och distribuering av applikationsdataenheter till användarterminalerna; åtminstone en andra-serverenhet för att generera innehållet till applikationssessionen och sända åtminstone en del av nämnda innehåll till åtminstone en av användarterminalerna; och åtminstone en tredje-serverenhet innefattande åtminstone något lagringsmedel för lagring av applikationsnamn använda enbart i en applikationssession för ett applikationsobjekt under applikationssessionen, och för lagring av taggvärden anpassade för applikationsdataenheter för sändning av applikationsdata i kommunikationsnätverket, och medel för mappning av åtminstone ett av taggvärdena mot åtminstone ett av applikationsnamnen. Härigenom uppnås att långa applikationsnamn, som har någon innebörd för de människor som är användare, kan användas under 517 816 själva applikationssessionen, medan korta koder, dvs. taggvärden, som inte har någon innebörd eller ens är läsbara för människor, används vid sändning av applikationsdataenheter, dvs. paket med applikationsinforrnation som används under en applikationssession, till speldeltagare och olika servrar. Dessutom uppnås att applikationen kan skrivas på sådant sätt att endast interna applikationsnamn används for att referera till objekt i applikationen, oberoende av det kommunikationsprotokoll som används i _ kommunikationsnätverket. Taggvärdena är siffror som representerar applikationstaggar. En applikationstagg är en kod som används för att routa skickade applikationsobjekt eller for att ñnna lagrade applikationsobjekt. En applikationstagg kan vara ett fält i huvudet på en applikationsdataenhet, men kan också vara ett fält i huvudet på vilket datagram eller kommunikationsprotokollspaket som helst. Det består därför av en uppsättning bitar. Applikationstaggen är av en viss typ, vilken är markerad genom motsvarande fälts position i protokollet, eller genom flaggor i protokollet, vilka indikerar typ av applikationstagg. I det alternativ då en applikationstagg utgörs av ett fält i ett generellt kommunikationsprotokoll, kan det vara en nätverksadress, en multicast-adress eller ett portnummer. I den ovan anförda referensen är applikationstaggen en obj ektidentifierare, en klientidentifierare, i en gruppidentifierare eller en strömobjektnyckel. Applikationstaggarna är så korta som möjligt för att hålla applikationens erforderliga bandbredd så låg som möjligt i kommunikationsnäwerket, men längden hos applikationstaggarna är beroende av t.ex. typ av applikation och antalet tillåtna samtidiga användare av applikationen.
Systemet bör helst innefatta en separat router för att routa applikationsdataenheter enligt applikationstaggarna som finns i var och en av applikationsdataenheterna. lO 517 816 Systemet innefattar lämpligen åtminstone en fjärde-server, för etablering av applikationssessionen, och till vilken användarna registrerar sig, och åtminstone en femte-server för att kontrollera och administrera applikationssessionen och reservera lagringsmedel för applikationens sessionsclata och/eller applikationsdataenheter.
Användarterminalerna innefattar med fördel medel för att bearbeta åtminstone en applikationsklient var, där åtminstone en applikationsklient innefattar medel för abonnemang, mottagande och bearbetning av taggade applikationsdataenheter och sändning av taggade applikationsdataenheter.
Härigenom uppnås att varje användare vid varje tidpunkt endast mottar det applikationsdata som behövs for att exempelvis på skärmen presentera en vyi en virtuell miljö, med användande av ett minimum av kommunikationsbandbredden.
Varje användarterminal innefattar lämpligen medel för att motta inmatade värden från en användare och medel för att visa applikationens utdata, såsom grafik, video, ljud eller haptik. Härigenom kan systemet användas till ett stort antal olika typer av fleranvändarapplikationer med olika utdata till deltagare i en applikationssession.
Föreliggande uppfinning behandlar också en serverenhet för en fleranvändarapplikation distribuerad i ett kommunikationsnätverk, innefattande åtminstone något medel för lagring av applikationsnamn använda endast i en applikationssession för ett applikationsobjekt under applikationssessionen, och för lagring av taggvärden anpassade till applikationsdataeneheter för sändning av applikationsdatai kommunikationsnätverket, och 517 816 mappingsmedel for mappning av åtminstone ett av applikationsnamnen mot åtminstone ett av taggvärdena.
I en forsta utforingsforrn av serverenheten, mappar mappningsverktyget ett av applikationsnamnen mot ett av taggvärdena.
I en andra utforingsform av serverenheten, mappar mappningsverktyget mer än ett av applikationsnamnen mot ett av taggvärdena.
I en tredje utforingsforrn av serverenheten, mappar mappningsverktyget ett av applikationsnamnen mot mer än ett av tagvärdena.
Applikationsobjektet är lämpligen en avatar for en mänsklig användare eller en artificiell intelligens och applikationssessionen är en spelsession i ett datorspel for flera användare. Alternativt är applikationssessionen en videokonferens för flera deltagare med avatarer som representerar deltagarna och en möjlig AI.
Serverenheten innefattar helst åtminstone en databas, vilken är lagrad i medel for lagring, och innefattar taggvärdena och applikationsnamnen. En databas är i beskrivningen och i patentkraven definierad som en samling information organiserad på sådant sätt att ett mappningsverktyg kan välja ut önskade delar med data.
“Medel for mappning utgörs med fördel av ett databashanteringssystem for applikationssessionen.
Lämpligen är åtminstone något existerande medel för lagring anpassat for att lagra åtminstone ett ägarnamn for en ägare av åtminstone ett existerande 517 816 applikationsnamn, och medel för mappning är anpassat för mappning av åtminstone ett ägarnamn mot åtminstone ett av taggvärdena. Dessutom behandlar föreliggande uppfinning en metod för en server att mappa applikationsnamn mot taggvärden för åtminstone en fleranvändarapplikation distribuerad i ett kommunikationsnätverk, där taggvärdena är använda för adressering och routning av applikationsdataenheter för att såndna applikationsdata i kommunikationsnåtverket. Metoden innefattar stegen: lagring av taggvärden i åtminstone ett lagringsmedel för en applikationssession, mottagande av åtminstone ett applikationsnamn vilket är ämnat att användas för ett applikationsobjekt under applikationssessionen; i mappning av åtminstone ett existerande applikationsnamn mot åtminstone ett av taggvärdena; lagring av åtminstone ett existerande applikationsnamn i åtminstone något existerande medel för lagring; sändning av åtminstone ett existerande taggvärde till åtminstone en mottagarnod i kommunikationsnätverket.
Metoden innefattar med fördel också steget att svara på förfrågningar från åtminstone en användare angående mappningen av åtminstone ett existerande applikationsnamn mot åtmistone något av de existerande taggvärdena, när åtminstone en existerande användare känner till åtminstone ett existerande applikationsnamn, eller svara på förfrågningar från åtminstone en existerande användare angående mappningen av åtminstone ett existerande taggvärde mot åtminstone ett existerande applikationsnamn, när åtminstone en existerande användare känner till åtminstone något av de existerande tagvärdena.
Lagringen av vart och ett av taggvärdena görs helst i en separat databaspost i åtminstone en databas, innefattad i åtminstone något medel för lagring. 517 816 Lagringen av åtminstone ett existerande applikationsnamn görs lämpligen i ett fält i samma databaspost som åtminstone ett av de existerande tagvärdena, mot vilket åtminstone ett existerande applikationsnamn är mappat. Åtminstone ett existerande applikationsnamn mottas med fördel från en applikationsklient för att delta i applikationssessionen. Applikationsklienten är definierad i den specifika beskrivningen.
Dessutom kan metoden innefatta steget som innebär mottagande av ett ägarnamn för en ägare av åtminstone ett existerande applikationsnamn; mappning av ägarnamnet mot åtminstone ett av tagvärdena; och lagring av ägarnarrmet i åtminstone ett existerande medel för lagring.
Metoden innefattar lämpligen steget: svara på förfrågningar från åtminstone en användare angående mappning av ägarnamnet mot åtminstone ett existerande taggvärde när åtminstone en existerande användare känner till ägarnamanet, eller svara på förfrågningar från åtminstone en existerande användare angående mappningen av åtminstone ett existerande taggvärde mot ägarnamnet när åtminstone en existerande användare känner till åtminstone ett existerande taggvärde.
Dessutom behandlar föreliggande uppfinning ett datorprogram för fleranvändarapplikation, distribuerat i ett kommunikationsnätverk, innefattande medel för datorläsbara koder som får en serverenhet att motta åtminstone ett applikationsnamn som är ämnat att användas för ett applikationsobjekt under en applikationssession; medel för datorläsbara koder för att få en serverenhet att mappa åtminstone ett existerande applikationsnamn mot åtminstone ett av ett flertal taggvärden vilka är lagrade i åtminstone något medel för lagring i serverenheten och 517 816 9 anpassade till applikationsdataenheter for sändning av applikationsdata i kommunikationsnätverket; och medel for datorläsbara koder for att få serverenheten att lagra åtminstone ett existerande applikationsnamn i åtminstone något existerande medel for lagring.
Datorprogrammet innefattar helst medel for datorläsbara koder for att få serverenheten att sända åtminstone ett existerande taggvärde till åtminstone en mottagarnod i kommunikationsnätverket, och medel for datorläsbara koder for att få serverenheten att lagra åtminstone ett existerande applikationsnamn i åtminstone en databas, innefattad i åtminstone ett existerande lagringsmedel.
Datorprogrammaet innefattar lämpligen medel for datorläsbara koder for att få serverenheten att lagra åtminstone ett existerande applikationsnamn i åtminstone ett fält i åtminstone en databaspost i åtminstone en databas, där åtminstone en existerande databaspost innefattar ett fält för åtminstone ett existerande taggvärde mot vilket åtminstone ett existerande applikationsnamn är mappat.
Datorprogrammet innefattar helst medel for datorläsbara koder for att få serverenheten att svara på förfrågningar från åtminstone en användare angående mappníngen av åtminstone ett existerande applikationsnamn mot åtminstone ett existerande taggvärde när åtminstone en existerande användare känner till åtminstone ett existerande applikationsnamn, och medel for datorläsbara koder for att få serverenheten att besvara förfrågningar från åtminstone en existerande användare angående mappníngen av åtminstone ett existerande taggvärde mot åtminstone ett existerande 517 816 applikationsnamn när åtminstone en existerande användare känner till åtminstone ett existerande taggvärde.
Datorprogrammet innefattar med fördel medel for datorläsbara koder för att få serverenheten att motta ett ägarnamn till en ägare av åtminstone ett existerande applikationsnamn; medel for datorläsbara koder for att få serverenheten att att mappa ägarnamnet mot åtminstone ett existerande taggvärde; och medel för datorläsbara koder för att få serverenheten att lagra ägarnamnet i åtminstone ett existerande medel for lagring.
Datorprogrammet innefattar lämpligen medel for datorläsbara koder for att få serverenheten att svara på förfrågningar från åtminstone en användare angående mappning av ägamamnet mot åtminstone ett av de existerande taggvärdena när åtminstone en existerande användare känner till ägarnamnet, och medel for datorläsbara koder for att få serverenheten att besvara förfrågningar från åtminstone en existerande användare angående mappningen av åtminstone ett existerande taggvärde mot ägarnamnet när åtminstone en existerande användare känner till åtminstone ett existerande taggvärde.
Föreliggande uppfinning behandlar också en datorprogramprodukt innefattande ett för datorer användbart medium, och datorprogrammet, vilket är lagrat på det nämnda mediet. Datorprogramprodukten kan vara en hårddisk, CD-skiva, DVD-skiva, diskett, band, flash-minne etc. du 517 816 ll Översiktlig beskrivning av ritningarna Objekten, fördelarna och effekterna, likväl som de speciella funktionerna hos föreliggande uppfinning kan bättre förstås genom följande detaljerade beskrivning av en föredragen metod, likväl som utföringsformer, när de läses tillsammans med tillhörande ritningar, i vilka: Fig. 1 visar en utföringsforrn av ett kommunikationsnätverk i enlighet med uppfinningen, Fig 2. visar ett paket med en applikationsdataenhet; Fig. 3 visar ett schematiskt diagram av en server i enlighet med uppfinningen, Fig. 4 illustrerar en databaspost i en databas i servern, V Fig. 5 visar ett flödesdiagram för en operation för att hämta namnet på en given applikatiostag, och Fig. 6 visar ett flödesschema för en annan möjlig operation i enlighet med uppfinningen Detaljerad beskrivning av utföringsformer Eftersom uppfinningen täcker olika modifieringar och alternativa konstruktioner, visas föredragna utföringsformer av uppfinningen i ritningarna och beskrivs hädanefter i detalj. Det bör emellertid klargöras att den specifika beskrivningen och ritningarna inte är ämnade att begränsa uppfinningen till just dessa framställda former. Tvärtom är det tänkt att uppfinningen, som här görs anspråk på, skall omfatta alla varianter och alternativa metoder som faller inom ramen för uppfinningen, såsom den beskrivs i de bifogade patentkraven, i dess fulla utsträckning.
Vissa av enheterna och elementen, vilka är presenterade och diskuterade i denna applikation, är diskuterade mer i detalj i de samtidigt väntande 517 816 12 applikationerna SE-. .. och SE-. . ., vilka härmed är refererade till i sin helhet för alla upptänkliga orsaker.
Ett paketorienterat kommunikationsnätverk 1, som exempelvis Internet, i syfte att tillhandahålla ett nätverk i enlighet med en första utforingsforrn av uppfinningen, är schematiskt framställd i F ig. 1. Kommunikationsnätverket l innefattar kommunikationslänkar och routrar for universella kommunikationsprotokoll, exempelvis Intemet-protokoll. Dessa länkar och routrar, och även servrar som inte ingår i föreliggande uppfinning, är ej illustrerade, i syfte att ge en bättre förståelse för uppfinningen. För att stödja applikationssessioner i nätverksmiljö för flera användare, innefattas i kommunikationsnätverket flera noder.
En första-nöd innefattar en första-serverenhet 2 i form av en applikationsserver (AS) vilken lagrar och tar emot applikationsdata. AS distribuerar applikationsdata till applikationsklienter i enlighet med förfrågningar, begäranden eller abonnemang. Sådana förfrågningar, begäranden eller abonnemang kan uttryckas i termer av abonnemang på applikationsdataenheter bärande applikationstaggar, vilket förklaras senare.
En andra-nod innefattar en applikationsrouter 3 (AR). AR 3 routar applikationsdataenheter, dvs. vidarebefordrar applikationsdataenheterna till sina destinationer. Routningen sker i enlighet med applikationstaggarna, vilka finns i varje applikationsdataenhet. AR 3 mottar paket innehållande applikationsdataenheter från kommunikationsnätverket l. Dessutom läser AR 3 applikationsdataenhetemas applikationstaggar och ätersänder applikationsdataenheterna över kommunikationsnätverk 1 med en nätverksadress som är beroende av applikationstaggarna, och möjligtvis även av klientabonneman get. 517 816 13 En tredje-nod innefattar en andra-serverenhet 4 i form av en server som genererar applikationsinnehåll (ACGS). ACGS genererar innehållet till en applikationssession. I en utföringsform som endast används som exempel, är ACGS en spelserver i fleranvändarspel, vilken tar beslut om mord, kollisioner och skada. Den kan även vara ansvarig för flyende avatarer. Vid ingång till systemet för applikationen kan ett antal avatarer väljas. ACGS kan också vara ansvarig för att styra springande avatarer som verkar vara människokontrollerade, men som sköts av en Al. ACGS mottar och bearbetar applikationsdataenheter och sänder applikationsdataenheter som innehåller applikationstaggar.
En fjärde-nöd for en terminal 5 i form av en användarterminal, såsom en spelkonsol eller persondator (PC), är ansluten till kommuniktaionsnätverket via en applikationsklient 6 (AC). AC 6 är en lokal instans av en datorprocess, vilken simulerar den virtuella nåtverksmiljön, och kan exempelvis vara en Windows-/I-JNIX-process eller tråd. En datorprocess kan köras på en eller flera AC 6. AC 6 är därför en logisk instans av ett spel eller simulering och är inte alltid identisk med någon specifik datorprocess, tråd, program eller maskin. Exempelvis har datorn eller spelkonsolen, som kör AC 6, medel att ta emot indata från användaren och visar utdata från applikationen som haptik, dvs. taktilt data; grafik; video eller ljud. AC 6 kan abonnera på, motta och bearbeta taggade applikationsdataenheter och sända taggade applikationsdataenheter. Mjukvara för nätverks gränssnitt, inkluderad i klientrnaskinen, dvs. användarterminal 5, har medel för datorläsbara koder för översättning mellan applikationsnamn och applikationstaggar, och sändning av motsvarande taggvärden till andra AC 6, AS, AR, ACGS och de andra servrarna beskrivna nedan. Dessutom har mjukvaran för nätverksgränssnittet medel for datorläsbara koder för att tillåta användarterminal 5 att kommunicera med en tredje-serverenhet 7 (beskriven nedan) när så behövs, l5 517 816 14 och sända paket innehållande applikationsdataenheter med applikationstaggar över kommunikationsnätverket 1.
En femte-nod innefattande en tredje-serverenhet 7 i form av en server för applikationssessionsnamn (ASNS) ansluten till kommunikationsnätverket.
ASNS-servern mappar applikationsnamn mot applikationstaggar, dvs. relaterar applikationsnamn med applikationstaggar och vice versa, och svarar på operationer såsom namnsättning, namnborttagning och förfrågningar om namn. Detta kommer senare att beskrivas i detalj. Minne för applikationsdatabaser och beaerbetningsmedel är reserverade för en applikationssession, i enlighet med en sessionsprofil, och för AC 6 enligt en klientproñl. Klientprofilen består av en uppsättning applikationsnätverksparametrar och används för att initiera och förbereda ett programmerbart applikationsnätverk och användarterminalen innan en klientgrupp går in i en applikationsnsession. Klientprofilen är emellertid inte någon del av denna uppfinning, men är mer detalj erat beskriven i en angränsande patentapplikation SE-. _.. Sessionsprofilen består av en uppsättning applikationsnätverksparametrar giltiga för en applikationssession och används för att initiera och förbereda det programmerbara applikationsnätverket innan en applikationssessiopn startas. Sessionsprofilen är heller inte någon del av denna uppfinning, men är mer detaljerat beskriven i den tillhörande patentapplikationen SE-. . .. ASNS använder generiska i gränssnitt, så att ett flertal olika applikationer kan stödjas. Användande av ASNS betyder därför att ett system som använder generiska komponeneter helst byggs upp, viket naturligtvis är mer ekonomiskt än att bygga separata system för olika applikationer. Appkikationen kan använda vilket namnfonnat som helst, oberoende av kommunikationsprotokoll. Detta gör det enklare att utveckla nya applikationer och speciellt föra över existerande applikationer till nya kommunikationstj änster. Ett applikationskommunikationsprotokoll kan 517 316 använda gamla taggformat och ändå vara användbart för nya genertationer av applikationer.
En sjätte-nod innefattar en tjärde-serverenhet 8 i form av applikationslobbyserver (ALS) för att etablera en applikmationssession.
Deltagare registrerar sig hos ALS och förhandlar om att få starta en applikationssession. En tjänsteleverantör kan använda ALS för att skapa unika användare och hantera tilldelningen av konton. ALS är valbar, beroende på typ av applikationssession.
En sjunde-nod innefattar en femte-serverenhet 9 i förrn av ett valbiart managementsystem for applikationsnätverk (ANMS). ANMS används for att kontrollera och administrera applikationssessioner som kan ha blivit tilldelade av en ALS. ANMS används också för att reservera resurser, vilket är en valbar möjlighet i kommunikationsnätverket och i AS-, AR-, ACGS- och ASNS- noderna. Dessutom kan ANMS användas till felhantering. ANMS använder sessionsprofilen och klientprofilen för att konfigurera det programmerbara applikationsnätverket, vilket åtminstone är en del av kommunikationsnätverket 1. Trots att endast ett exempel på en nod med någon av de ovan beskrivna servrarna 2, 4, 7, 8 eller 9 visas i Fig. 1, för att underlätta förståelsen av uppfinningen, så kan det förekomma mer än en av dessa servrar i en nod.
Dessutom kan det förekomma flera servrar av varje typ, som beskrivs ovan, dvs. 2, 4, 7, 8 eller 9, i kommunikationsnätverket 1, i syfte att kunna tillhandahålla kortare svarstider och backup, om någon av noderna skulle sluta fungera, beroende på hårdvaru- eller mj ukvarufel.
Typiskt för kommunikationsnätverket 1 är att det använder ett flertal paketbaserade kornmunikationsprotokoll, Lex. IP-protokoll, såsom TCP/IP och UDP/IP. Kommunikationsnätverk 1 överför paket 10, vilket är ett av de som är 517 816 16 illustrerade i Fig. 2, från sändare till mottagare. Paketet 10 innehåller som regel ett huvud ll och en nyttolast 12. Huvudet 11 kan innehålla en eller flera nätverksadresser, vilka används av routrar i kommunikationsnätverket 1 för att sända paketet 10 till mottagaren. Protokollen är uppbyggda i olika lager på sådant sätt att nyttolasten i ett protokollager kan innehålla ett eller flera paket från nästa protokollager. Applikationsdataenheter 13 är transporterade som nyttolast i nätverksprotokollpaketen, såsom exempelvis paket 10.
Som valmöjlighet kan applikationen innefatta sitt eget lkommunikationsprotokoll. En applikationsdataenhet består av ett huvud 15 och en nyttolast 14. Huvudet innefattar en eller flera applikationstaggar.
Nyttolasten innefattar applikationsspecifikt data, såsom positioner, avataregenskaper, kodat röstdata etc.
Ett exempel på en nod som innefattar ASNS kommer här att beskrivas i anslutning till Fig.3. En central processorenhet (CPU) 16 är ansluten till kommunikationsnätverket 1 via en kommunikationsport 17 och en första-buss 18. CPU 16 är också ansluten till något lagringsmedel, utfört som ett läsbart minne (ROM) 19, via en andra-buss 20. Här stödjer ASNS två applikationssessioner, men den kan även stödja en eller fler än två applikationssessioner. Varje applikationssession har sin egen databas, här kallad applikationssessionsdatabas (ASDB) 21, vilken är lagrad på något andra-lagringsmedel, utfört som hårddiskar. CPU 16 är därför också ansluten till de två ASDB 21 via en tredje- och fjärde-buss, 22 respektive 23, vilket illustrerar att varje ASDB 21 är lagrad på separata hårddiskar. Varje ASDB 21 innefattar en session som identifierar medel i form av mjukvara och två subdatabaser, här kallade applikationstaggdatabaser (ATDB) 24. Även om endast två ATDB 24 har visats för varje ASDB 21, är det underförstått att varje ASDB 21 kan omfatta en eller flera ATDB 24. Varje ATDB 24 handhar 51.7 816 17 en applikationstagg av en given typ. En databaspost i en tabell i en av ATDB 24 är illustrerad i Fig. 4 och innefattar följande fält: Taggvärdesfält 25. Detta är en uppsättning bitar som representerar eller kodar ett giltigt värde av motsvarande applikationstaggfält.
Applikationsnarrinsfált 26. Här lagras ett godtyckligt applikationsnamn, t.ex. som en byte-sträng, som applikationen kan tolka som ett giltigt applikationsnamn. Längden av applikationsnamnsfalt 26 kan sättas till en maxlängd vilket innebär att ett inmatat applikationsnamn med en längd som är längre än maxlängden betrakts som ett ogiltigt applikationsnamn och därför blir förkastat vid försök att sätta applikationsnamnet. Ett första alternativ är att lagra ett värde på längden av applikationsnamnsfalt 26 tillsammans med applikationsnamnet. Detta möjliggör för en klientanvändare att välja ett applikationsnamn med godtycklig längd. Ett andra alternativ är att markera änden på applikationsnamnet med en fördefinierad symbol, vilken inte är ett tillåtet tecken i applikationsnamnet. Ett tredje _ alternativ är att längden är en initialiseringsparameter för varje session, där den tillåtna maximala längden på applikationnamnet är initialiseringsparametern satt av exempelvis godkänd klient eller leverantör av applikationstj änster.
Databaspost-ägarfält 27. En ägare utgör referens till en särsklid användare, en klientapplikation, ett applikationsnamn eller applikationskonto, vilket skapade innehållet i ett valt fält i databasposten. Databaspost-ägarfältet är valbart (ej obligatoriskt).
Tidsreferensfält 28, vilket beskriver exempelvis tidpunkten vid vilken databasposten skapades eller modiñerades. Värdet i tidsreferensfält 28 skulle kunna motsvara någon global tid eller sessionsrelaterad tid. Detta fält är valbart. 517 816 18 I Timeout-falt 29, vilket beskriver hur länge databasposten ska finnas lagrat i ATDB 24. Timeout-fältet kan i vissa applikationer indikera tiden som âtgått för att delta i någon applikatikonssession. Detta fält är i också valbart.
Andra valbara fält som är passande för olika applikationer kan innefattas i ATDB 21.
I denna utföringsform är ROM 19 bärare av kod som innefattas i 'mappningsmedel 30, vilket här är ett databashanteringssystem (DBMS), dvs. ett datorprogram som kontrollerar organisation, lagring, åtkomst och valfri säkerhet och integritet för data i ATDB 24 och ASDB 21. GenomADBMS 30 och ett nätverkshanterande system (NOS) 31, vilket också är installerat på ROM:et, accepterar ATDB 24 förfrågningar från applikationen och instruerar NOS 31 att överföra det adekvata applikationsdatat. Trots att DBMS 30 visas i ROM 19, kan DBMS naturligtvis också vara lagrad på en av hårddiskarna som innefattar ASDB 21.
De ovan beskrivna fälten och mappningsmedlen möjliggör stöd för åtminstone följande operationer: bestämning av applikationsnamnet för ett givet taggvärde, bestämning av taggvärdet för ett givet applikationsnamn, sändning av resultatet till en förfrågan angående applikationsnamnet associerat med ett givet taggvärde till en given mottagare, sändning av resultatet av en förfrågan angående taggvärdet associerat med ett givet applikationsnamn till en given mottagare, och ogiltigförklarande av ett fält eller en databaspost.
ATDB 24 stödjer också följande valfria operationer: bestämning av ägaren till ett givet taggvärde; bestämning av ägaren till ett givet applikationsnamn; hämtning av ägaren till ett givet applikationsnamn; hämtning av ägaren till ett givet tagvärde; sökning av de databasposter som tillhör en given ägare; 517 816 19 borttagande av alla databasposter som tillhör en given ägare; sökning av ett taggvärde utan ägare; bestämning av applikationsnamn och ägare och därefter återsändning av taggvärde till sändaren; bestämning av timeout-fält för en given databaspost; bestämning av tidreferensfältet för en given databaspost; och uppdatering av vilken valfri databaspost som helst.
Två av de femton ovan beskrivna operationerna kommer nu att förklaras mer i detalj. Från förklaringama till dessa två operationer och tillhörande text, bör resten av nämnda operationer vara uppenbara för en person som är insatt i tekniken.
Fig. 5 illustrerar operationen för sändning av resultatet av en förfrågan angående applikationsnamnet associerat med ett givet taggvärde till en mottagare. En klient har mottagit en applikationsdataenhet 13 med en ny applikationstagg via AC 6 och vill ha tag på applikationsnamnet som hör till den nya applikationstaggen. I steg S100 sänder AC 6 en förfrågan angående applikationsnamnet för den nya applikationstaggen till ASNS. I steg S101 mottar ASNS förfrågan. Nu söker ASNS efter ett taggvärde i taggvärdefält 25 som motsvarar den nya applikationstaggen. Detta görs i steg S 102 genom sökning i ATSB 24. När taggvärdet har hittats, kopieras applikationsnamnet i samma databaspost och sänds i steg S 103 tillbaka till den AC 6 som sände frågan. Den AC 6 som mottar namnet kan visa applikationsnmanet på skärmen på användarterrninal 5.
Ett exempel på operationen att finna ett taggvärde utan ägare, sätta applikationsnamn och ägare och returnera taggvärdet till sändaren, kommer nu att beskrivas i anslutning till Fig. 6. I steg 200 sänder AC 6 en förfrågan angående angående en applikationstag utan ägare. Förfrågan inkluderar ett applikationsnamn och ägaridentifieraren. I steg S201 mottar ASNS förfrågan 517 816 och registrerar nätverksadressen för användarterminal 5. Sedan, i steg S202, söker ASNS igenom databaspostägarfälten 27 i ATDB 24 efter ett tomt databaspostägarfalt. Databasposten i det först funna tomma databaspostägarfältet används för att hämta taggvärdet i det motsvarande taggvärdefältet 25. Detta görs i steg S203. I steg S 204 hämtar ASNS applikationsnamnet och ägaridentifieraren från Förfrågan. Applikationsnamnet och ägaren lagras i respektive applikationsnamnfalt 26 och i databaspostägarfält 27. I steg S205 sänder ASNS det tillgängliga taggvärdet till den frågande AC 6. Om det inte finns något taggvärde tillgängligt, sänder ASNS ett meddelande till AC 6 att exempelvis applikationssessionen inte tillåter några ytterligare deltagare. Om operationen lyckades, används taggvärdet av ägaren och i steg S206 kan ASNS också sända taggvärdet till en annan AC och till servrar som används för applikationen.
I vissa applikationer kan endast ett applikationsnamn mappas av DBMS 30 mot ett fritt tagvärde. Ett önskat applikationnamn, exempelvis ”Black_King”, kan mappas mot ett fritt taggvärde i ATDB 24 genom lagring av applikationsnamnet i applikationsnamnsfält 27 i en databaspost där applikationsnamnfältet 27 är ”tomt”. Detta görs exempelvis genom att använda Structured Query Language (SQL) code, såsom INSERT |NTO TableName (ApplicationName) VALUES ("BLACK_K|NG” WHERE TagVA|ue = (SELECT TagValue FROM TableName where ApplicationName = “") ASNS säkerställer, som valmöjlighet, att varje taggvärde är sammanbundet med endast ett applikationsnamn för varje typ av applikationstagg. Fel rapporteras till exempelvis AC 6, om försök till någon operation som strider mot detta görs. Alternativt kan ASNS tillåta flera applikationsnamn för ett givet taggvärde. Klienter kan i så fall använda alias för applikationsnamn. 517 816 21 Ett exempel på SQL-kod för mappning av två önskvärda applikationsnamn mot ett ledigt taggvärde är: INSERT INTO TableName (ApplicationName1) VALUES (B|ack_'_King") WHERE TagValue = (SELECT TagValue FROM TableName where ApplicationName = "") INSERT INTO Tab|eNAme (ApplicationName2) VALUES (“The__King") WHERE ApplicationName1 = “B|ack_King" I ett andra alternativ, tillåter ASNS att flera applikationstaggar blir tilldelade till ett applikationsnamn. Applikationsnamnet blir i så fall sammanbundet med ett kluster av nätverksresurser, t.ex. tillgängliga användarterminaler 5 i kommunikationsnätverket 1.
'En valmöjlighet är också att varje namn kan användas högst en gång per applikationstaggtyp. Fel rapporteras om försök som strider mot detta görs.
I en utföringsforrn av uppfinningen kontrolleras behörighet för att utföra operationer för ASNS. Olika klienter kan ha olika behörigheter och speciellt ägaren av ett applikationsnamn kan sättas till att vara den enda som har rättighet att ändra eller ogiltigförklara applikationsnamnet. Som visas i Fig. 1 kan det hända att endast en ASNS är involverad i en session. Fördelen med detta är att inga medel för uppdatering behövs. Alternativt kan det finnas en mängd med ASNS i en session och detta kräver medel och en metod för att säkerställa uppdatering mellan olika ASNS. Generella metoder för att hålla en distribuerad databas uppdaterad kan användas och tillhör inte föreliggande uppfinning. Därför beskrivs dessa uppdateringsmetoder inte vidare här.
En valmöjlighet är att ASNS kan vara partitionerad på ett flertal ställen där olika delar av ATDB 24 finns på olika serverenheter eller noder. 517 816 22 En enkel metod är dessutom att tillåta att applikationsnamn sätts, men inte tillåta att dessa ändras. Detta innebär att vilket som helst av de satta applikationnamnen därför kommer att kommuniceras på ett tillförlitligt sätt till alla instanser av ATDB 24.
Några exempel på applikationssessioner som skulle kunna använda ASNS kommer nu att beskrivas för en bättre förståelse av fördelarna och valmöjligheterna med föreliggande uppfinning.
Det första exemplet på applikationssession behandlar användningen av spelar- alias. Ett fleranvändarspel som t.ex. så kallade realtids-actionspel tillåter spelare att delta i och lämna spelet under applikationssessionen. Varje spelare har ett alias, som exempelvis ”Hellfire” eller ”Evil_Reaper”. En avatar som representerar en spelare är märkt med spelarens alias och detta alias används också i poänglistor. Varje alias är en sträng som är kodad med ett flertal bytes.
”Hellfire” och ”Evil_Reaper” kräver t.ex. 9 respektive 12 bytes var.
Applikatiorisdataenheter är paket enligt User Datagram Protocol (UDP) vilka är bärare av varje avatars position, vapen, skada etc. Varje applikationsdataenhet 13 är markerad med en applikationstagg som identifierar motsvarande spelare. I ett spel som involverar som mest 256 spelare, kan applikationstaggen bestå av en byte. Varje spelare representeras av en unik kombination av 8 bitar.
ASNS används för att koppla samman ett spelar-alias med ett taggvärde. En spelare som ansluter sig till sessionen får ett oanvänt taggvärde från en spelserver eller från ASNS genom operationen ”Hitta en applikationstagg utan ägare, sätt namn och ägare, returnera taggvärdet till sändaren”, beskriven ovan i anslutning till Fig. 6. Spelaren sätter ett namn som svarar mot dennes alias, 517 816 23 som är sammankopplat med taggvärdet. Efter detta sänder spelaren sin avatars egenskaper till de andra spelarna genom deras AC 6 och användaraterrninal 5.
Vilken som helst av de andra användarterminalerna 5 som mottar en applikationsdataenhet 13 med en ny applikationstagg kommer att fråga ASNS efter namnet som hör till applikationstaggen, genom att nyttja operationen ”sänd resultatet av en förfrågan om applikationsnamnet som är associerat med ett givet taggvärde till en given mottagare”, beskriven ovan i anslutning till Fig 5. Den nya avataren kan nu visas på skärmen av applikationen. Den andra klienten kan också hitta det nya aliaset i applikationsdatat. Den andra klienten kan då finna taggvärdet som motsvaras av aliaset via ASNS och abonnera på kommunikationskanalen som svarar mot taggvärdet.
Klienter som lämnar spelet kan ogiltigförklara den ASNS-databaspost som svarar mot detta alias och därmed frisläppa taggvärdet. En timeout-mekanism, innefattande Timeout-fältet 29 i motsvarande databaspost, kan användas för att frisläppa taggvärdet, även om en klient som lämnar spelet misslyckas med att ogiltigförklara databasposten. Tidsreferensfält 28 kan exempelvis användas av ett bokföringssystem hos en tjänsteleverantör.
Ett andra exempel på en applikationssession som gynnas av ASNS är ett peer- to-peer-flygsimuleringsspel. Här kör en av användaraterrninalerena 6 flygkontrolls-AI:n. Flygkontrollinstruktioner och information distribueras via en taggad kommunikationskanal. Den applikationstaggen som hör till kodningen av flygkontrollfunktionen ägs av klienten som just för tillfället kör flygkontrolls-Alzn. Den klienten har t.ex. definierat namnet FLIGHT_CONTROL för den relevanta applikationstaggen i ASNS.
Exempelvis sänds applikationsobjekt som används för att illustrera hjärtslag med hjälp av denna taggade kanal för att visa att visa att flygkontrollen är i 517 816 24 drift. En ny klient känner till namnet F LIGHT_CONTROL och kommer att fråga ASNS efter den motsvarande applikationstaggen och sedan abonnera på den.
Antag att klienten som kör flygkontrollen plötsligt lämnar spelet.
Databasposten i ATDB 24 för FLIGHT_CONTROL kommer att tas bort automatiskt när den lämnande klienten ogiltigförklarar det, eller för att ett satt timeoutvärde lagrat i timeout-fältet 29 i ATDB 24 har blivit läst från ATDB 24. Efter det att klienten har utgått, märker kvarvarande klienter att hj ärtslagen hos flygkontrollen har upphört. Varje kvarvarande klient väntar en slumpmässigt vald tid och försöker sedan sätta en ASNS-taggvärdesdefinition med applikationsnamnet FLIGHT_CONTROL. Taggvärdet är godtyckligt och ASNS kommer att acceptera den första definition som kommer efter det att namnet blivit odefinierat. Alla följ ande försök att sätta applikationsnamnet kommer att förkastas. Varje klient kommer att vänta en förutbestämd tid och sedan be ASNS om taggvärdet som bär applikationsnamnet FLIGHT_CONTROL. ASNS distribuerar applikationsnamnet till alla klienterna, och den klient som äger objektet startar en flygkontrollsprocess och fortsätter att sända flygkontrolldata. Samma 'funktion kan uppnås om en klient tar på sig rollen som spelchef i en applikation som kräver eller valfritt innefattar en spelchef.
Ett tredje exempel på en applikationssession som drar nytta av föreliggande uppfinning är ett peer-to-peer-spel med en open-ended värld, i just detta exempel ett peer-to-peer-datorspel med en virtuell värld med en open-end- geografi,_ exempelvis ett rymdstrategispel. Ett team som går in i spelet tar med sig en karta som visar deras egna planeter. Planeter och andra platser kan förgöras under striderna. Alla nya geografiska platser (planeter, städer, 517 816 byggnader, fartyg) är namngivna av dem som utformat kartorna, och det finns många fler platser än det finns spelare.
Speldata distribueras via en uppsättning kanaler. Varje kanal är märkt genom varsin unik applikationstagg. Varje applikationstagg svarar mot en specifik plats i spelvärlden. Klienter som kontrollerar en avatar som är placerad på en given plats hänger med motsvarande applikationstagg till dataobj ekten som t.ex. visar deras position. Klienterna abonnerar också på data med samma applikationstag. Detta betyder att de selektivt kan motta data om alla avatarer på just den platsen.
Det finns ett begränsat antal tillgängliga applikationstaggar och antalet applikationstaggar är mycket mindre än antalet applikationsnamn eller geografiska platser i spelet. ASNS används for dynamisk allokering av ett begränsat antal applikationstaggar till geografiska platser. En forsta spelare som kommer till exempelvis en tom planet benämnd LABAN frågar ASNS om taggvärdet som svarar mot LABAN. Eftersom planeten är obebodd, välj er spelaren en oanvänd applikationstagg och sätter applikationsnamnet. Nästa spelare som landar på LABAN kommer att finna att applikationsnamnet är definierat och kan abonnera pâ applikationsdata med applikationstaggen. Den siste spelaren som lämnar LABAN meddelar den forsta spelaren att han ska frisläppa applikationstaggen. Därefter kommer alla abonnemang på applikationsdata, som sänds i paket innehållande applikationstaggen, automatiskt att bli inställda.

Claims (31)

10 15 20 25 517 816 26 Patentkrav
1. l. En metod, for en server (7), for mappning av applikationsnamn mot taggvärden, for åtminstone en fleranvändarapplikation distribuerad i ett kommunikationsnätverk (1), där taggvärdena används for adressering och routning av applikationsdataenheter (13), for sändning av applikationsdata i kommunikationsnätverket (1), kännetecknad av stegen for: lagring av taggvärdena for en applikationssession i åtminstone något medel for lagring, mottagande av åtminstone ett applikationsnamn som är ämnat att användas for ett applikationsobjekt under applikationssessionen; mappning av åtminstone ett existerande applikationsnamn mot åtminstone ett av taggvärdena; lagring av åtminstone ett existerande applikationsnamn i åtminstone något existerande medel for lagring; V sändning av åtminstone ett existerande taggvärde till åtminstone en mottagarnod i kommunikationsnätverket (1).
2. En metod, enligt krav 1, kännetecknad av lagring av vart och ett av taggvärdena i en separat databaspost i åtminstone en databas (24) innefattad av åtminstone något existerande medel for lagring.
3. En metod, enligt krav 2, kännetecknad av lagring av åtminstone ett existerande applikationsnamn i ett applikationsnamnsfalt (26) i samma databaspost som åtminstone ett existerande taggvärde mot vilket åtminstone ett existerande applikationsnamn är mappat. 10 15 20 25 517 816 27
4. En metod, enligt något av kraven 1-3, kännetecknad av att åtminstone ett existerande applikationsnamn blir mottaget från en applikationsklient (6) som kan delta i applikationssessionen.
5. En metod, enligt något av föregående krav, kännetecknad av stegen: svara på förfrågningar från åtminstone en användare angående mappning av åtminstone ett existerande applikationsnamn mot åtminstone ett existerande taggvärde, när åtminstone en existerande användare känner till åtminstone ett applikationsnamn, eller svara på förfrågningar från åtminstone en existerande användare angående mappningen av åtminstone ett existerande taggvärde mot åtminstone ett existerande applikationsnamn, när åtminstone en existerande användare känner till åtminstone ett av de existerande taggvärdena.
6. En metod enligt något av föregående krav, kännetecknad av steget som innebär mottagande av ett ägamamn för en ägare av åtminstone ett existerande applikationsnamn; mappning av ägamamnet mot åtminstone ett av taggvärdena; och lagring av ägamamnet i åtminstone något existerande medel för lagring.
7. En metod enligt krav 6, kännetecknad av steget som innebär: besvärande av förfrågningar från åtminstone en användare angående mappningen av ägarnamnet mot åtminstone ett av de existerande taggvärdena när åtminstone en existerande användare känner till ägarnamnet, eller besvarande av förfrågningar från åtminstone en existerande användare gällande mappningen av åtminstone ett existerande värde av taggvärdena mot ägarnamnet när åtminstone en existerande användare känner till åtminstone ett existerande värde av taggvärdena. 10 15 20 25 517 816 28
8. Ett system för åtminsone en fleranvändar-applikation distribuerad i ett kommunikationsnätverk (1), innefattande anvåndarteminaler (5); åtminstone en första (serverenhet (2) för lagring av mottagande av applikationsdata och för distribution av applikationsdataenheter (13) till användartenninalema (5); åtminstone en andra serverenhet (4) för generering av innehåll till applikationssessionen och sändning av åtminstone en del av nämnda innehåll till åtminstone en av användarterrninalerna; och kännetecknat av åtminstone en tredje serverenhet (7) innefattande åtminstone något medel for lagring av applikationsnamn använda i en applikationssession for ett applikationsobjekt under applikationssessionen och for lagring av taggvärden anpassade till applikationsdataenheter (13) for sändning av applikationsdata inom kommuníkationsdatanätverket (1), och medel for mappning (30), för mappning av åtminstone ett av taggvärdena mot åtminstone ett av applikationsnamnen.
9. Ett system enligt krav 8, kännetecknat av en router (3) for routning av applikationsdataenheter (13) i enlighet med applikationstaggama som finns i var och en av applikationsdataenhetema (13)
10. Ett system enligt krav 8 eller 9, kännetecknat av åtminstone en fjärde serverenhet (8), till vilken användarana registrerar sig, och som används for etablering av applikationssessionen.
11. Ett system enligt något av kraven 8- 10, kännetecknat av åtminstone en femte serverenhet (9) for kontroll och administration av applikationssessionen 10 15 20 25 517 816 29 och for reservation av medel for lagring av applikationssessionsdata och/eller applikationsdataenheter.
12. Ett system enligt något av kraven 8-11, kännetecknat av att användarterrninalema innefattar medel for bearbetning av åtminstone en applikationsklient (6) var, där åtminstone en existerande applikationsklient (6) innefattar medel för abonnemang, mottagande och bearbetning av taggade applikationsdataenheter (13) och sändning av taggade applikationsdataenheter (13).
13. Ett system enligt något av kraven 8-12, kännetecknat av att var och en av användarterminalerna (5) innefattar medel för att motta inmatade värden från en användare och medel för att på skärrnen visa utdata från applikationen, såsom grafik, video, ljud eller haptik.
14. En serverenhet (7) för en fleranvändar-applikation, vilken är distribuerad i ett kommunikationsnsätverk (1), kännetecknar] av åtminstone något medel for lagring av applikationsnamn vilka endast används i en applikationssession for ett applikationsobjekt under applikationssessionen och for lagring av taggvärden anpassade till applikationsdataenheter (13) for sändning av applikationsdata i kommunikationsnätverket (1), och medel för mappning (3 O) av åtminstone ett av applikationsnamnen mot åtminstone ett av taggvärdena.
15. En serverenhet (7) enligt krav 14, kännetecknad av att medel för mappning (30) mappar ett av applikationsnamnen mot ett av taggvärdena. 10 15 20 25 517 816 30
16. En serverenhet (7) enligt krav 14, kännetecknad av att medel för mappning (30) mappar fler än ett av applikationsnamnen mot ett av taggvärdena.
17. En serverenhet (7) enligt krav 14, kännetecknad av att medel for mappning (30) mappar ett av applikationsnamnen mot mer än ett av taggvärdena.
18. En serverenhet (7) enligt något av kraven 14-17, kännetecknad av att applikationsobjektet är en avatar för en mänsklig användare eller en artificiell intelligens; en avatar som är delvis styrd av en artificiell intelligens och delvis styrd av en människa; en förutbestämd roll, i ett spel, vilken kan växla mellan användare; objekt i en virtuell miljö; egenskaper hos objekt och avatarer; grupper eller lag med avatarer; grupper med objekt; grupper bestående av grupper; en plats i den virtuella milj ön; eller en mediaström eller en samling av mediaströmmar.
19. En serverenhet (7) enligt krav 18, kännetecknad av att applikationssessionen är en spelsession i ett fleranvändar-datorspel.
20. En serverenhet (7) enligt krav 18, kännetecknad av att applikationssessionen är en videokonferens med flera deltagare.
21. En serverenhet (7) enligt något av kraven 14-20, kännetecknad av åtminstone en databas (24) lagrad i medel for lagring och innefattande taggvärdena och applikationsnamnen. 10 15 20 25 517 816 31
22. En serverenhet (7) enligt något av kraven 14-21, kännetecknad av att medel för mappning (30) är ett databashanteringssystem för applikationssessionen.
23. En serverenhet (7) enligt något av kraven 14-22, kännetecknad av att åtminstone något medel för lagring existerar och är anpassat för lagring av åtminstone ett ägarnamn tillhörande en ägare av åtminstone ett av applikationsnamnen, och medel för mappning (30) är anpassade för mappning av åtminstone ett ägarnamn mot åtminstone ett av taggvärdena.
24. Ett datorprogram för en fleranvändar-applikation vilken är distribuerad i ett kommunikationsnätverk (l), kännetecknat av medel för datorläsbara koder för att åstadkomma att en serverenhet (7) mottar I åtminstone ett applikationsnamn som är ämnat att användas för ett applikationsobjekt under en applikationssession; medel för datorläsbara koder för att få serverenhet (7) att mappa det åtminstone ett existerande applikationsnamnet mot åtminstone ett av en mängd taggvärden lagrade i åtminstone något medel för lagring på serverenheten (7) och anpassade för applikationsdataenhetema (13) för sändning av applikationsdata i kommunikationsnätverket (l); och medel för datorläsbara koder för att åstadkomma att serverenhet (7) lagrar åtminstone ett existerande applikationsnamn i åtminstone något existerande medel för lagring.
25. Ett datorprogram enligt krav 24, kännetecknat av medel för datorläsbara koder för att få serverenhet (7) att sända åtminstone ett existerande taggvärde till åtminstone en mottagarnod (5) i kommunikationsnätverket. 10 15 20 25 517 816 32
26. Ett datorprogram enligt krav 24 eller 25, kännetecknat av medel för datorläsbara koder för att få serverenhet (7) att lagra åtminstone ett existerande applikationsnarrm i åtminstone en databas (24) innefattad av åtminstone något existerande medel för lagring.
27. Ett datorprogram enligt krav 26, kännetecknat av medel för datorläsbara koder för att få serverenhet (7) att lagra åtminstone ett existerande applikationsnamn i åtminstone ett applikationsnamnfalt (26) i åtminstone en databaspost i åtminstone en existerande databas' (24), där åtminstone en existerande databaspost innefattar ett taggvärdesfált (25) för åtminstone ett existerande taggvärde mot vilket åtminstone ett existerande applikationsnamn är mappat.
28. Ett datorprogram enligt något av kraven 24-27, kännetecknat av medel för datorlåsbara koder för att få serverenheten (7) att svara på förfrågningar från åtminstone en användare angående mappningen av åtminstone ett existerande applikationsnamn mot åtminstone ett existerande taggvärde när åtminstone en existerande användare känner till åtminstone ett existerande applikationsnarrm, och medel för datorläsbara koder för att få serverenhet (7) att svara på förfrågningar från åtminstone en existerande användare angående mappningen av åtminstone ett existerande taggvärde mot åtminstone ett existerande applikationsnamn när åtminstone en existerande användare känner till åtminstone ett existerande taggvärde.
29. Ett datorprogram enligt något av kraven 24-28, kännetecknat av medel för datorläsbara koder för att få serverenhet (7) att motta ett ägarnamn för en ägare av åtminstone ett existerande applikationsnamn; 10 15 517 816 33 medel for datorläsbara koder for att få serverenhet (7) att mappa ägarnamnet mot åtminstone ett existerande taggvärde; och medel for datorläsbara koder for att få serverenhet (7) att lagra ägarnamnet i åtminstone något existerande medel for lagring.
30. Ett datorprogram enligt krav 29, kännetecknat av medel för datorläsbara koder for att få serverenhet (7) att svara på förfrågningar från åtminstone en användare angående mappning av ägarnamnet mot åtminstone ett existerande taggvärde när åtminstone en existerande användare känner till ägarnamnet, och _ medel for datorläsbara koder for att få serverenheten (7) att svara på förfrågningar från åtminstone en existerande användare angående mappningen av åtminstone ett existerande taggvärde mot ägarnamnet när åtminstone en existerande användare känner till åtmintone ett existerande taggvärde.
31. En datorprogramprodukt (19) innefattande ett for datorn användbart medium och ett datorprogram enligt krav 24, där datorprogrammet är inspelat på det for datom användbara mediet.
SE0003925A 2000-10-27 2000-10-27 Metod och anordning för en applikation SE517816C2 (sv)

Priority Applications (11)

Application Number Priority Date Filing Date Title
SE0003925A SE517816C2 (sv) 2000-10-27 2000-10-27 Metod och anordning för en applikation
US10/415,013 US6935960B2 (en) 2000-10-27 2001-10-22 Server for mapping application names to tag values in distributed multi-user application
JP2002538644A JP2004512622A (ja) 2000-10-27 2001-10-22 分散型マルチユーザアプリケーションにおいてアプリケーション名をタグ値にマッピングするためのサーバ
CN01818055.8A CN1257634C (zh) 2000-10-27 2001-10-22 将应用程序名映射到标记值的方法、服务器及***
KR10-2003-7005683A KR20030079922A (ko) 2000-10-27 2001-10-22 분산된 멀티-유저 애플리케이션에서 애플리케이션 이름을태그 값으로 맵핑하기 위한 서버
AU2001296187A AU2001296187B2 (en) 2000-10-27 2001-10-22 Server for mapping application names to tag values in distributed multi-user application
PCT/SE2001/002310 WO2002035796A1 (en) 2000-10-27 2001-10-22 Server for mapping application names to tag values in distributed multi-user application
AU9618701A AU9618701A (en) 2000-10-27 2001-10-22 Server for mapping application names to tag values in distributed multi-user application
IL15531601A IL155316A0 (en) 2000-10-27 2001-10-22 Server for mapping application names to tag values in distributed multi-user application
EP01977037A EP1334597A1 (en) 2000-10-27 2001-10-22 Server for mapping application names to tag values in distributed multi-user application
NO20031868A NO20031868L (no) 2000-10-27 2003-04-25 Server for å mappe applikasjonsnavn til TAG-verdier for en distribuert flerbrukerapplikasjon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0003925A SE517816C2 (sv) 2000-10-27 2000-10-27 Metod och anordning för en applikation

Publications (3)

Publication Number Publication Date
SE0003925D0 SE0003925D0 (sv) 2000-10-27
SE0003925L SE0003925L (sv) 2002-04-28
SE517816C2 true SE517816C2 (sv) 2002-07-16

Family

ID=20281604

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0003925A SE517816C2 (sv) 2000-10-27 2000-10-27 Metod och anordning för en applikation

Country Status (10)

Country Link
US (1) US6935960B2 (sv)
EP (1) EP1334597A1 (sv)
JP (1) JP2004512622A (sv)
KR (1) KR20030079922A (sv)
CN (1) CN1257634C (sv)
AU (2) AU2001296187B2 (sv)
IL (1) IL155316A0 (sv)
NO (1) NO20031868L (sv)
SE (1) SE517816C2 (sv)
WO (1) WO2002035796A1 (sv)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610404B2 (en) * 2002-05-22 2009-10-27 Cast Iron Systems, Inc. Application network communication method and apparatus
US8296433B2 (en) * 2002-05-22 2012-10-23 International Business Machines Corporation Virtualization method and apparatus for integrating enterprise applications
US7574488B2 (en) * 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
US8321590B2 (en) 2003-05-22 2012-11-27 International Business Machines Corporation Application network communication
US20050256985A1 (en) * 2004-05-13 2005-11-17 Wildtangent, Inc. Sending progress information of other users for transmitted shared content
US20060080702A1 (en) * 2004-05-20 2006-04-13 Turner Broadcasting System, Inc. Systems and methods for delivering content over a network
US7465231B2 (en) * 2004-05-20 2008-12-16 Gametap Llc Systems and methods for delivering content over a network
US7433741B2 (en) * 2005-09-30 2008-10-07 Rockwell Automation Technologies, Inc. Hybrid user interface having base presentation information with variably prominent supplemental information
US20070078535A1 (en) * 2005-09-30 2007-04-05 Rockwell Automation Technologies, Inc. System and method for identifying particularized equipment information of interest to varied users in an industrial automation environment
US7805151B2 (en) * 2005-10-06 2010-09-28 Vergence Entertainment Llc System for substantially simultaneous alerts
US7912933B2 (en) * 2005-11-29 2011-03-22 Microsoft Corporation Tags for management systems
US7617190B2 (en) * 2005-11-29 2009-11-10 Microsoft Corporation Data feeds for management systems
US20080081696A1 (en) * 2006-09-29 2008-04-03 Motorola, Inc. Game for mobile station users
KR100936886B1 (ko) * 2007-07-16 2010-01-14 에스케이 텔레콤주식회사 단일 rfid 태그에 의한 다중 서비스 제공 시스템 및방법
US20090049128A1 (en) * 2007-08-17 2009-02-19 Sony Computer Entertainment America Inc. Schemes for game chat routing and taunt control
US8556713B2 (en) * 2009-10-20 2013-10-15 Michael Pilip Single to multi-user synchronous application conversion
EP2988452B1 (en) 2011-08-30 2017-05-24 Qualcomm Incorporated Topology discovery in a hybrid network
US9495326B2 (en) 2011-09-12 2016-11-15 Qualcomm Incorporated Providing communication path information in a hybrid communication network
KR101982150B1 (ko) * 2012-02-16 2019-05-27 삼성전자주식회사 데이터 전송을 위한 디바이스 검색 시스템 및 방법
US11362889B2 (en) * 2018-10-15 2022-06-14 Cdw Llc System and method for automated information technology services management
US11446567B2 (en) * 2019-06-11 2022-09-20 Universal City Studios Llc Digital character interacting with customer in physical realm

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61194948A (ja) * 1985-02-22 1986-08-29 Fujitsu Ltd ワ−キングデイレクトリ設定方式
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
GB9407971D0 (en) * 1994-04-21 1994-06-15 British Telecomm Messaging system
JP3216992B2 (ja) * 1996-06-14 2001-10-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・システムにおける接続方式、及びサーバ・マシン
US6025801A (en) * 1996-10-01 2000-02-15 Philips Electronics North America Corporation Video game with local updates mitigates latency effects in wide area network
US6112024A (en) * 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
JPH10207684A (ja) * 1996-11-19 1998-08-07 Sony Corp 3次元仮想現実空間共有システムにおける情報処理装置、情報処理方法および媒体
US6094712A (en) * 1996-12-04 2000-07-25 Giganet, Inc. Computer network interface for direct mapping of data transferred between applications on different host computers from virtual addresses to physical memory addresses application data
US5899810A (en) * 1997-01-24 1999-05-04 Kaon Interactive Corporation Distributed game architecture to overcome system latency
US5923842A (en) * 1997-03-06 1999-07-13 Citrix Systems, Inc. Method and apparatus for simultaneously providing anonymous user login for multiple users
JP3575225B2 (ja) 1997-05-19 2004-10-13 株式会社日立製作所 パケット交換機、パケット交換網及びパケット交換方法
EP1005740B1 (en) * 1997-06-27 2006-02-22 Tellabs Denmark A/S A method of transmitting data in a ring-shaped teletransmission network, such as a network and a network element therefor
US6058399A (en) * 1997-08-28 2000-05-02 Colordesk, Ltd. File upload synchronization
DE19747583B4 (de) * 1997-10-28 2006-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Kommunikationssystem und Verfahren
JPH11185053A (ja) * 1997-12-25 1999-07-09 Casio Comput Co Ltd サイバースペースシステムおよびユーザ端末にサイバースペースを提供するプログラムを格納した記録媒体
DE69839087T2 (de) 1998-03-18 2009-03-19 Sony Deutschland Gmbh IRC Namenübersetzungsprotokoll
JPH11316693A (ja) * 1998-05-01 1999-11-16 Nec Software Chugoku Ltd プログラム間データ連携システム及び方法
US6463078B1 (en) * 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
JP3604915B2 (ja) * 1998-08-27 2004-12-22 富士通株式会社 コミュニケーション方法及びコミュニケーション装置
JP2000112853A (ja) * 1998-10-05 2000-04-21 Fujitsu Ltd 双方向通信方法及び双方向通信システム
US20020010768A1 (en) 1998-12-17 2002-01-24 Joshua K. Marks An entity model that enables privilege tracking across multiple treminals
JP2000215179A (ja) * 1999-01-22 2000-08-04 Mitsubishi Electric Corp オブジェクト名前管理方式

Also Published As

Publication number Publication date
US6935960B2 (en) 2005-08-30
SE0003925D0 (sv) 2000-10-27
JP2004512622A (ja) 2004-04-22
EP1334597A1 (en) 2003-08-13
NO20031868L (no) 2003-06-26
AU9618701A (en) 2002-05-06
NO20031868D0 (no) 2003-04-25
KR20030079922A (ko) 2003-10-10
AU2001296187B2 (en) 2006-03-02
CN1471786A (zh) 2004-01-28
IL155316A0 (en) 2003-11-23
US20040023723A1 (en) 2004-02-05
WO2002035796A1 (en) 2002-05-02
CN1257634C (zh) 2006-05-24
SE0003925L (sv) 2002-04-28

Similar Documents

Publication Publication Date Title
SE517816C2 (sv) Metod och anordning för en applikation
AU2001296187A1 (en) Server for mapping application names to tag values in distributed multi-user application
US7803052B2 (en) Discovery and distribution of game session information
US9736092B2 (en) Preferred name presentation in online environments
US6763371B1 (en) Method and apparatus for collaborative communication in a communication network
US6859821B1 (en) Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
SE520129C2 (sv) Kommunikationsinfrastrukturanordning i och en datorläsbar programprodukt för ett databearbetningssystem för fleranvändarapplikationer
Macedonia et al. NPSNET: a network software architecture for largescale virtual environments
US7363449B2 (en) Software agent-based architecture for data relocation
US5984787A (en) Method and system for multi-user game recovery
JP4463999B2 (ja) 通信ネットワークにおける方法及び装置
US20140208238A1 (en) System and method for enabling users to interact in a virtual space
US20030145093A1 (en) System and method for peer-to-peer file exchange mechanism from multiple sources
WO2009046295A1 (en) Methods and apparatus for widget sharing between content aggregation points
JP2009510561A (ja) オンラインロビーを提供するシステムおよび方法
SE517815C2 (sv) Konfigurering av en flexibel infrastruktur
JP2005522759A (ja) グループ管理
JP2013164875A (ja) パンデミックリモートアクセス設計
Waters et al. Design of the interactive sharing transfer protocol
JP2002153677A (ja) 情報端末、情報提供サーバ、オンラインゲーム方法および記録媒体
JP4910542B2 (ja) Sipメッセージ引渡プログラム
WO2005059762A1 (ja) メールコミュニティシステム、プログラム及び記録媒体
WO2001039007A1 (en) Integrated browser and server system
KR20070023456A (ko) 게임 서버 시스템 및 게임 시스템 운영 방법
Huang et al. SharedWeb—a shared virtual environment over the World Wide Web

Legal Events

Date Code Title Description
NUG Patent has lapsed