Expert Expanded with Client-Server
Project/Library Management


The Expert layout processor v.2.0 introduces a client-server system for managing large projects in multiuser design environments. This system is a significant improvement and enhances productivity by providing concurrent access to the same design data by several designers while maintaining data integrity and ensuring security for intellectual property.

This article describes basic guidelines for the design and implementation of client-server subsystems in Expert.


General Requirements for Multiuser Data Access System

Management Capabilities

A concurrent development environment requires a complex administrative system that provides integration of different user and data management capabilities. Among these capabilities are:

  • Version Control - the management of incremental design changes by different users
  • Modification Control - preventing unauthorized / unintentional modifications
  • Data Security - all of the above plus the prevention of data losses
  • Design Configuration Management - the ability to create a new design by reusing existing components
  • Distributed Working Environment - linking the activities of several designers into a team. The individual must be able to work independently and easily share his results with the team
  • Workspace Configuration Management - the ability to provide compatible workspace configurations for different users
  • Accessibility - smooth flow of information flow between several copies of the system running at different workplaces



A client-server architecture is adopted in the Expert layout editor to provide access to design data in a multi-user environment.

Under a client-server architecture an application is split into two parts: the client part and the server part. The front end for a user is the client part, which processes and displays data. The server part handles the kernel application database and performs functions that support concurrent access to application data. Client and server parts may be executed on separate computers in the network.

Figure 1. An example of client-server Library Management in Expert


A network interface provides communication between server and user (client) processes. It allows programs running on remote sites to access, modify, and store data on the server site. It performs the formatting of database queries, data conversion and transfer.

The core of the user interface comprises communication software running various communication protocols, such as TCP/IP. Network drivers perform data transfer across the network.

The basic components of a client-server application are data structures and processes. All application data structures are assumed to reside in the core computer memory. A client-server application has two basic types of processes: user processes and kernel processes. Kernel processes run on the server computer. User processes run on client workplaces.

The client parts of an application request data from the server. The server verifies user privileges, assigns a buffer for the user, fetches the requested data, and transfers it across the network.

A database management system must be able to handle huge amounts of data in a multiuser environment with simultaneous access to the same data. It must have a means of protection against unsanctioned and incorrect access, i.e., it must provide a robust mechanism for security, restriction, and monitoring of database access.

Figure 2. Interaction of processes and data in the client-server framework of Expert.



One of the most important requirements for a multiuser system is controlled concurrent access to data that maintains data integrity. Without proper control of concurrent access data modification cannot be guaranteed to be performed properly. All user requests must be processed as independently as possible. A client-server system addresses these issues using mechanisms such as locking and multi-versioned data.


Locking mechanisms ensure the following:

  • users that perform data fetching do not have to wait until the users that modify the same data complete their activity
  • users that modify data do not have to wait until other users retrieving the same data complete their activity
  • users that modify data have to wait only for the completion of activity of those users modifying the same data


Locking mechanisms use rollback structures (with previous versions of data) created during data modification, and until modification is completed, other users read data as it was before modification.

A client-server system must provide restricted access to data based on assignment of privileges. These restrictions consist of system security and data security.

System security verifies user identity and privileges. It allows access to data only for those users who have specific access rights assigned by the system administrator.

Data security assures that users with data access rights do not interfere with each other operations.

A multiuser system must provide the means for user management of simultaneous work. The system must have a list of users. When data is accessed, the system must verify user identity to prevent unauthorized access. Every user may create and process objects for which he has access rights.


Accounting Subsystem

A client-server system must provide the means for proper identification of both users and data.

User Identification
The User Table is a list of User Account records.

After the initial installation, the system has a single record in the user table for the 'Administrator' user, with a known password. Administrators can create and modify any user account records.


 Field 1:  Login Name
 Field 2:  Full Name
 Field 3:  Access rights
 Field 4:  Password

Table 1. User Account Record.

