To allow clients to access a Web service, it must be exposed on a running WSO2 SOA Enablement Server. There are two ways to do this: runtime publishing and persistent deployment. Runtime publishing is usually combined with an embedded WSO2 SOA Enablement Server. Runtime-published services work until the server is shut down, then they cease to exist and need to be republished when the server is restarted. The other way is persistent deployment. Persistently deployed services maintain their configuration regardless of server restarts. The persistent deployment mechanism offers you more control over service configuration than the runtime API, especially on serialization settings (Please see Default Serialization.
We recommend Runtime Publishing for WSO2 SOA Enablement Server running embedded in an application. Runtime publishing is a faster way of developing your Web services, as it only involves compiling and executing the service.
Persistent deployment is mandated when using WSO2 SOA Enablement Server ported to another server. We also recommend persistent deployment for heavy-duty applications. Lastly, you may use persistent deployment when you prefer a declarative approach.
In most production environments, programmers do not have direct access to the production server. In persistent deployment, the developer or system administrator can access the production server using Deploy and Undeploy and install and configure Web services remotely over the network.