Saturday, October 25, 2008

Практика создания интерактивных приложений :: ru_jabber LiveJournal community


 Хотел немного поговорить об специфике работы приложений под джабер, да впрочем под любой IM сервис, т.е. о построении интерактивных приложений, взаимодействующих с пользователем путем обмена текстовыми сообщениями. Не путать с чат-ботами, речь скорее о CLI – command line interface, или об агентах – специальных сервисах.

Не все со мной согласны, многие не верят, но я считаю что следующий Веб – это интерактивное общение пользователя и Системы. Пусть эта запись будет в ЖЖ с текущей датой, вскоре я смогу на нее ссылать со словами “Я же говорил”. В прочем, на эту тему высказывался и ранее.

Что же такого интересного в CLI сервисах? Да собственно это новый уровень приложений.

Разберем по порядку. По порядку не разбирал разве что ленивый, но сейчас свой ракурс – я не буду употреблять слов “социальный”, “статичный” и т.д. И так, сначала программы работали локально и были однопользовательскими. Данные лежали недалеко от программы. Затем была одноранговая сетевая структура. Потом наступила очередь архитектуры клиент-сервер (туда же и трехзвенку), когда приложение запускалось локально, а вот данные лежали в сети. Современные веб-технологии пошли дальше и в сети лежит и само приложение по доступу к данным. Возьмем тот же Gmail или любой другой современный сервис – при каждом обращении загружается библиотека java скриптов и выполняется локально, обращаясь к сетевым данным (Gears и подобные примочки не в счет). Отсюда произошла вечная beta – приложения публикуются раньше релиза, дорабатываются до новых фич и снова сразу публикуются, не доходя до релиза. Release often, release early.

Теперь jabber-приложения:

Пользователь по умолчанию авторизован, поэтому все сервисы персональные Вся обработка выполняется на сервере, данные храняться на сервере Приложения легко масштабируются

Это все поверхностные отличия, и тот же Google Apps Engine удовлетворяет всем перечисленным требованиям. Принципиальная же разница - интерфейс. Текстовый интерфейс по взаимодейтствию, даже точнее общению с пользователем. Посмотрите на современный интерфейс – это реализованный в софте железный калькулятор – те же кнопочки, рычажки, индикаторы и т.д. А когда количество функций превышает мыслимые пределы – интерфейс получает вид арифмометра изнутри. Так недавно видел диалог с пятью вложенными друг в друга окнами с вкладками. Т.е. выбираю закладку, в ней окошко с еще кучей закладок и т.д. Эдакая матрешка. Такое общение для человека противоестественно, иначе он бы рождался с мышкой и монитором вместа рта и ушей. А естественным является естесственный язык, простите за тавтологию. Вот он идеальный интерфейс для взаимодействия с пользователем, и именно его позволяют реализовать jabber сервисы.

Так какие же задачи можно решать с помощью CLI сервисов? Все, где взаимодействие производится в командном режиме, либо действия пользователя легко распознаваемы.

Поиск в Интернете, в словарях, энциклопедиях и т.д. Сервисы по доставке информации – подписка на новости, на RSS, погода, валюты и пр.  Организация тестирования пользователя. Не SCORM модель но все же в режиме вопрос-ответ очень даже. Калькуляторы, арифметические, формульные и т.д. Интерактивные игровые модели. От текстовых квестов и до … самых до окраин. Ведение личной информации пользователя – TODO списки, заметки, закладки, задумки и т.д. Удаленное управление компьютером.

Простор широк, ряд из перечисленного было реализовано в рамках сервисов clisearch.net, например, изучение английского языка – результат довольно интересный.

Общался летом с инвесторами на данную тему, вынесли приговор – безперспективно. “Значит хорошие сапоги, надо брать”.


No comments: