|
Claims  |
|
|
What is claimed is:
1. A method for modeling and emulating a plurality of telecommunication
devices of a network of telecommunication systems, wherein said
telecommunication devices have device types, said method comprising the
steps of:
(a) compiling statements specifying rules and behaviors of said device
types into device type model databases and storing said device type model
databases using a computer, each of said device type model databases
comprising a plurality of meta data structures, each of said meta data
structures comprising one or more data elements of one or more of said
device types, one or more predicates, and at least one navigation sequence
governing retrieval of and physically locating said data elements, said
navigation sequences facilitating said governing in conjunction with said
predicates; and
(b) interpreting user actions and device responses by retrieving
appropriate ones of said data elements for said telecommunication devices
using a computer, and traversing appropriate ones of said navigation
sequences, each navigation sequence being traversed in a predetermined
manner.
2. The method as set forth in claim 1, wherein, said step (a) comprises the
computer implemented steps of:
(a.1) parsing said statements specifying rules and behaviors, and
generating a plurality of intermediate lists, including a data element
list linking said data elements of said device types, a predicate list
linking predicates embedded in said rules and behaviors, a data
relationship list linking data dependencies inferred by said rules and
behaviors, a fix up list linking said data elements with unresolved
locations in said device type model databases, and a build list for
storing working information for building said device type model databases;
(a.2) building said meta data structures using said generated intermediate
lists.
3. The method as set forth in claim 1, wherein,
each of said compiled navigation sequences in said step (a) is a
sequentially ordered combination of pointers comprising one or more data
pointers, one or more predicate pointers, and one or more jump pointers,
each of said data pointers pointing to either a data element or another
navigation sequence of the meta data structure, each of said predicate
pointers pointing to a predicate of the same meta data structure, and each
of said jump pointers pointing to either a data pointer or a predicate
pointer later in order in the navigation sequence,
the starting pointer being either a data pointer or a predicate pointer, a
pointer following a data pointer being always follow by either another
data pointer or a predicate pointer, a pointer following a predicate
pointer being always a jump pointer, and a pointer following a jump
pointer being either a predicate pointer or a data pointer;
said predetermined manner of traversing a navigation sequence in said step
(b) comprises the computer implemented steps of:
(b.1) reading the first pointer of the navigation sequence;
(b.2) determining whether the pointer read is a predicate pointer or a data
pointer;
(b.2.1) if the pointer is determined to be a data pointer, further
determining if the data pointer is pointing to a data element or another
navigation sequence;
(b.2.1.1) if the data pointer is determined to be pointing to a data
element, retrieving the data element pointed by the data pointer;
(b.2.1.2) if the data pointer is determined to be pointing to another
navigation sequence, traversing the navigation sequence pointed by the
data pointer;
(b.2.2) if the pointer is determined to be a predicate pointer, evaluating
the predicate pointed by the predicate pointer against real time
operational data;
(b.2.2.1) if the predicate is evaluated to be false, reading the next
pointer and jumping to the identified data/predicate pointer in accordance
to the next pointer read;
(b.2.2.2) if the predicate is evaluated to be true, skipping the next
pointer;
(b.3) if the next pointer is not the end of the navigation sequence,
reading the next pointer and repeating steps (b.2) and (b.3),
conditionally including selected ones of substeps (b.2.1), (b.2.1.1),
(b.2.1.2), (b.2.2), (b.2.2.1), and (b.2.2.2) depending on said
determinations/evaluations, else terminating the traversal.
4. An apparatus for modeling and emulating a plurality of telecommunication
devices of a network of telecommunication systems, wherein said
telecommunication devices have device types, said apparatus comprising:
(a) first means for compiling statements specifying rules and behaviors of
said device types into device type model databases, each of said device
type model databases comprising a plurality of meta data structures, each
of said meta data structures comprising one or more data elements of said
device types, one or more predicates, and at least one navigation sequence
governing retrieval of and physically locating said data elements, said
navigation sequences facilitating said governing in conjunction with said
predicates;
(b) second means for storing said device type model databases output by
said first means;
(c) third means for interpreting user actions and device responses by
retrieving appropriate ones of said data elements from said second means
for said telecommunication devices by traversing appropriate ones of said
navigation sequences, each navigation sequence being traversed in a
predetermined manner.
5. The apparatus as set forth in claim 4, wherein, said first means
comprises:
(a.1) parsing means for parsing said rules and behaviors, and generating a
plurality of intermediate lists, including a data element list linking
said data elements of said device types, a predicate list linking
predicates embedded in said rules and behaviors, a data relationship list
linking data dependencies inferred by said rules and behaviors, a fix up
list linking said data elements with unresolved locations in said device
type model databases, and a build list for storing working information for
building said device type model databases; and
(a.2) building means for building said meta data structures using said
generated intermediate lists.
6. The apparatus as set forth in claim 4, wherein,
said first means constructs a navigation sequence using one or more data
pointers, one or more predicate pointers, and one or more jump pointers,
each data pointer points to either a data element or another navigation
sequence of the same meta data structure,
each predicate pointer points to a predicate of the meta data structure,
and
each jump pointer points to either a data pointer or a predicate pointer of
the navigation sequence.
7. The apparatus as set forth in claim 6, wherein,
said first means starts each of said navigation sequences with a predicate
pointer or a data pointer,
said first means always follows a predicate pointer with a jump pointer, a
data pointer with either a predicate pointer or another data pointer, and
a jump pointer with another predicate pointer or another data pointer.
8. The apparatus as set forth in claim 6, wherein, said first means uses
identical number of bytes for each of said data pointers, said predicate
pointers, and said jump pointers.
9. The apparatus as set forth in claim 4, wherein, said first means
constructs one of said meta data structures of said device type model
databases using a navigation sequence and a plurality of data elements of
said device types, said navigation sequence having a plurality of data
pointers pointing to said data elements.
10. The apparatus as set forth in claim 4, wherein, said first means
constructs one of said meta data structures of said device type model
databases using a navigation sequence, a plurality of predicates, and a
plurality of data elements of said device types, said navigation sequence
having a plurality of predicate pointers pointing to said predicates, and
a plurality of data pointers pointing to said data elements.
11. The apparatus as set forth in claim 4, wherein, said second means
comprises a first and a second storage medium for storing a permanent and
a working copy of said device type model databases respectively, said
second storage medium having faster access time than said first storage
medium.
12. The apparatus as set forth in claim 4, wherein, said third means
comprises evaluation means for evaluating said predicates against real
time operational data.
13. The apparatus as set forth in claim 12, wherein said predicates have
predicate types, and said evaluation means comprises an array of
evaluation functions with each evaluation function evaluating predicates
of a particular predicate type.
14. The apparatus as set forth in claim 4, wherein, said third means
differentiates a predicate pointer from a data pointer contextually, and
differentiates whether a data pointer points to a data element or another
navigation sequence by predetermined convention.
15. An apparatus for modeling and emulating telephone sets of a network of
telecommunication systems, wherein said telephone sets have telephone set
types, said apparatus comprising:
(a) first means for compiling statements specifying rules and behaviors of
said telephone set types into a telephone set type model database, said
telephone set type model databases comprising a plurality of meta data
structures, each of said meta data structures comprising one or more data
elements of said telephone set types, one or more predicates, and at least
one navigation sequence governing retrieval of and physically locating
said data elements, said navigation sequences facilitating said governing
in conjunction with said predicates;
(b) second means for storing said telephone set type model database output
by said first means; and
(c) third means for interpreting user actions and telephone set responses
by retrieving appropriate ones of said data elements from said second
means for said telephone sets by traversing appropriate ones of said
navigation sequences, each navigation sequence being traversed in a
predetermined manner.
16. The apparatus as set forth in claim 15, wherein, said telephone sets
further have telephone buttons and telephone features, and said telephone
features have telephone feature parameters and relationships to one
another, said first means constructs p1 (a.1) a telephone set type meta
data structure using a first navigation sequence and a plurality of
telephone set types, said first navigation sequence having a first
plurality of data pointers pointing to said telephone set types;
(a.2) a telephone button meta data structure using a second navigation
sequence and a plurality of telephone buttons, said second navigation
sequence having a second plurality of data pointers pointing to said
telephone buttons; and
(a.3) a telephone feature meta data structure using a third navigation
sequence for governing retrieval of telephone features, a plurality of
telephone feature headers, a fourth plurality of navigation sequences for
governing retrieval of telephone feature parameters, a fifth plurality of
navigation sequences for governing retrieval of telephone feature
relationships, a plurality of predicates, a plurality of telephone
features, and a plurality of telephone parameters,
said first navigation sequence comprising a first plurality of predicate
pointers pointing to a first subset of said predicates, and a first
plurality of data pointers pointing to said telephone features followed by
their respective telephone feature headers,
each of said telephone feature headers comprising a plurality of header
pointers pointing to a subset of said fifth plurality of navigation
sequences,
each of said fourth plurality Of navigation sequences comprising a second
plurality of predicate pointers pointing to a second subset of said
predicates, and a second plurality of data pointers pointing to a subset
of said telephone feature parameters,
each of said fifth plurality of navigation sequences comprising a third
plurality of predicate pointers pointing to a third subset of said
predicates, and a third plurality of data pointers pointing to said
telephone features.
17. The apparatus as set forth in claim 16, wherein said first means
constructs, for a first telephone feature, a first of said fourth
plurality of navigation sequences governing retrieval of elements to which
the first telephone feature may be assigned, a second of said fourth
plurality of navigation sequences governing retrieval of telephone
features incompatible with the first telephone feature, and a third of
said fourth plurality of navigation sequences governing retrieval of
prerequisites for the first telephone feature.
18. The apparatus as set forth in claim 15, wherein,
said predicates have predicate types;
said predicate types includes a telephone set predicate type and a
telephone parameter predicate type;
said third means comprises a telephone set type evaluation function and a
telephone parameter evaluation function for determining telephone set
types and telephone parameter values respectively, using real time
operational data.
19. A method for compiling rules and behaviors of telecommunication device
types into device type model databases for modeling and emulating a
plurality of telecommunication devices of said device types of a network
of telecommunication systems, said method comprising the steps of:
(a) parsing statements specifying said rules and behaviors, and generating
a plurality of intermediate lists using a computer, including a data
element list linking said data elements of said device types, a predicate
list linking predicates embedded in said rules and behaviors, a data
relationship list linking data dependencies inferred by said rules and
behaviors, a fix up list linking said data elements with unresolved
locations in said device type model databases, and a build list for
storing working information for building said device type model databases;
and
(b) building meta data structures using said generated intermediate lists
using a computer.
20. A method for traversing a meta data structure of a device type model
database compiled for modeling and emulating a plurality of
telecommunication devices of a plurality of device types of a network of
telecommunication systems, wherein said meta data structure comprises one
or more data elements, one or more predicates, and at least one navigation
sequence governing retrieval of and physically locating said data
elements, said navigation sequence governing retrieval in conjunction with
said predicates, said method comprising the steps of:
(a) reading a starting pointer of a first of said at least one navigation
sequence of the meta data structure using a computer, each of said at
least one navigation sequence of said meta data structure is a
sequentially ordered combination of pointers comprising one or more data
pointers, one or more predicate pointers, and one or more jump pointers,
each data pointer pointing to either a data element or another one of said
at least one navigation sequence of the meta data structure, each
predicate pointer pointing to a predicate of the meta data structure, and
each jump pointer pointing to either a data pointer or a predicate pointer
later in order in the navigation sequence, the starting pointer being
either a data pointer or a predicate pointer, a pointer following a data
pointer being either another data pointer or a predicate pointer, a
pointer following a predicate pointer being always a jump pointer, and a
pointer following a jump pointer being either a predicate pointer or a
data pointer;
(b) determining whether the pointer read is a predicate pointer or a data
pointer using a computer;
(b.1) if the pointer is determined to be a data pointer, further
determining if the data pointer is pointing to a data element or another
navigation sequence using a computer;
(b.1.1) if the data pointer is determined to be pointing to a data element,
retrieving the data element pointed by the data pointer using a computer;
(b.1.2) if the data pointer is determined to be pointing to another
navigation sequence, traversing the navigation sequence pointed by the
data pointer using a computer;
(b.2) if the pointer is determined to be a predicate pointer, evaluating
the predicate pointed by the predicate pointer against real time
operational data using a computer;
(b.2.1) if the predicate is evaluated to be false, reading the next pointer
and jumping to the identified data/predicate pointer in accordance to the
next pointer read using a computer;
(b.2.2) if the predicate is evaluated to be true, skipping the next pointer
using a computer;
(c) if the next pointer is not the end of the navigation sequence, reading
the next pointer and repeating steps (b) and (c), conditionally including
selected ones of substeps (b.1), (b.1.1), (b.1.2), (b.2), (b.2.1), and
(b.2.2) depending on said determinations/evaluations, else terminating the
traversal using a computer.
21. An apparatus for compiling rules and behaviors of telecommunication
device types into device type model databases for modeling and emulating a
plurality of telecommunication devices of said device types of a network
of telecommunication systems, said apparatus comprising:
(a) parsing means for parsing statements specifying said rules and
behaviors, and generating a plurality of intermediate lists, including a
data element list linking said data elements of said device types, a
predicate list linking predicates embedded in said rules and behaviors, a
data relationship list linking data dependencies inferred by said rules
and behaviors, a fix up list linking said data elements with unresolved
locations in said device type model databases, and a build list for
storing working information for building said device type model databases;
and
(b) building means for building meta data structures using said generated
intermediate lists.
22. An improved network of telecommunication systems comprising a plurality
of telecommunication devices having device types, wherein the improvements
comprise:
(a) first means for compiling statements specifying rules and behaviors of
said device types into device type model databases, each of said device
type model databases comprising a plurality of meta data structures, each
of said meta data structures comprising one or more data elements of said
device types, one or more predicates, and at least one navigational
sequence governing retrieval of and physically locating said data
elements, said navigation sequences facilitating said governing in
conjunction with said predicates;
(b) second means for storing said device type model databases output by
said first means;
(c) third means for interpreting user actions and device responses by
retrieving appropriate ones of said data elements from said second means
for said telecommunication devices by traversing appropriate ones of said
navigation sequences, each navigation sequence being traversed in a
predetermined manner. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the field of telecommunications network
management systems. More specifically, the present invention relates to
modeling and emulating devices in telecommunications networks for software
systems.
2. Background
In the telecom industry, complex and specialized software and hardware
systems are a given. Because each system is specialized, information used
by one system is not easily manipulated for use in another. As a result,
software designers are constantly asked to provide solutions, via
software, that can integrate different systems in a consistent and
easy-to-use manner.
Designing and building software that is consistently easy to use and can
integrate and manipulate information from other systems is often extremely
difficult. Device modeling gives to the software systems designer a method
for representing behaviors of very complex devices in a model that is
simple to use and understand. The model will remain the same even if the
device changes; thus, the software designer is free to concentrate on the
functional capability of a device.
Where a model is a simplified description of a system, a device model
describes a particular element of the system. In a complex
telecommunications network management system, devices might be central
offices switches, PBXs, telephones, or the interfaces to applications such
as work order systems, inventory systems, billings systems and so on. To
build a device model, the device must first be identified: the scope of
its function--"what it does", and the constraints under which it
operates--"how it does". For example, to build a simplified device model
of a telephone, the telephone's functions will first be identified, i.e.
1) A telephone transmits electronically encoded sounds between two
locations.
2) A telephone allows a user to turn on or off pre-programmed functions
(features). Then, the telephone's constraints are identified, i.e.
1) Activating the telephone handset sends a signal that conversation may
begin.
2) Dialing numbers on the keypad identifies the other person in the
conversation.
3) The handset at the dialed end alerts the person there that someone
wishes to talk.
4) When the dialed handset is activated conversation between parties can
take place.
5) Conversation is ended when either party deactivates his or her handset.
6) To manage pre-programmed functions, the user activates the handset and
presses a specific button or dials specific numbers to turn those
functions on or off; then the user deactivates the handset.
The model is then constructed from the functions and the constraints, i.e.
People talk to each other on the telephone through handsets. One person has
to call the other person. The called handset must be used to answer the
call. The caller must know the dialing number of the person being called.
Conversation can only take place if both people use their respective
handsets during the call. Either party can end the call. Telephone
pre-programmed functions are controlled with buttons or special numbers.
In other words, the device model defines in basic terms what a device is
for, how to use it, and how it works. A crucial point about device
modeling is that the model can ignore many aspects of a device and still
be highly valuable. In the telephone example, the concentration was on the
functional aspects, and the physical descriptions such as type and color
are omitted. With device modeling, the designer concentrates on what each
device does, creating a functional software core that is generic and
highly adaptable in integrating with other devices or components of the
system. In short, device modeling separates the things that change from
the things that are universal.
Device emulation is used to mimic the behavior of a modeled device and its
features. Where the device model is used in the context of device
emulation, the device model is invoked as part of the application.
Therefore, the capability of an application can be expanded by simply
providing a new device model for any given device type. Of course,
different applications are free to use the emulation of a device type for
different purposes. Essentially, device emulation provides the "how" to
device modeling's "what". Device emulation allows new features to be
introduced in the system in a standard way, thus avoiding code changes,
which in turn leads a more reliable product, and shorter development
cycle.
Device emulation enables system developers to focus more on the system's
functional objectives than on the peculiarities of the device or network
elements being managed. All information exchanges between the network
management software and the network elements take the form: 1) what needs
to be done--the action, and, 2) what to do it with--the data. As an
intermediary between components, the device emulation adds interpretation
or knowledge (the how) to the action-plus-data (the what). When a user
makes a change to a device, the network management software interprets
what that change means using device emulation and then makes that change
directly on the device. The device's response is in turn interpreted so
the management software can understand it.
Device modeling and emulation have been used in prior art products, such as
the CENPAC network management software, Version 4.0, produced by American
Telecorp of Redwood Shores, Calif., the assignee of the present invention.
Under CENPAC, the device models are stored in a database using mass
storage. As the number and varieties of devices, and complexity of telecom
systems continue to increase, the traditional approach of storing and
accessing device models in databases on mass storage is found to be
increasingly limiting in performance as well as flexibility of the
systems. Furthermore, as the device model becomes more complex, the
characteristics/behaviors of a device that is modeled become highly
interdependent with a large variability as to how the device model might
be accessed so as to cause a particular device's characteristic to
manifest itself. Typically, a manifestation of a characteristic is arrived
at via a series of evaluations within the device model which may cause the
access path in the device model to branch in a non-obvious manner. Thus,
it becomes impractical to implement access and storage methods using the
normal input/output (I/O) bound database and mass storage oriented
technologies. Also the characteristics of a device can vary so greatly
that it becomes impossible to predetermine the optimal database/storage
schema ahead of time.
Therefore, it is desirable to bring forward a technology that is optimal
for dealing with the needed flexibility when storing data and the needed
access performance. The objects of the invention are to create a device
model which was small enough so that it could be easily loaded as part of
the execution environment of a program, and the model would allow very
fast access capability and a great degree of flexibility as to how the
behavior of the device might be defined. As will be disclosed, the present
invention provides a method and apparatus for modeling and emulating
| | |