NO338023B1 - Data prosessering i et formidlings- eller serviceforsyningssystem. - Google Patents

Data prosessering i et formidlings- eller serviceforsyningssystem. Download PDF

Info

Publication number
NO338023B1
NO338023B1 NO20070481A NO20070481A NO338023B1 NO 338023 B1 NO338023 B1 NO 338023B1 NO 20070481 A NO20070481 A NO 20070481A NO 20070481 A NO20070481 A NO 20070481A NO 338023 B1 NO338023 B1 NO 338023B1
Authority
NO
Norway
Prior art keywords
data
function
parameters
instructions
processing
Prior art date
Application number
NO20070481A
Other languages
English (en)
Other versions
NO20070481L (no
Inventor
Ari Talja
Original Assignee
Comptel Corp
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
Priority claimed from EP20040396044 external-priority patent/EP1615127B1/en
Application filed by Comptel Corp filed Critical Comptel Corp
Publication of NO20070481L publication Critical patent/NO20070481L/no
Publication of NO338023B1 publication Critical patent/NO338023B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Description

Dataprosessering i et formidlings- eller tjenesteforsyningssystem
Teknisk område
Den foreliggende oppfinnelsen er relatert til dataprosessering.
Mer spesifikt er den foreliggende oppfinnelsen relatert til prosessering av strukturerte dataregistre som inneholder datafelt og data i datafeltene. Et eksempel på et slikt dataregister er et hendelsesregister som inneholder data om anvendelse av et kommunikasj onsnettverk.
Herav er en utførelsesform av den foreliggende oppfinnelsen relatert til fremgangsmåter og systemer for formidling. Formidling er en prosess hvori anvendelsesdata er samlet fra kommunikasjonsnettverk og levert til operatørens drift og foretaksstøttesystem(er)
(Operation and Business Support System(s)) (OSS/BSS). Formidlingssoftware samler anvendelsesdata fra nettverket ved å sette opp et grensesnitt mellom forskjellige ulike nettverkselementer. Deretter samler, korrelerer, beriker, validerer, formaterer, og/eller vurderer formidlingslaget data slik at de er lesbare for OSS/BSS-systemet(ene) som er målet, og inneholder all den nødvendige informasjonen.
I moderne telekommunikasj onsnettverk er det en etterspørsel etter håndteringshendelser så fort data er tilgjengelig i nettverket. Kontinuerlig strømmende formidling, som også er kalt sanntidsformidling, har blitt utviklet for å oppfylle disse kravene. Spesielt i kontinuerlig strømmende formidling er kvalitet, pålitelighet og effektivitet av dataprosessering veldig viktig.
I moderne telekommunikasj onsnettverk er det også et behov for enkel tilpassing av systemet for å tilby nye tjenester og å prosessere hendelsesregistrene i henhold til vekslende prosesseringskrav. De ovenfor nevnte hensiktene er ofte i motsetning til hverandre: enkel tilpassing av systemet tenderer til å redusere gjennomstrømmingen, mens derimot et system som har en optimert gjennomstrømming krever vanligvis intensivt arbeid for å bli rekonfigureret.
En annen utførelsesform av den foreliggende oppfinnelsen er relatert til systemer og fremgangsmåter for formidling. Tjenesteformidling og tjenesteaktivering er en prosess hvori hvilke som helst typer tjenester i alle typer nettverk er forsynt og aktivert til nettverkselementer. Disse kan være for eksempel å aktivere alle forbruker- og fellestjenester, slik som stemme, ADSL, WLAN-tilgang og VPN som med det samme forsyningssystemet hjelper operatøren å fjerne mange kostbare, unødvendige og overlappende prosesser.
Bakgrunnsstoff
Patentpublikasjonen US 6,449,618 legger fram et sanntidssystem for hendelsesprosessering. Systemet som er presentert i publikasjonen har dårlig fleksibilitet.
Bedichek R C: Talisman fast and accurate multicomputer simulation, 1995
"ACM SIGMETRICS JOINT INTERNATIONAL CONFERENCE ON
MEASUREMENT AND MODELING OF COMPUTER SYSTEMS", Ottawa, mai 15 - 19, 1995, beskriver et system og en metode for å prosessere dataregistre i henhold til en forhåndsdefinert logikk, innbefattende en datafelttabell som inneholder felt for å lage data under prosessering i systemet, en logisk definisjonsstruktur som inneholder den forhåndsdefinerte logikken inneholdt i den logiske definisjonsstrukturen, hvori den logiske definisjonsstrukturen omfatter, en parametrene som inneholder pekere til datafelt for å lagre verdier fra parametrene nødvendig i den forhåndsdefinerte logikken, et funksjonskodesett som inneholder programkoder for å utføre funksjoner nødvendig i den forhåndsdefinerte logikken, og en serie bytekodeinstruksjoner som inneholder en funksjonspeker som peker til en funksjonskode i funksjonskodesettet til å bli brukt i eksekveringen av instruksjonen, og en peker som peker på et sett med parameterpekere i parametertabellen som er nødvendig i eksekveringen av instruksjonen.
Patentpublikasjonen US 6,166,657 legger fram et system for støtte og håndtering av telekommunikasjonstjenester. Hovedideen i US 6,366,657 er at systemet innbefatter et miljø for tjenesteopprettelse (Service Creator Environment) (SCE), hvilket miljøet muliggjør å enkelt danne, tilveiebringe og håndtere nye tjenester for abonnenter. Dette er gjort med verktøymapper for å spesifisere objektdefinisjoner i et objektorientert rammeverk. Systemet som er presentert i publikasjonen er rettet mot telekommunikasjonsoperatører for å gjøre tjenester enklere.
Det er to alternative måter å utvikle de kjente systemene videre i et forsøk på å kombinere effektivitet og enkel modifikasjon og håndtering.
Det første alternativet vil være å generer noen scriptspråk fra den forhåndsdefinerte prosesseringslogikken. Et egnet scriptspråk er Perl. Fordelen med denne tilnærmingen er at resultatkoden kan bli besiktiget og er lesbar for mennesker. Derav er koden enkel å feilsøke i. Imidlertid er det flere ulemper med scriptspråktilnærmingen. For eksempel er ytelsen relativ liten siden scriptspråkene (til og med Perl) er langsommere enn maskinspråk. Det er også vanskelig å generere gyldig kode og å forsikre at variabelnavnene etc. ikke forårsaker noen konflikter i systemet.
Det andre alternativet vil være å generere C- eller Java-kildekode, og kompilere den før eksekvering. Denne løsningen produserer den hurtigste koden, dersom C er brukt, fordi oversettelse ikke er nødvendig. Problemet er å kompilere kildekoden og å forsikre at systemet virkelig virker korrekt. Logikken dannet på denne måten kan ikke bli testet før den tas i bruk, dersom virkelig hurtige endringer til logikken er nødvendig. Dette gjør systemet upålitelig og risikabelt. Kompilering er også veldig vanskelig, om ikke umulig, fordi det må utføres i kundemiljøer og på ulike plattformer. Derav involverer denne tilnærmingen alvorlige risikoer og er ekstremt vanskelig. Derimot, dersom problemene som er involvert i denne løsningen kan bli løst, vil løsningen tilby en veldig høy ytelse.
Redegjørelse av oppfinnelsen
Det er en hensikt med den foreliggende oppfinnelsen å danne et pålitelig dataprosesseringssystem og -fremgangsmåte som begge gir en relativ høy ytelse og er relativt enkelt å tilpasse til ny prosesseringslogikk.
Mer spesifikt oppnås formålet som angitt i de selvstendige kravene.
Hensikten med oppfinnelsen er oppnådd ved å danne en spesiell logisk definisjonsstruktur basert på prosesseringslogikken. Den logiske definisjonsstrukturen er utformet slik at den er enkel å eksekvere effektivt. Den logiske definisjonsstrukturen er også utformet slik at å gjøre modifikasjoner på prosesseringslogikken krever relativt begrenset og direkte alterasjoner i definisjonsstrukturen for logikk. Dette er gjort mulig ved å definere prosesseringslogikken på en form av en serie med bytekodeinstruksjoner, hvori hver instruksjon inneholder en peker til en del av en programkode som utfører en funksjon og en peker til parametrer som skal brukes i utførelsen av funksjonen. Instruksjonene, programkodene som utfører funksjonene, pekerne og data som er under prosessering er lagret i tabeller, for på denne måten å tillate bruk av effektive pekemekanismer sammen med fleksibilitet og enkel modifikasjon. Den logiske definisjonsstrukturen da innbefatter en parametertabell som inneholder pekere til verdien av parametrene som er nødvendig i prosesseringslogikken, et funksjonskodesett som inneholder programkoder for å utføre funksjonene som er nødvendig i prosesseringslogikken, og en serie med bytekodeinstruksjoner, hver av instruksjonene peker til pekere i parametertabellen og en funksjonskode som er nødvendig i eksekveringen av instruksjonen.
Den foreliggende oppfinnelsen gjør det mulig å konstruere et pålitelig dataprosesseringssystem og fremgangsmåte som begge gir en relativt høy ytelse og er relativ enkel å tilpasse til ny prosesseringslogikk.
Oppfinnelseskonseptet tillater også flere nyttige og fordelaktige utførelsesformer som gir ytterligere fordeler.
I en utførelsesform av oppfinnelsen kan tilpassing av forsyningslogikk bli implementert og visualisert gjennom grafisk brukergrensesnitt. Nye tjenester og tjenestepakker - likegyldig til deres kompleksitet - kan raskt introduseres uten å måtte utføre tidsmessige og kostnadsmessige endringer til OS S/B SS-systemet til en operatør.
Oppfinnelsen tilbyr også utførelsesformer av et formidlingssystem som kan betjenes kontinuerlig straks det er startet, fordi alle konfigurasjoner kan bli utført mens systemet er i produksjon.
Det er også utførelsesformer som tillater både prosessering av typen batch og sanntidsprosessering av hendelsesregister.
Det er tydelig fra redegjørelsen ovenfor at den foreliggende oppfinnelsen kan bli anvendt med stor variasjon av applikasjoner som krever hurtig og pålitelig prosessering av hendelsesregister.
Kort beskrivelse av tegninger
For en mer komplett forståelse av den foreliggende oppfinnelsen og fordelene derav, er oppfinnelsen nå beskrevet ved hjelp av eksemplene og med referanse til de følgende tegningene, der: Figur 1 presenterer et blokkdiagram av et system i henhold til en utførelsesform av oppfinnelsen. Figur 2 presenterer et blokkdiagram av et eksempel på en funksjon i henhold til en utførelsesform av oppfinnelsen. Figur 3a presenterer et blokkdiagram av et eksempel på en utførelse av eksekvering av en funksjon for prosesseringslogikk i henhold til en utførelsesform av oppfinnelsen. Figur 3b presenterer et blokkdiagram av et annet eksempel av utførelse av eksekvering av en funksjon for prosesseringslogikk i henhold til oppfinnelsen. Figur 4 presenterer et blokkdiagram av et eksempel på en eksekvering av bytekode i henhold til en utførelsesform av oppfinnelsen. Figur 5 presenterer et flytdiagram av et eksempel på en formidlingsprosess i henhold til en utførelsesform av oppfinnelsen.
Definisjoner
Dataregister:
Et dataregister er et register som inneholder data om for eksempel tjenestebruk eller forsyningsforespørsel. Et dataregister inneholder typisk flere datafelt og kan være strukturert (registre inneholder andre registre). I kommunikasjonssystemer vil eksempler på dataregistre inkludere slik som CDR, ringedetalj register (Cali Detail Record); ER, hendelsesregister (Event Record); UDR, anvendelsesdataregister (Usage Data Record); og IPDR, detalj register for internettprotokoll (Internet Protocol Detail Record).
Felt:
Et felt er en enkel enhet i et dataregister. Normalt inneholder et felt en verdi som kan være hvilke som helst data (dato, heltall, streng, etc).
Hendelse:
En hendelse er en transaksjon som forekommer i et telekommunikasj onsnettverk. Hendelser er typisk forårsaket av handlinger utført av en abonnent mens den bruker telekommunikasjonstjenester. Hendelser kan også være basert på handlinger utført av telekommunikasj onsnettverket eller et apparat tilknyttet til det, for eksempel under utførelse av telekommunikasjonstjenester. Noen hendelser kan til og med bli generert automatisk under eksekvering av tjenesteprogrammet og utfører andre funksjoner for å tilby tjenester til kundene.
Hendelsesregister:
Et hendelsesregister er et dataregister som indikerer at en hendelse har forekommet. Det vil si, et hendelsesregister gir informasjon om at en abonnent har brukt en telekommunikasjonstjeneste. Et hendelsesregister inneholder også detaljert informasjon om hendelsen. Derav kan et hendelsesregister inneholde informasjon om anvendelse, for eksempel dersom den brukte telekommunikasjonstjenesten er en telefonsamtale kan hendelsesregisteret indikerer hvor lenge samtalen varte, eller dersom tjenesten er å laste ned en fil fra en FTP-server, kan hendelsesregisteret inneholde informasjon om størrelsen på den overførte datablokken.
Sanntid:
I kontrast til batch-prosessering refererer sanntidsprosessering til å sende et hendelsesregister gjennom formidlingssystemet på strømmende format. Det vil si, så fort en spesifikk node i formidlingsstrømmen har prosessert (for eksempel beriket) registeret blir det sendt videre til neste node. Ved batch-prosessering er et stort antall hendelsesregistrer først samlet i et mellomlager, og deretter er mengden hendelsesregister prosessert fra mellomlageret. Derav, i batch-prosessering, er prosesseringsforsinkelser opplevd av hendelsesregistrene typisk veldig lange og varierer mellom hendelsesregistrene. I sanntidsprosessering er prosesseringsforsinkelser opplevd av hendelsesregistrene typisk korte og i hovedsak av samme størrelse mellom hendelsesregistre.
Gjennomkjøringstid i et sanntidssystem kan være, for eksempel fra omtrent 1 millisekund til 10 sekunder. I noen utførelsesformer kan hendelser passere gjennom systemet til og med raskere. Noen ganger, avhengig av utførelsesformen og applikasjonen, kan betegnelsen sanntid også innbefatte gjennomkjøringstider lengre en uttrykt ovenfor. Generelt, en sanntidstjeneste er en tjeneste som ikke inkluderer betydelige forsinkelser slik som en bruker av tjenesten vurderer som utførte handlinger, og tilveiebrakte tjenester essensielt ved tidspunktet som tjenestene er bestilt (dvs. hendelser tilført til formidlingssystemet).
Inputregister:
Et dataregister som er lest av en prosesseringsnode. Formatet og strukturen på inputregisteret er fortrinnsvis forhåndsdefinert og kjent av noden.
Outputregister:
Et dataregister som er skrevet av en prosesseringsnode. Formatet og strukturen på outputregisteret er forhåndsdefinert og kjent av prosesseringsnoden.
Eksekutor for prosesseringslogikk:
En eksekutor for prosesseringslogikk er en nodeapplikasjon i et formidlingssystem. En eksekutor for prosesseringslogikk håndterer forhåndsdefinert prosesseringslogikk i en prosesseringsstrøm. Den eksekverer det brukerdefinerte regelsettet ved å bruke eksisterende prototypfunksjoner for regler.
Nodebase:
En nodebase tilveiebringer et grensesnitt for å lese inputregistre og skrive outputregistre. En eksekutor for prosesseringslogikk mottar feltverdier ved å bruke navnet på feltet fra nodebase. Nodebasen implementerer funksjonaliteten til operasjoner slik som å danne nytt outputregister og avvise eksisterende register.
Funksjon: (- piler i figur 2)
En pil eller egentlig en gruppe piler som peker på et enkelt felt som representerer en funksjon. En funksjon er en prototyp på en prosesseringsregel, for eksempel feltvalidering, verdisammenligning eller konvertering.
Funksjonskode:
En funksjonskode er en programkode for å utføre en funksjon nødvendig i den forhåndsdefinerte logikken. I en foretrukket utførelsesform er funksjonskoden en binær kode direkte eksekverbar av et opererende system. Koden bruker funksjonsparametrer til beslutninger som trenger å tas under funksjonseksekvering.
Instruksjoner:
En instruksjon er en enkel enhet av bytekode for prosesseringslogikk. I en foretrukket utførelsesform inneholder en instruksjon en peker til funksjonskoden, peker til funksjonsparametrene og antallet parametrer. Instruksjoner er dannet under kompileringsprosess.
B<y>tekodeeksekutor:
En bytekodeeksekutor er komponenten som tar hånd om instruksjonshenting, dekoding og eksekvering. Derav tar bytekodeeksekutoren den neste instruksjonen fra tabellen og kaller funksjonen til instruksjonen ved å bruke instruksjonens parametre.
Delte bibliotekfiler:
Delte bibliotekfiler inneholder funksjonskode for både kjerne og tilpassede funksjoner. Koden er produsert av en C-kompilator og er rask å eksekvere. Funksjonene er lastet inn i minnet fra filene når eksekutoren for prosesseringslogikk er startet.
Beste måte å utføre oppfinnelsen på
Figur 1 viser et eksempel på å bruke en utførelsesform av oppfinnelsen. Systemet i Figur 1 innbefatter et grafisk brukergrensesnitt 1 (GUI) for å definere den forhåndsdefinerte prosesseringslogikken i henhold til hvilken brukeren ønsker at systemet skal prosessere dataregistrene, slik som hendelsesregistre i et kommunikasjonsnettverk. GUI 1 produserer en forhåndsdefinert fil for prosesseringslogikk 2 som inneholder den forhåndsdefinerte prosesseringslogikken, og tar hånd om å lagre data i et vedvarende lager, for eksempel database 3. I utførelsesformen inneholder den forhåndsdefinerte filen for prosesslogikk 2 en XML-representasjon av logikken bygd med GUI 1.
Systemet innbefatter en kompilator 4 som bruker den forhåndsdefinerte filen for prosesseringslogikk 2 som en kildekode, og bygger en bytekode for prosesseringslogikk 5 på basis av den forhåndsdefinerte prosesseringslogikken. Kompileringen er utført hver gang logikken er testet eller lagret i det vedvarende lageret 3. Det vedvarende lageret 3 rommer alle konfigurasjoner for prosesseringslogikk og de kompilerte bytekodene for dem.
Bytekoden for prosesseringslogikk 5 er en enkel tekstfil som beskriver hvordan den forhåndsdefinerte prosesseringslogikken skal bli eksekvert. Den har et sekvensielt sett med instruksjoner og deres parametrer. Alle instruksjoner er lagret ved å bruke de originale funksjonsnavnene.
Systemet innbefatter også en eksekutor for prosesseringslogikk 6 som kan være en nodeapplikasjon som kan bli eksekvert ved å bruke nodebase. Eksekutoren for prosesseringslogikk 6 innbefatter i seg selv et funksjonsbibliotek 7, en bytekodeparser 8 og en bytekodeeksekutor 9.
Funksjonsbiblioteket 7 inneholder alle funksjonene for prosesseringslogikken. I figuren er funksjonsbiblioteket 7 delt inn i kjernefunksjoner 10 og tilpassede funksjoner 11.
Bytekodeparseren 8 parserer bytekoden 5 av ren tekst og produserer en mer effektiv form av koden. Den komplette bytekoden har ikke noe funksjonsnavn men direkte pekere til den.
Bytekodeeksekutoren 9 eksekverer den analyserte bytekoden. Derav opptrer bytekodeeksekutoren 9 som den logiske eksekveringsanordningen for å eksekvere den forhåndsdefinerte prosesseringslogikken. Koden er eksekvert "blindt" uten å vite hva funksjonene gjør.
Derav, i utførelsesformen, kan et grafisk brukergrensesnitt bli brukt til å sette opp systemet til å prosessere dataregistre i henhold til en ønsket prosesseringslogikk. Etter å ha definert prosesseringslogikken, parserer kompilatoren prosesseringslogikken og kompilerer den til et format (bytekode for prosesseringslogikk) som er rask og enkel å eksekvere. Kompilatoranordningen leser XML-filen for prosesseringslogikk, danner en datastruktur av den og produserer en bytekodefil ved å bruke datastrukturen. Kompilatoren fjerner all "unyttig" informasjon som ikke er nødvendig i eksekveringen fra prosesseringslogikken, og gjør logikkens struktur flatere. Kompilatoren reserverer også en felttabell, til hvilken alle feltene er plassert. Etter dette er feltene ikke lenger referert til ved sine navn, men ved indeksen i tabellen. Bytekodeparseren endrer indeksen til direkte minnelokalisering.
Påkrevde instruksjoner er lagt til i bytekoden når kompilatoren enten møter en funksjon i definisjonen for prosesseringslogikk eller trenger å legge til en funksjon for f.eks. å hoppe fra et sted til et annet i koden. Når kompilatoren legger til en instruksjon legger den også til parametrene av funksjonen som en liste med indekser av feltene. Bytekodeparseren bygger parametertabellen ved å bruke denne informasjonen. Etter at kompileringen er ferdig beregner kompilatoren verdiene for hodefeltene for bytekode.
I en avansert utførelsesform kan en bruker også definere og legge til tilpassede funksjoner via det grafiske brukergrensesnittet. Når den legger til en tilpasset funksjon legger systemet til en ny tilkoblingsskjerm for å definere funksjonsparametrene i det grafiske brukergrensesnittet. Systemet legger også til en korresponderende funksjonskode i funksjonskodetabellen til eksekutoren for prosesseringslogikk 6. For den tilpassede funksjonsfunksjonaliteten inkluderer kompilatoren en tilpasset funksjonsutvidelse for å modifisere den logiske definisjonsstrukturen til å inkludere den tilpassede funksjonen og parametrene til den tilpassede funksjonen i systemets felttabeller. Figur 2 viser et eksempel på funksjonen av eksekutoren for prosesseringslogikk 6. I Figur 2 representerer hver pil 10, 11 (eller en gruppe med piler som peker til samme felt) en funksjon for prosesseringslogikk. Eksekutoren for prosesseringslogikk eksekverer, i spesifisert rekkefølge, bytekoden som kompilatoren har generert. Hver pil i figuren representerer en funksjon for prosesslogikk som eksekverer handlingen avhengig av funksjonsparametrene (felt).
I utførelsesformen er feltene 22, 32 i input 20 og output 30 registre felt lest av nodebasen 130. Nodebasen 130 leser feltene 22 fra en inputfil 20 og danner en datastruktur 40 for registeret. Hvert felt kan bli hentet eller skrevet ved å bruke feltnavnet. Eksekutoren for prosesseringslogikk 6 må ikke lese alle feltene fra inputregisteret.
I utførelsesformen er interne felt 42 i eksekutoren for prosesseringslogikk 6 midlertidige felt som eksekutoren for prosesseringslogikk har produsert. Interne felt 42 kan inneholde originale data lest fra nodebasen 130 eller data generert fra funksjonene 10, 11. Interne felt 42 kan også være konstanter på innsiden av eksekutoren for prosesseringslogikk 6.
I utførelsesformen allokerer eksekutoren for prosesseringslogikk 6 minne til alle midlertidige felt 42 i initialiseringsfasen for å gjøre eksekveringen mer effektiv. Feltene vokser automatisk under eksekveringen dersom det er nødvendig. Feltene lest fra nodebasen trenger ikke noe plass (nodebasen tar hånd om det), og de kan ikke bli modifisert på innsiden av eksekutoren for prosesseringslogikk.
I utførelsesformen kan feltene bli avbildet direkte fra inputregisteret 20 inn til outputregisteret 30 uten å modifisere feltet eller bruke det til andre felt.
I figuren representerer hver pil 10, 11 (eller en gruppe med piler som peker til samme felt) en funksjon i eksekutoren for prosesseringslogikk 6. Funksjonen kan være for eksempel strengsammenkjeding som tar to inputfelt og produserer et outputfelt. Bytekoden for prosesseringslogikk 5 består av pekere til disse funksjonene 10, 11 og deres parametrer.
Figur 3 viser to eksempler på funksjonseksekveringer av prosesseringslogikk i en utførelsesform av oppfinnelsen. I utførelsesformen til venstre (Figur 3a) er det et eksempel på en basisfunksjon som tar fire inputfelt 22, 42 og produserer to outputfelt 32, 42. I utførelsesformen til høyre (Figur 3b) har et eksempel en funksjon som tar tre inputfelt 22, 42 og produserer ikke noen outputfelt, men modifiserer programtelleren 17 i henhold til feltverdiene.
I utførelsesformen er instruksjonene 62 i begge eksemplene i figur 3 pekere til funksjonskoder 12. Funksjonskode 12 eksisterer bare i minnet en gang selv om det er mange instruksjoner 62 som bruker den. Bytekodeeksekutoren 9 eksekverer alltid instruksjonen 62, til hvilken dens programteller 17 peker. Bytekodeeksekutoren 9 øker programtelleren 17 med én etter hvert funksjonskall.
I figur 3b viser eksemplet hvordan en funksjon kan oppdatere programtelleren. For eksempel sammenligningsfunksjoner, ubetinget hopp etc. modifiserer programtelleren. Dette betyr at eksekveringen "hopper" til ulike steder i koden.
I utførelsesformen får eksekutoren for prosesseringslogikk 6 hele sin konfigurasjon i nodeapplikasjonsparametrer og i bytekodefiler 5. Nodeapplikasjonsparametrer inkluderer alle forhåndsdefinerte spesifikke parametrer for prosesseringslogikk og innstillinger av eksekutoren for prosesseringslogikk. Bruddpunkter i bytekoden og andre feilsøkingsparametrer er satt ved å bruke nodeparametrene dersom det er nødvendig. Disse parametrene er brukt for eksempel i feilsøkingsmodus. Figur 4 viser et eksempel på en bytekodeeksekutor 9 i henhold til en utførelsesform av oppfinnelsen. I utførelsesformen henter bytekodeeksekutoren 9 en instruksjon 62 ved et tidspunkt. En enkel instruksjon 62 inneholder tre deler: funksjonspeker 70, antall parametrer 80 og peker-til-parametrer 90 av instruksjonen 62. Figur 4 beskriver hvordan en enkel instruksjon 62 er håndtert i bytekodeeksekutoren 9. Hver instruksjon 62 består av de følgende delene: • Funksjonspeker 70 - Funksjonspekeren peker til den aktuelle funksjonskoden 12 som er brukt i eksekveringen av denne instruksjonen 62. • Antall parametrer 80 - Funksjonen kan bruke ulikt antall parametrer 52 avhengig av bruken av funksjonen. For eksempel en funksjon for verdisammenligning kan få 3-N parametrer avhengig av antallet verdier til sammenligning. • Peker til parametrer 90 - Pekeren til parametrer pekere til parametertabellen 50 som inneholder alle parametrer 52 nødvendig i hele den forhåndsdefinerte prosesseringslogikken. Alle parametrene 52 i denne instruksjonen 62 er etter hverandre i tabellen 50. Pekeren 90 referer til den første parameteren 54 og antallet parametrer 80 forteller hvor mange av dem som skal bli brukt. Parameterlisten kan inneholde både input- og outputparametrer.
I utførelsesformen får funksjonen både antallet parametrer og pekeren til parameterlisten som funksjonsargumenter.
I utførelsesformen håndter bytekodeeksekutoren 6 eksekveringen av bytekoden 5. Eksekveringen er utført blindt, uten å tenke på at funksjonene er eksekvert. Bytekoden 5 er delt inn i tre ulike deler: initialiserings-, prosesserings- og stoppdel. Bytekodeeksekvering er en rett-fram-oppgave: 1. Hent neste instruksjon fra instruksjonslisten (den som programtelleren refererer til). 2. Kall funksjonen i instruksjonen ved å bruke parametertelling og parameterpeker som funksjonsparametrer.
3. Undersøk om eksekveringen har nådd enden av instruksjonslisten.
a. Dersom ikke, øk programtelleren med én og hopp til del 1
b. Dersom eksekveringen har nådd enden, returner fra prosessfunksjonen og gi kontrollen tilbake til nodebasen.
Eksekutoren for prosesseringslogikk i den ovenfor beskrevne utførelsesformen er en veldig fleksibel komponent. Brukeren kan programmere nye tilpassede funksjoner i systemet uten å modifisere den eksisterende implementeringen. Dette gjør det mulig å danne selv også svært komplisert logikk ved å bruke prosesseringslogikk og lage kundespesifikke modifikasjoner til systemet, dersom det er nødvendig, uten å påvirke ytelsen.
Eksekutoren for prosesseringslogikk i den ovenfor beskrevne utførelsesformen gir også høy ytelse. Tolkningskostnadene er minimale i denne implementeringen som betyr at å kjøre logikk med eksekutoren for prosesseringslogikk er nesten som å kjøre et maskinkodeprogram spesifikt programmert for kundens logikk.
Eksekutoren for prosesseringslogikk i den ovenfor beskrevne utførelsesformen er også svært modulær og derav enkel å teste. Hver funksjon er en uavhengig softwarekomponent som kan bli testet med et automatisert verktøy. Dette vil spare kostnader i å portere produktet og gjøre det enklere å implementere ny funksjonalitet til systemet.
I utførelsesformen av oppfinnelsen er bytekoden for prosesseringslogikk 5 lagret i et format med ren tekst for å unngå problemer med portering fra en plattform til en annen. Bytekoden inneholder følgende komponenter: • Hode - Hodet inneholder detaljert informasjon om den forhåndsdefinerte prosesseringslogikken. • Felt - Denne seksjonen inneholder instruksjoner for å danne felttabellen. Den lister alle felt, deres lengder og initialverdier.
• Instruksjoner - Denne seksjonen lister instruksjonene og deres parametrer.
I utførelsesformen av oppfinnelsen tar bytekodeparseren 8 hånd om å lese bytekodefilen 5, parsere den til interne strukturer og forhåndsformatere felt. De interne strukturene inkluderer følgende komponenter: • Datafelttabeller 40 - Feltene er lagret i to tabeller: en som inneholder alle heltall og en annen som inneholder alle strenger. Feltene er lest og initialisert. Initialisering inneholder minneallokering og setting av verdi, dersom nødvendig. • Instruksjonstabell 60 - Instruksjoner er lagret i en lang tabell. De er lagret der som beskrevet i utformingen av eksekutoren for bytekode for prosesseringslogikk.
I utførelsesformen av oppfinnelsen er funksjonene for prosesseringslogikk 10, 11 testet med et automatisert testverktøy. Hovedideen er at funksjonsutvikleren lager noen testdata i en tekstfil i definert format, og eksekverer testtilfellene.
Det automatiserte testverktøyet bruker funksjonsbiblioteket for prosesseringslogikk 7 for å laste funksjonene 10, 11 definert i testtilfellefilen. Ingen koding er nødvendig for testene.
En utførelsesform av oppfinnelsen tilhører prosessering av dataregistre i formidlingssystemer med kommunikasjonsnettverk. Sofistikerte formidlingsløsninger har flere foredelaktige kjennetegn, hvor de mest viktige er fortalt nedenfor.
I Figur 5 inkluderer hver node 120 en nodebase 130 og en nodeapplikasjon 140. Nodebasen 130 gir den grunnleggende standardfunksjonaliteten for noden 120. Den håndterer den interne sendemekanismen for dataanvendelse mellom nodene 120 og koder de interne anvendelsesdata. Nodebasen 130 gir et grensesnitt til nodeapplikasjonen 140 for å få tilgang til anvendelsesdata og samle tilpasset sammenligningsinformasjon. For å utføre sin oppgave kan en nodebase 130 inkludere flere komponenter, for eksempel en nodeinput 131, en nodeoutput 132, en node API 133, en nodekonfigurasjon 134 og en nodesammenligning 135.
En nodeinput 131 er ansvarlig for å lese data, inputregistre 20, fra de interne inputdatakildene, parsere dem og sende data til grensesnittet for nodeapplikasjon. En nodeinput bruker grensesnittet for dataoverføring som definerer det interne dataformatet og mekanismen for dataoverføring.
En nodeoutput 132 er ansvarlig for å lese data, outputregistre 30, fra grensesnittet for nodeapplikasjon, kode og skrive det til grensesnittet for dataoverføring. En nodeoutput bruker grensesnittet for dataoverføring som definerer det interne dataformatet og mekanismen for dataoverføring.
Node-API 133 gir nodeapplikasjonen tilgang til anvendelsesdata. Den "gjemmer" seg for grensesnittet for intern dataoverføring fra nodeapplikasjonen 140. Node-API inkluderer funksjonaliteten med å skaffe anvendelsesdata til og motta det fra nodeapplikasjonen 140. Den er også brukt for å hente tilpasset sammenligningsinformasjon fra nodeapplikasjonen 140 og for å gi konfigurasjonsparametrer til den.
Nodekonfigurasjonen 134 er ansvarlig for å lese konfigurasjonsdata fra konfigurasjonsgrensesnittet og for å initialisere noden i henhold til gitte konfigurasjonsparametrer. Nodekonfigurasjonen sender også spesifikke parameterer for nodeapplikasjon til node-API. Nodekonfigurasjonen bruker konfigurasjonsgrensesnittet som definerer dataformatet for konfigurasjon og overføringsmekanismen. Nodesammenligningen 135 er ansvarlig for å skrive ulik sammenligningsdata til sammenligningsgrensesnittet. Nodesammenligningen definerer innhold til sammenligningsgrensesnitt. Nodesammenligningen bruker sammenligningsgrensesnitt som definerer standard dataformat for sammenlignings- og overføringsmekanisme. Nodesammenligningen bruker også håndteringsgrensesnitt som definerer overvåket dataformat og overføringsmekanisme. Det er brukt ved for eksempel å indikere nodens status.
Grensesnittet for dataoverføring og/eller bufring 145 definerer dataformatet for anvendelse og mekanismen for dataoverføring mellom nodene.
Formidling består av ulike prosesser slik som samling, godkjenning, beriking, opphoping, korrelering, vurdering, konvertering og levering. Den varierte funksjonaliteten tillater OSS/BSS-systemene å motta anvendelsesdata slik som de ønsker den.
Nøkkelordene til løsningsarkitekturen for formidling er enkelhet og direktehet. Den modulære utformingen av løsningen i henhold til en utførelsesform av oppfinnelsen muliggjør sanntids- og fordelingsprosesser, pålitelig drift og høy ytelse.
Node ( formidlingsprosess)
Nodene 120 er funksjonskomponenter spesialisert i ulike formidlingsprosesser, slik som samling, opphopning, validering, korrelering og formatering, eller en kombinasjon av disse. Nodene er koblet sammen til å danne prosesseringsstrømmer for håndtering av hendelsesregister.
Hver node 120 har standardfunksjonalitet som gir automatisert
dataoverføringsmekanisme mellom nodene, og prosesserer mekanismer for informasjonslogging mellom noden og nodehåndtereren (ikke vist i figuren). Den faktiske prosesseringslogikken for anvendelsesdata er implementert ved ulike applikasjoner 140 som befinner seg i nodene. Disse applikasjonene 140 er isolert fra intern mekanisme for dataoverføring og interne dataformater som muliggjør enklere
applikasjonsutvikling. Applikasjonene 140 er tegnet som ovaler i den presenterte figuren 5. Systemet gir et standard grensesnitt, gjennom hvilket applikasjonene kommuniserer med rammeverket for prosessering.
Nodene 120 kan videre kategoriseres i henhold til deres funksjonalitet. Funksjonaliteten er avhengig av nodeapplikasjonen 140 og nodens posisjon i prosesseringskjeden 200. Den første noden 120 i en prosesseringskjede kan bli kalt samlenode og den siste noden en distribusjonsnode. I disse tilfellene trenger dataparsingen og formatteringsfunksjonaliteten å bli utført av applikasjonen 140 i seg selv og standardfunksjonaliteten, forutsatt at nodebasen 130 ikke er brukt. Flyten av anvendelsesdata og standardkomponentene som blir overflødig er vist i Figur 5. I dette bildet er det antatt at datakilden 210 og destinasjonen 220 begge opererer med en sanntidsprotokoll, dvs. de bruker en tilslutningskobling for å sende og motta data.
Dersom destinasjonen for outputdata 220 krever bruk av filbasert grensesnitt tar applikasjonene hånd om formattering og skriving av data i outputfilene. I tilfeller som dette kan det være nødvendig å separere genereringen av outputfilene og leveringen av outputfiler til separate noder 120.
I en utførelsesform av den foreliggende oppfinnelsen representerer eksekutoren for prosesseringslogikk 6 et eksempel på en nodeapplikasjon 140 brukt i formidlingssystemer.

Claims (36)

1. Et formidlingssystem for å prosessere hendelsesregistre i henhold til en forhåndsdefinert logikk, hvor et hendelsesregister er et dataregister som indikerer at en hendelse har inntruffet og inneholder detaljert informasjon om hendelsen, der hendelsen er en transaksjon som inntreffer i et kommunikasjonsnett, der formidlingssystemet innbefatter grensesnitt med nettelementer i kommunikasjonsnettet for å innsamle forbruksdata fra kommunikasjonsnettet, anordning for å levere forbruksdata til en operatørs drifts- og forretningsstøttesystem, og minst én node innbefattende et system for å prosessere hendelsesregistre som er tilpasset til å aggregere, korrelere, foredle, validere, formattere og /eller rangere data i hendelsesregistrene slik at dataene er lesbare for operatørens drifts- og forretningsstøttesystem karakterisert vedat systemet for å behandle hendelsesregistre innbefatter: datafelttabeller (40) for å lagre data under prosessering i systemet, der datafelttabellene (40) inneholder datafelt for å lagre verdier for parametrene nødvendig i den forhåndsbestemte logikken, datafelt for å lagre verdier lest fra et dataregister under prosessering, og datafelt for å skrive output fra funksjoner nødvendig i den forhåndsbestemte logikken, hvor datafeltene er lagret i en første og andre tabell, der den første tabellen inneholder heltall og den andre tabellen inneholder strenger, en logisk definisjonsstruktur innbefattende: - en parametertabell (50) som inneholder pekere til datafeltene for å lagre verdier fra parametrene nødvendig i den forhåndsdefinerte logikken, - et funksjonskodesett som inneholder programkoder for å utføre funksjonene nødvendig i den forhåndsdefinerte logikken, og - en serie (60) bytekodeinstruksjoner (62) bygget av en kompilator (4) fra en fil (2) som inneholder den forhåndsbestemte logikken, hvori hver bytekodeinstruksjon (62) inneholder: - en funksjonspeker (70) som peker til en funksjonskode (10, 11, 12) i funksjonskodesettet til å bli brukt i eksekveringen av instruksjonen (62), - et antall parametre (80), og - en peker-til-parameter (90) som peker til en første (54) i en sekvens med parameterpekere (52) i parametertabellen (50) som er nødvendig i eksekveringen av instruksjonen (62), og en logisk eksekveringsanordning (6) konfigurert til å prosessere hendelsesregistre i henhold til den forhåndsdefinerte logikken ved å eksekvere en sekvens av bytekodeinstruksjoner (62) inneholdt i den logiske definisjonsstrukturen, der hver bytekodeinstruksjon (62) eksekveres ved å kalle den respektive funksjonskode (10, 11, 12) i funksjonskodesettet ved hjelp av den respektive funksjonspekeren (70) og bruke det respektive antall parametre (80) og den respektive peker-til-parameter (90) som funksjonsparametre.
2. Systemet i henhold til krav 1, konfigurert til å motta registre for inputdata (20) som har en spesifisert form med datafelt og verdier i nevnte datafelt.
3. Systemet i henhold til krav 1 eller 2, konfigurert til å produsere registre for outputdata (30) som har en spesifisert form med datafelt og verdier i nevnte datafelt.
4. Systemet i henhold til hvilket som helst av kravene 1 til 3, hvori pekerne til datafelt i parametertabellen (50) er direkte pekere til minnelokaliseringer av datafelt i datafelttabellene (40).
5. Systemet i henhold til hvilket som helst av kravene 1 til 4, hvori mens systemet er i drift og prosesserer et dataregister, inneholder verdiene lagret i datafelttabellene (40): - verdier for parametrene av den forhåndsdefinerte logikken, og - verdier fra dataregisteret under prosessering, og når prosesseringen er ferdig, inneholder verdiene lagret i datafelttabellene (40) også: - verdier for output av prosessen, og - minst noen mellomliggende verdier, dersom disse var nødvendig i prosesseringen av dataregisteret.
6. Systemet i henhold til hvilket som helst av kravene 1 til 5, hvori hver peker (52) i parametertabellen (50) peker til et enkelt datafelt i datafelttabellene (40).
7. Systemet i henhold til hvilket som helst av kravene 1 til 6, hvori systemet inneholder minst to ulike pekere (52) som peker til et felles datafelt i datafelttabellene (40).
8. Systemet i henhold til hvilket som helst av kravene 1 til 7, hvori funksjonskodesettet inneholder en funksjon som har et antall parametrer og en annen funksjon som har et annet antall parametrer.
9. Systemet i henhold til hvilket som helst av kravene 1 til 8, hvori funksjonskodesettet er dynamisk utvidbart.
10. Systemet i henhold til hvilket som helst av kravene 1 til 9, hvori programkoden i funksjonskodesettet er på formen av binærkode direkte eksekverbar av et opererende system.
11. Systemet i henhold til hvilket som helst av kravene 1 til 10, hvori konstruksjonen av parametertabellen (50) er slik at hvert sett med parametrer som er nødvendig i eksekveringen av bytekodeinstruksj onene (62) er dannet av etterfølgende parametrer i parametertabellen (50).
12. Systemet i henhold til kravl 1, hvori peker-til-parameter (90) inneholder en peker til den første parameteren (54) og et antall av parametrene (80) nødvendig i eksekveringen av bytekodeinstruksj onen (62).
13. Systemet i henhold til hvilket som helst av kravene 1 til 12, hvori funksjonspekeren (70) og peker-til-parameter (90) er på formen av direkte pekere som peker til minnelokaliseringer.
14. Systemet i henhold til hvilket som helst av kravene 1 til 13, hvori den logiske eksekveringsanordningen innbefatter: - en programteller (17) som peker til en bytekodeinstruksj on (62) i serien (60) med bytekodeinstruksjoner, - anordning for å nullstille programtelleren (17) slik at programtelleren peker til den første bytekodeinstruksj onen (62) når den logiske eksekveringsanordningen starter å prosessere et nytt dataregister, og - anordning for å sette programtelleren (17) til å peke til den følgende bytekodeinstruksj onen (62) etter hvert funksjonskall.
15. Systemet i krav 14, hvori minst en funksjonskode (10, 11, 12) i det første funksjonskodesettet innbefatter programkodeanordning for å endre verdien av programtelleren (17).
16. Systemet i henhold til hvilket som helst av kravene 1 til 15, innbefattende - et grafisk brukergrensesnitt (1) for å definere den forhåndsdefinerte logikken, - en kompilator (4) for å kompilere den forhåndsdefinerte logikken til å produsere en serie (60) med bytekodeinstruksjoner (62) og parametrene for nevnte instruksjoner, og - en bytekodeparser (8) for å parsere serien (60) med bytekodeinstruksjoner (62) til å danne den logiske definisjonsstrukturen innbefattende instruksjonene på formen av funksjonspekere (70) og pekere til parametrer (90).
17. Systemet i henhold til krav 16, innbefattende funksjonalitet for å legge til en tilpasset funksjon i funksjonskodesettet, og for å påvirke nevnte funksjonalitet: - anordning for å vise en skjerm i det grafiske brukergrensesnittet for å definere parametrene av den tilpassede funksjonen, og - en tilpasset funksjonsutvidelse i kompilatoren for å modifisere den logiske definisjonsstrukturen til å inkludere den tilpassede funksjonen og parametrer av den tilpassede funksjonen
18. Systemet i henhold til hvilket som helst av kravene 1 til 17, hvori nevnte minst en node inkluderer: - en nodebasert (130) programanordning i stand til å tilveiebringe funksjonalitet for basissoftware for noden, nevnte funksjonalitet for basissoftware inkluderer et eksternt grensesnitt av noden og et internt grensesnitt av noden, - en grensesnittsanordning for applikasjonsprogrammering for å motta applikasjonsprogrammer for noden, hvilket applikasjonsprogram er i stand til å samhandle med det interne grensesnittet til noden, og - et applikasjonsprogram (140), og hvori den logiske definisjonsstrukturen er inneholdt i applikasjonsprogrammet til noden.
19. En fremgangsmåte for å prosessere hendelsesregistre i henhold til en forhåndsdefinert logikk, hvor et hendelsesregister er et dataregister som indikerer at en hendelse har inntruffet og inneholder detaljert informasjon om hendelsen, der hendelsen er en transaksjon som inntreffer i et kommunikasjonsnett, der fremgangsmåten innbefatter: å innsamle forbruksdata fra nettelementer i kommunikasjonsnettet, å prosessere hendelsesregistre ved å aggregere, korrelere, foredle, validere, formattere og /eller rangere data i hendelsesregistrene slik at dataene er lesbare for en operatørs drifts- og forretningsstøttesystem, å levere forbruksdata til operatørens drifts- og forretningsstøttesystem,karakterisert vedå benytte datafelttabeller (40) for å lagre data under prosessering i systemet, der datafelttabellene (40) inneholder datafelt for å lagre verdier for parametrene nødvendig i den forhåndsbestemte logikken, datafelt for å lagre verdier lest fra et dataregister under prosessering, og datafelt for å skrive output fra funksjoner nødvendig i den forhåndsbestemte logikken, hvor datafeltene er lagret i en første og andre tabell, der den første tabellen inneholder heltall og den andre tabellen inneholder strenger, å benytte en logisk definisjonsstruktur innbefattende: - en parametertabell (50) som inneholder pekere til datafeltene for å lagre verdier fra parametrene nødvendig i den forhåndsdefinerte logikken, - et funksjonskodesett som inneholder programkoder for å utføre funksjonene nødvendig i den forhåndsdefinerte logikken, og - en serie (60) bytekodeinstruksjoner (62) bygget av en kompilator (4) fra en fil (2) som inneholder den forhåndsbestemte logikken, hvori hver bytekodeinstruksj on (62) inneholder: - en funksjonspeker (70) som peker til en funksjonskode (10, 11, 12) i funksjonskodesettet til å bli brukt i eksekveringen av instruksjonen (62), - et antall parametre (80), og - en peker-til-parameter (90) som peker til en første (54) i en sekvens med parameterpekere (52) i parametertabellen (50) som er nødvendig i eksekveringen av instruksjonen (62), og der prosesseringen av hendelsesregistrene i henhold til den forhåndsdefinerte logikken innbefatter å eksekvere en sekvens av bytekodeinstruksjoner (62) inneholdt i den logiske definisjonsstrukturen, der hver bytekodeinstruksj on (62) eksekveres ved å kalle den respektive funksjonskode (10,11, 12) i funksjonskodesettet ved hjelp av den respektive funksjonspekeren (70) og bruke det respektive antall parametre (80) og den respektive peker-til-parameter (90) som funksjonsparametre.
20. Fremgangsmåten i henhold til krav 19, hvori de prosesserte dataregistrene har et flertall datafelt og verdier i minst noen av nevnte datafelt, der fremgangsmåten omfatter: - å lese verdier fra minst noen av datafeltene i et dataregister, - å skrive de leste verdiene i datafelt i datafelttabellene (40), og - å prosessere verdiene fra dataregisteret i datafeltene i datafelttabellene (40) ved å eksekvere sekvensen med instruksjoner (62), hvori hver instruksjon (62) i den eksekverte sekvensen inneholder funksjonspekeren (70) og en peker-til-parameter (90), nevnte prosessering inkluderer eksekvering av hver av de pekte funksjonskodene (10,11,12) ved å bruke verdiene pekt til av det pekte settet med parameter-verdi-pekere.
21. Fremgangsmåten i krav 20, hvori instruksjoner i den eksekverte sekvensen av instruksjonene er lagret i en instruksjonstabell.
22. Fremgangsmåten i krav 21, hvori den eksekverte sekvensen med instruksjoner inneholder minst en undersekvens av instruksjoner, og instruksjonen i den minst en undersekvens av instruksjoner er lokalisert etter hverandre i instruksjonstabellen.
23. Fremgangsmåten i krav 21 eller22, hvori steget med prosessering av data innbefatter for hver instruksjon i sekvensen med instruksjoner: - å lese en programteller (17) som peker til en instruksjon (62) i instruksj onstabellen, - å hente instruksjonen pekt til av programtelleren (17), - å kalle den pekte funksjonen og gi peker-til-parameteren (90) som et argument, og - å inkrementere programtelleren (17).
24. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 23, innbefattende å produsere minst et register for outputdata (30) etter eksekvering av instruksjonssekvensen, hvori det minst et register for outputdata (30) inkluderer et flertall datafelt og steget med å produsere det minst et register for outputdata (30) innbefatter: - å lese verdier i minst noen av datafeltene i datafelttabellene (40), og - å skrive verdiene lest fra datafelttabellene (40) i datafeltene av det minst et register for outputdata (30).
25. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 24, hvori funksjonspekeren (70) og peker-til-parameter (90) er på formen av direkte pekere som peker til minnelokaliseringer.
26. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 25, hvori hver parameter-verdi-peker peker til et enkelt datafelt i datafelttabellene (40) og er på formen av en direkte peker som peker til en minnelokalisering.
27. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 26, hvori verdiene under prosessering er lagret i datafelttabellene (40), nevnte verdier inkludert verdiene til parametrene som er nødvendig i den forhåndsdefinerte logikken, verdien lest fra dataregisteret under prosessering, og output fra funksjonene.
28. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 27, hvori en samme parameterverdi er brukt i mer enn en funksjon.
29. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 28, hvori funksjonskodene (10, 11, 12) i funksjonskodesettet er på formen av binærkode direkte eksekverbare av et opererende system.
30. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 29, hvori nevnte dataregister er hendelsesregistre i et formidlingssystem i et kommunikasjonsnettverk.
31. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 30, innbefatter stegene å motta en prosesseringslogikk fra et grafisk brukergrensesnitt (1) og forme instruksjonssekvensen på basis av den mottatte prosesseringslogikken.
32. Fremgangsmåten i krav 31, hvori steget som danner instruksjonssekvensen på grunnlag av den mottatte prosesseringslogikken innbefatter: - kompilering av den mottatte prosesseringslogikken til å produsere en serie (60) med bytekodeinstruksjoner (62) og parametrene for nevnte instruksjoner, og - parsering av seriene (60) med bytekodeinstruksjoner til å danne sekvensene av instruksjoner (62), hvori instruksjonene (62) er på formen av funksjonspekere (70) og pekere til parametrer (90).
33. Fremgangsmåten i henhold til hvilket som helst av kravene 20 til 34, hvori etter prosessering av et dataregister innbefatter fremgangsmåten å repetere fremgangsmåten med et annet dataregister.
34. Fremgangsmåten i krav 33, hvori verdien fra et følgende dataregister er skrevet i den samme datafelttabellen (40) for å erstatte verdiene fra et foregående dataregister.
35. Et dataprogramprodukt for å utføre fremgangsmåten i krav 19.
36. Dataprogramproduktet i krav 35, innbefattende: - programkode for å påvirke en kompilator (4) som er anvendelig for å kompilere prosesseringslogikken til å produsere serien med bytekodeinstruksjoner og parametrer for nevnte instruksjoner, kompilatoren er også anvendelig for å reservere felttabellene for å lagre komponenter nødvendig i prosesseringen av prosesseringslogikken, nevnte felttabell inkluderer: - datafelttabellene (40) som inneholder datafelt for å lagre verdier nødvendig i prosesseringslogikken, - parametertabellen (50) som inneholder pekere til datafelt for å lagre verdier av parametrene nødvendig i prosesseringslogikken, og - funksjonskodesettet som inneholder programkode (10, 11, 12) for å utføre funksjoner nødvendig i prosesseringslogikken, - programkode for å sette i verk en bytekodeparser (8) som er anvendelig til å parsere seriene med bytekodeinstruksjoner produsert av kompilatoren (4) til å danne den logiske definisjonsstrukturen, hvori bytekodeinstruksj onene (62) er på formen av funksjonspekere (70) og pekere til parametrer (80) og hvori referansene til feltene i felttabellene er på formen av direkte minnelokaliseringer, og - programkode for å sette i verk en eksekveringsmaskin (6) som er anvendelig til å prosessere dataregistre i henhold til prosesseringslogikken ved å eksekvere seriene med bytekodeinstruksjoner (62) i den logiske definisjonsstrukturen.
NO20070481A 2004-07-06 2007-01-25 Data prosessering i et formidlings- eller serviceforsyningssystem. NO338023B1 (no)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US58552704P 2004-07-06 2004-07-06
EP20040396044 EP1615127B1 (en) 2004-07-06 2004-07-06 Data processing in a mediation or service provisioning system
PCT/FI2005/000287 WO2006003239A1 (en) 2004-07-06 2005-06-16 Data processing in a mediation or service provisioning system

Publications (2)

Publication Number Publication Date
NO20070481L NO20070481L (no) 2007-01-25
NO338023B1 true NO338023B1 (no) 2016-07-18

Family

ID=34971665

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20070481A NO338023B1 (no) 2004-07-06 2007-01-25 Data prosessering i et formidlings- eller serviceforsyningssystem.

Country Status (5)

Country Link
AU (1) AU2005259108B2 (no)
BR (1) BRPI0513004B1 (no)
CA (1) CA2572668C (no)
NO (1) NO338023B1 (no)
WO (1) WO2006003239A1 (no)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101394451B (zh) * 2008-11-06 2012-09-05 北京中创信测科技股份有限公司 呼叫详细记录数据的存储方法、显示方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6513156B2 (en) * 1997-06-30 2003-01-28 Sun Microsystems, Inc. Interpreting functions utilizing a hybrid of virtual and native machine instructions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BEDICHEK R C : Talisman fast and accurate multicomputer simulation, 1995 ACM SIGMETRICS JOINT INTERNATIONAL CONFERENCE ON MEASUREMENT AND MODELING OF COMPUTER SYSTEMS. OTTAWA MAY 15 ¿ 19, 1995., Dated: 01.01.0001 *

Also Published As

Publication number Publication date
BRPI0513004A (pt) 2008-04-22
AU2005259108A1 (en) 2006-01-12
AU2005259108B2 (en) 2011-08-04
BRPI0513004B1 (pt) 2017-12-05
CA2572668C (en) 2014-10-14
WO2006003239A1 (en) 2006-01-12
CA2572668A1 (en) 2006-01-12
NO20070481L (no) 2007-01-25

Similar Documents

Publication Publication Date Title
AU2016201350B2 (en) Managing objects using a client-server bridge
US8296734B2 (en) System and method for testing a software product
RU2445682C2 (ru) Графоориентированное программирование и выполнение на основе производителей
US8494832B2 (en) Method and apparatus for software simulation
Lhoták Program analysis using binary decision diagrams
De Leoni et al. A holistic approach for soundness verification of decision-aware process models
US10489274B2 (en) Using emulation to disassociate verification from stimulus in functional test
US8042106B2 (en) Data processing in a mediation or service provisioning system
Schaefer et al. Engineering parallel applications with tunable architectures
Lübke Unit testing BPEL compositions
NO338023B1 (no) Data prosessering i et formidlings- eller serviceforsyningssystem.
US20040187099A1 (en) System and method for processing price plans on a device based rating engine
Kimura et al. A javascript transpiler for escaping from complicated usage of cloud services and apis
Bucur Improving scalability of symbolic execution for software with complex environment interfaces
Williams et al. An Introduction to Asynchronous Programming with Twisted
Jurjens et al. A foundation for tool-supported critical systems development with UML
Hess et al. Enhancing Dafny Support in Visual Studio Code
Burger et al. Package ‘RUnit’
Danek et al. Finding Optimal Compatible Set of Software Components Using Integer Linear Programming
JADRNÍČEK AdInsure Platform Configurations Performance Testing Process
JANSSON et al. Performance benchmarking using real world applications
Brosi et al. FerryLeaks-A Web-based Editor for the Table Algebra
Garcıa-Domınguez et al. Performance Test Case Generation for Java and WSDL-based Web Services from MARTE

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees