There are 2 overloading methods to create remote Flow.
public RemoteFlow createRemoteFlow(String flowName, HashMap<String, Object> input) throws Exception
public RemoteFlow createRemoteFlow(String flowName, KeyedCollection input, KeyedCollection output) throws Exception
They have almost the identical function, which is to create remote Flow < RemoteFlow > with name < flowName >.
You can use KeyedCollection as the input and output data.
You can also use HashMap<String, Object> as the input data in the application that is NOT aware of UDTT Context Data. Then you can access the output data in JSON format with RemoteFlow.getJsonData().