WO2002049281A2 - Methods and apparatus for creating a user interface using property paths - Google Patents
Methods and apparatus for creating a user interface using property paths Download PDFInfo
- Publication number
- WO2002049281A2 WO2002049281A2 PCT/US2001/048335 US0148335W WO0249281A2 WO 2002049281 A2 WO2002049281 A2 WO 2002049281A2 US 0148335 W US0148335 W US 0148335W WO 0249281 A2 WO0249281 A2 WO 0249281A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- property
- ofthe
- path
- application
- identifier
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Definitions
- the present invention relates to client-server networks and, in particular, to methods and
- Contemporary computer networks consist of a number of computer systems, called nodes, communicating with other computer systems via communication links.
- nodes communicating with other computer systems via communication links.
- client nodes are client nodes and other nodes are server nodes.
- a client node formulates and delivers
- a user ofthe client node enters the queries through a user-interface operating on the client node.
- the server node evaluates the queries and delivers responses to the
- client node for display on the client user-interface.
- the server nodes host a variety of application programs or processes that can be accessed and executed by client nodes.
- client nodes launches an application program, the execution of that application program can occur at either the client node or the server node,
- the application program is packaged and sent down to, or pre-installed on, the client node, allowing the client node to run the application using the
- the client node must have sufficient memory, disk space, and processing power to effectively execute the application.
- a related problem that occurs using this model is that the number of applications a given client is
- the server node executes the application program
- a refinement ofthe server-based model is to supplant the device driver to which the application communicates in order to send screen and device updates back and forth between the
- This approach avoids requiring applications to be rewritten.
- this approach requires device information to be sent between the client and the server in order to
- server-side processing requirements are increased in order to satisfy resulting device information required for communication with each connected client.
- a recent, further refinement ofthe server-based model is to deploy the user-interface portion
- mark-up language document such as Hyper Text Markup Language
- HTML HyperText
- Standard and emerging approaches to application development for Web application delivery rely on one of two approaches.
- the first approach is adapting 'page based' application delivery code (e.g., servlets) to more dynamic use (e.g., sequence of servlets).
- the second approach is wiring user-interface components to server components.
- the first approach has the advantage of
- Generating applications with a user-interface using several pages (or dialogues) typically requires coordinating the server-side components to generate each page on an individual basis. This coordination becomes very difficult as the number of pages or the number of clients
- UI design including layout and formatting.
- the present invention avoids these shortcomings.
- the present invention provides a mechanism by which the user-interface portion ofthe application can be delivered to the
- the invention separates the user- interface from the underlying application enabling the design ofthe user interactive portion ofthe
- the invention also permits the user interactive portion to be deployed on a wide range of
- the invention also allows the user-interface
- the invention connects the user-interface to objects using property paths.
- Property paths represent abstract paths and this abstract quality allows the UI to
- the invention relates to a method of associating an element of a user- interface to a current state of a property in a system including an application having a plurality of
- the method comprises associating the element ofthe user-interface with a
- the property path including a concatenation of a plurality of identifiers
- the method includes a) examining each identifier in the concatenation ofthe property path in succession, b) determining, for the first identifier in the concatenation ofthe property path, a second state of a property with a name identical to the first identifier, a component ofthe
- the first identifier a component ofthe application to which the second state points as a current application component, d) mapping the first identifier to the second state, e) determining for the next identifier in the concatenation ofthe property path, a next state of a property with a name
- the method includes mapping the property path to an undefined state if no property is found that
- the method includes generating a node tree having a plurality of nodes, wherein each node ofthe node tree represents a mapping of an identifier to one of, a state
- the node tree represents a plurality
- the method includes monitoring a plurality of states within the application to detect a change in one ofthe states ofthe plurality of states, each state
- the method includes receiving a property change event
- the method includes re-mapping the property path to a new current state in response to detecting the change in one ofthe states ofthe plurality of states. In another embodiment, the method includes re-mapping the identifier the concatenation of
- the method includes generating a property change
- the method includes updating one or more user-interface elements associated with the property path with a new current state in
- the method includes, a) detecting a change in one of a plurality of states in an application, each state in the plurality corresponding to one ofthe states mapped to an identifier in the concatenation ofthe property path, b) examining each identifier in the concatenation ofthe property path in succession, starting with an identifier corresponding to the
- the method includes terminating the
- the method includes monitoring a new plurality of states within the application, the new plurality including the new next states mapped
- the method includes mapping a second
- method includes determining the second value such that replacing the wildcard identifier ofthe first property path with the second value causes the current state mapped to the first property path with the replaced wildcard identifier to be equal to the value mapped to the second property path.
- the method includes dynamically binding the property path to one ofthe
- the method includes transmitting to the application a request to update the current state ofthe property mapped to the property path associated with the element ofthe user-interface in response to a user modification ofthe value.
- the method includes transmitting to the application a request to update the current state ofthe property mapped to the property path associated with the element ofthe user-interface in response to a user modification ofthe value.
- method includes inhibiting a property change message in response to the application updating the
- the method includes generating
- the maximum value by copying the given element associated with the property path and associating a new property path with each additional element.
- the method includes replacing the wildcard identifier associated with the given element with the corresponding index value ofthe additional element to define the new property path. In another embodiment, the method includes registering interest in the property path. In another
- the method includes mapping one ofthe identifiers in the concatenation ofthe property path to a state of a property corresponding to the one ofthe identifiers.
- the invention relates to a system for associating an element of a user-interface to a current state of a property of an application, wherein the application has a
- the system includes a property connector module to identify an association
- the property path including a
- the system includes a client node.
- the client node includes the user interface having one or more elements, and a client portion ofthe property connector
- the system includes a server node.
- the server node includes
- the invention relates to a method for creating a user-interface
- the method includes inserting at least one element into the user-interface, and associating at least one property path with one inserted element, the
- property path including a concatenation of a plurality of identifiers, the concatenation of
- the method includes determining a list of property
- the method includes receiving a property path description file associated with the application, the property path description file including a plurality of identifiers associated with the application and a relationship between the plurality of identifiers.
- the method includes executing the application, and interacting with the
- the method includes transmitting a request to register for a property change message corresponding to the property
- the predefined element comprises one of an image type user-interface element, an iterator type user-interface element, a text type user-interface element, a hidden type user-
- type user-interface element a dropdown type user-interface element, a radio type user-interface element, and a script type user-interface element.
- the invention relates to a system for creating a user-interface independently
- the system includes a property connector module to insert at least one element into the user-interface, and to associate at least one property path with one inserted element, the property path including a concatenation of a plurality of identifiers, the
- the system includes a client
- the client node includes the user interface having one or more elements, and a client
- the system includes a server node.
- the server node includes the application, and a server portion ofthe property connector
- the invention relates to a method using a system having an application
- the method associates a user-interface element, which is independent ofthe application, with a property ofthe application.
- the method includes executing a process that is independent ofthe application; representing a property ofthe application by a property path and associating, by the
- the method determines whether a property of an object ofthe application exists that corresponds to the property path.
- the determining process includes employing a value of a second property corresponding to a second property path (e.g., cross-
- the method includes monitoring a state ofthe property and detecting
- the process of detecting includes receiving a property change event from an API of a JANABEANTM compatible component.
- the method includes updating the user-interface element in response to detecting the change in the state ofthe property.
- the method includes generating a property change message in response to detecting the change in the state ofthe
- the method includes registering for a property
- method includes detecting a change in a state of one or more properties along the property path, and responding to a detected change in a value that the property path represents.
- the method includes determining at least one property path
- determining at least one property path includes traversing from a root object ofthe application to a corresponding property, using object pointers. In another embodiment, this includes mapping the traversal from a root object ofthe application to the corresponding property. In another
- the process of mapping includes generating a node tree.
- the method includes indicating which nodes in the node tree correspond to a property path that
- the method includes dynamically binding the property path to the object containing the represented property.
- the method includes allowing a user to modify a value associated with the user-interface element and updating the property ofthe application represented by the
- the method includes inhibiting a property change message in response to updating the property ofthe application in response to the user modification.
- the invention relates to a method using a server node having an application
- the method includes executing a process that is independent ofthe application, representing a property ofthe application by a property path
- this method includes determining whether a property of an object ofthe application exists that corresponds to the property path. In another embodiment, the
- process of determining includes employing a value of a second property corresponding to a
- second property path e.g., cross-mapping
- the method includes monitoring a state ofthe property and detecting
- the process of detecting includes receiving a property change event from an API of a JANABEANTM compatible component.
- the method includes transmitting the changed state in response to detecting the change in the state ofthe property. In another embodiment, the method includes generating a property change message in response to detecting the change in the state ofthe property. In
- the method includes registering the property change message ofthe request for the property represented by the property path.
- the method includes determining at least one property path
- the process of determining at least one property path includes traversing from a root object ofthe application to a corresponding
- the method includes mapping the
- the process of mapping includes generating a node tree.
- the method includes indicating which nodes in the node tree correspond to a property path the client has registered interest in.
- the method includes dynamically binding the property path to the object containing the represented property.
- the invention relates to a method using a client node having a user-
- the method includes executing a process independent ofthe
- the application by a property path and selecting, with the application-independent process, the property path or paths to associate with the user-interface element.
- the property path or paths to associate with the user-interface element.
- method includes transmitting a request to register for a property change message associated with the selected property path.
- the method includes receiving the property change message in response to a change in a state ofthe property represented by the property path.
- the method includes updating the user-interface element in response to notification ofthe change in the state ofthe property. In another embodiment, the method includes receiving
- the method includes inhibiting a property change message in response to transmitting the modified value associated with the user-interface element.
- the process of employing an element includes providing to the user at least
- the predefined element includes one or more ofthe following: displaying a property value as a piece of text, allowing the displayed property value to be edited, enabling a
- numeric properties displaying an image dependent on a property value, displaying an embedded frame dependent on a property value, an anchor dependent on a property value, ability to hide or
- element includes one or more ofthe following: selections of displaying one of a 'deck' of UI fragments dependent on a property value, a dropdown menu where each choice is a value from
- radio buttons a treeview based on property paths and the ability to repeat part of a UI once for
- Some objects of this invention are as follows: to allow simple UI development for
- the invention includes a system for providing rich /
- server types e.g., COM
- the system uses a 'loose' coupling mechanism, which allows the server-side application to
- New client types may be designed and deployed without touching the server code.
- a third party could design a new client type without the server's
- the user-interface for a particular application can be changed or ported to a new
- the user-interface can be tuned or given a new look and feel without disrupting the function ofthe application.
- the system takes advantage ofthe fact that most user-interfaces are essentially static. A large portion of a user-interface does not change at all.
- a typical example is a form. The form
- the dynamic aspect of a user-interface generally consists of changes to the static page 'template'
- the invention keeps standard Web-metaphors.
- the invention adds only the ability to fill in a page template dynamically.
- the invention allows the static aspect of a user- interface to be developed using standard UI development tools. These tools can be extended (or additional tools provided) to add the dynamic aspect ofthe UI. Because ofthe approach taken to
- FIG. 1 is a block diagram of an embodiment of property path associations constructed in
- FIG. 2 is a block diagram of an embodiment ofthe sub-components ofthe property connector API of FIG. 1 constructed in accordance with the invention
- FIG. 3 is a block diagram of another embodiment ofthe system architecture ofthe invention.
- FIG. 4 is a screenshot of a UI development application that is being executed in combination
- FIG. 5 is a screenshot of a UI application illustrating an embodiment ofthe invention during
- FIG. 6 is a block diagram of an embodiment ofthe mapping of registered property paths of
- FIG. 7 is a flow diagram of an embodiment of client and server interaction constructed in
- FIG. 8 is a block diagram of another embodiment ofthe server portion with an extension feature according to the invention.
- FIG. 1 depicts a block diagram of an embodiment of a system 10 for communicating
- the 10 includes a server process 14, a client process 18 and a property connector API 22.
- the server process 14, the client process 18 and the property connector API 22 can be located on a single computing device or distributed among several computing devices.
- application 26 includes an application 26 with application components 34a, 34b, 34c and 34d (generally 34).
- application components 34a, 34b, 34c and 34d are instances of objects that
- Each ofthe application components 34a, 34b, 34c and 34d includes zero or more properties
- This embodiment includes two types of properties.
- a first type of properties 38 for example, 38d, 38e and 38f, have a value for a
- a second type of properties 38 for example, 38a, 38b and 38c, have a pointer
- application components 34 can be generated by a process using a data file.
- application components 34 can be representations of nodes within a structured data file
- DTD document type definition
- the application components 34 support additional standard properties 38 such as 'parent', 'child[i] ⁇ and the like.
- Many applications 26 are object-oriented and as such, generate a structured relationship
- the structured relationship can be illustrated as a node tree.
- the root node is the first object ofthe application and each object that the root object points to becomes a
- object 34a represents a root node.
- Objects 34b and 34c are children nodes ofthe root node 34a.
- Object 34d is the child node of object 34c and the grandchild node of object 34a.
- Each part ofthe application 26 state (i.e., values of application component properties 38 at a particular instant in time) is accessible via a traversal of a 'path' from one or more root objects to
- An object and/or property may be addressable by several 'paths' from the root node, for example, an object representing an Employee may be
- Redmond, WA Redmond, WA
- a property-based link is an object pointer that is accessible via a standard means (e.g., 'get' and 'set' methods).
- Applications 26 using property-based links undertake to inform the server process 14 about changes in the property-based link using, for
- the client process 18 produces a user-interface ("UI") 42 that is displayed to a user.
- the UI 42 includes one or more user-interface elements 46a and 46b (generally 46).
- the UI 42 can be, for example, a Web page, an HTML document, a custom UI and the like. Though the UI is
- the UI elements 46 are
- the user-interface element 46 is a portion ofthe UI 42
- the UI element 46 can be, for example, an input box for textual or numerical input and display of a value of a property 38.
- the UI element 46 also can be, for
- a horizontal slider for numerical input and display of a value of a property 38 As
- the first user-interface element 46a displays and/or affects a value 50a associated with a state of a property 38 of one ofthe application components 34.
- the second user-interface element 46b displays and/or affects two values 50b and 50c. Between the application components 34 and the user-interface elements 46 is the property
- the property connector API 22 includes a client portion 22a and a server
- portion 22b is a process that is independent ofthe application 26 (i.e., not a part of nor generated
- the property connector API 22 process can be implemented as software, as hardware or as a combination of both.
- the execution ofthe property connector API 22 can be initiated in several ways.
- the computing device can initiate execution ofthe property connector API 22 upon power up or upon a authorized user log-in.
- the computing device can initiate execution ofthe property connector
- API 22 when the computing device downloads a page 42 containing UI elements 46 associated with property paths.
- the computing device can initiate execution ofthe property connector API
- the computing device also receives a startup argument including the name of a file
- the property connector API 22 maps each dynamic user-
- the interface element 46 to a property 38 of an application component 34 using the associated property path.
- the property path defines the interaction between the client process 18 and the
- server process 14 in terms of properties 38 ofthe application 26 rather than in terms of the user-
- the property connector API 22 represents a property 38 of an application
- the property path is the
- An identifier corresponds to a property 38 within an
- the property path defines a path through the application 26 from a root component 38 to the particular application component 34,
- property 38a points to application component 34c and the property 38c of application component 34c points to
- property 38d in this example is 'App.PropertyIDl.PropertyID3.PropertyID4'.
- Each part ofthe property path i.e., App, PropertylDl, PropertyID3, PropertyID4.
- the property connector API 22 uses these identifiers to traverse the path in the application 26 defined by the property path.
- the 'App' identifier identifies the root node.
- the property connector API 22 determines the value of 'PropertylDl ' by obtaining the present state (i.e., value) of a property with the same name within the root
- connector API 22 determines the present state points to the application component 34c. Because the value of property corresponding to identifier 'PropertylDl' is component 34c, the
- connector API 22 determines the value of 'PropertyID3' by obtaining the present state (i.e.., value) ofthe property 38c with the same name within the component 34c, which was identified
- the property connector API 22 determines the present state points to the application component 34d. Because the value of property corresponding to identifier
- 'PropertyID3' is component 34d
- the 'PropertyID4' identifier identifies the property 38d within the component 34d.
- the property connector API 22 determines the value of 'PropertyID4' by
- Property 38d is not a pointer, but a
- the property connector API 22 maps the current state of this
- property 38d to the property path 'App.PropertyLDl .PropertyID3.PropertyID4'. While mapped, the property path 'App.PropertyIDl.PropertyID3.PropertyID4' has the value ofthe salary of property 38d.
- the user-interface can display and/or affect (i.e., a loosely coupled, flexible connection).
- the application 26 can create or delete application components 38 without any adverse affect on the user-interface elements 46.
- the property path ⁇ pp.PropertyIDl.PropertyID3.PropertyID4' corresponds, at one point in time, to property 38d,
- the property connector API 22 updates the
- the property path identifies a path through the application 26 and not one specific
- the path can change as one ofthe properties 38
- a property path can also represent a property with a potential to exist, but that does not exist at the present time. For example, if the list of employees only contains twenty-six employees (numbered 0 to 25), the property path ⁇ RApp.Dept.Employee[26]. Salary' does not correspond to any property. When another employee is added, the property path ⁇ RApp.Dept.Employee[26]. Salary' would then point to the salary property ofthe twenty-
- the second value 50c of UI element 46b displays the salary ofthe twenty-seventh employee of a specific department because the value 50c is associated with the property path ⁇ RApp.Dept.Employee[26]. Salary'. The client portion
- the server portion 22a maps this association between the value 50 and the property path.
- the server portion 22b maps this association between the value 50 and the property path.
- the server portion 22b follows the pointers with the application components 34 that correspond to the property path.
- the server portion 22b follows the pointers by using 'get' methods and constructing a structure
- the ⁇ RApp' portion ofthe property path corresponds to the application 26 and the first created application component 34a (i.e., the root application component).
- the property path corresponds to the property 38a that points to the application component 34c, which in this example represents a list of employees ofthe indicated department.
- ⁇ mployee[26]' portion ofthe property path corresponds to the property 38c that points to the application component 34d, which in this example represents information about the twenty- seventh employee.
- the 'Salary' portion ofthe property path corresponds to the property 38d that
- the application component 34d can also contain other properties (not shown) that have values representing information about that particular employee, such as name, social security number, date of hire and the like.
- application component 34d changes and subsequently points to another application component (not shown).
- the application component 34d represented information about the twenty-seventh employee.
- path 'App.SelectedEmployee.Boss.Boss.Name' represents the name property 38 ofthe selected
- the property path 'App.Employee[21].Name' represents the name property 38 ofthe twenty-second employee in a table. If the table is sorted or changes size, then this property path will correctly reflect the name property 38 ofthe
- FIG. 2 illustrates an exemplary embodiment of a system 54 that includes a first computing
- server node 60 in communication with a second computing system (“client node”) 64
- the communication channel 94 can be over a local-area network (LAN), such as a company Intranet, or a wide area network (WAN) such as
- LAN local-area network
- WAN wide area network
- the server node 60 includes a server transceiver 108, the
- server portion 22b a property/event interface 90 and the application 26, including one or more
- the server node 60 can establish communication over the
- the server portion 22b is a separate process on the server node 60.
- ICA ICA
- HTTP TCP/IP IPX
- SPX SPX
- NetBIOS NetBIOS
- Ethernet RS232
- server portion 22b is located on a server node (not shown) separate from
- the application program 26 In another embodiment, the property/event interface 90 is included
- the client node 64 includes a client transceiver 104 and an optional page interface 112.
- page interface 112 includes the client portion 22a and generates (or edits) a page '42, containing
- the client node 64 can be any computing device (e.g., a personal computer, or a personal computing device, or a personal computing device).
- the client node 64 can be connected to the communication channel 94 through a variety of connections including standard telephone lines, LAN or WAN links (e.g., TI, T3, 56kb, X.25), broadband connections (ISDN, Frame Relay, ATM), and wireless connections.
- standard telephone lines e.g., LAN or WAN links (e.g., TI, T3, 56kb, X.25), broadband connections (ISDN, Frame Relay, ATM), and wireless connections.
- the client portion 22a is part ofthe page interface 112.
- the page interface 112 can be, for example, a
- Web browser e.g., a MICROSOFTTM INTERNET EXPLORER browser manufactured by Microsoft Corporation of Redmond, WA and/or a NETSCAPETM NAVIGATOR browser,
- the client portion 22a is a separate process on the client node 64.
- interaction between the client node 64 and the server node 60 occurs if the application 26 is executing and the user is interacting, via the page 42, with the application
- the user creates a page 42 using
- the page interface 112 e.g., HTML editor, DREAMWEAVERTM software by Macromedia, Inc.
- the user locates UI elements 46 using the page interface 112. In one embodiment, the user selects a UI element 46
- a property file has the following form:
- start property file // List of types used in this property files (identifiers)
- RootType Company
- the property file has the following form:
- RootType Company Company .Name String
- the property file containing property paths is stored on the client node
- the property file can contain the types of application
- the property file can also contain information regarding
- the file can be manually created and/or manually augmented.
- the page interface 112 and/or the client portion 22a has a property browser.
- the browser may examine the code ofthe application 26 (e.g.,
- the type ofthe get/set property methods In another embodiment the property browser
- the property browser can obtain the instantaneous values of available application components 34, their properties 38 and the relationship (e.g., child nodes) between the application components 34. After this information is obtained, the execution ofthe
- FIG. 3 depicts the client portion 22a and the server portion 22b ofthe property connector
- the client portion 22a includes a protocol module 70 and an event manager 74.
- the protocol module 70 is located within the client
- the client portion 22b also includes an optional
- predefined UI elements portion 78 which contains data to generate specific types of UI elements 46, identified in detail below, in connection with FIG. 4.
- the client portion 22a communicates with the UI elements 46 ofthe page 42.
- the server portion 22b includes a protocol module 82 and a property path manager 86.
- the protocol module 82 is located within the server transceiver 108 (e.g.,
- the server portion 22b is in communication with the application components 34 ofthe application 26 through a property/event interface 90.
- the client portion 22b communicate with each other over the communication channel 94, using a property path protocol as described below.
- the client portion 22b communicates with each other over the communication channel 94, using a property path protocol as described below.
- the client portion 22b communicates with each other over the communication channel 94, using a property path protocol as described below.
- the client portion 22b communicates with each other over the communication channel 94, using a property path protocol as described below.
- the server portion 22b are located on the same machine and are directly connected to each other.
- the property connector API 22 associates the user-interface elements 46 with the application
- the functions ofthe property connector API 22 can include:
- the server node 60 executes the application 26 and instantiates the application components 34 (e.g., objects).
- the application components 34 e.g., objects.
- JAVABEANSTM compatible components and the property/event interface 90 includes a
- server node 60 If not already executing, the server node 60 also executes the
- server portion 22b which is independent ofthe application 26 (i.e., not a part of nor generated from the application 26).
- the server node 60 executes the server portion 22b in response to the
- client node 64 requesting execution ofthe application 26 and/or in response to the client node 64
- node 64 executes the client portion 22a, which is independent ofthe application 26 (i.e., not a
- the event manager 74 ofthe client portion 22a is written as a set of JAVASCRIPTTM files for a
- the client node 64 executes the client portion 22a in response to a user requesting execution ofthe application 26 and/or in response to
- the client-side event manager 74 maps the UI elements 46 to the associated property paths.
- the event manager 74 maintains a database ofthe mapping of UI elements 46 to property paths.
- the event manager 74 may or may not examine the individual identifiers in the concatenation of a property path. This affects the amount of information that has to be transmitted between the
- the event manager 74 treats
- the event manager 74 does not breakup or examine the individual identifiers in the concatenation of a property path, but instead treats the property path as a single, long variable name or as a placeholder. This allows a compression
- each property path in the page 42 with a single id (e.g., $1).
- a single id e.g., $1.
- the server portion 22b must track all changes to any ofthe properties corresponding
- the server portion 22b also only communicates changes to the client portion 22a in terms of complete property paths.
- the client portion does examine changes corresponding to each
- a copy ofthe property path manager 86 is located on the client
- node 22b can communicate changes to the client portion 22a in terms of individual identifiers.
- the event manager 74 sends to the server-side property path manager
- the event manager 74 When the event manager 74 informs the server portion 22b about which property paths are of interest, the event manager 74 does not need to inform the server portion 22b specifically which
- the property path manager (or how many) UI elements 46 are interested in each property path.
- the event manager 74 notifies the property path manager 86 about the change and to which property path the change corresponds. Because the communication references property paths, the communication about the change is in terms of
- the UI element determines the value the 50% point represents and signals an event to the event manager 74.
- the event manager 74 can send a notice of lack
- the event manager 74 can immediately inform the server portion 22b, not inform the server portion 22 at
- the server portion 22b transmits to the client portion 22a any change events associated with those property paths in
- the event manager 74 receives a property change event for a change in the state (e.g., value) of a property 38 associated with a
- the event manager 74 determines, using the mapping
- the event manager 74 communicates the updates due to the change event to each ofthe UI elements 46 mapped to the property path. In one embodiment,
- the event manager 74 is configured to inform UI elements 46 that are located in other sub-windows about any applicable
- the event manager 74 manages the database ofthe mapping so that
- each page may contain a portion ofthe event manager 74, and
- the UI element 46 If the user updates a UI element 46, the UI element 46 signals a change event to the event
- the event manager 74 and is updated on the display as the user makes a change.
- the event manager 74 receives a change event from the UI element 46
- the event manager 74 determines, using the mapping, which other UI elements 46 are mapped to the same property path as the UI element 46 that changed.
- the event manager 74 communicates the updates due to the change event to each
- the event manager 74 also sends
- the event manager 74 does not make any immediate changes to the
- the event manager 74 first sends a change event to the server portion 22b so that
- the server portion 22b can update the associated property 38 ofthe application component 34 in response to the user change ofthe UI element 46.
- the application 26 can reject the change initiated by the user for security or other reasons.
- the event manager 74 waits until the server portion 22b sends back a change event indicating that the property 38 ofthe application
- the event manager 74 After the event manager receives that change event from the server portion 22b, then the event manager 74 communicates the
- the event manager 74 updates the UI element 46 that the user changed back to its pre-user intervention state.
- the property connector API 22 takes steps to avoid looping of change
- the property comiector API 22 does not inform the original generator (i.e., UI element
- a page 42 can also be altered dynamically when, for example, an iterator type predefined UI
- element 78 creates additional UI elements for indexed properties, a process described in more detail below. If a page 42 is being altered dynamically, then when a UI element 46 is generated, the event manager 76 determines those property paths in which the UI element 46 is interested.
- the event manager 74 determines that the UI
- element 46 is no longer interested in those property paths. In one embodiment, the user has
- the client portion 22a duplicates/clones the example (e.g., row) for all ofthe members ofthe indexed property
- the example portion ofthe UI may be a single UI element or a more complex set of UI elements.
- FIG. 4 depicts an embodiment of a screenshot 128 produced by the page interface 112 (FIG.
- the screenshot 128 includes a display 130 of an HTML page 42' that a user is
- the screenshot also includes a palette 134 of some
- the palette 134 of available predefined UI elements 78 includes predefined UI elements 78a, 78b, 78c, 78d, 78e, 78f and 78g.
- Predefined UI element 78a represents an image type UI
- the image type predefined UI element 78b displays an image dependent on the value of
- Predefined UI element 78b represents an
- An iterator type UI element repeats a UI element for each member of a range of
- the element 46g' represents an iterator type element, where the row 46g' is an exemplary row that the client
- portion 22a copies when dynamically creating elements for each index value.
- Predefined UI element 78c represents a text type UI element.
- element 78c displays a property value as a piece of text.
- the elements 46b', 46c' and 46d' represent text type elements. With a text type predefined UI element 78c, numeric values may be
- Predefined UI element 78d represents a hidden type UI element.
- Predefined UI element 78e represents a value type UI element.
- the value type predefmed UI element 78e is an input box that displays a property value and allows it to be
- the element 46e' represents a value type element.
- Predefined UI element 78f represents a slider type UI element.
- the slider type predefined UI element 78f includes a vertical slider and/or a horizontal slider for numeric properties.
- the element 46f represents a slider type element.
- the user also enters values associated with 'min' 'max' and 'step' values for that slider element.
- the user enters the property paths for the values associated with 'min'
- Predefined UI element 78g represents a treeview type UI element.
- the element 46a' represents a treeview type element.
- element 78g is based on the levels of a property path. For example, for the property path
- the treeview has a root level, a child level and a child's child level.
- the root level is App.Boss
- the child level is App.Boss.Staff[i]
- the child's child level is
- the palette 134 can include other predefined UI elements 78.
- a button type disables a button based on a property value associated with a property
- An iframe type displays an embedded frame, where the contents ofthe frame are constructed from a page described by the value of property path.
- An anchor type creates an anchor which links to a page described by the value of a property path.
- UI element displays associated properties as tabs, with one tab per member of a range of indexed
- a flipflop type changes the style of part of a UI , dependent on a property and an expression. For example the flipflop will set the style ofthe part ofthe UI to one state (the flip state) if the expression evaluates to 'false' when a placeholder in the expression is substituted by the current value ofthe property. If the expression evaluates to 'true' then the style ofthe part of
- the UI is set to an alternative state (the flop state).
- a deck type displays one of a 'deck' of portions of a UI , dependent on a property value (each
- UI portion is associated with a value, an the one whose value matches the current value ofthe
- a dropdown type is a nested dropdown menu, where each choice is a value from a range of indexed properties.
- a radio type has one or more radio buttons, where each has a property path and an associated value to set the property path to if the button is
- All UI elements may contain an expression in terms of a number of property paths
- a script type element executes a script on the client node 64 whenever a value of a specified property changes
- the user selects a UI element 46' generated by the page interface 112 and places the selected UI element 46' at the desired location in the page 42' .
- the user can also select from the predefined UI elements 78 shown in the palette 134. The user selects a predefined UI element 78 and places the selected predefined UI element 78 at the
- This placement can be done, for example by the click and drag
- the user can move the cursor to the desired insertion point, and then click on the item from the palette 134.
- the client portion 22a generates a dialog box that prompts the
- the client portion 22a locates the selected element 78 at the cursor position.
- the user uses the entry display 138 to edit a property path associated with a UI element 46'
- the user can type in the property path.
- the user can search through a list (e.g., structured
- the list is provided through a property file containing identifiers and their relationships, and the page interface 112 accesses the property file, which is
- portion 22a includes a property browser.
- the property browser obtains the instantaneous values of available application components 34, their properties 38 (e.g., identifiers) and the relationship (e.g., child nodes) between the application components 34 and properties 38 to provide a list of
- the property browser examines the code ofthe
- FIG. 5 depicts a
- the page 42" contains a treeview type UI element 46a" that displays the structured relationship between the employees.
- the page 42" also contains a large number of text type UI
- Text type UI elements 46b", 46c" and 46d that display the text values of properties that correspond to the 'selected' employee. This current selection is also reflected in (and may
- the value type UI element 46e" i.e., input box
- the slider type UI element 46f ' display the salary that corresponds to the selected employee.
- the user can use any ofthe UI elements associated with the 'salary' property path (e.g., 46e", 46f ' ) to change the salary that corresponds to the selected employee. As discussed above, when a user
- UI elements 46" is done entirely on the client node 64 without any interaction from the server
- the client portion 22a also notifies the server portion 22b ofthe change, so the server
- portion 22b can update the appropriate property 38.
- the application 26 may veto the change either by not providing a 'set' method for the property 38, or by rejecting the call via veto
- this veto might be in the form of a "throw” statement using an "exception" sub-
- the property path manager 86 informs the client portion 22a that
- the value has changed back to its old value, so that the correct value is displayed on the client node 64.
- the client portion 22a similarly creates text elements 46o" - 46t" in the table 46i" from an exemplary row ofthe table (e.g., 46g' of FIG. 4) and by substituting the index values 0,
- FIG. 6 depicts a block diagram of an embodiment of a map of registered property paths generated by the property path manager 86.
- the property path manager 86 generates this map to track all ofthe property paths in which the client portion 22a registers interest and the properties 38 ofthe application components 34 to which the property paths correspond.
- the map ofthe property path manager 86 is modeled as a tree structure 160.
- the free structure 160 is associated with an application 26' including application components 34a', 34b',
- 34c', 34d' (generally 34'), some of which include properties 38a', 38b' 38c' (generally 38').
- tree nodes 164a, 164b, 164c, 164d (generally 164) ofthe tree 160 are associated with the root
- the property path manager 86 generates
- a tree 160 representing all of he available property paths currently available for a specific
- the property path manager 86 transmits all of he available property paths to the client portion 22a for use in generating a page 42", as mentioned with respect to FIG. 4.
- the client portion 22a has registered interests in property paths 'App.X. Y' and 'App.X.Z', represented by tree nodes 164c and 164d, respectively.
- X, Y and Z represent
- property path ' App.X. Y' can represent the property path 'App.Employee[3].Name' and 'App.X.Z' can represent the property path
- the property path manager 86 notifies the property path manager 86.
- the property path manager 86 updates the corresponding tree node(s) 164 in the property path tree 160. If the updated tree node(s) 164 represents a complete property path in which the client portion 22a has registered interest, the property path
- the property path manager 86 sends, or queues for sending, a change event to the client portion 22a.
- the property path manager 86 subsequently recursively examines each ofthe tree node's children nodes.
- the property path manger 86 via the property/event interface 90, obtains a new value of a property 38' from the application 26', and if another value of a registered property
- the property path manager 86 terminates the recursive examination when something is found to be unchanged. For example, any child node of tree node 164d is not examined, as the value ofthe tree node 164d is unchanged.
- this change represents a change in the third employee.
- the client portion 22a is not interested in the 'App.X' property path, so the property path manager 86 does not generate a change event for this
- the property path manager 86 determines this change when it recursively examines the children tree nodes Y 164c and Z 164d of tree node X 164b. Significantly, this
- the property path manager 86 converts those change events that the application 26' can generate into change events associated with property
- application components 34b', 34c' point to application component 34d'.
- the client portion 22a has registered in the property path 'App.X.Z' and this value remains unchanged, despite that fact that App.X now refers to a different application component 34c'.
- the client portion 22a can
- the cross-mapped property path is in the form, for example, Map("v#r").
- Map("v#r" Map("v#r").
- the cross-mapped special type represents a relationship between a value "v”, specified with a property path, and a range of possible values "r", specified with a wildcard property path.
- mapped property path is the property path within the range "r" that has the same value as "v”.
- Map("Session.CurrentEmployee#App.Employee[*]") is 2.
- cross-mapping is a lookup of one property path, dependent on
- the property path manager 86 examines the first property path "Session.Current" and determines the value v ofthe property
- the property path manager 86 looks up the value v within the second property path, where the value v replaces a wildcard identifier ofthe second property path. The value ofthe
- cross-mapping is the index that matches. For example if the state ofthe first property path
- App. Employee [0] is Abe App.Employee[l] is Barbara App.Employee[2] is Charlie App.Employee[3] is Diane,
- the second property path may contain several wildcards identifiers, and the value will be the 'route' tlirough all of these wildcard identifiers. For example, for the cross mapping is
- the indexed property A acts like a number of properties 'A.size, A.O A.l, A.2.... A.(size-l)'.
- the property connector API 22 follows this indexing by representing such properties in property paths ' A[], A[0], A[1],A[2] .... A[size-1]', respectively.
- the iterator type predefined UI element 78 (FIG. 3) uses the special type indexed property path.
- the iterator type predefined UI element 78 includes a template and is linked to an indexed
- the template represents the layout ofthe iterator type predefined UI element 78
- the iterator type predefined UI element 78 creates a copy ofthe template for each member ofthe
- index value Each copy is linked to the application via its associated property path.
- An identical approach is taken for treeviews, and rows of drop-down menus.
- the 'iterator' UI element 78 provides a table with a 'template' row.
- 'iterator' UI element 78 duplicates this 'template' row for each member ofthe indexed property.
- Each row can contain arbitrary UI elements 46 with 'wildcard' pathnames (i.e., property paths)
- the property/event interface 90 transmits data (e.g., change events, value changes) between the property path manager 86 and the application 26.
- This interface 90 uses an appropriate API for the implementation ofthe application 26. In one embodiment, for
- the application 26 is JAVATM technology-based, and the standard ' JAVABEANTM
- Property API' provides the required semantics and is thus used as the property/event interface 90.
- This standard API 90 allows the property path manager 86 to change the values of properties 38
- This standard API 90 also notifies the property path manager 86 about changes
- Other embodiments can include COM objects 34 and a COM property
- the client portion 22a and the server portion 22b communicate with each other over the
- the protocol modules 70 and 82 establish low-level communication by use of a communications layer.
- An exemplary protocol is described in Table 1. The protocol
- the protocol modules 70 and 82 are part ofthe client transceiver 104 (FIG. 2) and the server transceiver 108 (FIG. 2), respectively.
- the server node 60 and the client node 64 batch the communication
- the server node 60 and the client node 64 use HTTP as the transport protocol.
- the client node 64 sends the server node 60 one or more messages.
- the server node 60 processes the
- the server node 60 batches all ofthe messages queued to be sent to the client node 64 and sends them as the response to the HTTP request from the client node 64. In one embodiment, batching involves the
- the batching process also sorts the entries lexicographically in order to aid compression.
- the communications protocol as illustrated in Table 1, relies on informing the client node
- the node 64 about which ofthe client's display elements 46 to update, and how to update them.
- the role ofthe client node 64 is to reflect the current state ofthe application 26. If network or communication channel latency is high, then the client node 64 displays an
- the server node 60 can be completely unaware ofthe type of client, or the way in which the client node 64 chooses to reflect the changes in the state ofthe application 26. This makes the server node 60 more stable and scalable, as new client node 64 features do not
- S server node 60
- C client node 64
- protocol modules 70 and 82 are configured to employ
- a property path compression scheme is used within a batch of messages sent within the client node 64, within the
- the client node 64 takes advantage ofthe preceding message by
- Another scheme to shorten the length of messages is for the client node 64 to register
- this scheme is used to register interest in all the property paths that supply values for a table.
- this scheme is used to register interest in all the property paths that supply values for a table.
- n is the size ofthe App.Employee indexed property.
- n is the size ofthe App.Employee indexed property.
- the property connector API 22 also compresses the property path names. From the server
- the server portion 22b compresses its responses by omitting property path
- the system 54 uses a data compression scheme in messages sent from the server node 60 to
- the client node 64 stores, at all times, the 'last known' value 50 of each of the property paths that it is displaying in the page 42 in a current value table. In one
- the server node 60 optionally stores a copy of this information, and uses this as a
- the server node 60 needs to transmit to the
- the server node 60 determines, by examining the data dictionary, that the client node 64 already has the value
- copy Value (App.Employee[3]. Name), where copy Value is a directive to the client node 64 to use
- protocol modules 70 and 82 are configured to employ the data compression scheme in parallel with the property path compression scheme and an array name
- protocol modules 70 and 82 utilize this combination of schemes when
- array name compression scheme is of particular benefit when an array of data on the server node
- the property connector API 22 is configured so that the server node
- connector API 22 can optimize the resource usage on the server node 60 by suspending the
- the second class of applications 26 that can be optimized are those that act as data feeds, for
- the property connector API 22 again stores client-specific state on the client node 64 rather than the server node 60 , allowing the server node 60 to scale to more client
- the property connector API 22 allows a single .'worker application instance' to service many clients 64.
- the third class of applications 26 that can be optimized are those that generate events faster than the client node 64 can collect them.
- An example is a stock ticker application that sets the price of a stock every second and communicates with a client node 64 that reads the stock price
- the property connector API 22 reduces the rate of event generation, without
- the property connector API 22 adds event-buffering mechanisms so that the per- event cost is much lower. For example, only one record is updated on the server per event, rather
- the property connector API 22 scans
- the property connector API 22 supports different modes of operation where the per-client state and/or processing on the server node 60 is further reduced. This is at the expense of increased bandwidth and/or processing requirements when
- client connection may move from a 'highly interactive' mode of operation to a 'resource saving'
- the rate of event generation may be varied according to the server load.
- connected mode The server 60 stores, for each client 64, an instance ofthe application 26 and a property graph of listener objects 34.
- connected mode there is high per- client state stored on the server 60 and high per client event processing load. However this is low per client poll/invocation processing load, and thus low bandwidth is required.
- the second mode of operation is disconnected mode. In disconnected mode, the client state
- the client 64 also stores a description of each property it is
- the property comiector API 22 allows a client 64 in
- the additional operations are specific optimization techniques for fine tuning the connected and disconnected modes of operation for deployments with a large client population.
- the property connector API 22 commands the application 26 to save its state
- the client 64 sends the saved application state to the server 60 along with a list of properties 38 that the client 64 is interested in.
- the server 60 restarts the application 26 using the saved state, re-registers interest in all properties 38, and continues in the coimected mode. This operation is invoked by a disconnected client 64 that
- the client 64 wishes to update the server state (i.e., invoke an operation or set a property).
- the client 64 sends the saved application
- server 60 may restart the application 26, return the current values ofthe properties 38 and then
- an application 26 For an application 26 to use this optimization, it must provide the required static method, for example, a single shared instance, or static method, that can take a saved state and return a suitable application instance.
- This suitable instance may be a shared
- the one-shot operation is invoked by a disconnected client 64 that wishes to poll, but not change the server state.
- the property connector API 22 is further configured with additional optimizations such as timestamp, slow garbage collector, connectivity check and property set.
- the property connector API 22 adds a timestamp-based property interface.
- the property connector API 22 uses the two commands 'Timeid
- the server 60 provides the current timestamp as an additional
- the client 64 In calls to one-shot or reconnect operations, the client 64 provides this timestamp, and is informed of property values if they have changed since this timestamp was issued.
- the property connector API 22 uses the slow garbage collector
- the property connector API 22 uses the Connectivity Check
- a client 64 wishing to perform reconnect or one-shot operations first determines whether the server 60 still has a valid application instance. If the server 60 does, then the saved state and property list does
- the property connector API 22 uses the property set optimization. It is noted that if a server 60 is supporting a large number of clients 64, all of which use the same
- the server 60 associates the set of properties 38 that the client 64 is interested in with an set identifier, and the client 64 uses this set identifier during one-shot and reconnect operations, rather than sending the complete list of properties 38.
- the set identifier incurs a small additional memory requirement on the server 60, as many clients
- FIG. 7 depicts a flow diagram of an embodiment of a process by which the server node 60 and client node 64 interact in accordance with the invention.
- the first step is that the client node 64 establishes a connection with the server node 60 to connect (step 200) to an executing
- the server node 60 authenticates the client node if required and connects the client node 64 to the
- the client portion 22a scans the UI 42 and identifies (step 208) a UI element 46 within the
- the client portion 22a inserts (step 212) into its table the identified UI element
- the client portion 22a registers (step 216) interest in this
- the client portion 22a determines (step 220) whether
- the server portion 22a When the client portion 22a registers (step 216) interest in a property path, the server portion
- the server portion 22b sends (step 232) the determined initial value to
- the client portion 22a updates (step 236) the identified UI element 46
- the client portion 22a updates (step 236) those elements 46 with the initial value also.
- the server portion 22b updates (step 240) the tree structure map 160 with the registration of interest for the property path, received from the client portion 22a, and the determined initial value.
- the client portion 22a determines (step 244) whether the update ofthe UI element(s) 46
- the client portion 22a monitors (step 244) the UI elements 46 for user changes.
- the client portion 22a determines (step 224) whether the user changed the value of an existing UI element 46. If the user does not change the
- the client portion 22a informs (step 248) the server portion 22b ofthe change. If there are any other
- the client portion 22a also updates (step 236) those UI elements 46 with the changed value and determines
- step 244 whether any new UI elements 46 are created as a result ofthe change.
- the sever portion 22b Upon being informed (step 248) by the client portion 22a, the sever portion 22b attempts to update (step 252), via the property/event interface 90, the value ofthe property 38 ofthe application component 34 affected by the user change (i.e., the property 38 at the end ofthe property path associated with the user-interface element 46 the user changed).
- the application Upon being informed (step 248) by the client portion 22a, the sever portion 22b attempts to update (step 252), via the property/event interface 90, the value ofthe property 38 ofthe application component 34 affected by the user change (i.e., the property 38 at the end ofthe property path associated with the user-interface element 46 the user changed).
- step 253 determines (step 253) whether to accept the change or to veto the change. If the application
- the application 26 changes the state (e.g., value) ofthe property 38 as requested by the server portion 22b and generates a change event.
- the server portion 22b receives the change event and determines (step 260) whether the change corresponds to a
- the server portion 22b inhibits sending a change event to the client portion 22a for the changed property 38, because the client portion 22a originated the change. If the application 26 does not accept the change (e.g., vetoes the change), the server portion
- step 254 a special change message to change the value ofthe property path, as displayed on the UI 42, back to the original (i.e., pre-user modification) value.
- portion 22b continues by sending (step 232) the change message with the original value back to the client portion 22a.
- the server portion 22b continues to monitor (step 256) the properties corresponding to the tree structure map 160. If a state (e.g.,
- the server portion 22b determines (step 260) whether the change corresponds to a property path in which the client portion 22a has interest. If the server portion
- step 260 the changed state ofthe property does not correspond to a registered
- the server portion 22b continues to monitor (step 256) the states of properties
- the server portion 22b determines (step 260) the changed state ofthe property does correspond to a registered property path, the server portion 22b generates and sends (step 232) to the client portion 22a a change event for the corresponding
- the client portion 22a updates (step 236) any UI elements 46 associated with the
- the property connector API 22 also can be configured to provide additional features. For example,
- the client node 64 and/or page interface 112 e.g., browser
- the client node 64 and/or page interface 112 is unable to run the client portion 22a or support some or all ofthe UI elements 46
- the property connector API 22 can generate a
- the proxy process can execute on the server node 60, or on another
- server node 60' (not shown) logically located between the client node 64 and the server node 60 executing the application 26.
- the proxy process acts as a client portion 22a in as far as communications with the server portion 22b, and acts as a standard server process, using an
- a system 54' includes a client node 64' that has an older version of a Web
- the proxy process receives the
- the converted static page 42' includes traditional
- the client node 64' requests a new page 42'
- the proxy process interprets this as a click on a portion ofthe interactive page 42, and if this results in a change to a state of a property, the proxy process sends the change to the state ofthe property to the server portion 22b. The proxy process then
- FIG. 8 depicts an embodiment ofthe server portion 22b' ofthe property connector API 22 configured to provide an additional feature of executing an extension 270.
- the server portion 22b' includes a first property path manager 86a, a first property/event interface 90a, a second
- extension 270 property/event interface 90b, the extension 270 and an extension manager 274.
- extension manager 274 The extension
- extension 270 is a process that augments the application 26, becomes an 'extension' ofthe application 26.
- Two exemplary extensions are a page extension and a form extension. To the client portion 22a, the extension 270 acts like a part of he application 26. To the application 26,
- the extension 270 acts like part ofthe client portion 22a.
- the extension manager 274 includes a
- An exemplary request command for a page extension is
- server node 60 In accordance with the parameters ofthe command, the server portion 22b of the server portion 22b of the server portion 22b of the server portion 22b of the server portion 22b
- extension 270 initializes the extension 270 with the values ⁇ pp.Employee[]' and 10.
- the extension 270 registers interest in the App.Employee[] property path with the property path manager 86b, and is
- the Page View extension 270 provides an indexed property Page[i], which is an indexed
- Each Page object 278 provides an indexed property 'Item[j]', which is an indexed property of items on the current page 42.
- the Page View extension 270 allows the App.Employee property to be accessed via a number of pages 42a to 42i, where i
- the Page View extension 270 also provides other properties such as NoPages, CurrentPage, NextPage, LastPage, and the like,
- the form extension provides a means for 'batch processing' of application data.
- the form extension allows transactional input to an application 26. For example, a user may fill in a form 42a (not shown) displayed in a UI 42 and then cancel
- the client portion 22a creates a form 42a by a call to
- the 'String id' parameter includes the name of
- the extension e.g. 'myform'
- the 'String type' parameter includes the type ofthe extension, which for a form extension, is in the format 'Form'.
- 'String args' parameter includes an optional argument string.
- the format is one of " (i.e., null), 'snapshot', 'weakchanges' or 'snapshot, weakchanges'.
- the form extension 270 is configured to accept several methods.
- One method is 'submitO',
- the call to create a form 42a is usually made in a script type UI element to ensure that the
- form 42a is initialized before UI elements 46 using the form 42a are displayed.
- the form 42a is global and may be used anywhere on the page 42, not just inside the script UI element 46.
- An exemplary code used to create a fonn 42a is as follows:
- the client portion 22a invokes a Session.Form.submit() method.
- the client portion 22a invokes a Session.Form.submit() method.
- client portion 22a invokes a 'Session.Form.submit()' when the user clicks on a UI element button labeled submit.
- client portion 22a invokes a Session.Form.cancel() method, in which case nothing will change.
- the form extension 270 works by acting as a filter over other properties 38. For example a
- form 42a can be identified as 'Session.Form'. For example, this form 42a displays values
- UI elements 46 correspond to a form 42a, as the properties 38 are associated dynamically as they are referred to by UI elements 46 within the page 42.
- a form 42a is connected and set to preservesChanges. That is, if an application
- the form 42a reflects the change unless the user has already changed the value. This also means that if the page 42 wishes to display new values in the form 42a, then this will happen automatically (e.g., iterator type UI elements 78b or
- the form 42a can be set to different modes.
- the form 42a may optionally be set to 'snapshot' mode, where it is unconnected and all values will be
- the form 42a may also be optionally set to 'weakchanges' mode, where changes to values from the
- data is not batched and sent to the server node 60 all at once.
- the updates can be transmitted to the application sequentially, or in a random order.
- the application 26 reacts to the data as if it were entered all at the same time, due to the
- the invention also can be practiced over any other type of network (e.g., telephone, cable, LAN, WAN, wireless, fiber), within the same physical computer
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2002232582A AU2002232582A1 (en) | 2000-12-12 | 2001-12-12 | Methods and apparatus for creating a user interface using property paths |
GB0309655A GB2389292A (en) | 2000-12-12 | 2001-12-12 | Methods and apparatus for creating a user interface using property paths |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25499500P | 2000-12-12 | 2000-12-12 | |
US60/254,995 | 2000-12-12 | ||
US09/846,884 US20020105548A1 (en) | 2000-12-12 | 2001-05-01 | Methods and apparatus for creating a user interface using property paths |
US09/846,896 US7194743B2 (en) | 2000-12-12 | 2001-05-01 | Methods and apparatus for communicating changes between a user interface and an executing application using property paths |
US09/846,884 | 2001-05-01 | ||
US09/846,896 | 2001-05-01 |
Publications (3)
Publication Number | Publication Date |
---|---|
WO2002049281A2 true WO2002049281A2 (en) | 2002-06-20 |
WO2002049281A3 WO2002049281A3 (en) | 2003-04-17 |
WO2002049281A8 WO2002049281A8 (en) | 2004-05-21 |
Family
ID=26944358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/048335 WO2002049281A2 (en) | 2000-12-12 | 2001-12-12 | Methods and apparatus for creating a user interface using property paths |
Country Status (4)
Country | Link |
---|---|
US (3) | US7194743B2 (en) |
AU (1) | AU2002232582A1 (en) |
GB (1) | GB2389292A (en) |
WO (1) | WO2002049281A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579951A (en) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | Page element selection method and device, storage medium and equipment |
Families Citing this family (194)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263438A (en) * | 1994-11-23 | 1996-10-11 | Xerox Corp | Distribution and use control system of digital work and access control method to digital work |
US7117239B1 (en) | 2000-07-28 | 2006-10-03 | Axeda Corporation | Reporting the state of an apparatus to a remote computer |
US8108543B2 (en) | 2000-09-22 | 2012-01-31 | Axeda Corporation | Retrieving data from a server |
US7185014B1 (en) | 2000-09-22 | 2007-02-27 | Axeda Corporation | Retrieving data from a server |
US7620731B1 (en) * | 2001-02-21 | 2009-11-17 | Microsoft Corporation | Isolated persistent storage |
JP2003177992A (en) * | 2001-12-10 | 2003-06-27 | Seiko Epson Corp | Differential communication system, differential communication equipment, differential communication program and differential communication method |
US7254601B2 (en) | 2001-12-20 | 2007-08-07 | Questra Corporation | Method and apparatus for managing intelligent assets in a distributed environment |
US7246325B2 (en) * | 2001-12-20 | 2007-07-17 | Nokia Corporation | System and method for functional elements |
US7178149B2 (en) | 2002-04-17 | 2007-02-13 | Axeda Corporation | XML scripting of soap commands |
US7412658B2 (en) | 2002-11-14 | 2008-08-12 | Sap Ag | Modeling system for graphic user interface |
US7966418B2 (en) | 2003-02-21 | 2011-06-21 | Axeda Corporation | Establishing a virtual tunnel between two computer programs |
US7712034B2 (en) | 2003-03-24 | 2010-05-04 | Microsoft Corporation | System and method for shell browser |
US7627552B2 (en) | 2003-03-27 | 2009-12-01 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7823077B2 (en) * | 2003-03-24 | 2010-10-26 | Microsoft Corporation | System and method for user modification of metadata in a shell browser |
US7421438B2 (en) | 2004-04-29 | 2008-09-02 | Microsoft Corporation | Metadata editing control |
US7240292B2 (en) * | 2003-04-17 | 2007-07-03 | Microsoft Corporation | Virtual address bar user interface control |
US7769794B2 (en) | 2003-03-24 | 2010-08-03 | Microsoft Corporation | User interface for a file system shell |
US7650575B2 (en) | 2003-03-27 | 2010-01-19 | Microsoft Corporation | Rich drag drop user interface |
US7925682B2 (en) | 2003-03-27 | 2011-04-12 | Microsoft Corporation | System and method utilizing virtual folders |
EP1477893B1 (en) * | 2003-05-16 | 2015-09-16 | Sap Se | Method for inputting data in a computer system. |
US7519969B2 (en) * | 2003-05-17 | 2009-04-14 | Microsoft Corporation | System and method for controlling user interface properties with data |
US7506341B2 (en) * | 2003-05-17 | 2009-03-17 | Microsoft Corporation | System and method for controlling user interface properties with data |
JP4818590B2 (en) * | 2003-05-28 | 2011-11-16 | シャープ株式会社 | Service using terminal, mobile phone terminal, television receiver terminal, connector providing server, and data structure of connector data |
US7869068B2 (en) * | 2003-06-27 | 2011-01-11 | Zoran Corporation | Printer driver extension and related method |
US20050027731A1 (en) * | 2003-07-30 | 2005-02-03 | Daniel Revel | Compression dictionaries |
US20050027549A1 (en) * | 2003-08-01 | 2005-02-03 | Sbc Knowledge Ventures, L.P. | Multi-layer architecture for property management |
CA2438362C (en) * | 2003-08-26 | 2011-05-31 | John William Comeau | A method and system for synchronizing a client user interface with server backend |
US7584463B2 (en) | 2003-08-27 | 2009-09-01 | Microsoft Corporation | State as a first-class citizen of an imperative language |
WO2005043386A1 (en) * | 2003-09-30 | 2005-05-12 | Siemens Aktiengesellschaft | Method and system for configuring the language of a computer programme |
US20050188174A1 (en) * | 2003-10-12 | 2005-08-25 | Microsoft Corporation | Extensible creation and editing of collections of objects |
US7644376B2 (en) * | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
US8024335B2 (en) | 2004-05-03 | 2011-09-20 | Microsoft Corporation | System and method for dynamically generating a selectable search extension |
US7328217B2 (en) * | 2003-11-26 | 2008-02-05 | Symantec Operating Corporation | System and method for detecting and storing file identity change information within a file system |
US7421707B2 (en) * | 2003-12-22 | 2008-09-02 | Sun Microsystems, Inc. | System and method for inducing asynchronous behavioral changes in a managed application process |
US20050160414A1 (en) * | 2004-01-21 | 2005-07-21 | Nokia Corporation | System and method for dynamically adding features to software applications |
US20050240489A1 (en) * | 2004-03-12 | 2005-10-27 | Onfolio, Inc. | Retaining custom item order |
US20050216886A1 (en) * | 2004-03-12 | 2005-09-29 | Onfolio, Inc. | Editing multi-layer documents |
US7702678B2 (en) * | 2004-03-12 | 2010-04-20 | Microsoft Corporation | Search capture |
US20050216825A1 (en) * | 2004-03-12 | 2005-09-29 | Onfolio, Inc. | Local storage of script-containing content |
US20050216837A1 (en) * | 2004-03-12 | 2005-09-29 | Onfolio, Inc. | Unread-state management |
US20050216856A1 (en) * | 2004-03-23 | 2005-09-29 | Matti Michael C | System and method for displaying information on an interface device |
US7694236B2 (en) | 2004-04-23 | 2010-04-06 | Microsoft Corporation | Stack icons representing multiple objects |
US7657846B2 (en) | 2004-04-23 | 2010-02-02 | Microsoft Corporation | System and method for displaying stack icons |
US8707209B2 (en) | 2004-04-29 | 2014-04-22 | Microsoft Corporation | Save preview representation of files being created |
US7937413B2 (en) * | 2004-05-04 | 2011-05-03 | International Business Machines Corporation | Self-adaptive prefix encoding for stable node identifiers |
US7363578B2 (en) * | 2004-06-03 | 2008-04-22 | Microsoft Corporation | Method and apparatus for mapping a data model to a user interface model |
US7665014B2 (en) * | 2004-06-03 | 2010-02-16 | Microsoft Corporation | Method and apparatus for generating forms using form types |
US7424485B2 (en) * | 2004-06-03 | 2008-09-09 | Microsoft Corporation | Method and apparatus for generating user interfaces based upon automation with full flexibility |
US8606723B2 (en) * | 2004-06-04 | 2013-12-10 | Sap Ag | Consistent set of interfaces derived from a business object model |
EP1782366A2 (en) * | 2004-06-04 | 2007-05-09 | Sap Ag | Consistent set of interfaces derived from a business object |
US7657530B2 (en) * | 2004-06-07 | 2010-02-02 | Symantec Operating Corporation | System and method for file system content processing |
US8694397B2 (en) * | 2004-06-18 | 2014-04-08 | Sap Ag | Consistent set of interfaces derived from a business object model |
US7954110B1 (en) * | 2004-06-22 | 2011-05-31 | Apple Inc. | Observing properties associated with an object in an object-oriented programming platform |
US7546543B2 (en) * | 2004-06-25 | 2009-06-09 | Apple Inc. | Widget authoring and editing environment |
US7761800B2 (en) | 2004-06-25 | 2010-07-20 | Apple Inc. | Unified interest layer for user interface |
US8453065B2 (en) | 2004-06-25 | 2013-05-28 | Apple Inc. | Preview and installation of user interface elements in a display environment |
US8302020B2 (en) | 2004-06-25 | 2012-10-30 | Apple Inc. | Widget authoring and editing environment |
US7490295B2 (en) * | 2004-06-25 | 2009-02-10 | Apple Inc. | Layer for accessing user interface elements |
US8566732B2 (en) | 2004-06-25 | 2013-10-22 | Apple Inc. | Synchronization of widgets and dashboards |
US20060026522A1 (en) * | 2004-07-27 | 2006-02-02 | Microsoft Corporation | Method and apparatus for revising data models and maps by example |
US7523129B1 (en) * | 2004-09-15 | 2009-04-21 | Microsoft Corporation | Data-binding enhancements |
JP4191672B2 (en) * | 2004-12-14 | 2008-12-03 | ザイオソフト株式会社 | Image processing system such as volume rendering |
US8744937B2 (en) * | 2005-02-25 | 2014-06-03 | Sap Ag | Consistent set of interfaces derived from a business object model |
US20060195794A1 (en) * | 2005-02-28 | 2006-08-31 | Microsoft Corporation | User interface element property customization |
US7774366B2 (en) | 2005-03-08 | 2010-08-10 | Salesforce.Com, Inc. | Systems and methods for implementing multi-application tabs and tab sets |
US7483882B1 (en) * | 2005-04-11 | 2009-01-27 | Apple Inc. | Dynamic management of multiple persistent data stores |
US20060242591A1 (en) * | 2005-04-22 | 2006-10-26 | Microsoft Corporation | File dialog user interfaces and creation of same |
US8195646B2 (en) | 2005-04-22 | 2012-06-05 | Microsoft Corporation | Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information |
US8543931B2 (en) | 2005-06-07 | 2013-09-24 | Apple Inc. | Preview including theme based installation of user interface elements in a display environment |
US7805419B2 (en) * | 2005-07-11 | 2010-09-28 | Application Security, Inc. | System for tracking and analyzing the integrity of an application |
US8001076B2 (en) | 2005-07-12 | 2011-08-16 | International Business Machines Corporation | Ranging scalable time stamp data synchronization |
US7665028B2 (en) | 2005-07-13 | 2010-02-16 | Microsoft Corporation | Rich drag drop user interface |
KR100774874B1 (en) * | 2005-07-30 | 2007-11-08 | 엘지전자 주식회사 | Plasma display and driving method thereof |
US7529726B2 (en) * | 2005-08-22 | 2009-05-05 | International Business Machines Corporation | XML sub-document versioning method in XML databases using record storages |
US8543614B2 (en) * | 2005-08-22 | 2013-09-24 | International Business Machines Corporation | Packing nodes into records to store XML XQuery data model and other hierarchically structured data |
US8572125B2 (en) | 2005-08-22 | 2013-10-29 | International Business Machines Corporation | Scalable storage schemes for native XML column data of relational tables |
US7743336B2 (en) | 2005-10-27 | 2010-06-22 | Apple Inc. | Widget security |
US7752556B2 (en) | 2005-10-27 | 2010-07-06 | Apple Inc. | Workflow widgets |
US7954064B2 (en) | 2005-10-27 | 2011-05-31 | Apple Inc. | Multiple dashboards |
US8543824B2 (en) | 2005-10-27 | 2013-09-24 | Apple Inc. | Safe distribution and use of content |
US9104294B2 (en) | 2005-10-27 | 2015-08-11 | Apple Inc. | Linked widgets |
US7707514B2 (en) * | 2005-11-18 | 2010-04-27 | Apple Inc. | Management of user interface elements in a display environment |
TWI287744B (en) * | 2005-11-22 | 2007-10-01 | Inst Information Industry | Method and system for discover capabilities of communication device |
US8374931B2 (en) * | 2006-03-31 | 2013-02-12 | Sap Ag | Consistent set of interfaces derived from a business object model |
US8364653B2 (en) * | 2006-04-05 | 2013-01-29 | Sap Ag | Triggering server state changes with references |
WO2008005102A2 (en) * | 2006-05-13 | 2008-01-10 | Sap Ag | Consistent set of interfaces derived from a business object model |
US7487201B1 (en) * | 2006-06-30 | 2009-02-03 | Sun Microsystems, Inc. | Method and system for providing framework for Java based AJAX web applications |
US8392364B2 (en) * | 2006-07-10 | 2013-03-05 | Sap Ag | Consistent set of interfaces derived from a business object model |
US8869027B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Management and generation of dashboards |
US8566193B2 (en) * | 2006-08-11 | 2013-10-22 | Sap Ag | Consistent set of interfaces derived from a business object model |
US8402473B1 (en) | 2006-09-28 | 2013-03-19 | Sap Ag | Managing consistent interfaces for demand business objects across heterogeneous systems |
US8370479B2 (en) | 2006-10-03 | 2013-02-05 | Axeda Acquisition Corporation | System and method for dynamically grouping devices based on present device conditions |
US7614003B2 (en) * | 2006-10-23 | 2009-11-03 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US8490117B1 (en) | 2006-10-23 | 2013-07-16 | Adobe Systems Incorporated | Bridging script engines |
US8020089B1 (en) | 2006-10-23 | 2011-09-13 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US8584130B2 (en) * | 2006-11-30 | 2013-11-12 | International Business Machines Corporation | Allocation of resources on computer systems |
US8402060B2 (en) * | 2006-12-07 | 2013-03-19 | Sap Ag | Software for managing data between a client and server |
US8065397B2 (en) | 2006-12-26 | 2011-11-22 | Axeda Acquisition Corporation | Managing configurations of distributed devices |
US7941497B2 (en) * | 2007-02-22 | 2011-05-10 | Research In Motion Limited | Community-based method and system for creating and subscribing to dynamic push channels |
US8954871B2 (en) | 2007-07-18 | 2015-02-10 | Apple Inc. | User-centric widgets and dashboards |
JP5064134B2 (en) * | 2007-08-03 | 2012-10-31 | 株式会社日立製作所 | Memory management method and computer using the method |
US8667415B2 (en) | 2007-08-06 | 2014-03-04 | Apple Inc. | Web widgets |
FR2923922A1 (en) * | 2007-11-16 | 2009-05-22 | France Telecom | METHOD FOR CONTROLLING AT LEAST ONE APPLICATION PROCESS AND CORRESPONDING COMPUTER PROGRAM PRODUCT |
US8417593B2 (en) * | 2008-02-28 | 2013-04-09 | Sap Ag | System and computer-readable medium for managing consistent interfaces for business objects across heterogeneous systems |
US8433585B2 (en) * | 2008-03-31 | 2013-04-30 | Sap Ag | Managing consistent interfaces for business objects across heterogeneous systems |
US8423418B2 (en) * | 2008-03-31 | 2013-04-16 | Sap Ag | Managing consistent interfaces for business objects across heterogeneous systems |
US8577991B2 (en) * | 2008-03-31 | 2013-11-05 | Sap Ag | Managing consistent interfaces for internal service request business objects across heterogeneous systems |
US8589263B2 (en) * | 2008-03-31 | 2013-11-19 | Sap Ag | Managing consistent interfaces for retail business objects across heterogeneous systems |
US20090248429A1 (en) * | 2008-03-31 | 2009-10-01 | Sap Ag | Managing Consistent Interfaces for Sales Price Business Objects Across Heterogeneous Systems |
US8364715B2 (en) | 2008-03-31 | 2013-01-29 | Sap Ag | Managing consistent interfaces for automatic identification label business objects across heterogeneous systems |
US8413165B2 (en) | 2008-03-31 | 2013-04-02 | Sap Ag | Managing consistent interfaces for maintenance order business objects across heterogeneous systems |
US8370233B2 (en) * | 2008-03-31 | 2013-02-05 | Sap Ag | Managing consistent interfaces for business objects across heterogeneous systems |
US8930248B2 (en) * | 2008-03-31 | 2015-01-06 | Sap Se | Managing consistent interfaces for supply network business objects across heterogeneous systems |
US20090248463A1 (en) * | 2008-03-31 | 2009-10-01 | Emmanuel Piochon | Managing Consistent Interfaces For Trading Business Objects Across Heterogeneous Systems |
US20090249358A1 (en) * | 2008-03-31 | 2009-10-01 | Sap Ag | Managing Consistent Interfaces for Kanban Business Objects Across Heterogeneous Systems |
US8473317B2 (en) * | 2008-03-31 | 2013-06-25 | Sap Ag | Managing consistent interfaces for service part business objects across heterogeneous systems |
US8261188B2 (en) * | 2008-04-02 | 2012-09-04 | Colorquick, L.L.C. | Method of associating properties or fields of graphical objects with each other for efficient composition of documents |
US8793117B1 (en) * | 2008-04-16 | 2014-07-29 | Scalable Network Technologies, Inc. | System and method for virtualization of networking system software via emulation |
KR20090110202A (en) | 2008-04-17 | 2009-10-21 | 삼성전자주식회사 | Method and apparatus for displaying personalized user interface |
KR101560183B1 (en) * | 2008-04-17 | 2015-10-15 | 삼성전자주식회사 | / Method and apparatus for providing/receiving user interface |
KR101545137B1 (en) * | 2008-04-17 | 2015-08-19 | 삼성전자주식회사 | Method and apparatus for generating user interface |
US8875032B2 (en) * | 2008-05-08 | 2014-10-28 | Dialogic Corporation | System and method for dynamic configuration of components of web interfaces |
US20090292982A1 (en) * | 2008-05-22 | 2009-11-26 | Samar Choudhary | Automated propagation of user interaction effects to equivalent ui artifacts |
US8645228B2 (en) * | 2008-06-26 | 2014-02-04 | Sap Ag | Managing consistent interfaces for business objects across heterogeneous systems |
US20090326988A1 (en) | 2008-06-26 | 2009-12-31 | Robert Barth | Managing consistent interfaces for business objects across heterogeneous systems |
US8566185B2 (en) * | 2008-06-26 | 2013-10-22 | Sap Ag | Managing consistent interfaces for financial instrument business objects across heterogeneous systems |
US8671064B2 (en) * | 2008-06-26 | 2014-03-11 | Sap Ag | Managing consistent interfaces for supply chain management business objects across heterogeneous systems |
US7614047B1 (en) * | 2008-08-21 | 2009-11-03 | International Business Machines Corporation | Change indication for a service offering |
US8577760B2 (en) | 2008-11-25 | 2013-11-05 | Sap Ag | Managing consistent interfaces for tax authority business objects across heterogeneous systems |
US8463666B2 (en) * | 2008-11-25 | 2013-06-11 | Sap Ag | Managing consistent interfaces for merchandise and assortment planning business objects across heterogeneous systems |
US20100153297A1 (en) | 2008-12-12 | 2010-06-17 | Sap Ag | Managing Consistent Interfaces for Credit Portfolio Business Objects Across Heterogeneous Systems |
US9009661B2 (en) * | 2008-12-18 | 2015-04-14 | Adobe Systems Incorporated | Platform sensitive application characteristics |
US9009662B2 (en) * | 2008-12-18 | 2015-04-14 | Adobe Systems Incorporated | Platform sensitive application characteristics |
DE102009020918A1 (en) * | 2009-05-12 | 2010-11-18 | Siemens Aktiengesellschaft | Method and computer system for managing parallel medical applications |
US8352913B2 (en) * | 2009-08-07 | 2013-01-08 | Adobe Systems Incorporated | Generating and resolving component names in an integrated development environment |
US8396751B2 (en) * | 2009-09-30 | 2013-03-12 | Sap Ag | Managing consistent interfaces for merchandising business objects across heterogeneous systems |
US9054913B1 (en) | 2009-11-30 | 2015-06-09 | Dell Software Inc. | Network protocol proxy |
US20110191699A1 (en) * | 2010-02-02 | 2011-08-04 | Dynavox Systems, Llc | System and method of interfacing interactive content items and shared data variables |
US20110246913A1 (en) * | 2010-03-30 | 2011-10-06 | Microsoft Corporation | Automated User Interface Generator |
US8990427B2 (en) | 2010-04-13 | 2015-03-24 | Synactive, Inc. | Method and apparatus for accessing an enterprise resource planning system via a mobile device |
US9026913B2 (en) * | 2010-06-11 | 2015-05-05 | Linkedin Corporation | Replacing an image with a media player |
US9275685B2 (en) | 2010-06-11 | 2016-03-01 | Linkedin Corporation | Smooth playing of video |
US8515794B2 (en) | 2010-06-15 | 2013-08-20 | Sap Ag | Managing consistent interfaces for employee time event and human capital management view of payroll process business objects across heterogeneous systems |
US8417588B2 (en) | 2010-06-15 | 2013-04-09 | Sap Ag | Managing consistent interfaces for goods tag, production bill of material hierarchy, and release order template business objects across heterogeneous systems |
US8412603B2 (en) | 2010-06-15 | 2013-04-02 | Sap Ag | Managing consistent interfaces for currency conversion and date and time business objects across heterogeneous systems |
US8370272B2 (en) | 2010-06-15 | 2013-02-05 | Sap Ag | Managing consistent interfaces for business document message monitoring view, customs arrangement, and freight list business objects across heterogeneous systems |
US8732083B2 (en) | 2010-06-15 | 2014-05-20 | Sap Ag | Managing consistent interfaces for number range, number range profile, payment card payment authorisation, and product template template business objects across heterogeneous systems |
US8364608B2 (en) | 2010-06-15 | 2013-01-29 | Sap Ag | Managing consistent interfaces for export declaration and export declaration request business objects across heterogeneous systems |
US9135585B2 (en) | 2010-06-15 | 2015-09-15 | Sap Se | Managing consistent interfaces for property library, property list template, quantity conversion virtual object, and supplier property specification business objects across heterogeneous systems |
US20120102412A1 (en) * | 2010-10-25 | 2012-04-26 | Microsoft Corporation | Synchronization of form fields in a client-server environment |
US8898589B2 (en) | 2011-06-30 | 2014-11-25 | International Business Machines Corporation | Flattening a subset of configuration user interface (UI) panels in a hierarchy of UI panels |
US8442980B2 (en) * | 2011-07-07 | 2013-05-14 | Oracle International Corporation | Attribute change coalescing in order to deal with component moves on a page |
US8725654B2 (en) | 2011-07-28 | 2014-05-13 | Sap Ag | Managing consistent interfaces for employee data replication business objects across heterogeneous systems |
US8775280B2 (en) | 2011-07-28 | 2014-07-08 | Sap Ag | Managing consistent interfaces for financial business objects across heterogeneous systems |
US8666845B2 (en) | 2011-07-28 | 2014-03-04 | Sap Ag | Managing consistent interfaces for a customer requirement business object across heterogeneous systems |
US8601490B2 (en) | 2011-07-28 | 2013-12-03 | Sap Ag | Managing consistent interfaces for business rule business object across heterogeneous systems |
US8560392B2 (en) | 2011-07-28 | 2013-10-15 | Sap Ag | Managing consistent interfaces for a point of sale transaction business object across heterogeneous systems |
US8521838B2 (en) | 2011-07-28 | 2013-08-27 | Sap Ag | Managing consistent interfaces for communication system and object identifier mapping business objects across heterogeneous systems |
US8984050B2 (en) | 2012-02-16 | 2015-03-17 | Sap Se | Consistent interface for sales territory message type set 2 |
US8756274B2 (en) | 2012-02-16 | 2014-06-17 | Sap Ag | Consistent interface for sales territory message type set 1 |
US9237425B2 (en) | 2012-02-16 | 2016-01-12 | Sap Se | Consistent interface for feed event, feed event document and feed event type |
US9232368B2 (en) | 2012-02-16 | 2016-01-05 | Sap Se | Consistent interface for user feed administrator, user feed event link and user feed settings |
US8762454B2 (en) | 2012-02-16 | 2014-06-24 | Sap Ag | Consistent interface for flag and tag |
US8762453B2 (en) | 2012-02-16 | 2014-06-24 | Sap Ag | Consistent interface for feed collaboration group and feed event subscription |
US9075616B2 (en) | 2012-03-19 | 2015-07-07 | Enterpriseweb Llc | Declarative software application meta-model and system for self-modification |
US9069627B2 (en) * | 2012-06-06 | 2015-06-30 | Synactive, Inc. | Method and apparatus for providing a dynamic execution environment in network communication between a client and a server |
US9367826B2 (en) | 2012-06-28 | 2016-06-14 | Sap Se | Consistent interface for entitlement product |
US9246869B2 (en) | 2012-06-28 | 2016-01-26 | Sap Se | Consistent interface for opportunity |
US8756135B2 (en) | 2012-06-28 | 2014-06-17 | Sap Ag | Consistent interface for product valuation data and product valuation level |
US8615451B1 (en) | 2012-06-28 | 2013-12-24 | Sap Ag | Consistent interface for goods and activity confirmation |
US9400998B2 (en) | 2012-06-28 | 2016-07-26 | Sap Se | Consistent interface for message-based communication arrangement, organisational centre replication request, and payment schedule |
US8949855B2 (en) | 2012-06-28 | 2015-02-03 | Sap Se | Consistent interface for address snapshot and approval process definition |
US8521621B1 (en) | 2012-06-28 | 2013-08-27 | Sap Ag | Consistent interface for inbound delivery request |
WO2014000200A1 (en) | 2012-06-28 | 2014-01-03 | Sap Ag | Consistent interface for document output request |
US9300745B2 (en) * | 2012-07-27 | 2016-03-29 | Synactive, Inc. | Dynamic execution environment in network communications |
US9547833B2 (en) | 2012-08-22 | 2017-01-17 | Sap Se | Consistent interface for financial instrument impairment calculation |
US9076112B2 (en) | 2012-08-22 | 2015-07-07 | Sap Se | Consistent interface for financial instrument impairment expected cash flow analytical result |
US9043236B2 (en) | 2012-08-22 | 2015-05-26 | Sap Se | Consistent interface for financial instrument impairment attribute values analytical result |
US8903178B2 (en) | 2012-11-02 | 2014-12-02 | International Business Machines Corporation | Adjusting application properties |
US9811233B2 (en) * | 2013-02-12 | 2017-11-07 | Ab Initio Technology Llc | Building applications for configuring processes |
US9191343B2 (en) | 2013-03-15 | 2015-11-17 | Sap Se | Consistent interface for appointment activity business object |
US9191357B2 (en) | 2013-03-15 | 2015-11-17 | Sap Se | Consistent interface for email activity business object |
US9626163B2 (en) * | 2013-04-26 | 2017-04-18 | Limited Liability Company “1C” | Method for automated application interface change |
US9292616B2 (en) * | 2014-01-13 | 2016-03-22 | International Business Machines Corporation | Social balancer for indicating the relative priorities of linked objects |
US9489442B1 (en) | 2014-02-04 | 2016-11-08 | Emc Corporation | Prevention of circular event publication in publish/subscribe model using path vector |
US10963539B2 (en) * | 2014-09-10 | 2021-03-30 | Mk Systems Usa Inc. | Interactive web application editor |
JP2017011517A (en) * | 2015-06-23 | 2017-01-12 | 株式会社リコー | Device, information processing system, information processing method, and program |
CN105468365B (en) * | 2015-11-20 | 2021-04-23 | 厦门雅迅网络股份有限公司 | Method for solving tree control node number limitation |
US10656802B2 (en) | 2017-04-05 | 2020-05-19 | Microsoft Technology Licensing, Llc | User interface component registry |
US11216424B2 (en) | 2018-06-07 | 2022-01-04 | Spatika Technologies Inc. | Dynamically rendering an application programming interface for internet of things applications |
US10666718B2 (en) * | 2018-06-07 | 2020-05-26 | Spatika Technologies Inc. | Dynamic data transport between enterprise and business computing systems |
US10996948B2 (en) | 2018-11-12 | 2021-05-04 | Bank Of America Corporation | Software code mining system for assimilating legacy system functionalities |
US11368373B2 (en) * | 2020-06-16 | 2022-06-21 | Citrix Systems, Inc. | Invoking microapp actions from user applications |
US11379253B2 (en) | 2020-11-30 | 2022-07-05 | International Business Machines Corporation | Training chatbots for remote troubleshooting |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850548A (en) * | 1994-11-14 | 1998-12-15 | Borland International, Inc. | System and methods for visual programming based on a high-level hierarchical data flow model |
GB2327836A (en) * | 1997-07-29 | 1999-02-03 | Ibm | User interface controls for a computer system |
Family Cites Families (167)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57157362A (en) | 1981-03-25 | 1982-09-28 | Hitachi Ltd | Method and apparatus of execution path career data pickup for architecture program |
US5737622A (en) | 1986-04-14 | 1998-04-07 | National Instruments Corporation | Method and apparatus for more efficient function synchronization in a data flow program |
US5481740A (en) * | 1986-04-14 | 1996-01-02 | National Instruments Corporation | Method and apparatus for providing autoprobe features in a graphical data flow diagram |
US5291587A (en) | 1986-04-14 | 1994-03-01 | National Instruments, Inc. | Graphical system for executing a process and for programming a computer to execute a process, including graphical variable inputs and variable outputs |
US5341477A (en) | 1989-02-24 | 1994-08-23 | Digital Equipment Corporation | Broker for computer network server selection |
US5057996A (en) | 1989-06-29 | 1991-10-15 | Digital Equipment Corporation | Waitable object creation system and method in an object based computer operating system |
US5129084A (en) | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Object container transfer system and method in an object based computer operating system |
US5297283A (en) | 1989-06-29 | 1994-03-22 | Digital Equipment Corporation | Object transferring system and method in an object based computer operating system |
US5187790A (en) | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
US5619638A (en) | 1989-07-31 | 1997-04-08 | Hewlett-Packard Company | Object based computer system having representation objects for providing interpretative views onto a data object |
US5297279A (en) | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
AU639802B2 (en) | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
US5423041A (en) | 1990-09-28 | 1995-06-06 | Texas Instruments Incorporated | Coupling rules to an object-oriented program |
US5204947A (en) | 1990-10-31 | 1993-04-20 | International Business Machines Corporation | Application independent (open) hypermedia enablement services |
US5291487A (en) * | 1991-01-24 | 1994-03-01 | Micom Communications Corp. | Apparatus for, and method of, packing and unpacking information in transmission lines |
JPH0546568A (en) * | 1991-08-08 | 1993-02-26 | Internatl Business Mach Corp <Ibm> | Dispersion application execution device and method |
EP0546682A3 (en) | 1991-12-12 | 1993-12-08 | Ibm | Parent class shadowing |
US5386558A (en) | 1992-02-24 | 1995-01-31 | Adapsys, Inc. | Method and apparatus for executing control system functions in a computer system |
US5371891A (en) | 1992-04-09 | 1994-12-06 | Microsoft Corporation | Method for object construction in a compiler for an object-oriented programming language |
FR2690260B1 (en) | 1992-04-17 | 1997-01-03 | Bull Sa | USE OF A VERY HIGH LEVEL BIDIRECTIONAL PROTOCOL FOR COMMUNICATION BETWEEN A HYPERMEDIA SYSTEM AND A PLURALITY OF EDITORS. |
US5327562A (en) | 1992-05-06 | 1994-07-05 | Microsoft Corporation | Method for implementing virtual function tables in a compiler for an object-oriented programming language |
US5339430A (en) | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US5515536A (en) | 1992-11-13 | 1996-05-07 | Microsoft Corporation | Method and system for invoking methods of an object through a dispatching interface |
DE69309485T2 (en) | 1992-11-13 | 1997-07-10 | Microsoft Corp | METHOD FOR DISTRIBUTING INTERFACE POINTERS FOR REMOTE PROCEDURE CALLS |
US5887133A (en) * | 1997-01-15 | 1999-03-23 | Health Hero Network | System and method for modifying documents sent over a communications network |
US5566302A (en) | 1992-12-21 | 1996-10-15 | Sun Microsystems, Inc. | Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist |
US5315703A (en) | 1992-12-23 | 1994-05-24 | Taligent, Inc. | Object-oriented notification framework system |
US5574898A (en) | 1993-01-08 | 1996-11-12 | Atria Software, Inc. | Dynamic software version auditor which monitors a process to provide a list of objects that are accessed |
US5437025A (en) | 1993-01-26 | 1995-07-25 | International Business Machines Corporation | System and method for run time configuration of objects in an object oriented computing environment |
US5369766A (en) | 1993-03-25 | 1994-11-29 | Taligent, Inc. | Object-oriented loader system with support for different load formats |
US5325533A (en) | 1993-06-28 | 1994-06-28 | Taligent, Inc. | Engineering system for modeling computer programs |
US5519867A (en) | 1993-07-19 | 1996-05-21 | Taligent, Inc. | Object-oriented multitasking system |
US5485617A (en) | 1993-12-13 | 1996-01-16 | Microsoft Corporation | Method and system for dynamically generating object connections |
US5499343A (en) | 1993-12-17 | 1996-03-12 | Taligent, Inc. | Object-oriented networking system with dynamically configurable communication links |
US5548726A (en) | 1993-12-17 | 1996-08-20 | Taligeni, Inc. | System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node |
US5548723A (en) | 1993-12-17 | 1996-08-20 | Taligent, Inc. | Object-oriented network protocol configuration system utilizing a dynamically configurable protocol stack |
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US5517617A (en) | 1994-06-29 | 1996-05-14 | Digital Equipment Corporation | Automatic assignment of addresses in a computer communications network |
US5581765A (en) | 1994-08-30 | 1996-12-03 | International Business Machines Corporation | System for combining a global object identifier with a local object address in a single object pointer |
JP3508258B2 (en) | 1994-09-09 | 2004-03-22 | 株式会社デンソー | Ignition device for internal combustion engine |
US5586312A (en) | 1994-10-11 | 1996-12-17 | Unisys Corporation | Method and apparatus for using an independent transaction processing application as a service routine |
US5838906A (en) | 1994-10-17 | 1998-11-17 | The Regents Of The University Of California | Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document |
US5623656A (en) | 1994-12-15 | 1997-04-22 | Lucent Technologies Inc. | Script-based data communication system and method utilizing state memory |
US5530852A (en) | 1994-12-20 | 1996-06-25 | Sun Microsystems, Inc. | Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics |
US5819093A (en) | 1995-03-03 | 1998-10-06 | Sun Microsystems, Inc. | System and method for a distributed debugger for debugging distributed application programs |
US5721876A (en) | 1995-03-30 | 1998-02-24 | Bull Hn Information Systems Inc. | Sockets application program mechanism for proprietary based application programs running in an emulation environment |
US5692183A (en) | 1995-03-31 | 1997-11-25 | Sun Microsystems, Inc. | Methods and apparatus for providing transparent persistence in a distributed object operating environment |
US5689664A (en) | 1995-04-14 | 1997-11-18 | Microsoft Corporation | Interface sharing between objects |
US5752031A (en) | 1995-04-24 | 1998-05-12 | Microsoft Corporation | Queue object for controlling concurrency in a computer system |
US5710918A (en) | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
US5701451A (en) | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5737592A (en) | 1995-06-19 | 1998-04-07 | International Business Machines Corporation | Accessing a relational database over the Internet using macro language files |
US5657390A (en) | 1995-08-25 | 1997-08-12 | Netscape Communications Corporation | Secure socket layer application program apparatus and method |
US6249291B1 (en) * | 1995-09-22 | 2001-06-19 | Next Software, Inc. | Method and apparatus for managing internet transactions |
US5572643A (en) | 1995-10-19 | 1996-11-05 | Judson; David H. | Web browser with dynamic display of information objects during linking |
US5872973A (en) | 1995-10-26 | 1999-02-16 | Viewsoft, Inc. | Method for managing dynamic relations between objects in dynamic object-oriented languages |
US6370552B1 (en) * | 1997-05-14 | 2002-04-09 | Citrix Systems, Inc. | Apparatus and method for displaying application output in an HTML document |
US6169540B1 (en) * | 1995-12-01 | 2001-01-02 | Immersion Corporation | Method and apparatus for designing force sensations in force feedback applications |
US6161126A (en) | 1995-12-13 | 2000-12-12 | Immersion Corporation | Implementing force feedback over the World Wide Web and other computer networks |
US5768505A (en) | 1995-12-19 | 1998-06-16 | International Business Machines Corporation | Object oriented mail server framework mechanism |
US5859971A (en) | 1996-02-15 | 1999-01-12 | International Business Machines Corp. | Differencing client/server communication system for use with CGI forms |
US5938733A (en) | 1996-03-08 | 1999-08-17 | International Business Machines Corporation | Object oriented representation of network requests in a client server model |
US5764915A (en) | 1996-03-08 | 1998-06-09 | International Business Machines Corporation | Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack |
US5838910A (en) | 1996-03-14 | 1998-11-17 | Domenikos; Steven D. | Systems and methods for executing application programs from a memory device linked to a server at an internet site |
US5754830A (en) | 1996-04-01 | 1998-05-19 | Openconnect Systems, Incorporated | Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation |
US5933841A (en) | 1996-05-17 | 1999-08-03 | Ameritech Corporation | Structured document browser |
US6434578B1 (en) * | 1996-06-26 | 2002-08-13 | Microsoft Corporation | Generating instruction sequences using independently executable pane renderers |
US6112242A (en) | 1996-07-10 | 2000-08-29 | Uln Corporation | System and method for dynamic data interaction in a hypertext data processing system |
US5757925A (en) * | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
GB2316200A (en) | 1996-08-08 | 1998-02-18 | Ibm | Accessing information about executable code |
EP0853788A1 (en) | 1996-08-08 | 1998-07-22 | Agranat Systems, Inc. | Embedded web server |
US6658624B1 (en) * | 1996-09-24 | 2003-12-02 | Ricoh Company, Ltd. | Method and system for processing documents controlled by active documents with embedded instructions |
US6029182A (en) | 1996-10-04 | 2000-02-22 | Canon Information Systems, Inc. | System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents |
US5944791A (en) | 1996-10-04 | 1999-08-31 | Contigo Software Llc | Collaborative web browser |
US5870545A (en) * | 1996-12-05 | 1999-02-09 | Hewlett-Packard Company | System and method for performing flexible workflow process compensation in a distributed workflow management system |
US5889942A (en) * | 1996-12-18 | 1999-03-30 | Orenshteyn; Alexander S. | Secured system for accessing application services from a remote station |
US6012087A (en) | 1997-01-14 | 2000-01-04 | Netmind Technologies, Inc. | Unique-change detection of dynamic web pages using history tables of signatures |
US5983268A (en) | 1997-01-14 | 1999-11-09 | Netmind Technologies, Inc. | Spreadsheet user-interface for an internet-document change-detection tool |
US5978842A (en) | 1997-01-14 | 1999-11-02 | Netmind Technologies, Inc. | Distributed-client change-detection tool with change-detection augmented by multiple clients |
US6101510A (en) | 1997-01-29 | 2000-08-08 | Microsoft Corporation | Web browser control for incorporating web browser functionality into application programs |
AU740007B2 (en) | 1997-02-21 | 2001-10-25 | Dudley John Mills | Network-based classified information systems |
US5978848A (en) | 1997-03-14 | 1999-11-02 | International Business Machines Corporation | Web browser method and system for backgrounding a link access during slow link access time periods |
US5905987A (en) | 1997-03-19 | 1999-05-18 | Microsoft Corporation | Method, data structure, and computer program product for object state storage in a repository |
US5796952A (en) | 1997-03-21 | 1998-08-18 | Dot Com Development, Inc. | Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database |
US6314456B1 (en) | 1997-04-02 | 2001-11-06 | Allegro Software Development Corporation | Serving data from a resource limited system |
US6262729B1 (en) * | 1997-04-14 | 2001-07-17 | Apple Computer, Inc. | Method and apparatus for binding user interface objects to application objects |
US5946697A (en) | 1997-04-22 | 1999-08-31 | Microsoft Corporation | Rapid transfer of HTML files |
JPH10301874A (en) | 1997-04-22 | 1998-11-13 | Internatl Business Mach Corp <Ibm> | Remote operation method, server remotely operated from terminal through network and storage medium storing html file |
US6230309B1 (en) * | 1997-04-25 | 2001-05-08 | Sterling Software, Inc | Method and system for assembling and utilizing components in component object systems |
US5937160A (en) | 1997-05-01 | 1999-08-10 | Reedy Creek Technologies, Inc. | Systems, methods and computer program products for updating hypertext documents via electronic mail |
US5877757A (en) | 1997-05-23 | 1999-03-02 | International Business Machines Corporation | Method and system for providing user help information in network applications |
US5983227A (en) * | 1997-06-12 | 1999-11-09 | Yahoo, Inc. | Dynamic page generator |
US5978828A (en) | 1997-06-13 | 1999-11-02 | Intel Corporation | URL bookmark update notification of page content or location changes |
US6304895B1 (en) * | 1997-08-22 | 2001-10-16 | Apex Inc. | Method and system for intelligently controlling a remotely located computer |
US6192382B1 (en) | 1997-09-24 | 2001-02-20 | Mediaone Group, Inc. | Method and system for web site construction using HTML fragment caching |
US6035332A (en) * | 1997-10-06 | 2000-03-07 | Ncr Corporation | Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants |
US6081830A (en) * | 1997-10-09 | 2000-06-27 | Gateway 2000, Inc. | Automatic linking to program-specific computer chat rooms |
US5946687A (en) * | 1997-10-10 | 1999-08-31 | Lucent Technologies Inc. | Geo-enabled personal information manager |
US5907681A (en) * | 1997-10-20 | 1999-05-25 | International Business Machines Corporation | Intelligent method, apparatus and computer program product for automated refreshing of internet web pages |
US6311185B1 (en) | 1997-10-30 | 2001-10-30 | At&T Corp. | Method and apparatus for modifying an information page transmitted in a communications network |
US5999179A (en) | 1997-11-17 | 1999-12-07 | Fujitsu Limited | Platform independent computer network management client |
US5999941A (en) * | 1997-11-25 | 1999-12-07 | Micron Electronics, Inc. | Database access using active server pages |
US6490584B2 (en) | 1997-11-26 | 2002-12-03 | International Business Machines Corporation | User-centered push methods and system |
US6601107B1 (en) * | 1998-02-02 | 2003-07-29 | Hughes Electronics Corporation | Adaptive fuzzy control of data acquisition and broadcasting |
US6560639B1 (en) * | 1998-02-13 | 2003-05-06 | 3565 Acquisition Corporation | System for web content management based on server-side application |
US6330880B1 (en) * | 1998-02-27 | 2001-12-18 | Mitsubishi Denki Kabushiki Kaisha | Exhaust gas recirculation system |
US6094662A (en) | 1998-04-30 | 2000-07-25 | Xerox Corporation | Apparatus and method for loading and reloading HTML pages having cacheable and non-cacheable portions |
US6108712A (en) | 1998-05-05 | 2000-08-22 | International Business Machines Corp. | Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system |
US6209029B1 (en) * | 1998-05-12 | 2001-03-27 | Silverstream Software, Inc. | Method and apparatus for accessing data sources in a three tier environment |
AU749314B2 (en) * | 1998-05-15 | 2002-06-20 | Unicast Communications Corporation | A technique for implementing browser-initiated network-distributed advertising and for interstitially displaying an advertisement |
US6397231B1 (en) * | 1998-08-31 | 2002-05-28 | Xerox Corporation | Virtual documents generated via combined documents or portions of documents retrieved from data repositories |
US6480865B1 (en) | 1998-10-05 | 2002-11-12 | International Business Machines Corporation | Facility for adding dynamism to an extensible markup language |
US6397253B1 (en) * | 1998-10-06 | 2002-05-28 | Bull Hn Information Systems Inc. | Method and system for providing high performance Web browser and server communications |
US6313854B1 (en) | 1998-10-16 | 2001-11-06 | International Business Machines Corporation | Display mechanism for HTML frames |
US6271858B1 (en) | 1998-10-16 | 2001-08-07 | Microsoft Corporation | Incremental update for dynamic/animated textures on three-dimensional models |
US6134568A (en) | 1998-10-30 | 2000-10-17 | Kinko's Ventures, Inc. | Previewing an assembled document |
US6249844B1 (en) * | 1998-11-13 | 2001-06-19 | International Business Machines Corporation | Identifying, processing and caching object fragments in a web environment |
US6393422B1 (en) * | 1998-11-13 | 2002-05-21 | International Business Machines Corporation | Navigation method for dynamically generated HTML pages |
US8418131B2 (en) * | 1998-11-25 | 2013-04-09 | Helmut Emmelmann | Interactive server side components |
US6305012B1 (en) * | 1998-12-03 | 2001-10-16 | International Business Machines Corporation | Method and apparatus for dynamic selection of instructions for compiling using tags |
US6571245B2 (en) * | 1998-12-07 | 2003-05-27 | Magically, Inc. | Virtual desktop in a computer network |
US6360250B1 (en) * | 1998-12-28 | 2002-03-19 | Lucent Technologies Inc. | Apparatus and method for sharing information in simultaneously viewed documents on a communication system |
US6311187B1 (en) | 1998-12-29 | 2001-10-30 | Sun Microsystems, Inc. | Propogating updates efficiently in hierarchically structured data under a push model |
US6377957B1 (en) | 1998-12-29 | 2002-04-23 | Sun Microsystems, Inc. | Propogating updates efficiently in hierarchically structured date |
US6889379B1 (en) * | 1998-12-31 | 2005-05-03 | Microsoft Corporation | Transporting objects between a client and a server |
US6507856B1 (en) | 1999-01-05 | 2003-01-14 | International Business Machines Corporation | Dynamic business process automation system using XML documents |
JP3674351B2 (en) * | 1999-01-08 | 2005-07-20 | 富士通株式会社 | Master server |
US6631512B1 (en) * | 1999-01-15 | 2003-10-07 | Gillis E Onyeabor | Method and system for database-driven, scalable web page development, deployment-download, and execution |
US6272493B1 (en) | 1999-01-21 | 2001-08-07 | Wired Solutions, Llc | System and method for facilitating a windows based content manifestation environment within a WWW browser |
US6870551B1 (en) * | 1999-01-28 | 2005-03-22 | International Business Machines Corporation | Method and apparatus for displaying full and selected dynamic data in a data processing system |
US6434738B1 (en) * | 1999-04-22 | 2002-08-13 | David Arnow | System and method for testing computer software |
US6515681B1 (en) | 1999-05-11 | 2003-02-04 | Prophet Financial Systems, Inc. | User interface for interacting with online message board |
GB9913165D0 (en) * | 1999-06-08 | 1999-08-04 | Secr Defence | Access control in a web environment |
US6615088B1 (en) | 1999-06-09 | 2003-09-02 | Amx Corporation | System and method of device interface configuration for a control system |
US6691281B1 (en) * | 1999-06-15 | 2004-02-10 | Microsoft Corporation | Publishing/republishing data tables in HTML documents while maintaining formatting and functionality for restoring back the data tables |
US6742045B1 (en) * | 1999-07-02 | 2004-05-25 | Cisco Technology, Inc. | Handling packet fragments in a distributed network service environment |
US6557076B1 (en) * | 1999-07-22 | 2003-04-29 | International Business Machines Corporation | Method and apparatus for aggressively rendering data in a data processing system |
US6457103B1 (en) | 1999-07-22 | 2002-09-24 | International Business Machines Corporation | Method and apparatus for caching content in a data processing system with fragment granularity |
US6031747A (en) | 1999-08-02 | 2000-02-29 | Lockheed Martin Missiles & Space Company | Interleaved synchronous flyback converter with high efficiency over a wide operating load range |
US6496849B1 (en) | 1999-08-30 | 2002-12-17 | Zaplet, Inc. | Electronic media for communicating information among a group of participants |
US6356933B2 (en) * | 1999-09-07 | 2002-03-12 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
US6701388B1 (en) * | 1999-09-28 | 2004-03-02 | Texas Instruments Incorporated | Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller |
US6587858B1 (en) * | 1999-09-30 | 2003-07-01 | Steven Paul Strazza | Systems and methods for the control of dynamic data and request criteria in a data repository |
US6920607B1 (en) * | 1999-12-15 | 2005-07-19 | Microsoft Corp. | Methods and systems for dynamically creating user interfaces |
AU2582401A (en) * | 1999-12-17 | 2001-06-25 | Dorado Network Systems Corporation | Purpose-based adaptive rendering |
US6785902B1 (en) | 1999-12-20 | 2004-08-31 | Webtv Networks, Inc. | Document data structure and method for integrating broadcast television with web pages |
US20020049788A1 (en) * | 2000-01-14 | 2002-04-25 | Lipkin Daniel S. | Method and apparatus for a web content platform |
US7412644B2 (en) | 2000-02-04 | 2008-08-12 | Aol Llc, A Delaware Limited Liability Company | System and process for delivering and rendering scalable web pages |
US6725335B2 (en) * | 2000-02-09 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and system for fast unlinking of a linked branch in a caching dynamic translator |
US6912571B1 (en) * | 2000-02-22 | 2005-06-28 | Frank David Serena | Method of replacing content |
US6655586B1 (en) * | 2000-02-25 | 2003-12-02 | Xerox Corporation | Systems and methods that detect a page identification using embedded identification tags |
US7509404B2 (en) * | 2000-03-08 | 2009-03-24 | Oracle International Corporation | Methods and systems for partial page caching of dynamically generated content |
US6622168B1 (en) * | 2000-04-10 | 2003-09-16 | Chutney Technologies, Inc. | Dynamic page generation acceleration using component-level caching |
US6792607B1 (en) * | 2000-05-18 | 2004-09-14 | Microsoft Corporation | Databinding using server-side control objects |
JP2001332630A (en) * | 2000-05-19 | 2001-11-30 | Sharp Corp | Method of manufacturing semiconductor device |
US6799209B1 (en) | 2000-05-25 | 2004-09-28 | Citrix Systems, Inc. | Activity monitor and resource manager in a network environment |
US20020065851A1 (en) * | 2000-06-02 | 2002-05-30 | Watson Emerson C. | System and method for creating a website |
US6826594B1 (en) | 2000-07-15 | 2004-11-30 | Commission Junction | Method and system for remote content management of a designated portion of a web page |
EP1475266B1 (en) * | 2000-07-17 | 2006-07-12 | Hitachi, Ltd. | Control method and system for vehicle |
US7039658B2 (en) * | 2000-07-31 | 2006-05-02 | Starkey James A | Method and apparatus for generating web pages from templates |
US6684388B1 (en) * | 2000-08-22 | 2004-01-27 | International Business Machines Corporation | Method for generating platform independent, language specific computer code |
US6920609B1 (en) * | 2000-08-24 | 2005-07-19 | Yahoo! Inc. | Systems and methods for identifying and extracting data from HTML pages |
US6738804B1 (en) * | 2000-09-15 | 2004-05-18 | Yodlee.Com, Inc. | Method and apparatus for enabling sectored data refreshing of Web-site data during session |
US6950850B1 (en) | 2000-10-31 | 2005-09-27 | International Business Machines Corporation | System and method for dynamic runtime partitioning of model-view-controller applications |
US7051084B1 (en) * | 2000-11-02 | 2006-05-23 | Citrix Systems, Inc. | Methods and apparatus for regenerating and transmitting a partial page |
US7346842B1 (en) | 2000-11-02 | 2008-03-18 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client |
US20020099738A1 (en) * | 2000-11-22 | 2002-07-25 | Grant Hugh Alexander | Automated web access for back-end enterprise systems |
-
2001
- 2001-05-01 US US09/846,896 patent/US7194743B2/en not_active Expired - Lifetime
- 2001-05-01 US US09/846,884 patent/US20020105548A1/en not_active Abandoned
- 2001-12-12 GB GB0309655A patent/GB2389292A/en not_active Withdrawn
- 2001-12-12 WO PCT/US2001/048335 patent/WO2002049281A2/en not_active Application Discontinuation
- 2001-12-12 AU AU2002232582A patent/AU2002232582A1/en not_active Abandoned
-
2006
- 2006-12-01 US US11/565,923 patent/US7873965B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850548A (en) * | 1994-11-14 | 1998-12-15 | Borland International, Inc. | System and methods for visual programming based on a high-level hierarchical data flow model |
GB2327836A (en) * | 1997-07-29 | 1999-02-03 | Ibm | User interface controls for a computer system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579951A (en) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | Page element selection method and device, storage medium and equipment |
Also Published As
Publication number | Publication date |
---|---|
AU2002232582A1 (en) | 2002-06-24 |
GB2389292A (en) | 2003-12-03 |
GB0309655D0 (en) | 2003-06-04 |
US7194743B2 (en) | 2007-03-20 |
WO2002049281A3 (en) | 2003-04-17 |
US20020120679A1 (en) | 2002-08-29 |
US20020105548A1 (en) | 2002-08-08 |
WO2002049281A8 (en) | 2004-05-21 |
US7873965B2 (en) | 2011-01-18 |
US20070094672A1 (en) | 2007-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7194743B2 (en) | Methods and apparatus for communicating changes between a user interface and an executing application using property paths | |
US6272673B1 (en) | Mechanism for automatically establishing connections between executable components of a hypertext-based application | |
US6049664A (en) | Tier-neutral development mechanism for hypertext based applications | |
US6356933B2 (en) | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language | |
US8965864B2 (en) | Method and system for efficient execution and rendering of client/server interactive applications | |
US7529841B2 (en) | Method and apparatus for updating and synchronizing information between a client and server | |
US7546298B2 (en) | Software, devices and methods facilitating execution of server-side applications at mobile devices | |
US7269664B2 (en) | Network portal system and methods | |
US6470375B1 (en) | System and method for managing the execution of system management tasks | |
RU2419864C2 (en) | System and method of generating and transmitting requested data between network application programmes | |
US8136109B1 (en) | Delivery of data and formatting information to allow client-side manipulation | |
US20040024843A1 (en) | Method for provisioning distributed web applications | |
CA2598317C (en) | Mobile device having extensible software for presenting server-side applications, software and methods | |
US20090025011A1 (en) | Inter-process communication at a mobile device | |
US6446117B1 (en) | Apparatus and method for saving session variables on the server side of an on-line data base management system | |
US7386551B1 (en) | Method and apparatus for providing an availability message to a remote user | |
Huang et al. | Development and Deployment of Web Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG UZ VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2002550661 Country of ref document: JP |
|
ENP | Entry into the national phase |
Ref document number: 0309655 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20011212 Format of ref document f/p: F |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
CFP | Corrected version of a pamphlet front page |
Free format text: REVISED ABSTRACT RECEIVED BY THE INTERNATIONAL BUREAU AFTER COMPLETION OF THE TECHNICAL PREPARATIONS FOR INTERNATIONAL PUBLICATION |
|
NENP | Non-entry into the national phase |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |