Services provides the ability for clients to log in to a remote server as a specific user, and perform further actions using that session.
On the remote server:
1) Install Services, enable the Services, XMLRPC Server, Key Authentication, System Service, and User Service modules.
2) Services run as the anonymous user, so you will need to modify the anonymous user's permissions as necessary. For this example, you will need to give the anonymous user 'get own user data' (under user_services module).
3) Go to Administer->Site Building->Services->Settings and choose 'Key authentication' from the drop down labeled 'Authentication module'. Then check 'Use SessID'. Submit the form. All services calls are now required to include session ID information.
In order to prevent bots from cluttering up the sessions table, you must have an active anonymous session before logging in to Drupal. So that is the first thing we do with system.connect. This session ID is saved to the 'deploy_sessid' variable, which all other xmlrpc calls to the remote server pass.
// Get anon session. system.connect is the only service that does
// not require a sessionid even when you have 'Use Sess ID' checked.
// If your drupal installation is in a subdirectory, the following url should be