Data Identification
Data identification is necessary for data protection in a multiuser work environment. Data identification is provided for each indivisible, retrievable data item.


 Field 1:  Data Item ID
 Field 2:  Parent Item ID
 Field 3:  Data Item Owner
 Field 4:  Access Attribute
 Field 5:  Status
Table 2. Data Item Account Record.


Data item ID is the field that uniquely identifies the data item within its dataset. Notice that the uniqueness property does not provide fast access to the element. Mechanisms for fast data fetching are not considered in this article.

Parent item is the data item that contains the given data item in the dataset hierarchy, if the latter is present in the dataset.

Owner is a user that has modification rights for the data item. For example, a user who checks out a data item becomes its owner.

Access Attribute field allows the administrator to override the access rights to particular data items in the dataset for all users.


Functional Subsystem

The functional subsystem supports the following actions:

Managing user accounts and access rights;

  • Backing up and restoring data;
  • Creation of new datasets;
  • Creation of new versions of datasets;
  • Freezing and unfreezing datasets;
  • Checking in/out of data items;
  • Data locking under concurrent access.


Administrative Subsystem

The administrative subsystem is a tool enabling the Administrator to set up and modify the design environment. This tool is used, e.g., during the following actions:

Starting a new project

  • Updating existing projects
  • Monitoring and resetting locks
  • Monitoring and updating access attributes for datasets
  • Monitoring and updating user accounts
  • Backing up and restoring projects

This subsystem is available only for users with administrative rights.


Basic Operation

Here 'Administrator' means any user with administrative rights for user and data access rights management. After installation, the system has a single Administrator user account record, with known login name and password. This account provides access to all administrative features, and therefore after logging in for the first time, the default password for this login must be changed to prevent unauthorized access. Afterwards this Administrator can add any number of users with administrative and ordinary rights. The Administrator can add new datasets into the project, assign access attribute to them and access rights for different users to these datasets.

A user logs into a system using his login name and password and selects for work any of projects that are made available for him by the Administrator. When new data items are created, the system verifies if a user has rights for object creation.

Figure 3. Login panel in Expert


To modify a data item from a common database, the user must check it out. Only one user at a time may check a data item out. While this item is checked out, the remaining users which have read access rights for this item see the version of this item which was in the database before it was checked out.

After the modifications are finished, the item is checked in, and all users receive a notification about changes. They may either update their local projects that use this particular data item, or they may prefer to "freeze" its previous version.

Before the final release of the project, data versions must be synchronized.

Figure 4. Admin Panel for user and library management in Expert.


At some stages of development, the Administrator may "freeze" the whole project. This means that no user may modify any data from the project. Data may be accessed only in read-only mode. This freezing may be performed, e.g., during global verification of the project. Moreover, designs (libraries) may be delivered as intellectual property in "frozen" form, to maintain the integrity of the library.


Implementation in Expert Layout Processor

Database Organization
The database in Expert, version 2.00, has been designed to meet the following goals:

  • Preserve fast editing / viewing operations with geometric data available in previous versions of Expert
  • Provide controlled access to data items
  • Support a library approach during layout design in order to ensure efficient and synchronized reuse of intellectual property.

These goals are achieved by a suitable combination of a general-purpose database with geometric data structures. The details of the design will be described in a subsequent issue of the "Simulation Standard". Here we will note only that the main idea is to store indivisible data units of Expert's geometric engine as records in the general-purpose database. Some data units, such as cells or layers, are available for direct access (e.g., for checking cells out). Others are accessed from the disk database indirectly during the operation of the geometric engine. Currently Expert uses Microsoft's DAO for the general-purpose database engine.


Library Approach in Expert

To provide reuse of intellectual property and concurrent access to the master design, the following library approach is adopted. Files with layouts in Expert may be of three types:

  • A working project is a layout opened in Expert for exclusive modification. Any other user may access it only in read-only mode
  • Cells from a read-only library may be used in other projects, but they cannot be modified
  • Cells in a shared library may be used in other projects, and users with corresponding access rights may modify them via the check-out / check-in procedure

Figure 5. Access to library cells in Expert



(to be continued )