Check out the new USENIX Web site. next up previous
Next: Related Work Up: AFE Implementations Previous: AFE Implementations

ViewGlass Implementation Notes

  ViewGlass provides a user with the ability to access her Notes mailbox (to send, read, and delete messages), and to read discussion databases. The functional split for this application is that the AFE, written in Java, would contain the GUI, rich text browsing support, and a private communication layer that directly accesses a proxy service. The service, written in `C', would accept messages from the GUI, call the appropriate NotesAPI functions, and return information back to the GUI. The service runs as a daemon and contains client-specific state.

During the ViewGlass initialization process, the requestService() method is called to get the location of a known Lotus Notes service. The location of the service is then accessed and a socket connection is made. This is shown in the code below.

  try {
    sinfo = workspace.requestService(
    (Object)this,"LotusNotes",null);
  } catch (Exception e) {
    System.out.println(
    "LotusNotes service not found");
    destroy();
    return;
  }
  URL url = sinfo.getURL();
  server_name = url.getHost();
  server_port = url.getPort();
Connection failures are notified to the AFE via the exception mechanism. The AFE calls the reset() method to recover from failure.
public void reset() {
  try {
    sinfo = workspace.recoverService(
        (Object)this,sinfo);
  } catch (Exception e) {
    System.out.println(
    "LotusNotes service not recovered");
    proxy_recv = null;
    destroy();
    return;
  }
  URL url = sinfo.getURL();
  String server_name = url.getHost();
  int server_port = url.getPort();
  // ...  make the connection
  wk_sp_frame.recover();
}
Note that the reset() method ends with a call to the recover() method. Since some client state is maintained in the service, full recovery is not possible from just the client. However, the state completely contained in the client is recovered.



A. Purakayastha
Mon May 5 15:03:42 EDT 1997