WO1998041912A2 - Method and apparatus for adding new functionality to a headend - Google Patents

Method and apparatus for adding new functionality to a headend Download PDF

Info

Publication number
WO1998041912A2
WO1998041912A2 PCT/US1998/002964 US9802964W WO9841912A2 WO 1998041912 A2 WO1998041912 A2 WO 1998041912A2 US 9802964 W US9802964 W US 9802964W WO 9841912 A2 WO9841912 A2 WO 9841912A2
Authority
WO
WIPO (PCT)
Prior art keywords
level
headend system
headend
level instructions
ddl
Prior art date
Application number
PCT/US1998/002964
Other languages
French (fr)
Other versions
WO1998041912A3 (en
Inventor
Vincent Aumont
Samuel V. Cirka
Mark R. A. Heieis
Original Assignee
Scientific-Atlanta, Inc.
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 Scientific-Atlanta, Inc. filed Critical Scientific-Atlanta, Inc.
Publication of WO1998041912A2 publication Critical patent/WO1998041912A2/en
Publication of WO1998041912A3 publication Critical patent/WO1998041912A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]

Definitions

  • the invention generally relates to a headend management system. More particularly, the present invention is directed to a tool in the form of a data definition language which permits the addition of new functionality to an existing headend.
  • the present invention overcomes the problems associated with the prior art by providing a scheme which permits the rapid deployment of new devices and functionality in a headend regardless of the internal protocol of the headend and the device being deployed.
  • new devices and functionality can be integrated into a headend by using a text-based data definition language (DDL) and script language (e.g., tool command language (TCL)) in conjunction with a headend management system (HMS) and applications software.
  • DDL text-based data definition language
  • script language e.g., tool command language (TCL)
  • HMS headend management system
  • the text-based language allows a user to dynamically create a device driver and a graphical user display.
  • the implementation of the text-based language employs a text editor that creates ASCII files.
  • a headend management system (HMS) contains a command interpreter to recognize text, access procedures in the script corresponding to the text, and execute the procedures to read third party devices.
  • the ability to modify the headend and add new functionality can readily be placed in the hands of the customer (e.g., the headend operator).
  • the customer can modify and add new functionality into the HMS without being a programmer or having to recompile a program. For example, the customer does not need to be a full-fledged C++ interface programmer.
  • the customer has a tool which allows the entire headend to be integrated without the headend manufacturer having knowledge of proprietary protocols of devices manufactured by other vendors.
  • the customer can add support in the field for new devices and functionality which the headend manufacturer knows nothing about, as long as the customer has knowledge of the internal protocol of the new device.
  • the customer can go directly to the manufacturer of the device to be added and request the internal protocol associated with the device. Therefore, the device manufacturer can provide their proprietary protocol to the customer (e.g., under a non-disclosure agreement) so their devices can be implemented with another manufacturer's headend without the other manufacturer learning of the device manufacturer's protocol.
  • An illustrative headend system includes a device for providing a function for the headend system, the device having a protocol incompatible with the headend system, a host computer, operatively coupled to the device, and a user interface, operatively coupled to the host computer, for inputting a first high-level instruction and second high-level instructions to integrate the device with the headend system, the first high-level instruction being higher than the second high level instructions and the first high-level instruction identifying the second high-level instructions corresponding to the first high-level instruction.
  • the headend system also includes a first memory, operatively coupled to the host computer, for storing the first high-level instruction and a second memory, operatively coupled to the host computer, for storing the second high-level instructions.
  • the host computer accesses the first memory and second memory and converts the first high-level instruction to the second high-level instructions and executes the second high-level instructions to control the device.
  • the host computer can receive data from the device, interprets the data according to the second high-level instructions and modifies an attribute defined by the first high-level instruction.
  • the first high-level instruction can include plural first high-level instructions and the second high-level instructions can include sets of second high-level instructions corresponding to each of the first high-level instructions.
  • An exemplary method for adapting a device to a headend system having a protocol incompatible with the headend system includes several steps.
  • the steps include inputting a first high-level instruction and second high-level instructions, the first high-level instruction being higher than the second high level instructions and the first high-level instruction identifying the second high-level instructions corresponding to the first high-level instruction, storing the first high-level instruction and the second high-level instructions, converting the first high-level instruction to second high-level instructions, and executing the second high- level instructions to control the device.
  • Figure 1 is a functional block diagram of elements in a headend system according to an illustrative embodiment of the present invention.
  • Figure 2 is a flow diagram of an illustrative method for integrating a new device into a headend system according to the present invention.
  • Figure 3 is an illustrative graphical user interface according to the present invention.
  • the present invention is discussed below with reference to a headend for a cable or satellite television system. However, the present invention may be extended to applications such as power control systems and other systems where implementation of new devices or functionality requires substantial reconfiguration of the system. Exemplary functionality can include pure status monitoring and control at the simplest level to complex fault tolerance management and fault isolation. It should be understood that the present invention adapts to the new functionality and does not know what types of functionality may be integrated to the headend.
  • a module typically of the plug-in type, is used to add a new device and/or function to a headend.
  • the HMS headend management system
  • the HMS headend management system
  • many devices and functionality were incompatible with existing status monitoring/control software and required substantial reconfiguring, reprogramming, and recompiling to support new headend devices or functions in the headend.
  • the present invention facilitates the addition of new modules, i.e., new devices and functionalities. In static procedural programs, new devices cannot be implemented. However, the HMS allows new devices to be implemented.
  • Figure 1 shows an illustrative depiction of a portion of the headend system.
  • Figure 2 shows a flow diagram of the steps for an illustrative method of the present invention.
  • adding a new device 10 to the headend involves a series of steps.
  • the new device must be plugged in or otherwise connected to the headend in step SI shown in figure 2.
  • a new device (e.g., a third party device) 10 may be a circuit board which is adjacent to existing built-in (i.e., static) devices 20 and coupled to the host computer 40 (e.g., a motherboard) by a common bus 30 as shown in figure 1 or alternatively, a dedicated bus (not shown).
  • the HMS including an assembly/interpreter forms part of the host computer 40.
  • the HMS is a software program that allows users to integrate new devices into a system so that the headend operator can perform status monitoring and control of the new devices.
  • a user interface 50 Before, or in the alternative after, connecting the device to the HMS. instructions defining the new device 10 in two high-level definition languages must be input through a user interface 50 to the HMS in the host computer 40.
  • Exemplary user interfaces include, but are not restricted to, a keyboard, a mouse, trackball, and the like, and are implemented in conjunction with a display monitor in the user interface and display 50.
  • One high-level language is defined in the front end and a second is defined in a back end.
  • a text-based language which employs a text editor that creates ASCII files can be used to dynamically create a device driver and a graphical user display for the new device.
  • One exemplary text- based language is a data definition language (DDL) defined according to the present invention.
  • DDL data definition language
  • the DDL defines a graphic user interface (GUI), functionality, and attributes (those things which can be controlled by a headend operator) using a text file.
  • the DDL text files are definition files which define the attributes of the new device.
  • the front end basically defines what can be found in the new device.
  • the commonly known tool command language (TCL) may be employed.
  • TCL tool command language
  • the user defines TCL code for implementing protocol conversion and functionality.
  • the user inputs TCL script to provide instructions for controlling the new device and instructions including byte pattern information corresponding to the protocol of the device which allows the user to read the device or set command values for the device.
  • the TCL script can then decode and encode the protocol.
  • the DDL text files are high-level text (e.g., definition language) which point to addresses where TCL script is located and provide a template of what the new device can do and what type of data it has.
  • the script defines high-level macros which provide control features for the new device including, but not limited to, the device attributes, the names, controls, and monitoring points of the attributes, the I/O interfacing, an on/off switch, and the presentation of the device on the user interface.
  • the address of the TCL script is the beginning of a procedure (i.e., a series of instructions), which corresponds to the DDL text file.
  • a user defines the procedures for the new device in TCL script through the user interface 50 as shown in step S2.
  • the HMS 40 reads the TCL script and places the script in memory in step S3, which may, illustratively, be a procedure table 60 as shown in the figure 1.
  • the procedure table 60 maps high-level DDL text files to a series of instructions in TCL code corresponding to the DDL text files.
  • the DDL text files are defined via the user interface 50 in step S4 and stored in memory 70 in step S5. It should be understood that steps S2 and S3 can either precede or follow steps S4 and S5.
  • the memory 60 may be RAM, ROM, erasable memory and the like, and can the take the form of a dynamic or static storage device. However, in the event that future modification of the TCL script may be desired, a memory type which can be overwritten or erased is preferably employed. According to the illustrative implementation of the present invention described above with respect to figure 1. the memory 60 is configured as a procedure table similar to a database. The memory 70, like the memory 60. may take on a variety of memory types.
  • the HMS 40 polls the system or otherwise operates, it recognizes that a new script file associated with a new device has been added to the headend.
  • the HMS of the host computer 40 retrieves the DDL text file from memory 70 and reads the DDL text file. Then, HMS 40 accesses the TCL script corresponding to the DDL text file stored in the procedure table 60. The assembly/interpreter in the HMS 40 parses the DDL text file and creates a C++ interface to a TCL procedure table 60.
  • step S7 when HMS 40 accesses the procedure table 60, DDL text files are converted to TCL procedure.
  • the assembly/interpreter e.g., a command interpreter
  • the HMS 40 interprets the TCL script in the procedure table 60 corresponding to the DDL text file and executes the procedure defined by the TCL script to control and otherwise adapt the new device to the headend. Instructions are communicated to and from the new device over the communication bus 30. Thus, the device is integrated into the headend.
  • the HMS 40 is a distributed object-oriented system, so the new device becomes publicly available across the system. Consequently, high-level macros in TCL and high-level text files in DDL can be written to control new or third party devices.
  • the HMS 40 serves as a "traffic cop" or conduit for communication to/from the DDL text from/to the TCL script and to/from the TCL script from/to the new device.
  • the HMS is similar to a word processor or spreadsheet in that the HMS knows nothing about the devices involved.
  • the HMS has no knowledge about devices that are in the headend, such as how the devices are connected, the function of the devices, and the unique attributes of the device.
  • a new device may have on/off control, output loss control, input loss control, and power ON criteria which must be defined.
  • the user defining the new device may create a DDL text file called POWER STATE.
  • TCL code the user would create a procedure in TCL script.
  • POWER STATE refers to a procedure in TCL code defined in TCL script.
  • the assembly/interpreter of the HMS 40 interprets the TCL script in the procedure table 60 corresponding to POWER STATE and executes the procedure defined by the TCL script to control the power state of the new device.
  • the TCL script corresponding to POWER STATE builds the appropriate bit map for the device protocol so that the power state attribute of the device can be manipulated.
  • the TCL script when executed places the data defined in the DDL text in the appropriate place in the bit stream and creates the appropriate bit map to allow the device to be controlled.
  • information can be received from the device performing the reverse process described with respect to the power state. For example, if the user requests status information from the device, for example using a READSTATUS command, the device acknowledges receipt and sends back a byte pattern representing the status state. Then, the assembly/interpreter in HMS would disassemble the bit pattern and interpret the read status information from the device in accordance with the READSTATUS script. Next, the assembly/interpreter presents the status state information to the DDL. That is, the appropriate values of the read status attribute are set in the DDL.
  • the DDL is a distributed object oriented database based on ASCII files with a variety of features.
  • the DDL contains no functioning code.
  • the DDL is used for parametrization (configuration), as a generic database for headend operators, and as a specialized database for devices, channels, alarms, backup, etc.
  • the DDL is used as a graphic user interface (GUI) definition language.
  • GUI graphic user interface
  • a resource is the most elementary piece of data in DDL.
  • a resource is never declared independently of any other data. Rather, a resource is part of a more complex structure such as a class or singleton.
  • a class is a group of resources that define a new type (a functional device such as a toaster, modulator, upconverter, etc.).
  • a type defines all the attributes of a device (e.g., a modulator).
  • An instance is an occurrence of a type, for example different instances of a modulator correspond to individual channels such as HBO, ESPN, etc.
  • a group of channels may then all use the same class definition type, but they would represent different instances of the type.
  • a singleton is a class that has one single instance and is a way to group related parameters. The single instance does not need to be declared because its name is the same as the class name.
  • a device class is a specialized class to define devices.
  • a schema is a class, device or singleton.
  • a resource may have four values including a real value, a temporary value, an initial value and a last value.
  • a domain defines a set of values and can be a range (e.g., integers between 20 and 29), an enumeration (e.g., the floats 1.2, 4.67, and 4.0), or a regular expression.
  • a tag is a free format string which is attached to each instance and resource.
  • the DDL provides several interesting features. In a dynamic data definition, schemas are interpreted, not compiled.
  • the HMS provides a DDL-TCL bridge which enables the TCL scripts to manipulate DDL objects.
  • a user of DDL can dynamically build GUI panels for data editing.
  • the DDL also provides an IDL (interface definition language) interface which allows object (an object is an instance as described above) distribution on a CORBA (common object request broker architecture) bus.
  • IDL and CORBA are defined in the OMG (object management group) CORBA 2.0 specification, and readily known and available to those of ordinary skill in the art.
  • the HMS contains a process called a DDL server that manages (reads, writes, distributes) DDL objects and executes TCL scripts to manipulate the objects.
  • the DDL server can serve many classes, devices, and singletons. Each class, device and singleton is served by one DDL server.
  • DDL is a text-based language which employs a text editor that creates ASCII files.
  • the DDL contains three types of DDL text files including declaration files, GUI files, and data files.
  • Declaration files contain data definitions and their default value settings.
  • the GUI files describe how the data is presented to the user for editing.
  • Data files contain data and can be edited.
  • Declaration and GUI files cannot be edited, and are manually created and maintained.
  • DDL includes reserved words such as class, instance, int, string boolean, etc.
  • DDL identifiers may contain letters (a to z or A to Z), numbers (0 to 9), and underlines and either start with a letter or an underline.
  • the syntax for an identifier is "[a-zA-Z_].[a-zA- Z0-9J”.
  • Domains can be defined as "range ⁇ min, max>” where min or max can be omitted. Some examples include “range ⁇ 10,100>” (integer between 10 and 10), and “range ⁇ 5.3,>” (float > 5.3). Also, a domain can be defined as an enumeration as "in ⁇ valuel, value2, ..., valueN ⁇ ” or as a regular expression (regexp). Examples of enumerations include “in ⁇ 1, 3, 5, 9 ⁇ ” and “in ⁇ "toto", “titi", “tata” ⁇ ”.
  • scalar resource There may be several basic scalar types such as int, float, string, multi-string, and boolean.
  • Boolean scalars have no validation range.
  • typedef introduces a new type that can be used anywhere in the DDL file.
  • Typedefs are not GUI editable.
  • a method is a behavior attached to a class by calling a TCL script. Before the TCL script is executed, a global TCL variable is set to the instance on which the method has been called so that the script can manipulate the state of the instance.
  • An IDL interface exists to call a method on an instance, for example: "my_class->CallMethod
  • an action can be attached to a resource.
  • An action defines the behavior of the application whenever the (real) value of a resource changes.
  • An instance declaration can override an 'action domain' definition, but cannot declare a new action.
  • Devices are a special kind of class.
  • all devices inherit from the class SADevice (e.g., a Scientific-Atlanta, Inc. device).
  • SADevice e.g., a Scientific-Atlanta, Inc. device.
  • SADevice may be defined as a standard schema.
  • DDL objects can be accessed through an IDL interface.
  • the granularity for the IDL interface is the instance/device/singleton. There is no IDL interface for resources which are accessed through their class.
  • An example of IDL mapping and distribution is set forth below. interface Class ⁇
  • the assembly/interpreter in the HMS 40 includes a DDL parser which parses DDL text files and creates the corresponding C++ and TCL object.
  • the DDL parser tries to ignore errors in files. For data definition errors (e.g., wrong field name, variable), the parser ignores the errors, but issues a warning and continues parsing the file. When the parser finds a syntax error, it stops parsing the file.
  • a TCL interpreter is embedded in each DDL server. As discussed previously, the DDL server runs a TCL script that manipulates DDL objects. For each DDL object, the DDL interpreter creates C++ and TCL objects. Thus, a linkage is created from DDL to TCL via the
  • TCL command exists for each object.
  • the command name is the object's id.
  • C++ instance has a unique ID of the form: " ⁇ class/singleton/device name> ⁇ an_ unsigned long>”.
  • TCL methods For each TCL class or device, the following TCL methods are defined: get nstances : return a list of TCL instances. The syntax is " ⁇ class_ id> getjnstances”. For each of the instances and singletons, the following illustrative methods may be defined.
  • DDL can provide GUI files to define DDL panels or screens generated by HMS.
  • a DDL panel is a graphical interface that allows displaying and editing of
  • DDL data In a DDL panel, only one instance can be displayed and edited at a time. Since a
  • DDL resource has four values (default, initial, actual, intermediate), there are sixteen combinations of display/edit values which leads to sixteen possible DDL panels. Three relevant combinations are listed in the table below.
  • Figure 3 provides an illustrative representation of a DDL control panel.
  • a DDL panel is divided into four areas including panel identification, instance identification, edit area, and command area.
  • the panel identification identifies the title of the panel. For example, in figure 3, the panel title is "control" displayed on the panel title bar.
  • the instance identification is the level at the top of the window that identifies which instance is being edited.
  • the instance being edited in figure 3 is Status which is highlighted.
  • the edit area is something that resembles a tab widget and is the area of the screen containing the resources and their present values as shown in figure 3.
  • the number of tabs and their contents is defined by DDL GUI text.
  • Each tab contains a subset of class resources.
  • the tabs defined in figure 3 include status, info, options, misc setup, audio, video, etc.
  • For each resource a label for the name of the resource and a label for the value of the resource (for lists a list widget) is included. In figure 3, several resources are listed including RF, IF, VMOD, etc. and their values are 0.000000.
  • the resource is RW (i.e., read/write) then it can be edited using an edit widget. If the resource has a validation set, the edit widget is a combo box, and if it does not have a validation set, the edit widget depends on the resource's type and the user preferences. The table below shows the resource type and the available edit widget.
  • the command area provides a set of buttons at the bottom of the window as shown in Figure 3.
  • Exemplary buttons include [ok] which sends the contents of the edit widgets to the DDL server, [cancel] which closes the panel, and [clear] which clears all edit widgets.
  • the [ok] and [cancel] buttons are found in the command area.
  • a panel definition language in DDL describes the DDL panel layouts and behavior including what (real, default, intermediate, initial) are displayed/edited, how the tabs are organized, how the resources are displayed/edited (text, slider, toggle, etc.), and the resource mode.
  • the resource mode may be read only (RO) or read/write (RW).
  • RO read only
  • RW read/write
  • InstancelD name // the name of the resource used to identify the instance displays REAL; // displays the real edits INTERMEDIATE; //
  • a resource can be added to an already defined panel without having to modify the original file by using the extend feature.
  • DDL can be used to define classes.
  • the DDL also can define panels as just discussed. The panel is built on top of the class and is a mirror image of the class.
  • the GUI definition files point to macros in TCL script.
  • the TCL script through HMS generates the panels for the GUI.
  • the panels will include all the DDL data defined in the DDL text field for the particular instance defined in the GUI data.
  • fields defined in the GUI will appear on the screen. For example, in figure 3, in the GUI definition, the user has defined the attribute RF for the instance status to appear. If the user modifies a field, the value of the attribute is then modified in the DDL text file.
  • the GUI can serve two functions. It provides an easy mechanism to allow the user to modify the values of attributes and it can display the current state of the attributes of a device.
  • a schematic representation of the device functionality and interconnections could also be displayed and modified using a GUI.

