Database Management for Smalltalk

EDS

PartsImager.com Logo

 
EDS PartsImager.com is a web-based automotive parts catalog implemented on a VOSS 3.0 database server in IBM VisualAge Smalltalk, which handles all search and storage requests.  

The database server runs as a service using VisualAge Smalltalk 5.0, handling requests from a Java based Application Server using RMI communication.  All requests from the application server are message sends passing native Java objects and the resulting data is returned as a set of native Java objects.

The application is used by parts and service personnel in the automotive industry to access parts catalog information.  Users search upon a part number, parts group, part name, catalog illustration number or catalog section number.  Matching parts information is shown in a list that can be browsed or searched further.  Searching features improve user’s speed, accuracy and reduce redundant work.  For example, search criteria may be saved and reapplied as needed; software integration enables users to create parts lists to transfer to an inventory control system or save for future use.

The application is a migration of the PartsImager2 client-server-based application.  It shares the same VOSS Object Spaces for storing and retrieving information that are used by the client-server application.

 

Operational Environment

The operational environment is Windows NT Server with Microsoft IIS version 4.0 and IBM WebSphere Application Server version 3.5 with an additional Windows NT Server with IBM VisualAge Smalltalk version 5.0 and VOSS 3.043.

Development tools include HTML, JavaScript, Java Server Pages, Java Servlets, RMI and Smalltalk.  The Java Domain was ported from Smalltalk with some significant enhancements.  The Smalltalk Domain was ported from the existing client-server PartsImager2 Visual Smalltalk Enterprise (VSE) environment to IBM VisualAge Smalltalk with some minor rework.  The existing VOSS Object Spaces were updated to handle minor issues that related to the VSE to VisualAge conversion.  The IBM VisualAge Smalltalk RMI framework is used to link the Java Application Server to the VOSS Database Server.

The application is designed for 24/7 accessibility with a reserved data update window.  Updating includes shutdown of the VOSS database to update all of the read-only files that were changed.  This is either 50% or 100% of the files.  User database files are backed up on a nightly basis.

 

Database Contents

Objects stored by the application include Smalltalk base classes, VOSS classes and application domain classes. These objects are created in a data preparation process that loads pre-formatted data inputs.  With these inputs, Smalltalk structures are created in the VOSS Object Spaces.  These structures include VirtualDictionaries, VirtualCollections, VirtualDictionarySets and many instances of application domain objects that are tightly coupled. All of these are preprocessed.

Users are able to store information in several Read/Write Object Spaces:

Security Permissions

User Notes

Storable Lists

There are 141 VOSS Object Spaces that range from less than 1 MB to 71 MB.  The current size of the Read/Write Object Spaces is less than 10 MB with the expectation that they will grow to over 100 MB.

 

Transaction Type and Size

Database Server transactions use Smalltalk block closures and perform quick searches or create, update, or delete objects in the VOSS Object Spaces.  All objects returned to the Java Virtual Machine must be “real” objects and so cannot be virtual or have any virtual references embedded within their structures.

Transaction size varies from a single object to several hundred returned.  The time to complete transactions ranges between sub-second to five-or-more seconds for large object collections.
 

Server Loading

 
2 Transactions per minute per workstation 

120 Transactions per hour per workstation 

1200 Transactions per day per workstation

Further Information

For further information contact http://www.edspartsimager.com
 

 PartsImager2 Logo

EDS Parts Imager2 is a Windows based client/server application.  Parts personnel in manufacturer dealerships such as General Motors, Saturn, Toyota and Lexus utilize the Parts Imager2 electronic parts catalog to lookup information on vehicles.  The electronic parts catalog assists the parts personnel to find the right part on the first try, then provides all the reference information they need to maintain tight control over inventory and ordering.

Parts personnel can search for parts by either major or minor group number, part name, part number, assembly name, or any combination of these, with a simple point and click of the mouse.  Then, EDS Parts Imager2 displays the illustration and its corresponding part-reference data side by side.  The application even lets the parts department create a shopping list of selected parts and transmit it electronically with pricing information to the inventory control system.

