Francis Chan     Mark Spiller
The continuing advances in computer processing power, storage
and network transmission capacity, as well as the ever-increasing
amount of information and services available on the Internet indicate
that future CAD environments will heavily leverage wide-area networks.
And as design complexity continues to grow exponentially, so
also do the needs, opportunities and potential advantages of network
collaboration and design environments.
In the future, advances in computer and networking technologies
will enable the rise of ubiquitous computing, applications that
dynamically adapt to different hardware capabilities, and an increase
in the number of network tools and services. Moreover, emerging
technologies will enable data migration, agent/application migration,
and network data access. In this environment, it will be imperative
that distributed applications be scaleable and extensible. In
addition, the rise of such distributed design systems will require
advanced server features like consistency, fault tolerance, security,
and intelligent resource location mechanisms.
On the client side, users of the system should be able to access
and execute tools on the fly with minimal hardware and software
in place (e.g. Java-enabled network browser). Furthermore, the
working environment should allow remote tool invocation according
to the user's access criteria and permission. Open frameworks
could be achieved by users' flexible configuration of data formats
and tools from different sources.
The development of the Internet, networking and data processing
technologies, such as HTTP, Java and OODBMS, together with the
increase in complexity of the data and process of electronic design
has provided many needs and opportunities for wide-area
collaboration in the design of complex systems.
The benefits of a distributed design system at the system-level include:
Benefits at the user-level include:
WELD system architecture diagram.
The WELD architecture is a three-tier architecture consisting of:
The mechanism that enables these network entities to communicate with each other are:
Examples of network services include:
A database system that manages the data residing in the network, as opposed to on client machines or servers.
Functionality of the data manager include:
A software program residing in the network that acts "intelligently" and transparently as an agent between clients, network servers and other proxies.
Functionality of proxies include:
A table, which may be co-located with a data server, that maintains information on the availability of network resources.
The client/server communication protocol enables communication between client-server and proxy-server. It was designed to:
The client/database communication protocol enables clients/client objects to communication with a network database. The protocol:
The development efforts of the WELD group have brought to fruition
many of the software components mentioned above. While not all
the capabilities have been implemented yet, the components and
their features are rich enough to enable a prototype web-based
design environment.
The components we (will) have in place (by June 1997) are:
Data Server - The current data server consists of a transaction
manager on top of an object-oriented database. It allows any
client object to be stored and mirrored as a database object through
the use of a generic "connection" mechanism. Clients
of the data server can store, retrieve (through our protocol or
HTTP), query and traverse objects, as well as use the server for
versioning purposes.
Server Wrapper - The server wrapper enables any legacy or new tools to be incorporated into the WELD system by enabling them to:
Client Package - A Java Client Persistent Object Management Package has been implemented that enables any Java objects/applications to communicate with and utilize the capabilities offered by the data server.
(Plans have also been made to port the package to C++ to support
legacy tools.)
A Java client program has also been developed to allow any Java
application to invoke network tools.
Communication Protocol - The two main communication protocols are the
client-server communication protocol and the client-database communication
protocol. These mechanisms enable different network components
to communicate with each other.
Proxy - The proxy mechanism extends the Java security model
by allowing any Java applet to connect to available network resources.
Registry Service - The registry service receives registration
information from network servers and serves the queries/requests
of clients/tool flow managers.
Distributed Tool Flow Manager - The tool flow manager allows
any user to configure the flow of network tools and data.
Modified: April 30, 1997
Feedback: (fchan@eecs.berkeley.edu
A>)