Для реализации “Хотелки №1” необходимо создать прототип библиотеки компонентов для построения среды передачи данных посредством протокола XML-RPC.
Свой проЭкт, на текущем этапе, я буду разрабатывать для платформы Windows. Возможно когда-нибудь я смогу реализовать кроссплатформенность, но это пока из разряда “мечталок”.
Итак, в качестве среды разработки выбираю Delphi 2010, демо-версия которой доступна на сайте производителя.
Составные части проектируемой библиотеки:
- Компонент “DdbXmlRpcClient”. (Для построения клиентских приложений).
- Компонент “DdbXmlRpcServer”. (Для построения сервера приложений).
- Источник данных. (Для обеспечения подключений к “Хранилищу данных”, дальше по тексту - ХД).
В рамках этой задачи необходимо:
- На стороне клиентского компонента обеспечить формирование и передачу запроса серверному компоненту на получение некоторых данных из ХД;
- На стороне серверного компонента обеспечить парсинг клиентского запроса, затем сформировать и отправить запрос к ХД;
- На стороне серверного компонента принять данные из ХД. Сформировать и отправить ответ клиентскому компоненту;
- На стороне клиентского компонента обеспечить обработку ответа, полученного от серверного компонента, затем отобразить полученные данные на экране пользователя системы.
Реализация “хотелки №1”. Начало.
Для начала я дал Имя нашей новой библиотеке, для последующего использования. Отныне она будет называться Delphi dbXmlRpc (VCL), что на человеческом языке означает – “Delphi Database XmlRpc (Visual Component Library)”. Прошу любить и жаловать...
В качестве базовой библиотеки для реализации задуманного буду использовать компонент Delphi XML-RPC for Windows and Kylix for GNU/Linux (разработчики: Clifford E. Baeseman и Team-DXmlRpc):
- Последняя версия доступная на сайте - 2.0.0 в CVS - 2.1.0;
- Дата последнего обновления: 2004-04-20;
- Поддерживается работа в средах Delphi 6, 7;
- Для работы необходимы компоненты INDY 9 и XMLParcer от Stefan Heymann (входит в комплект);
- Компонент уже достаточно давно не обновлялся авторами, но необходимый базовый функционал в нем заложен.
- Для использования в проЭкте – годен (потребуется относительно небольшая доработка).
Я установил Delphi 2010, а с ним идет INDY 10. Для начала придется "довести до нужной кондиции" используемые сторонние компоненты Delphi XML-RPC, и XMLParcer, а именно:
- Адаптировать для Delphi 2010 (желательно обеспечить совместимость с предыдущими версиями IDE и RAD Studio);
- Адаптировать для использования с INDY 10 (желательно сохранить совместимость с предыдущей версией INDY 9).
Я использовал последние доступные версии библиотек 2.1.0 и 1.0.17 соответственно. После некоторых "танцев с бубном" удалось адаптировать код используемых библиотек для работы с UNICODE и собрать все это хозяйство в Delphi 2010. Поддержку предыдущих версий среды буду реализовывать позже...
Сборка получилась на “скорую руку”, по-быстрому, короче – “рыба”, но мне, для испытания возможностей выбранных базовых компонентов – достаточно.
Кому интересно посмотреть что у меня получилось смотрим: http://www.opensvn.ru/project_info.php?id_project=dbxmlrpc
Читатель: "А где же передача данных?"
Писатель: "Вот отшлифую текущие наработки - тогда продолжим..."
За сим прощаюсь.
6 комментариев:
Блин я вроде бы оставлял коммент. Для этого можно использозвать уже готовые решения. На java - это JMX, на .NET - это Remotion. Есть еще целый раздел, который называется web сервисы: тут можно использовать и json и xml и т.д. Лично я сейчас копаюсь в исходном коде q3 (параллельно документируя этот код, кстати). У них помимо qvm реализован свой транспортный стек Net Channel. Решил вначале хотябы поверхостно ознакомиться со структурой этой, наверное, гениальной игры, а потом начинать свое...
Вот-вот:
>> На java - это JMX, на .NET - это Remotion. Есть еще целый раздел, который называется web сервисы: тут можно использовать и json и xml и т.д.
А для Delphi ничего стоящего Open или Free НЕТУ!!!
Поэтому и решил заняться этим пробелом, тем более, что сейчас у меня реальный заказ на разработку информационной системы БД на Delphi, где ЭТО нужно.
Так что убью двух зайцев: и компонент напишу и заказ выполню ;)
>> Блин я вроде бы оставлял коммент.
Были непонятки с публикацией комментов. Сейчас вроде настроил премодерацию...
Ну только ежели так, то да. Я просто думаю раскрамсать Quake 3 на части и методом отбора взять от него лучшее :-)
В качестве бредового предложения:
Создай блог со страшным названием "КуЭйК-ПОтроШИтеЛь!".
Опиши процесс и дай всему миру почитать про это увлекательнейшее ШОУ ПОТРОШЕНИЯ КУ3!!!!! ;)
ЗЫ: Кстати здесь тоже присутствует магическое слово "КУ" ;-)
Да я думаю выставить на аукцион домен KBAPTET.ru и приобрести что-нибудь более подходящее тематике моих собственных занятий и там блог поднять.
Ку!артер [dot] ру... ;)
Давай продавай, поднимай блог... линку не забудь выслать!
ЗЫ. Опять что-то напутал с оповещением на имэйл :( поэтому так долго не отвечал...
Отправить комментарий