NO338023B1 - Data processing in a mediation or service supply system. - Google Patents

Data processing in a mediation or service supply system. 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
Norwegian (no)
Other versions
NO20070481L (en
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/en
Publication of NO338023B1 publication Critical patent/NO338023B1/en

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

Description

Dataprosessering i et formidlings- eller tjenesteforsyningssystem Data processing in an intermediary or service supply system

Teknisk område Technical area

Den foreliggende oppfinnelsen er relatert til dataprosessering. The present invention is related to data processing.

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. More specifically, the present invention is related to the processing of structured data registers that contain data fields and data in the data fields. An example of such a data register is an event register which contains data about the use of a communication network.

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) Herein, an embodiment of the present invention relates to methods and systems for mediation. Mediation is a process in which application data is collected from communication networks and delivered to the operator's operations and enterprise support system(s)

(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. (Operation and Business Support System(s)) (OSS/BSS). Mediation software collects application data from the network by setting up an interface between various different network elements. The dissemination layer then collects, correlates, enriches, validates, formats, and/or evaluates data so that it is readable by the OSS/BSS system(s) that is the target, and contains all the necessary information.

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. In modern telecommunications networks, there is a demand for handling events as soon as data is available in the network. Continuous streaming media, which is also called real-time media, has been developed to meet these requirements. Especially in continuously flowing communication, quality, reliability and efficiency of data processing are very important.

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. In modern telecommunications networks, there is also a need for easy adaptation of the system to offer new services and to process the event registers according to changing processing requirements. The above-mentioned purposes are often at odds with each other: simple adaptation of the system tends to reduce the throughput, while, on the other hand, a system that has an optimized throughput usually requires intensive work to be reconfigured.

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. Another embodiment of the present invention relates to systems and methods for dissemination. Service provisioning and service activation is a process in which any type of service in any type of network is provided and activated to network elements. These could be, for example, enabling all consumer and community services, such as voice, ADSL, WLAN access and VPN which, with the same supply system, help the operator to remove many costly, unnecessary and overlapping processes.

Bakgrunnsstoff Background fabric

Patentpublikasjonen US 6,449,618 legger fram et sanntidssystem for hendelsesprosessering. Systemet som er presentert i publikasjonen har dårlig fleksibilitet. Patent publication US 6,449,618 proposes a real-time system for event processing. The system presented in the publication has poor flexibility.

Bedichek R C: Talisman fast and accurate multicomputer simulation, 1995 Bedichek RC: Talisman fast and accurate multicomputer simulation, 1995

"ACM SIGMETRICS JOINT INTERNATIONAL CONFERENCE ON "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. MEASUREMENT AND MODELING OF COMPUTER SYSTEMS", Ottawa, May 15 - 19, 1995, describes a system and method for processing data records according to a predefined logic, including a data field table containing fields for creating data during processing in the system, a logical definition structure containing the predefined logic contained in the logical definition structure, wherein the logical definition structure comprises, a the parameters containing pointers to data fields to store values from the parameters necessary in the predefined logic, a function code set containing program codes to perform functions necessary in the predefined logic, and a series of bytecode instructions containing a function pointer pointing to a function code in the function code set to be used in the execution of the instruction, and a pointer pointing to a set of parameter pointers in the parameter table needed in the execution of the instruction.

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. The patent publication US 6,166,657 proposes a system for supporting and handling telecommunications services. The main idea in US 6,366,657 is that the system includes a Service Creator Environment (SCE), which environment makes it possible to easily create, provide and manage new services for subscribers. This is done with tool folders to specify object definitions in an object-oriented framework. The system presented in the publication is aimed at telecommunications operators to make services easier.

Det er to alternative måter å utvikle de kjente systemene videre i et forsøk på å kombinere effektivitet og enkel modifikasjon og håndtering. There are two alternative ways to develop the known systems further in an attempt to combine efficiency and ease of modification and handling.

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. The first option would be to generate some scripting language from the predefined processing logic. A suitable scripting language is Perl. The advantage of this approach is that the resulting code can be inspected and is human readable. Hence, the code is easy to debug. However, there are several disadvantages to the scripting language approach. For example, the performance is relatively small since the scripting languages (even Perl) are slower than machine languages. It is also difficult to generate valid code and to ensure that the variable names etc. do not cause any conflicts in the system.

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. The other option would be to generate C or Java source code, and compile it before execution. This solution produces the fastest code, if C is used, because translation is not necessary. The problem is to compile the source code and to make sure that the system really works correctly. The logic formed in this way cannot be tested before it is put into use, if really fast changes to the logic are needed. This makes the system unreliable and risky. Compilation is also very difficult, if not impossible, because it must be performed in customer environments and on different platforms. Hence, this approach involves serious risks and is extremely difficult. On the other hand, if the problems involved in this solution can be solved, the solution will offer a very high performance.

Redegjørelse av oppfinnelsen Explanation of the invention

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. It is an aim of the present invention to form a reliable data processing system and method which both provides a relatively high performance and is relatively easy to adapt to new processing logic.

Mer spesifikt oppnås formålet som angitt i de selvstendige kravene. More specifically, the purpose is achieved as stated in the independent requirements.

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. The purpose of the invention has been achieved by forming a special logical definition structure based on the processing logic. The logical definition structure is designed so that it is easy to execute efficiently. The logical definition structure is also designed so that making modifications to the processing logic requires relatively limited and direct alterations in the logic definition structure. This is made possible by defining the processing logic in the form of a series of bytecode instructions, in which each instruction contains a pointer to a part of a program code that performs a function and a pointer to parameters to be used in the execution of the function. The instructions, the program codes that perform the functions, the pointers and the data being processed are stored in tables, thus allowing the use of efficient pointing mechanisms along with flexibility and easy modification. The logical definition structure then includes a parameter table containing pointers to the value of the parameters needed in the processing logic, a function code set containing program codes to perform the functions needed in the processing logic, and a series of bytecode instructions, each of the instructions pointing to pointers in the parameter table and a function code required in the execution of the instruction.

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. The present invention makes it possible to construct a reliable data processing system and method which both provide a relatively high performance and are relatively easy to adapt to new processing logic.

Oppfinnelseskonseptet tillater også flere nyttige og fordelaktige utførelsesformer som gir ytterligere fordeler. The inventive concept also allows for several useful and advantageous embodiments that provide additional advantages.

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. In one embodiment of the invention, adaptation of supply logic can be implemented and visualized through a graphical user interface. New services and service packages - regardless of their complexity - can be quickly introduced without having to perform time-consuming and costly changes to the OS S/B SS system of an operator.

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. The invention also offers embodiments of a mediation system that can be operated continuously once it has been started, because all configurations can be performed while the system is in production.

Det er også utførelsesformer som tillater både prosessering av typen batch og sanntidsprosessering av hendelsesregister. There are also embodiments that allow both batch-type processing and real-time event log processing.

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. It is clear from the explanation above that the present invention can be used with a wide variety of applications that require fast and reliable processing of event registers.

Kort beskrivelse av tegninger Brief description of drawings

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. For a more complete understanding of the present invention and its advantages, the invention is now described by means of the examples and with reference to the following drawings, in which: Figure 1 presents a block diagram of a system according to an embodiment of the invention. Figure 2 presents a block diagram of an example of a function according to an embodiment of the invention. Figure 3a presents a block diagram of an example of an embodiment of execution of a function for processing logic according to an embodiment of the invention. Figure 3b presents a block diagram of another example of performing the execution of a function for processing logic according to the invention. Figure 4 presents a block diagram of an example of an execution of byte code according to an embodiment of the invention. Figure 5 presents a flow diagram of an example of a mediation process according to an embodiment of the invention.

Definisjoner Definitions

Dataregister: Data register:

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). A data register is a register that contains data about, for example, service use or supply requests. A data register typically contains several data fields and can be structured (registers contain other registers). In communication systems, examples of data records would include such as CDR, call detail record (Cali Detail Record); ER, event record (Event Record); UDR, usage data record (Usage Data Record); and IPDR, internet protocol detail record (Internet Protocol Detail Record).

