Kolyaj,
Как раз библиотеки (веб сервисы) у нас существуют отдельно от всех языков программирования. Потому что одна из целей которая ставилась перед архитектурой - не зависимость веб сервиса от какого то языка программирования (ЯП). В итоге вышло следующее, любой модуль (скрипт, приложение) создаваемый разработчиком в рамках платформы становится доступен из поддерживаемых ЯП, причем модуль можно будет исполнять как синхронно так и асинхронно.
Мы делали для эксперимента асинхронность в java. У нас создавался отдельный поток на обработку веб сервиса и обработку callback функции. При этом можно обращаться к глобальным переменным определенным вне кода исполняемого потока. Поток отрабатывает параллельно при наличии двух и более процессоров.
Вот как это было сделано в java
uploader.Upload(appid, uid, file, new Callback() {
@Override
public void fire(Response response) {
if (response.getResult() == Response.OK) {}
}
});
Или можно сделать синхронный вызов
Response response = uploader.Upload(appid, uid, file);
if (response.getResult() == Response.OK) {}