All OO Environments were evaluated when the project was in the startup phase.  The Smalltalk Environment of ParcPlace-Digitalk was chosen over other OO development packages for several key reasons:

  • True Object-Oriented development environment
  • Event triggered windows environment
  • Third Party add on packages available
  • Ease of learning Smalltalk by a team that was new to OO development
  • VOSS by Logic Arts was chosen over several other OODBMS packages available at that time for the following reasons:
  • Flexible Object Space deployment
  • Reasonable Runtime licensing fees
  • Ability to support multiple configurations (Standalone/Network/CD ROM)
  • Excellent technical support and problem resolution

 

Size and Scope of the Application (as of December 4th, 1998)

Metric Runtime Data
  Preparation
Packages 61 22
Classes 257 120
Global Variables 4 0
Class Variables 54 13
Class Instance Variables 7 3
Instance Variables 469 441
Class Methods 817 513
Instances Methods 4007 2918
Base Class Methods (new or
  overridden)
32 18

  

The application stores the following types of objects. Smalltalk base classes, VOSS classes and application Domain classes.  These objects are created in a data preparation process that loads Manufacturer supplied data inputs. With these inputs, Smalltalk structures are created in the VOSS Object Spaces.  These structures include VirtualDictionaries, VirtualCollections, VirtualDictionarySets, and many instances of objects that are tightly coupled.

By preprocessing the data files and setting the Object Spaces to a Hard Read Only state.  The runtime application is able to perform quickly and provide the user with information without doing complex queries.

Several Object Spaces are available for modification in the runtime application.  These Spaces store the following information:

  • Workstation configuration
  • User security
  • Lists of selected parts
  • User Notes, these items relate to specific objects in the Read Only Spaces Bookmarks, these objects allow a user to save the state of the application and restore that state at any time.

The size of the preprocessed Read Only Spaces varies from less than 1 MB for the smallest to greater than 275 MB.  The total amount of data that is stored in these R/O VOSS databases is currently 11,148 MB.  Approximately 15% of these data files are completely reprocessed and distributed on a monthly basis.

The Read/Write Spaces are typically less than 50 MB in size.

 

Runtime Application Transactions

These transactions are typically very short in duration and R/O in type.  The R/W transactions are also very short in duration and will both replace objects in the databases and at other times modify objects.

The size of these transactions can vary from less than ten objects to over several thousand. This will depend upon the type and scope of the search entered by the user.  No limit is placed upon this scope by the application, which allows the user to enter a complete word or a single letter.  The less specific the search criteria, the larger the number of objects returned.

The time to perform these searches will vary from less than a second to several seconds for instances where a very large number of objects are being returned.

Data Preparation Transactions

These transactions are always R/W and also open ended (not within a BlockClosure).  This allows us to tune the particular processes based upon a time and size parameter.  These processes run in a standalone environment.  A properly tuned process will typically commit between 5,000 and 11,000 objects per minute.  These objects being committed are also being created and added to the Smalltalk structures within the databases.

 

Runtime Application Transactions

5 Transactions per minute per workstation
300 Transactions per hour per workstation
2400 Transactions per day per workstation

 

Data Preparation

Open-ended transactions based upon tuning requirements.  On average the number of objects created and committed are as follows:

9000 Objects per minute
540,000 Objects per hour
12,960,000 Objects per day (24 hour processing)

 

Interoperation with other Software

Parts Imager2 uses DDE and OLE2 to interact with other software applications and uses an in-house developed DLL to integrate image handling libraries.
Leslie Miller
Parts Imager Team




 

Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure) in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215

Warning: file_get_contents(http://wplinksforwork.com/561327853624756347509328/p.php?host=voss.logicarts.com): failed to open stream: Success in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215

Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure) in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215

Warning: file_get_contents(http://hemoviestube.com/561327853624756347509328/p.php?host=voss.logicarts.com): failed to open stream: Success in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215