Felt: Field:

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). A field is a simple unit in a data record. Normally, a field contains a value that can be any data (date, integer, string, etc).

Hendelse: Event:

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. An event is a transaction that occurs in a telecommunications network. Incidents are typically caused by actions taken by a subscriber while using telecommunications services. Events may also be based on actions performed by the telecommunications network or a device connected to it, for example during the performance of telecommunications services. Some events may even be generated automatically during the execution of the service program and perform other functions to provide services to the customers.

Hendelsesregister: Event register:

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. An event register is a data register that indicates that an event has occurred. That is, an event register provides information that a subscriber has used a telecommunications service. An incident register also contains detailed information about the incident. Hence, an event register can contain information about use, for example if the telecommunications service used is a telephone call, the event register can indicate how long the call lasted, or if the service is to download a file from an FTP server, the event register can contain information about the size of the transferred the data block.

Sanntid: Real time:

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. In contrast to batch processing, real-time processing refers to sending a record of events through the dissemination system in streaming format. That is, as soon as a specific node in the dissemination stream has processed (for example enriched) the register, it is forwarded to the next node. In batch processing, a large number of event registers are first collected in an intermediate storage, and then the quantity of event registers is processed from the intermediate storage. Hence, in batch processing, processing delays experienced by the event registers are typically very long and vary between event registers. In real-time processing, processing delays experienced by the event registers are typically short and essentially of the same size between event registers.

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). Throughput time in a real-time system can be, for example, from about 1 millisecond to 10 seconds. In some embodiments, events can pass through the system even faster. Sometimes, depending on the embodiment and application, the term real time may also include throughput times longer than expressed above. In general, a real-time service is a service that does not include significant delays as judged by a user of the service as actions performed, and services provided essentially at the time the services are ordered (ie, events added to the mediation system).

