Consistency Mechanism for Cooperative Work inDistributed 3D Virtual Spaces
Eisuke Itoh

Tomohiko Kawano

Yoshihiro Okada

itou@cc.kyushu-u.ac.jp

kawano@csce.kyushu-u.ac.jp

okada@i.kyushu-u.ac.jp

Computing and Communications Center,

Dept.of Computer Science and Dept. of Informatics,
Communication Engineering,
Kyushu University.
Hakozaki 6-10-1, Higashi-ku, Fukuoka, 812-8581, JAPAN.

Abstract— Currently the authors are studying on CSCW in
distributed 3D virtual spaces. A problem is how to keep thesame state among several computers for consistency. A logical clock idea seems available to solve this problem because
it can perform user operation events in order according totheir happen times. The authors introduced the logical clockidea into IntelligentBox, which is a constructive software development system for interactive 3D graphics applications.
Furthermore, the authors evaluated its performances. This
paper describes the consistency mechanism and its application examples, and also presents its performance evaluations.
Keywords— IntelligentBox, CSCW(Computer Supported
Cooperative Work), 3D Application, Distributed Environment, Consistency mechanism.

I. Introduction
We have been studying on CSCW(Computer Supported
Cooperative Work). Various CSCW systems have beenstudied and developed, for example, TV conference systems, remote lecture systems, etc. Recent advances incomputer and Internet technologies make it possible to develop distributed virtual reality applications. Currently,
we are interested in CSCW in distributed 3D virtual environments. In this paper, we presents a consistency mechanism for cooperative work in distributed 3D virtual environments and its performance evaluations.
Okada and Tanaka proposed a IntelligentBox system[1][2][3][4]. It is a user-friendly rapid prototyping software development system for interactive 3D graphics applications. It represents objects as reactive 3D visual objects
called “boxes”. A box can be manually combined with otherboxes by the dynamic construction mechanism. With thismechanism, users can develop application systems throughdirect manipulations on a computer screen without writing
any text-based programs.
The IntelligentBox system also provides collaborative environments. This is realized by a functionality of a particular box called RoomBox. A RoomBox manages useroperation events. Multiple RoomBoxes on diﬀerent hostshare user-operation events with each other so that themultiple RoomBoxes virtually provide a shared 3D space.
The well-known problem of distributed applications is
how to keep the same state among several computers forconsistency. To keep consistency needs to realize mu-

tual exclusion mechanisms and ordering mechanisms of distributed events.
A simple and traditional but practical solution is to use
the server-client model. The centralized server process (thedaemon process, in other words) manages all states of eachclients, and each clients follow the server. However, thisserver-client model needs a high performance computer asa server, and a network traﬃc and a maintenance of theserver becomes serious problem.
We selected the distributed model, i.e., each host communicates to each other by a point-to-point connection.
The logical clock idea[5] is available for the distributedmodel because it can execute user-operation events in order according to their happen times. Each host communicates to each other and coordinates each state using the
logical clock. We introduced a logical clock idea into theIntelligentBox system and furthermore evaluated its performances. This paper describes the detail of the consistency mechanism based on the logical clock, and presents
its performance evaluations.
The remainder of this paper is organized as follows. Section II describes CSCW systems and distributed 3D virtualenvironment applications. In section III, we describe ourconsistency mechanism using the logical clock. Section IVshows an implementation of the mechanism in the IntelligentBox system, and also shows examinations. Section V
discuss the performance. Finally, we conclude this paper
in Section VI.
II. Cooperative Work in Distributed
3D Virtual Spaces
A. CSCW Tools
There has been a lot of researches and systems on
Computer Supported Cooperative Work, for example, TV
conference systems[6][7], group editors[8][9], task coordination systems[10]. TV conference systems are divided
into two types, i.e., point-to-point communication TV
conference systems and multi-attendants TV conference
systems. The latters employ a server-client model. A
main requirement of TV conference systems is a real-timecommunication facility for video and audio data on theInternet. The related systems includes DOLPHIN[11],CLEARBOARD[12], Conversation Board[13], DisEdit[14],Host A

Host B

RoomBox

3D functional objects(any Boxes)

RoomBox

(1)

(1)
(3)

RoomBoxUser
Flow of events
events(1) collecting events(2) propagating events(3) applying events

(3)

(2)

Model of RoomBox

Model of RoomBox

User
eventsFig. 1. The Concept of “RoomBox”

Argo[15], and so on. DOLPHIN is a remote meeting system that provides collaborative pen-based workspaces forwindow-based meeting. CLEARBOARD is an interpersonal design system based on video cameras. Conversation
Board is a shared window-based conversation system using
RENDEZVOUS[16].
Above application systems provide multiple users with
2D, not 3D, collaboration environments. Our research interest focuses on CSCW systems in distributed 3D virtualenvironments. Then we use the IntelligentBox system as
our research system. Next subsection brieﬂy introduce theIntelligentBox system.
B. The IntelligentBox system
IntelligentBox is a constructive visual software development system for interactive 3D graphics applications. IntelligentBox provides 3D reactive objects called boxes. Eachbox has a 3D visible shape and a unique function. Indeed
each box consists of a model and a display object. A modelholds state variables of a box. They are called “slots.” A
display object deﬁnes how the box appears on a computer
screen and deﬁnes how the box reacts to user operations.
IntelligentBox also provides a dynamic data linkage mechanism called a slot-connection for combining functions of twoboxes. By this mechanism, users can develop 3D graphics
applications through direct manipulations on a computer
screen without writing any text-based programs. This is amain feature of the IntelligentBox system.
(child)(child)Childmessages
(1)
(2)

slots

(3)
One of slots(parent)

slots

slots

(1) set <slotname><value>(2) gimme <value>(3) update

Fig. 2. Standard messages between boxes

Fig.2 shows a data linkage concept by slot-connections.

Actually a slot-connection is realized by a message sending
protocol consisting of three standard messages, i.e., a set
message, a gimme message, and an update message. By
these three messages, states of two boxes are exchanged
and their two functions are combined.
As previously mentioned, the IntelligentBox also provides collaborative environments by a functionality of aparticular box called a RoomBox. Fig.1 shows a concept ofsharing user-operation events using two RoomBoxes existing separate hosts.
As shown in Fig.1, the RoomBox has a slot named ’event’
which holds a current user-operation event operated on its
descendant boxes. Some speciﬁc user-operation events generated in a RoomBox are always stored in this slot until
the next event is generated. As shown in Fig1, IntelligentBox provides a distributed model sharing mechanism. It
enables multiple, distributed RoomBoxes to virtually share
a common model with each other through messages passed
via a network. By the distributed model sharing mechanism, multiple RoomBoxes can share user-operation eventswith each other. Here, descendant boxes of a RoomBox aretreated as collaboratively operable 3D objects.
The structure shown in Fig.1 can be built only by making
a copy of a RoomBox on Host A and transferring it to
Host B. Therefore, using RoomBoxes, users can develop
collaborative 3D virtual environments easily and rapidly.
Fig.3 and 4 show screen images of a Tank Battle gamedeveloped by IntelligentBox. Two players using a diﬀerent
host play the game simultaneously. This tank battle gameis developed easily and rapidly by using IntelligentBox.
IntelligentBox provides good collaboration environment,
but it has a problem for consistency. If multiple users operate a box at the same time (in a short period) and theoperations conﬂict with others, then the states of each host
becomes inconsistent.
III. Consistency Mechanism
The well-known problem of cooperative systems in distributed environments is how to keep the same state among
several hosts for consistency. To keep consistency of distributed systems, mutual exclusion mechanisms and ordering mechanisms of distributed events have been studied andFig. 3. A Tank Battle Game (1)Fig. 4. A Tank Battle Game(2)developed.
Latency exists in the communication between two hosts,
and it may cause inconsistency. For example, let consider adistributed real-time interactive application like a car race
game, multiple users play it simultaneously. In the casethat a user’s operation event is generated at the almost
same time as another user’s operation event, if the two
events are executed in the diﬀerent order on each host, thestates of two hosts will be diﬀerent.
To keep consistency of shared resources in a distributed
environment, there are some solutions, i.e., a centralized
model, a token ring model and a distributed model[18].

over its limit, the total performance will decrease. Furthermore it is obvious that if the server fails, all client processes
will not work any more. These are defeats of the serverclient model.
Process
ServerServerOperable
process

RequestRequestPermitRequestClientClientClientClientClientClientFig. 5. The client-server model

