See the graphics with the sequence diagram of the ping service call from the client to the server.
The top part of the graphics shows the object structure. The sequence diagram shows the call flow.

The IPingService interface is registered in the client plugin.xml as a service proxy with the ClientProxyServiceFactory.
The PingService implementation is registered in the server plugin.xml as a service impl with the ServerServiceFactory.

Authorization of remote service calls is done as usual using java security permissions.
In your projects own AccessControlService extending AbstractAccessControlService you can assign RemoteServiceAccessPermission to roles.
By design only services implementing IService can be called remotely. The default RemoteServiceAccessPermission assigned to users allows
access to all operations on service interfaces defined in a *.shared.* package (plug-in).

In order to activate central input/output validation, create and use a subclass of ServiceTunnelServlet and override runServerJobTransactionWithDelegate().
There use a subclass of DefaultTransactionDelegate with implemented methods filterInput() and filterOutput().
The easiest way to implement is by calling new DefaultValidator().validate();
The DefaultValidator validates all arguments using a deep-traversal check. Form datas (subclass of AbstarctFormData) are checked with the delegate DefaultFormDataValidator.
This is very useful since the eclipse scout sdk writes all ui model properties relevant for validation automatically to the form data.