US20050091664A1 - Method and system for associating parameters of containers and contained objects - Google Patents

Method and system for associating parameters of containers and contained objects Download PDF

Info

Publication number
US20050091664A1
US20050091664A1 US10/939,109 US93910904A US2005091664A1 US 20050091664 A1 US20050091664 A1 US 20050091664A1 US 93910904 A US93910904 A US 93910904A US 2005091664 A1 US2005091664 A1 US 2005091664A1
Authority
US
United States
Prior art keywords
property
associative relationship
changes
container application
persistent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/939,109
Inventor
Jay Cook
William Drummy
Keyee Hsu
Rashesh Mody
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US10/939,109 priority Critical patent/US20050091664A1/en
Publication of US20050091664A1 publication Critical patent/US20050091664A1/en
Assigned to DEUTSCHE BANK AG, LONDON BRANCH reassignment DEUTSCHE BANK AG, LONDON BRANCH SECURITY AGREEMENT Assignors: INVENSYS SYSTEMS, INC.
Priority to US12/608,897 priority patent/US8020173B2/en
Assigned to INVENSYS SYSTEMS, INC. reassignment INVENSYS SYSTEMS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: DEUTSCHE BANK AG, LONDON BRANCH
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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/451Execution arrangements for user interfaces

Definitions

  • This invention relates generally to data processing systems and, more particularly, to a method and system for creating associations between parameters of a container application program and corresponding parameter of a contained object.
  • GUI graphical user interface
  • GUI programs are implemented in object-oriented programming languages, such as the C++ programming language.
  • the display icons that represent data or resources are typically representations of data structures called objects, which encapsulate attributes and behaviors.
  • Objects are specified by definitions, called classes, that specify the attributes and behaviors of the particular objects, which are termed “instantiations” of the class definitions.
  • GUI icons are represented as object-oriented programming objects
  • the GUI program can be written so that the status of the icon is continuously updated. In this way, it is relatively simple for the GUI program to be written so that the icons can be selected with the graphical user input device and moved about on the computer system display as desired.
  • object-oriented GUIs With the advent of object-oriented GUIs also came object oriented developing environments. Such development environments are computer programs or groups of computer programs that allow a software developer to create object oriented programs. Object-oriented development environments typically have a palette of objects with which the developer builds an application. Each object on this palette is different and serves as a template for the developer. A palette object's attribute settings are the default settings for that object. To use an object on the palette, the developer copies the object and places the copy on the application. The copied or “derived” object has the same attribute settings as the original palette object.
  • COM Component Object Model
  • COM provides a standard framework permitting objects from different applications to share data and functions, and permits a given application program (“container application”) to contain multiple objects of different types.
  • tainer application a format for control objects known as “ActiveX” has been established to take advantage of the COM protocol.
  • An ActiveX object behaves as a “server” relative to its container application, which in turn behaves as a “client”.
  • the COM protocol manages, among other things, the setup and initialization necessary for container applications to send and receive messages and data to and from server applications.
  • An ActiveX control is an object which typically includes data and functions, and which is capable of notifying its container application of the occurrence of an event.
  • stored data members are known as “properties”, functions are referred to as “methods”, and event occurrences are denoted as “events”.
  • Properties can be read from, and written to, an ActiveX control via associated methods.
  • the interface of an ActiveX control is a set of methods defining certain input, output and behavior rules. Accordingly, a container application can invoke the methods of an ActiveX control to effect the defined behavior and access the object data.
  • an ActiveX control In addition to representing data stored by an ActiveX control, properties are used in formatting the display of an ActiveX control. Events are utilized to notify a container application of the occurrence of an event, as well as to pass parameters relevant to the particular event. For example, an ActiveX control is capable of informing its container application of the occurrence of a selection event (e.g., when the user interface of the control has been “clicked on”).
  • ActiveX objects are typically implemented: (i) as in-process servers, or (ii) as out-of-process servers.
  • the ActiveX control is implemented as a Dynamic Link Library (“DLL”), and in the latter case as an “executable”.
  • DLL Dynamic Link Library
  • ActiveX executables are loaded into a separate process space from the container application. Since there is no shared memory between such applications, data is transported between ActiveX objects and the container application. This is advantageous in the sense that an ActiveX executable does not interfere with the processing of data in the client application.
  • each such ActiveX control operates independently of the container application. That is, Active X controls are conventionally installed in container applications so as not to be affected by changes in parameters of the container application, and vice versa. Similarly, the occurrence of ActiveX events does not automatically cause the execution of scripts or the like in the container application.
  • the present invention provides a system and method for establishing associative relationships between properties of a contained object and corresponding parameters of a container application.
  • the present system contemplates the establishment of both mutual and unilateral associative relationships, with a particular relationship being specified via a user interface created upon instantiation of the contained object. It is a feature of the present invention that such associative relationships may be established without modification of the code comprising the contained object.
  • the present invention facilitates implementation of selected functionality of a container application prescribed by an event script.
  • an association is created between an event arising within a contained object instantiated in a computing environment and a script associated with the container application.
  • this association is recorded in an event sink of a control site serving the container application.
  • An event indication is generated in response to occurrence of a particular event within the contained object.
  • the event script is invoked and a sequence of script commands corresponding to the selected functionality are carried out.
  • the present invention provides a system and method for creating an association between a tag source of a container application and a property of a contained object.
  • an associative relationship is defined between said tag source and the property, such associative relationship being determinative of the extent to which changes in the tag source and property will induce corresponding changes in the other.
  • This associative relationship is recorded within a property sink of a control site for the container application, and may be specified by a user upon instantiation of the contained object.
  • various unilateral and mutual associative relationships may be established. For example, in certain instances a unilateral associative relationship may be specified such that changes in the tag source are reflected as corresponding changes in the property, while changes in the property are not permitted to affect the tag source. In other cases the converse unilateral associative relationship, or a mutual associative relationship, may also be specified.
  • FIG. 1 is a block diagram of a computer system in which the present invention may be implemented.
  • FIG. 2 is a diagram of a dialog box for a bound object which has been instantiated in a container application in accordance with the present invention.
  • FIG. 3 provides a view of the dialog box of FIG. 2 in which the events page has been selected.
  • FIG. 4 provides a graphical representation of an instance of an installed object and the resulting control site established within a window of a container application as a consequence of such instantiation.
  • FIG. 5 shows a block diagram of the structure of a property sink included within the control site of FIG. 4 .
  • FIG. 6 shows a block diagram of the structure of an event sink included within the control site of FIGS. 4
  • FIG. 7 shows a tag object of a type identified by a particular field of the property sink of FIG. 5 .
  • FIG. 8 provides a block diagram of the structure of a property object of the type identified by a particular field of the property sink of FIG. 5 .
  • FIGS. 9 and 10 are respective flowchart representations of the manner in which changes in properties of a container application potentially induce corresponding changes in tags of an instantiated object, and vice versa.
  • the present invention provides a generalized method for creating associations between parameters of programming objects, such as ActiveX controls, and associated parameters of a container application. That is, properties and events of ActiveX controls are respectively bound to data variables (i.e., “tags”) and scripts of the container application.
  • the container application could comprise, for example, industrial automation and control software having tags representative of the state of various sensors or industrial processes.
  • Scripts of the container application include a sequence of script commands for invoking functionality of the container application, thereby allowing a user to specify how the application operates.
  • FIG. 1 is a block diagram of a computer system 100 in which the present invention may be implemented.
  • the computer system 100 includes a user station 102 that communicates with a system storage unit over network 106 .
  • the system storage unit 104 comprises a direct access storage device, such as magnetic disk storage, in which data files are stored.
  • the user station 102 includes a central processing unit (“CPU”) 108 , a display 110 , and a main memory 112 .
  • the CPU operates in response to user commands, which it receives via a keyboard 114 or graphical user input device 116 .
  • the user station 102 can communicate with one or more other user stations or a network server unit over the network 106 .
  • the main memory 112 contains a variety of data structures and information, including an operating system, application programs, program objects, and user data.
  • the main memory is represented as a single entity, but those skilled in the art will appreciate that the main memory can comprise a combination of random access memory (“RAM”), hard disk drives, optical disk drives, and other storage devices containing logically segmented storage locations.
  • RAM random access memory
  • the main memory includes a computer program containing a sequence of program instructions whose execution implements the present invention.
  • the operating system contained in the memory 112 supports an object-oriented programming environment for the execution of object-oriented programs, such as those written in, for example, the C++ programming language. Accordingly, the memory contains program objects that are data structures of an object-oriented programming language.
  • Application programs are invoked, or launched, by a user through the keyboard 114 or graphical input device 116 .
  • the application programs can be written in a variety of languages, including C++.
  • the display 110 comprises a display device such as a video terminal that displays computer output and indicates system operations. Display objects can be pictured on the display and the user can designate data operations on the display by using the input device 116 or equivalent graphical user input device.
  • the computer system 100 may also send commands to, and receive data from, one or more industrial sensor or process control devices 120 .
  • the state of each such device 120 is reflected by the value of an associated tag, each of which may be a parameter of the container application.
  • the container application comprises an industrial automation software program, such as the InTouch program module developed by Wonderware Corporation of Irvine, Calif.
  • the Wonderware Intouch module includes a tool kit for building screens and interfaces, and a graphical user interface for monitoring and controlling the devices 120 .
  • the software toolkit of the Wonderware Intouch module enables rapid development of three dimensional representations of electrical distribution switchgear.
  • the switchgear elevational representations have logical connections to the switchgear devices.
  • An elevation can be modified to any dimensions with an essentially infinite number of combinations and arrangements of meters and protection devices to quickly and accurately represent a customer's switchgear.
  • a tabular representation of metering and setup/set point information is generated automatically with the appropriate database server links established.
  • the Wonderware Intouch module is disposed to provide similar representations and accompanying database links in other areas of industrial automation and control.
  • FIG. 2 is a diagram of a dialog box 150 for a bound object which has been instantiated in a container application as described hereinafter.
  • the bound object comprises an ActiveX control identified as TextControl.
  • the dialog box 150 could be expected to include the “Control Name”, “General”, “Colors” and “Fonts” pages.
  • a “properties” page is included to provide a mechanism for viewing and altering relationships between properties of the bound object (i.e., TextControl) and corresponding tags of the container application.
  • an “events” page serves to display the relationship between various events of the bound object and associated scripts of the container application.
  • the properties page of TextControl reveals that the property BackColor is bound to the tag backgroundcolor of the container application.
  • the arrow graphic 152 indicates that a bidirectional relationship has been established between the property BackColor and the associated tag backgroundcolor. That is, changes in the value of the tag backgroundcolor will be reflected in the value of the property BackColor, and vice versa.
  • FIG. 2 also indicates that the property BottomTextLine is bound to the tag textline 3 of the container application.
  • the arrow graphic 154 indicates that changes to the tag textline 3 will result in corresponding changes being made to the property BottomTextLine.
  • the solid vertical line at the right edge of the arrow graphic 154 indicates that a user will not be permitted to define the relationship between BottomTextLine and textline 3 such that changes to the former induce corresponding changes to the latter. This situation may arise when, for example, the tag textline 3 is “read only”, or when there exists some other reason why it is impermissible to bind the tag textline 3 to the property BottomTextLine.
  • the arrow graphic 156 indicates that changes to the tag textcolor will result in corresponding changes being made to the property ForeColor.
  • the absence of a right-pointing arrow in arrow graphic 156 indicates that changes to ForeColor will not affect the value of textcolor. Since a solid vertical line does not appear at the right edge of the arrow graphic 156 , a user will be permitted to allow changes in the property ForeColor to cause corresponding changes in the tag textcolor.
  • FIG. 2 further shows the property TextJustification to be bound to the tag tag 1 .
  • the absence of any arrow graphic proximate the displayed name tag 1 indicates that changes to the property TextJustification will not induce changes in the tag tag 1 , nor vice versa.
  • FIG. 3 provides a view of the dialog box 150 in which the events page has been selected. This view reveals that the event Click is bound to the script ClickScript of the container application. In the exemplary implementation of FIG. 3 no further graphic representation is provided of the binding between the event Click and the property ClickScript.
  • the associations between the parameters of the bound objects and corresponding tags of the container application may be modified by using the graphical input device 116 to change the state of the applicable arrow graphic.
  • each arrow graphic will cycle between various permitted associative states (e.g., unidirectional, bidirectional) in response to repeated selection by the device 116 .
  • the binding between a container application and a bound object is implemented using the capability of the underlying window system.
  • the present invention is described assuming, for exemplary purposes and without limitation, that the underlying window system is similar to the Microsoft Windows 3.1 operating system (“Windows”). Except as otherwise noted hereinafter, conventional techniques are utilized to install objects (e.g., an ActiveX control) within the Windows environment for subsequent binding to a container application in accordance with the invention.
  • objects e.g., an ActiveX control
  • the container application comprises an object-oriented industrial automation program such as, for example, the InTouch program developed by Wonderware Corporation of Irvine, Calif.
  • the container application creates windows which themselves function as containers for ActiveX control objects. After a control object has been placed in such a window and its parameter associations have been selected via a dialog box ( FIG. 2 ), the window may be saved and closed in response to commands provided to the container application. A compiling operation is preferably invoked when the container window and contained control object are saved, thereby creating a “compiled window”. The container window and contained control object may then be generated from the compiled window during subsequent execution of the container application.
  • a dialog box such as that shown in FIG. 2 is presented via display 110 .
  • the desired associations between properties of the installed object and tags of the container object may then be selected via pointing device 116 so as to create a bound object.
  • the window of the container may be compiled with the bound objects so as to create a “compiled window”.
  • the compiled window is read and interpreted, which results in the creation of the bound object within the run-time environment.
  • the compiled window is stored as a file of predefined format, in which each object (e.g., shapes, wizard utilities, ActiveX controls) present within the window of the container application is represented as a block of data.
  • each object e.g., shapes, wizard utilities, ActiveX controls
  • Utilization of a particular predefined format for the compiled window file is not necessary for implementation of the present invention, and differing file formats for the compiled window may offer advantages in particular applications.
  • FIG. 4 provides a graphical representation of an instance 160 of an installed object and the resulting control site 162 established within a window 166 of a container application as a consequence of such instantiation.
  • a standard control site having certain well defined properties is generated upon placement of an object such as an ActiveX control within a window of a Windows compatible container application.
  • the control site 162 differs from such a standard control site in that sets of one or more property sinks 168 and event sinks 170 are provided to facilitate the parameter associations depicted in FIGS. 2 and 3 .
  • the control site 162 defines a standard interface 172 for communicating with the instantiated object 160 through a corresponding standard interface 174 thereof.
  • FIG. 5 there is shown a block diagram of the structure of a property sink 168 included within the control site 162 .
  • the property sink 168 defines a tagname field 178 for identifying the name of the tag to be associated with the property object specified by the pointer within the field 180 .
  • An association field 182 specifies the type of association (e.g., unidirectional) to be established between the tag object and property object identified by the pointers within the fields 184 and 180 , respectively. In the exemplary case of FIG. 5 , the association field 182 would specify a unidirectional relationship between the tag object textcolor and the property object TextJustification.
  • the association field 182 registers any change in the relationship between a tag object and corresponding property object effected using the pointing device 116 in the manner described above with reference to FIG. 2 .
  • FIG. 6 shows a block diagram of the structure of an event sink 185 included within the control site 162 .
  • the event sink 185 defines a DISPID field 186 containing an identifier corresponding to a given event.
  • a CString field 187 is provided for storing the name of a script for the container application associated with the event. The name in the CString field is provided to the container application in response to occurrence of the given event, which executes the corresponding script.
  • the tag object 190 includes a tagname field 192 , PTACC handle field 194 , and status flag field 196 .
  • the contents of the tagname field 192 will be identical to the contents of the tagname field 178 included within the property sink 168 .
  • the PTACC handle field 194 provides a unique identifier for a particular tag. This identifier is returned by a dynamically linked library (“DLL”) named “PTACC” to requesting third party applications.
  • DLL dynamically linked library
  • FIG. 8 provides a block diagram of the structure of a property object 200 of the type identified by field 180 of the property sink of FIG. 5 .
  • the property object 200 includes a DISPID field 202 for identifying a particular parameter of the bound object (e.g., ActiveX control).
  • the industry standard dispatch interface (“IDispatch”) of the bound object furnishes an index stored in the DISPID field in response to a call by the container application for a method of the bound object.
  • the container application then calls an “Invoke” method of the object's dispatch interface, which causes the object to retrieve the method associated with the index in the DISPID field 202 .
  • the desired method is then called by the bound object.
  • the property object 200 further defines a “CString” field 204 for storing the name of the tag corresponding to the container property associated with such tag. Also included within the property object 200 is an “ASSOCTYPE” field 206 which records the type of association between such container property and tag. In addition, a “COcxTag” field 208 is provided for storing a pointer to an object wrapper surrounding methods used by the container application to interface with tags. The property object 200 also defines a “COcxProperty” field 212 for holding a pointer to an object wrapper surrounding methods for changing properties of the bound object.
  • FIGS. 9 and 10 are respective flowchart representations of the manner in which changes in such properties potentially induce corresponding changes in such tags, and vice versa.
  • a property of a bound object is caused to change in state or value (i.e., a “property change”) and the associated control site ( FIG. 4 ) of the bound object is notified (step 222 ). It is then determined whether the notification received at the control site is with regard to a property change (step 224 ). If not, no further processing relating to a potential change in the value of an associated container tag is performed (step 226 ). If the notification corresponds to a property change, it is attempted to identify the property sink ( FIG. 5 ) corresponding to the property being changed (step 228 ). If a corresponding property sink is not found (step 230 ), then no further processing is performed (step 232 ).
  • an OnEvent member function is called (step 234 ).
  • the OnEvent member function serves to convert the property change into a corresponding change in state or value of the associated tag (i.e., a “tag change”).
  • step 236 an operation is performed to validate the proposed tag change arising from the property change.
  • this validation process entails determining whether the proposed tag change is within a predefined range of valid tag values. If the proposed change is not validated (step 238 ), no further processing is performed (step 240 ). In the case where the property change is validated, the container application makes the corresponding validated change in the associated tag (step 242 ).
  • step 250 a tag change is experienced by a tag monitored by the container application and a notification message is generated in response.
  • the notification message corresponds to an industry standard “DBCHANGE” message (i.e., a type of message which has been registered in the Windows environment to facilitate interpretation by a receiving application). If not, no further efforts are made to make a property change corresponding to the tag change (step 256 ). If the window message corresponds to a DBCHANGE message, it is attempted to identify the property sink ( FIG. 5 ) associated with the tag experiencing a change (step 258 ). If an associated property sink is not found (step 260 ), then no further processing is performed (step 262 ). In the case where a corresponding property sink is identified, an OnTagChange member function is called (step 264 ). The OnTagChange member function serves to convert the tag change into a corresponding property change.
  • DBCHANGE industry standard
  • step 266 an operation is performed to validate the parameters returned by the OnTagChange member function.
  • this validation process entails determining whether the proposed property change falls within a predefined range. If the proposed change is not validated, no further processing is performed (step 267 ). In the case where the property change is validated (step 268 ), a pointer to the appropriate property object is retrieved from the associated property sink (step 270 ). If the retrieved pointer is invalid (step 272 ), then no further processing is performed (step 274 ). If a valid pointer has been retrieved, then a corresponding change is made in the associated property via an interface of the application program (step 276 ).
  • CTagServer and CocxTag are classes disposed to “wrap” various methods for interfacing with the tags monitored by the container application. Each “wrapper” instance of this class provides an interface between the container application and any proprietary methods for interfacing with such tags.
  • the class CpropSink corresponds to a specific implementation of a property sink.
  • the class CocxProperty is designed to wrap properties of control objects and to store pointers (i.e., IDispatch) associated locations of such properties.
  • the SetValue member function uses the IDispatch pointer to change the value of a control object property associated with a tag experiencing a corresponding change.
  • C ODE S ECTION I the “//” expression is used to identifies comments to the code.
  • COcxTag* pTag (COcxTag*) GetExtraLong(hPt, 0); if (!pTag) return false; // Get the sink associated with this tag.
  • ITagChange* pSink (ITagChange*) GetExtraLong(hPt, sizeof(LONG)); // if there is a sink call it else call tags virtual method. if (pSink) pSink->OnTagChange(pTag); else pTag->OnTagChange(NULL); return TRUE; ⁇ return CWnd::WindowProc(message, wParam, lParam); ⁇ OnTagChange: void CPropSink::OnTagChange(COcxTag*) ⁇ // make sure there is a property object associated with this tag // if not then initialize one if (!m_pProp) InitProperty( ); // verify that there is a property, tag and that the association between // the two indicates that the tag changes the property (this relationship // is defined by the graphic on the property page when the association // is defined) if (m_bIgnoreChange ⁇ !m_pProp ⁇ !m_p
  • the dialog box of a bound object represents any association existing between event occurrences in the object and scripts defined by the container application.
  • a user may alter such associations by performing editing operations upon the dialog box displayed by the events page.
  • C ODE S ECTION II exemplary code is provided for effecting the association of event occurrences to the execution of container scripts contemplated by the present invention.
  • C ODE S ECTION II includes the definition of a class “CScriptSink” disposed to facilitate implementation of the event sinks described with reference to FIG. 6 .
  • CScriptSink causes event notification messages generated by the bound object to be registered and sent to the container application.
  • C ODE S ECTION II further includes definition of a class defined as “COcxItem”, which is responsible for creating control sites in response to instantiation of bound objects as described above with reference to FIG. 4 .
  • OnCmdMsg which is operative to: (i) determine the type of an event notification which has occurred, (ii) locate the associated container script per the relationship defined in the applicable events page (e.g., FIG. 3 ), and (iii) cause execution of the associated script. Calls to the function OnCmdMsg may be made in accordance with the standard COM protocol.

