возмем трехзвенку. есть у нас БД, апликэйшен сервер (кстати, как это будет по-русски?) и куча клиентов. что делает эта куча? она дергает апи с серванта: гетТо, гетСё, сетЭто, которое сервант проверяет и преобразует в селекты и инсерты.
теперь берем постгрес, который умеет совершенно замечательную штуку: он умеет выполнять процы на произвольном языке, скажем той же жабе и даже скале.
что можно: в постгресе сделать схему, скажем Dispatcher и добавил туда процу, скажем dispatch. проца будет принимать xml (json, your_name, не суть) скажем вида
<command>
<body class="commands.гетТо">
<param>1</param>
</body>
</command>
скаля это дело конвертнет в объек, рассует по табличкам соберет ответ-объект, конвертнет обратно в xml и вернет в качестве ответа на запрос. получится эдакий сервер приложений, только интегрированный в базу. если же такие команды оформить в виде case классов, то это дело можно будет чудно матчить.
у клиента остается только вызов select Dispatcher.dispatch, ответ которого клиент разберет на объект.
код процы может выглядеть примерно так:
pck.body match {
case o : commands.гетТо => то
case o : commands.гетСё => сё
case _ => "wtf!?"
}
вопрос: имеет ли это право на жизнь? делают ли так? если нет, то почему?
пока из проблем мне видится только то, что я не могу таким макаром отслеживать состояние, но я не вижу где мне это дело может понадобиться.