WO2001065417A1 - Improved device independent remote data management - Google Patents

Improved device independent remote data management Download PDF

Info

Publication number
WO2001065417A1
WO2001065417A1 PCT/US2001/006534 US0106534W WO0165417A1 WO 2001065417 A1 WO2001065417 A1 WO 2001065417A1 US 0106534 W US0106534 W US 0106534W WO 0165417 A1 WO0165417 A1 WO 0165417A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
command
commands
language
execute
Prior art date
Application number
PCT/US2001/006534
Other languages
French (fr)
Inventor
Chris H. D. Lin
Original Assignee
Idini Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Idini Corporation filed Critical Idini Corporation
Publication of WO2001065417A1 publication Critical patent/WO2001065417A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention relates to electronic devices used to interact with
  • the present invention provides
  • Networks include server devices which have
  • a given network device may at times act as either a client
  • server and client devices are retained, and those terms shall refer to devices which, although possibly capable of alternating between server and client modes, are
  • Typical networks contain a wide variety of client device types, ranging
  • PDA Personal Digital Assistants
  • Each different client device type typically has a different language
  • the server is required to understand the syntax of the commands sent to it
  • client application software which is available to interact with the server information often has functionality which is substantially reduced from that
  • subset of commands is available to those client device types.
  • FIGS. 1 , IB, and I C Examples of prior art networks are seen in FIGS. 1 , IB, and I C.
  • a first client device 10 is linked to server 12 which
  • a second client device 18 is linked to server 20 which
  • HTML hypertext markup language
  • a network 30 may contain a first client device 32, and
  • Server 36 contains files 38, 40,
  • File 44 is in text format, and may be a file which is incorporated at runtime into a display controlled by files 38,
  • files 38, 40, 42 and 44 may contain the same
  • server 36 must select file 38 for distribution to device
  • server 36 must select file 42 for distribution to device 34.
  • execution by a client computer are presented.
  • the client is connected through a
  • the client communicates with the first server
  • the first server uses a first language, and the first server communicates with each of the servers
  • the language used is determined using the operating environment
  • the first server consults a rule identify a set of server commands in a second
  • respective servers are then caused to execute one or more of the commands with
  • FIGS. 1A, IB, and IC are examples of prior art networks.
  • FIG. 2 is one example of a electronic system according to the present
  • FIGS. 3A and 3B are a flow chart showing a method for processing client
  • FIG. 4 is an example of a rule table according to the present invention.
  • FIG. 5 is a flow chart showing another method according to the present
  • FIG. 6 is an example of a capability table according to the present invention.
  • FIG. 7 is an example of a present invention server loading table.
  • FIGS. 8 A and 8B are a flow chart showing another method of the present
  • FIGS. 9A, 9B and 9C are a flow chart showing yet another method of the
  • FIGS.10A, 10B and IOC are a flow chart showing yet another method of
  • the present invention provides a method and apparatus for allowing client
  • a client device is connected to a second server through a present
  • first server Commands are issued by the client to the first server in a first command language such as WML. If the command relates to an application
  • the first server translates the command into the
  • the results are transmitted by the second server to the first server.
  • the first server may transmit the results to the client device.
  • a limited functionality client device may remotely cause
  • FIG. 2 is one example of a present invention electronic system wherein
  • client devices are linked to servers.
  • network 50 includes client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated with client devices 52 and 54 which are associated
  • adaptive server 56 and servers 58, 60, and 62.
  • server 56 includes an adaptive client interface 64, a personalization module 66, a
  • servers 58, 60, and 62 are typical prior art devices.
  • Server 58 is an example of a typical prior art web server.
  • Servers 60 and 62 are typical prior art devices.
  • servers 50, 60, and 62 use different command syntax and languages.
  • Client interface 64 receives input information from either of clients 52 or
  • Interface 64 is adaptive in that it is configured to determine the type of
  • a first device may
  • a second device may use HTML, but commands issued by either
  • interface may be attached to any type of device.
  • Personalization module 66 is configured to personalize each networking
  • Service routing module 68 determines the proper resources with which to
  • routing module 68 examines a rule table to identify the proper server commands to
  • routing module 68 Once the proper server commands are identified, routing module 68
  • the commands will be particularly structured and formatted for that server.
  • Application interface 70 is configured to transmit the proper server
  • API application program interface
  • Process manger 72 is configured to manage events and processes within
  • FIGS. 3 A and 3B comprise a flowchart showing a method of the present
  • first server a first server and a second server. It is intended that the term "first server" apply
  • server 56 (FIG. 1) through which client commands are passed
  • second server apply to those servers such as servers 58, 60, and 62 which
  • Such a command is not restricted and
  • the client device transmits that client command to a present
  • the first server receives the client command and consults a rule
  • commands 86 translates into a set of one or more commands in a second
  • client "compare" command 90 translates into a set of server commands including
  • the first server translates the chosen command into the
  • the second server executes the translated command
  • a client command is translated into a set of
  • server commands and those server commands are then processed in the order with
  • server commands identified as being equivalent to the client command may be
  • the first server Prior to the execution of block 84, the first server has received a client
  • the first server routing module chooses one of the server
  • each of the server commands will be chosen in the desired order
  • an alternate embodiment may cause the commands to be translated in
  • the first server routing module interrogates a capabilities list
  • column 140 of servers being configured to execute those applications.
  • the client command is to convert a file
  • the client command is transmitted
  • capabilities table shows two servers having IDs 129 and 135 configured to execute
  • a server loading table such as that depicted in FIG. 7 is interrogated
  • server 129 will be
  • module at block 154, identifies a server capable of being configured to execute
  • FIGS. 8 A and 8B are identical to FIGS. 8 A and 8B.
  • a client device such as device 52 (FIG. 2) initiates a document display
  • a first server of the present invention such as
  • WordPerfect application be executed on a server (its own, or a second server) with
  • the first server receives the block 1 0 request. It is assumed
  • the devices such as device 52 be transmitted with every document display request.
  • server 56 may assume a particular client device characteristic information
  • the specific device such as device 52.
  • the present invention first server identifies the language
  • the first server determines the content of the information
  • Examples of content types include images, text, graphics, etc.
  • the first server transmits overview details of each content
  • a preference setting shows that the client device associated with a given
  • login identifier prefers text over graphics, or summary information instead of
  • the client device displays details relating to the various components
  • the present invention first server compares information about
  • This subset may include any set of information within the content bucket which may be displayed in a single screen
  • the upper right region of the content bucket such as the upper right region of the content bucket
  • the selected subset of information selected for display is then transferred to
  • the client device and displayed. Once the information has been transferred, the client device and displayed. Once the information has been transferred, the client device and displayed. Once the information has been transferred, the client device
  • first server process manager awaits the receipt of the next client device command.
  • the client device may transmit windowing commands which cause
  • the first server to refresh the client device display to include different portions of
  • a nonwindowing command is transmitted by the client device
  • document is retrieved by the first server and then presented to the client device one display at a time, or may instead be a method wherein the document is left on the
  • remote server and that remote server is remotely controlled by the first server as
  • FIGS. 9 A, 9B, and 9C together are a flow chart showing a method of the
  • server 56 FIG. 2.
  • any necessary parsing of the client communication is
  • client communication received at block 200 contains a plurality of commands
  • client communication is parsed into a set of distinct first server commands.
  • a command to be processed is chosen from the set of first
  • this block 204 operation will take into account the commands available for processing, and the commands
  • a rule table such as
  • client communication will typically include information relating to the operation
  • the rule table as seen in FIG. 4, includes a command and its
  • a rule table For example, if the first server command is an edit command, a rule table
  • the second procedure may
  • Recursion is used when a command such as command 220 is also a rule
  • command 220 when command 220 is processed, there may be
  • procedures 208 and 210 are both "edit"
  • the priority indicator will indicate that procedure 210 is a
  • procedure 208 higher processing priority than procedure 208.
  • procedure 224 one of the procedures determined at block 206 is chosen for
  • procedure 208 would be
  • application servers are configured to execute the procedure command chosen at
  • application server is chosen to execute the chosen command, and that server is
  • chosen procedure comprises commands which have not yet been executed. If not,
  • At least one application server is configured to execute that command.
  • FIGS. 10A, 10B and IOC are a flow chart showing yet another method of
  • the method begins at step
  • server 56 FIG. 2.
  • the block 252 operation isn't performed.
  • the client communication received at block 250 contains a plurality of commands
  • client communication is parsed into a set of distinct first server commands.
  • a command to be processed is chosen from the set of first
  • a rule table such as
  • an intelligent decision may be made about which configured server to use to execute a given command, and which server(s) to
  • At least one server is configured to perform at least one equivalent
  • a server may be configured to also be executed on a different server, in order to

