|
Description  |
|
|
CROSS-REFERENCE TO RELATED APPLICATIONS
This application relates to U.S. application Ser. No. 07/350,850 filed on
May 12, 1989 entitled "Joint Information Processing System Including
Plural Terminals"; U.S. application Ser. No. 07/614,087 filed on Nov. 15,
1990 entitled "Joint Information Processing System Comprising a Plurality
of Terminal Apparatuses Guaranteeing Identicalness of Data Processing
Apparatuses Guaranteeing Identicalness of Data Processing Results"; U.S.
application Ser. No. 07/743,851 filed on Aug. 13, 1991 entitled "Method
and System for Storing and Retrieving Collaboratively Processed
Information" assigned to the present assignee, the contents of which are
incorporated herein by reference.
BACKGROUND OF THE INVENTION
The present invention relates to a collaborative information processing
system in which a plurality of terminal users in an identical building or
facility or at remote locations conduct an electronic conversation or a
collaborative information processing while referencing an identical screen
image through data communications, and in particular, to a program control
method for implementing an electronic conversation.
Heretofore, meeting have been held through telephone and facsimile
communications. Moreover, there has been an increasing need in recent
years a system in which group work is accomplished in a realtime fashion
based on electronically processed information by use of remotely located
workstations communicating via high-speed communication networks. An
example of such a system has been reported in "Multimedia Environment for
Remote Multiple Attendee Interactive Decision-making: MERMAID" presented
in the 40-th National Convention IPS, Japan.
In the conventional system of the type mentioned above, an application
program (a client program) to be applied to an electronic conversation, or
a collaborative information processing is required to be unique to the
system. In such a system, various types of programs already accumulated
cannot be utilized for collaborative information processing. Consequently,
it is necessary for the program developing section to additionally prepare
programs for this particular type of system. Moreover, the user is
disadvantageously required to learn how to operate programs unique to such
a system.
SUMMARY OF THE INVENTION
It is therefore an object of the present invention to eliminate the
aforementioned problems in the conventional system so that a program
generated without taking the electronic conversation and the group work
into consideration can be applied to the group work basically without any
modification thereof.
Another object of the present invention is to provide a collaborative
information processing system and a workstation in which a user operating
a workstation having a multi-window system of a server/ client model can
conduct group work on electronically processed information in cooperation
with other workstations, while accessing the electronically processed
information from the workstations in a realtime fashion.
In order to achieve the object stated above in accordance with one aspect
of the present invention, there is provided a workstation for performing a
collaborative information processing in cooperation with at least one
other workstations connected via a network comprising:
input means for inputting data;
display means having a display screen for presetting thereon a plurality
windows;
execution means for executing programs and modules;
memory means for storing programs and modules to be executed by said
execution means; and
communication means for performing communication with said one of the other
workstations via said network,
said memory means storing:
a conversation control program for communicating with another conversation
control program in said one of the other workstations via said
communication means to control the collaborative information processing;
a plurality of client programs each for performing an information
processing in accordance with an input event supplied thereto and for
generating an output request in accordance with a result of the
information processing;
a plurality of window library modules provided respectively in association
with said client programs; and
a window server program for converting input data inputted from said input
means to either one of said windows into a logical input event, for
supplying the logical input event to one of said plurality of window
library modules, which window library module is associated with said one
window, and for updating a display content presented on the display screen
in accordance with an output request generated from one of said client
programs and received via one of said window library modules,
wherein at least one of said plural window library modules is coupled with
said conversation control program such that the window library module
supplies a logical input event received from said window server to said
conversation control program, delivers a logical input event received from
said conversation control program to said one of client programs
associated with the window library module, and passes an output request
from said one client program to said window server program, and
wherein said conversation control program operates to transmit input events
received from said one library module to said another conversation control
program via said communication means.
In accordance with another feature of the present invention, in order for
the respective terminals to achieve group work in cooperation with other
terminals, it is only necessary to modify the standard window library
supported by the general window system. That is, of the modules
constituting the standard window library supported by the general window
system, those required to be cooperative with the conversation control
program are modified as follows. Namely, for each of the modules, without
altering a function name to be adopted when the module is called by the
client program, a function necessary for the group work need only be added
thereto, thereby producing a new library for an objective collaborative
information processing.
In more detail, in the window library thus created in accordance with the
present invention, a module to get events or event acquire module, called
by the client program is executed to receive an event from the window
server to transfer the event to the conversation control program. The
conversation control program accomplishes a processing necessary for the
group work on the received event, for example, an event report to another
station. On the other hand, the conversation control program is then
executed to send the event together with an event received from another
station to the event acquire module. Namely, the event acquire module is
executed to deliver the event received from the conversation control
program to the client program linked therewith.
If the client program linked with the event acquire module is running in a
local mode (other than the group work mode), the event acquire module is
executed to send the event received from the window server directly to the
client program.
According to these features of the present invention, each application or
client program can call any module of the modified window library with the
same function name as used before the modification. In consequence, the
existing programs accumulated before the installation of the collaborative
system mentioned above can be applied to an electronic conversation
environment and/or the group work environment without any restrictions. In
order to use an existing client program in an electronic conversation
program, it is only necessary to simply 1ink an object program obtained by
compiling a source program of the client program with the library thus
generated for the electronic conversation.
The foregoing and other objects, advantages, manner of operation and
features of the present invention will be understood from the following
detailed description when read in conjunction with the accompanying
drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a perspective view showing the overall appearance of a
workstation for use with an electronic conversation system in an
embodiment according to the present invention;
FIG. 2 is a block diagram schematically showing the system configuration of
the workstation;
FIG. 3 is a diagram for explaining programs stored in a memory of each
workstation;
FIG. 4 is a conceptual diagram useful to explain the basic operation of a
window system of server/client model employed in accordance with the
present invention;
FIG. 5 is a schematic diagram for explaining a method of using the window
library according to the present invention;
FIGS. 6 and 7 are diagrams useful to explain a method of modifying the
window library according to the present invention;
FIG. 8 is a diagram for explaining functions of the conventional window
library module;
FIG. 9 is a flowchart showing the operation of the conventional module to
get events;
FIG. 10 is a schematic diagram useful to explain functions of the window
library for use in the electronic conversation according to the present
invention;
FIG. 11 is a flowchart showing the operation of the module to get events
according to the present invention; and
FIG. 12 is a diagram useful to explain the operation of an electronic
conversation system including three workstations.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring now to the drawings, a description will be made of an electronic
conversation system in a collaborative information processing system
according to an embodiment of the present invention.
In the electronic conversation system of the present embodiment, there are
adopted, for example, as shown in FIG. 1, an input device 1, such as a
keyboard for the user to input characters and data, a pointing device 2,
such as a mouse and/or a tablet, an output device 3, such as a display for
presenting thereon processing results, and a workstation 5 provided with a
telephone set 4 for accomplishing communications via speech or audio
signals.
The telephone set 4 may be of an ordinary type or may be integrally
provided to be connected to the workstation via an appropriate interface.
When the telephone set 4 is integrated with the workstation 5, in addition
to communication using ordinary speech, there can be achieved a
transmission of synthesized speech, an accumulation of received speech in
a storage, and the like.
The electronic conversation system according to the embodiment of the
present invention includes a plurality of workstations. These workstations
are connected to each other via a communication path or channel to
communicate data therebetween. The communication path may be established
by a local area network (LAN) and/or a public ISDN network. When the
electronic conversation system is to be used in a private building or
facility, the LAN is preferably adopted; whereas, when the system is
operated between remote locations, the ISDN preferably will be employed.
FIG. 2 shows the internal constitution of the workstation 5. A central
processing unit (CPU) 6 reads a program from a memory or storage 7 to
execute the program. A result of the processing thus executed is further
processed by a bit map processor (BMP) 8 and is then stored in a frame
memory 9. A display controller 10 reads screen data stored in the frame
memory 9 to present the screen data on the display 3.
An input from the keyboard 1 is decoded by a keyboard driver 11 to be
stored in a register 12. Similarly, an input from the mouse 2 is decoded
by a mouse driver 13 and is then loaded in a register 14. An auxiliary
storage, such as a hard disk is loaded with a source file 15 of client
programs, a window library module 16, and the like. The workstation 5 is
coupled via a communication interface 17 to a communication path 18 so as
to be linked via a private branch exchange (PBX) 19 to another
workstation.
The memory 7 is loaded with, as shown in FIG. 3, an operating system 20, a
window server 21, client programs (application programs AP-l to AP-n) 22,
a control program 23, etc. The CPU 6 accomplishes processings of input
data and input commands in accordance with these programs. In this regard,
FL denotes a flag area provided for each client program and is set to "1"
or "0" when the client program is operating in the electronic conversation
(collaborate information processing) mode or the local mode, respectively.
In accordance with the embodiment of the present invention, each of the
workstations is, as shown in FIG. 4, equipped with an X window system (a
trade mark of the Massachusetts Institute of Technology) which is a window
system of server/client model. The X window system includes the window
server program 21 operating to process inputs and outputs of the
workstation. Each client program 22 is executed to carry out a
communication with the window server 21 via a logical inter-program
communication channel 24 called a display connection. The communication is
accomplished by the window library module 16 supported by the window
system. Consequently, each client program compiled is required to be
linked with the window library module 16.
The window server 21 delivers an input from the input device 1 in the
format of an event to the client program 22. Moreover, on receiving an
output request called a request from the client program 22, the window
server 21 outputs the request to the physical output device 3.
Each window library module 16 includes a group of many modules, such as a
module to establish display connection (M-1), a module to get events
(M-2), a module to send output requests (M-n), etc. When necessary, the
client module 22 calls several modules selected from these modules
depending on requirements of the objective processing.
When a client program (source program) 15 is complied, there is created an
object program 25 as shown in FIG. 5.
The object program 25, however, cannot be directly executed for the
following reason. Namely, although the object program 25 includes
information of window library modules to be called by this program, the
window library is separately disposed with respect to the object program
25 and hence does not include information related to the object program 25
in this stage.
A linkage editor program(linker) is executed to link the object program 25
with the window library 16. The linker references the contents of the
object program 25 to examine names (M-2 and M-n in the example of FIG. 5)
of modules called by the object program 25 so as to select the pertinent
modules from the window library 16 and then links the object program 25
with the associated modules, thereby producing an executable load program
26.
In accordance with the embodiment of the present invention, the window
library module 16 is modified to enhance or expand the functions thereof
so that processing necessary for the collaborative information processing
is executed in addition to the processing conventionally used. In this
case, when the module names and the calling procedures are completely
identical before and after the function enhancement or expansion, the
collaborative information processing function can be installed in the
respective workstations merely by re-executing the linkage processing
without modifying the source programs of the client programs.
FIGS. 6 and 7 are diagrams for explaining a method of modifying the
conventional window library to achieve the collaborative information
processing in the X window system according to the present invention.
When the cooperative information (electronic conversation) function is
added to a workstation, some window library modules 16 originally loaded
in the workstation for the cooperative information (electronic
conversation}are required to be modified. For each of the modules
necessitating a modification, a function of the collaborative information
processing is added thereto to prepare a new module 27 having an enhanced
function. The module name and the calling procedure are identical in the
module 27 and the original module 16. For the remaining modules not to be
modified, such new modules 27 need not be generated.
Subsequently, for the original modules 16 necessitating the modification,
namely, for which the new modules 27 are created, a function name change
(replacement) is conducted to produce a replaced library 28.
In the embodiment of FIG. 7, the original module names respectively
corresponding to the new modules M-1 and M-2 are changed to M-1' and M-2',
respectively.
Since the new module 27 is obtained by expanding the function of the
original window library module 16, the original modules associated
therewith may be removed from the replaced library. However, the names of
these modules are changed so as to retain the original modules in this
embodiment such that the new modules prepared for the electronic
conversation uses these original modules as subroutines.
Merging the replaced module 28 with the new module 27, there is obtained a
window library module 29 for the electronic conversation, which is to be
adopted in place of the original library module 16. When viewed from a
client program existing outside the electronic conversation library 29,
the library 29 thus created is virtually the same as the original window
library 16.
However, when the object program 25 attained by compiling the source client
program 15 is subjected to the linkage processing, the object program 25
is linked with the electronic conversation library module 29 in place of
the original library module 16. Consequently, the generated load program
30 is executable in the collaborative information processing (electronic
conversation). That is, without modifying the original source client
program 15, there is obtained a client program for the electronic
conversation.
Next, for easy understanding of the present invention, the window library
module 16 will be described in detail by reference to FIGS. 8 and 9.
As shown in FIG. 8, the window library module 16 includes a buffer area 30
for communications with the window server 21. In the buffer area 30, there
are allocated an output buffer 31 for temporarily storing therein a
request issued from the client program 22 and an event queue area 32 for
temporarily storing therein an event received from the window server 21.
The respective client programs 22 are executed to communicate with the
window server 21 through the buffer area 30.
FIG. 9 is a flowchart showing the function of an original module to get
events M-2' as an example of the window library module 16.
To communicate with the window server 21, the client program 22
periodically calls the module to get events M-2'. The module M-2' thus
called first checks to determine whether or not the event queue 32
contains any events (step 102). If this is the case, the module M-2' gets
an event therefrom to transfer the acquired event to the calling client
program 22 (step 112).
If the event queue 32 is empty, the module M-2' first acquires requests
from the output buffer 31 to send the requests to the window server 21.
This operation is called a flushing of an output buffer (step 104).
Subsequently, an attempt is made to read an event from the connection 24
related to the window server 21. If there does not exist any event to be
read, a wait state is established to await the next event (step 106). If
an event to be read is present, the event is obtained and is queued in the
event queue 32 in a sequential manner (steps 108 to 111). Thereafter, an
event is acquired from the event queue 32 to deliver the event to the
calling client program 22 (step 112).
FIG. 10 shows relationships between the new window library module 29 having
the electronic conversation function, the window server 21, and the
control program 23. In the example, two client programs AP-1and AP-2and a
client program AP-1' are operating under the window server 21 in the
electronic conversation mode and the local mode, respectively.
Even when linked with the new window library module 29, the client program
AP-1' in the local mode achieves the operation shown in FIG. 8 because a
link 24-1' is established to the window server 21 in the same way as for
the original module.
On the other hand, for the two client programs AP-1and AP-2in the
electronic conversation mode, there are established, in addition to the
connections 24-1 and 24-2 to the window server 21, communication channels
46 (46-1 and 46-2) to the control program 23. In this specification, the
communication channels 46 are particularly called ports. Like the
connection 24, each port 46 is available for full-duplex communication,
namely, a data transfer from the client program side to the control
program side and a data transfer in the reverse direction can be
independently accomplished therethrough.
When called by the client program AP-1' operating in the local mode, the
new module to get events M-2 for the electronic conversation in accordance
with the embodiment of the present invention achieves an interaction with
the window server 21. On the other hand, when called by the client program
AP-1 or AP-2operating in the electronic conversation mode, the module M-2
conducts an interaction with the control program 23 in addition to the
interaction with the window server 21.
On receiving an event from the window server 21, the module to get events
for electronic conversation M-2 is executed to transfer an event via the
port 46 to the control program 23 and deliver an event received from the
control program 23 to the client programs AP-1 and AP-2 if the client
programs are in the electronic conversation mode in which the client
programs operate in cooperation with the control program 23. If the client
programs are operating in the local mode, the event received from the
window server 21 is directly delivered to the client programs AP-1 and
AP-2.
The control program 23 runs to transmit the events received via the port 46
to another workstation through the communication channel 18 and output the
events received from other stations via the communication line 18 to the
port 46 in an order in which the events are received. Consequently, the
module to get events M-2 receives both of the event (input operation data
or commands) inputted from the input device 1 thereof and events generated
in other stations so as to pass these events to the client programs AP-1
and AP-2. The client programs run to execute data processing associated
with these events to supply results of the processing (requests) via the
output buffer 31 to the window server 21 such that the requests are
reflected onto the output device 3. Resultantly, the participants or
attendees (stations) can conduct the electronic conversation while
referencing the identical output results on the displays respectively
associated therewith.
In this regard, between the control program 23 and the window server 21, a
display connection 47 similar to the connection 24 is formed for the
control program 23. For example, when the operator achieves a move
operation of a pointing object or a drawing object displayed on the
display screen for the conversation, these events are fed from the window
server 21 via the connection 47 to the control program 23 and then results
of the processing achieved by the control program 23 are delivered via the
connection 47 to the window server 21.
FIG. 11 shows a processing flowchart of the module to get events for
electronic conversation M-2.
When called by a client program, the module M-2 first checks to determine
whether or not the calling client program is running in the electronic
conversation mode i.e. in cooperation with the control program 23 (step
202). If the control program 23 is not in the cooperative operation,
namely, if the client module is operating in the local mode, the step 202
proceeds to execute a subroutine call to initiate the original module M-2'
and the pass an event received from the module M-2' (an event acquired
from the event queue 32) to the client program, thereby returning control
to the calling client program (step 222).
If the control program 23 is in execution, the module M-2 checks to
determine whether or not the event queue 32 contains any events (step
204). If there exists events therein, control is passed to a step 220 so
as to execute the original module M-2', thereby passing an event acquired
from the event queue 32 to the client program (step 222).
When the event queue 32 is empty, the port 46 is checked to determine
whether or not there exist any events received from the control program 23
(step 206). If such an event is missing in the port 46, a step 208 is
initiated to execute the original module M-2'. As can be clearly
appreciated from the flowchart of FIG. 9, since the event queue 32 is
empty in this case, the original module M-2' executes the steps 104 to 110
to transfer the events loaded in the connection 24 of the window server 21
to the event queue 32. Thereafter, one of the events is acquired from the
queue and then is delivered to the module M-2 .
In the module M-2, to send the event received from the module M-2' to the
control program 23, the event is outputted to the port 46 (step 210). If
the event queue 32 still contains events (step 212), control is returned
to the step 208 so as to execute the module M-2', thereby passing an event
obtained from the event queue to the port 46. Through the repetitious
operations of the steps 208 to 212, all events which have been loaded by
the module M-2' into the event queue 32 are transferred to the port 46.
These events are then sequentially obtained therefrom by the control
program 23 to be inputted to the port 46 in the format combined with
events from other workstations.
In the step 212 of the module M-2, when it is confirmed that the event
queue 32 is empty, control is passed again to the step 206. If the port 46
is loaded with events from the control program 23, control branches to the
step 214; otherwise, the processing of the steps 208 to 212 is repeatedly
executed.
If the port 46 has received any event from the control program 23, an event
is acquired therefrom (step 214) and is then enqueued in the event queue
32 (step 216). This operation is repetitiously accomplished until the port
46 becomes empty (step 218). When the events are entirely transferred from
the port 46 to the event queue 32, a step 220 calls the original module
M-2' such that an event is received from the original module M-2' to be
passed to the client program (step 222).
As can be understood from the above description when a client program in
the electronic conversation mode calls the module to get events M-2, an
event acquired via the control program 23 is delivered to the client
program. On the other hand, when a client program in the local mode calls
the module to get events M-2, an event obtained from the window server 21
is directly fed to the client program. In this situation, when calling the
new module for electronic conversation M-2, there is used a name (function
name) of the module M-2 which is identical to that of the module M-2
contained in the original library 16. Consequently, the existing client
programs can be applied to the electronic conversation environment without
any modification thereof.
In the case where a conversation is conducted between a plurality of
attendees or participants at the respective stations while visually
checking an identical display screen image, it is favorable that each
attendee can point to a desired item on the display screen by moving a
pointing object. The pointing object is represented by a pattern having a
shape and a color uniquely assigned to each participant.
In order for an attendee or a participant of the conversation to use a
pointing object, the participant achieves a predetermined input operation
(a pointing object usage start operation) in an application window while a
client program is in execution. The usage start operation is not fixed,
namely, the operation may be appropriately changed for convenience of the
user. When the start operation is completed, the system enters the
pointing object operation mode.
Next, a description will be made of the pointing object operation in which
a mouse is used as the pointing device.
When an input operation which is not ordinarily used by the client programs
is achieved as the pointing object usage start operation, for example,
when a control key and a particular character key are simultaneously
depressed on the keyboard, a pointing object is presented at a position of
the client window indicated by the mouse pointer. The system resultantly
enters the pointing object operation mode. In this mode, an event is not
d | | |