SE517033C2 - Systemplattform för kommunikationssystem - Google Patents

Systemplattform för kommunikationssystem

Info

Publication number
SE517033C2
SE517033C2 SE9504392A SE9504392A SE517033C2 SE 517033 C2 SE517033 C2 SE 517033C2 SE 9504392 A SE9504392 A SE 9504392A SE 9504392 A SE9504392 A SE 9504392A SE 517033 C2 SE517033 C2 SE 517033C2
Authority
SE
Sweden
Prior art keywords
extension
base
platform according
system platform
objects
Prior art date
Application number
SE9504392A
Other languages
English (en)
Other versions
SE9504392L (sv
SE9504392D0 (sv
Inventor
Jari Tapani Koistinen
Einar Wennmyr
Eui Suk Chung
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 SE9504392A priority Critical patent/SE517033C2/sv
Publication of SE9504392D0 publication Critical patent/SE9504392D0/sv
Priority to EP96941268A priority patent/EP0865704A1/en
Priority to CA002239885A priority patent/CA2239885A1/en
Priority to KR1019980704284A priority patent/KR19990071993A/ko
Priority to JP09521974A priority patent/JP2000501865A/ja
Priority to BR9611920A priority patent/BR9611920A/pt
Priority to PCT/SE1996/001553 priority patent/WO1997022197A1/en
Priority to AU10459/97A priority patent/AU722262B2/en
Priority to CN96199793A priority patent/CN1207847A/zh
Publication of SE9504392L publication Critical patent/SE9504392L/sv
Priority to NO982598A priority patent/NO982598L/no
Priority to MXPA/A/1998/004495A priority patent/MXPA98004495A/xx
Priority to US09/093,073 priority patent/US6601113B1/en
Publication of SE517033C2 publication Critical patent/SE517033C2/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0029Provisions for intelligent networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/54Object oriented software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13502Indexing scheme relating to selecting arrangements in general and for multiplex systems primitives - inc. service-independent building blocks [SIBBs]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13503Indexing scheme relating to selecting arrangements in general and for multiplex systems object-oriented systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13535Indexing scheme relating to selecting arrangements in general and for multiplex systems distributed systems - also domains in service creation

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Devices For Executing Special Programs (AREA)

Description

517 033 i i 2 medger rutiner för generering av nya objekttyper utan1nodifiering av operativsystemets kärna.
I US 5,421,015 beskrivs ett objektorienterat databehand- lingssystem, innefattande en.utvidgningsbar objekttypuppsättning och en motsvarande uppsättning objekthanterare.
Redogörelse för uppfinningen.
Ett allmänt huvudsyfte med uppfinningen är att för ett kommunikationssystem effektivisera hanteringen av ett systems tilläggsfunktioner, dvs. de delar av systemet som är valfria, marknadsberoende eller som levereras till en kund efter det att det system som tillhandahåller bastjänsterna har levererats.
Ett mera bestämt syfte är att uppnå denna effektivisering genom att möjliggöra modifiering och utvidgning av de av ett system tillhandahàllna tjänsterna utan att behöva ändra mjukvaran hos de funktioner som redan har implementerats och levererats. _ Dessa och andra syften, som.kommer att framgå fortsättnings- vis, har uppnåtts genom de i patentkraven angivna kännetecknen.
Vid en systemplattform av inledningsvis definierat slag är det översta skiktet implementerat med basobjekt och utvidgnings- objekt. Basobjekten är objekttyper, som med en eller flera däri ingående metoder implementerar basfunktioner, som kan behöva utvidgas i framtiden och utvidgningsobjekten är objekttyper som med en eller flera däri ingående metoder möjliggör implementering av'utvidgningsfunktioner, sonlutgör utvidgningar till basfunktio- nerna. Varje basobjekttyp är konstruerad för en särskild uppgift, som kan utföras med minimal koordinering med andra basobjekt.
Utvidgningsobjekten är konstruerade för att medge tillägg av nya tjänster och modifiering och utvidgning av befintliga tjänster utan att ändra mjukvaran hos de tjänster, som redan har implemen- terats och levererats. Utvidgningsobjekten kan även innefatta objekttyper som implementerar utvidgningsfunktioner, vilka utgör utvidgningar till utvidgningsfunktionerna, och även objekttyper som implementerar interaktionshanterande utvidgningsfunktioner, vilka hanterar interaktion mellan tilläggstjänster.
Utvidgningsobjekten möjliggör introduktion av utvidgningar i ett system i drift, vilka binds dynamiskt till basobjekt som ; u u - n. 517 oss- ~ skall modifieras.
Utvidgningarna är konfigurerbara, dvs. möjliggör att i runtime lägga till och avlägsna systemets modifieringar på ett generellt sätt utan att konstruktören själv behöver konstruera kod för själva aktiveringen/avaktiveringen av utvidgningen, vilket sköts av plattformen.
Beteendet hos ingående objekttyper definieras genom att beskriva beteendet hos varje däri ingående metod som en ändlig tillstándsmaskin. Denna tillstándsmaskin består av ett ändligt antal tillstånd och övergångar mellan dessa tillstånd, där koden som definierar metoden exekveras. Utvidgningarna tillförs vid tillstånden, där de då tar över exekveringskontrollen och returnerar den, efter att ha avslutat sin egen exekvering, till en annan eller samma utvidgningspunkt.
Det enligt uppfinningen.angivna utvidgningskonceptet har ett antal värdefulla egenskaper. Det är ett finkornigt sätt att göra modifieringar genom att det inte är nödvändigt att överrida hela metoder, vilket är den nækanism, som finns tillgänglig i de flesta objektorienterade formalismer. I stället kan överridandet ske i vissa utvidgningspunkter inuti metoder. Utvidgningskon- ceptet utgör ett ramverk för att ta hand om den komplicitet som förorsakas av införande av många tilläggsfunktioner i ett fárdigutvecklat och levererat system. Detta möjliggörs genom att beskriva de modifikationer som förorsakas av varje utvidgning separat, varpå utvidgningarna kan i sin tur koordineras när sådant behov föreligger. Sådana koordineringar mellan tilläggs- funktioner uttrycks även som separata utvidgningar, i detta fall son1utvidgningar till tilläggsfunktionerna. Detta gör det möjligt att hantera systemets valbara delar och deras beroenden på ett modulärt sätt.
Figurbeskrivning.
Uppfinningen skall nu beskrivas närmare med hänvisning till bifogade ritningar, på vilka I fig. 1 schematiskt åskådliggör en systemplattform för ett telekommunikationssystem, som kan tillhandahålla abonnenttjäns- CSI", 517 033 - - ' ' " o n ; o u n ø | o ~ n n» 4 fig. 2 är en bild avsedd att illustrera sambandet mellan begrepp, som används vid utvidgningskonceptet enligt uppfin- ningen, fig. 3 åskådliggör utvidgningskonceptet i en översiktsvy, fig. 4-6 visar exempel på en specifikation, en realisering, resp. en utvidgningsvy av ett basobjekt, fig. 7-9 visar exempel på en specifikation, en realisering, resp. en utvidgningsvy av ett utvidgningsobjekt, fig. 10 är en vy avsedd att ge en sammanfattande översikt av relationerna mellan begreppen basobjekt, utvidgningsobjekt, och utvidgningsvy, liksom objekttypspecifikation, -realisering och -implementation, fig. 11-14 är vyer, som visar exempel, som åskådliggör användning av utvidgningsmekanismen, varvid fig. 11 visar ett ovillkorat utvidgningsfall, fig. 12 visar ett villkorat utvidgningsfall, ' fig. 13 visar ett fall innebärande en händelse-utvidgning, fig. 14 visar ett fall med flera utvidgningar vid sama utvidgningspunkt.
Föredragna utföringsformer.
Med hänvisning till fig. 1 innehåller en systemplattfor¶1för ett telekommunikationssystem ett antal funktioner, eller skikt.
Dessa skikt kan allmänt beskrivas såsom innehållande ett operativsystem i ett undre skikt 102, en därpå belägen applika- tionsplattform 104 innehållande lämpliga telekommunikationsab- straktioner i form av resursobjekt, samt därpå ett skikt 106 innehållande önskade applikationer i form av bas- och tilläggs- funktioner vilka tillhandahåller bas- och tilläggstjänster, Fortsättningsvis komer begreppet "kategori" att användas för att definiera olika typer av objekt, som ingår i skiktet 106.
En "kategori" karakteriserar närmare bestämt ett objekt syntak- tiskt, men karakteriserar också dess plats och funktion i systemets arkitektur. Nedan närmare beskrivna objekttyper av två kategorier benämnda BASE resp. EXTENSION, ingår i en implementa- tion av skiktet 106. Instanser av dessa objekt komer nedan att benämnas basobjekt resp. utvidgningsobjekt. 517 oss ~ ~ *näts- 5 Vidare förekommer nedan ett begrepp "händelser", eller "events", som används som benämning på utsändning av asynkrona meddelanden. Objekt kan begära övervakning av en "händelse" och därpå vänta på den. Händelser deklareras i en "EVENTS"-sektion i beskrivningen av en objekttyp. I skiktet 106 drivs beteendet av händelser, dvs. objekten reagerar på mottagning av asynkrona meddelanden. Händelser genereras ofta som resultat av att ett meddelande anländer på en interprocess-kommunikationslänk till en process, i vilken objektet exekverar. Med process avses här ett program under exekvering. Nedan kommer även benämningen exekveringstråd att användas för en exekveringsbana i en.process.
Varje exekveringstråd har sin egen stack och programräknare, men alla trådar i samma process delar på samma processdata (heap).
Varje basobjekttyp är konstruerad för att utföra en särskild uppgift, såsom hantering av uppställning av ett koppel i ett telefonisystem. När en sådan uppgift skall utföras skapas en instans av basobjekttypen. Detta objekt har därpå kontroll över hur uppgiften utförs. Detaljer på lägre nivåer, såsom hur resurser manipuleras för att utföra uppgiften, hanteras genonlatt basobjektet skickar ut metodanrop till objekt av andra kategori- er, t.ex. av kategorien "EVENTGENERATOR". Objekttyper av denna kategori representerar resurser'eller grundläggande tjänster, som anropas och som underrättar sina användare genom att generera events, dvs. händelser.
Basobjekttyper' är avsedda att konstrueras så att deras respektive uppgifter kan utföras med minimal koordinering med andra uppgifter som pågår i systemet, dvs. med minimal koordine- ring mellan basobjekt. Detta återspeglas i egenskaperna hos bas- och.utvidgningskategorierna: varje basobjekt exekveras i en semi- parallell s.k. exekveringstråd, varken bas- eller utvidgningsob- jekt kan ha några utifrån,anropbara metoder och de kan inte generera några händelser. Dessa egenskaper kommer att beskrivas närmare nedan.
En annan betydelsefull aspekt av bas- och utvidgnings- kategorierna är att de stödjer ett utvidgningskoncept, som tillåter att ett systems beteende kan modifieras och utvidgas utan att det är nödvändigt att ändra systemets existerande 5,, m 6 implementering. I stället uppnås modifiering och utvidgning av beteendet genom laddning av enbart utvidgningarna i systemet.
Dessa kommer då att med hjälp av utvidgningskonceptet indirekt modifiera systemets beteende genom att ta över exekveringskon- trollen i vissa förutbestämda utvidgningspunkter.
Baskategorien skall användas för objekttyper, som implemen- terar basfunktionalitet, vilken kan behöva utvidgas i framtiden, s.k.basfunktioner.Utvidgningskategorienanvändsförcflflekttyper som implementerar utvidgningar till dessa basfunktioner, s.k. utvidgningsfunktioner.
Beteendet hos en objekttyp definieras genom att beskriva beteendet hos varje metod som en ändlig tillståndsmaskin genom användning av ett specifikt konstruktionsspräk för objekt- modellering, fortsättningsvis hänvisat till som "konstruktions- språket". En sådan ändlig tillstándsmaskin består av ett ändligt antal tillstånd och övergångar mellan dessa tillstånd, där kod exekveras som övergångsaktioner. De mest naturliga punkterna för att tillföra utvidgningar, utvidgningspunkterna, är därför tillstànden. En utvidgning kan konstrueras att ta över exekve- ringskontrollen i en utvidgningspunkt och returnera kontrollen till en annan, eller sama utvidgningspunkt i samma metod. Ur denna synpunkt kan utvidgningar betraktas som tillägg av nya tillstånd och. tillståndsövergángar till en tillståndsmaskin.
Dessa tillstånd och tillståndsövergàngar modifierar då denna tillstàndsmaskins existerande tillständsövergángar.
Alla tillstànd i en metod kan alltid användas som utvidg- ningspunkter, men det är även möjligt att explicit specificera en utvidgningspunkt utan att introducera ett nytt tillstånd, en s.k. explicit benämnd utvidgningspunkt.
Utvidgningspunkter klassificeras efter om de tillåter ut- vidgningar från punkten, terminering av utvidgningar vid punkten eller om de kan användas för båda ändamàlen. För dessa punkter komer fortsättningsvis följande benämningar att användas. - Övertagningspunkter (TOP - Take Over Point), som är utvidgningspunkter där exekveringskontrollen kan överföras till en utvidgningsmetod hos ett utvidgningsobjekt.
- Fortsättningspunkter (COP - Continuation Point), som är 51, 032, ::.:::f~:ïï:::æ 7 utvidgningspunkter där exekveringskontrollen kan àterföras fràn en utvidgningsmetod. - Övertagnings- och fortsättningspunkter (TOP COP - Take Over and Continuation Point), som är utvidgningspunkter, som kan användas både som övertagningspunkt och fortsättningspunkt.
Från början (default) är alla tillstånd i ett objekt övertagnings- och fortsättningspunkterx Detta kan. emellertid ändras i objekttypspecifikationen om det föreligger ett behov av att göra begränsningar som måste hälla för alla utvidgningar.
Samma slags utvidgningar kan även göras i utvidgningsvyer, ett koncept som kommer att beskrivas närmare nedan.
Utvidgningskonceptet medger också definiering av utvidg- ningar till utvidgningar. Utvidgningar kan i själva verket definieras på ett godtyckligt antal nivåer' med skapande av kedjor, eller skikt av utvidgningar. Därför är det nödvändigt att definiera en vokabulär så att det är möjligt att skilja mellan t.ex. den "översta" utvidgningen i en utvidgningskedja och hela kedjan av utvidgningar.
Begreppet "basobjekt" används för att indikera det objekt som omfattar den ursprungliga, outvidgade basfunktionen. Om det finns risk för missförstånd används benämningen "ursprungligt basobjekt".
Utvidgningar hänvisas till såsom "utvidgningsobjekt".
Begreppet närmaste bas (immediate base) hänför sig till ett basobjekt eller ett utvidgningsobjekt varifrån en utvidgning börjar, dvs. en utvidgning tar över från sin närmaste bas.
Den mer generella benämningen bas kommer att användas för att avse hela kedjan av utvidgningar, innefattande det ursprung- -liga basobjektet, till vilket ett visst utvidgningsobjekt bildar utvidgning. Om det finns risk för missförstånd används benäm- ningen "hela basen". r Det ovan sagda illustreras i fig. 2 där ett objekt 202, "Base0bject", är det ursprungliga basobjektet. Till basobjektet 202 kan utvidgningsobjekt 204 och 206, "Extension Objectl" resp.
"Extension Objectz", knytas. Utvidgningsobjektet 206 utgör den närmaste basen för ett ytterligare utvidgningsobjekt 208, "Ex- tensionObject2l“. Basobjektet 202 och utvidgningsobjektet 206 utgör bas för utvidgningsobjektet 208.
En specifikation för ett utvidgningsobjekt definierar vid vilka utvidgningspunkter i utvidgningsobjektet som utvidgningen antas ta över kontrollen och vid vilka utvidgningspunkter det kan áterlämna kontrollen. När ett utvidgningsobjekt erhåller kontroll, är det en förutdefinierad utvidgningsmetod, EXTENSION METHOD, som startar exekveringen. Runtime-systemet tar hand om skapande av utvidgningsobjekt och invokering av deras utvidg- ningsmetoder vid de angivna utvidgningspunkterna.
Såsom framgått av ovanstående kan även utvidgningsobjekt i sin tur erhålla utvidgningar. Utvidgningsmetoder anropas alltså alltid implicit från en basmetod eller från en annan utvidgnings- metod.
Ett utvidgningsobjekt har access till attribut och metoder hos det utvidgade objektet, dvs. det basobjekt eller det utvidgningsobjekt, son1utvidgningen tar över kontrollen från. Det finns emellertid några sätt att begränsa denna access. För det första är det endast de attribut och metoder, som är deklarerade i en objekttypspecifikation, som kan accessas. Attribut och metoder som är deklarerade endast i en realisering är inte tillgängliga för utvidgningar. I specifikationen är det vidare möjligt att definiera accessrestriktioner för' varje utvidg- ningspunkt, genom att definiera att endast en viss deluppsättning av attributen och metoderna i specifikationen är tillgängliga för de utvidgningar som tar över kontrollen i en viss utvidgnings- punkt.
Objekttypspecifikationen för ett utvidgningsbart objekt fungerar sålunda som ett gränssnitt som begränsar mängden information som är synlig och tillgänglig för utvidgningar av detta.basobjekt. Det finns emellertid ett extra.gränssnittsskikt, som används tillsamans med,utvidgningskonceptet, och detta är det gränssnitt, som definieras av utvidgningsvyerna. En utvidg- ningsvy definierar en deluppsättning av information i specifika- tionen av ett utvidgningsbart objekt, som skall kunna accessas av de utvidgningar som använder vyn.
Fig. 3 åskådliggör utvidgningsprincipen. I fig. 3 represen- terar ett block 302 specifikationen av ett basobjekt, och ett ø u v . »o 517 oss :aza-ïšglšï-ffi* 9 block 304 specifikationen.av ett utvidgningsobjekt. Specifikatio- nen 302 innehåller en grundmetod, "BODY", representerad av ett block 306 i vilket en ändlig tillstàndsmaskin 308 med fyra tillstånd antyds. Dessa tillstànd innefattar två utvidgnings- punkter sl och s2. Utvidgningspunkterna sl och s2 är i en utvidgningsvy, indikerad.med ett block 310, deklarerade som över- tagningspunkt resp. fortsättningspunkt, indikerat genon1"TOP sl;" resp. "COP s2;". Ett block 312 representerar en ytterligare metod "Method ml" i specifikationen av basobjektet genom en antydd ändlig tillstàndsmaskin med fem tillstånd.
Specifikationen 304 av utvidgningsobjektet innehåller en utvidgningsmetod "EXTENSION METHOD extl", som i ett block 314 åskådliggörs såsom innehållande en ändlig tillstàndsmaskin med tre tillstånd innefattande ett starttillstånd t och ett sluttill- stånd s2. I ett block 316 antyds en.ytterligare utvidgningsmetod, "METHOD ext2", såsom innehållande fyra tillstånd.
Utvidgningspunkterna sl och s2 âr synliga från utvidgnings- objektet genonzutvidgningsvyn 310. När metoden 308 hos basobjekt- et när tillståndet sl kopplar exekveringskontrollen över till utvidgningsmetoden extl, indikerat med pil 318. Utvidgnings- metoden extl börjar exekvera från sitt ursprungstillstånd t. När slutligen exekveringen når tillståndet s2 i utvidgningen, kopplar kontrollen tillbaka enligt pil 320 till basen, som fortsätter sin exekvering från tillståndet s2. Detta sköts av runtimesystemet, dvs. konstruktören av utvidgningen behöver inte hantera detta explicit i sin kod, annat än vid en deklaration i utvidgningen.
Kategorien BASE är, såsom nämnts tidigare, den objekttyp- kategori sonlanvänds för modellering av basfunktioner, funktioner vilka kan utvidgas senare. Basobjekt har vissa speciella egenskaper. En betydelsefull egenskap är att exekveringen av ett basobjekt alltid sker i en~semi-parallell styrtråd. Detta är naturligt eftersom ändamålet med ett basobjekt är att utföra en uppgift som kan äga rum oberoende av andra uppgifter som kan pågå parallellt i systemet. Under exekvering kan objektet inträda i vänttillstånd, vilka är tillstånd där exekvering inställs tills vidare och styrningen övergår till en annan tråd. Exekveringen återupptas när en viss händelse, som avvaktas i vånttillstándet n u u . nu u 517 033 '::fIII=' 10 mottages.
I ett användarperspektiv kan denna egenskap uppnås genom att skapa en.ny basobjektinstans i den aktuella exekveringstráden och schemalägga grundmetoden "BODY" hos denna basobjektinstans för senare exekvering i en ny tråd. En trådomkoppling sker när den först aktuella tråden inträder i ett vänttillstånd. I detta steg får den nyskapade tråden en chans att starta exekvering. Det kan emellertid finns andra trådar i processen, som också är färdiga att starta exekvering, så det finns ingen garanti för att den nya tråden kommer att starta exekveringen i just detta ögonblick. Den enda garantin är att den kommer att påbörja exekvering så småningom.
I samband med skapandet av den nya tråden returneras en referens till den nyskapade objektinstansen. Denna referens kan senare användas för synkronisering med terminering av den skapade tråden, genom att avvakta den händelse som alltid uppträder när en tråd terminerar. Referensen kan även användas som ett argument eller lagras i ett attribut, men den skall inte användas för något annat ändamål.
En annan 'viktig egenskap hos basobjekten är att deras attribut och metoder är dolda för alla andra objekt med undantag av deras utvidgningsobjekt.
För ett basobjekt kan det finnas både en specifikation och en realiseringsbeskrivning, båda innehållande beteendebeskriv- ningar med användning av konstruktionsspráket. Ändamålet med specifikationen är huvudsakligen att verka som en gränssnittsbe- skrivning av basobjektet. Det finns olika slags klienter till ett basobjekt för vilka denna specifikation är relevant.
För det första finns det utvidgningsobjekten, som utvidgar basobjektets beteende. För dessa verkar specifikationen som en gränssnittsbeskrivning son\visar'tillstånd, attribut och1netoder, som är tillgängliga för utvidgningarna. Ytterligare accessbe- gränsningar kan även införas för utvidgningar genom den utvidg- ningsvy de använder, men de kan aldrig accessa mer än vad som visas i basobjektets specifikation.
För det andra definierar specifikationen det gränssnitt mot klientobjekten som behöver skapa instanser av basobjektet. Detta v v-v- . s nu t. 517 oss Iš. ll gränssnitt definieras av metoder hos basobjekttypen. De avgör vilka parametrar som kan användas vid skapande av den nya instansen när en ny exekveringstràd skall skapas enligt vad som ovan beskrivits.
Ett annat ändamål med specifikationen är att ge en hög- nivábeskrivning av basobjekttypens beteende med utelämnande av implementationsdetaljer som är onödiga för uppnàende av för- ståelse av objekttypens funktion, Den höga abstraktionsniván ástadkommes delvis genom ett abstraktionsskikt som skapas av en underliggande objektlogik, som används av basobjektet, men även genom lokala metoder i basobjektet som omfattar användningen av objektlogiken. En rimlig abstraktionsnivå i en specifikation kan vara att visa basobjektets vänttillstànd i specifikationen och kanske vissa utvalda icke-vänttillstánd, som är fundamentala för förståelse av' basobjektets funktion. Koden för att exekvera mellan de visade tillstånden kan därpå införas i lokala metoder som deklareras, men ej nödvändigtvis beteendespecificeras, i specifikationen.
När det skall avgöras vad som skall visas i specifikationen och inte, måste hänsyn även tas till vilka delar av objekttypen som kan underkastas utvidgningar i framtiden. Den mest utvidg- ningsbara specifikationstaktiken är att visa alla tillstånd, både vänttillstànd.och icke-vänttillstánd, och alla explicit namngivna utvidgningspunkter, i specifikationen av BODY-metoden och att endast inkapsla en aktionskod son1används vid tillståndsövergång- ar, i lokala metoder. Om det á andra sidan avgörs att vissa delar av beteendet ej behöver vara utvidgningsbara, kan dessa delar i sin helhet införas i lokala metoder. Dessa lokala metoder kan därpå definieras antingen i specifikationen eller realiseringen eller t.o.m. på implementationsnivån. Om de skall anropas från specifikationen, mäste de emellertid deklareras i specifikatio- nen. Ãndamålet med objekttyprealiseringar är att de skall användas för de delar av basobjekten som inte behöver, eller kan vara utvidgningsbara, och som ej är nödvändiga att visa i specifikationen för att skapa en högnivåbeskrivning, men där en definition med ett konstruktionsspràk föredras i stället för av u.. n I n - .n 517 033 *zfiiiïf 12 användning av implementationsspråk:direkt. Definitioner av lokala metoder som inkapslar aktionskod kan placeras här. I en realise- ring är det även. möjligt att hoppa över i specifikationen ingående beteendedefinitioner, och ge en mera detaljerad definition. En sådan nydefinierad beteendedefinition bör utgöra en förfining av beteendespecifikation, sonnges i specifikationen.
Det bör framhållas att attribut eller tillstånd som finns definierade eller deklarerade i en realise- inga metoder, ring kommer att vara tillgängliga för utvidgningar av denna objekttyp. Det är endast informationen i obj ekttypspecifikationen som är synlig för utvidgningarna.
Det är även möjligt att specificera hela basobjektet med användning endast av en specifikation i konstruktionsspråket, och ingen realisering i detta språk. I detta fall kan implementa- tionsspråket användas för att definiera vissa av de aktionsmeto- der som anropas i specifikationen, där så är lämpligt. Över- vakning, "MONITOR", och stoppa övervakning, "STOP MONITOR", av händelser måste antingen i specifikationen eller i realiseringen. Om "skapande/- emellertid utföras i konstruktionsspråket borttagning" av objekt utförs i konstruktionsspråket måste likaledes motsvarande meddelande "avlägsna/ny" för samma objekt utföras i konstruktionsspråket, antingen i specifikationen eller realiseringen. Onldäremot skapande/borttagningwitförs i implemen- tationsspråket, måste även motsvarande avlägsna/ny utföras i implementationsspráket.
För grundmetoden (BODY) hos objektet är det obligatoriskt att ge en beteendedefinition med konstruktionsspråket i specifi- kationen, även om denna definition kan tillåtas vara ganska enkel, och kan överridas i realiseringen. För andra metoder i basobjekt är, som nämnts, användningen av konstruktionsspråket valfri. f I fig. 4 och 5 ges exempel på specifikation resp. reali- sering av ett objekt "theBase" av basobjekttyp.
I den i fig. 4 visade specifikationen har från rad 12 beteendet hos grundmetoden, "BODY'method“, definierats. Metoderna "methodl" och "method2“, och "CONSTRUCTOR", har emellertid endast deklarerats, från rad 7. CONSTRUCTOR är en metod som exekveras o ø u - .n 517 oss šïï: %;%ï::=- Ilšï-ífêïë 13 när en instans av en objekttyp skapas.
I den i fig. 5 visade realiseringen definieras från rad 2 beteendet hos metoderna "CONSTRUCTOR", "methodl" och "method2".
Grundmetoden anges vara som den i specifikationen, rad 22.
Såsonlnämnts tidigare tjänar specifikationen.av'basobjektty- pen.sonnen.gränssnittsbeskrivning för dess klienter. Utvidgnings- vyer utgör även ett slags gränssnittsbeskrivningar. De används för att ytterligare begränsa accessen till ett utvidgningsbart objekt för deras utvidgningar. Ändamålet med att ha ett extra gränssnittsskikt är att uppnå viss ytterligare kontroll över vilka utvidgningar som kan göras till ett visst objekt. Olika utvidgningsvyer kan skapas för olika ändamål. Om exempelvis en viss vy är konstruerad för användning av faktureringsfunktioner och statistikfunktioner kan det vara tillräckligt att visa enbart en liten delsats av det utvidgade objektets tillstånd och attribut. En annan användning är att definiera olika vyer för olika delar av en funktion så att användningen av en utvidgning av en viss vy innebär att endast en viss funktion hos det utvidgade objektet modifieras. Detta och liknande information kan vara av värde när man undersöker vilka koordinationer mellan tilläggsfunktioner som kan vara nödvändiga att implementera när en ny tilläggsfunktion introduceras i systemet.
Ett basobjekt kan således ha flera olika utvidgningsvyer.
Varje utvidgningsobjekt är emellertid.konstruerat för en särskild utvidgningsvy. Utvidgningsvyerna används endast under konstruk- tionsfasen, för olika analysändamål, och existerar inte som separata enheter i runtime-omgivningen.
I fig. 6 visas exempel på en utvidgningsvy av objektet theBase av basobjekttyp i fig. 4. En utvidgningsvy används för att skapa begränsade vyer av specifikationer av utvidgningsbara objekt. Utvidgningsvyer kan inte definiera någon information som inte redan finns tillgänglig i basobjektet. De kan endast tillföra ytterligare begränsningar och dölja information, som redan är synlig i basobjektet. Begränsningar som redan finns specificerade i basobjektet kan ej övverridas.
I utvidgningsvyn ges först en lista av metoder och attribut »nu uuu øuu n u n uu uu uu u uu p u u u u uu u u u uu ~ u un u u u u ucuu o o v u uu :uu uu; uu uuo uu u u un uu u u, u u uu u u u . u uu u u v = e == v== m: :nu u: 14 i basobjektet, som skall vara möjliga att nå genom utvidgningar, jfr. raderna 3-6 i fig. 6. Denna lista definierar en delsats av attribut och metoder som existerar i basobjektet. Därpå listas de utvidgningspunkter som skall finnas tillgängliga för utvidg- ningarna. För varje utvidgningspunkt i vyn specificeras följande information: - Utvidgningspunktens namn, jfr. rad 7, 11, 15 resp. 18 i fig. 6: TOP WAIT STATE, TOP COP STATE, TOP STATE resp. COP STATE.
För utvidgningspunkter som är tillstånd, ges nyckelorden STATE resp. WAIT STATE i namnet. För explicit namngivna utvidgnings- punkter ges ingen sådan information. Vidare innehåller namnet typen av utvidgningspunkt: övertagningspunkt TOP, fortsätt- ningspunkt COP eller övertagnings- och fortsättningspunkt TOP COP anges. Som tidigare nämnts är frán.början alla utvidgningspunkter i basobjektet av typen övertagnings- och fortsättningspunkt. Här kan en utvidgningspunkt begränsas att tillåta användning endast som övertagningspunkt eller endast som fortsättningspunkt. Om grundinställningen skall användas måste ändock nyckelordet TOP COP ges.
- För varje övertagningspunkt finns det en lista av attribut och metoder i basobjektet som kommer att finnas tillgängliga för utvidgningsmetoderna som startar från den specificerade övertag-' ningspunkten, jfr. rad 9, 12-13, resp. 16 i fig. 6. Denna lista utgör en deluppsättning av attribut och metoder, som listas i början av utvidgningsvyn.
- För varje övertagningspunkt ges en lista av tillåtna fortsättningspunkter COPs, jfr. rad 8 i fig. 6. Denna information används för att avgöra vid vilka utvidgningspunkter en utvidgning som tar över kontrollen i den aktuella övertagningspunkten tillåts fortsätta.
- För varje övertagningspunkt anges typen av uttryck som används för avgrening i basobjektets tillstànd. Detta är endast relevant för icke-vänta-tillstånd.
Det är inte möjligt att hänvisa till lokala variabler hos metoder i basobjektet i en utvidgningsvy. .
Eftersom utvidgningskonceptet medger även utvidgningar till utvidgningar, kan utvidgningsvyer skapas både för basobjekt och f. anno 517 oss 15 för utvidgningsobjekt.
För utvidgningsobjekt gäller samma begränsningar som för basobjekt. Deras medlemmar kan inte accessas av några andra objekt än deras utvidgningar. Även för utvidgningsobjekt kan både en specifikation och en realisering ges. För utvidgningsmetoden hos ett utvidgningsobj ekt är det obligatoriskt att ge en beteendedefinition med konstruk- tionsspràket i specifikationen, ehuru denna definition tilláts vara ganska enkel, och den kan överridas i realiseringen. För andra metoder i utvidgningsobjekten är användning av konstruk- tionsspràket valfri.
I fig. 7, 8 och 9 ges exempel pá en specifikation av ett objekt av utvidgningstyp, "theExtObj", objekt, resp. en utvidgningsvy av objektet i fråga.
Utvidgningar är inkapslade i objekt av kategorien EXTENSION.
Specifikationen av ett utvidgningsobjekt, jfr. fig. 7, rar vilken vy som utvidgningsobjektet använder, jfr. rad 3, vid vilka EXTENSION METHOD kontrollen, jfr. rad 8, samt prioritetsklassen för utvidgnings- en realisering av sama definie- övertagningspunkter dess tar över metoden, jfr. rad 7. Flera olika utvidgningsobjekt kan använda samma vy av ett basobjekt. Multipla utvidgningar kan t.o.m. starta från samma utvidgningspunkt i sama objekt.
Metoderna i ett utvidgningsobjekt exekveras alltid i sama trád som basobjektet. All övervakning av händelser som företas i basobjektet är vidare även giltig i utvidgningsmetoden.
Utvidgningsmetoden kan med andra ord mottaga händelser som har förutsatt att händelsegeneratorns övervakats i basobjektet, identitet har gjorts tillgänglig för utvidgningsmetoden via en vy.
Tillstànden i specifikationerna för EXTENSION METHODS kan användas som övertagnings-:och fortsättningspunkter, på sama sätt som tillstànd i basobjekten. Realiseringarna av utvidgningsmetoderna, jfr. fig. 8, kan pá samma sätt tillföra fler tillstànd, jfr. rad 2 och 8, specifikationen av BODY-metoderna hos men återigen är de inte tillgängliga för några utvidgningar.
Ytterligare utvidgningar till utvidgningsobjektet theExtObj kan göras enligt vad som antyds i den endast i form av en stome p | o ø nu 517 oss :; u: 16 presenterade utvidgningsvyn i fig. 9.
Fig. 10 ger' en sammanfattande översikt av relationerna mellan begreppen basobj ekt , utvidgningsobj ekt , och utvidgningsvy, liksonlobjekttypspecifikation, -realisering och -implementation.
I fig. 10 indikerar ett stapelblock 1002 specifikation 1004 och realisering 1006 i ett konstruktionssprák, 1008 i ett målspråk. På samma sätt indikerar ett stapelblock 1010 specifikation 1012 och realisering 1014 i ett konstruktionsspråk, samt implementation samt implementation 1016 i ett målspråk.
Specifikationen 1004 av basobjektet utgör en specifikation på en lämpligt hög abstraktionsnivå som kan användas för att erhålla en total förståelse av objekttypens funktion. Specifika- tionen innehåller både attribut och metodsignaturdeklarationer liksom beteendespecifikationer av (en delsats av) metoder. Alla tillstànd som visas i beteendespecifikationen av BODY-metoden kan användas av utvidgningar.
Realiseringen 1006 av basobjektet har en mera detaljerad beskrivning av objekttypens beteende. Den kan överrida beteende- definitioner av metoder i obj ekttypspecifikationen. Realiseringen kan även definiera beteendet hos deklarerade metoder men ej beteende specificerat i specifikationen. Nya attribut och metoder, som är lokala för realiseringen kan tillföras. Informa- tionen som tillförts i realiseringen är ej tillgänglig för utvidgningar. En specifikation kan ha fler än en realisering.
Implementationen 1008 av basobjekttypen i nálspråk är en fullständig implementation av objekttypen. Den består av genererad och, valfritt, manuellt skriven källkod för màlspråket (C++). De genererade delarna garanterar att implementationen är förberedd för utvidgningar enligt objekttypspecifikationen.
Implementationskoden genereras med användning av objekttyp- specifikationen och, valfritt, en eller flera av realiseringarna av objekttypen i konstruktionsspråket.
Vid 1018 och 1020 indikeras utvidgningsvyer av basobjekttyp- specifikationen 1004. Det kan finnas flera vyer av samma objekttypspecifikation, men varje vy är alltid konstruerad för exakt en objekttypspecifikation. Nya vyer kan skapas utan att påverkabasobjektspecifikationen,-realiseringeneller-implemen- - v~_- e. uv-o 517 053 17 tationen. Basobjekttypspecifikationen.1004 och dess vyer 1018 och 1020 används vid konstruktion av utvidgningsobjekttyper.
Specifikationen 1012 av utvidgningsobjekttypen specificerar utvidgningsobjektet.pá samma höga abstraktionsnivà souxspecifika- tionen av basobjekttypen. Även realiseringen 1014 och implementa- tionen 1016 av utvidgningsobjekttypen förekommer pà samma sätt som för basobjekttypen.
Varje specifikation för utvidgningsobjekttypen konstrueras alltid med användning av exakt en utvidgningsvy 1022. Analogt med förhållandet vid basobjekttyper kan för en utvidgningsobjekttyp en eller flera utvidgningsvyer definieras.
Kod i mälspràket (C++) kan genereras för objekttypspecifikationer och -realiseringar. Allarmetoder, innefattande CONSTRUCTORq BODY samt utvidgningsmetoder i specifikationen måste upprepas i realise- Beträffande kodgenerering kan följande nämnas. ringen. Varje realisering av basobjekttyp och varje realisering av utvidgningsobjekttyp måste följa följande regler: - Varje metodsignatur (the mechodname dompaormalzxrguments [RETURNS dmmyype] part) som anges i specifikationen måste alltid existera även i realiseringen. Detta krav kan uppfyllas pà ett av nedan beskrivna sätt.
Med signatur avses här ett begrepp som identifierar det avsedda elementet, här en metod, genom att ange dess namn, typ av argument samt typ av returvärde.
- Om endast signaturen hos en metod anges i specifikationen kan BODY-metoden the IS BEGIN...END part) antingen utelämnas eller anges i realiseringen. (the dom_BehaviourBody, i . e .
Om.BODY-metoden utelämnas i realiseringen, genereras endast en stomme av metoden i málspráket.
- Ou1BODY-metoden.anges i realiseringen, genereras fullstän- dig kod i màlspráket. »V - Om det finns en BODY-metod redan i specifikationen, kan nyckelorden AS SPECIFICATION användas i realiseringen för att ange att BODY-metoden i realiseringen är exakt densamma som i specifikationen. Fullständig málspràkskod kommer att genereras även i detta fall. Koden komer ej att finnas tillgänglig för manuella ändringar eller tillägg. 517 oss .-. n., 18 - Om både specifikationen och realiseringen definierar en BODY-metod för sama metod, genereras fullständig kod från den i realiseringen angivna BODY-metoden. Detta innebär att det i realiseringen definierade beteendet alltid överrider det i specifikationen angivna beteendet.
Attribut angivna i. specifikationen skall. ej repeteras i realiseringen. På grund av att en nætoddefinition angiven i realiseringen helt överrider motsvarande definition i specifika- tionen, måste även lokala variabler angivna i specifikationen upprepas i realiseringen.
I det följande beskrivs med hänvisning till fig. 11-14 några exempel, som åskådliggör användning av utvidgningsmekanismen.
I fig. 11 visas exempel på en ovillkorad utvidgning.
Exemplet utgår från förutsättningen att specifikationerna av ett basobjekt resp. ett utvidgningsobjekt anges såsom visas i figuren. Vidare anges i en ej visad utvidgningsvy ett tillstånd analyzing, indikerat vid 1102, såsom TOP, och tillstånd calling, indikerade vid 1104 och 1106, såsom COP.
I allmänhet kontrolleras alla exekvering när ett tillstånd deklarerat som TOP. Om det finns en utvidgningsmetod som. utgår från ett aktuellt TOP-tillstånd, utvidgningsobjekt när anropas utvidgningsmetoden. Runtime-systemet kommer att se till att motsvarande utvidgningsobjekt har skapats någon gång före den första invokeringen av utvidgningsobjektets utvidgningsmetod. Om det inte är första gången under exekveringen av basen som utvidgningsmetoden anropas, kan den äldre instansen av utvidg- ningsobjektet användas igen. Detta objekt komer sålunda att återta sitt tillstånd mellan invokeringar av dess utvidgnings- metod under exekveringen av samma bas. Instanser av utvidgnings- objekttyper skapas för varje basobjekt, dvs. ett utvidgnings- objekt delas aldrig av två baser.
I det i fig. indikerat med pil 1108, varje gång exekveringen av basen når tillståndet 1102 analyzing. 11 angivna exemplet sker alltid övergång, till utvidgningsmetoden villkorslöst Det finns olika sätt att avsluta exekveringen av en utvidgningsmetod. För det första kan EXIT användas för att terminera exekveringen av hela exekveringstràden. För det andra 517 035 19 (TO BASE) som indikera áterlämnande av kontroll från en finns det en specifik nfijlighet, benämnd BACK används för att utvidgning till basen där den tog över kontrollen. För det tredje sluttillstånd användas, men använt i en kan ett ordinärt utvidgningsmetod, har det speciell semantik. I detta fall måste det föreligga ett COP-tillstånd i basen, som har samma namn som sluttillståndet hos utvidgningsmetoden. När exekvering når detta sluttillstånd, avbrytas, och exekvering komer att fortsätta i COP-tillståndet komer exekvering i utvidgningsmetoden att i basen.
Skillnaden mellan EXIT till tillståndet i basen varifrån utvidgningen utgick, och BACK ligger i vad som kommer att hända om fler än en utvidgning tar över kontrollen i samma TOP. När BACK används komer nästa utvidgning i tur att exekveras.
Utvidgningarna i den högsta prioritetsklassen exekveras alltid först och om det finns fler än en utvidgning i sama priori- tetsklass, exekveras de normalt i godtycklig ordning. Om det emellertid finns en interferensutvidgningsentitet som har satt en viss exekveringsordning mellan utvidgningarna, exekveras de i denna ordning. mn det sker EXIT till TOP-tillståndet i. basen varifrån exekveringen startade, komer basens TOP-tillstånd att exekveras igen med alla anslutna utvidgningar likaså exekverade igen.
I fig. 12 visas exempel på en villkorad utvidgning.
Villkorade utvidgningar är sådana, som exekveras endast om vissa villkor uppfylls. Detta fall specificeras med hjälp av ett CASE- uttryck som.hör saman med ursprungstillståndet hos utvidgnings- metoden. Exemplet utgår från förutsättningen.att specifikationer- na av ett basobjekt resp. ett utvidgningsobjekt anges såsom visas i figuren. Vidare anges i en ej visad.utvidgningsvy ett tillstånd analyzing, såsom TOP. a och,b är attribut i basobjektet.
När basobjektet når tillståndet analyzing, vid 1202, visar det sig att det finns en utvidgning som utgår från denna TOP- punkt. Utvidgningsmetoden kommer då att påbörja sin exekvering genom ett CASE-uttryck, sonlhör samman med initialtillståndet hos utvidgningsmetoden, indikerat vid 1204. Värdet hos detta uttryck används för att förgrena flödet. o u u ø n» .n 517 933 20 I detta fall rör det sig om en enkel RESULT-referens till värdet av CASE-uttrycket i basen, indikerat vid 1206. Uttrycket (a+b) indikerade grenen, indikerad vid 1208, och exekvering fortsätter i utvidgningen. Annars väljs DEFAULT-grenen, indikerad vid 1210, beräknas. Om dess värde är 3 väljs den av värdet 3 och exekveringskontrollen lämnas tillbaka till basen. Basen.màste då återvärdera CASE-uttrycket och kan därpå fortsätta med den passande grenen.
I det ovan givna exemplet var CASE-uttrycket som hör samman med ursprungstillstàndet hos utvidgningsmetoden mycket enkelt.
Men det skulle kunna utgöras av ett godtyckligt uttryck av skalär typ.
RESULT är ett nyckelord, som används för att en utvidgning skall kunna hänvisa till utfallet av ett CASE-uttryck i ett icke- vänttillstànd i basen. RESULT kan användas i varje uttryck men dess värde kan ej ändras under exekvering av hela utvidgnings- metoden.
DEFAULT gren, föreligger det ett fel. Om utvidgningsmetoden har Om det varken föreligger någon passande gren eller en gren med sama värde som basen överrider utvidgningsmetoden basen.
Om utvidgningen utgår från ett vänttillstànd i basen, måste ursprungstillstàndet hos utvidgningsmetoden likaså vara ett vänttillstànd som specificerar ytterligare händelser som det väntar på. I ett vänttillstànd samlas alla väntade tillstånd för alla utvidgningsmetoder vid denna punkt i ett enkelt WAIT-FOR- EVENT .
Fig. 13 ger exempel på en händelse-utvidgning och utgår från att specifikationerna av ett basobjekt och ett utvidgningsobjekt är som i figuren. Vidare specificeras ett tillstånd Ring;B-som TOP i en ej visad utvidgningsvy.
När basobjektet når tillståndet Ring;B, indikerat vid 1302 finner man att det finns en utvidgning som utgår från denna TOP- punkt. Runtime-systemet måste då samla information från utvidg- ningsobjektet beträffande vilka händelser som skall bevakas, och sätta saman denna information med vänttillständsinformationen i basobjektet. På detta sätt sammansatt vänttillstànd. Beroende på vilka händelser som därpå skapas och introduceras ett n n a nn n... n nu n I I I n nn n n n nn -n n n n n n nn n n n nnnn n n nn nnn nn un nn n n nn nn n v n n nu; n n n . n nn n e' n n _- f: -u :nun :s 21 uppträder, kommer antingen utvidgningen eller basen att ex- ekveras. Om Block_Ev, indikerat vid 1304, specificeras i utvidgningen, exekveras utvidgningsmetoden. Basen exekveras om Off_hook, specificerat i basen och indikerat vid 1306, mottages.
Två utvidgningar kan vänta på samma händelse, även samma händelser som basen. Utvidgningen med den högsta prioriteten kommer då att exekveras.
Utvidgningar till vänttillstànd kan ej exekvera BACK (TO BASE), de màste fortsätta till ett COP-tillstànd i basen eller EXIT. Om exekveringen av en utvidgningsmetod leder tillbaka till inledningstillstándet hos utvidgningsmetoden Start i exekveras utvidgningsmetoden igen, næn (t.ex. ovanstående exempel), denna gång avvaktas endast de i utvidgningsmetoden specificerade händelserna. Om "hela" vänttillstándet skall införas igen, måste vänttillstándet definieras som en TOP COP-punkt i basen, och "fortsätt till" TOP COP-tillståndet måste anges i utvidgnings- metoden.
Det är även möjligt att ha flera utvidgningar till en och samma TOP-punkt i basobjektet. I detta fall måste alla utvidg- ningsobjekt organiseras i en särskild prioriteringsordning och exekvering sker enligt denna prioriteringsordning, dvs. utvidg- ningsobjektet med den högsta prioriteten exekveras först. Om denna utvidgning âterlåmnar sin exekveringskontroll till basen, exekveras utvidgningsobjektet med den näst högsta prioriteten.
Om alla utvidgningar áterlämnar exekveringskontrollen, kommer även basen att exekveras. mn en utvidgningsmetod går till en fortsättningspunkt i basen komer inga fler utvidgningsmetoder att hanteras. Exekve- ringen fortgår helt enkelt i basen. Tillståndet "continued to" kan.naturligtvis ha utvidgningar. Onxdetta är fallet startar allt på nytt. r I fig. 14 ges ett exempel med tre utvidgningsmetoder m2, m3 och. m4,, indikerade 'vid 1402, 1406, och en. bas, indikerad vid 1408, med en utvidgningspunkt R, 1410, som är deklarerad som TOP COP, indikerat vid 1412.
Den första utvidgningen genomför "fortsätt till" TOP COP i 1404 resp. indikerad vid basen, indikerat med pil 1414. De två andra utvidgningsflödena u o o ø uu 517 oss ~ 22 tar över från TOP COP-tillståndet 1410, indikerat vid 1416 resp. 1418. Utvidgningsmetoden m3 återför exekveringskontrollen till basen genom att använda BACK. Om m3 har högre prioritet än m4, exekveras m3 först, följt av m4, under förutsättning att m3 áterlämnar exekveringskontrollen, indikerat vid 1420. Om m4 har högre prioritet än m3, exekveras endast m4. I detta fall har m3 aldrig någon möjlighet att exekveras på grund av att m4 aldrig återgår till basen.
Det kan även finnas objekttyper som implementerar inter- aktionshanterande utvidgningsfunktioner, vilka hanterar inter- aktion mellan tilläggsfunktioner. Användning av interaktions- tilläggsfunktioner'beskrivs t.ex. i de tidigare svenska patentan- sökningarna 93 02024-6 och 94 00209-4. De åtgärder som beskrivs i den senare ansökningen med hänvisning till de däri ingående figuerna 15a/15b såsom utförda av en basfunktion, skulle således kunna utföras med hjälp av ett interaktionshanterande utvidg- ningsobjekt. Därvid kan t.ex. det ovan med hänvisning till fig. 14 beskrivna konceptet avseende anslutning av flera utvidgningar till en och sama TOP-punkt i. ett basobjekt komma till an- vändning. Ett interaktionshanterande utvidgningsobjekt skulle sålunda kunna anslutas till samma TOP-punkt i ett basobjekt, som två utvidgningsobjekt, vilka representerar varsin av två interagerande tilläggsfunktioner. För ytterligare information avseende lösning av interaktionsproblem hänvisas till de nämnda svenska patentansökningarna.

Claims (22)

517 033 - " 23
1. Objektorienterad systemplattform för ett telekommunikationssystem, som tillhandahåller abonnenttjänster, vilken plattform innehåller ett antal funktionsskikt, ett skikt (102) med operativsystemfunktioner, en därpå belägen applikationsplattform (104) innehållande telekommunikations- abstraktioner i form av resursobjekt, samt därpå ett översta skikt (106) innehållande önskade applikationer i form av bas- och tilläggsfunktioner, som tillhandahåller bas- och tilläggstjänster, kånnetecknad av att det översta skiktet är implementerat med basobjekt (202) och utvidgningsobjekt (204, 206, 208), där basobjekten är objekttyper, som implementerar basfunktioner, som kan behöva utvidgas i framtiden, varvid varje basobjekttyp är konstruerad för en särskild uppgift, som kan utföras med minimal koordinering med andra basobjekt, utvidgningsobjekten är objekttyper som implementerar utvidgningsfunktioner, vilka utgör utvidgningar till basfunktio- nerna, och gör det möjligt att lägga till nya tjänster och modifiera och utvidga befintliga tjänster utan att ändra mjukvaran hos ett system som redan har implementerats och levererats, samt att beteendet hos bas- och utvidgningsobjekttyperna är definierat genom att beteendet hos varje ingående metod beskrivs som en ändlig tillståndsmaskin, som består av ett ändligt antal tillstånd och övergångar mellan dessa tillstånd, där koden exekveras som övergångsaktioner, varvid utvidgningarna tillförs vid tillstånden för att ta över exekveringskontrollen i en utvidgningspunkt och returnera kontrollen till en annan, eller sama utvidgningspunkt i samma metod.
2. Systemplattform enligt krav 1, kännetecknad av att bas- och utvidgningsobjekttyperna stödjer ett utvidgnings- koncept, som tillåter att systemets beteende modifieras och utvidgas, utan att det är nödvändigt att ändra systemets existerande implementering, genom laddning av endast definitioner av utvidgningarna i systemet, som indirekt modifierar systemets beteende genom att ta över exekveringskon- 517 053, 24 trollen i vissa förutbestämda utvidgningspunkter.
3. Systemplattform enligt krav 1 eller 2, kânnetecknad av att en specifikation för ett utvidgningsobjekt definierar vid vilka utvidgningspunkter i utvidgningsobjektet som utvidgningen antas ta över kontrollen och vid vilka utvidgningspunkter den kan àterlämna kontrollen.
4. Systemplattform enligt krav 3, kânnetecknad av att när ett utvidgningsobjekt tar över kontrollen startar en förutde- finierad utvidgningsmetod exekveringen.
5. Systemplattform enligt krav 3 eller 4, kânnetecknad av att ett runtime-system tar hand om skapande av utvidgningsobjekt och invokering av deras utvidgningsmetoder vid de angivna utvidgningspunkterna.
6. Systemplattform enligt nágot av krav 1-5, kânnetecknad av att ett utvidgningsobjekt har access till attribut och metoder hos det basobjekt eller det utvidgningsobjekt, som utvidgningen tar över kontrollen fràn.
7. Systemplattform enligt krav 6, kânnetecknad av att nämnda attribut och metoder endast innefattar sàdana, som är deklarerade i en objekttypspecifikation, som kan accessas.
8. Systemplattform enligt något av krav 4-7, kânnetecknad av att i objekttypspecifikationen definieras även accessrestrik- tioner för varje utvidgningspunkt, genom att definiera att endast en viss deluppsâttning av attributen och metoderna i specifikationen är tillgängliga för utvidgningar som tar över kontrollen i en viss utvidgningspunkt,
9. Systemplattform enligt nàgot av krav 2-8, kânnetecknad av att objekttypspecifikationen för ett utvidgningsbart objekt fungerar som ett gränssnitt som begränsar mängden information som är synlig och tillgänglig för utvidgningar av det utvidgningsbara objektet.
10. Systemplattform enligt krav 9, kânnetecknad av ett gränssnittsskikt, som används tillsamans med utvidgningskon- ceptet och definieras av utvidgningsvyer, som var och en definierar en deluppsâttning av information i specifikationen av ett utvidgningsbart objekt, som skall kunna accessas av de utvidgningar som använder vyn. 517 053 i 25
11. Systemplattform enligt nágot av krav 1-10, kännetecknad av att för ett basobjekt finns det en specifikation, som dels verkar som en gränssnittsbeskrivning, som visar tillstànd, attribut och metoder, som är tillgängliga för utvidgningarna, och dels definierar ett gränssnitt mot klientobjekt som behöver skapa instanser av basobjektet, vilket gränssnitt definieras av metoder hos basobjekttypen, som avgör vilka parametrar som kan användas vid skapande av den nya instansen.
12. Systemplattform enligt krav 11, kännetecknad av att specifikationen ger en högnivábeskrivning av basobjekttypens beteende med utelämnande av implementationsdetaljer som är onödiga för uppnàende av förståelse av objekttypens funktion.
13. Systemplattform enligt krav 12, kännetecknad av att till den höga abstraktionsnivàn bidrar ett abstraktionsskikt som skapas av en underliggande objektlogik, som används av basobjek- tet, samt lokala metoder i basobjektet som omfattar användning av objektlogiken.
14. Systemplattform enligt krav 13, kännetecknad av att en rimlig abstraktionsnivá i en specifikation àstadkomes genom att visa basobjektets vänttillstànd i specifikationen och eventuellt vissa utvalda icke-vänttillstànd, som är fundamentala för förståelse av basobjektets funktion, varvid kod för att exekvera mellan de visade tillstánden införs i lokala metoder som deklareras, men ej nödvändigtvis beteendespecificeras, i specifikationen.
15. Systemplattform enligt krav 14, kännetecknad av att bedömning av vad som skall visas i specifikationen innefattar hänsynstagande till vilka delar av objekttypen som kan koma att underkastas utvidgningar i framtiden.
16. Systemplattform enligt krav 15, kännetecknad av att alla tillstànd, bade vänttillstánd och icke-vänttillstànd, och alla explicit namngivna utvidgningspunkter, visas i metodspecifikationen, varvid aktionskod används vid tillstånds- övergàngar i lokala metoder.
17. Systemplattform enligt krav 15, kännetecknad av att om vissa delar av beteendet ej behöver vara utvidgningsbara, 517 oss - 26 införs dessa i sin helhet i lokala metoder, som definieras i specifikationen eller realiseringen, eller pà implementa- tionsniván.
18. Systemplattform enligt krav 17, kännetecknad av att objekttyprealisering används för delar av basobjekt som inte behöver, eller kan vara utvidgningsbara, och som ej är nödvändiga att visa i specifikationen för att skapa en hög- nivábeskrivning, men där en definition föredras i stället för användning av implementationssprák direkt.
19. Systemplattform enligt krav 18, kännetecknad av att i realiseringen ingar definitioner av lokala metoder som inför aktionskod.
20. Systemplattform enligt krav 18 eller 19, kännetecknad av att i realiseringen ges, med överhoppande av i specifika- tionen ingående beteendedefinitioner, en mera detaljerad beteendedefinition, som innebär en förfining av beteendespeci- fikationen, som ges i specifikationen.
21. Systemplattform enligt något av krav 1-20, kännetecknad av att utvidgningsobjekten även innefattar objekttyper som implementerar utvidgningsfunktioner (208), vilka utgör utvidgningar till utvidgningsfunktionerna.
22. Systemplattform enligt något av krav 1-21, kännetecknad av att utvidgningsobjekten även innefattar objekttyper som implementerar interaktionshanterande utvidgningsfunktioner, vilka hanterar interaktion mellan tilläggstjänster.
SE9504392A 1995-12-08 1995-12-08 Systemplattform för kommunikationssystem SE517033C2 (sv)

Priority Applications (12)

Application Number Priority Date Filing Date Title
SE9504392A SE517033C2 (sv) 1995-12-08 1995-12-08 Systemplattform för kommunikationssystem
CN96199793A CN1207847A (zh) 1995-12-08 1996-11-27 用于通信系统的系统平台
PCT/SE1996/001553 WO1997022197A1 (en) 1995-12-08 1996-11-27 A system platform for a communication system
CA002239885A CA2239885A1 (en) 1995-12-08 1996-11-27 A system platform for a communication system
KR1019980704284A KR19990071993A (ko) 1995-12-08 1996-11-27 통신시스템용 시스템 플랫폼
JP09521974A JP2000501865A (ja) 1995-12-08 1996-11-27 通信システムのためのシステムプラットホーム
BR9611920A BR9611920A (pt) 1995-12-08 1996-11-27 Plataforma de sistema orientado por objeto para um sistema de telecomunicação
EP96941268A EP0865704A1 (en) 1995-12-08 1996-11-27 A system platform for a communication system
AU10459/97A AU722262B2 (en) 1995-12-08 1996-11-27 A system platform for a communication system
NO982598A NO982598L (no) 1995-12-08 1998-06-05 System-plattform for kommunikasjonssystem
MXPA/A/1998/004495A MXPA98004495A (en) 1995-12-08 1998-06-05 A system platform for a communication system
US09/093,073 US6601113B1 (en) 1995-12-08 1998-06-08 System platform for a communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9504392A SE517033C2 (sv) 1995-12-08 1995-12-08 Systemplattform för kommunikationssystem

Publications (3)

Publication Number Publication Date
SE9504392D0 SE9504392D0 (sv) 1995-12-08
SE9504392L SE9504392L (sv) 1997-06-09
SE517033C2 true SE517033C2 (sv) 2002-04-02

Family

ID=20400517

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9504392A SE517033C2 (sv) 1995-12-08 1995-12-08 Systemplattform för kommunikationssystem

Country Status (11)

Country Link
US (1) US6601113B1 (sv)
EP (1) EP0865704A1 (sv)
JP (1) JP2000501865A (sv)
KR (1) KR19990071993A (sv)
CN (1) CN1207847A (sv)
AU (1) AU722262B2 (sv)
BR (1) BR9611920A (sv)
CA (1) CA2239885A1 (sv)
NO (1) NO982598L (sv)
SE (1) SE517033C2 (sv)
WO (1) WO1997022197A1 (sv)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4196310B2 (ja) * 1998-10-26 2008-12-17 富士通株式会社 情報管理システムのメッセージ制御方法
FI109167B (sv) * 2000-03-14 2002-05-31 Sonera Oyj Omgivning för utveckling av tjänster
US7831655B2 (en) 2001-10-18 2010-11-09 Bea Systems, Inc. System and method for implementing a service adapter
US7552222B2 (en) 2001-10-18 2009-06-23 Bea Systems, Inc. Single system user identity
US7516447B2 (en) 2002-02-22 2009-04-07 Bea Systems, Inc. Methods and apparatus for building, customizing and using software abstractions of external entities
US7155438B2 (en) * 2002-05-01 2006-12-26 Bea Systems, Inc. High availability for event forwarding
US7526519B2 (en) 2002-05-01 2009-04-28 Bea Systems, Inc. High availability application view deployment
US7519976B2 (en) 2002-05-01 2009-04-14 Bea Systems, Inc. Collaborative business plug-in framework
US8135772B2 (en) * 2002-05-01 2012-03-13 Oracle International Corporation Single servlets for B2B message routing
US7257645B2 (en) 2002-05-01 2007-08-14 Bea Systems, Inc. System and method for storing large messages
US20040078440A1 (en) * 2002-05-01 2004-04-22 Tim Potter High availability event topic
US7676538B2 (en) * 2002-05-02 2010-03-09 Bea Systems, Inc. Systems and methods for application view transactions
US7493628B2 (en) 2002-05-02 2009-02-17 Bea Systems, Inc. Shared common connection factory
US7222148B2 (en) 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
US7484224B2 (en) * 2002-05-02 2009-01-27 Bae Systems, Inc. Adapter deployment without recycle
US20050022164A1 (en) * 2003-02-25 2005-01-27 Bea Systems, Inc. Systems and methods utilizing a workflow definition language
US7774697B2 (en) * 2003-02-25 2010-08-10 Bea Systems, Inc. System and method for structuring distributed applications
US7293038B2 (en) * 2003-02-25 2007-11-06 Bea Systems, Inc. Systems and methods for client-side filtering of subscribed messages
US20040167915A1 (en) * 2003-02-25 2004-08-26 Bea Systems, Inc. Systems and methods for declaratively transforming data objects between disparate representations
US7584474B2 (en) 2003-02-25 2009-09-01 Bea Systems, Inc. Systems and methods for transaction chaining
US7539985B2 (en) * 2003-02-26 2009-05-26 Bea Systems, Inc. Systems and methods for dynamic component versioning
US7707564B2 (en) 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7650276B2 (en) 2003-02-26 2010-01-19 Bea Systems, Inc. System and method for dynamic data binding in distributed applications
US7076772B2 (en) 2003-02-26 2006-07-11 Bea Systems, Inc. System and method for multi-language extensible compiler framework
US8032860B2 (en) * 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US20040230955A1 (en) * 2003-02-26 2004-11-18 Bea Systems, Inc. System for multi-language debugging
US7444620B2 (en) * 2003-02-28 2008-10-28 Bea Systems, Inc. Systems and methods for a common runtime container framework
US7636722B2 (en) * 2003-02-28 2009-12-22 Bea Systems, Inc. System and method for describing application extensions in XML
US7650592B2 (en) 2003-03-01 2010-01-19 Bea Systems, Inc. Systems and methods for multi-view debugging environment
US7270884B2 (en) * 2003-04-07 2007-09-18 Infineon Technologies Ag Adhesion layer for Pt on SiO2
US8539497B2 (en) * 2006-03-30 2013-09-17 Microsoft Corporation Method for organizing software so the set of extensions for an extendable application can be run securely
KR101369981B1 (ko) * 2011-10-06 2014-03-24 김용진 호 처리 부가 서비스 제공 단말장치 및 그 동작 방법
US9311054B2 (en) * 2013-08-30 2016-04-12 Sap Se Method and system for specifying and enforcing extensibility of software applications
CN104360870B (zh) * 2014-12-03 2018-07-17 北京和利时系统工程有限公司 一种实现对象建模的方法和装置
CN106059796B (zh) * 2016-05-17 2019-05-24 中国建设银行股份有限公司 一种业务扩展系统及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206951A (en) 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US5057996A (en) 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation system and method in an object based computer operating system
US5136712A (en) 1989-06-29 1992-08-04 Digital Equipment Corporation Temporary object handling system and method in an object based computer operating system
SE502733C2 (sv) 1993-06-11 1995-12-18 Ellemtel Utvecklings Ab Sätt att undvika ej önskvärd interferens mellan tjänster i ett telekommunikationssystem
SE502275C2 (sv) 1994-01-25 1995-09-25 Ellemtel Utvecklings Ab Sätt att optimera kapaciteten i ett telekomsystem
US6467085B2 (en) * 1995-10-17 2002-10-15 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling in an object-oriented programming environment
US6119125A (en) * 1998-04-03 2000-09-12 Johnson Controls Technology Company Software components for a building automation system based on a standard object superclass

Also Published As

Publication number Publication date
AU1045997A (en) 1997-07-03
CN1207847A (zh) 1999-02-10
NO982598L (no) 1998-08-07
NO982598D0 (no) 1998-06-05
JP2000501865A (ja) 2000-02-15
SE9504392L (sv) 1997-06-09
BR9611920A (pt) 1999-03-30
KR19990071993A (ko) 1999-09-27
WO1997022197A1 (en) 1997-06-19
EP0865704A1 (en) 1998-09-23
SE9504392D0 (sv) 1995-12-08
US6601113B1 (en) 2003-07-29
MX9804495A (es) 1998-10-31
CA2239885A1 (en) 1997-06-19
AU722262B2 (en) 2000-07-27

Similar Documents

Publication Publication Date Title
SE517033C2 (sv) Systemplattform för kommunikationssystem
Arbab et al. An overview of Manifold and its implementation
US5999911A (en) Method and system for managing workflow
JP5710852B2 (ja) 設計時および実行時にワークフローを継ぎ目なくオーサリングし編集するためのフレームワーク
US5761684A (en) Method and reusable object for scheduling script execution in a compound document
US20030222912A1 (en) System and method for managing dataflows
JP2006107479A (ja) ワークフロー領域内の分野横断的動作問題(cross−cuttingbehavioralconcerns)をモデル化するためのフレームワーク
JP2007518190A (ja) モデルイベントを用いてモデル構成要素の実行をスケジューリングするためのシステム及び方法
US20020111841A1 (en) Controlling commands in workflow management systems
Kaiser et al. A bi-level language for software process modeling
Clark et al. Go!—A multi-paradigm programming language for implementing multi-threaded agents
US6556218B1 (en) Method and apparatus for generating dips for use with Java beans
Illmann et al. Migration of mobile agents in java: Problems, classification and solutions
Hilderink et al. Communicating threads for Java
EP1489504B1 (en) Mechanism for asynchronous components to be application framework agnostic
Vanderdonckt et al. A Design Space for Context-Sensitive User Interfaces.
Czejdo et al. Integrating sets, rules, and data in an object-oriented environment
Rimassa et al. Living systems® technology suite
KR100294876B1 (ko) 동적재구성이가능한운영체제및운영체제의동적재구성방법
Kaiser et al. A metalinguistic approach to process enactment extensibility
Stewart et al. Managing grid computations: An orc-based approach
Schleicher Formalizing UML-based process models using graph transformations
Vasiv Functional Reactive Programming for iOS: using Objective-C and ReactiveCocoa
Hoosier et al. A case study in domain-customized model checking for real-time component software
Qiu et al. Research on Real-Time Software Development Approach.

Legal Events

Date Code Title Description
NUG Patent has lapsed