- PVSM.RU - https://www.pvsm.ru -
В январе 2015 года исполняется 10 лет приложению Openbravo POS [1]. За эти годы Openbravo POS(включая форки) стало лидером в мире СПО для автоматизации розничной торговли (POS, Point of Sale – торговая точка или более конкретно, рабочее место кассира). Данная статья предварительный итог того, что удалось и не удалось реализовать в проекте Openbravo POS за прошедшие 10 лет.

Отцом основателем, бессменным руководителем и практически единоличным коммитером проекта был Эдриан Ромеро [2] из Испании. У проекта изначальное название с 2005 по 2007 год было Tina POS, но в августе 2007 года возник конфликт с этой торговой маркой и пришлось переименовать проект в Libre POS. В отличии от первого, второе название не продержалось и пол года, так как Эдриан перешёл работать в Openbravo [3] и первая часть названия была «забрендирована», оставив от старого только «POS» на конце, что подчёркивало с этого момента принадлежность проекта к экосистеме данной ERP-системы в качестве дополнения в сфере розничной торговли. Также в феврале 2008 года вышла и первая версия Openbravo POS сразу за номером 2.00.
В это-же время и я, ища ERP-систему работающую под Linux, узнал о существовании проекта Openbravo. А приложение Openbravo POS стало отправной точкой в освоении исходного кода данного проекта. Начал я с перевода интерфейса на русский язык. Но в итоге не удержался, и в ходе локализации приложения для рынка стран бывшего СССР, уже к имеющемуся чековому принтеру, дисплею покупателя, сканеру, весам и терминалу сбора данных, добавил поддержку кассового аппарата, принтера этикеток, фискального регистратора и весов с печатью этикеток. За что через год, весной 2009 года, в Барселоне, получил Openbravo Community Awards [4], уже не как лучший локализатор, а как лучший в 2008 году разработчик Openbravo POS.

Для меня основным в Openbravo POS стало то, что в небольшом (на первый взгляд) десктоп приложении, скрывалась мощь полноценного энтерпрайз решения с возможностью подстройки под любые задачи автоматизации малого бизнеса. Это достигалось за счёт перечисленных ниже сильных сторон, которые были заложены в Openbravo POS практически изначально.

В то-же время 2009 год стал и последним годом развития Openbravo POS, вышедшая в декабре версия 2.30 была последней, где были внесены большие изменения, в минорных версиях 2.30.1 и 2.30.2 была исправлена только пара багов и переделана логика расчёта налогов (появилась возможность задавать налоги на период времени). В версии Openbravo POS 2.30 было заложено несколько функций, которые и сейчас отличают её от других POS, как проприетарных, так и свободных.
Каждой единице товара или услуги назначается параметр (характеристика), который определяет его потребительские свойства (размер, цвет и т.п.) или идентифицируют отдельные его единицы (номер партии, серийный номер и т. д.) В дальнейшем в разрезе этих атрибутов можно вести учёт и формировать отчёты.


Для обмена данными с внешними системами было предложено использовать ETL решение от Pentaho [9], это позволило интегрировать программное обеспечение торговой точки в систему учёта уже внедрённую на предприятии. Для примера в релиз вошли схемы для загрузки в Openbravo POS справочников и выгрузки продаж через REST веб-интерфейс в Openbravo ERP.

Уже тогда было понятно, что развивать только десктоп версию приложения невозможно. Внедряя POS приходится учитывать потребность заказчика в использовании мобильных устройств. Для решения этой задачи было предложено использовать Java сервлет подключенный вместе с десктоп приложением к единой базе данных. Для иллюстрации такого подхода в релиз Openbravo POS 2.30 входило основанное на фреймворке Struts 1 [10] веб-приложение позволявшее официанту принимать заказы с КПК.

