def parse_request(request):
    """Operates a first-level parsing, retrieving the following three required
    components:
      id: the request id
      method the method to invoke on the Remote Adapter
      data: the arguments for the method
    """
    packet = request.rstrip().split('|')
    not_empty_tokens = [t for t in packet if t.rstrip()]
    if len(not_empty_tokens) <= 1:
        return None
    method_id = packet[0]
    return {"id": method_id,
            "method": not_empty_tokens[1],
            "data": not_empty_tokens[2:]}