WELD Infrastructure for a Distributed Design Environment

Francis Chan     Mark Spiller


Introduction

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.

Motivation

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:


Architecture

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:

Components Description

Clients

Remote Servers

Network Services

Examples of network services include:

Distributed Data Manager

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:

Proxies

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:

Registry Service

A table, which may be co-located with a data server, that maintains information on the availability of network resources.

Client/Server Communication Protocol

The client/server communication protocol enables communication between client-server and proxy-server. It was designed to:

Client/Database Communication Protocol

The client/database communication protocol enables clients/client objects to communication with a network database. The protocol:


WELD Group Infrastructure

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)