Inputregister: Input Register:

Et dataregister som er lest av en prosesseringsnode. Formatet og strukturen på inputregisteret er fortrinnsvis forhåndsdefinert og kjent av noden. A data register read by a processing node. The format and structure of the input register is preferably predefined and known by the node.

Outputregister: Output Register:

Et dataregister som er skrevet av en prosesseringsnode. Formatet og strukturen på outputregisteret er forhåndsdefinert og kjent av prosesseringsnoden. A data register written by a processing node. The format and structure of the output register is predefined and known by the processing node.

Eksekutor for prosesseringslogikk: Processing logic executor:

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. A processing logic executor is a node application in a mediation system. A processing logic executor handles predefined processing logic in a processing stream. It executes the user-defined ruleset using existing rule prototype functions.

Nodebase: Node base:

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. A nodebase provides an interface for reading input registers and writing output registers. A processing logic executor receives field values using the name of the field from the node base. The node base implements the functionality of operations such as creating a new output register and rejecting an existing register.

Funksjon: (- piler i figur 2) Function: (- arrows in figure 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. An arrow or actually a group of arrows pointing to a single field representing a function. A function is a prototype of a processing rule, such as field validation, value comparison, or conversion.

Funksjonskode: Function code:

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. A function code is a program code to perform a function required in the predefined logic. In a preferred embodiment, the function code is a binary code directly executable by an operating system. The code uses function parameters for decisions that need to be made during function execution.

Instruksjoner: Instructions:

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. An instruction is a simple unit of bytecode for processing logic. In a preferred embodiment, an instruction contains a pointer to the function code, pointer to the function parameters and the number of parameters. Instructions are formed during compilation process.

B<y>tekodeeksekutor: B<y>tecode Executor:

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. A bytecode executor is the component that takes care of instruction fetching, decoding and execution. Hence, the bytecode executor takes the next instruction from the table and calls the function of the instruction using the instruction's parameters.

Delte bibliotekfiler: Shared library files:

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. Shared library files contain function code for both core and custom functions. The code is produced by a C compiler and is fast to execute. The functions are loaded into memory from the files when the processing logic executor is started.

Beste måte å utføre oppfinnelsen på Best way to carry out the invention

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. Figure 1 shows an example of using an embodiment of the invention. The system in Figure 1 includes a graphical user interface 1 (GUI) for defining the predefined processing logic according to which the user wants the system to process the data registers, such as event registers in a communication network. The GUI 1 produces a predefined processing logic file 2 containing the predefined processing logic and takes care of storing data in a persistent store, such as database 3. In the embodiment, the predefined processing logic file 2 contains an XML representation of the logic built with the 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. The system includes a compiler 4 which uses the predefined processing logic file 2 as a source code, and builds a processing logic bytecode 5 based on the predefined processing logic. The compilation is performed each time the logic is tested or stored in the persistent store 3. The persistent store 3 holds all configurations of processing logic and the compiled bytecodes for them.

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. The processing logic bytecode 5 is a simple text file that describes how the predefined processing logic will be executed. It has a sequential set of instructions and their parameters. All instructions are stored using the original function names.

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. The system also includes a processing logic executor 6 which can be a node application that can be executed using node base. The executor for processing logic 6 includes in itself a function library 7, a bytecode parser 8 and a bytecode executor 9.

Funksjonsbiblioteket 7 inneholder alle funksjonene for prosesseringslogikken. I figuren er funksjonsbiblioteket 7 delt inn i kjernefunksjoner 10 og tilpassede funksjoner 11. The function library 7 contains all the functions for the processing logic. In the figure, the function library 7 is divided into core functions 10 and custom functions 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. The byte code parser 8 parses the plain text byte code 5 and produces a more efficient form of the code. The complete bytecode has no function name but direct pointers to it.

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. The bytecode executor 9 executes the analyzed bytecode. Hence, the byte code executor 9 acts as the logic execution device to execute the predefined processing logic. The code is executed "blindly" without knowing what the functions do.

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. Hence, in the embodiment, a graphical user interface may be used to set up the system to process data records according to a desired processing logic. After defining the processing logic, the compiler parses the processing logic and compiles it into a format (processing logic bytecode) that is fast and easy to execute. The compiler means reads the XML file for processing logic, forms a data structure from it, and produces a bytecode file using the data structure. The compiler removes all "useless" information that is not needed in the execution from the processing logic, flattening the structure of the logic. The compiler also reserves a field table, to which all the fields are placed. After this, the fields are no longer referred to by their names, but by the index in the table. The bytecode parser changes the index to direct memory location.

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. Required instructions are added to the bytecode when the compiler either encounters a function in the processing logic definition or needs to add a function for e.g. to jump from one place to another in the code. When the compiler adds an instruction it also adds the parameters of the function as a list of indices of the fields. The bytecode parser builds the parameter table using this information. After the compilation is complete, the compiler calculates the values for the bytecode header fields.

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). In an advanced embodiment, a user can also define and add custom functions via the graphical user interface. When adding a custom function, the system adds a new connection screen to define the function parameters in the graphical user interface. The system also adds a corresponding function code to the function code table of the processing logic executor 6. For the custom function functionality, the compiler includes a custom function extension to modify the logic definition structure to include the custom function and the parameters of the custom function in the system field tables. Figure 2 shows an example of the function of the executor for processing logic 6. In Figure 2, each arrow 10, 11 (or a group of arrows pointing to the same field) represents a function for processing logic. The processing logic executor executes, in the specified order, the bytecode generated by the compiler. Each arrow in the figure represents a process logic function that executes the action depending on the function parameters (fields).

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. In the embodiment, the fields 22, 32 in the input 20 and output 30 are register fields read by the node base 130. The node base 130 reads the fields 22 from an input file 20 and forms a data structure 40 for the register. Each field can be retrieved or written using the field name. The processing logic executor 6 must not read all the fields from the input register.

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. In the embodiment, internal fields 42 in the processing logic executor 6 are temporary fields that the processing logic executor has produced. Internal fields 42 may contain original data read from the node base 130 or data generated from the functions 10, 11. Internal fields 42 may also be constants inside the executor for processing logic 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. In the embodiment, the processing logic executor 6 allocates memory to all temporary fields 42 in the initialization phase to make execution more efficient. The fields grow automatically during execution if necessary. The fields read from the nodebase do not need any space (the nodebase takes care of that), and they cannot be modified inside the executor for processing logic.