К сожалению в дальнейшем эти изменения в рамках Openbravo POS не получили развития и с 2010 года проект был заморожен, а в дальнейшем развитие шло только в рамках форков основанных на исходном коде Openbravo POS. Это было вызвано тем, что компания Openbravo отказалось от идеи использовать десктоп приложение в качестве клиента для ERP и решила делать на базе платформы Openbravo 3 [11] онлайн веб-клиент, назвав его Openbravo Web POS [12]. При этом разработчикам хоть и предоставляется исходный код Openbravo Web POS, но его распространение стало возможным только при подписке на профессиональную версию Openbravo 3. Также, кроме приложения для управления оборудованием [13], разработку которого по прежнему ведёт Эдриан Ромеро, в данном проекте ничего о десктоп версии Openbravo POS не напоминает.
Далее, с 2010 года, начал действовать механизм заложенный открытым кодом и лицензией GNU GPL, то есть начали появляться приложения основанные на исходном коде Openbravo POS. Ниже перечислены наиболее популярные из них.
Главное, что объединяет все ветви отпочковавшиеся от родительского проекта, это единая структура базы данных [26]. Она не очень сложная, но благодаря неизменному ядру позволяет сохранять совместимость между любым из ответвлений, что иллюстрирует проект nordpos.mobi [27]. В нём я продолжил развивать идею веб-модуля для КПК, а получившиеся в итоге Java-сервлеты можно подключать, как к оригинальной базе данных Openbravo POS, так и к базам данных форков построенных на ней.
С 2008 года я являюсь один из самых активных участников этого проекта. Для меня эти 7 лет уж точно не прошли даром, я получил новые знания, новые знакомства и новые идеи. Разработкой СПО можно занимать не ради больших денег, а просто ради мысли, что твоя работа в будущем кому-то будет нужна, и если ты в итоге охладеешь к своему детищу, то всегда найдётся тот, кто её подхватит и будет развивать дальше, не забросив «на самом интересном месте».

Пример внедрения [28] от Squier [29]
Автор: Svininykh
Источник [30]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/77145
Ссылки в тексте:
[1] Openbravo POS: https://sourceforge.net/projects/openbravopos/
[2] Эдриан Ромеро: http://adrianrcblog.blogspot.com/
[3] Openbravo: http://www.openbravo.com/
[4] Openbravo Community Awards: http://planet.openbravo.com/blog/openbravo-community-awards-winners/
[5] моего проекта: https://code.google.com/p/openbravoposru/
[6] JasperReports: http://community.jaspersoft.com/project/jasperreports-library
[7] RXTX: http://rxtx.qbang.org
[8] JavaPOS: http://www.javapos.com/
[9] ETL решение от Pentaho: http://community.pentaho.com/projects/data-integration/
[10] Struts 1: http://struts.apache.org/
[11] Openbravo 3: http://www.openbravo.com/products/
[12] Openbravo Web POS: http://www.openbravo.com/retailers/product-features/web-point-of-sale/
[13] приложения для управления оборудованием: http://forge.openbravo.com/plugins/mwiki/index.php/Openbravoretail/Hardware_and_Peripherals_Guide
[14] uniCenta POS: http://sourceforge.net/projects/unicentaopos/
[15] POSper: http://sourceforge.net/projects/posper/
[16] SmartPOS: http://sourceforge.net/projects/smart-pos/
[17] Wanda POS: http://sourceforge.net/projects/wandaposdapos/
[18] iDempiere: http://www.idempiere.org/
[19] ADempiere ERP: http://www.adempiere.com/
[20] Red1: http://www.red1.org/
[21] Compiere: http://www.compiere.com/
[22] Русская версия Openbravo POS: http://code.google.com/p/openbravoposru/
[23] упоминал: http://habrahabr.ru/post/235105/
[24] NORD POS: http://sourceforge.net/projects/nordpos/
[25] компактных Java сервлет для мобильного веб: http://habrahabr.ru/post/156781/
[26] структура базы данных: http://wiki.openbravo.com/wiki/POS/2.30/Database_Model
[27] nordpos.mobi: http://nordpos.mobi
[28] Пример внедрения: http://habrahabr.ru/post/126377/
[29] Squier: http://habrahabr.ru/users/squier/
[30] Источник: http://habrahabr.ru/post/245765/
Нажмите здесь для печати.