Centralized model
A simple but practical approach to keep consistency is
to use the server-client model. This model assumes thata centralized server process (the daemon process, in otherwords) works as the manager or (fearless) leader. It keeps
the important information and makes all decisions, and allclients obey the sever.
Here is how a client would operate a shared resource R.
1. Sends a request to the server
2. Waits for a reply from the server
3. Uses a resource R
4. Sends a release notice to the serverThis means that there are three redundant messages per
one resource request.
In the case that there is not any event buﬀer, if the server
process receives multiple requests at the same time, theserver selects only one client process, sends “OK” message
to it, and sends “rejection” messages to the others.
In this model, tolerance of a distributed system depends
on the performance of the server. If the load of the server is

Token ring modelThis model assumes that there is a communication topology among the processes, which is a ring. Although aprocess Pi communicates directly to its two neighboringprocesses Pi−1 and Pi+1, a token reaches indirectly to any
process through sequential operations of reading a token
from a left process and writing the token to a right process
as shown in Fig.6. Only one process holds a token at a certain time. This process has ownership. This means that
only this process operate a shared resource.
A mutual exclusion mechanism is realized by the following way.
1. Connects all processes in a logical ring. The ring iscalled as a token ring.
2. The token hops and circulates all processes along withthe ring.
3. Only the process which holds the token is able to operate shared resources.

Process

Circulating

Operable
process
Token

Fig. 6. Toke ring model

decide which request message is the fastest among others,
in other words, all events in the distributed hosts must be
totally ordered.
It can’t rely on the physical clock time on each host.
They don’t show an accurate time and it is impossible tosynchronize all physical clocks. Lamport proposed the logical clock idea for this problem in [5]. We used the logicalclock idea to solve the problem.
The logical clock

This is a good way of enforcing mutual exclusion in a fairway, however, there are problems. It is necessary to construct the token ring before the beginning of collaboration.
If any one process may fail, the ring must be reconstructed.
If a token may be lost, any mechanism must be prepared
to decide a process that creates a new token.
Distributed model
Let consider the number of process is n, they possibly work at diﬀerent hosts. When each process needs theshared resource, it sends a request to the other (n-1) processes; when it receives (n-1) replies, it comes to use theresource. When the process ﬁnishes using the resource, it
sends a release message to all the processes that are waiting
for the resource.
This model assumes a reliable mechanism for delivering
messages. Each use of the critical shared resource, requires
2 ∗ (n − 1) messages.
Here is the Ricart-Agrawala algorithm to realize mutual
exclusion[17].
1. Before operate to a shared resource, each process
sends “request” message to all other processes. The
request message contains the shared resource name,process number and current time.
2. When a process receives the request message, it replies
as follows:• If not in use and does not want, reply OK.
• If in use, queues request (no reply).
• If wants to use, compare timestamp in request to its
own. If lower sends OK, otherwise queue.
• Requesting process waits until everyone sends it an
OK message.
• When exiting dequeues all processes and sends OK.
Process

Operable
process

RequestOK

OK

RequestRequestRequestOK

Fig. 7. The decentralized model

The performance of this model is not so high but it isrobust. This model can also handle dynamic join and leaving of a group. The problem of this approach is how to

Lamport proposed logical clock in [5] to order the eventsoccurring in a distributed system. Certainly if an event
A happens before an even B, then A cannot have beencaused by B. In this situation we cannot say that A caused
B, but we cannot exclude that it might have inﬂuenced it.
We want to characterize this ”happened-before” relation
on events. We will consider only two kinds of events, thesending of a message and the receiving of a message.
1. If events e1 and e2 occur in the same system and e1
occurs before e2 (there is no problem to determine thisin a single system) then e1 happened-before e2 , written
e1 → e2 .
2. If event e1 is the sending of a message and e2 is thereceiving of that message, then e2 happened-before e2 .
3. If e1 → e2 e2 → e3 then e1 → e3 .
The → relation is a partial order. Given events e1 and e2
it is not true that either they are the same or one happenedbefore the other. Events that are not ordered by happenedbefore are said to be concurrent.
This happened-before relation is unsatisfactory since,
given two events, it is not immediate to determine if one
happened before the other or if they are concurrent.
We could like a clock C that applied to an event returns
a number so that the following holds:
If e1 → e2 then C(e1 ) < C(e2 ) .
He deﬁned one such C, a logical clock, as follows:
1. On each process Pi starts with a clock Li set at 0.
2. If e is the sending of a message, then increment the
local clock Li , set C(e) to Li and timestamp the message with Li .
3. If e is the receiving at Pi of a message with timestampt, then set the local clock and C(e) to max{t, Li + 1}.
Fig.8 is an example showing logical clocks and mutual
exclusion of distributed model. A, B, C are processes andthe number n in “[ ]” shows local logical clock time. In thiscase, A and C want to operate a shared resource. Theirrequest messages and OK replies are arrived as shown inlower part of Fig.8. Each process acts according to the
Ricart-Agrawala algorithm. Finally, process C gets theﬁrst priority for operation to the shared resource.
IV. Implementation and Examination
A. Implementation
As mentioned in section II-B, the IntelligentBox system
didn’t have enough consistency mechanism. The IntelligentBox system provides a virtual space shared by multiple hosts using RoomBoxes. Multiple users can operateProcess

