/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.communication.model;
import java.io.Serializable;
import de.rcenvironment.core.communication.common.InstanceNodeSessionId;
/**
* This class represents identity information about an RCE node.
*
* @author Robert Mischke
*/
public interface NodeIdentityInformation extends Serializable {
/**
* Returns the persistent globally unique identifier for the associated RCE platform. No two
* platforms may use the same persistent identifier at any time. Data stored at an RCE platform
* is expected to stay consistent as long as the persistent identifier remains the same.
*
* The identifier (if it exists) must consist of 32 alphanumeric characters. Clients should not
* make any assumptions about its content, but treat it as an opaque identifier instead.
*
* @return the persistent identifier string
*/
InstanceNodeSessionId getInstanceNodeSessionId();
/**
* The X.509-encoded public key of this platform, if it exists.
*
* @return the encoded public key, or null if no key exists
*/
String getEncodedPublicKey();
/**
* The end-user display name of this platform. If no such name is defined, implementations
* should return null. If set, the name should contain at least one printable character and be
* free of surrounding whitespace. Its length must not exceed 128 unicode characters. (This
* length restriction is set arbitrarily; it may be increased if necessary.)
*
* @return the end-user display name, or null if no name is defined
*/
String getDisplayName();
/**
* @return true if the local node is flagged to be a "workflow host"; TODO point to
* documentation/glossary
*
* TODO does not really belong in "basic" identify information; replace with distributed
* node metadata when available - misc_ro
*/
boolean getIsWorkflowHost();
}