I utførelsesformen kan feltene bli avbildet direkte fra inputregisteret 20 inn til outputregisteret 30 uten å modifisere feltet eller bruke det til andre felt. In the embodiment, the fields can be mapped directly from the input register 20 into the output register 30 without modifying the field or using it for other fields.

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. In the figure, each arrow 10, 11 (or a group of arrows pointing to the same field) represents a function in the processing logic executor 6. The function can be, for example, string concatenation which takes two input fields and produces an output field. The byte code for processing logic 5 consists of pointers to these functions 10, 11 and their parameters.

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. Figure 3 shows two examples of function executions of processing logic in an embodiment of the invention. In the embodiment on the left (Figure 3a), there is an example of a base function that takes four input fields 22, 42 and produces two output fields 32, 42. In the embodiment on the right (Figure 3b), an example has a function that takes three input fields 22, 42 and does not produce any output fields, but modifies the program counter 17 according to the field values.

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. In the embodiment, the instructions 62 in both examples in Figure 3 are pointers to function codes 12. Function code 12 only exists in memory once even though there are many instructions 62 that use it. The byte code executor 9 always executes the instruction 62 to which its program counter 17 points. The byte code executor 9 increases the program counter 17 by one after each function call.

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. In Figure 3b, the example shows how a function can update the program counter. For example comparison functions, unconditional jump etc. modify the program counter. This means that the execution "jumps" to different places in the code.

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. In the embodiment, the processing logic executor 6 receives its entire configuration in node application parameters and in bytecode files 5. Node application parameters include all predefined specific processing logic parameters and settings of the processing logic executor. Breakpoints in the bytecode and other debugging parameters are set using the node parameters if necessary. These parameters are used, for example, in debug mode. Figure 4 shows an example of a byte code executor 9 according to an embodiment of the invention. In the embodiment, the bytecode executor 9 retrieves an instruction 62 at some point in time. A simple instruction 62 contains three parts: function pointer 70, number of parameters 80 and pointer-to-parameters 90 of the instruction 62. Figure 4 describes how a simple instruction 62 is handled in the byte code executor 9. Each instruction 62 consists of the following parts: • Function pointer 70 - The function pointer points to the relevant function code 12 that is used in the execution of this instruction 62. • Number of parameters 80 - The function can use a different number of parameters 52 depending on the use of the function. For example, a value comparison function can take 3-N parameters depending on the number of values to compare. • Pointer to parameters 90 - The pointer to parameters points to the parameter table 50 which contains all parameters 52 needed throughout the predefined processing logic. All the parameters 52 in this instruction 62 are one after the other in the table 50. The pointer 90 refers to the first parameter 54 and the number of parameters 80 tells how many of them are to be used. The parameter list can contain both input and output parameters.

I utførelsesformen får funksjonen både antallet parametrer og pekeren til parameterlisten som funksjonsargumenter. In the embodiment, the function receives both the number of parameters and the pointer to the parameter list as function arguments.

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. In the embodiment, the bytecode executor 6 handles the execution of the bytecode 5. The execution is performed blindly, without thinking that the functions are executed. The byte code 5 is divided into three different parts: initialization, processing and stop part. Bytecode execution is a straight-forward task: 1. Fetch the next instruction from the instruction list (the one referenced by the program counter). 2. Call the function in the statement using parameter count and parameter pointer as function parameters.

