WO2001095601A1 - Method for controlling allocation of references to digital addresses - Google Patents

Method for controlling allocation of references to digital addresses Download PDF

Info

Publication number
WO2001095601A1
WO2001095601A1 PCT/FR2001/001757 FR0101757W WO0195601A1 WO 2001095601 A1 WO2001095601 A1 WO 2001095601A1 FR 0101757 W FR0101757 W FR 0101757W WO 0195601 A1 WO0195601 A1 WO 0195601A1
Authority
WO
WIPO (PCT)
Prior art keywords
addresses
list
group
allocation
request
Prior art date
Application number
PCT/FR2001/001757
Other languages
French (fr)
Inventor
Denis Machecourt
James Baron
Bruno Perret
Original Assignee
Nortel Networks France
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nortel Networks France filed Critical Nortel Networks France
Priority to AU2001266122A priority Critical patent/AU2001266122A1/en
Priority to EP01943578A priority patent/EP1287669A1/en
Publication of WO2001095601A1 publication Critical patent/WO2001095601A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54508Configuration, initialisation
    • H04Q3/54533Configuration data, translation, passwords, databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/58Arrangements providing connection between main exchange and sub-exchange or satellite
    • H04Q3/62Arrangements providing connection between main exchange and sub-exchange or satellite for connecting to private branch exchanges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1305Software aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13056Routines, finite state machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13097Numbering, addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13103Memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13204Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13349Network management

