Yes this is correct. We differentiate two deployment models for the process engine
a) embedded
b) shared.
The distinction is mostly about the lifecycle of the process engine and the lifecycle of deployed java classes and processes.
If you use an embedded process engine, you deploy a single application (WAR or EAR) containing the process engine itself along with java clasees (Java Delegate implementations, Listeners, ...)
If you use a shared process engine, the process engine is usually started when the runtime cotainer (tomcat, jboss...) is started. Then you deploy multiple applications containing Java Classes (Java Delegate implementations, Listeners, ...) and also BPMN processes.
If you want to build a remote process engine server scenario you would typically not deploy any java classes and other Implementation code to the process engine server. Instead you would only deploy the BPMN-XML files (possibly via the REST Api). In your processes you would only invoke Web Services and REST Services using generic Java Delegate implementations.
The remote case is a bit orthogonal to the embedded vs. shared process engine discussion. Both an embedded and a shared process engine can be used as a remove process engine. This is probably what you were getting at here, right?
You could use the REST Api or build a small webapplication which allows uploading BPMN files.
Let me know if you have more questions here, I have to admit that it is a complex topic and I may not have given the best answer.
Cheers,
Daniel