Abstract

A system and method for establishing associative relationships between properties of a contained object and corresponding parameters of a container application is disclosed herein. The present system contemplates the establishment of both mutual and unilateral associative relationships, with a particular relationship being specified via a user interface created upon instantiation of the contained object. Such associative relationships may be advantageously established without modification of the code comprising the contained object. In one aspect the present system facilitates implementation of selected functionality of a container application prescribed by an event script. In this context an association is created between an event arising within a contained object instantiated in a computing environment and a script associated with the container application. An event indication is generated in response to occurrence of a particular event within the contained object. In response, the event script is invoked and a sequence of script commands corresponding to the selected functionality are carried out. In another aspect the present system provides a system and method for creating an association between a tag source of a container application and a property of a contained object. Specifically, an associative relationship is defined between the tag source and the property, such associative relationship being determinative of the extent to which changes in the tag source and property will induce corresponding changes in the other.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 09/241,938, filed Feb. 1, 1999, entitled METHOD AND SYSTEM FOR ASSOCIATING PARAMETERS OF CONTAINERS AND CONTAINED OBJECTS, which claims priority under 35 U.S.C. §119(e) to U.S. Provisional Application No. 60/103,362, filed Oct. 7, 1998, entitled METHOD AND SYSTEM FOR ASSOCIATING PARAMETERS OF CONTAINERS AND CONTAINED OBJECTS, each of which is incorporated by reference herein in its entirety.
  • FIELD OF THE INVENTION
  • This invention relates generally to data processing systems and, more particularly, to a method and system for creating associations between parameters of a container application program and corresponding parameter of a contained object.
  • BACKGROUND OF THE INVENTION
  • The operation of a computer system is controlled by a computer program or group of programs called the operating system (“OS”). In early operating systems, a computer user input text commands to the OS using a command line interface. Later, more advanced operating systems were developed which utilized a graphical user interface (“GUI”) in combination with an input device such as a mouse. In GUIs, the input device controls a display cursor to allow for the selection of data and resources for application program operations. A user selects an operation by highlighting an item or field and pressing a graphical input device button.
  • Many GUI programs are implemented in object-oriented programming languages, such as the C++ programming language. The display icons that represent data or resources are typically representations of data structures called objects, which encapsulate attributes and behaviors. Objects are specified by definitions, called classes, that specify the attributes and behaviors of the particular objects, which are termed “instantiations” of the class definitions. The reference Budd, T., “An Introduction to Object-Oriented Programming”, Addison-Wesley Publishing Co., Inc. 1991, provides an introduction to object-oriented concepts and terminology.
  • Object-oriented programming languages make it easier for system programmers to implement the GUI concepts of icons and lists. For example, if the GUI icons are represented as object-oriented programming objects, the GUI program can be written so that the status of the icon is continuously updated. In this way, it is relatively simple for the GUI program to be written so that the icons can be selected with the graphical user input device and moved about on the computer system display as desired.
  • With the advent of object-oriented GUIs also came object oriented developing environments. Such development environments are computer programs or groups of computer programs that allow a software developer to create object oriented programs. Object-oriented development environments typically have a palette of objects with which the developer builds an application. Each object on this palette is different and serves as a template for the developer. A palette object's attribute settings are the default settings for that object. To use an object on the palette, the developer copies the object and places the copy on the application. The copied or “derived” object has the same attribute settings as the original palette object.
  • Efforts have been made to establish a common method of communication between objects instantiated within a given operating system environment. For example, Microsoft Corporation has established a certain protocol, known as the Component Object Model, which governs the interaction between software objects within the Microsoft Windows operating environment. COM provides a standard framework permitting objects from different applications to share data and functions, and permits a given application program (“container application”) to contain multiple objects of different types. Recently, a format for control objects known as “ActiveX” has been established to take advantage of the COM protocol. An ActiveX object behaves as a “server” relative to its container application, which in turn behaves as a “client”. The COM protocol manages, among other things, the setup and initialization necessary for container applications to send and receive messages and data to and from server applications.
  • An ActiveX control is an object which typically includes data and functions, and which is capable of notifying its container application of the occurrence of an event. In the context of an ActiveX control, stored data members are known as “properties”, functions are referred to as “methods”, and event occurrences are denoted as “events”. Properties can be read from, and written to, an ActiveX control via associated methods. The interface of an ActiveX control is a set of methods defining certain input, output and behavior rules. Accordingly, a container application can invoke the methods of an ActiveX control to effect the defined behavior and access the object data.
  • In addition to representing data stored by an ActiveX control, properties are used in formatting the display of an ActiveX control. Events are utilized to notify a container application of the occurrence of an event, as well as to pass parameters relevant to the particular event. For example, an ActiveX control is capable of informing its container application of the occurrence of a selection event (e.g., when the user interface of the control has been “clicked on”).
  • ActiveX objects are typically implemented: (i) as in-process servers, or (ii) as out-of-process servers. In the former case the ActiveX control is implemented as a Dynamic Link Library (“DLL”), and in the latter case as an “executable”. ActiveX DLL's are loaded into the process space of the container application. As a consequence, data does not need to be transported between the container application and the ActiveX control. In contrast, ActiveX executables are loaded into a separate process space from the container application. Since there is no shared memory between such applications, data is transported between ActiveX objects and the container application. This is advantageous in the sense that an ActiveX executable does not interfere with the processing of data in the client application.
  • Although a number of programming environments exist for facilitating development of Active X controls, as object-oriented constructs each such ActiveX control operates independently of the container application. That is, Active X controls are conventionally installed in container applications so as not to be affected by changes in parameters of the container application, and vice versa. Similarly, the occurrence of ActiveX events does not automatically cause the execution of scripts or the like in the container application. Although such relationships between the properties and events of an ActiveX control and a container application could conceivably be established on an ad hoc basis, there has not heretofore been a convenient mechanism for linking such properties and events with associated parameters of container applications.
  • SMMARY OF THE INVENTION
  • Briefly, the present invention provides a system and method for establishing associative relationships between properties of a contained object and corresponding parameters of a container application. The present system contemplates the establishment of both mutual and unilateral associative relationships, with a particular relationship being specified via a user interface created upon instantiation of the contained object. It is a feature of the present invention that such associative relationships may be established without modification of the code comprising the contained object.
  • In one aspect the present invention facilitates implementation of selected functionality of a container application prescribed by an event script. In an initial step an association is created between an event arising within a contained object instantiated in a computing environment and a script associated with the container application. In a preferred implementation this association is recorded in an event sink of a control site serving the container application. An event indication is generated in response to occurrence of a particular event within the contained object. In response, the event script is invoked and a sequence of script commands corresponding to the selected functionality are carried out.
  • In another aspect the present invention provides a system and method for creating an association between a tag source of a container application and a property of a contained object. Specifically, an associative relationship is defined between said tag source and the property, such associative relationship being determinative of the extent to which changes in the tag source and property will induce corresponding changes in the other. This associative relationship is recorded within a property sink of a control site for the container application, and may be specified by a user upon instantiation of the contained object. Depending upon the nature of the tag source, various unilateral and mutual associative relationships may be established. For example, in certain instances a unilateral associative relationship may be specified such that changes in the tag source are reflected as corresponding changes in the property, while changes in the property are not permitted to affect the tag source. In other cases the converse unilateral associative relationship, or a mutual associative relationship, may also be specified.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • In the accompanying drawings:
  • FIG. 1 is a block diagram of a computer system in which the present invention may be implemented.
  • FIG. 2 is a diagram of a dialog box for a bound object which has been instantiated in a container application in accordance with the present invention.
  • FIG. 3 provides a view of the dialog box of FIG. 2 in which the events page has been selected.
  • FIG. 4 provides a graphical representation of an instance of an installed object and the resulting control site established within a window of a container application as a consequence of such instantiation.
  • FIG. 5 shows a block diagram of the structure of a property sink included within the control site of FIG. 4.
  • FIG. 6 shows a block diagram of the structure of an event sink included within the control site of FIGS. 4
  • FIG. 7 shows a tag object of a type identified by a particular field of the property sink of FIG. 5.
  • FIG. 8 provides a block diagram of the structure of a property object of the type identified by a particular field of the property sink of FIG. 5.
  • FIGS. 9 and 10 are respective flowchart representations of the manner in which changes in properties of a container application potentially induce corresponding changes in tags of an instantiated object, and vice versa.
  • DETAILED DESCRIPTION OF THE INVENTION Overview
  • The present invention provides a generalized method for creating associations between parameters of programming objects, such as ActiveX controls, and associated parameters of a container application. That is, properties and events of ActiveX controls are respectively bound to data variables (i.e., “tags”) and scripts of the container application. The container application could comprise, for example, industrial automation and control software having tags representative of the state of various sensors or industrial processes. Scripts of the container application include a sequence of script commands for invoking functionality of the container application, thereby allowing a user to specify how the application operates.
  • FIG. 1 is a block diagram of a computer system 100 in which the present invention may be implemented. The computer system 100 includes a user station 102 that communicates with a system storage unit over network 106. The system storage unit 104 comprises a direct access storage device, such as magnetic disk storage, in which data files are stored. The user station 102 includes a central processing unit (“CPU”) 108, a display 110, and a main memory 112. The CPU operates in response to user commands, which it receives via a keyboard 114 or graphical user input device 116. The user station 102 can communicate with one or more other user stations or a network server unit over the network 106.
  • The main memory 112 contains a variety of data structures and information, including an operating system, application programs, program objects, and user data. The main memory is represented as a single entity, but those skilled in the art will appreciate that the main memory can comprise a combination of random access memory (“RAM”), hard disk drives, optical disk drives, and other storage devices containing logically segmented storage locations. The main memory includes a computer program containing a sequence of program instructions whose execution implements the present invention.
  • The operating system contained in the memory 112 supports an object-oriented programming environment for the execution of object-oriented programs, such as those written in, for example, the C++ programming language. Accordingly, the memory contains program objects that are data structures of an object-oriented programming language. Application programs are invoked, or launched, by a user through the keyboard 114 or graphical input device 116. The application programs can be written in a variety of languages, including C++.
  • The display 110 comprises a display device such as a video terminal that displays computer output and indicates system operations. Display objects can be pictured on the display and the user can designate data operations on the display by using the input device 116 or equivalent graphical user input device.
  • In an exemplary implementation the computer system 100 may also send commands to, and receive data from, one or more industrial sensor or process control devices 120. The state of each such device 120 is reflected by the value of an associated tag, each of which may be a parameter of the container application. In the exemplary implementation the container application comprises an industrial automation software program, such as the InTouch program module developed by Wonderware Corporation of Irvine, Calif. The Wonderware Intouch module includes a tool kit for building screens and interfaces, and a graphical user interface for monitoring and controlling the devices 120. For example, in the context of electrical distribution the software toolkit of the Wonderware Intouch module enables rapid development of three dimensional representations of electrical distribution switchgear. The switchgear elevational representations have logical connections to the switchgear devices. An elevation can be modified to any dimensions with an essentially infinite number of combinations and arrangements of meters and protection devices to quickly and accurately represent a customer's switchgear. In addition, a tabular representation of metering and setup/set point information is generated automatically with the appropriate database server links established. The Wonderware Intouch module is disposed to provide similar representations and accompanying database links in other areas of industrial automation and control.
  • Display and Editing of Associative Relationships
  • FIG. 2 is a diagram of a dialog box 150 for a bound object which has been instantiated in a container application as described hereinafter. In the exemplary implementation of FIG. 2, the bound object comprises an ActiveX control identified as TextControl. When instantiated in a container application using conventional techniques, the dialog box 150 could be expected to include the “Control Name”, “General”, “Colors” and “Fonts” pages. In accordance with the invention, a “properties” page is included to provide a mechanism for viewing and altering relationships between properties of the bound object (i.e., TextControl) and corresponding tags of the container application. In addition, an “events” page serves to display the relationship between various events of the bound object and associated scripts of the container application.
  • Referring to FIG. 2, the properties page of TextControl reveals that the property BackColor is bound to the tag backgroundcolor of the container application. The arrow graphic 152 indicates that a bidirectional relationship has been established between the property BackColor and the associated tag backgroundcolor. That is, changes in the value of the tag backgroundcolor will be reflected in the value of the property BackColor, and vice versa.
  • FIG. 2 also indicates that the property BottomTextLine is bound to the tag textline3 of the container application. The arrow graphic 154 indicates that changes to the tag textline3 will result in corresponding changes being made to the property BottomTextLine. The solid vertical line at the right edge of the arrow graphic 154 indicates that a user will not be permitted to define the relationship between BottomTextLine and textline3 such that changes to the former induce corresponding changes to the latter. This situation may arise when, for example, the tag textline3 is “read only”, or when there exists some other reason why it is impermissible to bind the tag textline3 to the property BottomTextLine.
  • It is also seen that that the property ForeColor is bound to the tag textcolor of the container application. The arrow graphic 156 indicates that changes to the tag textcolor will result in corresponding changes being made to the property ForeColor. The absence of a right-pointing arrow in arrow graphic 156 indicates that changes to ForeColor will not affect the value of textcolor. Since a solid vertical line does not appear at the right edge of the arrow graphic 156, a user will be permitted to allow changes in the property ForeColor to cause corresponding changes in the tag textcolor.
  • FIG. 2 further shows the property TextJustification to be bound to the tag tag1. However, the absence of any arrow graphic proximate the displayed name tag1 indicates that changes to the property TextJustification will not induce changes in the tag tag1, nor vice versa.
  • FIG. 3 provides a view of the dialog box 150 in which the events page has been selected. This view reveals that the event Click is bound to the script ClickScript of the container application. In the exemplary implementation of FIG. 3 no further graphic representation is provided of the binding between the event Click and the property ClickScript.
  • Referring again to FIG. 2, the associations between the parameters of the bound objects and corresponding tags of the container application may be modified by using the graphical input device 116 to change the state of the applicable arrow graphic. For example, in a particular implementation each arrow graphic will cycle between various permitted associative states (e.g., unidirectional, bidirectional) in response to repeated selection by the device 116.
  • Establishment of Associative Relationships Between Corresponding Parameters
  • In a preferred embodiment, the binding between a container application and a bound object is implemented using the capability of the underlying window system. The present invention is described assuming, for exemplary purposes and without limitation, that the underlying window system is similar to the Microsoft Windows 3.1 operating system (“Windows”). Except as otherwise noted hereinafter, conventional techniques are utilized to install objects (e.g., an ActiveX control) within the Windows environment for subsequent binding to a container application in accordance with the invention. Once an object has been installed, the process of binding an object to a container application in accordance with the invention is initiated by instantiating the installed object in the container application.
  • In an exemplary embodiment the container application comprises an object-oriented industrial automation program such as, for example, the InTouch program developed by Wonderware Corporation of Irvine, Calif. In this exemplary embodiment the container application creates windows which themselves function as containers for ActiveX control objects. After a control object has been placed in such a window and its parameter associations have been selected via a dialog box (FIG. 2), the window may be saved and closed in response to commands provided to the container application. A compiling operation is preferably invoked when the container window and contained control object are saved, thereby creating a “compiled window”. The container window and contained control object may then be generated from the compiled window during subsequent execution of the container application.
  • Upon such placement of an installed object in a window of the container application, a dialog box such as that shown in FIG. 2 is presented via display 110. The desired associations between properties of the installed object and tags of the container object may then be selected via pointing device 116 so as to create a bound object. Once one or more installed objects have been so bound to the container application, the window of the container may be compiled with the bound objects so as to create a “compiled window”. During execution of the container application the compiled window is read and interpreted, which results in the creation of the bound object within the run-time environment. In a preferred implementation the compiled window is stored as a file of predefined format, in which each object (e.g., shapes, wizard utilities, ActiveX controls) present within the window of the container application is represented as a block of data. Utilization of a particular predefined format for the compiled window file is not necessary for implementation of the present invention, and differing file formats for the compiled window may offer advantages in particular applications.
  • FIG. 4 provides a graphical representation of an instance 160 of an installed object and the resulting control site 162 established within a window 166 of a container application as a consequence of such instantiation. Those skilled in the art will appreciate that a standard control site having certain well defined properties is generated upon placement of an object such as an ActiveX control within a window of a Windows compatible container application. In accordance with the invention, the control site 162 differs from such a standard control site in that sets of one or more property sinks 168 and event sinks 170 are provided to facilitate the parameter associations depicted in FIGS. 2 and 3. The control site 162 defines a standard interface 172 for communicating with the instantiated object 160 through a corresponding standard interface 174 thereof.
  • Referring to FIG. 5, there is shown a block diagram of the structure of a property sink 168 included within the control site 162. The property sink 168 defines a tagname field 178 for identifying the name of the tag to be associated with the property object specified by the pointer within the field 180. An association field 182 specifies the type of association (e.g., unidirectional) to be established between the tag object and property object identified by the pointers within the fields 184 and 180, respectively. In the exemplary case of FIG. 5, the association field 182 would specify a unidirectional relationship between the tag object textcolor and the property object TextJustification. The association field 182 registers any change in the relationship between a tag object and corresponding property object effected using the pointing device 116 in the manner described above with reference to FIG. 2.
  • FIG. 6 shows a block diagram of the structure of an event sink 185 included within the control site 162. The event sink 185 defines a DISPID field 186 containing an identifier corresponding to a given event. In addition, a CString field 187 is provided for storing the name of a script for the container application associated with the event. The name in the CString field is provided to the container application in response to occurrence of the given event, which executes the corresponding script.
  • Referring to FIG. 7, there is shown a tag object 190 of the type identified by field 184 of the property sink of FIG. 5. The tag object 190 includes a tagname field 192, PTACC handle field 194, and status flag field 196. The contents of the tagname field 192 will be identical to the contents of the tagname field 178 included within the property sink 168. In a preferred embodiment the PTACC handle field 194 provides a unique identifier for a particular tag. This identifier is returned by a dynamically linked library (“DLL”) named “PTACC” to requesting third party applications.
  • FIG. 8 provides a block diagram of the structure of a property object 200 of the type identified by field 180 of the property sink of FIG. 5. As is indicated by FIG. 8, the property object 200 includes a DISPID field 202 for identifying a particular parameter of the bound object (e.g., ActiveX control). In an exemplary implementation the industry standard dispatch interface (“IDispatch”) of the bound object furnishes an index stored in the DISPID field in response to a call by the container application for a method of the bound object. The container application then calls an “Invoke” method of the object's dispatch interface, which causes the object to retrieve the method associated with the index in the DISPID field 202. The desired method is then called by the bound object.
  • The property object 200 further defines a “CString” field 204 for storing the name of the tag corresponding to the container property associated with such tag. Also included within the property object 200 is an “ASSOCTYPE” field 206 which records the type of association between such container property and tag. In addition, a “COcxTag” field 208 is provided for storing a pointer to an object wrapper surrounding methods used by the container application to interface with tags. The property object 200 also defines a “COcxProperty” field 212 for holding a pointer to an object wrapper surrounding methods for changing properties of the bound object.
  • Mapping Changes Between Corresponding Properties and Tags
  • When a compiled window (described above) is loaded during execution of the container application, the property sinks 168 and event sinks 170 associated with the compiled window are regenerated and used to record any change in the operative association between properties of bound objects and corresponding tags of the container application. FIGS. 9 and 10 are respective flowchart representations of the manner in which changes in such properties potentially induce corresponding changes in such tags, and vice versa.
  • Referring to FIG. 9, in step 220 a property of a bound object is caused to change in state or value (i.e., a “property change”) and the associated control site (FIG. 4) of the bound object is notified (step 222). It is then determined whether the notification received at the control site is with regard to a property change (step 224). If not, no further processing relating to a potential change in the value of an associated container tag is performed (step 226). If the notification corresponds to a property change, it is attempted to identify the property sink (FIG. 5) corresponding to the property being changed (step 228). If a corresponding property sink is not found (step 230), then no further processing is performed (step 232). In the case where a corresponding property sink is identified, an OnEvent member function is called (step 234). The OnEvent member function serves to convert the property change into a corresponding change in state or value of the associated tag (i.e., a “tag change”).
  • In step 236, an operation is performed to validate the proposed tag change arising from the property change. In a preferred implementation this validation process entails determining whether the proposed tag change is within a predefined range of valid tag values. If the proposed change is not validated (step 238), no further processing is performed (step 240). In the case where the property change is validated, the container application makes the corresponding validated change in the associated tag (step 242).
  • Referring now to FIG. 10, in step 250 a tag change is experienced by a tag monitored by the container application and a notification message is generated in response. In step 254 it is then determined whether the notification message corresponds to an industry standard “DBCHANGE” message (i.e., a type of message which has been registered in the Windows environment to facilitate interpretation by a receiving application). If not, no further efforts are made to make a property change corresponding to the tag change (step 256). If the window message corresponds to a DBCHANGE message, it is attempted to identify the property sink (FIG. 5) associated with the tag experiencing a change (step 258). If an associated property sink is not found (step 260), then no further processing is performed (step 262). In the case where a corresponding property sink is identified, an OnTagChange member function is called (step 264). The OnTagChange member function serves to convert the tag change into a corresponding property change.
  • In step 266, an operation is performed to validate the parameters returned by the OnTagChange member function. In a preferred implementation this validation process entails determining whether the proposed property change falls within a predefined range. If the proposed change is not validated, no further processing is performed (step 267). In the case where the property change is validated (step 268), a pointer to the appropriate property object is retrieved from the associated property sink (step 270). If the retrieved pointer is invalid (step 272), then no further processing is performed (step 274). If a valid pointer has been retrieved, then a corresponding change is made in the associated property via an interface of the application program (step 276).
  • In a preferred implementation of the procedure set forth in FIG. 10, several object classes described in CODE SECTION I are invoked. Specifically, CTagServer and CocxTag are classes disposed to “wrap” various methods for interfacing with the tags monitored by the container application. Each “wrapper” instance of this class provides an interface between the container application and any proprietary methods for interfacing with such tags. The class CpropSink corresponds to a specific implementation of a property sink. The class CocxProperty is designed to wrap properties of control objects and to store pointers (i.e., IDispatch) associated locations of such properties. The SetValue member function uses the IDispatch pointer to change the value of a control object property associated with a tag experiencing a corresponding change. In CODE SECTION I, the “//” expression is used to identifies comments to the code.
    CODE SECTION I
    CTagServer:
    LRESULT CTagServer::WindowProc(UINT message, WPARAM
    wParam, LPARAM lParam)
    {
      if (message == m_DbChgMsg)
      {
       // interpret the lParam as a handle of a tag
        HPT hPt = (HPT) lParam;
        // Get the tag associated with this message.
        COcxTag* pTag = (COcxTag*) GetExtraLong(hPt,
    0);
        if (!pTag)
        return false;
        // Get the sink associated with this tag.
        ITagChange* pSink = (ITagChange*)
    GetExtraLong(hPt, sizeof(LONG));
        // if there is a sink call it else call tags
    virtual method.
        if (pSink)
        pSink->OnTagChange(pTag);
        else
        pTag->OnTagChange(NULL);
      return TRUE;
      }
      return CWnd::WindowProc(message, wParam, lParam);
    }
    OnTagChange:
    void CPropSink::OnTagChange(COcxTag*)
    {
      // make sure there is a property object associated with this
    tag
      // if not then initialize one
      if (!m_pProp)
      InitProperty( );
      // verify that there is a property, tag and that the
    association between
      // the two indicates that the tag changes the property (this
    relationship
      // is defined by the graphic on the property page when the
    association
      // is defined)
      if (m_bIgnoreChange ∥ !m_pProp ∥ !m_pTag ∥
      ((m_assocType != TAG_CHANGES_PROP) &&
      (m_assocType != BOTH)))
      return;
      // some flags here solve some timing problems intended to
    solve
      // circular events. ie. Tag change property which changes
    tag which
      // changes property...
      m_bIgnoreChange = true;
      m_pProp->SetValue(m_pTag->GetValue( ));
      m_bIgnoreChange = false;
  • Execution of Container Scripts in Response to Events
  • As is indicated by FIG. 3, the dialog box of a bound object represents any association existing between event occurrences in the object and scripts defined by the container application. In the exemplary embodiment of FIG. 3, a user may alter such associations by performing editing operations upon the dialog box displayed by the events page.
  • In CODE SECTION II below, exemplary code is provided for effecting the association of event occurrences to the execution of container scripts contemplated by the present invention. Specifically, CODE SECTION II includes the definition of a class “CScriptSink” disposed to facilitate implementation of the event sinks described with reference to FIG. 6. In particular, CScriptSink causes event notification messages generated by the bound object to be registered and sent to the container application. CODE SECTION II further includes definition of a class defined as “COcxItem”, which is responsible for creating control sites in response to instantiation of bound objects as described above with reference to FIG. 4. Also defined is the member function “OnCmdMsg”, which is operative to: (i) determine the type of an event notification which has occurred, (ii) locate the associated container script per the relationship defined in the applicable events page (e.g., FIG. 3), and (iii) cause execution of the associated script. Calls to the function OnCmdMsg may be made in accordance with the standard COM protocol.
    CODE SECTION II
    COcxItem:
    BOOL COcxItem::OnCmdMsg(UINT nID, int nCode, void* pExtra,
          AFX_CMDHANDLERINFO* pHandlerInfo)
    {
     AFX_EVENT* pEvent = (AFX_EVENT*) pExtra;
     if (nCode == CN_EVENT && !m_bDesignMode)
     {
      COcxSink* pSink = NULL;
      switch (pEvent->m_eventKind)
      {
       case AFX_EVENT::event:
       {
        // get the event sinks
             CString sText;
        pSink = m_EventSinks.GetItem(pEvent->m_dispid);
        if (!pSink)
         return false;
        // create an event object
             COcxEvent event(pEvent, this);
             // Get the script name for the current event
             sText = pSink->GetText( );
        // cause the script to execute
             pSink->OnEvent(&event, sText);
        return true;
       }
           //
           // other cases here
           //
      }
     }
     return CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
    CScriptSink:
    void CScriptSink::OnEvent(COcxEvent* pEvent, CString szScriptName)
    {
    CString szComposed;
    CString szEventName;
    UINT  dwParamCount;
    UINT  dwIndex;
    CString szParamName;
    _variant_t vtParamValue;
    CEventTableUtil event;
    // essentially build up a structure that holds the types
      // and values for the script to execute properly
      szEventName = pEvent->GetEventName( );
    dwParamCount = pEvent->GetParamCount( );
    szComposed = szEventName;
    for (dwIndex=0; dwIndex < dwParamCount; dwIndex++)
    {
     szParamName = pEvent->GetParamName(dwIndex);
     vtParamValue = pEvent->GetParamValue(dwIndex);
     szComposed += szParamName;
     event.AddNamedVariant((LPCSTR)szComposed, vtParamValue);
     szComposed = szEventName;
    }
      // register the message
      wWizardCallMsg =
      RegisterWindowMessage(“InTouchWizardCallMsg”);
      // send the registered message over to the main application
    OesExecuteScript(m_sText, pEvent->GetOcxInstanceName( ));
      // clear out the table of parameter information
    event.ResetContent( );
  • Although the above application has been described primarily in terms of particular implementations of techniques for creating associations between contained objects and various parameters of container applications, one skilled in the art will be able to develop alternative implementations based upon the teachings herein. Thus the application is meant only to be limited by the scope of the appended claims.

Claims (30)

1. A method for creating a persistent association between a factory automation parameter of a container application operative within a computing environment and a property of a contained object instantiated within said computing environment, wherein said property relates to attributes of said contained object and said container application is configured to provide a visual interface representative of states of said factory automation parameter, said method comprising the steps of:
defining a persistent associative relationship between said factory automation parameter and said property, said persistent associative relationship being determinative of the extent to which changes in said factory automation parameter and said property will induce corresponding changes in the other; and
recording said persistent associative relationship within a property sink of a control site of said container application, said control site being created upon instantiation of said contained object within said computing environment wherein said contained object facilitates provision of a visual indication of ones of said states of said factory automation parameter.
2. The method of claim 1 wherein said factory automation parameter provides state information relating to at least one of said monitored parameters.
3. The method of claim 2 wherein said state information is selected from the set consisting of: pressure, temperature, and flow rate.
4. A system for creating a persistent association between a factory automation parameter of a container application operative within a computing environment and a property of a contained object instantiated within said computing environment, wherein said property relates to attributes of said contained object and said container application is configured to provide a visual interface representative of states of said factory automation parameter, said system comprising:
means for defining a persistent associative relationship between said factory automation parameter and said property, said persistent associative relationship being determinative of the extent to which changes in said factory automation parameter and said property will induce corresponding changes in the other wherein said contained object facilitates provision of a visual indication of ones of said states of said factory automation parameter; and
a control site associated with said container application, said control site including a property sink within which is recorded said persistent associative relationship.
5. The system of claim 4 wherein said factory automation parameter provides state information relating to at least one of said monitored parameters.
6. The system of claim 5 wherein said state information is selected from the set consisting of: pressure, temperature, and flow rate.
7. A method for creating a persistent association between a tag source of a container application operative within a computing environment and a property of a contained object instantiated within said computing environment, wherein said property relates to attributes of said contained object and said container application is configured to provide a visual interface representative of states of monitored parameters of an industrial process, said method comprising the steps of:
defining a persistent associative relationship between said tag source and said property, said persistent associative relationship being determinative of the extent to which changes in said tag source and said property will induce corresponding changes in the other; and
recording said persistent associative relationship within a property sink of a control site of said container application, said control site being created upon instantiation of said contained object within said computing environment wherein said contained object facilitates provision of a visual indication of ones of said states of at least one of said monitored parameters defined by said tag source.
8. The method of claim 7 wherein said defining an associative relationship includes specifying a unilateral associative relationship permitting changes in said tag source to be reflected as corresponding changes in said property, but not permitting changes in said property to be reflected as corresponding changes in said tag source.
9. The method of claim 7 wherein said defining an associative relationship includes specifying a unilateral associative relationship permitting changes in said property to be reflected as corresponding changes in said tag source, but not permitting changes in said tag source to be reflected as corresponding changes in said property.
10. The method of claim 7 wherein said defining an associative relationship includes the step of specifying a mutual associative relationship permitting changes in said tag source to be reflected as corresponding changes in said property, and vice versa.
11. The method of claim 7 wherein said defining an associative relationship includes the step of selecting one of a plurality of predefined associative relationships.
12. The method of claim 7 wherein said tag source provides state information relating to at least one of said monitored parameters.
13. The method of claim 12 wherein said state information is selected from the set consisting of: pressure, temperature, and flow rate.
14. The method of claim 7 further including regenerating said property sink upon execution of said container application and thereby creating a regenerated property sink, said regenerated property sink recording changes to said persistent associative relationship.
15. A system for creating a persistent association between a tag source of a container application operative within a computing environment and a property of a contained object instantiated within said computing environment, wherein said property relates to attributes of said contained object and said container application is configured to provide a visual interface representative of states of monitored parameters of an industrial process, said system comprising:
means for defining a persistent associative relationship between said tag source and said property, said persistent associative relationship being determinative of the extent to which changes in said tag source and said property will induce corresponding changes in the other wherein said contained object facilitates provision of a visual indication of ones of said states of at least one of said monitored parameters defined by said tag source; and
a control site associated with said container application, said control site including a property sink within which is recorded said persistent associative relationship.
16. The system of claim 15 wherein said means for defining an associative relationship includes a user interface enabling specification of a unilateral associative relationship, said unilateral associative relationship permitting changes in said tag source to be reflected as corresponding changes in said property but not permitting changes in said property to be reflected as corresponding changes in said tag source.
17. The system of claim 15 wherein said means for defining an associative relationship includes a user interface enabling specification of a unilateral associative relationship, said unilateral associative relationship permitting changes in said property to be reflected as corresponding changes in said tag source but not permitting changes in said tag source to be reflected as corresponding changes in said property.
18. The system of claim 15 wherein said means for defining an associative relationship includes a user interface enabling specification of a mutual associative relationship, said mutual associative relationship permitting changes in said tag source to be reflected as corresponding changes in said property, and vice versa.
19. The system of claim 15 wherein said means for defining an associative relationship includes a user interface enabling selection of one of a plurality of predefined associative relationships.
20. The system of claim 15 wherein said property sink includes a first field for storing a pointer to a tag object representative of said tag source, and a second field for storing a pointer to a property object representative of said property of said contained object.
21. The system of claim 20 wherein said tag object includes a tagname field and a status field, and wherein said property object includes a field indicative of said associative relationship.
22. The system of claim 15 wherein said tag source provides state information relating to at least one of said monitored parameters.
23. The system of claim 22 wherein said state information is selected from the set consisting of: pressure, temperature, and flow rate.
24. The system of claim 15 further including means for regenerating said property sink upon execution of said container application in order to thereby create a regenerated property sink, said regenerated property sink recording changes to said persistent associative relationship.
25. A system for creating a persistent association between a parameter of a container application operative within a computing environment and a property of a contained object instantiated within said computing environment, said container application being configured to provide a visual interface representative of states of monitored parameters of an industrial process, said system comprising:
a control site associated with said container application; and
a property sink included within said control site, said property sink recording a persistent associative relationship established between said parameter and said property during instantiation of said contained object within said computing environment wherein said contained object facilitates provision of a visual indication of ones of said states of at least one of said monitored parameters, said persistent associative relationship being determinative of the extent to which changes in said parameter and said property will induce corresponding changes in the other.
26. The system of claim 25 further including a user interface enabling specification of said associative relationship as a unilateral associative relationship, said unilateral associative relationship permitting changes in said parameter to be reflected as corresponding changes in said property but not permitting changes in said property to be reflected as corresponding changes in said parameter.
27. The system of claim 25 further including a user interface enabling specification of said associative relationship as a unilateral associative relationship, said unilateral associative relationship permitting changes in said property to be reflected as corresponding changes in said parameter but not permitting changes in said parameter to be reflected as corresponding changes in said property.
28. The system of claim 25 further including a user interface enabling specification of said associative relationship as a mutual associative relationship, said mutual associative relationship permitting changes in said parameter to be reflected as corresponding changes in said property, and vice versa.
29. The system of claim 25 wherein said property sink includes a first field for storing a pointer to a tag object representative of said parameter, and a second field for storing a pointer to a property object representative of said property of said contained object.
30. The system of claim 25 further including means for regenerating said property sink upon execution of said container application in order to thereby create a regenerated property sink, said regenerated property sink recording changes to said persistent associative relationship.
US10/939,109 1998-10-07 2004-09-10 Method and system for associating parameters of containers and contained objects Abandoned US20050091664A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/939,109 US20050091664A1 (en) 1998-10-07 2004-09-10 Method and system for associating parameters of containers and contained objects
US12/608,897 US8020173B2 (en) 1998-10-07 2009-10-29 Method and system for associating parameters of containers and contained objects

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10336298P 1998-10-07 1998-10-07
US09/241,938 US6810522B2 (en) 1998-10-07 1999-02-01 Method and system for associating parameters of containers and contained objects
US10/939,109 US20050091664A1 (en) 1998-10-07 2004-09-10 Method and system for associating parameters of containers and contained objects

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/241,938 Continuation US6810522B2 (en) 1998-10-07 1999-02-01 Method and system for associating parameters of containers and contained objects

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/608,897 Continuation US8020173B2 (en) 1998-10-07 2009-10-29 Method and system for associating parameters of containers and contained objects

Publications (1)

Publication Number Publication Date
US20050091664A1 true US20050091664A1 (en) 2005-04-28

Family

ID=26800380

Family Applications (3)

Application Number Title Priority Date Filing Date
US09/241,938 Expired - Lifetime US6810522B2 (en) 1998-10-07 1999-02-01 Method and system for associating parameters of containers and contained objects
US10/939,109 Abandoned US20050091664A1 (en) 1998-10-07 2004-09-10 Method and system for associating parameters of containers and contained objects
US12/608,897 Expired - Fee Related US8020173B2 (en) 1998-10-07 2009-10-29 Method and system for associating parameters of containers and contained objects

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/241,938 Expired - Lifetime US6810522B2 (en) 1998-10-07 1999-02-01 Method and system for associating parameters of containers and contained objects

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/608,897 Expired - Fee Related US8020173B2 (en) 1998-10-07 2009-10-29 Method and system for associating parameters of containers and contained objects

Country Status (4)

Country Link
US (3) US6810522B2 (en)
AU (1) AU6414899A (en)
DE (1) DE19983626T1 (en)
WO (1) WO2000020963A2 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214111A1 (en) * 2006-03-10 2007-09-13 International Business Machines Corporation System and method for generating code for an integrated data system
US20070214171A1 (en) * 2006-03-10 2007-09-13 International Business Machines Corporation Data flow system and method for heterogeneous data integration environments
US20070214176A1 (en) * 2006-03-10 2007-09-13 International Business Machines Corporation Dilation of sub-flow operators in a data flow
US20080092112A1 (en) * 2006-10-11 2008-04-17 International Business Machines Corporation Method and Apparatus for Generating Code for an Extract, Transform, and Load (ETL) Data Flow
US20080147707A1 (en) * 2006-12-13 2008-06-19 International Business Machines Corporation Method and apparatus for using set based structured query language (sql) to implement extract, transform, and load (etl) splitter operation
US20080147703A1 (en) * 2006-03-10 2008-06-19 International Business Machines Corporation Method and Apparatus for Managing Application Parameters
US20080168082A1 (en) * 2007-01-09 2008-07-10 Qi Jin Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (etl) process
US20090031293A1 (en) * 2007-07-27 2009-01-29 Paul Marsala Contained command invocation middleware framework
US7895296B1 (en) * 2006-12-29 2011-02-22 Google, Inc. Local storage for web based native applications
US8248636B1 (en) 2006-12-29 2012-08-21 Google Inc. WYSIWYG printing for web based applications
US8335817B1 (en) 2006-12-29 2012-12-18 Google Inc. Message passing within a web based application framework
US20130205023A1 (en) * 2007-06-22 2013-08-08 International Business Machines Corporation System and method for determining and optimizing resources of data processing system utilized by a service request
US8539073B1 (en) 2006-12-29 2013-09-17 Google Inc. Startup of container applications
US8612547B1 (en) 2006-12-29 2013-12-17 Google Inc. Container interrupt services
US9384346B1 (en) 2006-12-29 2016-07-05 Google Inc. Local service access within a web based application framework

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP577298A0 (en) * 1998-09-09 1998-10-01 Oon, Yeong Kuang Dr Automation oriented health care delivery system based on medical scripting language
US6810522B2 (en) * 1998-10-07 2004-10-26 Invensys Systems, Inc. Method and system for associating parameters of containers and contained objects
EP1043657A1 (en) * 1999-04-06 2000-10-11 Siemens Aktiengesellschaft Software object, system and method for an automation program with function rules with multiple use for different programming tools
US7234146B1 (en) * 1999-07-30 2007-06-19 International Business Machines Corporation Object in, object out technique
US6675193B1 (en) * 1999-10-29 2004-01-06 Invensys Software Systems Method and system for remote control of a local system
US6959425B1 (en) * 1999-12-15 2005-10-25 Sun Microsystems, Inc. System and method for managing a scalable list of items for display
FR2827401B1 (en) * 2001-07-10 2003-12-05 Mondial Comm Systems COMPUTER PROCESSING OF AUDIOVISUAL DATA
US7490332B2 (en) * 2003-04-04 2009-02-10 Sesma Systems, Inc. System and method for accessing ActiveX objects in a platform dependent environment from objects in a platform independent environment
US7478408B2 (en) * 2003-04-04 2009-01-13 Sesma Systems, Inc. System and method for accessing objects in a platform dependent environment from a platform independent environment
US7139969B1 (en) * 2003-06-13 2006-11-21 Microsoft Corporation Method and system for evaluating and connecting web parts
US7574450B2 (en) * 2005-04-19 2009-08-11 International Business Machines Corporation Method for sharing an object between applications
WO2007068090A1 (en) * 2005-12-12 2007-06-21 Audiokinetic Inc. System and method for authoring media content
DE102006051186A1 (en) * 2006-10-30 2008-05-08 Siemens Ag Infrastructure service architecture for applications
US8201147B2 (en) * 2008-02-08 2012-06-12 Microsoft Corporation Generic XAD processing model
US8886688B2 (en) * 2008-12-29 2014-11-11 Oracle International Corporation Type neutral container
WO2011139162A2 (en) * 2010-05-01 2011-11-10 Core Technology Limited Process execution components
US8909641B2 (en) 2011-11-16 2014-12-09 Ptc Inc. Method for analyzing time series activity streams and devices thereof
US9098312B2 (en) 2011-11-16 2015-08-04 Ptc Inc. Methods for dynamically generating an application interface for a modeled entity and devices thereof
US9576046B2 (en) 2011-11-16 2017-02-21 Ptc Inc. Methods for integrating semantic search, query, and analysis across heterogeneous data types and devices thereof
JP6285010B2 (en) 2013-03-15 2018-02-28 ピーティーシー インコーポレイテッド Method and apparatus for managing applications using semantic modeling and tagging
US9762637B2 (en) 2014-03-21 2017-09-12 Ptc Inc. System and method of using binary dynamic rest messages
US10313410B2 (en) 2014-03-21 2019-06-04 Ptc Inc. Systems and methods using binary dynamic rest messages
US9350791B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of injecting states into message routing in a distributed computing environment
US9560170B2 (en) 2014-03-21 2017-01-31 Ptc Inc. System and method of abstracting communication protocol using self-describing messages
US9350812B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of message routing using name-based identifier in a distributed computing environment
US9462085B2 (en) 2014-03-21 2016-10-04 Ptc Inc. Chunk-based communication of binary dynamic rest messages
US9961058B2 (en) 2014-03-21 2018-05-01 Ptc Inc. System and method of message routing via connection servers in a distributed computing environment
US9467533B2 (en) 2014-03-21 2016-10-11 Ptc Inc. System and method for developing real-time web-service objects
US10338896B2 (en) 2014-03-21 2019-07-02 Ptc Inc. Systems and methods for developing and using real-time data applications
US10025942B2 (en) 2014-03-21 2018-07-17 Ptc Inc. System and method of establishing permission for multi-tenancy storage using organization matrices
US10216512B1 (en) * 2016-09-29 2019-02-26 Amazon Technologies, Inc. Managed multi-container builds
US10754761B2 (en) * 2016-11-11 2020-08-25 Atlassian Pty Ltd Systems and methods for testing source code
US11500980B2 (en) 2020-02-11 2022-11-15 International Business Machines Corporation Automated and auditable framework to control software component changes in an application build process

Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243594A (en) * 1990-09-04 1993-09-07 Siemens Aktiengesellschaft Method for transmitting message blocks between transmission lines of a telecommunication processor system assigned to one another in existing connections
US5301326A (en) * 1991-09-24 1994-04-05 Microsoft Corporation Method and system for controlling the execution of an application program
US5404528A (en) * 1993-01-19 1995-04-04 Canon Information Systems, Inc. Scripting system
US5432903A (en) * 1992-11-19 1995-07-11 Borland International, Inc. Object browsing and a filter interface using a displayed dip switch in an object-oriented development sytem
US5440741A (en) * 1993-09-20 1995-08-08 Motorola, Inc. Software overload control method
US5715413A (en) * 1996-06-25 1998-02-03 International Business Machines Corporation Dragging and dropping with an instantiation object
US5754175A (en) * 1992-12-01 1998-05-19 Microsoft Corporation Method and system for in-place interaction with contained objects
US5815703A (en) * 1996-06-28 1998-09-29 Microsoft Corporation Computer-based uniform data interface (UDI) method and system using an application programming interface (API)
US5822527A (en) * 1990-05-04 1998-10-13 Digital Equipment Corporation Method and apparatus for information stream filtration using tagged information access and action registration
US5844554A (en) * 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
US5862395A (en) * 1990-08-24 1999-01-19 Xerox Corporation Customizable user interfaces for programmed computer systems
US5867707A (en) * 1993-09-30 1999-02-02 Hitachi Software Engineering Co., Ltd. Device for building programs employing objects linkage information
US5878260A (en) * 1995-11-06 1999-03-02 International Business Machines Corporation Information handling system, method, and article of manufacture including object name services with multilevel indices
US5933601A (en) * 1996-09-30 1999-08-03 Ncr Corporation Method for systems management of object-based computer networks
US5951680A (en) * 1997-06-24 1999-09-14 International Business Machines Corporation Configurator object
US5963958A (en) * 1997-07-18 1999-10-05 Electronic Data Systems Corporation Method and system for generating object definitions
US5974410A (en) * 1996-06-28 1999-10-26 Microsoft Corporation Method and system for filtering in a uniform data interface
US6049799A (en) * 1997-05-12 2000-04-11 Novell, Inc. Document link management using directory services
US6049831A (en) * 1996-11-08 2000-04-11 Gte Laboratories Incorporated System for transmitting network-related information where requested network information is separately transmitted as definitions and display information
US6263339B1 (en) * 1998-08-25 2001-07-17 Informix Software, Inc. Dynamic object visualization and code generation
US6282547B1 (en) * 1998-08-25 2001-08-28 Informix Software, Inc. Hyperlinked relational database visualization system
US6834388B1 (en) * 1998-03-13 2004-12-21 Iconics, Inc. Process control
US6915301B2 (en) * 1998-08-25 2005-07-05 International Business Machines Corporation Dynamic object properties

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2522898B2 (en) * 1992-09-08 1996-08-07 インターナショナル・ビジネス・マシーンズ・コーポレイション Dynamic customization method and graphic resource editor
US5485617A (en) * 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US5911068A (en) * 1995-03-30 1999-06-08 Microsoft Corporation Container independent control architecture
US5917730A (en) * 1995-08-17 1999-06-29 Gse Process Solutions, Inc. Computer implemented object oriented visualization system and method
US5873106A (en) * 1995-09-18 1999-02-16 Oracle Corporation Geometry management for displaying objects on a computer
US5870088A (en) * 1996-05-09 1999-02-09 National Instruments Corporation System and method for editing a control via direct graphical user interaction
US6178432B1 (en) * 1996-09-30 2001-01-23 Informative Graphics Corp. Method and apparatus for creating interactive web page objects
US6091893A (en) * 1997-03-10 2000-07-18 Ncr Corporation Method for performing operations on informational objects by visually applying the processes defined in utility objects in an IT (information technology) architecture visual model
US6268852B1 (en) * 1997-06-02 2001-07-31 Microsoft Corporation System and method for facilitating generation and editing of event handlers
US6035119A (en) * 1997-10-28 2000-03-07 Microsoft Corporation Method and apparatus for automatic generation of text and computer-executable code
US6289395B1 (en) * 1997-11-24 2001-09-11 International Business Machines Corporation Generic Java-based event processor for scripting Java beans
US6810522B2 (en) * 1998-10-07 2004-10-26 Invensys Systems, Inc. Method and system for associating parameters of containers and contained objects

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822527A (en) * 1990-05-04 1998-10-13 Digital Equipment Corporation Method and apparatus for information stream filtration using tagged information access and action registration
US5862395A (en) * 1990-08-24 1999-01-19 Xerox Corporation Customizable user interfaces for programmed computer systems
US5243594A (en) * 1990-09-04 1993-09-07 Siemens Aktiengesellschaft Method for transmitting message blocks between transmission lines of a telecommunication processor system assigned to one another in existing connections
US5301326A (en) * 1991-09-24 1994-04-05 Microsoft Corporation Method and system for controlling the execution of an application program
US5432903A (en) * 1992-11-19 1995-07-11 Borland International, Inc. Object browsing and a filter interface using a displayed dip switch in an object-oriented development sytem
US5754175A (en) * 1992-12-01 1998-05-19 Microsoft Corporation Method and system for in-place interaction with contained objects
US5404528A (en) * 1993-01-19 1995-04-04 Canon Information Systems, Inc. Scripting system
US5440741A (en) * 1993-09-20 1995-08-08 Motorola, Inc. Software overload control method
US5867707A (en) * 1993-09-30 1999-02-02 Hitachi Software Engineering Co., Ltd. Device for building programs employing objects linkage information
US5878260A (en) * 1995-11-06 1999-03-02 International Business Machines Corporation Information handling system, method, and article of manufacture including object name services with multilevel indices
US5715413A (en) * 1996-06-25 1998-02-03 International Business Machines Corporation Dragging and dropping with an instantiation object
US5815703A (en) * 1996-06-28 1998-09-29 Microsoft Corporation Computer-based uniform data interface (UDI) method and system using an application programming interface (API)
US5974410A (en) * 1996-06-28 1999-10-26 Microsoft Corporation Method and system for filtering in a uniform data interface
US5844554A (en) * 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
US5933601A (en) * 1996-09-30 1999-08-03 Ncr Corporation Method for systems management of object-based computer networks
US6049831A (en) * 1996-11-08 2000-04-11 Gte Laboratories Incorporated System for transmitting network-related information where requested network information is separately transmitted as definitions and display information
US6049799A (en) * 1997-05-12 2000-04-11 Novell, Inc. Document link management using directory services
US5951680A (en) * 1997-06-24 1999-09-14 International Business Machines Corporation Configurator object
US5963958A (en) * 1997-07-18 1999-10-05 Electronic Data Systems Corporation Method and system for generating object definitions
US6834388B1 (en) * 1998-03-13 2004-12-21 Iconics, Inc. Process control
US6263339B1 (en) * 1998-08-25 2001-07-17 Informix Software, Inc. Dynamic object visualization and code generation
US6282547B1 (en) * 1998-08-25 2001-08-28 Informix Software, Inc. Hyperlinked relational database visualization system
US6915301B2 (en) * 1998-08-25 2005-07-05 International Business Machines Corporation Dynamic object properties

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070214171A1 (en) * 2006-03-10 2007-09-13 International Business Machines Corporation Data flow system and method for heterogeneous data integration environments
US20070214176A1 (en) * 2006-03-10 2007-09-13 International Business Machines Corporation Dilation of sub-flow operators in a data flow
US20070244876A1 (en) * 2006-03-10 2007-10-18 International Business Machines Corporation Data flow system and method for heterogeneous data integration environments
US9361137B2 (en) 2006-03-10 2016-06-07 International Business Machines Corporation Managing application parameters based on parameter types
US20080147703A1 (en) * 2006-03-10 2008-06-19 International Business Machines Corporation Method and Apparatus for Managing Application Parameters
US20070214111A1 (en) * 2006-03-10 2007-09-13 International Business Machines Corporation System and method for generating code for an integrated data system
US9727604B2 (en) 2006-03-10 2017-08-08 International Business Machines Corporation Generating code for an integrated data system
US7689576B2 (en) 2006-03-10 2010-03-30 International Business Machines Corporation Dilation of sub-flow operators in a data flow
US7689582B2 (en) 2006-03-10 2010-03-30 International Business Machines Corporation Data flow system and method for heterogeneous data integration environments
US7739267B2 (en) 2006-03-10 2010-06-15 International Business Machines Corporation Classification and sequencing of mixed data flows
US8099725B2 (en) 2006-10-11 2012-01-17 International Business Machines Corporation Method and apparatus for generating code for an extract, transform, and load (ETL) data flow
US20080092112A1 (en) * 2006-10-11 2008-04-17 International Business Machines Corporation Method and Apparatus for Generating Code for an Extract, Transform, and Load (ETL) Data Flow
US20080147707A1 (en) * 2006-12-13 2008-06-19 International Business Machines Corporation Method and apparatus for using set based structured query language (sql) to implement extract, transform, and load (etl) splitter operation
US8160999B2 (en) 2006-12-13 2012-04-17 International Business Machines Corporation Method and apparatus for using set based structured query language (SQL) to implement extract, transform, and load (ETL) splitter operation
US9686322B2 (en) 2006-12-29 2017-06-20 Google Inc. Container interrupt services
US7895296B1 (en) * 2006-12-29 2011-02-22 Google, Inc. Local storage for web based native applications
US9384346B1 (en) 2006-12-29 2016-07-05 Google Inc. Local service access within a web based application framework
US8248636B1 (en) 2006-12-29 2012-08-21 Google Inc. WYSIWYG printing for web based applications
US8335817B1 (en) 2006-12-29 2012-12-18 Google Inc. Message passing within a web based application framework
US8539073B1 (en) 2006-12-29 2013-09-17 Google Inc. Startup of container applications
US8612547B1 (en) 2006-12-29 2013-12-17 Google Inc. Container interrupt services
US20080168082A1 (en) * 2007-01-09 2008-07-10 Qi Jin Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (etl) process
US8903762B2 (en) 2007-01-09 2014-12-02 International Business Machines Corporation Modeling data exchange in a data flow of an extract, transform, and load (ETL) process
US8219518B2 (en) 2007-01-09 2012-07-10 International Business Machines Corporation Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process
US20130205023A1 (en) * 2007-06-22 2013-08-08 International Business Machines Corporation System and method for determining and optimizing resources of data processing system utilized by a service request
US9515909B2 (en) * 2007-06-22 2016-12-06 International Business Machines Corporation System and method for determining and optimizing resources of data processing system utilized by a service request
US8533748B2 (en) 2007-07-27 2013-09-10 Composite Ideas, Llc Contained command invocation framework
US8352971B2 (en) 2007-07-27 2013-01-08 Composite Ideas, Llc Contained command invocation framework
US8020177B2 (en) 2007-07-27 2011-09-13 Composite Ideas, Llc Contained command invocation middleware framework
US20090031293A1 (en) * 2007-07-27 2009-01-29 Paul Marsala Contained command invocation middleware framework

Also Published As

Publication number Publication date
US20020099868A1 (en) 2002-07-25
US20100115531A1 (en) 2010-05-06
US6810522B2 (en) 2004-10-26
WO2000020963A2 (en) 2000-04-13
AU6414899A (en) 2000-04-26
DE19983626T1 (en) 2001-09-27
WO2000020963A3 (en) 2000-11-23
US8020173B2 (en) 2011-09-13

Similar Documents

Publication Publication Date Title
US6810522B2 (en) Method and system for associating parameters of containers and contained objects
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
US6064382A (en) Object oriented apparatus and method for providing a graphical user interface for host-based software applications
US5555365A (en) Method and system for optimizing static and dynamic binding of presentation objects with the object data they represent
US6496202B1 (en) Method and apparatus for generating a graphical user interface
EP0654735B1 (en) Apparatus and methods for analyzing a system of processes
US5896532A (en) Objects with run-time classes and methods of making them
US6102967A (en) Testing a help system of a computer software application without executing the computer software application
US6704743B1 (en) Selective inheritance of object parameters in object-oriented computer environment
US6198480B1 (en) Object-oriented tag browser
US5261098A (en) Method and apparatus for deriving object type and obtaining object type attribute values
US5446902A (en) Method for implementing computer applications in an object oriented manner using a traditional non-object oriented programming language
US6523134B2 (en) Selective undo
US20010005852A1 (en) Active debugging environment for applications containing compiled and interpreted programming language code
JP5820339B2 (en) Extended attributes of applications generated using 4th generation programming tools
JPH10511202A (en) Recoverable proxy objects in an object-oriented environment
JPH0756643B2 (en) System and method for providing an object oriented interface standard
US6826760B1 (en) Methods of factoring operating system functions, methods of converting operating systems, and related apparatus
US7685605B1 (en) Distributed framework for intertask communication between workstation applications
KR20000011602A (en) System and method for providing graphical user interface control enhancers
KR19990077425A (en) Data processing apparatus, method and computer program product facilitating polymorphic behaviour from static object interfaces
urgen Herczeg et al. Programming and Reference Manual
Heeman et al. Interaction objects in the MADE multimedia environment
Whittington et al. Using ToolTalk to Implement a Distributed Discrete Simulation Environment
能登宏 Development of a Management Support System on the Windows Platform (III-Part 1): Message Pumping and Message Handling

Legal Events

Date Code Title Description
AS Assignment

Owner name: DEUTSCHE BANK AG, LONDON BRANCH,UNITED KINGDOM

Free format text: SECURITY AGREEMENT;ASSIGNOR:INVENSYS SYSTEMS, INC.;REEL/FRAME:017921/0766

Effective date: 20060713

Owner name: DEUTSCHE BANK AG, LONDON BRANCH, UNITED KINGDOM

Free format text: SECURITY AGREEMENT;ASSIGNOR:INVENSYS SYSTEMS, INC.;REEL/FRAME:017921/0766

Effective date: 20060713

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: INVENSYS SYSTEMS, INC., MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:DEUTSCHE BANK AG, LONDON BRANCH;REEL/FRAME:030982/0737

Effective date: 20080723