WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Methods and apparatus for modeling and emulating devices in a network of telecommunication systems    

Get related patents on CD
United States Patent5594792   
Link to this pagehttp://www.wikipatents.com/5594792.html
Inventor(s)Chouraki; Philippe J. (San Francisco, CA); Moloney; Simon F. (Redwood City, CA); Russell; Mark A. (San Francisco, CA); Preston; David R. (Los Gatos, CA)
AbstractA compiler is provided to a network element management subsystem for compiling rules and behaviors of device types into nested meta data structures of model databases. The rules and behaviors of the device types are specified via definitions describing controls of the device types, and features assignable to the device types. In one embodiment, the compiler is a two phase compiler comprising a parsing and list building phase and a database building phase. The device type model databases are loaded into memory to allow fast access and traversal. Each of the model databases comprises a plurality of nested meta data structures. Data are conditionally retrieved by selectively traversing the model databases using navigation sequences. An array of evaluation functions is further provided to evaluate predicates embedded in the nested meta data structures in view of operational data. During operation, user and system actions are interpreted through device emulation accessing the appropriate model databases.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Drawing from US Patent 5594792
Methods and apparatus for modeling and emulating devices in a network of

     telecommunication systems - US Patent 5594792 Drawing
Methods and apparatus for modeling and emulating devices in a network of telecommunication systems
Inventor     Chouraki; Philippe J. (San Francisco, CA); Moloney; Simon F. (Redwood City, CA); Russell; Mark A. (San Francisco, CA); Preston; David R. (Los Gatos, CA)
Owner/Assignee     American Telecorp (Redwood Shores, CA)
Patent assignment
All assignments
Company News
Publication Date     January 14, 1997
Application Number     08/188,473
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     January 28, 1994
US Classification     379/269 379/92.03
Int'l Classification     H04M 001/57 H04M 001/64
Examiner     Hofsass; Jeffery
Assistant Examiner     Presson; Thomas F.
Attorney/Law Firm     Blakely, Sokoloff, Taylor & Zafman
Address
Parent Case    
Priority Data    
USPTO Field of Search     379/201 379/269 379/207 379/10 379/11
Patent Tags     methods modeling emulating devices network of telecommunication
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5448632
Iyob
379/230
Sep,1995

[0 after 0 votes]
5386459
Veeneman
379/93.01
Jan,1995

[0 after 0 votes]
5386467
Ahmad
379/221.08
Jan,1995

[0 after 0 votes]
5353331
Emery
455/461
Oct,1994

[0 after 0 votes]
5343517
Bogart
379/219
Aug,1994

[0 after 0 votes]
5333188
Bogart
379/221.14
Jul,1994

[0 after 0 votes]
5329582
Bogart

Jul,1994

[0 after 0 votes]
5311572
Friedes
379/211.02
May,1994

[0 after 0 votes]
5247571
Kay
379/221.09
Sep,1993

[0 after 0 votes]
5239577
Bates
379/211.02
Aug,1993

[0 after 0 votes]
5136636
Wegrzynowicz
379/221.01
Aug,1992

[0 after 0 votes]
5097528
Gursahaney
379/88.21
Mar,1992

[0 after 0 votes]
4987587
Jolissaint
379/93.14
Jan,1991

[0 after 0 votes]
4924510
Le
379/221.09
May,1990

[0 after 0 votes]
4878240
Lin
379/88.22
Oct,1989

[0 after 0 votes]
4827500
Binkerd
379/88.01
May,1989

[0 after 0 votes]
4611096
Asmuth
379/201.02
Sep,1986

[0 after 0 votes]
4611094
Asmuth
379/201.03
Sep,1986

[0 after 0 votes]
4191860
Weber
379/115.01
Mar,1980

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B

[0 market size comments]
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 market share comments]
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 license availability comments]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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