Definitions

  • the present invention relates to methods for controlling allocation of references to entities designated by digital addresses. It applies in particular in the field of subscriber group management in telecommunications systems.
  • the digital addresses correspond to directory numbers assigned to subscribers or to terminals of the system, and the references whose allocation is controlled can represent groups of subscribers of the system for which communications can be established of group.
  • subscribers' equipment is limited with regard to the number of groups of which they can belong simultaneously. This limitation is for example due to the fact that the terminals have a limited memory area for storing the references of these groups.
  • the maximum numbers of groups per subscriber may be different from one organization to another.
  • Different types of groups can also be provided (for example a national or regional extension group), the maximum number of groups per subscriber being able to be different from one type to another.
  • An object of the present invention is to propose a method of controlling constraints relating to the number of allocable references per address, which is flexible and relatively undemanding in terms of information storage.
  • the invention thus proposes a method for controlling allocation of references to digital addresses, in which a first list of address values and a second list of numbers of references is stored, by ordering the values of the first list and associating respectively the pairs of consecutive values of the first list with numbers of the second list, each pair of consecutive values of the first list delimiting an interval such that the number of references allocated to each address whose value is in said interval is equal the number of the second list associated with said pair.
  • the first and second lists are updated in processing allocation and deletion requests allocation of references to groups of addresses.
  • Maintaining the two lists and managing the address space at intervals is simple to implement, which also facilitates system maintenance. They avoid having to associate with each address the current number of references which are allocated to it, which would be very unfavorable in terms of speed of execution and required memory space.
  • each allocation request is formulated by defining the group of addresses as consisting of at least one set of addresses, a value of said limit being associated with each set of addresses.
  • Each of these address sets is composed of at least one segment of consecutive addresses.
  • the digital addresses are structured in several fields, corresponding for example to identifiers of networks, subnets and terminals or to prefixes corresponding to different geographical areas of the system deployed.
  • the numerical addresses being structured in Q fields (Q> 1) and the fields having rows from 1 to Q respectively in relation to the ordering of the address values of the first list, each allocation request or deleting the allocation of a reference to a group of addresses can be formulated by defining said group of addresses as consisting of one or more sets each described by two respective end addresses.
  • the processing of this request then advantageously comprises: - a decomposition of the group of addresses into segments, each segment being composed of addresses having the same field of rank q for each integer q ranging from 1 to Q-1 and whose fields of rank Q respectively contain consecutive numbers ranging from the smallest to the largest of the numbers contained in the rank Q fields of the two end addresses describing a set of addresses of the group; and - an update of the first and second lists on the basis of the addresses located at the ends of said segments.
  • the processing of a request for allocating a reference to a group of addresses may comprise, for each segment of the group and each interval, delimited by a pair of consecutive address values from the first list, with which the segment has an overlap, a comparison between the limit associated with this segment and the number of references in the second list associated with said pair, the allocation request being refused if the comparison shows that the limit is reached.
  • An advantageous optimization of the memory required by the method consists in keeping the first and second lists so that the reference numbers of the second list associated with pairs of address values of the first list delimiting two adjacent intervals are always different.
  • Another aspect of the present invention relates to a device for controlling allocation of references to digital addresses comprising means for processing allocation requests and deleting allocation of references to groups of addresses and means for storing a first list of address values and a second list of reference numbers, by ordering the values of the first list and by associating respectively the pairs of consecutive values of the first list with numbers of the second list, each pair of consecutive values of the first list delimiting an interval such that the number of references allocated to each address whose value is in said interval is equal to the number of the second list associated with said pair.
  • the processing means comprise means for updating the first and second lists and means for determining on the basis of the first and second lists, in response to a request for allocation of a reference to a group of addresses, s 'there is a situation where the processing of the allocation request increases the number of references allocated to at least one of the addresses of said group beyond a limit associated with said address, and to refuse the request for allowance if said situation arises.
  • the invention also relates to a computer program, loadable in a memory associated with a processor, and comprising portions of code for the implementation of a method as defined above during the execution of said program by the processor, as well as a computer medium on which such a program is recorded.
  • FIG. 1 is a general diagram of a telecommunications system to which the invention can be applied
  • FIG. 2 is a block diagram of a control device according to the invention forming part of a mediation server of the system of Figure 1;
  • FIG. 3 is a diagram illustrating the definition of subscriber groups in an embodiment of the invention.
  • FIGS. 4 and 5 are flowcharts of programs capable of implementing a method according to the invention.
  • the telecommunications system represented in FIG. 1 comprises several networks which will be supposed to belong to different organizations. These networks share an addressing plan under the control of a mediation server 10.
  • This server ensures the integrity of the system by notably verifying the orders placed by the operators of the various networks.
  • the integrity criteria to be checked there is that relating to the maximum number of subscriber groups to which a given subscriber can belong. This number can generally depend on the organization to which this subscriber belongs.
  • FIG. 2 schematically illustrates the module 12 of the mediation server 10 which ensures the control of the numbers of groups of subscribers, with the aid of a memory 14 in which two lists L, M are stored as explained below .
  • the module 12 examines requests for group allocation or deletion of group allocation originating from the network controllers, and returns acknowledgment messages to validate or refuse these requests.
  • the module 12 consists of a program executed by a processor of the mediation server 10.
  • FIG. 3 illustrates an example of addressing method in the telecommunication system, and of definition of a set related addresses.
  • R of rank 1
  • the prefix R designates for example a network of attachment of the terminal, the field FS designating a fleet and / or a sub-fleet to which the terminal belongs, and field I designating an individual terminal in this fleet or sub-fleet.
  • the complete address R FS I can consist of nine digits, for example with three digits for each field.
  • a connected set of addresses can be described geometrically by two values of addresses X, Y such as in an orthogonal coordinate system of three-dimensional space whose coordinate axes correspond respectively to the values of the three fields R, FS and I, the points whose coordinates are given by the three fields of the addresses X and Y form the opposite vertices of a rectangular parallelepiped whose faces are parallel to the coordinate axes of the coordinate system.
  • the addresses of the set are then those located inside this rectangular parallelepiped.
  • a group of subscribers to which a reference or a group identifier can be allocated can correspond to one or more sets of addresses of the kind illustrated in FIG. 3. The number of these sets is noted P (P > 1).
  • a request to allocate or delete an address group designates P sets of related addresses constituting said group. Each of these sets is made up of addresses belonging to the same organization, for which the maximum number of references H (p) is identical. On the other hand, this maximum number H (p) may be different from one set p to another if the address group does not contain only addresses belonging to the same organization.
  • the request indicates, implicitly or explicitly, the maximum number H (p) of groups of subscribers to which the subscribers of each related set p of the new group requested may belong.
  • This number H (p) can be included explicitly in the request, or deduced by the module 12 from other information contained in this request, for example from a common prefix to the addresses of the subscribers of the set and / or an indication of the type of group requested (national, regional, ).
  • the numbers H (p), or some of them, can also be deduced from the origin of the request (which network / organization made this request).
  • the control module 12 translates the problem with Q dimensions into a problem with one dimension, by decomposing the group of addresses, defined as consisting of one or more related sets delimited by addresses of ends X (p), Y ( p), in a number K of segments (K> 1).
  • Each segment k (1 ⁇ k ⁇ K) is composed of addresses of a connected set of the group having the same field of rank q for each integer q ranging from 1 to Q-1.
  • the Q rank fields of these addresses contain the consecutive numbers between the smallest (X Q (p)) and the largest (Y Q (p)) of the numbers contained in the Q field ranks of the two X end addresses (p), Y (p) of a connected set of the group.
  • a segment corresponds to the intersection of the parallelepiped r with a straight line parallel to the axis I.
  • step 20 An example of the procedure for decomposing a set of addresses into segments is illustrated in FIG. 4.
  • step 20 the indices k, p and q are initialized to 1.
  • a loop 21-23 is then executed to set at zero of the variables ⁇ q for q ranging from 1 to Q-1, after which the index q is taken equal to Q-1 in step 24.
  • N (k) is also assigned to the segment k in this step 25. This number N (k) is equal to the number H (p) contained implicitly or explicitly in the request relative to the set p from which the segment is extracted.
  • a comparison 26 is then made between the numbers X q (p) + ⁇ q and Y q (p) - If X q (p) + ⁇ q ⁇ Y q (p), the variable ⁇ q is incremented by one in step 27, after which the index q is also incremented by one unit in step 28, likewise the index k in the next step 29.
  • the module 12 returns to the aforementioned loop 21-23 to reset the variables ⁇ q to ⁇ Q-1
  • the index q is compared to 1 in test 30 and then decremented by one unit in step 31 if q> 1. After l step 31, the module 12 repeats the comparison 26 with the new value of the index q.
  • the module 12 compares the index p to the number of sets P (test 32). If p ⁇ P, the index p is incremented by one at step 33, after which the module 12 joins the above-mentioned step 29.
  • the disjoint segments [A (k), B (k)] are not numbered in ascending order of addresses, they are sorted to put them in this order at step 35.
  • L and M are used to count the numbers of groups of subscribers to which the subscribers designated by the different possible addresses belong. These lists are kept so as to verify the following property: if L (i) ⁇ ADD ⁇ L (i + 1), then M (i) subscriber group identifiers are allocated to the terminal of address ADD at the instant considered. In this expression, the index i points to the lists L and M. We see that the number M (i) is associated with the pair (L (i), L (i + 1)) which delimits an address range of terminals to which M (i) group identifiers are allocated.
  • Table I illustrates an example of the content of the L and M lists.
  • the subscribers with addresses between 780,000,000 and 780,000,049 belong to a single group
  • those with addresses between 780,000,050 and 780,000,074 belong to two groups and the other subscribers do not belong to any group.
  • the module 12 On receipt of a request for allocation or deletion of allocation relating to P related sets of addresses, the module 12 first performs a decomposition of the group of addresses into segments, for example according to the procedure of FIG. 4 corresponding to a case where the decomposition provides K disjoint segments in the order of increasing addresses, then it processes the request, for example according to the procedure illustrated in FIG. 5.
  • a decomposition of the group of addresses into segments, for example according to the procedure of FIG. 4 corresponding to a case where the decomposition provides K disjoint segments in the order of increasing addresses, then it processes the request, for example according to the procedure illustrated in FIG. 5.
  • the module 12 On receipt of a request for allocation or deletion of allocation relating to P related sets of addresses, the module 12 first performs a decomposition of the group of addresses into segments, for example according to the procedure of FIG. 4 corresponding to a case where the decomposition provides K disjoint segments in the order of increasing addresses, then it processes the request, for example according to the procedure
  • This procedure uses two auxiliary lists L ', M' which, if the request is validated, are copied into the lists L and M to update them at the end of the procedure.
  • the notation j denotes the number of entries in the lists L and M.
  • step 40 the indices k and i are initialized to 1, and the offset ⁇ is initialized to zero.
  • the first comparison 41 is performed between the start address of the k-th segment A (k) and the value L (i- ⁇ ) of the list L.
  • a (k)> L (i- ⁇ ) the inputs L '(i) and M' (i) of the auxiliary lists L ', M' receive respectively the values L (i- ⁇ ) and M (i- ⁇ ) of the lists L and M (step 42), then the index i is incremented by one at step 43 after which the module 12 repeats the comparison 41.
  • comparison 48 cannot give rise to M '(i)> N (k), so that it can be shunted.
  • a (k) L (i- ⁇ )
  • M '(i-1) M '(i-1). This is why the module 12 performs the comparison 50.
  • M (i- ⁇ ) + ⁇ ⁇ M '(i-1) the module 12 goes directly to the steps 46, 47 and 48 mentioned above. Otherwise, the variables ⁇ and i are each decremented by one unit in step 51, which will delete an entry in the lists L and M. After this step 51, the module 12 proceeds to the above comparison 48.
  • step 52 When comparison 48 does not show a violation of the integrity constraint (M '(i) ⁇ N (k)), the index i is incremented by one unit at step 52, after which the module 12 passes at the other end of segment k, starting with comparison 53. If this shows that B (k) +1> L (i- ⁇ ), module 12 performs step 54 where it assigns the address L (i- ⁇ ) at the i-th entry in the list L '. After step 54, the module 12 returns to the aforementioned step 47.
  • step 57 is executed to assign the values B (k) +1 and M (i- ⁇ ) respectively to the i-th entries of the lists L 'and M'.
  • a comparison 58 is made between the current segment index k and the total number K of segments of the group.
  • step 60 is executed to decrement the variables ⁇ and i before carrying out the aforementioned comparison 58.
  • the number i- ⁇ is compared with the size j of lists L and M (comparison 62). If i- ⁇ ⁇ j, the index i is incremented by one in step 63, then the values L (i- ⁇ ) and M (i- ⁇ ) are respectively assigned to the i-th entries of the lists L 'and M' in step 64, after which the comparison 62 is repeated.
  • the module 12 delivers a positive acknowledgment to authorize the requesting unit to make or delete the allocation required (step 65), and the auxiliary lists L 'and M' are finally copied in the lists L and M in step 66, where the size j also receives the current value of the index i.
  • the processing according to FIG. 5 requires a limited number of accesses in memory, and simple operations of comparison and incrementation of whole variables. It therefore presents great simplicity while offering the desired flexibility as regards the allocation constraints taken into account.

Abstract

The invention concerns a method whereby a first list (L) of address values and a second list (M) of reference numbers are kept by ordering the values of the first list and by associating respectively pairs of consecutive values of the first list to numbers of the second list, each pair of consecutive values of the first list delimiting an interval of addresses whereof the number of references allocated is equal to the number of the second list associated with said pair. In response to a request for an allocation of a reference to a group of addresses, the method consists in determining on the basis of the first and second lists whether there occurs a situation wherein the processing of said request is likely to increase the number of references allocated to one or several addresses of the group in excess of a limit associated with said address and in refusing the request if said situation occurs.

Description

CONTROLE D'ALLOCATION DE REFERENCES A DES ADRESSES NUMERIQUES CONTROL OF ALLOCATION OF REFERENCES TO NUMERICAL ADDRESSES
La présente invention concerne les méthodes de contrôle d'allocation de références à des entités désignées par des adresses numériques. Elle s'applique notamment dans le domaine de la gestion des groupes d'abonnés dans les systèmes de télécommunications.The present invention relates to methods for controlling allocation of references to entities designated by digital addresses. It applies in particular in the field of subscriber group management in telecommunications systems.
Dans cette application, les adresses numériques correspondent à des numéros d'annuaire affectés à des abonnés ou à des terminaux du système, et les références dont on contrôle l'allocation peuvent représenter des groupes d'abonnés du système pour lesquels peuvent être établies des communications de groupe.In this application, the digital addresses correspond to directory numbers assigned to subscribers or to terminals of the system, and the references whose allocation is controlled can represent groups of subscribers of the system for which communications can be established of group.
En général, les équipements des abonnés sont limités en ce qui concerne le nombre de groupes dont ils peuvent faire simultanément partie. Cette limitation est par exemple due au fait que les terminaux ont une zone de mémoire limitée pour stocker les références de ces groupes.In general, subscribers' equipment is limited with regard to the number of groups of which they can belong simultaneously. This limitation is for example due to the fact that the terminals have a limited memory area for storing the references of these groups.
Dans le cas où plusieurs organisations partagent le même plan d'adressage, géré au niveau d'un serveur général de médiation, les nombres maximaux de groupes par abonné peuvent être différents d'une organisation à une autre. Il peut également être prévu différents types de groupes (par exemple groupe d'extension nationale ou régionale), le nombre maximum de groupes par abonné pouvant être différent d'un type à un autre.In the case where several organizations share the same addressing plan, managed at the level of a general mediation server, the maximum numbers of groups per subscriber may be different from one organization to another. Different types of groups can also be provided (for example a national or regional extension group), the maximum number of groups per subscriber being able to be different from one type to another.
Un but de la présente invention est de proposer une méthode de contrôle des contraintes portant sur le nombre de références allouables par adresse, qui soit souple et relativement peu exigeante en termes de stockage d'informations.An object of the present invention is to propose a method of controlling constraints relating to the number of allocable references per address, which is flexible and relatively undemanding in terms of information storage.
L'invention propose ainsi un procédé de contrôle d'allocation de références à des adresses numériques, dans lequel on mémorise une première liste de valeurs d'adresse et une seconde liste de nombres de références, en ordonnant les valeurs de la première liste et en associant respectivement les couples de valeurs consécutives de la première liste à des nombres de la seconde liste, chaque couple de valeurs consécutives de la première liste délimitant un intervalle tel que le nombre de références allouées à chaque adresse dont la valeur est dans ledit intervalle soit égal au nombre de la seconde liste associé audit couple. Les première et seconde listes sont mises à jour dans des traitements de requêtes d'allocation et de suppression d'allocation de références à des groupes d'adresses. En réponse à une requête d'allocation d'une référence à un groupe d'adresses, on détermine sur la base des première et seconde listes s'il se présente une situation où le traitement de la requête d'allocation augmente le nombre de références allouées à l'une au moins des adresses dudit groupe au-delà d'une limite associée à ladite adresse, et on refuse la requête d'allocation si ladite situation se présente.The invention thus proposes a method for controlling allocation of references to digital addresses, in which a first list of address values and a second list of numbers of references is stored, by ordering the values of the first list and associating respectively the pairs of consecutive values of the first list with numbers of the second list, each pair of consecutive values of the first list delimiting an interval such that the number of references allocated to each address whose value is in said interval is equal the number of the second list associated with said pair. The first and second lists are updated in processing allocation and deletion requests allocation of references to groups of addresses. In response to a request for allocation of a reference to a group of addresses, it is determined on the basis of the first and second lists whether a situation arises where the processing of the allocation request increases the number of references allocated to at least one of the addresses of said group beyond a limit associated with said address, and the allocation request is refused if said situation arises.
La tenue des deux listes et la gestion par intervalles de l'espace d'adressage sont simples à mettre en œuvre, ce qui facilite également la maintenance du système. Elles évitent d'avoir à associer à chacune des adresses le nombre courant de références qui lui sont allouées, ce qui serait très défavorable en terme de rapidité d'exécution et d'espace mémoire requis.Maintaining the two lists and managing the address space at intervals is simple to implement, which also facilitates system maintenance. They avoid having to associate with each address the current number of references which are allocated to it, which would be very unfavorable in terms of speed of execution and required memory space.
De préférence, chaque requête d'allocation est formulée en définissant le groupe d'adresses comme étant constitué d'au moins un ensemble d'adresses, une valeur de ladite limite étant associée à chaque ensemble d'adresses. Chacun de ces ensembles d'adresses est composé d'au moins un segment d'adresses consécutives.Preferably, each allocation request is formulated by defining the group of addresses as consisting of at least one set of addresses, a value of said limit being associated with each set of addresses. Each of these address sets is composed of at least one segment of consecutive addresses.
Fréquemment, les adresses numériques, formant notamment des numéros d'annuaire, sont structurées en plusieurs champs, correspondant par exemple à des identifiants de réseaux, de sous-réseaux et de terminaux ou à des préfixes correspondant à des zones géographiques différentes du système déployé. Dans un tel cas, les adresses numériques étant structurées en Q champs (Q > 1 ) et les champs ayant respectivement des rangs de 1 à Q en relation avec l'ordonnancement des valeurs d'adresses de la première liste, chaque requête d'allocation ou de suppression d'allocation d'une référence à un groupe d'adresses peut être formulée en définissant ledit groupe d'adresses comme étant constitué d'un ou plusieurs ensembles décrits chacun par deux adresses d'extrémité respectives. Le traitement de cette requête comprend alors avantageusement : - une décomposition du groupe d'adresses en segments, chaque segment étant composé d'adresses ayant le même champ de rang q pour chaque entier q allant de 1 à Q-1 et dont les champs de rang Q contiennent respectivement des numéros consécutifs allant du plus petit au plus grand des numéros contenus dans les champs de rang Q des deux adresses d'extrémité décrivant un ensemble d'adresses du groupe ; et - une mise à jour des première et seconde listes sur la base des adresses situées aux extrémités desdits segments.Frequently, the digital addresses, in particular forming directory numbers, are structured in several fields, corresponding for example to identifiers of networks, subnets and terminals or to prefixes corresponding to different geographical areas of the system deployed. In such a case, the numerical addresses being structured in Q fields (Q> 1) and the fields having rows from 1 to Q respectively in relation to the ordering of the address values of the first list, each allocation request or deleting the allocation of a reference to a group of addresses can be formulated by defining said group of addresses as consisting of one or more sets each described by two respective end addresses. The processing of this request then advantageously comprises: - a decomposition of the group of addresses into segments, each segment being composed of addresses having the same field of rank q for each integer q ranging from 1 to Q-1 and whose fields of rank Q respectively contain consecutive numbers ranging from the smallest to the largest of the numbers contained in the rank Q fields of the two end addresses describing a set of addresses of the group; and - an update of the first and second lists on the basis of the addresses located at the ends of said segments.
Dans ces conditions, le traitement d'une requête d'allocation d'une référence à un groupe d'adresses peut comprendre, pour chaque segment du groupe et chaque intervalle, délimité par un couple de valeurs d'adresse consécutives de la première liste, avec lequel le segment présente un recouvrement, une comparaison entre la limite associée à ce segment et le nombre de références de la seconde liste associé audit couple, la requête d'allocation étant refusée si la comparaison montre que la limite est atteinte. Une optimisation avantageuse de la mémoire requise par le procédé consiste à tenir les première et seconde listes de façon que les nombres de références de la seconde liste associés à des couples de valeurs d'adresse de la première liste délimitant deux intervalles adjacents soient toujours différents.Under these conditions, the processing of a request for allocating a reference to a group of addresses may comprise, for each segment of the group and each interval, delimited by a pair of consecutive address values from the first list, with which the segment has an overlap, a comparison between the limit associated with this segment and the number of references in the second list associated with said pair, the allocation request being refused if the comparison shows that the limit is reached. An advantageous optimization of the memory required by the method consists in keeping the first and second lists so that the reference numbers of the second list associated with pairs of address values of the first list delimiting two adjacent intervals are always different.
Un autre aspect de la présente invention se rapporte à un dispositif de contrôle d'allocation de références à des adresses numériques comprenant des moyens de traitement de requêtes d'allocation et de suppression d'allocation de références à des groupes d'adresses et des moyens pour mémoriser une première liste de valeurs d'adresse et une seconde liste de nombres de références, en ordonnant les valeurs de la première liste et en associant respectivement les couples de valeurs consécutives de la première liste à des nombres de la seconde liste, chaque couple de valeurs consécutives de la première liste délimitant un intervalle tel que le nombre de références allouées à chaque adresse dont la valeur est dans ledit intervalle soit égal au nombre de la seconde liste associé audit couple. Les moyens de traitement comprennent des moyens de mise à jour des première et seconde listes et des moyens pour déterminer sur la base des première et seconde listes, en réponse à une requête d'allocation d'une référence à un groupe d'adresses, s'il se présente une situation où le traitement de la requête d'allocation augmente le nombre de références allouées à l'une au moins des adresses dudit groupe au-delà d'une limite associée à ladite adresse, et pour refuser la requête d'allocation si ladite situation se présente.Another aspect of the present invention relates to a device for controlling allocation of references to digital addresses comprising means for processing allocation requests and deleting allocation of references to groups of addresses and means for storing a first list of address values and a second list of reference numbers, by ordering the values of the first list and by associating respectively the pairs of consecutive values of the first list with numbers of the second list, each pair of consecutive values of the first list delimiting an interval such that the number of references allocated to each address whose value is in said interval is equal to the number of the second list associated with said pair. The processing means comprise means for updating the first and second lists and means for determining on the basis of the first and second lists, in response to a request for allocation of a reference to a group of addresses, s 'there is a situation where the processing of the allocation request increases the number of references allocated to at least one of the addresses of said group beyond a limit associated with said address, and to refuse the request for allowance if said situation arises.
L'invention vise également un programme d'ordinateur, chargeable dans une mémoire associée à un processeur, et comprenant des portions de code pour la mise en œuvre d'un procédé tel que défini ci-dessus lors de l'exécution dudit programme par le processeur, ainsi qu'un support informatique sur lequel est enregistré un tel programme. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels :The invention also relates to a computer program, loadable in a memory associated with a processor, and comprising portions of code for the implementation of a method as defined above during the execution of said program by the processor, as well as a computer medium on which such a program is recorded. Other features and advantages of the present invention will appear in the following description of nonlimiting exemplary embodiments, with reference to the appended drawings, in which:
- la figure 1 est un schéma général d'un système de télécommunications auquel l'invention peut être appliquée,FIG. 1 is a general diagram of a telecommunications system to which the invention can be applied,
- la figure 2 est un schéma synoptique d'un dispositif de contrôle selon l'invention faisant partie d'un serveur de médiation du système de la figure 1 ;- Figure 2 is a block diagram of a control device according to the invention forming part of a mediation server of the system of Figure 1;
- la figure 3 est un diagramme illustrant la définition de groupes d'abonnés dans une réalisation de l'invention ; et- Figure 3 is a diagram illustrating the definition of subscriber groups in an embodiment of the invention; and
- les figures 4 et 5 sont des organigrammes de programmes aptes à mettre en œuvre un procédé selon l'invention.- Figures 4 and 5 are flowcharts of programs capable of implementing a method according to the invention.
Le système de télécommunications représenté sur la figure 1 comporte plusieurs réseaux qu'on supposera appartenir à des organisations différentes. Ces réseaux partagent un plan d'adressage sous le contrôle d'un serveur de médiation 10. Ce serveur assure l'intégrité du système en vérifiant notamment les commandes passées par les opérateurs des différents réseaux. Parmi les critères d'intégrité à vérifier, il y a celui relatif au nombre maximum de groupes d'abonnés auxquels peut appartenir un abonné donné. Ce nombre peut généralement dépendre de l'organisation dont relève cet abonné.The telecommunications system represented in FIG. 1 comprises several networks which will be supposed to belong to different organizations. These networks share an addressing plan under the control of a mediation server 10. This server ensures the integrity of the system by notably verifying the orders placed by the operators of the various networks. Among the integrity criteria to be checked, there is that relating to the maximum number of subscriber groups to which a given subscriber can belong. This number can generally depend on the organization to which this subscriber belongs.
La figure 2 illustre schématiquement le module 12 du serveur de médiation 10 qui assure le contrôle des nombres de groupes d'abonnés, à l'aide d'une mémoire 14 dans laquelle sont stockées deux listes L, M tenues de la manière expliquée plus loin. Le module 12 examine des requêtes d'allocation de groupe ou de suppression d'allocation de groupe qui émanent des contrôleurs de réseau, et retourne des messages d'acquittement pour valider ou refuser ces requêtes. Dans une réalisation typique de l'invention, le module 12 consiste en un programme exécuté par un processeur du serveur de médiation 10. La figure 3 illustre un exemple de méthode d'adressage dans le système de télécommunication, et de définition d'un ensemble connexe d'adresses.FIG. 2 schematically illustrates the module 12 of the mediation server 10 which ensures the control of the numbers of groups of subscribers, with the aid of a memory 14 in which two lists L, M are stored as explained below . The module 12 examines requests for group allocation or deletion of group allocation originating from the network controllers, and returns acknowledgment messages to validate or refuse these requests. In a typical embodiment of the invention, the module 12 consists of a program executed by a processor of the mediation server 10. FIG. 3 illustrates an example of addressing method in the telecommunication system, and of definition of a set related addresses.
Dans cet exemple, chaque adresse d'un terminal 11 comporte Q = 3 champs, respectivement notés R, FS et I. Le préfixe R, de rang 1 , désigne par exemple un réseau de rattachement du terminal, le champ FS désignant une flotte et/ou une sous-flotte à laquelle appartient le terminal, et le champ I désignant un terminal individuel dans cette flotte ou sous-flotte. L'adresse complète R FS I peut consister en neuf chiffres, avec par exemple trois chiffres pour chaque champ.In this example, each address of a terminal 11 comprises Q = 3 fields, respectively denoted R, FS and I. The prefix R, of rank 1, designates for example a network of attachment of the terminal, the field FS designating a fleet and / or a sub-fleet to which the terminal belongs, and field I designating an individual terminal in this fleet or sub-fleet. The complete address R FS I can consist of nine digits, for example with three digits for each field.
Un ensemble connexe d'adresses peut être décrit géométriquement par deux valeurs d'adresses X, Y telles que dans un repère orthogonal de l'espace à trois dimensions dont les axes de coordonnées correspondent respectivement aux valeurs des trois champs R, FS et I, les points dont les coordonnées sont données par les trois champs des adresses X et Y forment les sommets opposés d'un parallélépipède rectangle dont les faces sont parallèles aux axes de coordonnées du repère. Les adresses de l'ensemble sont alors celles situées à l'intérieur de ce parallélépipède rectangle. Par exemple, dans l'illustration de la figure 3, les adresses d'extrémité X = 780 100 100 et Y = 782 150 200 sont les sommets opposés du parallélépipède r contenant les points correspondant aux adresses du groupe. II est à noter qu'un groupe d'abonnés auquel peut être alloué une référence ou un identifiant de groupe peut correspondre à un ou plusieurs ensembles d'adresses du genre illustré par la figure 3. On note P le nombre de ces ensembles (P > 1).A connected set of addresses can be described geometrically by two values of addresses X, Y such as in an orthogonal coordinate system of three-dimensional space whose coordinate axes correspond respectively to the values of the three fields R, FS and I, the points whose coordinates are given by the three fields of the addresses X and Y form the opposite vertices of a rectangular parallelepiped whose faces are parallel to the coordinate axes of the coordinate system. The addresses of the set are then those located inside this rectangular parallelepiped. For example, in the illustration of FIG. 3, the end addresses X = 780 100 100 and Y = 782 150 200 are the opposite vertices of the parallelepiped r containing the points corresponding to the addresses of the group. It should be noted that a group of subscribers to which a reference or a group identifier can be allocated can correspond to one or more sets of addresses of the kind illustrated in FIG. 3. The number of these sets is noted P (P > 1).
Si Q désigne généralement le nombre de champs numériques des adresses, de rangs respectifs 1 à Q, on note Xq(p) et Yq(p) les valeurs contenues dans le champ de rang q des adresses d'extrémité X(p), Y(p) du p-ième ensemble (1 < p < P, 1 < q < Q). Sans restreindre la généralité, on peut considérer le cas où les P ensembles sont disjoints et où Xq(p) < Yq(P) pour chaque rang q (sinon, il suffit de remplacer Xq(p) par min{Xq(p), Yq(p)} et Yq(p) par max{Xq(p), Yq(p)}).If Q generally designates the number of numeric fields of the addresses, of respective ranks 1 to Q, we denote X q (p) and Y q (p) the values contained in the rank field q of the end addresses X (p) , Y (p) of the p-th set (1 <p <P, 1 <q <Q). Without limiting the generality, we can consider the case where the P sets are disjoint and where X q (p) <Y q (P) for each rank q (otherwise, it suffices to replace X q (p) by min {X q (p), Y q (p)} and Y q (p) by max {X q (p), Y q (p)}).
Une requête d'allocation ou de suppression d'un groupe d'adresse désigne P ensembles d'adresses connexes constituant ledit groupe. Chacun de ces ensembles est composé d'adresses relevant d'une même organisation, pour lesquelles le nombre maximum de références H(p) est identique. En revanche, ce nombre maximum H(p) peut être différent d'un ensemble p à un autre si le groupe d'adresses ne contient pas que des adresses relevant de la même organisation. Dans le cas d'une allocation de groupe, la requête indique, implicitement ou explicitement, le nombre maximum H(p) de groupes d'abonnés auxquels peuvent appartenir les abonnés de chaque ensemble connexe p du nouveau groupe demandé. Ce nombre H(p) peut être inclus explicitement dans la requête, ou déduit par le module 12 d'autres informations contenues dans cette requête, par exemple d'un préfixe commun aux adresses des abonnés de l'ensemble et/ou d'une indication du type de groupe demandé (national, régional, ...). Les nombres H(p), ou certains d'entre eux, peuvent également être déduits de l'origine de la requête (quel réseau/organisation a émis cette requête).A request to allocate or delete an address group designates P sets of related addresses constituting said group. Each of these sets is made up of addresses belonging to the same organization, for which the maximum number of references H (p) is identical. On the other hand, this maximum number H (p) may be different from one set p to another if the address group does not contain only addresses belonging to the same organization. In the case of a group allocation, the request indicates, implicitly or explicitly, the maximum number H (p) of groups of subscribers to which the subscribers of each related set p of the new group requested may belong. This number H (p) can be included explicitly in the request, or deduced by the module 12 from other information contained in this request, for example from a common prefix to the addresses of the subscribers of the set and / or an indication of the type of group requested (national, regional, ...). The numbers H (p), or some of them, can also be deduced from the origin of the request (which network / organization made this request).
Le module de contrôle 12 traduit le problème à Q dimensions en un problème à une dimension, en décomposant le groupe d'adresses, défini comme constitué d'un ou plusieurs ensembles connexes délimités par des adresses d'extrémités X(p), Y(p), en un nombre K de segments (K > 1 ).The control module 12 translates the problem with Q dimensions into a problem with one dimension, by decomposing the group of addresses, defined as consisting of one or more related sets delimited by addresses of ends X (p), Y ( p), in a number K of segments (K> 1).
Chaque segment k (1< k ≤K) est composé d'adresses d'un ensemble connexe du groupe ayant le même champ de rang q pour chaque entier q allant de 1 à Q-1. Les champs de rang Q de ces adresses contiennent les numéros consécutifs entre le plus petit (XQ(p)) et le plus grand (YQ(p)) des numéros contenus dans les rangs de champ Q des deux adresses d'extrémités X(p), Y(p) d'un ensemble connexe du groupe. Dans l'illustration de la figure 3, un segment correspond à l'intersection du parallélépipède r avec une droite parallèle à l'axe I.Each segment k (1 <k ≤K) is composed of addresses of a connected set of the group having the same field of rank q for each integer q ranging from 1 to Q-1. The Q rank fields of these addresses contain the consecutive numbers between the smallest (X Q (p)) and the largest (Y Q (p)) of the numbers contained in the Q field ranks of the two X end addresses (p), Y (p) of a connected set of the group. In the illustration in Figure 3, a segment corresponds to the intersection of the parallelepiped r with a straight line parallel to the axis I.
Un exemple de procédure de décomposition d'un ensemble d'adresses en segments est illustré par la figure 4. A l'étape 20, les index k, p et q sont initialisés à 1. Une boucle 21-23 est ensuite exécutée pour mettre à zéro des variables Δq pour q allant de 1 à Q-1 , après quoi l'index q est pris égal à Q-1 à l'étape 24. A l'étape 25, le module 12 définit les valeurs d'extrémité : A(k) =
Figure imgf000007_0001
..., XQ_ι(p)+AQ_ XQ(p))
An example of the procedure for decomposing a set of addresses into segments is illustrated in FIG. 4. In step 20, the indices k, p and q are initialized to 1. A loop 21-23 is then executed to set at zero of the variables Δ q for q ranging from 1 to Q-1, after which the index q is taken equal to Q-1 in step 24. In step 25, the module 12 defines the end values : A (k) =
Figure imgf000007_0001
..., X Q _ι (p) + A Q _ X Q (p))
Figure imgf000007_0002
du k-ième segment [A(k), B(k)]. Dans le cas d'une requête d'allocation, un nombre maximum de références N(k) est également attribué au segment k à cette étape 25. Ce nombre N(k) est égal au nombre H(p) contenu implicitement ou explicitement dans la requête relativement à l'ensemble p dont est extrait le segment.
Figure imgf000007_0002
of the k-th segment [A (k), B (k)]. In the case of an allocation request, a maximum number of references N (k) is also assigned to the segment k in this step 25. This number N (k) is equal to the number H (p) contained implicitly or explicitly in the request relative to the set p from which the segment is extracted.
Une comparaison 26 est ensuite effectuée entre les nombres Xq(p)+Δq et Yq(p)- Si Xq(p)+Δq < Yq(p), la variable Δq est incrémentée d'une unité à l'étape 27, après quoi l'index q est également incrémenté d'une unité à l'étape 28, de même l'index k à l'étape suivante 29. Après l'étape 29, le module 12 revient à la boucle 21-23 précitée pour remettre à zéro les variables Δq à ΔQ-1 A comparison 26 is then made between the numbers X q (p) + Δ q and Y q (p) - If X q (p) + Δ q <Y q (p), the variable Δ q is incremented by one in step 27, after which the index q is also incremented by one unit in step 28, likewise the index k in the next step 29. After step 29, the module 12 returns to the aforementioned loop 21-23 to reset the variables Δ q to Δ Q-1
(à moins que q = Q dès le premier test 21 , auquel cas il passe directement à l'étape 24).(unless q = Q from the first test 21, in which case it goes directly to step 24).
Lorsque la comparaison 26 montre que Xq(p)+Δq = Yq(p), l'index q est comparé à 1 au test 30 puis décrémenté d'une unité à l'étape 31 si q > 1. Après l'étape 31 , le module 12 répète la comparaison 26 avec la nouvelle valeur de l'index q.When the comparison 26 shows that X q (p) + Δ q = Y q (p), the index q is compared to 1 in test 30 and then decremented by one unit in step 31 if q> 1. After l step 31, the module 12 repeats the comparison 26 with the new value of the index q.
La décomposition de l'ensemble p en segments se termine quand q = 1 au test 30. Le module 12 compare alors l'index p au nombre d'ensembles P (test 32). Si p < P, l'index p est incrémenté d'une unité à l'étape 33, après laquelle le module 12 rejoint l'étape 29 précitée. La décomposition du groupe d'adresses en K segments se termine quand p = P au test 32, le nombre de segments K étant pris égal à l'index k courant à l'étape 34.The decomposition of the set p into segments ends when q = 1 in test 30. The module 12 then compares the index p to the number of sets P (test 32). If p <P, the index p is incremented by one at step 33, after which the module 12 joins the above-mentioned step 29. The decomposition of the address group into K segments ends when p = P in test 32, the number of segments K being taken equal to the current index k in step 34.
Si à l'issue de l'étape 34, les segments disjoints [A(k), B(k)] ne sont pas numérotés dans l'ordre croissant des adresses, on les trie pour les mettre dans cette ordre à l'étape 35.If at the end of step 34, the disjoint segments [A (k), B (k)] are not numbered in ascending order of addresses, they are sorted to put them in this order at step 35.
Les listes L et M précitées servent à compter les nombres de groupes d'abonnés auxquels appartiennent les abonnés désignés par les différentes adresses possibles. Ces listes sont tenues de façon à vérifier la propriété suivante : si L(i) < ADD < L(i+1 ), alors M(i) identifiants de groupe d'abonnés sont alloués au terminal d'adresse ADD à l'instant considéré. Dans cette expression, l'index i pointe dans les listes L et M. On voit que le nombre M(i) est associé au couple (L(i), L(i+1)) qui délimite un intervalle d'adresses de terminaux auxquelles sont alloués M(i) identifiants de groupe.The aforementioned lists L and M are used to count the numbers of groups of subscribers to which the subscribers designated by the different possible addresses belong. These lists are kept so as to verify the following property: if L (i) <ADD <L (i + 1), then M (i) subscriber group identifiers are allocated to the terminal of address ADD at the instant considered. In this expression, the index i points to the lists L and M. We see that the number M (i) is associated with the pair (L (i), L (i + 1)) which delimits an address range of terminals to which M (i) group identifiers are allocated.
Figure imgf000008_0001
Figure imgf000008_0001
TABLEAUBOARD
Le tableau I illustre un exemple de contenu des listes L et M. Dans ce cas particulier, les abonnés ayant des adresses comprises entre 780 000 000 et 780 000 049 appartiennent à un seul groupe, ceux ayant des adresses comprises entre 780 000 050 et 780 000 074 appartiennent à deux groupes et les autres abonnés n'appartiennent à aucun groupe.Table I illustrates an example of the content of the L and M lists. In this particular case, the subscribers with addresses between 780,000,000 and 780,000,049 belong to a single group, those with addresses between 780,000,050 and 780,000,074 belong to two groups and the other subscribers do not belong to any group.
A réception d'une requête d'allocation ou de suppression d'allocation relative à P ensembles connexes d'adresses, le module 12 effectue d'abord une décomposition du groupe d'adresses en segments, par exemple selon la procédure de la figure 4 correspondant à un cas où la décomposition fournit K segments disjoints dans l'ordre des adresses croissantes, puis il traite la requête, par exemple selon la procédure illustrée par la figure 5. Bien entendu, il y a des façons très variées de définir les paramètres dans la programmation d'une telle procédure, qui peuvent amener par exemple à définir les listes L et M dans un même tableau de mémoire pour optimiser l'adressage.On receipt of a request for allocation or deletion of allocation relating to P related sets of addresses, the module 12 first performs a decomposition of the group of addresses into segments, for example according to the procedure of FIG. 4 corresponding to a case where the decomposition provides K disjoint segments in the order of increasing addresses, then it processes the request, for example according to the procedure illustrated in FIG. 5. Of course, there are very varied ways of defining the parameters in the programming of such a procedure, which can lead for example to define the lists L and M in the same memory table to optimize the addressing.
Cette procédure utilise deux listes auxiliaires L', M' qui, si la requête est validée, sont recopiées dans les listes L et M pour les mettre à jour à la fin de la procédure. La notation j désigne le nombre d'entrées dans les listes L et M. L'organigramme de la figure 5 s'applique au cas d'une requête d'allocation d'un nouveau groupe (cas α = +1), et à celui d'une requête de suppression d'allocation d'un groupe précédemment alloué (cas α = -1 ).This procedure uses two auxiliary lists L ', M' which, if the request is validated, are copied into the lists L and M to update them at the end of the procedure. The notation j denotes the number of entries in the lists L and M. The flowchart of FIG. 5 applies to the case of a request for allocation of a new group (case α = +1), and to that of a request to delete allocation from a previously allocated group (case α = -1).
A l'étape 40, les index k et i sont initialisés à 1 , et le décalage δ est initialisé à zéro. La première comparaison 41 est effectuée entre l'adresse de début du k-ième segment A(k) et la valeur L(i-δ) de la liste L. Tant que A(k) > L(i-δ), les entrées L'(i) et M'(i) des listes auxiliaires L', M' reçoivent respectivement les valeurs L(i-δ) et M(i-δ) des listes L et M (étape 42), puis l'index i est incrémenté d'une unité à l'étape 43 à la suite de laquelle le module 12 répète la comparaison 41.In step 40, the indices k and i are initialized to 1, and the offset δ is initialized to zero. The first comparison 41 is performed between the start address of the k-th segment A (k) and the value L (i-δ) of the list L. As long as A (k)> L (i-δ), the inputs L '(i) and M' (i) of the auxiliary lists L ', M' receive respectively the values L (i-δ) and M (i-δ) of the lists L and M (step 42), then the index i is incremented by one at step 43 after which the module 12 repeats the comparison 41.
Si A(k) < L(i-δ) (comparaisons 41 puis 44), il faut créer une entrée supplémentaire dans les listes L et M, de sorte que le décalage δ est incrémenté d'une unité à l'étape 45, après laquelle l'adresse A(k) est affectée à la i-ième entrée de la liste L' à l'étape 46, puis le nombre M(i-δ)+α est affecté à la i-ième entrée de la liste M' à l'étape 47. Après l'étape 47, le nombre M'(i) est comparé à la limite N(k) fixée pour les adresses du segment k (comparaison 48). Si M'(i) > N(k), on est dans la situation d'une requête d'allocation dont le traitement augmenterait au-delà du nombre limite N(k) le nombre d'identifiants de groupe alloués aux adresses d'un intervalle commençant à l'adresse L'(i), de sorte que le module 12 retourne un message d'acquittement négatif refusant l'allocation demandée (étape 49).If A (k) <L (i-δ) (comparisons 41 then 44), you must create an additional entry in the lists L and M, so that the offset décalage is incremented by one in step 45, after which the address A (k) is assigned to the i-th entry of the list L 'in step 46, then the number M (i-δ) + α is assigned to the i-th entry of the list M 'in step 47. After step 47, the number M' (i) is compared with the limit N (k) fixed for the addresses of segment k (comparison 48). If M '(i)> N (k), we are in the situation of an allocation request whose processing would increase beyond the limit number N (k) the number of group identifiers allocated to the addresses of an interval starting at address L '(i), so that the module 12 returns a negative acknowledgment message refusing the requested allowance (step 49).
Dans le cas où la requête se rapporte à la suppression de l'allocation d'un identifiant de groupe (α = -1), la comparaison 48 ne peut pas donner lieu à M'(i) > N(k), de sorte qu'elle peut être shuntée. Lorsque la comparaison 44 montre que A(k) = L(i-δ), il n'y a pas lieu d'ajouter une entrée dans la liste L, mais on peut être amené à en supprimer une si M(i-δ)+α = M'(i-1). C'est pourquoi le module 12 effectue la comparaison 50. Si M(i-δ)+α ≠ M'(i-1), le module 12 passe directement aux étapes 46, 47 et 48 précitées. Sinon, les variables δ et i sont chacune décrémentées d'une unité à l'étape 51 , ce qui supprimera une entrée dans les listes L et M. Après cette étape 51 , le module 12 passe à la comparaison 48 précitée.In the case where the request relates to the removal of the allocation of a group identifier (α = -1), comparison 48 cannot give rise to M '(i)> N (k), so that it can be shunted. When comparison 44 shows that A (k) = L (i-δ), there is no need to add an entry to the list L, but we may have to delete one if M (i-δ ) + α = M '(i-1). This is why the module 12 performs the comparison 50. If M (i-δ) + α ≠ M '(i-1), the module 12 goes directly to the steps 46, 47 and 48 mentioned above. Otherwise, the variables δ and i are each decremented by one unit in step 51, which will delete an entry in the lists L and M. After this step 51, the module 12 proceeds to the above comparison 48.
Quand la comparaison 48 ne montre pas une violation de la contrainte d'intégrité (M'(i) < N(k)), l'index i est incrémenté d'une unité à l'étape 52, après quoi le module 12 passe à l'autre extrémité du segment k, en commençant par la comparaison 53. Si celle-ci montre que B(k)+1 > L(i-δ), le module 12 exécute l'étape 54 où il affecte l'adresse L(i-δ) à la i-ième entrée de la liste L'. Après l'étape 54, le module 12 revient à l'étape 47 précitée.When comparison 48 does not show a violation of the integrity constraint (M '(i) <N (k)), the index i is incremented by one unit at step 52, after which the module 12 passes at the other end of segment k, starting with comparison 53. If this shows that B (k) +1> L (i-δ), module 12 performs step 54 where it assigns the address L (i-δ) at the i-th entry in the list L '. After step 54, the module 12 returns to the aforementioned step 47.
Quand B(k)+1 < L(i-δ) (comparaisons 53 puis 55), il faut ajouter une entrée dans les listes L et M, de sorte que le décalage δ est incrémenté d'une unité à l'étape 56. Après cette étape 56, l'étape 57 est exécutée pour affecter respectivement les valeurs B(k)+1 et M(i-δ) aux i-ièmes entrées des listes L' et M'. Après cette étape 57, une comparaison 58 est effectuée entre l'index de segment courant k et le nombre total K de segments du groupe.When B (k) +1 <L (i-δ) (comparisons 53 then 55), an entry must be added to the lists L and M, so that the offset δ is incremented by one in step 56 After this step 56, step 57 is executed to assign the values B (k) +1 and M (i-δ) respectively to the i-th entries of the lists L 'and M'. After this step 57, a comparison 58 is made between the current segment index k and the total number K of segments of the group.
Quand la comparaison 55 montre que B(k)+1 = L(i-δ), il faut comparer les nombres M(i-δ) et M'(i-1). C'est l'objet de la comparaison 59. Si M(i-δ) ≠ M'(i-1), le module 12 passe à l'étape 57 précitée. Sinon, l'étape 60 est exécutée pour décrémenter les variables δ et i avant d'effectuer la comparaison 58 précitée.When comparison 55 shows that B (k) +1 = L (i-δ), the numbers M (i-δ) and M '(i-1) must be compared. This is the object of the comparison 59. If M (i-δ) ≠ M '(i-1), the module 12 goes to the aforementioned step 57. Otherwise, step 60 is executed to decrement the variables δ and i before carrying out the aforementioned comparison 58.
Tant que cette comparaison 58 montre que k < K, il reste au moins un segment à traiter, de sorte que l'index de segment k est incrémenté d'une unité à l'étape 61. Après cette étape 61 , le processus revient à l'étape 43 précitée.As long as this comparison 58 shows that k <K, there remains at least one segment to be processed, so that the segment index k is incremented by one in step 61. After this step 61, the process returns to the aforementioned step 43.
Quand k = K à la comparaison 58, le nombre i-δ est comparé à la taille j des listes L et M (comparaison 62). Si i-δ < j, l'index i est incrémenté d'une unité à l'étape 63, puis les valeurs L(i-δ) et M(i-δ) sont respectivement affectées aux i-ièmes entrées des listes L' et M' à l'étape 64, après laquelle la comparaison 62 est répétée. Quand cette comparaison 62 montre que i-δ = j, le module 12 délivre un acquittement positif pour autoriser l'unité requérante à effectuer ou supprimer l'allocation requise (étape 65), et les listes auxiliaires L' et M' sont finalement recopiées dans les listes L et M à l'étape 66, où la taille j reçoit en outre la valeur courante de l'index i.When k = K in comparison 58, the number i-δ is compared with the size j of lists L and M (comparison 62). If i-δ <j, the index i is incremented by one in step 63, then the values L (i-δ) and M (i-δ) are respectively assigned to the i-th entries of the lists L 'and M' in step 64, after which the comparison 62 is repeated. When this comparison 62 shows that i-δ = j, the module 12 delivers a positive acknowledgment to authorize the requesting unit to make or delete the allocation required (step 65), and the auxiliary lists L 'and M' are finally copied in the lists L and M in step 66, where the size j also receives the current value of the index i.
Le traitement selon la figure 5 nécessite un nombre limité d'accès en mémoire, et de simples opérations de comparaison et d'incrémentation de variables entières. Il présente donc une grande simplicité tout en offrant la flexibilité voulue quant aux contraintes d'allocation prises en compte. The processing according to FIG. 5 requires a limited number of accesses in memory, and simple operations of comparison and incrementation of whole variables. It therefore presents great simplicity while offering the desired flexibility as regards the allocation constraints taken into account.