Abstract

A headend system can be adapted to include a third party device. The system includes a device for providing a function for the headend system, the device having protocol incompatible with the headend system, host computer (40), operatively coupled to the device, and user interface (50) for inputting a first high-level instruction and second high-level instruction to integrate the device with the headend system, first high-level instructions being higher than second high-level instructions and first high-level instructions identifying second high-level instructions corresponding to first high-level instructions. The headend system also includes a first memory (70) for storing first high-level instructions and a second memory (60) for storing second high-level instructions. The host computer (40) accesses memories (70, 60) and converts the first high-level instruction to the second high-level instruction and executes the second high-level instructions to control the device. The first high-level instructions may be in a text language and the second high-level instructions can be in a script language.

Description

METHOD AND APPARATUS FOR ADDING NEW FUNCTIONALITY TO A HEADEND
FIELD OF INVENTION
The invention generally relates to a headend management system. More particularly, the present invention is directed to a tool in the form of a data definition language which permits the addition of new functionality to an existing headend.
BACKGROUND OF INVENTION
In the past, to adapt new products into an existing headend system, software engineers were required to write new code and device drivers for the new product and integrate new code into the core product or headend. Existing headends are fixed so that new functions and devices cannot be integrated into the system without overhauling the system, resulting in significant changes to the core product or headend. Typically, functionality and devices are implemented statically into software applications. That is, the functionality is built into the system. Thus, customers have no ability to add, subtract, or otherwise manipulate the functionality of the headend. Illustrative conventional headends include the IH-2000 Intelligent Headend Manager and Headend Manager products manufactured by Scientific- Atlanta, Inc.
Conventionally, when a new function or device is integrated into a headend, it must be built into the system. Thus, the headend manufacturer must redesign and reconfigure the headend to implement the software and/or hardware necessary. Typically, such a task can take multiple months to complete. Absent such recompiling and reconfiguring, the headend will not know the device protocol for exchange of data and device control. Consequently, the desired functionality cannot be implemented. The headend requires software development units (SDUs) and tools to create graphic displays and device drivers for third party devices. SDUs with a compiler and library add the new functionality of the third party devices.
The continued rapid evolution of devices and functionality has made it difficult to keep up with the changing designs and functionalities. These new design modifications and revisions can be implemented during product development at undesirable times. Also, the new design modifications cause unplanned increases in manufacturing costs and delays in product roll out.
Customers commonly look at several different competing headend products and often desire a system that incorporates the best features and functionalities from each of the products. However, the devices of the various headend vendors are incompatible and cannot be integrated. Moreover, there is a reluctance among the various headend vendors to share their proprietary internal protocols so that their devices and functions can be incorporated in the headends of competitors. Consequently, customers are left with no choice, but to implement the fixed functionality of a single manufacturer's headend.
SUMMARY OF THE INVENTION
The present invention overcomes the problems associated with the prior art by providing a scheme which permits the rapid deployment of new devices and functionality in a headend regardless of the internal protocol of the headend and the device being deployed.
With the present invention, new devices and functionality can be integrated into a headend by using a text-based data definition language (DDL) and script language (e.g., tool command language (TCL)) in conjunction with a headend management system (HMS) and applications software. The HMS is a software program that allows users to integrate new devices into a system so that the headend operator can perform status monitoring and control of the new devices. The text-based language allows a user to dynamically create a device driver and a graphical user display. The implementation of the text-based language employs a text editor that creates ASCII files. A headend management system (HMS) contains a command interpreter to recognize text, access procedures in the script corresponding to the text, and execute the procedures to read third party devices.
Integration of new functionality and devices using the present invention is far less complex and faster than existing options. More importantly, the ability to modify the headend and add new functionality can readily be placed in the hands of the customer (e.g., the headend operator). The customer can modify and add new functionality into the HMS without being a programmer or having to recompile a program. For example, the customer does not need to be a full-fledged C++ interface programmer. Moreover, the customer has a tool which allows the entire headend to be integrated without the headend manufacturer having knowledge of proprietary protocols of devices manufactured by other vendors. The customer can add support in the field for new devices and functionality which the headend manufacturer knows nothing about, as long as the customer has knowledge of the internal protocol of the new device. Thus, the customer can go directly to the manufacturer of the device to be added and request the internal protocol associated with the device. Therefore, the device manufacturer can provide their proprietary protocol to the customer (e.g., under a non-disclosure agreement) so their devices can be implemented with another manufacturer's headend without the other manufacturer learning of the device manufacturer's protocol.
An illustrative headend system according to the present invention includes a device for providing a function for the headend system, the device having a protocol incompatible with the headend system, a host computer, operatively coupled to the device, and a user interface, operatively coupled to the host computer, for inputting a first high-level instruction and second high-level instructions to integrate the device with the headend system, the first high-level instruction being higher than the second high level instructions and the first high-level instruction identifying the second high-level instructions corresponding to the first high-level instruction. The headend system also includes a first memory, operatively coupled to the host computer, for storing the first high-level instruction and a second memory, operatively coupled to the host computer, for storing the second high-level instructions. The host computer accesses the first memory and second memory and converts the first high-level instruction to the second high-level instructions and executes the second high-level instructions to control the device.
The host computer can receive data from the device, interprets the data according to the second high-level instructions and modifies an attribute defined by the first high-level instruction. Also, the first high-level instruction can include plural first high-level instructions and the second high-level instructions can include sets of second high-level instructions corresponding to each of the first high-level instructions.
An exemplary method for adapting a device to a headend system having a protocol incompatible with the headend system includes several steps. The steps include inputting a first high-level instruction and second high-level instructions, the first high-level instruction being higher than the second high level instructions and the first high-level instruction identifying the second high-level instructions corresponding to the first high-level instruction, storing the first high-level instruction and the second high-level instructions, converting the first high-level instruction to second high-level instructions, and executing the second high- level instructions to control the device.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will now be described in more detail with reference to preferred embodiments of the invention, given only by way of example, and illustrated in the Oaccompanying drawings in which:
Figure 1 is a functional block diagram of elements in a headend system according to an illustrative embodiment of the present invention.
Figure 2 is a flow diagram of an illustrative method for integrating a new device into a headend system according to the present invention.
Figure 3 is an illustrative graphical user interface according to the present invention.
DETAILED DESCRIPTION
The present invention is discussed below with reference to a headend for a cable or satellite television system. However, the present invention may be extended to applications such as power control systems and other systems where implementation of new devices or functionality requires substantial reconfiguration of the system. Exemplary functionality can include pure status monitoring and control at the simplest level to complex fault tolerance management and fault isolation. It should be understood that the present invention adapts to the new functionality and does not know what types of functionality may be integrated to the headend.
A module, typically of the plug-in type, is used to add a new device and/or function to a headend. The HMS (headend management system) integrates a device into the headend so that it can be controlled and otherwise adapted to function with the HMS and other devices in the headend. Until the present invention, many devices and functionality were incompatible with existing status monitoring/control software and required substantial reconfiguring, reprogramming, and recompiling to support new headend devices or functions in the headend. The present invention facilitates the addition of new modules, i.e., new devices and functionalities. In static procedural programs, new devices cannot be implemented. However, the HMS allows new devices to be implemented. Figure 1 shows an illustrative depiction of a portion of the headend system. Figure 2 shows a flow diagram of the steps for an illustrative method of the present invention.
According to the present invention, adding a new device 10 to the headend involves a series of steps. The new device must be plugged in or otherwise connected to the headend in step SI shown in figure 2. A new device (e.g., a third party device) 10 may be a circuit board which is adjacent to existing built-in (i.e., static) devices 20 and coupled to the host computer 40 (e.g., a motherboard) by a common bus 30 as shown in figure 1 or alternatively, a dedicated bus (not shown). The HMS including an assembly/interpreter forms part of the host computer 40. The HMS is a software program that allows users to integrate new devices into a system so that the headend operator can perform status monitoring and control of the new devices.
Before, or in the alternative after, connecting the device to the HMS. instructions defining the new device 10 in two high-level definition languages must be input through a user interface 50 to the HMS in the host computer 40. Exemplary user interfaces include, but are not restricted to, a keyboard, a mouse, trackball, and the like, and are implemented in conjunction with a display monitor in the user interface and display 50.
One high-level language is defined in the front end and a second is defined in a back end. According to an embodiment of the present invention, in the front end. a text-based language which employs a text editor that creates ASCII files can be used to dynamically create a device driver and a graphical user display for the new device. One exemplary text- based language is a data definition language (DDL) defined according to the present invention. Although the invention is described with reference to using the DDL, it should be understood that one skilled in the art could develop and employ another high-level language to define the text language for adding a new device.
In the front end, the DDL defines a graphic user interface (GUI), functionality, and attributes (those things which can be controlled by a headend operator) using a text file. The DDL text files are definition files which define the attributes of the new device. The front end basically defines what can be found in the new device. In the back end, the commonly known tool command language (TCL) may be employed. The user defines TCL code for implementing protocol conversion and functionality. The user inputs TCL script to provide instructions for controlling the new device and instructions including byte pattern information corresponding to the protocol of the device which allows the user to read the device or set command values for the device. The TCL script can then decode and encode the protocol. The DDL text files are high-level text (e.g., definition language) which point to addresses where TCL script is located and provide a template of what the new device can do and what type of data it has. The script defines high-level macros which provide control features for the new device including, but not limited to, the device attributes, the names, controls, and monitoring points of the attributes, the I/O interfacing, an on/off switch, and the presentation of the device on the user interface. The address of the TCL script is the beginning of a procedure (i.e., a series of instructions), which corresponds to the DDL text file.
A user defines the procedures for the new device in TCL script through the user interface 50 as shown in step S2. The HMS 40 reads the TCL script and places the script in memory in step S3, which may, illustratively, be a procedure table 60 as shown in the figure 1. The procedure table 60 maps high-level DDL text files to a series of instructions in TCL code corresponding to the DDL text files. The DDL text files are defined via the user interface 50 in step S4 and stored in memory 70 in step S5. It should be understood that steps S2 and S3 can either precede or follow steps S4 and S5.
The memory 60 may be RAM, ROM, erasable memory and the like, and can the take the form of a dynamic or static storage device. However, in the event that future modification of the TCL script may be desired, a memory type which can be overwritten or erased is preferably employed. According to the illustrative implementation of the present invention described above with respect to figure 1. the memory 60 is configured as a procedure table similar to a database. The memory 70, like the memory 60. may take on a variety of memory types.
After the instructions for the new device have been defined, when the HMS 40 polls the system or otherwise operates, it recognizes that a new script file associated with a new device has been added to the headend. Next, at step S6, the HMS of the host computer 40 retrieves the DDL text file from memory 70 and reads the DDL text file. Then, HMS 40 accesses the TCL script corresponding to the DDL text file stored in the procedure table 60. The assembly/interpreter in the HMS 40 parses the DDL text file and creates a C++ interface to a TCL procedure table 60.
At step S7. when HMS 40 accesses the procedure table 60, DDL text files are converted to TCL procedure. At step S8, the assembly/interpreter (e.g., a command interpreter) of the HMS 40 interprets the TCL script in the procedure table 60 corresponding to the DDL text file and executes the procedure defined by the TCL script to control and otherwise adapt the new device to the headend. Instructions are communicated to and from the new device over the communication bus 30. Thus, the device is integrated into the headend. The HMS 40 is a distributed object-oriented system, so the new device becomes publicly available across the system. Consequently, high-level macros in TCL and high-level text files in DDL can be written to control new or third party devices.
The HMS 40 serves as a "traffic cop" or conduit for communication to/from the DDL text from/to the TCL script and to/from the TCL script from/to the new device. In high-level terms, the HMS is similar to a word processor or spreadsheet in that the HMS knows nothing about the devices involved. The HMS has no knowledge about devices that are in the headend, such as how the devices are connected, the function of the devices, and the unique attributes of the device.
Illustratively, a new device may have on/off control, output loss control, input loss control, and power ON criteria which must be defined. The user defining the new device may create a DDL text file called POWER STATE. In TCL code, the user would create a procedure in TCL script. Thus, when the power state is defined in DDL text. POWER STATE refers to a procedure in TCL code defined in TCL script. When the HMS 40 recognizes that a new file exists (i.e., new device or functionality has been added), it retrieves the POWER STATE file from memory 70, reads the POWER STATE file and accesses the TCL script corresponding to POWER STATE stored in the procedure table 60. The assembly/interpreter of the HMS 40 interprets the TCL script in the procedure table 60 corresponding to POWER STATE and executes the procedure defined by the TCL script to control the power state of the new device. The TCL script corresponding to POWER STATE builds the appropriate bit map for the device protocol so that the power state attribute of the device can be manipulated. Thus, the TCL script when executed places the data defined in the DDL text in the appropriate place in the bit stream and creates the appropriate bit map to allow the device to be controlled.
Similarly, information can be received from the device performing the reverse process described with respect to the power state. For example, if the user requests status information from the device, for example using a READSTATUS command, the device acknowledges receipt and sends back a byte pattern representing the status state. Then, the assembly/interpreter in HMS would disassemble the bit pattern and interpret the read status information from the device in accordance with the READSTATUS script. Next, the assembly/interpreter presents the status state information to the DDL. That is, the appropriate values of the read status attribute are set in the DDL.
The DDL is a distributed object oriented database based on ASCII files with a variety of features. The DDL contains no functioning code. The DDL is used for parametrization (configuration), as a generic database for headend operators, and as a specialized database for devices, channels, alarms, backup, etc. Also, the DDL is used as a graphic user interface (GUI) definition language.
Associated with DDL are concepts and definitions. A resource is the most elementary piece of data in DDL. A resource is never declared independently of any other data. Rather, a resource is part of a more complex structure such as a class or singleton. A class is a group of resources that define a new type (a functional device such as a toaster, modulator, upconverter, etc.). A type defines all the attributes of a device (e.g., a modulator). An instance is an occurrence of a type, for example different instances of a modulator correspond to individual channels such as HBO, ESPN, etc. A group of channels may then all use the same class definition type, but they would represent different instances of the type. A singleton is a class that has one single instance and is a way to group related parameters. The single instance does not need to be declared because its name is the same as the class name. A device class is a specialized class to define devices. A schema is a class, device or singleton.
A resource may have four values including a real value, a temporary value, an initial value and a last value. A domain defines a set of values and can be a range (e.g., integers between 20 and 29), an enumeration (e.g., the floats 1.2, 4.67, and 4.0), or a regular expression. A tag is a free format string which is attached to each instance and resource.
The DDL provides several interesting features. In a dynamic data definition, schemas are interpreted, not compiled. The HMS provides a DDL-TCL bridge which enables the TCL scripts to manipulate DDL objects. A user of DDL can dynamically build GUI panels for data editing. The DDL also provides an IDL (interface definition language) interface which allows object (an object is an instance as described above) distribution on a CORBA (common object request broker architecture) bus. IDL and CORBA are defined in the OMG (object management group) CORBA 2.0 specification, and readily known and available to those of ordinary skill in the art.
The HMS contains a process called a DDL server that manages (reads, writes, distributes) DDL objects and executes TCL scripts to manipulate the objects. The DDL server can serve many classes, devices, and singletons. Each class, device and singleton is served by one DDL server.
As discussed previously, DDL is a text-based language which employs a text editor that creates ASCII files. In an illustrative embodiment, the DDL contains three types of DDL text files including declaration files, GUI files, and data files. Declaration files contain data definitions and their default value settings. The GUI files describe how the data is presented to the user for editing. Data files contain data and can be edited. Declaration and GUI files cannot be edited, and are manually created and maintained.
The syntax of DDL includes reserved words such as class, instance, int, string boolean, etc. DDL identifiers may contain letters (a to z or A to Z), numbers (0 to 9), and underlines and either start with a letter or an underline. The syntax for an identifier is "[a-zA-Z_].[a-zA- Z0-9J".
Domains can be defined as "range <min, max>" where min or max can be omitted. Some examples include "range <10,100>" (integer between 10 and 10), and "range <5.3,>" (float > 5.3). Also, a domain can be defined as an enumeration as "in {valuel, value2, ..., valueN}" or as a regular expression (regexp). Examples of enumerations include "in { 1, 3, 5, 9}" and "in {"toto", "titi", "tata"}".
There may be several basic scalar types such as int, float, string, multi-string, and boolean. The syntax for a scalar resource is "<type> <resource_name> [<validation_domain>] = <default.value>". Some examples include "int AFC in {0, 1, 2} = 3", "float frequency range <0,100>", "int bar range <0,>", "string AFC in {"OFF". "AVG", "XXX"} = "no. name"", and "boolean lets_go = true". Boolean scalars have no validation range.
List resources are a collection of scalar values with domain definitions. Lists are dynamic so the number of elements is not fixed. Examples of list resources include "list string users = {"toto", "titi", "tata"}" and "list int buttonstate {2, 4. 6, 8} = {4,8}".
The word "typedef introduces a new type that can be used anywhere in the DDL file. An example would be "typedef int freq_ range range <0,100> =0". The syntax for a typedef type is "like <type> name [ = <value>]" and examples include "like freq. range freq =3" and "like freq_range freq". Typedefs are not GUI editable.
An example of a class definition is shown below. class user string name : int age =12;
An example of a singleton definition is depicted below. typedef phoneNumber regexp "([0-9] {3}) [0-9] {7}"; singleton fax { type phoneNumber number; string [] dest ist; }
A method is a behavior attached to a class by calling a TCL script. Before the TCL script is executed, a global TCL variable is set to the instance on which the method has been called so that the script can manipulate the state of the instance. An example of a method is shown below. class Foo { int i <0,100> = 40; method print executes "print foo.tcl";
};
An IDL interface exists to call a method on an instance, for example: "my_class->CallMethod
("meeting", "Sam Mark Vincent")"; where "Sam Mark Vincent" may be client data for the TCL script.
According to one embodiment of the DDL, an action can be attached to a resource. An action defines the behavior of the application whenever the (real) value of a resource changes.
If the action specifies a domain, it is executed only if the value enters or leaves the domain.
Several actions can be attached to the same value. When a real value is modified, all actions attached to it are examined and processed. An example is shown below. class Heater { int temp <0.100> = 12; float freq <0.123> = 2,21 action LT when temp crosses <0,10> executes "heater.alarm.tempLow"; action HT when temp crosses <90,100> executes "heater.alarm.tempHigh"; action NT when temp crosses <15,20> executes "heater.alarm.tempNorm"; action TEMP when freq changes executes "freq. alarm";
}; An instance declaration can override an 'action domain' definition, but cannot declare a new action.
Inheritance allows a new schema to be created by specializing an existing schema. An example is set forth below. class MODULATOR momjs SaDevice { freq
} ;
Multiple inheritance is not available in the above embodiment of DDL, so only one mom exists. However, one skilled in the art could design a text language where multiple moms exist. It is possible to provide for a schema extension by adding resources to a previously declared schema. In contrast to inheritance, schema extension does not result in the creation of a new schema. The schema extension feature allows a user to modify the DDL predefined classes without having to modify other DDL text files. An example of a schema extension is set forth below.
extend class USER { int salary <100 000, > = 150000;
};
When an instance is declared, all its resources are set to the default values specified in the class declaration. However, some values may be overridden in the instance declaration.
The syntax is shown below instance <class_name> [<instance_id>] [ { [<resource_name> = <value>;] } ];
The following code creates two instances of the class MODULATOR. instance MODULATOR { freq = 12;
} instance MODULATOR mod2 { freq = 12; }
For singletons, the syntax is the same, but an additional instance is not created. Instead, the mono-instance is overridden.
Devices are a special kind of class. In this illustrative embodiment of the present invention, all devices inherit from the class SADevice (e.g., a Scientific-Atlanta, Inc. device). Thus, for a Scientific-Atlanta, Inc. system SADevice may be defined as a standard schema.
In a class or device, if the word 'key' precedes a resource declaration, the resource becomes the key for that class or device. Two instances cannot have the same value for that resource and a class or device cannot have more than one key.
DDL objects can be accessed through an IDL interface. The granularity for the IDL interface is the instance/device/singleton. There is no IDL interface for resources which are accessed through their class. An example of IDL mapping and distribution is set forth below. interface Class {
Instance Getlnstance (I) Instance Getlnstance (ID)
} interface Interface {
Setlnt
SetString
SetBoolean \ I
If two or more users are looking at the same data and the value of the data changes, the change will affect each user concurrently.
The assembly/interpreter in the HMS 40 includes a DDL parser which parses DDL text files and creates the corresponding C++ and TCL object. The DDL parser tries to ignore errors in files. For data definition errors (e.g., wrong field name, variable), the parser ignores the errors, but issues a warning and continues parsing the file. When the parser finds a syntax error, it stops parsing the file.
A TCL interpreter is embedded in each DDL server. As discussed previously, the DDL server runs a TCL script that manipulates DDL objects. For each DDL object, the DDL interpreter creates C++ and TCL objects. Thus, a linkage is created from DDL to TCL via the
C++. Several examples are provided below in the table.
DDL object C++ instance TCL object class toto SaClass object 'toto' device toaster Device object 'toaster' singleton param Singleton object 'param' instance ... Instance object '<instance's internal id>'
In fact, a TCL command exists for each object. The command name is the object's id. Each
C++ instance has a unique ID of the form: "<class/singleton/device name><an_ unsigned long>". For each TCL class or device, the following TCL methods are defined: get nstances : return a list of TCL instances. The syntax is "<class_ id> getjnstances". For each of the instances and singletons, the following illustrative methods may be defined.
- set, get : to change/retrieve the real value
- seUmp, get_tmp
- set_last, geUast
- seUnitial, geunitial - tag
As noted earlier, the DDL can provide GUI files to define DDL panels or screens generated by HMS. A DDL panel is a graphical interface that allows displaying and editing of
DDL data. In a DDL panel, only one instance can be displayed and edited at a time. Since a
DDL resource has four values (default, initial, actual, intermediate), there are sixteen combinations of display/edit values which leads to sixteen possible DDL panels. Three relevant combinations are listed in the table below.
Display Edit Application Panel type real intermediate device control control panel initial initial device configuration config panel real real parameters, users, etc. edit panel
Figure 3 provides an illustrative representation of a DDL control panel.
A DDL panel is divided into four areas including panel identification, instance identification, edit area, and command area. The panel identification identifies the title of the panel. For example, in figure 3, the panel title is "control" displayed on the panel title bar.
The instance identification is the level at the top of the window that identifies which instance is being edited. The instance being edited in figure 3 is Status which is highlighted. The edit area is something that resembles a tab widget and is the area of the screen containing the resources and their present values as shown in figure 3. The number of tabs and their contents is defined by DDL GUI text. Each tab contains a subset of class resources. The tabs defined in figure 3 include status, info, options, misc setup, audio, video, etc. For each resource, a label for the name of the resource and a label for the value of the resource (for lists a list widget) is included. In figure 3, several resources are listed including RF, IF, VMOD, etc. and their values are 0.000000. If the resource is RW (i.e., read/write) then it can be edited using an edit widget. If the resource has a validation set, the edit widget is a combo box, and if it does not have a validation set, the edit widget depends on the resource's type and the user preferences. The table below shows the resource type and the available edit widget.
Resource type possible edit widget int text, slider float text, slider string Mono/multi line text editor boolean two radio buttons static lists a list widget dynamic lists a text for the number of elements
The command area provides a set of buttons at the bottom of the window as shown in Figure 3. Exemplary buttons include [ok] which sends the contents of the edit widgets to the DDL server, [cancel] which closes the panel, and [clear] which clears all edit widgets. In figure 3, the [ok] and [cancel] buttons are found in the command area.
A panel definition language in DDL describes the DDL panel layouts and behavior including what (real, default, intermediate, initial) are displayed/edited, how the tabs are organized, how the resources are displayed/edited (text, slider, toggle, etc.), and the resource mode. The resource mode may be read only (RO) or read/write (RW). An illustrative syntax for a modulator is shown below.
Interface control for Modulator {
PanellD "Control"; // the string displayed on the panel title bar
InstancelD name; // the name of the resource used to identify the instance displays REAL; // displays the real edits INTERMEDIATE; //
// tabs definition section AUDIO { left RW slider right RW editor mono RW editor
} section NOTES { notes RW multi lines section MISC { tmp RO }
For classes, a resource can be added to an already defined panel without having to modify the original file by using the extend feature.
As mentioned previously, DDL can be used to define classes. The DDL also can define panels as just discussed. The panel is built on top of the class and is a mirror image of the class.
As with the DDL text files described previously, the GUI definition files point to macros in TCL script. The TCL script through HMS generates the panels for the GUI. The panels will include all the DDL data defined in the DDL text field for the particular instance defined in the GUI data. As described, fields defined in the GUI will appear on the screen. For example, in figure 3, in the GUI definition, the user has defined the attribute RF for the instance status to appear. If the user modifies a field, the value of the attribute is then modified in the DDL text file.
The GUI can serve two functions. It provides an easy mechanism to allow the user to modify the values of attributes and it can display the current state of the attributes of a device.
In another embodiment, a schematic representation of the device functionality and interconnections could also be displayed and modified using a GUI.
While particular embodiments of the present invention have been described and illustrated, it should be understood that the invention is not limited thereto since modifications may be made by persons skilled in the art. The present application contemplates any and all modifications that fall within the spirit and scope of the underlying invention disclosed and claimed herein.

Claims

WHAT IS CLAIMED IS:
1. A headend system comprising: a device for providing a function for the headend system, said device having a protocol incompatible with said headend system; a host computer, operatively coupled to said device; a user interface, operatively coupled to said host computer, for inputting a first high- level instruction and second high-level instructions to integrate said device with said headend system, the first high-level instruction being higher than the second high level instructions and the first high-level instruction identifying the second high-level instructions corresponding to the first high-level instruction; a first memory, operatively coupled to said host computer, for storing the first high- level instruction; and a second memory, operatively coupled to said host computer, for storing the second high-level instructions, and wherein said host computer accesses said first memory and second memory and converts the first high-level instruction to the second high-level instructions and executes the second high- level instructions to control said device.
2. The headend system according to claim 1, wherein the second high-level instructions include a script file.
3. The headend system according to claim 1, wherein the first high-level instruction is a text file.
4. The headend system according to claim 1, wherein the second high-level instructions comprise tool command language (TCL) instructions.
5. The headend system according to claim 1, wherein said host computer includes an assembly interpreter for interpreting and executing the second high-level instructions.
6. The headend system according to claim 1 , wherein the device is a plug-in module.
7. The headend system according to claim 1, wherein the user interface provides a text editor that creates an ASCII file as the first high-level instruction which is stored in said first memory.
8. The headend system according to claim 1, wherein said second memory is a procedure table.
9. The headend system according to claim 1 , wherein the first high-level instruction points to the address where a procedure defined by the second high-level instructions are stored in said second memory.
10. The headend system according to claim 1, wherein the first high-level instruction is in a text language.
11. The headend system according to claim 1 , wherein said host computer receives data from said device, interprets the data according to the second high-level instructions and modifies an attribute defined by the first high-level instruction.
12. The headend system according to claim 1, wherein the first high-level instruction includes plural first high-level instructions and the second high-level instructions include sets of second high-level instructions corresponding to each of the first high-level instructions.
PCT/US1998/002964 1997-03-17 1998-02-26 Method and apparatus for adding new functionality to a headend WO1998041912A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US82214397A 1997-03-17 1997-03-17
US08/822,143 1997-03-17

Publications (2)

Publication Number Publication Date
WO1998041912A2 true WO1998041912A2 (en) 1998-09-24
WO1998041912A3 WO1998041912A3 (en) 1998-12-17

Family

ID=25235280

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1998/002964 WO1998041912A2 (en) 1997-03-17 1998-02-26 Method and apparatus for adding new functionality to a headend

Country Status (2)

Country Link
PE (1) PE63599A1 (en)
WO (1) WO1998041912A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171650B2 (en) 2002-08-23 2007-01-30 Sbc Properties, L.P. System and method for integrating resources in a network
US7761638B2 (en) * 2004-11-05 2010-07-20 Microsoft Corporation Dynamic creation of low-level interfaces

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226160A (en) * 1989-07-18 1993-07-06 Visage Method of and system for interactive video-audio-computer open architecture operation
US5511195A (en) * 1993-11-12 1996-04-23 Intel Corporation Driver, computer-implemented process, and computer system for processing data using loadable microcode running on a programmable processor
US5652887A (en) * 1994-06-22 1997-07-29 International Business Machines Corporation Dynamic Meta commands for peripheral devices
US5740436A (en) * 1995-06-06 1998-04-14 Apple Computer, Inc. System architecture for configuring input and output devices of a computer
US5771386A (en) * 1995-01-28 1998-06-23 U.S. Philips Corporation Software configuration in a telecommunication device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226160A (en) * 1989-07-18 1993-07-06 Visage Method of and system for interactive video-audio-computer open architecture operation
US5511195A (en) * 1993-11-12 1996-04-23 Intel Corporation Driver, computer-implemented process, and computer system for processing data using loadable microcode running on a programmable processor
US5652887A (en) * 1994-06-22 1997-07-29 International Business Machines Corporation Dynamic Meta commands for peripheral devices
US5771386A (en) * 1995-01-28 1998-06-23 U.S. Philips Corporation Software configuration in a telecommunication device
US5740436A (en) * 1995-06-06 1998-04-14 Apple Computer, Inc. System architecture for configuring input and output devices of a computer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171650B2 (en) 2002-08-23 2007-01-30 Sbc Properties, L.P. System and method for integrating resources in a network
US7761638B2 (en) * 2004-11-05 2010-07-20 Microsoft Corporation Dynamic creation of low-level interfaces

Also Published As

Publication number Publication date
PE63599A1 (en) 1999-07-12
WO1998041912A3 (en) 1998-12-17

Similar Documents

Publication Publication Date Title
US7159183B1 (en) System and method for programmatically creating a graphical program
US6976222B2 (en) Graphical program node for accessing capabilities of a software object
US6102965A (en) System and method for providing client/server access to graphical programs
US7210117B2 (en) System and method for programmatically generating a graphical program in response to program information
US7369975B2 (en) Method and apparatus for pattern based generation of graphical user interfaces (GUI)
US5555365A (en) Method and system for optimizing static and dynamic binding of presentation objects with the object data they represent
US7010780B2 (en) Method and system for software modularization and automatic code generation for embedded systems
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
US7000190B2 (en) System and method for programmatically modifying a graphical program in response to program information
US6341307B1 (en) Interface code architecture
US6208345B1 (en) Visual data integration system and method
US6246404B1 (en) Automatically generating code for integrating context-sensitive help functions into a computer software application
US7043716B2 (en) System and method for multiple level architecture by use of abstract application notation
US8527943B1 (en) System and method of application development
US8392877B1 (en) System and method of application development using replaceable self-contained components (RSCCS)
EP1819094A1 (en) Script language based network device configuration management system and method
EP2148259A1 (en) Field device management apparatus and field device management system
JP2007226825A (en) System for assisting configuration of environment for process control
US20070234271A1 (en) Application Framework
US7107574B1 (en) Managing computer program configuration data
US7237222B1 (en) Protocol for controlling an execution process on a destination computer from a source computer
US6297820B1 (en) Method and system for designing a graphical user interface for an electronic consumer product
US7124397B1 (en) Power builder for power management control system automation software
CN113934832A (en) Interactive processing method, device, equipment, medium and program product based on session
US20050246679A1 (en) Process for generating information models

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): BR CN

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): BR CN