Архив Апрель 2010

Прощай MySQL.

| Нет трекбэков

Недавно меня посетила мысль. Это случается довольно редко, поэтому пришедшие в голову мысли я стараюсь не упускать. На самом деле, в боте совершенно нет никакой необходимости использовать реляционные базы данных. Вполне достаточно использовать базу типа "key-value".

Несколько статей на эту тему: [1], [2], [3].

В моем проекте будет использоваться база данных Oracle Berkeley DB Java Edition, а в качестве persistence layer над ней - проект Carbonado.

Пощупать все это дело можно прямо сейчас, скачав третью альфу.

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

Обсудить все это дело можно как всегда на форуме.

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

Начнем с описания работы ядра - модуля jimbot.core.

Для начала советую прочитать про основы OSGi.

Бандл ядра состоит из нескольких пакетов.

  • jimbot.core - содержит активатор бандла и коннекторы сервисов. Название пакета отличается от общепринятого из-за того, что этот пакет не нужно экспортировать для других бандлов.
  • ru.jimbot - несколько общих классов, которые я не смог отнести к другим пакетам. Самые важные из них: MainConfig и Manager.
  • ru.jimbot.core - тут собраны общие классы, которые должны быть использованы при работе других бандлов. Часть из классов абстрактные и должны быть расширены.
  • ru.jimbot.core.api - тут собраны все интерфейсы, которые должны реализовываться бандлами.
  • ru.jimbot.core.events - в данном пакете содержатся классы событий. Я планирую переделать систему коммуникации между частями бота, т.к. в OSGi есть собственные средства обмена сообщениями и событиями между бандлами, но с этим еще предстоит разбираться.
  • ru.jimbot.db - содержит общие абстрактные классы для работы с БД. Возможно, они тоже будут переписаны.
  • ru.jimbot.utils - некоторые сервисные классы, реализующие функции общего назначения.

Метод кирпича

| Нет трекбэков

Все в реальной жизни состоит из маленьких кусочков. Частичек. Кирпичиков. Модулей...

Очевидно что строить большой объект из нескольких маленьких гораздо проще, чем создавать его сразу на пустом месте. При этом так же понятно, что эти кирпичики должны обладать определенным согласованным интерфейсом друг с другом. Например, при строительстве дома все кирпичи обладают одинаковыми размерами, иначе построить дом неполучится.

В области разработки программного обеспечения ситуация аналогичная. Систему, обеспечивающую поддержку функций загрузки модулей, их запуска, разрешения зависимостей между ними, изоляцией молулей друг от друга называют плагинной шиной. В JimBot начиная с версии 0.5.0 будет также использована полноценная плагинная шина, реализованная на основе технологии OSGi.

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

Loading

Об архиве

Страница содержит архив записей за Апрель 2010, расположенных по убыванию.

Февраль 2010 — предыдущий архив.

Июнь 2011 — следующий архив.

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.

Хостинг для чата

Рейтинг@Mail.ru службы мониторинга серверов