IsolateSystemServiceRequestHandler(SystemServiceManager serviceManager, Isolate clientIsolate) {

    this.serviceIsolate = Isolate.currentIsolate();
    this.clientIsolate = clientIsolate;
    this.serviceManager = serviceManager;

    Link sendLink = Link.newLink(serviceIsolate, clientIsolate);
    Link receiveLink = Link.newLink(clientIsolate, serviceIsolate);
    this.sendReceiveLinks = new SystemServiceConnectionLinks(sendLink, receiveLink);

    serviceRequestProtocol = new SystemServiceRequestProtocolAMS(this);
  }
  public SystemServiceConnectionLinks onServiceRequest(String serviceID) {
    requestedService = serviceManager.getService(serviceID);
    if (requestedService == null) {
      return null;
    }

    Link serviceToClient = Link.newLink(serviceIsolate, clientIsolate);
    Link clientToService = Link.newLink(clientIsolate, serviceIsolate);
    SystemServiceConnectionLinks connectionLinks =
        new SystemServiceConnectionLinks(serviceToClient, clientToService);

    return connectionLinks;
  }