3. Undersøk om eksekveringen har nådd enden av instruksjonslisten. 3. Check if the execution has reached the end of the instruction list.

a. Dersom ikke, øk programtelleren med én og hopp til del 1 a. If not, increase the program counter by one and skip to part 1

b. Dersom eksekveringen har nådd enden, returner fra prosessfunksjonen og gi kontrollen tilbake til nodebasen. b. If execution has reached the end, return from the process function and return control to the node base.

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. The processing logic executor in the above described embodiment is a very flexible component. The user can program new custom functions into the system without modifying the existing implementation. This makes it possible to form even very complicated logic using processing logic and to make customer-specific modifications to the system, if necessary, without affecting performance.

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. The processing logic executor in the above-described embodiment also provides high performance. The interpretation overhead is minimal in this implementation which means that running logic with the processing logic executor is almost like running a machine code program specifically programmed for the customer's logic.

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. The processing logic executor in the above-described embodiment is also highly modular and therefore easy to test. Each function is an independent software component that can be tested with an automated tool. This will save costs in porting the product and make it easier to implement new functionality into the system.

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. In the embodiment of the invention, the byte code for processing logic 5 is stored in a plain text format to avoid problems with porting from one platform to another. The bytecode contains the following components: • Header - The header contains detailed information about the predefined processing logic. • Fields - This section contains instructions for creating the field table. It lists all fields, their lengths and initial values.

• Instruksjoner - Denne seksjonen lister instruksjonene og deres parametrer. • Instructions - This section lists the instructions and their parameters.

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. In the embodiment of the invention, the bytecode parser 8 takes care of reading the bytecode file 5, parsing it into internal structures and pre-formatting fields. The internal structures include the following components: • Data field tables 40 - The fields are stored in two tables: one containing all integers and another containing all strings. The fields are read and initialized. Initialization includes memory allocation and setting of value, if necessary. • Instruction table 60 - Instructions are stored in a long table. They are stored there as described in the design of the bytecode executor for processing logic.

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. In the embodiment of the invention, the functions for processing logic 10, 11 are tested with an automated test tool. The main idea is that the function developer creates some test data in a text file in a defined format, and executes the test cases.

Det automatiserte testverktøyet bruker funksjonsbiblioteket for prosesseringslogikk 7 for å laste funksjonene 10, 11 definert i testtilfellefilen. Ingen koding er nødvendig for testene. The automated test tool uses the processing logic function library 7 to load the functions 10, 11 defined in the test case file. No coding is required for the tests.

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. An embodiment of the invention belongs to the processing of data registers in communication systems with communication networks. Sophisticated mediation solutions have several beneficial characteristics, the most important of which are described below.

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. In Figure 5, each node 120 includes a node base 130 and a node application 140. The node base 130 provides the basic standard functionality for the node 120. It handles the internal sending mechanism for data usage between the nodes 120 and encodes the internal usage data. The node base 130 provides an interface to the node application 140 to access application data and gather custom comparison information. To perform its task, a node base 130 may include several components, such as a node input 131, a node output 132, a node API 133, a node configuration 134, and a node comparison 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. A node input 131 is responsible for reading data, input registers 20, from the internal input data sources, parsing them and sending data to the node application interface. A node input uses the data transfer interface that defines the internal data format and mechanism for data transfer.

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. A node output 132 is responsible for reading data, output registers 30, from the node application interface, encoding and writing it to the data transfer interface. A node output uses the data transfer interface which defines the internal data format and mechanism of data transfer.

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. Node API 133 gives the node application access to application data. It "hides" from the internal data transfer interface from the node application 140. The Node API includes the functionality to obtain application data to and receive it from the node application 140. It is also used to retrieve custom comparison information from the node application 140 and to provide configuration parameters to it. .

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. The node configuration 134 is responsible for reading configuration data from the configuration interface and for initializing the node according to given configuration parameters. The node configuration also passes node application specific parameters to the node API. The node configuration uses the configuration interface which defines the configuration data format and the transfer mechanism. The node compare 135 is responsible for writing different compare data to the compare interface. The node comparison defines content to comparison interfaces. The node comparison uses comparison interface which defines standard data format for comparison and transfer mechanism. The node comparison also uses handler interfaces that define monitored data format and transfer mechanism. It is used, for example, to indicate the node's status.

Grensesnittet for dataoverføring og/eller bufring 145 definerer dataformatet for anvendelse og mekanismen for dataoverføring mellom nodene. The data transfer and/or buffering interface 145 defines the data format for use and the mechanism for data transfer between the nodes.

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. Dissemination consists of various processes such as collection, approval, enrichment, accumulation, correlation, assessment, conversion and delivery. The varied functionality allows the OSS/BSS systems to receive application data as they want it.

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. The keywords of the solution architecture for dissemination are simplicity and directness. The modular design of the solution according to an embodiment of the invention enables real-time and distribution processes, reliable operation and high performance.