Claims

R E V E N D I C A T I O N S
1. Procédé de contrôle d'allocation de références à des adresses numériques, caractérisé en ce qu'on mémorise une première liste (L) de valeurs d'adresse et une seconde liste (M) de nombres de références, en ordonnant les valeurs de la première liste et en associant respectivement les couples de valeurs consécutives de la première liste à des nombres de la seconde liste, chaque couple de valeurs consécutives de la première liste délimitant un intervalle tel que le nombre de références allouées à chaque adresse dont la valeur est dans ledit intervalle soit égal au nombre de la seconde liste associé audit couple, en ce qu'on met à jour les première et seconde listes (L, M) dans des traitements de requêtes d'allocation et de suppression d'allocation de références à des groupes d'adresses, et en ce que, en réponse à une requête d'allocation d'une référence à un groupe d'adresses, on détermine sur la base des première et seconde listes s'il se présente une situation où le traitement de la requête d'allocation augmente le nombre de références allouées à l'une au moins des adresses dudit groupe au-delà d'une limite associée à ladite adresse, et on refuse la requête d'allocation si ladite situation se présente.1. Method for controlling allocation of references to digital addresses, characterized in that a first list (L) of address values and a second list (M) of reference numbers are stored, by ordering the values of the first list and by associating respectively the pairs of consecutive values of the first list with numbers of the second list, each pair of consecutive values of the first list delimiting an interval such as the number of references allocated to each address whose value is in said interval is equal to the number of the second list associated with said pair, in that the first and second lists (L, M) are updated in processing of allocation requests and deletion of allocation of references to groups of addresses, and in that, in response to a request for allocation of a reference to a group of addresses, it is determined on the basis of the first and second lists whether it is present a situation where the processing of the allocation request increases the number of references allocated to at least one of the addresses of said group beyond a limit associated with said address, and the allocation request is refused if said situation arises.
2. Procédé selon la revendication 1 , dans lequel chaque requête d'allocation est formulée en définissant ledit groupe d'adresses comme étant constitué d'au moins un ensemble d'adresses, une valeur de ladite limite étant associée à chaque ensemble d'adresses, chaque ensemble d'adresses étant composé d'au moins un segment d'adresses consécutives.2. Method according to claim 1, in which each allocation request is formulated by defining said group of addresses as consisting of at least one set of addresses, a value of said limit being associated with each set of addresses. , each set of addresses being composed of at least one segment of consecutive addresses.
3. Procédé selon la revendication 1 ou 2, dans lequel les adresses numériques sont structurées en Q champs, Q étant un entier plus grand que 1 , les champs ayant respectivement des rangs de 1 à Q en relation avec l'ordonnancement des valeurs d'adresse de la première liste (L), et dans lequel chaque requête d'allocation ou de suppression d'allocation d'une référence à un groupe d'adresses est formulée en définissant ledit groupe d'adresses comme étant constitué d'au moins un ensemble d'adresses décrit par deux adresses d'extrémité, le traitement de ladite requête comprenant :3. Method according to claim 1 or 2, in which the digital addresses are structured in Q fields, Q being an integer greater than 1, the fields respectively having ranks from 1 to Q in relation to the ordering of the values of address of the first list (L), and in which each request for allocation or deletion of allocation of a reference to a group of addresses is formulated by defining said group of addresses as consisting of at least one set of addresses described by two end addresses, the processing of said request comprising:
- une décomposition du groupe d'adresses en segments, chaque segment étant composé d'adresses ayant le même champ de rang q pour chaque entier q allant de 1 à Q-1 et dont les champs de rang Q contiennent respectivement des numéros consécutifs allant du plus petit au plus grand des numéros contenus dans les champs de rang Q des deux adresses d'extrémité décrivant un ensemble d'adresses du groupe ; et - une mise à jour des première et seconde listes (L, M) sur la base des adresses situées aux extrémités desdits segments.- a breakdown of the group of addresses into segments, each segment being composed of addresses having the same field of rank q for each integer q ranging from 1 to Q-1 and whose Q rank fields respectively contain consecutive numbers ranging from the smallest to the largest of the numbers contained in the Q rank fields of the two end addresses describing a set of addresses of the group; and - an update of the first and second lists (L, M) on the basis of the addresses located at the ends of said segments.
4. Procédé selon la revendication 3, dans lequel, en réponse à une requête d'allocation, on associe une valeur identique de ladite limite à chaque segment d'adresses résultant de la décomposition d'un même ensemble.4. Method according to claim 3, in which, in response to an allocation request, an identical value of said limit is associated with each address segment resulting from the decomposition of the same set.
5. Procédé selon la revendication 3 ou 4, dans lequel le traitement d'une requête d'allocation d'une référence à un groupe d'adresses comprend, pour chaque segment du groupe et chaque intervalle, délimité par un couple de valeurs d'adresse consécutives de la première liste (L), avec lequel ledit segment présente un recouvrement, une comparaison entre la limite associée audit segment et le nombre de références de la seconde liste (M) associé audit couple, la requête d'allocation étant refusée si la comparaison montre que ladite limite est atteinte.5. Method according to claim 3 or 4, in which the processing of a request for allocating a reference to a group of addresses comprises, for each segment of the group and each interval, delimited by a pair of values of consecutive addresses in the first list (L), with which said segment presents an overlap, a comparison between the limit associated with said segment and the number of references in the second list (M) associated with said pair, the allocation request being refused if the comparison shows that said limit is reached.
6. Procédé selon l'une quelconque des revendications précédentes, dans lequel on tient les première et seconde listes de façon que les nombres de références de la seconde liste (M) associés à des couples de valeurs d'adresse de la première liste (L) délimitant deux intervalles adjacents soient toujours différents.6. Method according to any one of the preceding claims, in which the first and second lists are held so that the reference numbers of the second list (M) associated with pairs of address values of the first list (L ) delimiting two adjacent intervals are always different.
7. Procédé selon l'une quelconque des revendications précédentes, dans lequel les adresses sont affectées à des abonnés d'un système de télécommunications, et les références allouées représentent des groupes d'abonnés du système pour lesquels peuvent être établies des communications de groupe.7. Method according to claim 1, in which the addresses are assigned to subscribers of a telecommunications system, and the allocated references represent groups of subscribers of the system for which group communications can be established.
8. Dispositif de contrôle d'allocation de références à des adresses numériques, caractérisé en ce qu'il comprend des moyens (12) de traitement de requêtes d'allocation et de suppression d'allocation de références à des groupes d'adresses et des moyens (14) pour mémoriser une première liste (L) de valeurs d'adresse et une seconde liste (M) de nombres de références, en ordonnant les valeurs de la première liste et en associant respectivement les couples de valeurs consécutives de la première liste à des nombres de la seconde liste, chaque couple de valeurs consécutives de la première liste délimitant un intervalle tel que le nombre de références allouées à chaque adresse dont la valeur est dans ledit intervalle soit égal au nombre de la seconde liste associé audit couple, et en ce que les moyens de traitement comprennent des moyens de mise à jour des première et seconde listes (L, M) et des moyens pour déterminer sur la base des première et seconde listes, en réponse à une requête d'allocation d'une référence à un groupe d'adresses, s'il se présente une situation où le traitement de la requête d'allocation augmente le nombre de références allouées à l'une au moins des adresses dudit groupe au-delà d'une limite associée à ladite adresse et pour refuser la requête d'allocation si ladite situation se présente.8. Device for controlling the allocation of references to digital addresses, characterized in that it comprises means (12) for processing allocation requests and deleting allocation of references to groups of addresses and means (14) for storing a first list (L) of address values and a second list (M) of reference numbers, in ordering the values of the first list and associating respectively the pairs of consecutive values of the first list with numbers of the second list, each pair of consecutive values of the first list delimiting an interval such as the number of references allocated to each address whose value is in said interval is equal to the number of the second list associated with said pair, and in that the processing means comprise means for updating the first and second lists (L, M) and means for determining on the base of the first and second lists, in response to a request for allocation of a reference to a group of addresses, if a situation arises where the processing of the allocation request increases the number of references allocated to at least one of the addresses of said group beyond a limit associated with said address and to refuse the allocation request if said situation arises.
9. Dispositif selon la revendication 8, dans lequel chaque requête d'allocation est formulée en définissant ledit groupe d'adresses comme étant constitué d'au moins un ensemble d'adresses, une valeur de ladite limite étant associée à chaque ensemble d'adresses, chaque ensemble d'adresses étant composé d'au moins un segment d'adresses consécutives.9. Device according to claim 8, in which each allocation request is formulated by defining said group of addresses as consisting of at least one set of addresses, a value of said limit being associated with each set of addresses. , each set of addresses being composed of at least one segment of consecutive addresses.
10. Dispositif selon la revendication 8 ou 9, dans lequel les adresses numériques sont structurées en Q champs, Q étant un entier plus grand que 1 , les champs ayant respectivement des rangs de 1 à Q en relation avec l'ordonnancement des valeurs d'adresse de la première liste (L), dans lequel chaque requête d'allocation ou de suppression d'allocation d'une référence à un groupe d'adresses est formulée en définissant ledit groupe d'adresses comme étant constitué d'au moins un ensemble d'adresses décrit par deux adresses d'extrémité, et dans lequel les moyens (12) de traitement d'une requête d'allocation ou de suppression d'allocation d'une référence à un groupe d'adresses comprennent des moyens de décomposition du groupe d'adresses en segments, chaque segment étant composé d'adresses ayant le même champ de rang q pour chaque entier q allant de 1 à Q-1 et dont les champs de rang Q contiennent respectivement des numéros consécutifs allant du plus petit au plus grand des numéros contenus dans les champs de rang Q des deux adresses d'extrémité décrivant un ensemble d'adresses du groupe , les moyens de mise à jour des première et seconde listes (L, M) opérant sur la base des adresses situées aux extrémités desdits segments.10. Device according to claim 8 or 9, in which the digital addresses are structured in Q fields, Q being an integer greater than 1, the fields respectively having ranks from 1 to Q in relation to the ordering of the values of address of the first list (L), in which each request for allocation or deletion of allocation of a reference to a group of addresses is formulated by defining said group of addresses as consisting of at least one set of addresses described by two end addresses, and in which the means (12) for processing a request for allocation or deletion of allocation of a reference to a group of addresses comprises means for decomposing the group of addresses in segments, each segment being composed of addresses having the same field of rank q for each integer q ranging from 1 to Q-1 and whose fields of rank Q respectively contain consecutive numbers ranging from the smallest to the most g rand of the numbers contained in the fields of rank Q of the two end addresses describing a set of addresses of the group, the means for updating the first and second lists (L, M) operating on the basis of the addresses located at the ends of said segments.
11. Dispositif selon la revendication 10, dans lequel les moyens (12) de traitement d'une requête d'allocation sont agencés pour associer une valeur identique de ladite limite à chaque segment d'adresses fourni par les moyens de décomposition à partir d'un même ensemble.11. Device according to claim 10, in which the means (12) for processing an allocation request are arranged to associate an identical value of said limit with each segment of addresses supplied by the means of decomposition from the same set.
12. Dispositif selon la revendication 10 ou 11 , dans lequel les moyens (12) de traitement d'une requête d'allocation d'une référence à un groupe d'adresses comprennent des moyens de comparaison, pour chaque segment du groupe et chaque intervalle, délimité par un couple de valeurs d'adresse consécutives de la première liste (L), avec lequel ledit segment présente un recouvrement, entre la limite associée audit segment et le nombre de références de la seconde liste (M) associé audit couple, la requête d'allocation étant refusée si la comparaison montre que ladite limite est atteinte.12. Device according to claim 10 or 11, in which the means (12) for processing a request for allocating a reference to a group of addresses comprises comparison means, for each segment of the group and each interval , delimited by a pair of consecutive address values from the first list (L), with which said segment presents an overlap, between the limit associated with said segment and the number of references from the second list (M) associated with said pair, the allocation request being refused if the comparison shows that said limit is reached.
13. Dispositif selon l'une quelconque des revendications 8 à 12, dans lequel les première et seconde listes sont tenues de façon que les nombres de références de la seconde liste (M) associés à des couples de valeurs d'adresse de la première liste (L) délimitant deux intervalles adjacents soient toujours différents.13. Device according to any one of claims 8 to 12, in which the first and second lists are held so that the reference numbers of the second list (M) associated with pairs of address values of the first list (L) delimiting two adjacent intervals are always different.
14. Dispositif selon l'une quelconque des revendications 8 à 13, dans lequel les adresses sont affectées à des abonnés d'un système de télécommunications, et les références allouées représentent des groupes d'abonnés du système pour lesquels peuvent être établies des communications de groupe. 14. Device according to any one of claims 8 to 13, in which the addresses are assigned to subscribers of a telecommunications system, and the allocated references represent groups of subscribers of the system for which communications can be established. group.
PCT/FR2001/001757 2000-06-09 2001-06-07 Method for controlling allocation of references to digital addresses WO2001095601A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2001266122A AU2001266122A1 (en) 2000-06-09 2001-06-07 Method for controlling allocation of references to digital addresses
EP01943578A EP1287669A1 (en) 2000-06-09 2001-06-07 Method for controlling allocation of references to digital addresses

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR00/07429 2000-06-09
FR0007429A FR2810128B1 (en) 2000-06-09 2000-06-09 METHOD AND DEVICE FOR CONTROLLING ALLOCATION OF REFERENCES TO NUMERICAL ADDRESSES

