Distribution of documents to a remotely hosted web application.
The goal of this application was to provide an administration interface for a web-based information database for expatriates. The interface was used to upload new content to the server systems hosted in Chicago, Illinois, USA.
CountryNet Manager Architecture
The information presented by the application comes from SGML documents indexed by a Fulcrum SearchServer. To update these SGML documents, an administration interface called CountryNet Manager was developed.
Distributed COM (DCOM) and an ActiveX control serve as the distributed communication mechanisms. The PublishClt ActiveX control accesses the ProjectSrv and PublishSrv components to manage projects, the administrative units of the CountryNet Manager application.

Projects Dialog
The PublishSrv provides functions for uploading and downloading files within a project. It instantiates the IndexFeedSrv component, which processes the uploaded files to create an index via the Fulcrum SearchServer. That index is then passed to the DBFeedSrv component, which stores it in the database and makes it available for searching.
The reason for making extensive use of DCOM components was to gain hands-on experience with the technology and to identify any hurdles in using it for remote communication.
One key lesson learned was that DCOM relies on distributed reference counting – a mechanism that tracks how many clients are connected to a server component. The problem is that when a client crashes, there is no way to notify the server to decrement its counter. As a result, the server component cannot be garbage collected because the DCOM layer still considers it in use. The only workaround is to kill the component on the server manually.
| Type | Software Developer at Arthur Andersen Software & Methods |
| Environment | Windows 9x/NT4, Visual C++ 5 |

