CA2285588C - Design of computer networks - Google Patents

Design of computer networks Download PDF

Info

Publication number
CA2285588C
CA2285588C CA002285588A CA2285588A CA2285588C CA 2285588 C CA2285588 C CA 2285588C CA 002285588 A CA002285588 A CA 002285588A CA 2285588 A CA2285588 A CA 2285588A CA 2285588 C CA2285588 C CA 2285588C
Authority
CA
Canada
Prior art keywords
rule
symbol
objects
rules
value
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CA002285588A
Other languages
French (fr)
Other versions
CA2285588A1 (en
Inventor
Derham Leslie Scott
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of CA2285588A1 publication Critical patent/CA2285588A1/en
Application granted granted Critical
Publication of CA2285588C publication Critical patent/CA2285588C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network

Abstract

A method of designing a computer network makes use of an object-based model enabling elements of the network to be displayed on screen, and manipulated by way of on-screen icons. A predefined rule list, acting directly on the objects, automatically updates the attributes of the objects to complete the network configuration. The rules are preferably Lisp-based, allowing users access to the standard Lisp functions in defining the rules.

Description

= 'I ' . ..
~

Design Of Computer Networks The present invention relates to a method of configuring computer networks.
Currently, the design and configuration of computer networks, particularly wide area networks, is a long and complex procedure requiring specialist trained staff. For a complex network, it may take a specialist several weeks to design an appropriate solution for the customer's requirements, and to produce a fully costed recommendation. The customer is often not in a position to give approval until the fully costed recommendation has been received, and if at that stage the customer requests amendments to the design there may be significant delays before the designer can produce a revised proposal. Since each iteration/redesign may take several weeks, it will be understood that the entire process between the initial customer's query and the implementation of the final solution may take some considerable time.

The present invention relates to a method of configuring a computer network having a pre-determined topology. The closest prior art (Mantelman L: "Al CARVES INROADS: NETWORK DESIGN, TESTING AND
MANAGEMENT"; DATA COMMUNICATIONS, vol. 15, no. 8, July 1986) relates to the rather different field of computer-assisted network design, that is optimisation of the underlying network topology. The following features are disclosed in the closest prior art document, in that context: selecting a plurality of symbol objects, each symbol object being an object-based computer representation, having settable attributes, of a physical element in a computer network; defming associations between the selected symbol objects; and applying predefined rules to the selected symbol objects, the rules being arranged to alter the settable attributes of the symbol object dependent upon . r. .: F I . i f ..
1(a) predefined rule conditions.

Another approach to network design is disclosed WO-96/41451. Once again, this relates to a system for optimising network topology, rather than, as in the present invention, configuring a computer network which already has a pre-determined topology. Within its own field, however, WO-96/41451 discloses the following features: selecting a plurality of computer representations of physical elements in a network, defining associations between the elements, and using rules to assist in the determination of an improved design.
According to the present invention there is provided a method of configuring a computer network having a pre-determined topology, comprising the steps of:
(a) selecting a plurality of symbol objects (400,402,404,406,408), each symbol object being an object-based computer representation, having settable attributes, of a physical element (500,502,504,506,508) in a computer network;
(b) defming associations between the selected symbol objects (400,402,404,406,408) to product an initial network configuration;
(c) applying predefined rules to the selected symbol objects (400,402,404,406,408) in the initial network configuration, the rules being arranged to alter the settable attributes of the symbol objects dependent upon predefined rule conditions, thereby automatically selecting, without simulating operation of the network, specific hardware for the physical elements (500,502,504,506,508) and updating the network configuration;
(d) reapplying the rules to the updated network configuration; and (e) repeating step (d) until the network configuration becomes stable.

~~~v ~' .
~ \"
The symbol objects are preferably represented by display icons on screen, so that the selection of symbol objects and the defming of associations between objects may be effected by on-screen manipulation of the display icons.
The predefined rules, applied to the current configuration as displayed on screen, may update the object attributes which may in itself alter the on-screen display. This may be repeated for as many passes as may be necessary, until the configuration stabilises.
Depending upon the complexity of the rules, the network configuration should rapidly converge to a self-consistent representation which will, by definition, be compatible with the user's requirements. Those user's requirements may be set initially by way of permanent object attributes, with the rules acting only on dynamic object attributes. Alternatively, the user may be permitted to set dynamic attributes manually as well, and a locking mechanism may be provided to present the firing of any rules which would alter an attribute that the user wishes to specify as remaining fixed.
In its preferred form, the method allows a model to be constructed which is cable of representing a computer network on several levels, for example both a WAN (Wide Area Network) and the LANs (Local Area Networks) at each physical site of the WAN. The user may set appropriate connections, defining the way in which the LANs talk to the WAN.
The invention in its broadest form further extends to software embodying a method as described above, or as set out in the claims. The invention further extends to a computer-readable media, such as a disk or a CD-ROM, carrying =
= C'~.
=~
<'jv '~~
such software.

In its preferred form, the present invention links graphics into a knowledge base (an extenrnal database), using a rule-based language which can act directly on the object model. Hence, the user can actually control functionality through screen icons. The preferred implementation is in the Lisp language, allowing the user full access to the power of the Common Lisp Object System.

The invention may be carried into practice in a number of ways and one specific embodiment will now be described, by way of example, with reference to the accompanying drawings in which:

Figure 1 is a schematic block diagram showing the hardware/software environment within which the method of the present invention may be operated;
Figures 2 and 3 show a typical network being designed;

Figures 4 to 7 illustrate the operation of an exemplary set of rules;

Figure 8 illustrates schematically the various parts that make up the configurator module of Figure 1; and Figure 9 illustrates how LAN and WAN elements may be linked.

Figure I illustrates schematically the hardware/software environment in which the method of the present invention may be operated. The method may conveniently be embodied in software, running on any convenient hardware, such as a Personal Computer.

The preferred software embodiment comprises a designer module 10, a configurator module 12, a pricing module 14 and a reports module 16.
Typically, these modules will be used sequentially, so that a user first starts with the designer module 10, which provides for the design of a wide-area network across a number of individual customer sites. The physical locations of the sites on the map may be entered either manually or from a customer-supplied database 200. Alternatively, if the postcodes of the sites can be provided, a postcode look-up database 202 may be used to determine the physical locations. Another possibility is to make use of the telephone numbers of the individual sites, along with a telephone look-up database 204 which, given the telephone number, returns at least the approximate site location. Once the individual site locations have been specified, along with the peak traffic requirements between sites, the designer module 10 will construct a model of the proposed WAN layout, specifying the recommended physical circuits between sites.
The proposed WAN design is passed onto the configurator module 12 which allows the user to design and configure the individual local area networks that may be needed at each of the sites. Assistance is provided by means of an external knowledge base 208, to be described later, which may conveniently be embodied within a conventional database structure.
The output from the designer and configurator modules is then passed onto the pricing module 14. This includes a pricing engine which uses an external pricing database 210 to provide detailed costings for the wide area and local area networks that have been recommended. The reporting module 16 may provide detailed parts lists, along with corresponding costs. The output at 18 may either be in the form of printed reports, or alternatively may be in electronic format.
A common workbench 20 is provided enabling each of the modules to be operated independently.
The detailed specific embodiment to be described relates primarily to the configurator module 12, and it is to be understood that in its broadest form the invention does not require, as an essential feature, any of the other modules.
Although it may be convenient for the designer module to provide the configurator module with the wide-area network design, that is not essential and information on the wide-area network could be provided to the configurator 5 module from elsewhere if necessary. For example, the designer module 10 may not be required at all, if a customer's wide-area network is already in place, and the customer merely requires assistance in designing and configurating local area networks. In addition, the configurator module could be used as a stand-alone application where no links are required into a wide-area network, and only a single local area network is to be provided.

The pricing and reporting modules may use any convenient technology, and may indeed consist of relatively standard components such as known pricing engines, with associated reporting facilities for example by way of spreadsheet or database output.

In its preferred form, the method of the present invention may be embodied within computer software that makes use of an object model of the network that is to be designed. This is shown in more detail in Figure 8. The object model 300, to be described in more detail below, makes use of an ASCII
file 302 which specifies the object classes that will be recognised and their allowable attributes. The objects, or at least some of them, may be displayed and manipulated on screen by way of a graphics module 304. Objects may interact with one another in a multitude of ways, these interactions being controlled by means of a rule engine 306 which makes use of the knowledge base 208. A rule editor 308 is also provided, allowing the user to amend the details in the knowledge base 208 and/or to alter the operation of the rule engine 306.
The object file 302 makes provision for three primary object classes, = CA 02285588 1999-10-14 namely symbol objects, diagram objects and text objects. These will be discussed in more detail below.

In operation, the user designs the network by selecting and manipulating icons on a computer screen. A simple example is shown in Figure 2, in which the user has selected, placed and connected icons representing a generic WAN

400, a generic router 402 and three generic LANs 404,406,408. Standard drawing tools may be provided to allow the user easily to select the various icons, place them on the screen, and link them together.

Each of the individual items thus chosen is represented internally by a separate symbol object. The attributes of each symbol object specify exactly what is being represented, the icon or "metafile" that is to be displayed on the screen, and the connections to other symbol objects. The entire diagram 410 is represented intemally by a diagram object which contains within it each of the individual symbol objects.

Depending upon the application, several different object files 302 may be used, each representative of a different "symbol library". One library might be suitable for designing and configuring one type of network, with another library being more suitable for another type.

Once the generic symbols have been positioned, and the topology of the proposed network specified by means of appropriate links, the user then goes onto the next stage which is to specify some required details for the network.
The user simply selects a symbol on screen and enters the appropriate information for that symbol; this sets the attributes for that symbol object.

The system prescribes two main types of attributes that are attached to objects:

1. The permanent attributes, which are user definable but which typically do not change during the configuration process.
2. Dynamic attributes, which are created dynamically due to the firing of rules during the configuration process. Dynamically created attributes always removed (cleared) at the start of each configuration.
Dynamic attributes are useful in ordering a decision-making process into a series of passes. For instance:
1. A router-type may be decided based upon its required connectivity;
2. The router-type together with the protocol to be used may define the Internetworking Operating System (IOS) to be used; and 3. The IOS then determines the amount of memory that will be required in the router.
Step 2 cannot be determined until step 1 is decided. and similarly step 3 requires step 2 to be decided.
By selecting for example the general WAN symbol 400, the user may wish to specify that the service used is to be Switched Multi-megabit Data Service (SMDS), with a bandwidth of 448.
The entered attributes are displayed on screen as a separate text object 510, as shown in Figure 3, and the generic WAN icon 400 changes to a specified WAN
icon 500.
Likewise, the user may wish to specify details of the LANs to which the WAN is to be connected; the attributes are shown on screen, as indicated in Figure 3, and the LAN
icons change to the square boxes 504,506,508.
It then remains for the generic router 402 to be determined. Although this may be done manually if desired, the preferred method is to make use of the rule engine to calculate the router attributes dynamically. In operation, the user operates the rule engine by pressing a "GO" button on a toolbar. The rule engine then parses the diagram 410 and applies the appropriate rules from the knowledge base to each of the symbol objects in turn. In the present example, the rules have no affect on the WAN object 500, nor on the LAN objects 504,506,508 since they have already been adequately specified.
However, the = CA 02285588 1999-10-14 rules applicable to the router object 402 look at the required connectivity to other objects, and their attributes, to determine exactly which model of router, and peripherals/parts, will be required to satisfy the constraints. Once the rules have been applied, the diagram corresponds to that shown in Figure 3, with the router icon having changed to indicate a specific router 502. Text next to the icon indicates that the router should be a Cisco 4000 model. The amount of dynamic random access memory is also specified, along with the necessary cards, cables and other necessary attachments.

Having now described a particular example, further details will now be provided of the configuration process itself, in other words the process by which the objects within the current diagram are dynamically updated.

The configuration process uses the rule engine 306 (Figure 8) which operates by rules which are defined within the knowledge-base library file 208.
Each symbol object may have associated with it a set of rules specifying actions to be taken depending on its connectivity with other objects, and the conditions of attributes of the object itself or of the objects to which it is connected.

An example of a rule is as follows:-(rule "rulename" (and (option 'supplier' Cisco) (option 'site' small) (connected-to "token ring") (not (connected-to "isdn"))) (add 'parts "abc") (ensure 'parts "xyz")) The condition of the rule tests whether the supplier option is Cisco and the site option is small. It also tests whether the symbol is connected to a token ring symbol but not connected to ISDN. If the condition is true (i.e.
all of the sub components of the condition are true) then the current symbol will have an 'abc' component added to the parts attribute, and also an 'xyz' component added if it does not already contain one.

The rule engine 306 is based on an "agenda" or list of rules to be processed. Each rule consists of the name of the rule, followed by a condition and a conclusion; for example, the following rule ensures that if the current object is connected to an object that has a widget, the current object should have a widget as well:

Rule name: Ensure Widget Compatibility Condition: Connected to object having "widget" attribute Conclusion: Set "widget" attribute for current object.

The rule engine operates by making an initial pass across the current diagram, visiting each object in turn. Each rule for that object is then tested to determine whether the condition value is true. If the condition returns true, then the rule is stored on the agenda for future use. The diagram is not modified at this time. Once all of the objects have been visited, and the diagram fully parsed, the rule engine passes to the next stage.

On completion of the first stage, the rule engine processes the agenda.
Each of the conditions are tested in turn before the conclusion is processed, to ensure that a previously fired rule on the agenda has not invalidated the current rule. If the result of the condition remains true, then the conclusions of the rule are processed. The processing of the conclusions may alter the attributes of the diagram objects which may in turn alter what is displayed to the user on screen.
As will have been evident from Figure 3, the processing may, amongst other things, alter the text objects, thereby allowing the user to see exactly what the system has changed. The icons or metafiles used to display the objects may also change.

Once the agenda has been fully processed, the diagram is parsed once more, and the process is repeated. On the second pass, further changes in = CA 02285588 1999-10-14 attributes may be made, dependent upon changes that were made in the previous pass. The process continues, with repeated passes, until the diagram becomes stable.

It may perhaps be helpful to illustrate how the system operates by means 5 of a worked, generic, example. Reference should be made to Figures 4 to 7, which illustrate sequential versions of a diagram showing how the attributes of the diagram objects change as the rules are applied. The initial diagram, shown in Figure 4, consists of five interlinked generic objects, respectively called P,Q,R,S and T. The object R starts off with the attribute A. No attributes are 10 initially set for any of the other objects.

The three rules that will be applied to this diagram are as follows:
1. Rule name: Rule 1 Condition: Connected to A
Conclusion: Ensure B.

2. Rule Name: Rule 2 Condition: Connected to B
Conclusion: Ensure C and add B.

3. Rule Name: Rule 3 Condition: Connected to D and current object has attribute A
Conclusion: Add X.

The rule engine starts by parsing Figure 4, and visiting each of the objects in turn to determine which of the rule conditions are true. The only relevant rule at this stage is rule 1, and its condition is true for the objects P,Q,S
and T. The agenda is therefore created as follows:

1. Object P: Rule 1 2. Object Q: Rule 3 T-----------3. Object S: Rule 1 4. Object T: Rule 1 The agenda is now processed sequentially, object-by-object and rule-by-rule. The application of Rule I to each of the objects P,Q,S and T results in the attribute B being set for each of those objects, as is shown in Figure 5.
Figure 5 is then re-parsed by the rule engine, to create a new agenda, and the process is repeated. For simplicity, the parsing of the diagram and the creation of the agenda will henceforth be assumed.

Applying the rules to Figure 5, it will be seen that since the object R is connected to objects having attribute B, Rule 2 sets the attributes C and D
for that object. Likewise, the same rule sets the attributes C and D for objects S
and T, since both are connected to an object having the attribute B. No other rules are relevant at this stage, and the diagram accordingly now changes to that shown in Figure 6.

On a parsing of Figure 6, the rule engine determines that the only applicable rule is rule 3, which applies to object R. Since that object is connected to an object having an attribute D, and since it has itself an attribute A, then a new attribute X needs to be added. The final result is shown in Figure 7.

Under some circumstances, it may be possible for the knowledge base to define a rule set which causes the rule engine to get stuck in a loop. This could happen, for example, if a conclusion changed an attribute of an object, with the next pass changing it back again. These conflicts can be dealt with either by changing the rules themselves by means of the rule editor 308 (Figure 8), or alternatively implementing a conflict resolution strategy.

The preferred conflict resolution strategy is to allow the user to specify how the rules on the current agenda are to be processed. The user-selectable options are as follows:

1. Process all of the items on the agenda in a single "forward'' pass. This is the default option.

2. Process all of the items on the agenda in a single "reverse" pass.

3. Process the first item on the agenda only, and discard the remainder.
4. Process the last item on the agenda only, and discard the remainder.
Using the last two of the strategies is likely to means that more passes are required before the diagram becomes stable. The discarding of most of the rules in the agenda does not of course necessarily means that those rules will never fire, since any sufficiently important rule which was discarded in one pass is very likely to continue to reappear on subsequent passes until it at last has the opportunity to be processed.

The system in addition keeps a record of all of the rules that have fired for each of the individual objects. To prevent looping, it prevents any rule from firing twice for the same object.

Turning now to Figure 9, it will be shown how the object model is capable of dealing with the design of a network at various different levels.
At the upper level, the model may represent a WAN. This may be displayed on screen as a plurality of physical sites 600 connected by physical circuits 602.

Both the sites and the circuits may represent individual objects within the model. All of these objects are contained within a WAN diagram object 604.
By clicking on one of the individual site objects 601, the user may "drill down"
to display a second screen which shows the LAN contained within that site object. -The LAN model includes symbol objects 603,605,606, of the type already discussed with reference to Figures 2 and 3. All are contained within a LAN diagram object 608.

The objects themselves either contain attributes which define the linkages between the diagrams, or these linkages are stored in a separate database. For example, the cloud object 603 in the LAN may include an attribute which shows that it links with the core circuit 602 in the WAN.

As mentioned above, the WAN diagram 604 may if desired be supplied externally from the configurator module 12 (Figure 1). It may for example be supplied as an output of the designer module 10, or alternatively it may be supplied via an exterior database (not shown).

The object model is preferably embodied in the Lisp programming language. The current implementation runs using Allegro Common Lisp for Windows Version 3.01, supplied by Franz Inc. The use of a language such as Lisp. allows the user full access to the entire language function set via the rule editor 308 (Figure 8). In addition, the preferred embodiment provides the user with an extensive list of additional functions, as follows:

~ CA 02285588 1999-10-14 tt t t , t , display-value attribute attribute... show-attribute -names call 'code-block' add-value atvibute value [quantity) [instance]
remove-value attribute value [quantity) get-value attribute [instancel ensure-value attribute value instance set-value attribute value [instance]
increment-value attribute (value] decrement-value attribute [value]
clear-value attributes instance ask-user-for-values atuibutes connected-to symbol-name [atuibute-value pairs] connections-to svmbols [attribute-value pairs]
equal-to attribute value member-of atvibute value occurrences-of attribute value union-of list list intersect-of list list benveen-values low high value condition-value sum-values attribute set-symbol-ref name string-to-number string number-to-string number { msgbox messa~e get-option attribute JdiagramJ aet-attributes-from-nested-diagrams attribute attribute set-symbols [attribute value]
check-for-dangling-end-points select-symbol instance select-line-thickness select-line-colour select-line-strle The additional functions currently defined are display-value attributes Display the value of the specified attributes on the diagram.
show-attribute-names Shows the attribute names on the diagram.
call code-block Call the specified code-block defined in the code section of the library.
add-value attribute value [quantity] [instance]
Add the value to the specified attribute of the symbol quantity times. If quantity is omitted it defaults to 1.
Creates and appends to lists. The function makes the attribute in to a list if it is not one already.

remove-value attribute valite [quantity]

Remove the value from the specified attribute of the symbol quantity times.
The quantity attribute is optional. If omitted, all occun:ences of value will be removed.
Removes from lists. 7he function makes the"attnbute in to a list if it is not one already.
get-value amibyre instance Returns the value of the specified attribute of the instance.
The instance part is optional and. if not specified, is assumed to be the current symbol.
Returns attribute values of any form.
ensure-value attribute value instance Add the value to the specified ar.ribute of the instance onlv if it is not there already. , The instance part is optional and, if not specified, is assumed to be the current symbol.
set-value attribute value instance Set the specified attrirute of the instance to be value.
The instance part is optional and. if not specified, is assumed to be the current symbol.
Value can be any fortn (i.e. a list. a string, a number) increment-value arrribure (valuef Increment the value of the attribute by 1, or supplied value.
decrement-value attribure [value]
Decrement the value of the atsibute by 1, or supplied value.
clear-value cttributu inumrce Clear the values of the specified attributes of ttte iastance.
The instance part is optional and, if not specified, is assumed to be the current sytabol.
ask-user-[or-values attribrrtu Provides a dialog box enabling the user to input values for the specified attributes.
eonnected-to symbol-n~nu (ctoibvte-vabu pairs) Returns a list of all tlta sytnbots with the specified name thu the symbol is connected to.

SUBSTITUTE SHEET (RULE 26) ~ CA 02285588 1999-10-14 If the optional attribute-value pairs are included then the function will return a list of all the symbols of the specified name, containing attributes of the specified values, that the symbol is connected to. It is also possible to use a function in the value field.
e.g. To find if a symbol is connected to a symbol called "WAN" with a service of "SMDS" and a speed greater than or equal to 4M, the following code could be used:

(connected-to 'WAN' 'ssrvics 'S-rtOS' 'nspeed 'l> - 40000000 connections-to list-of-sy> bols (attribute-value pairs) allows access to the properties for the connection objects between symbols.
E.g.

!connect,ons=to conr.ec:ed=to 'wAN' 'sennce 'SMCS') bandw[dth 1024) Will return a Gst of all SMOS wans that have connectioru of 1 M or greater.
equal-to amibute value Is the attaZbute set to the specified value?
Works on single values such as strings or numbers.
member-of attribute value Does the attribute contain the specified value?
Works on lists onl%-.
occurrences-of attribute value /
How many occurrences of the specified value are there in the attribute?
Works on lisu only.
e.g. (ooaMesauso11=Pra'abc7 This will return a count of the number of "abc" items in the parts attribute union-of list list...
Returns a 1ist of all the items contained within arguments.
The arguments must be lists.

e.g. (ania-or'(1234)=(S36s)) it (tI343364) intersect-of list list...
Returns a list of ttte items tiut are common across all of the arguments.
Tbe ar=umems must be lists.

SUBSTITUTE SHEET (RULE 26) --__ _- - - -T- _ e.g. (intcrsect-of '(1 2 34) '(5 3 6 4)) is (3 4) between-values low high value Does the value occur between low and hisll inclusive?
e.g. (between-values 4 8 6) 1S true (between-values 4 8 8) is true (between-vafues 4 8 4) is true (between-values 4 8 3) is false (between-values 4 8 9) is false condition-value Evaluates the condition part of a rule.
This is useful when the condition returns a%-aiue that is needed for use in the consequence.

e.g.
If the rule was to fire when the symbol was connected to ethernet of type 10-Base-T, the condition would be:

(connected-to-with "ethernet" 'type "10-8ase-T"1 If this condition is true, it may then be required to add a patch cord for each I O-Base-T connection.
This could be done by repeating the condition within the conclusion as follows:

(add-value 'parts "Patch Cord" (length (connected-to-with "ethernet' 'type "10-Base-T"111 An easier way is to use condition-value as follows:
(add-value 'parts "Patch Cord" (length (condition-value)l) sum-values attribute Provides a mechanism to accumulate all values of a particular attribute across a diagram independent of connectivity.

i.e. (set-value 'total-widgets (sum-values 'widgets)) If a symbol has a list of values,'(4 2 6) these will all be summed to add to the total value, i.e. 12.
set-symbol-ref name This function provides a means of dynamically changing the representation of the symbol on the screen and also swapping out the rule set being used. This enable rules to be partitioned across various symbols rather than having a single symbol containing all of the rules.

= CA 02285588 1999-10-14 If a router type is chosen due to its connectivity then the actual configuration of the router can be encapsulated in the rules for the specific router type.
i.e.

(symbol (name roVter') (metatile router.wfnf1 (protocol (one-of ip ipx)) (rules ( (rule Ett+emetRouter' ( ~ 1 (length (connected=to 'ethernet'))) (set=symbol-ref 'Ethernet Router')) (rule TokenRinqRouter' I - 1 (lenqth (connected=to 'token ring'))) set-symbol-ret 'Token Rinq Router')) )) The rules above select which type of router is appropriate. If it is attached to a single ethernet LAN then the "Ethernet Router" is selected or for a single token ring the "Token Ring Router" is selected (no checking is provided in this case for any other valid or invalid connectivity).

i.e.
isymbol (name E:hernet Router') Imetafile e-router.wmfI
(protocol (on"f ip ipx)) Irules ( (rule IPEtlwtrdtortocots' (eq,aMto 'protocoa ip) (set 'tOS 'IP stack tor Ettrmet Muar')1 iMe 'IPXEtPMrrrtlrotoeols= levuat-co 'protoeol 'ipx) (set 90S '1PX ttack for Ethernet ltovarl) )) A similar definition applies to the Token Ring Router symbol thereby splitting functionality across tttree different symbols. The symbol keeps a reference to the type of symbol tfsst wis initially placed however and can thereforo roasrn ebe symbol to its original form during the first piss of the configuration prooess.

SUBSTITUTE SHEET (RULE 26) string-to-number string Converts a strina of the form "256kbps" to 256000. The only supported conversions in Alpha2 are "k" and "M".
number-to-string number Converts number to a string.
msgbox message Displays a dialog box on the screen containing message.
This is useful to include in rule conclusions for debugging.
e.g. (msgbox (get-value 'routerf) could be used to display the value of the router attribute of the symbol at a particular instance during confi(yuration or (msgbox "Symbol changed to C7000") could be used to indicate that a particular conclusion has been evaluated.
get-option attribute [diagram]
Returns the value of the specified option.
get-attributes-from-nested-diagrams attribute attribute...
Is useful to use in the preconfigure block to brin~ attribute values from a lower level linked diagram up to the current level.

i.e. (preconfigure (get-attributes-from-nested-diagrams 'widgets 'terminals) check-for-dangling-end-points Is useful to use in the postconfigure block to check the diagram for any connections that may have unconnected end points.
delete-dangling-end-points as above but deleteing unconnected lines without asking.
get-symbols [attribute value]
retums a list of all symbols with the specified attribute value pairs.
select-symbol instance selects the specified symbol, adding ?rab handles to it for highlighting.
select-line-thickness Changes the displayed width of a connection.
select-line-colour Changes the displayed colour of a connection.

~ CA 02285588 1999-10-14 select-line-style Changes the displayed style of a connection. May be :dot :dash or :solid.
Some useful Lisp programming language functions are:-Note: in Lisp terms, nil is FALSE and 1, or any non-nil value, is TRUE.
Configurator may also use yes and no for true and false respectively.
length sequence Returns the length of the sequence-e.g. To count the number of connections the symbol has to another symbol called "ethernet":

(length (connected-to "ethernet")) setq name value Sets name to be equal to value.

e.g. To set a variable called count to be equal to the number of connections the symbol has to another symbol called "ethernet":

(setq count (length (connected-to "ethernet"))) = numbers Returns true if all numbers are equal.

e.g. To see if a symbol has 3 connections to another symbol called "ethernet":
(= 3 (length (connected-to "ethernet")1) l= numbers Returns true if all numbers are different not equal) > numberl number2 Returns true if numberl is greater than nutnber2.
< numberl number2 Returns true if numberl is less than number2.
>= numberl number) Returns true if number t is greater than or equal to number2.
<= numberl number2 Returns true if numberl is less than or equal to number2.
+ numbers Returns the sum of numbers.
- number] number2 Returns the result of numbert minus number2.

~ numbers Returns the product of numbers l numberl number2 Returns the result of numberl divided by number2 The result may be a fractional number such a 13/3 which may be converted into a decimal number by using the 'float' function. i.e. (float (/ 13 3)) and conditions Returns true if all conditions are true.

e.g. To check that the symbol has I connection to another svmbol called "ethernet" and 2 connections to another symbol called "token ring":
(and ( = 1 (length (connected-to "ethernet")) { = 2 (length (connected-to "token ring")))) or conditions Returns true if one of the conditions is true.

e.g. To check whether a symbol is connected to another symbol called "ethernet" or one called "token rin;":

(or (connected-to "ethernet') (connected-to "token ring")) not condition Returns true if the condition is false.
e.g. To check that a symbol is not connected to another svmbol called "ethernet":

(not (connected-to lethernet")) dolist (variable list) (formf The first element of list is bound to variable and form is evaluated. Variable is then bound to the second element of list and form is evaluated.This process continues until all elements in list have been evaluated within form.
e.g.

Irule "test" (intersect-of (connected-to "ethernet") (connected-to "token ring")) (dolist (instance (condition-value)) (add-value 'eth/tr instance) ~ CA 02285588 1999-10-14 The condition of this rule returns a list of svmbols that are connected to both ethernet and token ring. If such a list is returned, then the conclusion will be evaluated. This simply iterates around the list returned by tlle condition and adds each of the symbols in the list to an attribute called eth/tr.
cond (test jorm) Similar to a'case' statement in other lanouases. If test is true then form is evaluated. The (test form) partnerships can be nested. This is best described by way of an example rule:

(rule "ETHConnections" (connected-to "ethernet") ;; how may ethernets are we connected to?
Isetq count (length Icondition-value))) Icond (I> = count 4) (set-value 'connections "4 or more, connections to ethernet") (add-value 'parts "connectors" count)) (l= count 3) (set-value 'connections "3 connections to ethernet") (add-value 'parts "connectors" count)) (( = count 2) (set-value 'connections "2 connections to ethernet") ladd-value 'parts "connectors" count)) (( = count 1) (set-value 'connectiqns "1 connection to ethernet") (add-value 'parts "connectors")) (t (set-value 'connections "no connections to ethernet"1) end of cond end of rule The condition of the rufe checks to see if the symbol is connected to a symbol called "ethernet". On finding the condition to be true, the consequent part of the rule will be evaluated. The first part of the consequent sets a variable called count to be equal to the number of connections the symbol has to one called 'ethernet" (remember condition-value evaluates the condition part of the rule). The second part of the consequent is a cond clause containing 5 possible outcomes.

-T-- ~---Firstly count is examined to see if it is greater or equal to 4 and if it is then an attribute called 'connections' is set to "4 or more connections to ethernet" and the number of connectors is added to the 'parts' attribute.

Once one of the conditions of a cond clause has been met, then none of the others are evaluated and the clause is exited. If count is not equal to 4, then the next test is evaluated (i.e. is count equal to 3?) and so on. If none of the tests for count apply then the default condition, 't', will have its forms evaluated. If the 't' condition is omitted from a cond clause and none of the other tests apply, then nothing is evaluated.

Once the network has been fully designed and configured, the configurator module 12 (Figure 1) outputs its results to the pricing and reports modules 16. Since each symbol object has a"parts" attribute, any items added to that attribute will be interpreted as item part codes. These codes may then be used to look up the relevant information in the pricing database 210. In addition, a report showing the parts list can be viewed and printed.

Claims (19)

1. A method of configuring a computer network, comprising the steps of:
(a) selecting a plurality of symbol objects, each symbol object being an object-based computer representation, having settable attributes, of a physical element in a computer network;
(b) defining associations between the selected symbol objects to produce an initial network configuration; and (c) applying at least one rule from a predefined set of rules to the selected symbol objects in the initial network configuration, the rules in said set being arranged to alter the settable attributes of symbol objects dependent upon predefined rule conditions, thereby automatically selecting specific hardware for the physical elements and updating the network configuration; and (d) repeating step (c) using, at each repetition, the updated network configuration arising from the immediately preceding application of step (c) in place of the initial network configuration, until the updated network configuration becomes substantially stable from one repetition to the next.
2. A method as claimed in claim 1 in which a specific piece of physical hardware, from a specific manufacturer, is represented by a specific symbol object having specific predefined values for the settable attributes.
3. A method as claimed in claim 1 in which the symbol objects are represented by display icons, the selection of symbol objects and the defining of associations being effected by on-screen manipulation of the display icons.
4. A method as claimed in claim 1 in which each predefined rule consists of a rule condition portion and a rule conclusion portion, the rule conclusion portion defining an action to be taken in dependence upon a test applied to the rule condition portion.
5. A method as claimed in Claim 4 in which in step (c) the initial configuration is first parsed by testing the rule condition portion of each rule in said set for each selected symbol object, and an agenda list of rules and corresponding objects is constructed for which the test was positive, and wherein said at least one rule being applied at step (c) is selected from said agenda list of rules.
6. A method as claimed in Claim 5 in which step (c) further includes sequentially visiting each rule in the agenda list, testing its rule condition portion again and, if the test is again positive, effecting the action defined by the rule conclusion portion.
7. A method as claimed in Claim 4 in which in step (d) the updated configuration is first parsed by testing the rule condition portion of each rule in said set for each selected symbol object, and an agenda list of rules and corresponding objects is constructed for which the test was positive, and wherein said at least one rule being applied at step (c) is selected from said agenda list of rules.
8. A method as claimed in Claim 4 in which step (d) further includes sequentially visiting each rule in the agenda list, testing its rule condition portion again and, if the test is again positive, effecting the actions defined by the rule conclusion portion.
9. A method as claimed in claim 1 including defining diagram objects, each diagram object defining a group of symbol objects representative of a portion of a computer network.
10. A method as claimed in Claim 9 in which the group is representative of a LAN.
11. A method as claimed in Claim 9 in which the group is representative of a WAN.
12. A method as claimed in Claim 9 including defining a first diagram object defining a group of symbols representative of a WAN, and a second diagram object defining a group of symbols representative of a LAN, a site object within the first diagram object being associated with the second diagram object.
13. A method as claimed in Claim 12 in which a user displays the second diagram object by selecting on screen an icon representative of the site object.
14. A method as claimed in Claim 12 in which WAN cloud object within the second drawing object is associatable with the site object, thereby specifying a connection between the WAN and the LAN.
15. A method as claimed in claim 1 in which a change in settable attributes, consequent upon application of the rules, is reflected by a change in a screen display.
16. A method as claimed in Claim 15 in which:
the symbol objects are represented by display icons, the selection of symbol objects and the defining of associations being effected by on-screen manipulation of the display icons; and the display icon of a symbol object changes in dependence upon the settable attributes of that object.
17. A method as claimed in Claim 3 in which values of at least some of the settable attributes for a symbol object are displayed on screen in association with the corresponding icon.
18. A method as claimed in claim 1 in which the rules are Lisp-compatible, or compatible with a superset thereof.
19. A method as claimed in claim 1 in which:
a specific piece of physical hardware, from a specific manufacturer, is represented by a specific symbol object having specific predefined values for the settable attributes; and including a user-selectable conflict resolution method to prevent looping.
CA002285588A 1997-04-15 1998-04-15 Design of computer networks Expired - Fee Related CA2285588C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB9707550.1A GB9707550D0 (en) 1997-04-15 1997-04-15 Design of computer networks
GB9707550.1 1997-04-15
PCT/GB1998/001093 WO1998047266A1 (en) 1997-04-15 1998-04-15 Design of computer networks

Publications (2)

Publication Number Publication Date
CA2285588A1 CA2285588A1 (en) 1998-10-22
CA2285588C true CA2285588C (en) 2008-09-16

Family

ID=10810772

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002285588A Expired - Fee Related CA2285588C (en) 1997-04-15 1998-04-15 Design of computer networks

Country Status (6)

Country Link
US (1) US6247049B1 (en)
EP (1) EP0980610A1 (en)
AU (1) AU7060798A (en)
CA (1) CA2285588C (en)
GB (1) GB9707550D0 (en)
WO (1) WO1998047266A1 (en)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810211B1 (en) 1999-09-08 2004-10-26 Alcatel Preferred WDM packet-switched router architecture and method for generating same
US6633837B1 (en) * 1999-10-14 2003-10-14 Object Reservoir Method and system for generating software code using a symbolic language translator
EP1330724B1 (en) * 2000-09-15 2018-11-14 Schneider Electric Software, LLC An industrial process control data access server supporting multiple client data exchange protocols
US20020143904A1 (en) * 2000-09-22 2002-10-03 Bair M. Zach Rapid network deployment
US20020083146A1 (en) * 2000-10-31 2002-06-27 Glenn Ferguson Data model for automated server configuration
US8250570B2 (en) 2000-10-31 2012-08-21 Hewlett-Packard Development Company, L.P. Automated provisioning framework for internet site servers
US8219662B2 (en) 2000-12-06 2012-07-10 International Business Machines Corporation Redirecting data generated by network devices
US7249170B2 (en) 2000-12-06 2007-07-24 Intelliden System and method for configuration, management and monitoring of network resources
US20020069367A1 (en) * 2000-12-06 2002-06-06 Glen Tindal Network operating system data directory
US7054946B2 (en) * 2000-12-06 2006-05-30 Intelliden Dynamic configuration of network devices to enable data transfers
US6978301B2 (en) * 2000-12-06 2005-12-20 Intelliden System and method for configuring a network device
US7150037B2 (en) * 2001-03-21 2006-12-12 Intelliden, Inc. Network configuration manager
US7743147B2 (en) * 2001-04-20 2010-06-22 Hewlett-Packard Development Company, L.P. Automated provisioning of computing networks using a network database data model
US8296400B2 (en) 2001-08-29 2012-10-23 International Business Machines Corporation System and method for generating a configuration schema
US7065562B2 (en) * 2001-11-26 2006-06-20 Intelliden, Inc. System and method for generating a representation of a configuration schema
US7188335B1 (en) 2001-12-28 2007-03-06 Trilogy Development Group, Inc. Product configuration using configuration patterns
US8447963B2 (en) 2002-06-12 2013-05-21 Bladelogic Inc. Method and system for simplifying distributed server management
US7464145B2 (en) 2002-07-11 2008-12-09 Intelliden, Inc. Repository-independent system and method for asset management and reconciliation
US20040028069A1 (en) * 2002-08-07 2004-02-12 Tindal Glen D. Event bus with passive queuing and active routing
US20040030771A1 (en) * 2002-08-07 2004-02-12 John Strassner System and method for enabling directory-enabled networking
US7461158B2 (en) * 2002-08-07 2008-12-02 Intelliden, Inc. System and method for controlling access rights to network resources
US7366893B2 (en) 2002-08-07 2008-04-29 Intelliden, Inc. Method and apparatus for protecting a network from attack
US7558847B2 (en) 2002-09-13 2009-07-07 Intelliden, Inc. System and method for mapping between and controlling different device abstractions
US20040078457A1 (en) * 2002-10-21 2004-04-22 Tindal Glen D. System and method for managing network-device configurations
US20040230681A1 (en) * 2002-12-06 2004-11-18 John Strassner Apparatus and method for implementing network resources to provision a service using an information model
JP3827092B2 (en) * 2003-10-22 2006-09-27 オムロン株式会社 Control system setting device, control system setting method, and setting program
JP2006302297A (en) * 2003-10-22 2006-11-02 Omron Corp Control system setting apparatus, control system setting method and setting program
GB2431067B (en) 2005-10-07 2008-05-07 Cramer Systems Ltd Telecommunications service management
GB2432992B (en) * 2005-11-18 2008-09-10 Cramer Systems Ltd Network planning
GB2433675B (en) * 2005-12-22 2008-05-07 Cramer Systems Ltd Communications circuit design
GB2435362B (en) 2006-02-20 2008-11-26 Cramer Systems Ltd Method of configuring devices in a telecommunications network
US20100083113A1 (en) * 2008-09-26 2010-04-01 Thomson Licensing Inc. Architecture For Optimizing Audio and Video Output States for Multimedia Devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809282A (en) 1995-06-07 1998-09-15 Grc International, Inc. Automated network simulation and optimization system
US5680326A (en) * 1995-06-22 1997-10-21 Mci Corporation System and method therefor of estimating optimal spare capacity for a distributed restoration scheme

Also Published As

Publication number Publication date
GB9707550D0 (en) 1997-06-04
WO1998047266A1 (en) 1998-10-22
EP0980610A1 (en) 2000-02-23
US6247049B1 (en) 2001-06-12
CA2285588A1 (en) 1998-10-22
AU7060798A (en) 1998-11-11

Similar Documents

Publication Publication Date Title
CA2285588C (en) Design of computer networks
US6229540B1 (en) Auditing networks
US5831610A (en) Designing networks
US6330005B1 (en) Communication protocol binding in a computer system for designing networks
US7367006B1 (en) Hierarchical, rules-based, general property visualization and editing method and system
US5323452A (en) Visual programming of telephone network call processing logic
US6101498A (en) System for displaying a computer managed network layout with a first transient display of a user selected primary attribute of an object and a supplementary transient display of secondary attributes
US20040160464A1 (en) System and method for providing a graphical user interface and alternate mappings of management information base objects
EP1480121A2 (en) System and method for dynamic business logic integration
US20020083414A1 (en) System and method for a command structure representation
CN108958736A (en) Page generation method, device, electronic equipment and computer-readable medium
CN112650766B (en) Database data operation method, system and server
JPH07334551A (en) Method and apparatus for decision of reachable state in hybrid model state machine
US7158907B1 (en) Systems and methods for configuring a test setup
US20030076349A1 (en) Apparatus and method for generating configuration data for a device to access a service
Dolin Circuit analysis, synthesis and simulation of radio devices in Electra CAD
US6212674B1 (en) Graphic control process for controlling operations in a network management system
CN117369843A (en) Graphical interface drawing method of network configuration tool
KR20000070320A (en) Screen editor
Cisco Policy Builder
Gaines et al. WebGrid: knowledge modeling and inference through the World Wide Web
EP1376323A1 (en) Graphic user interface for hierarchically organised objects
JPH09311771A (en) Method and device for network equipment management
Jones COMNET III: Object-oriented network performance prediction
US7779369B1 (en) Method for the graphic representation and/or processing values of data types

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20130415