Publications (1)

Publication Number Publication Date
WO2001095601A1 true WO2001095601A1 (en) 2001-12-13

Family

ID=8851154

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/001757 WO2001095601A1 (en) 2000-06-09 2001-06-07 Method for controlling allocation of references to digital addresses

Country Status (4)

Country Link
EP (1) EP1287669A1 (en)
AU (1) AU2001266122A1 (en)
FR (1) FR2810128B1 (en)
WO (1) WO2001095601A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107708110A (en) * 2016-08-09 2018-02-16 京信通信系统(中国)有限公司 A kind of mark distributing method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592542A (en) * 1993-02-02 1997-01-07 Fujitsu Limited Call distribution control method and call distribution control system
DE19706794A1 (en) * 1997-02-20 1998-09-03 Siemens Ag Program-controlled private exchange system
DE19838055A1 (en) * 1997-08-22 1999-02-25 Mitel Corp PABX communication system for subscriber group allocation
DE19752403A1 (en) * 1997-11-26 1999-05-27 Siemens Ag Communication system for combined terminals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592542A (en) * 1993-02-02 1997-01-07 Fujitsu Limited Call distribution control method and call distribution control system
DE19706794A1 (en) * 1997-02-20 1998-09-03 Siemens Ag Program-controlled private exchange system
DE19838055A1 (en) * 1997-08-22 1999-02-25 Mitel Corp PABX communication system for subscriber group allocation
DE19752403A1 (en) * 1997-11-26 1999-05-27 Siemens Ag Communication system for combined terminals

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107708110A (en) * 2016-08-09 2018-02-16 京信通信系统(中国)有限公司 A kind of mark distributing method and device
CN107708110B (en) * 2016-08-09 2020-08-28 京信通信系统(中国)有限公司 Identification distribution method and device

Also Published As

Publication number Publication date
AU2001266122A1 (en) 2001-12-17
EP1287669A1 (en) 2003-03-05
FR2810128B1 (en) 2002-09-27
FR2810128A1 (en) 2001-12-14

Similar Documents

Publication Publication Date Title
US10764320B2 (en) Structuring data and pre-compiled exception list engines and internet protocol threat prevention
US7917940B2 (en) Inheritance of controls within a hierarchy of data processing system resources
US9225593B2 (en) Methods of structuring data, pre-compiled exception list engines and network appliances
EP1974522B1 (en) Server, client and method for managing DNSSEC requests
EP2901279B1 (en) Device and method for managing access to a set of network resources made available in a cloud system
US10042875B2 (en) Bloom filter index for device discovery
US20080201179A1 (en) Optimization of policy enforcement
FR3030168A1 (en) METHOD FOR CHOOSING AT LEAST ONE SERVICE AND ASSOCIATED DEVICE
US7680822B1 (en) Method and system for automatically creating and updating access controls lists
US7603362B2 (en) Ordered list management
Chang et al. Fast packet classification using recursive endpoint-cutting and bucket compression on FPGA
CN110166221A (en) A kind of ciphertext compression storing data structure RCPE and data dynamic read/write method
CN106708636A (en) Cluster-based data caching method and apparatus
Gummadi et al. Modeling group trust for peer-to-peer access control
EP3503483B1 (en) Topological address assignment method and server with network switches, computer program and corresponding server cluster
CN1411218A (en) Network addressing control method of zone message
WO2001095601A1 (en) Method for controlling allocation of references to digital addresses
EP1102453A1 (en) Method for domestic and roaming provision for a mobile terminal
CN110417777B (en) Optimized method and device for communication between microservices
EP3828707A1 (en) Method for allocating resources in response to requests according to their priority, corresponding computer program, associated control unit for allocation and computer system
EP1912408A1 (en) Method of managing a database partitioned in a communication network
FR3047580B1 (en) DATA BASE TABLE INDEX
More et al. PRIVACY PRESERVATION ALGORITHM USING EFFECTIVE DATA LOOKUP ORGANIZATION FOR STORAGE CLOUDS
CN117319506A (en) Method, system, device and medium for creating metadata request by multi-channel processing
WO2018193190A1 (en) Method for managing a computer system with dynamic allocation of resources

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2001943578

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001943578

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 2001943578

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP