NORD POS mobile, сервлет для Openbravo POS

308 views
Skip to first unread message

Andrey Svininykh

unread,
Oct 30, 2012, 10:43:45 AM10/30/12
to openbra...@googlegroups.com

Добрый вечер, коллеги.


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


Для меня пять лет назад Openbravo POS стал дверью через которую я вернулся в программирование, сейчас развивая его, я для себя открываю мир веб-программирования, прошу мне в этом помочь и присоединится к моему новому проекту. Надеюсь многим будет это тоже интересно.


Я решил развить направление мобильных сервлетов, оно было обозначено ещё в 2009 году, но не нашло поддержки со стороны сообщества. Да, можно было-бы сразу перейти на новую Web POS платформу, но к сожалению у меня не хватает знаний и навык, чтобы сразу войти в разработку большого проекта не зная основ. По этому решил начать с нуля, правда подглядывая краем глаза как это делается в Web POS :)


Проект называется NORD POS mobile и с коммерческой точки зрения рассматривается в качестве мобильного дополнения к нашему форку Openbravo POS 2.30.2. При этом публикуемая свободная версия на 100% будет совместима с оригинальной, а также отчасти с другими форками основанными на ней. Главный плюс и точка соприкосновения двух этих проектов, это единая база. Да она не лишена структурных недостатков, но в ней очень хорошо отражены сущности характерные для ведения учёта в торговой точки.


Цель проекта, это ускорить(мобильные устройства одно из средств) и облегчить доступ(оставить только необходимое) к данным. Два клика и у нас новая запись, один клик и у нас отчёт. Элементы сервлета не будут рассчитаны на дублирование функционала десктоп приложения, они будут облегчать работу с ним:

  1. Чтение, редактирование, создание, удаление записей справочников;

  2. Формирование таблиц отчётов;

  3. Построение графиков.

Проект размещён на http://github.com/svininykh/nordpos-mobile-stripes и исходный код распространяется под Apache License, Version 2.0. Форки не только приветствуются, но и поощряются поддержкой с моей стороны :)


Ну и сразу, чтобы избежать вопросом в дальнейшем, этот проект рассчитан на внедренцев, если вы пользователь, который хочет собрать исходники и запустить их, то я вам могу порекомендовать два варианта: подыскать внедренца или самому стать им :)


На сегодня пока всё, жду отзывов и комментариев.


С уважением,

Андрей Свининых

Артур Акчурин

unread,
Oct 31, 2012, 2:06:41 AM10/31/12
to openbra...@googlegroups.com
Андрей, приветствую. Не совсем понятно для меня, что значит "мобильный
сервлет"? На сколько я знаю, для того чтобы технология сервлетов и jsp
работала, необходим контейнер сервлетов. И вообще всё это сугубо
серверные технологии.

30 октября 2012 г., 18:43 пользователь Andrey Svininykh
<svin...@gmail.com> написал:

Andrey Svininykh

unread,
Oct 31, 2012, 2:20:39 AM10/31/12
to openbra...@googlegroups.com
Артур, привет.

Сейчас сам понял, что название не совсем правильно звучит. Должно примерно так:

Java сервлет с мобильным интерфейсом для Openbravo POS.

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

31 октября 2012 г., 12:06 пользователь Артур Акчурин <akar...@gmail.com> написал:

Андрей, приветствую. Не совсем понятно для меня, что значит "мобильный
сервлет"? На сколько я знаю, для того чтобы технология сервлетов и jsp
работала, необходим контейнер сервлетов. И вообще всё это сугубо
серверные технологии.

--
The best regards,
Andrey Svininykh

Andrey Svininykh

unread,
Nov 14, 2012, 12:24:25 PM11/14/12
to openbra...@googlegroups.com

И снова добрый вечер, коллеги.


Решил продолжить начатый две недели назад разговор о проекте NORD POS mobile, и постараться рассказать почему именно решил развиваться в сторону серверных решений.


Сейчас так обстоит дело на рынке внедрения софта, что 100% десктопные приложения не удовлетворяют заказчиков даже в нашей глубинке. И это общемировая тенденция хорошо видна на примере Openbravo POS, которая после 2009 года так и не смогла нарастить массу для нового релиза. Кстати по моему мнению, это отражено во всей экосфере разработки десктоп приложений на Java. А вот в серверной части такого застоя нет, это как раз видно из этого отчёта. В общем-то именно под влиянием от его прочтения я и понял в какую сторону мне самому надо двигаться.


Что из себя представляет NORD POS mobile? Это набор рабочих пример исходного кода собранного для двух целей:

  • показать возможность совместного использования общей базы данных серверным и десктоп приложением;

  • изучить инструментарий на практике.

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


Что касается инструментария на базе которого реализуется NORD POS mobile. После достаточного долго анализа с главным критерием просто и скорость освоения с нуля, мной были выбраны следующие фреймворки:


Stripes Framework – достаточно лёгкий в освоении фреймворк, отличающей простотой структуры реализации кода. Основными задачами является разделить модель обработки данных в Java и представление на HTML-странице, отвечает за передачу данных от модели к представлению и обратно. Для Казахстана не мало важным является наглядность локализации интерфейса, что не создаст проблем при разработке интерфейсов пользователя на казахском, русском или английском языках.


Persist ORM/DAO – быстрый абстрактный интерфейс для доступа к базе данных любого типа, отличительной чертой являются простота трансформации данных из реляционной в объектно-ориентированную модель. Целью работы в рамках разрабатываемой платформы является получения данных для обработки бизнес-логикой сервлеты.


jQuery Mobile – набор скриптов, используемый платформой для построения мобильного веб-интерфейса. Позволяет представлять полученные данные в удобном для пользователя виде. Отвечает не только за динамический вывод текстовой информации, но и за построение графиков и диаграмм.


Работа с последним для меня является тёмным лесом и используется по только по причине установил атрибут в теги и оно само как-то заработало. Так что во всём касающемся JavaScript я прошу помощи у вас, так у самого не хватит сил эту тему вытянуть.


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


Ну а на сегодня всё.


С уважением,

Андрей Свининых



Артур Акчурин

unread,
Nov 16, 2012, 11:53:00 AM11/16/12
to openbravoposru
Приветствую Андрей. Рад, что ты по прежнему являешься главным идейным
вдохновителем развития проекта. Что касается твоего взгляда на
состояние рынка софта и абсолютно очевидный перекос его в сторону
серверных решений, здесь я абсолютно согласен. Десктопы ушли в
прошлое - это факт. На моей работе с системами с которыми я имею/имел
дело и как программист и как внедренец (к сожалению, сейчас я не
программирую, занимаюсь в основном организационной работой, но
получение второго сертификата Oracle Certified Expert, Java Platform,
EE 6 Web Component Developer , всё таки до конца доведу ) все сплошь с
применением серверных технологий, в том числе и толстые и тонкие и
супертонкие клиенты. Так что с этими вещами знаком не понаслышке. На
счет твоего выбора инструментов скажу, что с ними не знаком, точнее
знаком, но никогда их не применял. Мы пользовались/пользуемся хорошо
известными, но и достаточно сложными подходами, такими как Spring,
Hibernate, JPA. Но, по моему мнению, их применение оправдано лишь для
достаточно больших и сложных проектов. Что касается jQuery, то к
серверным вещам она, на сколько я знаю, не имеет никакого отношения -
это библиотека javascript функций, которые по определению выполняются
на клиенте, её по моему скромному мнению, нужно применять совместно с
такой штукой, как JSF 2.0. Сейчас, если не ошибаюсь, она является
частью Java EE. и призвана заменить умерший ныне JSTL. Штука
достаточно мощная, причём в неё встроена поддержка AJAX.
И ещё, по моему скромному мнению, если придерживаться
стандартной парадигмы MVC, то на сервлет ни в коем случае нельзя
возлагать обязанности по обработки бизнес-лигики. За это должна
отвечать модель. Т.е. модель - это не только связь с базой данных,
обработка запросов и т.д. Но и вся бизнес логика приложения. Сервлеты
должны оставаться исключительно контроллерами. Иначе они превратятся в
"Толстых Уродливых Контроллеров".

On 14 ноя, 21:24, Andrey Svininykh <svinin...@gmail.com> wrote:
> И снова добрый вечер, коллеги.
>
> Решил продолжить начатый две недели назад разговор о проекте NORD POS

> mobile <http://github.com/svininykh/nordpos-mobile-stripes>, и постараться


> рассказать почему именно решил развиваться в сторону серверных решений.
>
> Сейчас так обстоит дело на рынке внедрения софта, что 100% десктопные
> приложения не удовлетворяют заказчиков даже в нашей глубинке. И это
> общемировая тенденция хорошо видна на примере Openbravo POS, которая после
> 2009 года так и не смогла нарастить массу для нового релиза. Кстати по
> моему мнению, это отражено во всей экосфере разработки десктоп приложений
> на Java. А вот в серверной части такого застоя нет, это как раз видно из этого

> отчёта<http://zeroturnaround.com/labs/developer-productivity-report-2012-jav...>.


> В общем-то именно под влиянием от его прочтения я и понял в какую сторону
> мне самому надо двигаться.
>
> Что из себя представляет NORD POS mobile? Это набор рабочих пример
> исходного кода собранного для двух целей:
>

> -


>
> показать возможность совместного использования общей базы данных
> серверным и десктоп приложением;

> -


>
> изучить инструментарий на практике.
>
> При этом за десктопной частью остаётся приоритет в части автоматизации
> рабочего места кассира, а вот на сервлет переноситься нагрузка в части
> дополнительного функционала.
>
> Что касается инструментария на базе которого реализуется NORD POS mobile.
> После достаточного долго анализа с главным критерием просто и скорость
> освоения с нуля, мной были выбраны следующие фреймворки:
>

> Stripes Framework <http://www.stripesframework.org/> - достаточно лёгкий в


> освоении фреймворк, отличающей простотой структуры реализации кода.
> Основными задачами является разделить модель обработки данных в Java и
> представление на HTML-странице, отвечает за передачу данных от модели к
> представлению и обратно. Для Казахстана не мало важным является наглядность
> локализации интерфейса, что не создаст проблем при разработке интерфейсов
> пользователя на казахском, русском или английском языках.
>

> Persist ORM/DAO <http://github.com/rufiao/persist> - быстрый абстрактный


> интерфейс для доступа к базе данных любого типа, отличительной чертой
> являются простота трансформации данных из реляционной в
> объектно-ориентированную модель. Целью работы в рамках разрабатываемой
> платформы является получения данных для обработки бизнес-логикой сервлеты.
>

> jQuery Mobile <http://www.jquerymobile.com/> - набор скриптов,

Andrey Svininykh

unread,
Nov 16, 2012, 11:59:22 PM11/16/12
to openbra...@googlegroups.com
Привет.

Артур, тебе спасибо что откликаешься на мои посты, а то бы я подумал, что это никому не интересно кроме меня.

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

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

С уважением и с надеждой на продолжением диалога,
Андрей Свининых

пятница, 16 ноября 2012 г., 22:53:02 UTC+6 пользователь Артур Акчурин написал:
Reply all
Reply to author
Forward
0 new messages