Operable
process

Flow ofa messege

B [1]

B [9]
Req
[3]

Req
[5]

A [5]

[ n ] Logical clock
time nReq [5]
Req [3]

A [7]

[6] C

OK [7]A [9]Host CPentium II
450MHzMemory 192MB
OS
Windows98

OK
[8]

OK
[6]

[3] C

Host ACPU

CPU

10Mbps100Mbps

B [9]

[9] C

Pentium II
266MHzMemory 96MB
OS
Windows98

Router
LAN

A
A [5]

B
Req[5][1]

C
Req[3]

A [6]

[3]

A

B

[5]

[4]

C

A

[3]

[5]

[1]
Req[5]

Req[3]

[6]

[4]

[7]

A [6]

B

C

[1]

Router[3]

100Mbps

Req[3]

Req[5]C [4]100Mbps[7]
OK [7] [6]

OK[7]

[6]

[6]

C [6]

A [7]

C [7]

Host DCPU
Memory
OS

C [8]

[8]
OK[6]

OK[6]

[7]

Igunored

C [9]

[8]

[8]
OK[8]

OK[8]

[9]

Pentium II 266MHz
128MB
Windows98

Fig. 11. Network topology of exam.2

C [9]
C [9]

Fig. 8. An example showing logical clocks and mutual exclusion of
the distributed model

Host A

Host CPentium II
450MHzMemory 192MB
OS
Windows98

Boxes in the 3D virtual space. But there may be inconsistent states, if more than one user operates a box simultaneously. For consistency, we have introduced an object lockmechanism to realize mutual exclusion.
We chose the distributed model for this implementation,
because the distributed model is robust and it doesn’t need
any server. Although the communication cost of the distributed model is higher than both the sever-client modeland the token ring model, the number of hosts (users) we
assume will not so much, at most about 10 hosts. Thenthe communication cost will not be so much.
Fig.9 shows the state transition of each process. To locka box in a 3D virtual space, each process behaves according
to this state transition.

CPU

CPU

10Mbps100MbpsPentium II
266MHzMemory 96MB
OS
Windows98

100Mbps

Host E

RouterCPU

LAN

MemoryOS

Pentium
200MHz64MB
Windows98

Router
100Mbps
100Mbps

Host DCPU
MemoryOS

Pentium II 266MHz
128MB
Windows98

Fig. 12. Network topology of exam.3

B. Examinations
We had three examinations with respect to three typesof network topologies. Fig.10, 11 and 12 show the network
topologies. Here is the characteristics of the topologies.
• Exam.1 : 3 hosts on the same subnet.
• Exam.2 : 3 hosts on 2 subnets.
• Exam.2 : 4 hosts on 2 subnets.
Host ACPU

Pentium II
450MHzMemory 192MB
OS
Windows98

Host B

10MbpsCPU

Pentium II
450MHzMemory 256MB
OS
WindowsNT

100Mbps
100Mbps

Host CCPU
MemoryOS

Pentium II 266MHz
96MB
Windows98

Fig. 10. Network topology of exam.1

We used a simple application shown in Fig.13 for examinations of realtime distributed collaborations. The box
shown in Fig.13 consists of three primitive boxes, two cubic
boxes and one cylindrical box.
Operations for realtime distributed collaboration in these
examinations are very simple, mouse click and drag. WhenFig. 13. A Screen image of the application used examinations

Waitingfor
any events

Recieve apermission request

State 0An operation
Requests permission
to all others

Sends "OK"Waitingfor
OKs
AnotherrequestAll others
are premitted?

No

Yes

Sends
"NG"

State 1

Receives"NG"(Rejection)

Faster?

Sends
rejection

No

Yes
Releasespresent opration

Sends theoperation

Sends permission

Do the operation

Waitingforthe operation

OK

Yes

State 2No
Anotherpermission request

Faster?
Sends
Rejection

Fig. 9. The state transitiona user clicks on a box, if the click is the fastest in otherclicks, he/she gets ownership of the Box. After that, theuser can operate (move, rotate, etc..) the box until he/she
releases it.

TABLE II
Response Time for operation to boxes (in exam.1)

A

C. Results
We examined the implementation in three cases. 3 or
4 users used an application (shown in Fig.13) in diﬀerent
network environments. Operation records were stored inlog ﬁles.
Table I, II, III, IV were analysis results of log ﬁles. Table
I describes latency times from sending “Requests” until
receiving “OKs”. Table II, III, IV describe response timesof operations.

B

The mean
Minimum
Maximum

Exam.1(msec)
237
99
360

Exam.2(msec)
445
165
907

Exam.3(msec)
503
235
967

V. Discussion

C
Mean 214
Min
97
Max
360
Mean 296
Min
267
Max
330
(msec)TABLE III
Response Time for operation to boxes (in exam.2)

TABLE I
Latency time from “Request” until “OK”

B
Mean 162
Min
99
Max
242

A

C
Mean 204
Min
32
Max
357

C

D
Mean 388
Min
264
Max
907
Mean 306
Min
144
Max
829
(msec)

for message transfer between two diﬀerent subnets occupied
the major part of the latency time for obtaining ownership.

A. Latency time for obtaining ownership

B. Granularity of events

From Table I, while the mean latency time of the examination 2 is close to the examination 3, the mean latency
time of the examination 1 is almost half of the examination 2 or 3. Therefore, it can be said that the elapsed time

The second row of Table II shows that the response timeof the host C concerning the host A is smaller than concerning the host B, and the ﬁrst column of Table III showsthat the response time of the host A concerning the host

TABLE IV
Response Time for operation to boxes (in exam.3)

A

CC
Mean 269
Min
231
Max
299

D
Mean 273
Min
229
Max
319
Mean 280
Min
238
Max
314

D

E
Mean
Min
Max
Mean
Min
Max
Mean
Min
Max

384
110
967
420
305
535
401
273
869

B is smaller than concerning the host C. Then, it is foundout that there is the order, the host A < host B < host C,
for the response time. This reason is obvious because theabove order is the same as the order of three computers
CPU speeds. From Table III, the mean time of the threemaximum response times is 311 msec = (242+360+330)/3.
Therefore, at least, three operation events seem executable
in a second in the case shown in Fig.10. As well, from Table
IV, the mean time of the three maximum response times
is 697 msec = (357+907+829)/3. Therefore, at least, one
operation event seems executable in a second in the caseshown in Fig.11. In this way, granularity of events is an
important factor. This depends on application types, i.e.,a real-time application or not. Furthermore, when developing a practical application, you have to consider the numberof computers and a network type, WAN or LAN.
C. Improvement of System Performance by Timeout mechanism
From Fig.12, while the host A, C, E are all existing on
the same subnet, the host D is only existing on the anothersubnet. Then, it can be thought that the host D would
become a bottleneck. However, Table IV shows that thehost E rather than the host D was a bottleneck. This reason
is also obvious because the host E is a lowest performancecomputer and its graphics hardware is not suﬃcient for
rendering 3D images.
If the host E is removed from the system, the system
performance would become better. Therefore, one way to
improve system performance is to remove hosts whose response time is very large compared with the average response time, by a time-out mechanism. We are trying to
introduce this mechanism.
VI. Conclusion
In this paper, we showed a consistency mechanism for
distributed CSCW systems. We used the IntellligentBox
system which is a user-friendly development software forinteractive 3D graphics applications. It provides collaborative environments, however its consistency management
mechanism was not suﬃcient.
We introduced mutual exclusion and object locking
mechanism to the IntelligentBox system. We used thelogical clock idea for consistency of distributed systems.
Although communication cost for mutual exclusion of the
distributed model is higher than the sever-client model orthe token ring model, but it is robust, and its cost is not
so much when the number of hosts is small.
We also implemented and examined an application inthree cases. We measured latency time to get ownershipof a box and response time to operate it. From the resultsof examinations, we found out that the lowest performancecomputer becomes a bottleneck, so it is possible to improvesystem performance by using timeout to remove such lower
performance computers.
In the future, we are supposed to develop more practicalapplications, e.g., networked education systems, realtime
network games, and so on. We will report these ﬁndings.
Acknowledgments
The authors would like to thank all members of Computing and Communications Center, Kyushu Universtiy for
their suggestions.
References
Y. Okada, K. Shinpo, Y. Tanaka and D. Thalmann, Virtual
Input Devices based on Motion Capture and Collision Detection,
Proc. of Computer Animation ’99, pp.201–209, May 1999.
[2] Y. Okada and Y. Tanaka, Collaborative environment of Intelligent Box for distributed 3D graphical applications, The VisualComputer, No.14, pp.140–152, 1998.
[3] Y. Okada and Y. Tanaka, Collaborative Environment of Intelligent Box for Distributed 3D Graphical Applications, Proc ofComputer Animation ’97, pp.22–30, Jun. 1997.
[4] Y. Okada and Y. Tanaka IntelligentBox : A Constructive Visual
Software Development System for Interactive 3D Graphic Applications, Proc of Computer Animation ’95, pp.114–125, Apl.
1995.
[5] L. Lamport, Time, Clocks and the Ordering of Events in a Distributed System, Comms. of the ACM, Vol. 21, No. 7, pp.558–
565, 1978.
[6] S. A. Bly, S. R. Harrison and S. Irwin, Media Spaces: Video, Audio, and Computing, Comm. of the ACM, Vol.36, No.1, pp.28–
47, Jan. 1993.
[7] R. W. Root, Design of a Multi-Media Vehicle for Social Browsing, Conf. on CSCW (CSCW 88), pp.25–38, 1988.
[8] G. Foster and M. Stefik, Cognoter, Theory and Practice of a
Colaborative Tool, Conf. on CSCW (CSCW86), pp.7–15, 1986.
[9] C. A. Ellis, S. J. Gibbs and G. L. Rein, Groupware: Some Issues
and Experiences, Comm. of the ACM, Vol. 34, No. 1, pp.38–58,
Jan. 1991.
[10] T. Winograd, A Language/Action Perspective on the Design of
Cooperative Work, Human-Computer Interaction, Vol. 3, No. 1,
pp.3–30, 1987, http://hci.stanford.edu/%7Ewinograd/papers/language-action.html.
[11] N. Striz, GeiBler, J. Haake and J. Hol, DOLPHIN : Intelligent
Meeting Support across LiveBoards, Local and Remote Desktop Environments, Proc. of ACM 1994 Conf. on ComputerSupported Cooperative Work(CSCW’94), pp.345–358, 1994.
[12] H. Ishii, M. Kobayashi and J. Grudin, Integration of Interpersonal Space and Shared Workspace: ClearBoard Design and Experiments, ACM Trans. on Information Systems, Vol.11, No.4,
p.349–375, 1993.
[13] T. Brinck and L. M. Gomez, A Collaborative Medium for the
Support of Converstional Props, ACM CSCW’92 Proceedings,
pp.171–178, 1992.
[14] Michael J. Knister and Atull Prakash, DisEdit : A Distributed Toolkit for Supporting Multimedia Group Editors, ACM
CSCW’90 Proceedings, p.343, 1990.
[15] H. Gajewsak, J. Kistler, et.al., Argo: A System for Distributed
Collaboration, ACM Multimedia 94, pp.433–440, 1994.
[16] R. D. Hill, A 2-D graphics system for multi-user interactive
graphics based on objects and constraints, in E. H. Blake &P. Wisskirchen(Eds.) Advances in Object-Oriented graphics I.
Springer-Verlag, 1991.
[1]

[17] G. Ricart and A. K. Agrawala, An optimal algorithm for mutual exclusion in computer networks, Comms. ACM, vol.24,
no.1,pp.9–17, 1981.
[18] Y. Ishii, CSCW and Groupware, Ohmsha Ltd., 1994. (inJapanese)