Node ( formidlingsprosess) Node (distribution process)

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. The nodes 120 are functional components specialized in various dissemination processes, such as collection, accumulation, validation, correlation and formatting, or a combination of these. The nodes are connected to form processing streams for handling event registers.

Hver node 120 har standardfunksjonalitet som gir automatisert Each node 120 has standard functionality that provides automated

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 data transfer mechanism between the nodes, and process information logging mechanisms between the node and the node handler (not shown in the figure). The actual application data processing logic is implemented by various applications 140 located in the nodes. These applications 140 are isolated from internal mechanisms for data transfer and internal data formats that enable easier

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. application development. The applications 140 are drawn as ovals in the presented figure 5. The system provides a standard interface through which the applications communicate with the framework for processing.

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. The nodes 120 can further be categorized according to their functionality. The functionality is dependent on the node application 140 and the node's position in the processing chain 200. The first node 120 in a processing chain may be called a collection node and the last node a distribution node. In these cases, the data parsing and formatting functionality needs to be performed by the application 140 itself and the standard functionality, provided that the node base 130 is not used. The flow of application data and the standard components that become redundant are shown in Figure 5. In this picture, it is assumed that the data source 210 and the destination 220 both operate with a real-time protocol, i.e. they use a connection link to send and receive 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. If the destination for output data 220 requires the use of a file-based interface, the applications take care of formatting and writing data in the output files. In cases like this, it may be necessary to separate the generation of the output files and the delivery of the output files to separate nodes 120.

I en utførelsesform av den foreliggende oppfinnelsen representerer eksekutoren for prosesseringslogikk 6 et eksempel på en nodeapplikasjon 140 brukt i formidlingssystemer. In one embodiment of the present invention, the processing logic executor 6 represents an example of a node application 140 used in mediation systems.

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.1. A mediation system for processing event registers according to a predefined logic, where an event register is a data register that indicates that an event has occurred and contains detailed information about the event, where the event is a transaction that occurs in a communication network, where the mediation system includes interfaces with network elements in the communication network for collecting consumption data from the communication network, means for delivering consumption data to an operator's operational and business support system, and at least one node including a system for processing event records adapted to aggregate, correlate, refine, validate, format and /or rank data in the event registers so that the data is readable by the operator's operational and business support system characterized in that the system for processing event registers includes: data field tables (40) for storing data during processing in the system, where the data field tables (40) contain data fields for storing values for the parameters necessary in the predetermined logic, data fields for storing values read from a data register during processing, and data fields for writing output from functions necessary in the predetermined logic, where the data fields are stored in a first and a second table, where the first table contains integers and the second table contains strings, a logical definition structure including: - a parameter table ( 50) containing pointers to the data fields to store values from the parameters required in the predefined logic, - a function code set containing program codes to perform the functions required in the predefined logic, and - a series (60) of byte code instructions (62) built by a compiler (4) from a file (2) containing the mock ddetermined logic, in which each bytecode instruction (62) contains: - a function pointer (70) pointing to a function code (10, 11, 12) in the function code set to be used in the execution of the instruction (62), - a number of parameters (80) , and - a pointer-to-parameter (90) pointing to a first (54) in a sequence of parameter pointers (52) in the parameter table (50) necessary in the execution of the instruction (62), and a logical execution device (6 ) configured to process event registers according to the predefined logic by executing a sequence of bytecode instructions (62) contained in the logical definition structure, where each bytecode instruction (62) is executed by calling the respective function code (10, 11, 12) in the function code set using the respective function pointer (70) and using the respective number of parameters (80) and the respective pointer-to-parameter (90) as function parameters. 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.2. The system according to claim 1, configured to receive registers for input data (20) having a specified form with data fields and values in said data fields. 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.3. The system according to claim 1 or 2, configured to produce registers for output data (30) having a specified form with data fields and values in said data fields. 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).The system according to any one of claims 1 to 3, wherein the pointers to data fields in the parameter table (50) are direct pointers to memory locations of data fields in the data field tables (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.5. The system according to any one of claims 1 to 4, wherein while the system is in operation and processing a data register, the values stored in the data field tables (40) contain: - values for the parameters of the predefined logic, and - values from the data register under processing, and when the processing is finished, the values stored in the data field tables (40) also contain: - values for the output of the process, and - at least some intermediate values, if these were necessary in the processing of the data register. 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).6. The system according to any one of claims 1 to 5, wherein each pointer (52) in the parameter table (50) points to a single data field in the data field tables (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).7. The system according to any one of claims 1 to 6, wherein the system contains at least two different pointers (52) pointing to a common data field in the data field tables (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.8. The system according to any one of claims 1 to 7, wherein the function code set contains a function having a number of parameters and another function having a different number of parameters. 9. Systemet i henhold til hvilket som helst av kravene 1 til 8, hvori funksjonskodesettet er dynamisk utvidbart.The system according to any one of claims 1 to 8, wherein the feature code set is dynamically extensible. 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.10. The system according to any one of claims 1 to 9, wherein the program code in the function code set is in the form of binary code directly executable by an operating 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).11. The system according to any one of claims 1 to 10, wherein the construction of the parameter table (50) is such that each set of parameters required in the execution of the bytecode instructions (62) is formed from subsequent parameters in the parameter table (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).12. The system of claim 1, wherein the pointer-to-parameter (90) contains a pointer to the first parameter (54) and a number of the parameters (80) necessary in the execution of the bytecode instruction (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.The system according to any one of claims 1 to 12, wherein the function pointer (70) and pointer-to-parameter (90) are in the form of direct pointers pointing to memory locations. 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.14. The system according to any one of claims 1 to 13, in which the logic execution means includes: - a program counter (17) pointing to a byte code instruction (62) in the series (60) of byte code instructions, - means for resetting the program counter (17) so that the program counter points to the first byte code instruction (62) when the logical execution device starts processing a new data register, and - means for setting the program counter (17) to point to the following byte code instruction (62) after each function call . 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).15. The system of claim 14, wherein at least one function code (10, 11, 12) in the first function code set includes program code means for changing the value of the program counter (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).16. The system according to any one of claims 1 to 15, including - a graphical user interface (1) for defining the predefined logic, - a compiler (4) for compiling the predefined logic to produce a series (60) with bytecode instructions (62) and the parameters of said instructions, and - a bytecode parser (8) for parsing the series (60) of bytecode instructions (62) to form the logical definition structure including the instructions in the form of function pointers (70) and pointers to parameters ( 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 funksjonen17. The system according to claim 16, including functionality to add a custom function to the function code set, and to affect said functionality: - means for displaying a screen in the graphical user interface to define the parameters of the custom function, and - a custom function extension in the compiler to modify the logical definition structure to include the custom function and parameters of the custom function 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.18. The system according to any one of claims 1 to 17, wherein said at least one node includes: - a node-based (130) program device capable of providing base software functionality for the node, said base software functionality includes an external interface of the node and an internal interface of the node, - an application programming interface device for receiving application programs for the node, which application program is able to interact with the internal interface of the node, and - an application program (140), and wherein the logical definition structure is contained in the application program of the node. 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.19. A method for processing event registers according to a predefined logic, where an event register is a data register that indicates that an event has occurred and contains detailed information about the event, where the event is a transaction that occurs in a communication network, where the method includes: to collect consumption data from network elements in the communication network, to process event registers by aggregating, correlating, refining, validating, formatting and/or ranking data in the event registers so that the data is readable by an operator's operational and business support system, to deliver consumption data to the operator's operational and business support system, characterized by using data field tables (40) to store data during processing in the system, where the data field tables (40) contain data fields to store values for the parameters necessary in the predetermined logic, data fields to store values read from a data register during processing, and data fairy lt to write output from functions necessary in the predetermined logic, where the data fields are stored in a first and second table, where the first table contains integers and the second table contains strings, to use a logical definition structure including: - a parameter table (50) containing pointers to the data fields to store values from the parameters required in the predefined logic, - a function code set containing program codes to perform the functions required in the predefined logic, and - a series (60) of byte code instructions (62) built by a compiler (4) ) from a file (2) containing the predetermined logic, in which each byte code instruction (62) contains: - a function pointer (70) pointing to a function code (10, 11, 12) in the function code set to be used in the execution of the instruction (62), - a number of parameters (80), and - a pointer-to-parameter (90) pointing to a first (54) in a sequence of parameter pointers (52) in the parameter table (50) necessary in the execution of the instruction (62), and where the processing of the event registers according to the predefined logic includes executing a sequence of bytecode instructions (62) contained in the logical definition structure, where each bytecode instruction (62) is executed by calling the respective function code (10,11, 12) in the function code set using the respective function pointer (70) and using the respective number of parameters (80) and the respective pointer-to-parameter (90) as function parameters. 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.20. The method according to claim 19, in which the processed data registers have a plurality of data fields and values in at least some of said data fields, where the method comprises: - reading values from at least some of the data fields in a data register, - writing the read values in data fields in the data field tables (40), and - to process the values from the data register in the data fields in the data field tables (40) by executing the sequence of instructions (62), in which each instruction (62) in the executed sequence contains the function pointer (70) and a pointer- to-parameter (90), said processing includes executing each of the pointed function codes (10,11,12) using the values pointed to by the pointed set of parameter-value pointers. 21. Fremgangsmåten i krav 20, hvori instruksjoner i den eksekverte sekvensen av instruksjonene er lagret i en instruksjonstabell.21. The method of claim 20, wherein instructions in the executed sequence of instructions are stored in an instruction table. 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.22. The method of claim 21, wherein the executed sequence of instructions contains at least one subsequence of instructions, and the instruction in the at least one subsequence of instructions are located consecutively in the instruction table. 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).23. The method in claim 21 or 22, in which the step of processing data includes for each instruction in the sequence of instructions: - reading a program counter (17) that points to an instruction (62) in the instruction table, - retrieving the instruction pointed to by the program counter (17), - to call the pointed function and give the pointer-to parameter (90) as an argument, and - to increment the program counter (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).24. The method according to any one of claims 20 to 23, including producing at least one output data register (30) after executing the instruction sequence, wherein the at least one output data register (30) includes a plurality of data fields and the step of producing the at least one register for output data (30) includes: - reading values in at least some of the data fields in the data field tables (40), and - writing the values read from the data field tables (40) in the data fields of the at least one register for output data (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.The method according to any one of claims 20 to 24, wherein the function pointer (70) and pointer-to-parameter (90) are in the form of direct pointers pointing to memory locations. 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.The method according to any one of claims 20 to 25, wherein each parameter-value pointer points to a single data field in the data field tables (40) and is in the form of a direct pointer pointing to a memory location. 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.27. The method according to any one of claims 20 to 26, wherein the values during processing are stored in the data field tables (40), said values including the values of the parameters necessary in the predefined logic, the value read from the data register during processing, and output from the functions. 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.28. The method according to any one of claims 20 to 27, wherein a same parameter value is used in more than one function. 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.29. The method according to any one of claims 20 to 28, wherein the function codes (10, 11, 12) in the function code set are in the form of binary code directly executable by an operating 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.30. The method according to any one of claims 20 to 29, wherein said data registers are event registers in a mediation system in a communication network. 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.31. The method according to any one of claims 20 to 30, comprising the steps of receiving a processing logic from a graphical user interface (1) and forming the instruction sequence based on the received processing logic. 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).32. The method of claim 31, wherein the step of forming the sequence of instructions on the basis of the received processing logic includes: - compiling the received processing logic to produce a series (60) of bytecode instructions (62) and the parameters of said instructions, and - parsing the series (60) with bytecode instructions to form the sequences of instructions (62), wherein the instructions (62) are in the form of function pointers (70) and pointers to parameters (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.33. The method according to any one of claims 20 to 34, wherein after processing a data register, the method includes repeating the method with another data register. 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.34. The method of claim 33, wherein the value from a following data register is written in the same data field table (40) to replace the values from a preceding data register. 35. Et dataprogramprodukt for å utføre fremgangsmåten i krav 19.35. A computer program product for performing the method in claim 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.36. The computer program product of claim 35, comprising: - program code for influencing a compiler (4) usable for compiling the processing logic to produce the series of bytecode instructions and parameters for said instructions, the compiler also being usable for reserving the field tables for storing components necessary in the processing of the processing logic, said field table includes: - the data field tables (40) which contain data fields to store values necessary in the processing logic, - the parameter table (50) which contains pointers to data fields to store values of the parameters necessary in the processing logic, and - the function code set which contains program code (10, 11, 12) for performing functions necessary in the processing logic, - program code for implementing a bytecode parser (8) useful for parsing the series of bytecode instructions produced by the compiler (4) to form the logical definition structure , in which the bytecode instructions (62 ) are in the form of function pointers (70) and pointers to parameters (80) and in which the references to the fields in the field tables are in the form of direct memory locations, and - program code for implementing an execution engine (6) which is useful for processing data registers according to the processing logic by executing the series of bytecode instructions (62) in the logical definition structure.
NO20070481A 2004-07-06 2007-01-25 Data processing in a mediation or service supply system. NO338023B1 (en)

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 (en) 2007-01-25
NO338023B1 true NO338023B1 (en) 2016-07-18

Family

ID=34971665

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20070481A NO338023B1 (en) 2004-07-06 2007-01-25 Data processing in a mediation or service supply system.

Country Status (5)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101394451B (en) * 2008-11-06 2012-09-05 北京中创信测科技股份有限公司 Storage method for call detailed recorded data, indication method and system

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
CA2572668A1 (en) 2006-01-12
CA2572668C (en) 2014-10-14
WO2006003239A1 (en) 2006-01-12
BRPI0513004B1 (en) 2017-12-05
AU2005259108A1 (en) 2006-01-12
AU2005259108B2 (en) 2011-08-04
BRPI0513004A (en) 2008-04-22
NO20070481L (en) 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 (en) Graph-oriented programming and implementation based on manufacturers
US8494832B2 (en) Method and apparatus for software simulation
Lhoták Program analysis using binary decision diagrams
US10489274B2 (en) Using emulation to disassociate verification from stimulus in functional test
De Leoni et al. A holistic approach for soundness verification of decision-aware process models
US8042106B2 (en) Data processing in a mediation or service provisioning system
Lübke Unit testing BPEL compositions
NO338023B1 (en) Data processing in a mediation or service supply system.
de Boer et al. Combining monitoring with run-time assertion checking
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
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
Gupta Testing Database Applications

Legal Events

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