Skip to main content.

PUBLISH C/S 1.0

Distribution of documents into a remotely hosted web application.

The goal of this application was to provide an administration interface to a web-based information database for expatriates. The administrative interface was used to upload new content to the server systems, hosted in Chicago, Illionois, USA.

CountryNet Manager Architecture
CountryNet Manager Architecture

The information that is presented by the application comes from SGML documents that have been indexed by a Fulcrum SearchServer. In order to update the SGML documents an administration interface, called CountryNet Manager, has been developed.

CountryNet Manager
CountryNet Manager

Distributed COM (DCOM) and an ActiveX control is used as distributed communication mechanisms. The ActiveX control PublishClt accesses the ProjectSrv and the PublishSrv components in order to manage projects, the administrative units of the CountryNet Manager application.

Projects Dialog
Projects Dialog

The PublishSrv provides functions for uploading and downloading files into a so called project. The PublishSrv instantiates the IndexFeedSrv component to which it feeds the uploaded files for index creation. The result is an index, created by the Fulcrum SearchServer, which is then fed to the DBFeedSrv component for storing it into the database and making it available to the application for searching.

The reason for making extensive usage of DCOM components was to get used to this new technology and to identify any hurdles in using it for remote communication.

One lesson learned was that DCOM is making usage of distributed reference counting. A mechanism for keeping track of how many clients are accessing a server component. The problem with this approach is when a client crashes there is no way to tell the server to decrease its counter. The consequence of this is that the server component can not be garbage collected because the DCOM instantiation layer still thinks that the component is in use. The only way to fix this is to kill the component on the server manually.

ActiveX Control
ActiveX Control

TypeSoftware Developer at Arthur Andersen Software & Methods
EnvironmentWindows 9x/NT4, Visual C++ 5