Abstract

A method and apparatus for remotely controlling server command execution by a client computer are presented. The client is connected through a first server (58) to a plurality of servers. The client communicates with the first servers (58) within the plurality of servers using the language necessary to accomplish the desired task. The language used is determined using the operating environment and the application program interface (70) receiving the command.

Description

SPECIFICATION IMPROVED DEVICE INDEPENDENT REMOTE DATA MANAGEMENT
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to electronic devices used to interact with
information stored on a server. More particularly, the present invention provides
an apparatus interface between client devices and network servers which allows
applications executed on network server to be remotely controlled and
manipulated by the client device.
2. The Background Art
In modern computing, it is commonplace for electronic devices to be linked
together in a network and thus be able to share and operate on information
contained within that network. Networks include server devices which have
information and application software which may be used to "serve" the needs of
client devices.
It is known that a given network device may at times act as either a client
device or a server device. In this specification, the conventional definitions of
server and client devices are retained, and those terms shall refer to devices which, although possibly capable of alternating between server and client modes, are
operating in the named mode at the time a described activity is taking place.
Typical networks contain a wide variety of client device types, ranging
from larger devices such as personal computers and terminals, to smaller devices
such as Personal Digital Assistants (PDA's), and network capable cellular
telephones.
Each different client device type typically has a different language
associated with it, due to the variety of different functions those client device types
may be designed to perform.
In order to serve a given client device type, a server is required to store data
which would be used by that client device type in the language understood and
used by that device type. Examples of those languages include WML, HTML, etc.
Further, the server is required to understand the syntax of the commands sent to it
by client devices, and respond in kind so that the client device will understand the
response.
In addition to certain client device types being incapable of processing
information which is in a different language than that used by the client device, the
client application software which is available to interact with the server information often has functionality which is substantially reduced from that
functionality typically seen in modern desktop computers, due to the client device
having much less display area, lower power consumption requirements, less
processing power, and less memory. Thus, it is typical that a substantially reduced
subset of commands is available to those client device types.
Examples of prior art networks are seen in FIGS. 1 , IB, and I C.
Referring to FIG. 1A, a first client device 10 is linked to server 12 which
contains information files 14 and 6 in wireless markup language (WML), the
language used by client device 10.
Referring to FIG. IB, a second client device 18 is linked to server 20 which
contains files 22 and 24 in hypertext markup language (HTML) format, the
language used by client device 22.
Referring to FIG. IC, a network 30 may contain a first client device 32, and
a second client device 34, both linked to server 36. Server 36 contains files 38, 40,
and 42 in WML, HTML, Xtensive markup language (XML) respectively, the
particular languages suited for particular client devices which are expected to
occasionally require the information stored therein. File 44 is in text format, and may be a file which is incorporated at runtime into a display controlled by files 38,
40, or 42.
In this FIG. IC example, files 38, 40, 42 and 44 may contain the same
information, but in different formats. Thus, if client device 32 requires files in
WML format and requests information contained m the group of files represented
by files 38, 40, 42 and 44, server 36 must select file 38 for distribution to device
32. Correspondingly, if device 34 is requires files m XML format and requests _
information contained in the group of files represented by files 38, 40, 42 and 44,
server 36 must select file 42 for distribution to device 34.
Prior art networks, while suited for their intended puipose of delivering
information to client devices in the formats well-suited for those devices, suffer
significant drawbacks in that it is necessary that servers such as server 36 contain
desired information in the many formats desired by the different client devices
which it serves. Thus, an individual document is required to be stored in as many
formats as the number of types of client devices allowed to be connected to the
network.
It would therefore be beneficial to provide a method and apparatus which
requires only one copy of a given piece of information in a format known to the
server but which can also provide that information in any format required by the various types of portable electronic devices which may become linked to the
network.
Further, prior art networks suffer from their ability to allow client devices
to remotely control the manipulation of files. It was previously stated that client
devices have limited processing power and are therefore limited in the application
software that they can execute. It would therefore be tremendously beneficial to
provide a system and method for client devices to be able to manipulate
information in many different formats and using multiple languages.
SUMMARY OF THE INVENTION
A method and apparatus for remotely controlling server command
execution by a client computer are presented. The client is connected through a
first server to a plurality of servers. The client communicates with the first server
using a first language, and the first server communicates with each of the servers
within the plurality of servers using the language necessary to accomplish the
desired task. The language used is determined using the operating environment
and the application program interface receiving the command. In one embodiment,
the first server consults a rule identify a set of server commands in a second
language which is equivalent to the client command, and then consults a capability
table to determine one or more servers configured to execute each command. The
respective servers are then caused to execute one or more of the commands with
the set of server commands. Any results from those command executions are then
translated back into the client language and transmitted to the client for
processing.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1A, IB, and IC are examples of prior art networks.
5 FIG. 2 is one example of a electronic system according to the present
invention wherein client devices are linked to servers.
FIGS. 3A and 3B are a flow chart showing a method for processing client
device commands in a network according to the present invention.
10
FIG. 4 is an example of a rule table according to the present invention.
FIG. 5 is a flow chart showing another method according to the present
invention.
15
FIG. 6 is an example of a capability table according to the present invention
FIG. 7 is an example of a present invention server loading table.
!0
FIGS. 8 A and 8B are a flow chart showing another method of the present
invention. FIGS. 9A, 9B and 9C are a flow chart showing yet another method of the
present invention.
FIGS.10A, 10B and IOC are a flow chart showing yet another method of
the present invention.
DETAILED DESCRIPTION OF ONE EMBODIMENT
Those of ordinary skill in the art will realize that the following description
of the present invention is illustrative only and not in any way limiting. Other
embodiments of the invention will readily suggest themselves to such skilled
persons having the benefit of this disclosure.
The present invention provides a method and apparatus for allowing client
devices having limited command functionality and which utilize a first language to
control the execution of application programs on remote servers using a second
language.
Briefly, a client device is connected to a second server through a present
invention first server. Commands are issued by the client to the first server in a first command language such as WML. If the command relates to an application
provided by a second server, the first server translates the command into the
language and format used by the second server, and transmits that command to the
server for action. Following the execution of the command by the second server,
the results are transmitted by the second server to the first server. Depending on
what those results are, the first server may transmit the results to the client device.
In this manner, a limited functionality client device may remotely cause
applications to be executed on a server which operates using a command syntax or
language unfamiliar to the client device.
FIG. 2 is one example of a present invention electronic system wherein
client devices are linked to servers.
Referring to FIG. 2 network 50 includes client devices 52 and 54 which
are of different types and therefore have different command syntax and use
different languages, adaptive server 56, and servers 58, 60, and 62. Adaptive
server 56 includes an adaptive client interface 64, a personalization module 66, a
service routing module 68, and application 70. Client devices 52 and 54 and
servers 58, 60, and 62 are typical prior art devices. Server 58 is an example of a typical prior art web server. Servers 60 and 62
are examples of typical prior art application servers. For the purposes of this
disclosure, servers 50, 60, and 62 use different command syntax and languages.
Client interface 64 receives input information from either of clients 52 or
54. Interface 64 is adaptive in that it is configured to determine the type of
devices connected at different ports, and communicate with those devices in their
own desired command syntax. Therefore, by way of example, a first device may
use WML, and a second device may use HTML, but commands issued by either
device through interface 64 will be understood by interface 64. Each port on the
interface may be attached to any type of device.
Personalization module 66 is configured to personalize each networking
session with each client. Following an authentication session which may be
managed by either interface 64 or personalization module 66, a preferences set is
consulted to determine the various settings the particular user of the client device
prefers. Methods to personalize network sessions are known in the art.
Service routing module 68 determines the proper resources with which to
handle command requests submitted by client devices. After a command is
initiated on a client device and transmitted to server 56, routing module 68
determines the proper server resources to utilize to accomplish the desired tasks, and then routes the requests to those servers. In order to determine the resources,
routing module 68 examines a rule table to identify the proper server commands to
satisfy particular client command requests.
Once the proper server commands are identified, routing module 68
examines a capability table and a loading table to determine which servers are
configured to perform the needed commands, and ranks those properly configured
servers in order of their loading. Generally, the most available server having the
quickest anticipated execution time will be chosen to execute the commands, and
the commands will be particularly structured and formatted for that server.
Application interface 70 is configured to transmit the proper server
commands and handle all of the communications between server 56 and servers
58, 60, and 62. Those of ordinary skill in the art will readily appreciate that each
application program has a set of commands associated with it. Those commands
are typically received through the use of an application program interface (API)
which has a format associate therewith. It is this format, coupled with any special
method of transferring data to the server, that is termed "language" in this
specification. The term "language" as used herein is therefore meant to be broad,
rather than limiting. Process manger 72 is configured to manage events and processes within
server 56.
FIGS. 3 A and 3B comprise a flowchart showing a method of the present
invention.
In describing methods of the present invention herein, reference is made to
a first server and a second server. It is intended that the term "first server" apply
to a server such as server 56 (FIG. 1) through which client commands are passed
in order to be processed and translated from the client device language into a
server language understood by a second server. It is therefore intended that the
term "second server" apply to those servers such as servers 58, 60, and 62 which
receive translated commands from the first server.
Referring to FIGS. 3 A and 3B together, the method begins at block 80
where a client device initiates a command. Such a command is not restricted and
can therefore be an application command, a web display command, or any other
commands used in a network.
At block 82, the client device transmits that client command to a present
invention first server. At block 84, the first server receives the client command and consults a rule
table to determine a set of one or more server commands equivalent to the client
command. An example of such a rule table is seen in FIG. 4 where a first column
of commands 86 translates into a set of one or more commands in a second
column of commands 88. By way of example and not intended to be limiting, a
client "compare" command 90 translates into a set of server commands including
commands 92, 94, 96, 98, 100, 102, and 104.
The server commands equivalent to "compare" command 90, in this
example, would be a set of commands which include the steps of (92) determining
whether the files being compared are in the same file format, (94) if the files being
compared are not the same file format, converting one document into the other
documents format, or converting both documents into a common third format, (96)
opening the first file, (98) opening the second file, (100) comparing the two files,
(102) closing the first file, and then (104) closing the second file. Those of
ordinary skill in the art will readily recognize that commands such as those
described herein may be presented in one or more alternate sequences and still
accomplish an equivalent result.
The foregoing example is meant to be illustrative only. Those of ordinary
skill in the art will readily recognize that many different command constructs will achieve the same result. It is intended that all such constructs be included in the
present invention.
Returning to the discussion of FIG. 3, at block 1 10, the first server chooses,
in order of required execution, a command from the set of server commands
previously determined at block 84,
At block 112, the first server translates the chosen command into the
language (or format) required by the second server and transmits that translated
command to the second server for execution.
At block 114, the second server executes the translated command and
returns any results back to the first server.
At block 116, it is determined whether all commands from the set of server
commands have been processed through blocks 110, 112, and 114. If yes, the
method proceeds with block 118 where the first server collates the results of the
various command executions and translates those results into the first language (or
format) and transmits the translated results to the client for display. If, at block 116, not all commands from the set of server commands had
been processed, the method proceeds at block 110 where a new command is
chosen from the set and processed.
In the preceding example, a a client command is translated into a set of
server commands, and those server commands are then processed in the order with
which those commands are expected to be executed. As each command is
processed, it is transmitted to the proper server for execution. Those of ordinary
skill in the art will readily recognize that the commands making up the set of
server commands identified as being equivalent to the client command may be
occasionally be processed in parallel, and alternatively in different order, and still
achieve an equivalent result. Further, rather than transmitting each command as it
is processed, all commands may be processed and then transmitted to the
respective servers as a set.
A more detailed presentation of one method contemplated by the inventor
to accomplish the execution of block 84 is seen in FIG. 5.
Prior to the execution of block 84, the first server has received a client
command from the client device. Referring to FIG. 5, the detailed method of block 84 begins at block 130
where the first server interrogates a rule base such as seen in FIG. 4 in order to
map the client command into a set of equivalent server commands.
At block 132, the first server routing module chooses one of the server
commands from the set of equivalent server commands to be processed. It is
contemplated that each of the server commands will be chosen in the desired order
of execution, but it is not necessary that the order of command processing be
chosen in that manner.
Those of ordinary skill in the art having the benefit of this disclosure will
readily recognize that this example method operates on the commands in order,
and transmits translated commands to the second server as they are translated.
However, an alternate embodiment may cause the commands to be translated in
any order, cache the results, then transmit the translated commands in their correct
order.
At block 134, the first server routing module interrogates a capabilities list
to determine one or more servers which are configured to execute the required
server commands. One example of such a capabilities table is seen in FIG. 6
which includes a column 136 of commands, a column 138 of applications, and a
column 140 of servers being configured to execute those applications.. By way of example, assume that the client command is to convert a file
from a first file format to a second file format. The client command is transmitted
from the client device in the client language to the first server which translates that
client command into one or more server commands using the rule base. The
capabilities table shows two servers having IDs 129 and 135 configured to execute
the "convert" command.
After determining that there are one or more servers configured to execute
the command, a server loading table such as that depicted in FIG. 7 is interrogated
to determine which of those two servers can execute the command most
efficiently. In this example, and using the capabilities table of FIG. 7, since the
loading on server 129 is less than the loading on server 135, server 129 will be
chosen to execute the command.
At block 150, it is determined whether each server command has been
mapped to a server configured to execute that command.
If yes, the method proceeds with block 152 where it is determined whether
all server commands have been processed through blocks 132, 134, and 150. If
yes, the method ends. If, at block 150, there exists at least one server command which doesn't
have an associated server configured to execute that command, the routing
module, at block 154, identifies a server capable of being configured to execute
the command and configures that server. This process of identifying a potential
server and properly configuring it is further described in U.S. Patent Application
S/N 09/432,491 entitled -."DIRECTORY-BASED FAILURE RECOVERY AND
LOAD BALANCING SYSTEM" naming inventor Horng-Dar Lin and assigned to
iDini, Inc. which is hereby incorporated herein in its entirety.
A further illustrative method of the present invention is presented herein as
FIGS. 8 A and 8B.
Referring to FIGS. 8 A and 8B together, the method begins at block 160
where a client device such as device 52 (FIG. 2) initiates a document display
request and transmits that request to a first server of the present invention such as
server 56. By way of example, assume that the client device command is to
present the details of a word-processing document to the client device for viewing.
Since the client device doesn't have the processing power to run such a complex
application such as WordPerfect, it is necessary that the first server ensure that the
WordPerfect application be executed on a server (its own, or a second server) with
the proper document requested by the client device and that display details are
translated and forwarded to the client device. At block 162 the first server receives the block 1 0 request. It is assumed
herein that information describing characteristics of device 52 have previously
been received, and that the client device type is known by the present invention
first server. It is therefore not necessary that information describing characteristics
the devices such as device 52 be transmitted with every document display request.
However, in order for a server such as server 56 to be able to provide
display, edit or other device dependent services, it is necessary that such
information describing characteristics of device 52 be provided at some point prior
to server 56 providing display information back to device 52. In the absence of
specific client device characteristic information, server 56 may assume a particular
default set of characteristics that would be used absent information pertaining to
the specific device such as device 52.
At block 1 4, the present invention first server identifies the language
required to retrieve the document and requests the document from its storage
location using that identified language. The identification of the language required
is accomplished by determining the type of server on which the document resides,
together with identifying the document file format. Those of ordinary skill in the
art are readily aware of many ways to identify a server type and a file format type. At block 166. the first server determines the content of the information
stored in the retrieved document and isolates differing content types into content
buckets. Examples of content types include images, text, graphics, etc.
At block 168, the first server transmits overview details of each content
bucket to the requesting client device, based on preference settings. If, for
example, a preference setting shows that the client device associated with a given
login identifier prefers text over graphics, or summary information instead of
actual text, the information provided the client at this block is adjusted
accordingly.
At block 170, the client device displays details relating to the various
content buckets, and a particular content bucket is chosen for display by
transmitting a "display bucket" command to the first server.
At block 172, the present invention first server compares information about
the particular content bucket with the display characteristics of the client device to
determine whether all of the information from the desired content bucket can be
displayed on a single screen of that client device.
If no, at block 174 a subset of information from the content bucket is
selected for display by the first server. This subset may include any set of information within the content bucket which may be displayed in a single screen
of the client device, such as the upper right region of the content bucket, the upper
left region of the content bucket, etc.
The selected subset of information selected for display is then transferred to
the client device and displayed. Once the information has been transferred, the
first server process manager awaits the receipt of the next client device command.
Those of ordinary skill in the art having the benefit of this disclosure will readily
recognize that the client device may transmit windowing commands which cause
the first server to refresh the client device display to include different portions of
the chosen content bucket.
At block 176, a nonwindowing command is transmitted by the client device
to the first server and a determination is made whether the command is to choose a
new content bucket for display. If yes, the method proceeds at block 172. If no,
the method proceeds at block 178 where the new command is evaluated and
processed as described herein.
Those of ordinary skill in the art having the benefit if this disclosure will
readily recognize that a method for using the client device to view a document
which is stored on a remote server may be as described above, where the
document is retrieved by the first server and then presented to the client device one display at a time, or may instead be a method wherein the document is left on the
remote server and that remote server is remotely controlled by the first server as
described herein to provide data relating to the different content buckets.
FIGS. 9 A, 9B, and 9C together are a flow chart showing a method of the
present invention.
Referring to FIGS. 9A, 9B, and 9C together, the method begins at block
200 when a client communication is received by a first server implementing the
present invention such as server 56 (FIG. 2).
At block 202, any necessary parsing of the client communication is
performed. If the client communication is a single command, no parsing is
required, and therefore the block 202 operation isn't performed. However, if the
client communication received at block 200 contains a plurality of commands, the
client communication is parsed into a set of distinct first server commands.
At block 204, a command to be processed is chosen from the set of first
server commands created at block 202. It is contemplated that some first server
commands will be dependent upon the prior execution of other commands, while
other first server commands are not dependent upon other commands and may
therefore be executed at any time. It is contemplated that this block 204 operation will take into account the commands available for processing, and the commands
previously executed, as is necessary.
Once a first server command is chosen for processing, a rule table such as
that seen in FIG. 4 is searched, at block 206, for one or more application
procedures that are equivalent to that chosen first server command. Recall that a
client communication will typically include information relating to the operation
desired, the format of any documents involved, and the type of client requesting-
the service. The rule table, as seen in FIG. 4, includes a command and its
argument(s), and procedures and arguments which an application server may
perform that are equivalent to the desired first server command. Optionally, the
rule table includes a priority indicator which indicates the order in which similar
procedures shall be processed. In the example of FIG. 4, no specific priority
indicator is shown. However, the rules are processed in order of occurrence in
table.
For example, if the first server command is an edit command, a rule table
inquiry provides procedures 208 and 210, procedure 208 having the steps of open
(212), edit command (214), and close (216). Therefore, to edit a document having
format X, it is required (under this procedure) to open the document, perform the
desired edit command, and then close the document. If the first procedure isn't able to be performed, the second procedure may
be performed, the second procedure having the steps of converting the document
from format X to format Y (218), performing the desired edit command in format
Y (220), then converting the resulting document back into format X (222). Those
of ordinary skill in the art having knowledge of this disclosure will readily
recognize that this second procedure requires multiple rule table interrogations,
and recursion.
Recursion is used when a command such as command 220 is also a rule,
such as rule 208. In this instance, when command 220 is processed, there may be
no application servers that understand how to perform the command directly.
When this situation occurs, the rule table is examined again to determine if a
equivalent procedure is available. At that time, procedure 208 will be substituted
for command 220.
If the rule table optionally includes a priority indicator for one or more
procedures, that priority indicator will be utilized when choosing which procedure
to process. For example, although procedures 208 and 210 are both "edit"
procedures, a system may exist wherein it is highly desirable to perform procedure
210 prior to executing procedure 208, then only executing procedure 208 as
necessary. Therefore, the priority indicator will indicate that procedure 210 is a
higher processing priority than procedure 208. At block 224, one of the procedures determined at block 206 is chosen for
processing. It is contemplated that the procedures in the rule table will be listed in
order of their desirability for execution. Therefore, procedure 208 would be
attempted prior to procedure 210, even though both procedures are equivalent to
the same rule. Those of ordinary skill in the art familiar with this disclosure would
be capable of determining other methods to cause highly preferred procedures to
execute prior to equivalent less-preferred procedures.
At block 226, the procedure determined at block 224 is examined, and a
command within that procedure is chosen for processing. Although it is
contemplated that commands within procedures will often be executed in the order
that they are listed in the rule table, it is contemplated that some commands having
no dependencies will execute concurrently or out of order with other commands
listed in the same procedure.
At block 228, the various application servers are polled to determine which
application servers are configured to execute the procedure command chosen at
block 226.
At block 230, it is determined whether at least one application server is
configured to perform the chosen procedure command. If yes, the method proceeds to block 232 where it is determined whether the chosen procedure
command depends on the results of a previous command in order to be executed
properly.
If no, the method proceeds at block 234 where the most efficient
application server is chosen to execute the chosen command, and that server is
then caused to execute that command. At block 236, it is determined whether the
chosen procedure comprises commands which have not yet been executed. If not,
the method proceeds at block 238 where it is determined whether any unprocessed
first server commands exist.
If no unprocessed first server commands exist, the method ends.
If, at block 230, there wasn't at least one application server configured to
execute the desired application command, the method proceeds at block 240 where
at least one application server is configured to execute that command. Further
details on at least one method which may be used to configure such an application
server is described in U.S. Patent Application S N 09/432,491 entitled
."DIRECTORY-BASED FAILURE RECOVERY AND LOAD BALANCING
SYSTEM" naming inventor Horng-Dar Lin and assigned to iDini, Inc. After a
server is configured to execute the desired command, the method proceeds at
block 232. If, at block 232, it is determined that the chosen application server
command requires the results of another command execution in order to itself
execute properly, it is determined, at block 242, whether that other command has
completed. If not, the method proceeds at block 244 where execution of the
present command is delayed until the precedent command has completed
execution. The method then proceeds at block 234.
If, at block 236, unexecuted commands within the chosen procedure exist,
one of those executed commands is chosen for execution as previously described,
and the method proceeds with block 228.
If, at block 238, unprocessed procedures exist, one of those procedures is
chosen for processing as previously described, and the method proceeds with
block 206.
FIGS. 10A, 10B and IOC are a flow chart showing yet another method of
the present invention.
In the method of FIG. 9, a client command was received, and that client
command was compared against a rule table to determine procedures that are equivalent to the client command, and those procedures were executed . One of
those procedures was chosen for processing based upon a predetermined priority,
and commands within that procedure were then executed on application servers
configured for that purpose..
In the FIG. 10 embodiment, a similar order of operations takes place.
However, following the step where all procedures equivalent to a given client
command are determined, the application servers are polled to determine two
things. First, it is determined whether one or more application servers are
configured to execute the desired commands. Second, data corresponding to those
configured servers if obtained in order for a decision to be made as to the most
efficient server to use to execute the given commands within a given procedure.
Once it is determined which procedure is most efficient to execute on particular
configured servers, the various commands within those procedures are executed.
Referring to FIGS. 10A, 10B, and IOC together, the method begins at step
250 when a client communication is received by a first server implementing the
present invention such as server 56 (FIG. 2).
At block 252, any necessary parsing of the client communication is
performed. If the client communication is a single command, no parsing is
required, and therefore the block 252 operation isn't performed. However, if the client communication received at block 250 contains a plurality of commands, the
client communication is parsed into a set of distinct first server commands.
At block 254, a command to be processed is chosen from the set of first
server commands created at block 252. It is contemplated that some first server
commands will be dependent upon the prior execution of other commands, while
other first server commands are not dependent upon other commands and may
therefore be executed at any time. It is contemplated that this block 254 operation
will take into account the commands available for processing, and the commands
previously executed, as is necessary.
Once a first server command is chosen for processing, a rule table such as
that seen in FIG. 4 is searched, at block 256, for one or more application
procedures that are equivalent to that chosen first server command. The same or
similar criteria is used here as was previously described for block 206 (FIG. 9).
At block 258, the various application servers are polled to determine their
configuration and available for processing commands within the procedures from
block 256. It is contemplated that the various application servers will respond
with their configuration information, including application loading. Therefore,
using the loading information, an intelligent decision may be made about which configured server to use to execute a given command, and which server(s) to
configure to execute commands it is not yet configured to execute.
At block 260, it is determined whether at least one server is configured to
execute a procedure commands which are (as a set) equivalent to the client
command. It is possible that one server will be able to perform all of the
commands within a given procedure. However, it is contemplated that two or
more servers will be used, each server performing a subset of the commands
within a given procedure.
If at least one server is configured to perform at least one equivalent
procedure, at block 262, it is determined whether multiple equivalent procedures
able to be performed which are equivalent to the client command being processed.
If yes, the method proceeds at block 264 where one of those procedures are
chosen for execution. It is contemplated that server efficiency will be taken into
account when choosing the procedure to be utilized, and the servers on which
commanάs within that procedure will be executed. Those of ordinary skill in the
art readily recognize that server efficiency includes many factors, including
loading, configuration time, etc. At block 266, the commands within the chosen procedure are issued to the
various servers for execution, taking into account command precedence as
previously discussed in relation to FIG. 9.
If, at block 260, none of the equivalent procedures may be executed
because either no servers are configured to execute one or more commands within
the procedures or the servers that are configured properly are overloaded, the
method proceeds at block 268 where one or more procedures are chosen to he
configured. It is contemplated that a decision to configure one procedure may be
made, or a decision to configure two or more equivalent procedures may be made,
based on command execution history, priority, and other factors known to those of
ordinary skill in the art.
At block 270, each command with the chosen one or more procedures that
isn't currently configured on an applications server is configured. It is
contemplated that some commands that are currently configured to be executed on
a server may be configured to also be executed on a different server, in order to
improve execution efficiency.
At block 266, the commands within one of the equivalent procedures are
executed. It is contemplated that if multiple servers had been configured at block 270 so that more choices were available, the method may proceed again at either
block 258 or block 262, depending on a given system designers desires.
If, at block 262, only one equivalent procedure was properly configured for
execution, that procedure is designated, at block 272, as the chosen procedure.
The method then proceeds at block 266, where commands within that procedure
are executed.
While embodiments and applications of this invention have been shown
and described, it would be apparent to those skilled in the art that many more
modifications than mentioned above are possible without departing from the
inventive concepts herein. The invention, therefore, is not to be restricted except
in the spirit of the appended claims.

Claims

What is Claimed is:
1. In a networked computer system having a client connected through a first
server to an application server, the client being configured to communicate with
said first server using a first language, the first server and the application server
configured to communicate with each other using a second language, a method for
remotely handling application commands comprising
initiating at least one command in said first language on the client and
transmitting said at least one command to said first server as a command string; ..
parsing said command string into distinct first server commands;
choosing from said first server commands a first command to be processed;
translating, using a rule table, said first command in said first language into
a procedure comprising at least one equivalent command in said second language;
choosing from said equivalent commands, a desired command to be
executed;
choosing an application server configured to execute said desired
command;
causing said application server to execute said desired command.
2. The method of claim 1 further including
determining that an application server is not configured to execute the
desired command;
configuring an application server to properly execute the desired command.
3. The method of claim 2 wherein determining that an application server is not
configured to execute the desired command is accomplished by polling the
available application servers to determine whether the desired command is
available for execution, and receiving information that no server is configured to
execute the desired command.
4. The method of claim 1 wherein said rule table is stored entirely on said first
server.
5. In a networked computer system having a client connected through a first
server to an application server, the client being configured to communicate with
said first server using a first language, the first server and the application server
configured to communicate with each other using a second language, a method for
remotely handling application commands comprising:
initiating at least one command in said first language on the client and
transmitting said at least one command to said first server as a command string;
parsing said command string into distinct first server commands;
choosing from said first server commands a first command to be processed;
translating, using a rule table, said first command in said first language into
a procedure comprising at least one equivalent command in said second language; choosing from said equivalent commands, a desired command to be
executed;
determining that the application servers configured to execute the desired
command cannot perform the command within a predetermined acceptable time
span;
configuring an additional application server to properly execute the desired
command.
causing said additional application server to execute said desired command.
6. In a networked computer system having a client connected through a first
server to at least three application servers, the client being configured to
communicate with said first server using a first language, the first server and said
at least three application servers configured to communicate using a second
language, a method for remotely handling application commands comprising:
initiating at least two commands in said first language on the client and
transmitting said at least two commands to said first server;
choosing from said at least two first server commands at least two
commands to be processed;
translating said at least two command in said first language into an equal
number of equivalent command sets in said second language;
choosing from said equivalent command sets, a first command set to he
executed; causing a first one of said application servers to execute said first command
set;
choosing from said equivalent command sets, a second command set to be
executed;
causing a second one of said application servers to execute said second
command set.
7. The method of claim 6 wherein said causing a first one of said application
servers step is further defined as
determining the server efficiency factors for at least two of said at least
three application servers;
choosing the application server having the most desirable server efficiency
factor to execute said first command set;
causing said chosen server to execute said first command set.
8. The method of claim 6 wherein said causing a second one of said
application servers step is further defined as
determining that the server efficiency factors for a second application
server is more desirable than the server efficiency factor for said first application
server;
causing said second application server to execute said second command set.
9. The method of claim 6 wherein said translating is accomplished using a
rule table.
10. A machine readable media having stored thereon machine executable
instructions to perform a method in a networked computer system having a client
connected through a first server to an application server, the client being
configured to communicate with said first server using a first language, the first
server and the application server configured to communicate with each other using
a second language, the method being for remotely handling application commands
comprising:
initiating at least one command in said first language on the client and
transmitting said at least one command to said first server as a command string;
parsing said command string into distinct first server commands;
choosing from said first server commands a first command to be processed;
translating, using a rule table, said first command in said first language into
a procedure comprising at least one equivalent command in said second language;
choosing from said equivalent commands, a desired command to be
executed;
choosing an application server configured to execute said desired
command;
causing said application server to execute said desired command.
11. The machine readable media of claim 10 further having stored thereon
instructions to perform the following additional instructions:
determining that an application server is not configured to execute the
desired command;
configuring an application server to properly execute the desired command.
12. The machine readable media of claim 11 wherein determining that an
application server is not configured to execute the desired command is
accomplished by polling the available application servers to determine whether
the desired command is available for execution, and receiving information that no
server is configured to execute the desired command.
13. A machine readable media having stored thereon machine executable
instructions to perform a method in a networked computer system having a client
connected through a first server to an application server, the client being
configured to communicate with said first server using a first language, the first
server and the application server configured to communicate with each other using
a second language, the method being for remotely handling application commands
comprising:
initiating at least one command in said first language on the client and
transmitting said at least one command to said first server as a command string;
parsing said command string into distinct first server commands; choosing from said first server commands a first command to be processed;
translating, using a rule table, said first command in said first language into
a procedure comprising at least one equivalent command in said second language;
choosing from said equivalent commands, a desired command to be
executed;
determining that the application servers configured to execute the desired
command cannot perform the command within a predetermined acceptable time
span;
configuring an additional application server to properly execute the desired
command.
causing said additional application server to execute said desired command.
14. A machine readable media having stored thereon machine executable
instructions to perform a method in a networked computer system having a client
connected through a first server to at least three application servers, the client
being configured to communicate with said first server using a first language, the
first server and said at least three application servers configured to communicate
using a second language, the method for remotely handling application commands
comprising:
initiating at least two commands in said first language on the client and
transmitting said at least two commands to said first server; choosing from said at least two first server commands at least two
commands to be processed;
translating said at least two command in said first language into an equal
number of equivalent command sets in said second language;
choosing from said equivalent command sets, a first command set to be
executed;
causing a first one of said application servers to execute said first command
set;
choosing from said equivalent command sets, a second command set to be
executed;
causing a second one of said application servers to execute said second
command set.
15. The machine readable media of claim 14 further having stored thereon
instructions to perform the following additional instructions wherein said causing
a first one of said application servers step is further defined as
determining the server efficiency factors for at least two of said at least
three application servers;
choosing the application server having the most desirable server efficiency
factor to execute said first command set;
causing said chosen server to execute said first command set.
PCT/US2001/006534 2000-03-02 2001-02-28 Improved device independent remote data management WO2001065417A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US18655400P 2000-03-02 2000-03-02
US60/186,554 2000-03-02
US70907000A 2000-11-08 2000-11-08
US09/709,070 2000-11-08

Publications (1)

Publication Number Publication Date
WO2001065417A1 true WO2001065417A1 (en) 2001-09-07

Family

ID=26882203

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/006534 WO2001065417A1 (en) 2000-03-02 2001-02-28 Improved device independent remote data management

Country Status (2)

Country Link
TW (1) TW493128B (en)
WO (1) WO2001065417A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1376340A2 (en) * 2002-06-19 2004-01-02 Robert Bosch Gmbh Electronic device system controlled by a processor
EP1557756A2 (en) * 2004-01-23 2005-07-27 Microsoft Corporation Deterministic rule-based dispatch of objects to code for processing objects

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524253A (en) * 1990-05-10 1996-06-04 Hewlett-Packard Company System for integrating processing by application programs in homogeneous and heterogeneous network environments
US5627996A (en) * 1992-08-19 1997-05-06 At&T Method and apparatus for accessing the same computer file using different file name formats
US5724503A (en) * 1995-03-31 1998-03-03 Sun Microsystems, Inc. Method and apparatus for interpreting exceptions in a distributed object system
US5960200A (en) * 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524253A (en) * 1990-05-10 1996-06-04 Hewlett-Packard Company System for integrating processing by application programs in homogeneous and heterogeneous network environments
US5627996A (en) * 1992-08-19 1997-05-06 At&T Method and apparatus for accessing the same computer file using different file name formats
US5724503A (en) * 1995-03-31 1998-03-03 Sun Microsystems, Inc. Method and apparatus for interpreting exceptions in a distributed object system
US5960200A (en) * 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1376340A2 (en) * 2002-06-19 2004-01-02 Robert Bosch Gmbh Electronic device system controlled by a processor
EP1376340A3 (en) * 2002-06-19 2008-11-05 Robert Bosch Gmbh Electronic device system controlled by a processor
EP1557756A2 (en) * 2004-01-23 2005-07-27 Microsoft Corporation Deterministic rule-based dispatch of objects to code for processing objects
EP1557756A3 (en) * 2004-01-23 2006-01-18 Microsoft Corporation Deterministic rule-based dispatch of objects to code for processing objects
US7624141B2 (en) 2004-01-23 2009-11-24 Microsoft Corporation Deterministic rule-based dispatch of objects to code

Also Published As

Publication number Publication date
TW493128B (en) 2002-07-01

Similar Documents

Publication Publication Date Title
US10063618B2 (en) Remote browsing session management
EP0810524B1 (en) Apparatus and method for processing servlets
US7269664B2 (en) Network portal system and methods
US9723067B2 (en) Prioritized content transmission
US6237005B1 (en) Web server mechanism for processing multiple transactions in an interpreted language execution environment
US7496641B2 (en) Computer system
US7526482B2 (en) System and method for enabling components on arbitrary networks to communicate
EP2116937A1 (en) Web server for managing session and its method
US20040204073A1 (en) Network technology augmented user device framework
JP2000322395A (en) Method and device for coordination proxy system for distribution of object rendering
US20080141238A1 (en) Feature manager system for facilitating communication and shared functionality among components
US10057320B2 (en) Offline browsing session management
WO2001065417A1 (en) Improved device independent remote data management
JP2001331408A (en) Method and system for specifying required device attribute to be buried in worldwide web document request
WO2001065393A1 (en) Improved device independent remote data management
US7367029B2 (en) Method and system for handling data
WO2001065408A1 (en) Device independent remote data management
JP2001195240A (en) Data operating method and client server system and storage medium with program for data operation

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: COMMUNICATION PURSUANT TO RULE 69 EPC (EPO FORM 1205A OF 030203)

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP