[comp.research.japan] Trip Report, Toshiba Software Laboratory

rick@cs.arizona.edu (Rick Schlichting) (02/05/91)

--------------------------------------------------------------------------
    Trip Report -- Toshiba Software Laboratory  (June 4, 1990)

    Richard D. Schlichting   (rick@cs.arizona.edu)
    Associate Professor
    Department of Computer Science
    The University of Arizona
    Tucson, AZ  86721, USA 

    [This report represents the personal opinion of the author, who was on
     sabbatical in Japan from Dec. 1989 through July 1990.  The sabbatical
     was supported in part by grant INT-8910818 from the NSF U.S.-Japan
     Cooperative Science Program.]
---------------------------------------------------------------------------


   Monday was the day I was scheduled to visit the Toshiba Software
Laboratory, which is located a 10-minute walk from the JR Kawasaki
station.  I arrived a little before my appointed time of 1130,
and was met at the gate by Ms. Akamine, a secretary for my host
Dr. Honiden.  The lab is in a new building located on the grounds of
a big, post-war Toshiba factory, which, I later found out, manufactures
primarily optical scanners for ATMs and the postal service.  Upon
arriving, I was immediate met by Dr Honiden and escorted for a
meeting room, where I met by Yasukuni Okataku, who is involved with
a project for building fault-tolerant distributed systems, and Takeshi
Kohno, who is the senior manager.  They first gave me an overview 
of the lab.  Basically, it was established a couple of years ago at a
very high level in the company hierarchy.  The space it occupies is on
the 5th floor of the building, and is high quality space organized around
an open plan with cubicles in a manner similar to US companies I have
visited.  It employs approximately 160 people, of which 120 or so are
researchers, about evenly divided between BS and MS levels.  Their research
charter is broad, encompassing the three general areas of systems
engineering, AI, and Software Engineering.  Their research horizon is
supposed to be >5 years, as opposed to the 3-5 yr. horizons for other
Labs in the company.  Their brochure outlines a number of projects,
of which they had chosen two--the IDPS fault-tolerant DOS, and the
Mendel Zone concurrent program synthesis system--for later description
and demonstration.
    Following lunch, I was given lectures and demos on the two systems
mentioned above.  Both were very relevant to my own areas of interests,
perhaps moreso than any other projects I had seen in Japan.  IDPS
is a project to build fault-tolerant distributed systems for applications 
such as railroad signalling, factory automation, etc.  There are three 
layers: the bottom layer is the DOS, which supports a "fail-stop" 
broadcast function and "fail-stop" objects, the next contains
a distributed file system, databased and production system, and
the top layer is the application written in an object-orient
fashion.  The basic programming paradigm involves replicated objects
that interact using the reliable broadcast.  Among the unique
features they claim are an interesting first-CN-first-serve method
for dealing with replicated broadcasts (versus a majority method);
among the advantages of this are the fact that you needn't know
how many copies there are, which makes it easier to dynamically
add and delete members.  (Indeed, when I asked them whether they
use a membership protocol to agree on failures, they seemed to
indicate that they don't need it.  Whether this is a by-product of
the application or this particular scheme of replication, I don't
know.)
    The second lecture was a presentation by Naoshi Uchihira on a
system that they call Mendels Zone.  The purpose of the system
is to synthesize concurrent programs from a combination of temporal
logic and Petri net specifications.  In particular, the temporal
logic is used to specify the synchronizing part of the processes,
while the Petri nets are used to specify the remainder.  These
specs are translated by the system into Buchi automaton and
a reachability graph, respectively, which are then essentially
"intersected" to get the result.  The use of the two specification
methods is in keeping with the goals of improving both correctness
and software productivity; the improvement in correctness is
achieved by the synthesis of the difficult part of a concurrent
program, the synchronization part, while the improvement in
productivity results from the reuse of software facilitated
by the petri net formalism.  This work is supported financially by
ICOT. I was given papers later on both of the lecture topics.
    Demonstrations of the systems followed the lectures.  They have
set of the ICDP demo as a fairly fancy railroad control system,
with an LED panel representing trains and everything.  Each object
was replicated on each of three processors.  To demonstrate
its adaptability, they dynamically added a new station to the system
without shutting anything else down.  They also illustrated the features
for fault-tolerance and recoverability by shutting down one of the processors
and then restarting it without affecting the running application.  I
found it all most impressive.
    Across the room was the ICOT area, where I was given the demonstration
of the Mendels Zone system by Uchihara.  It consisted basically of the
development of a solution to the Dinining Philosophers problem. I again 
found the demo impressive and convincing, with a fairly sophisticated 
graphical interface that they said was actually easy to construct using the 
standard window package.  I asked about their view of the feasibility of 
using temporal logic in real life, and they indicated that their experience 
had been positive so far.  However, Uchihara did say that he thought that 
verification rather than synthesis was probably a more practical approach 
to the problem of developing correct software. 

---------------------------------------------------------
Dr. Shinichi Honiden
Research Scientist, AI Technology Group
Systems and Software Engineering Laboratory
Toshiba Corporation
70 Yanagi-cho, Saiwai-ku
Kawasaki-shi 210, JAPAN

Yasukuni Okataku
Senior Research Scientist
Systems and Software Engineering Laboratory
Toshiba Corporation
70 Yanagi-cho, Saiwai-ku
Kawasaki-shi 210, JAPAN

Naoshi Uchihira
Research Scientist, AI Technology Group
Systems and Software Engineering Laboratory
Toshiba Corporation
70 Yanagi-cho, Saiwai-ku
Kawasaki-shi 210, JAPAN