У кого-нибудь есть база данных, язык программирования/основы предложений для точечного графического интерфейса системы продажи?


Наша компания имеет систему точек продаж с множеством дополнительных функций, таких как функции заказа и получения, история продаж и заказов и т. д. Наша главная проблема заключается в том, что система не была разработана должным образом с нуля, поэтому требуется слишком много времени для исправления ошибок и обработки запросов от наших клиентов. Кроме того, текущая технология, которую мы используем (Progress database, Progress 4GL для языка), несет довольно большие лицензионные расходы на наших клиентов из-за платы за лицензию mutli-user для базы данных соединений и т. д.

После долгих обсуждений похоже, что мы, вероятно, начнем все с нуля (сохраняя текущий продукт, по крайней мере, в настоящее время). Мы ищем пару вещей:

  1. Создайте систему с красивым графическим интерфейсом (в настоящее время это CHUI, и приложение не было построено таким образом, что позволяет нам перепроектировать интерфейс... отсутствие наслоений или разделения бизнес-логики и графического интерфейса...содрогаться).

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

  3. Используйте правильные шаблоны проектирования, чтобы сделать продукт легким для добавления или изменения любой части в любое время (например, изменить базу данных или изменить внешний вид без необходимости переписывать приложение или большая его часть). Это проблема сегодня, потому что код Progress 4GL непосредственно компилируется с базой данных. Небольшие изменения в базе данных требуют большой перекомпиляции кода.

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

Итак, я ищу любые предложения о том, какую базу данных и / или фреймворк или язык программирования кто-то может рекомендовать для такого рода продукта. Любой, кто имеет опыт в этой области, может указать нам правильное направление или даже иметь некоторые идеи о том, чего следует избегать. Мы рассмотрели .NET и SQL Express (нам не нужна БД корпоративного уровня), но это ограничило бы нас windows (насколько мне известно). Я слышал о Mono для написания .NET-кода в среде Linux, но пока мало что об этом знаю. Мы также рассмотрели реализацию на основе Java и MySql.

Подводя итог, мы хотим сделать следующее: следующее:

  1. Снизить затраты на лицензирование технологии, которую мы будем использовать для разработки продукта (Oracle, блин! MySQL, неплохо.)

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

  3. Решение, которое имеет компонент, способный работать на "старом" оборудовании через интерфейс CHUI. (некоторые из наших клиентов имеют 40 + терминалов, которые были бы тонной наличных денег, чтобы конвертировать в ПК).

Предложения были бы оцененный.

Спасибо

[обновить] Должен отметить, что в настоящее время мы проводим общий анализ затрат. Этот вопрос призван дать нам пару "образованных" вариантов, чтобы рассмотреть, чтобы включить в или анализа. Любой, кто мог бы поделиться опытом/предложениями о настройке клиент/сервер, был бы признателен (не только те, кто имеет опыт работы с системами точек продаж... это был бы просто бонус).

[обновление]

Для всех, кто заинтересован, мы в конце концов, я пошел с Microsoft Dynamics NAV, LS Retail (плагин для точки продажи и различных других вещей), а затем сделал некоторые (и в настоящее время работает над) настройки работы на вершине этого. Эта установка дала нам дополнительное преимущество иметь полностью интегрированную систему g/l, которой не хватало нашей текущей системе.

5 8

5 ответов:

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

Вам нужно сделать намного больше работы с ногами на этом. Это здорово, чтобы получить мнение от веб-форумов, но мы не можем знать ваше окружение так же хорошо, как вы.

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

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

Java для языка (или Scala, если вы хотите быть "кровоточащим краем", в зависимости от того, как вы планируете поддерживать его и каковы ваши разработчики, это может быть лучше, но и хуже)

H2 для базы данных

Качели для GUI

Причина: бесплатный, портативный и довольно стандартный.

Обновление: пропущена часть, где система должна быть клиент-серверной установкой. Я предположил, что база данных и клиент должны работать на одной машине.

Я предлагаю вам использовать браузер для пользовательского интерфейса.

Организуйте приложение как веб-приложение.

Есть масса вариантов для бэк-энда. Вы можете использовать Java + MySQL. Java backend спасет вас от дебатов windows / linux, поскольку он будет работать на обеих платформах. Вы не будете иметь никаких затрат на лицензирование для Java и MySQL. (Edit: определенно есть много других языков, которые имеют время выполнения как для linux , так и для windows, включая PHP, Ruby, Python и т. д.)

Если вы идете по этому маршруту, вы также можете рассмотреть Google Web Toolkit (GWT) для создания интерфейса на основе браузера в модульном режиме.

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

Что такое Чуй? Характер-UI, как в терминалах VT? Или даже 3270 стиль?

Похоже, что вам нужна 3-х уровневая система-серверная часть базы данных, средний уровень, на котором выполняется основная часть внутренних бизнес-процессов, и передний уровень для Chui / GUI / data-gateway.

Все три уровня могут находиться на одной машине; или вы можете распределить уровни между различными серверами. Интерфейсный уровень будет контролировать фактические терминалы, будь то VT-терминалы или веб-браузер, или написанное на заказ "клиентское" приложение.

Убедитесь, что вы рассмотрели аппаратные потребности здесь - вы собираетесь иметь сканеры штрих-кодов, кассовые ящики, POS-дебетовые / кредитные терминалы и т. д.? Если вы используете стандартный браузер, может быть трудно надежно интегрировать эти элементы. (По крайней мере, вам, вероятно, придется написать специальные апплеты, чтобы справиться с ними.)

Наконец, рассмотрим возможность использования технологии тонкого клиента в Windows. Это значительно упрощает систему управление, так как вам нужно только централизованно обновить программное обеспечение. ПК с тонким клиентом стоят дешево-около 200 долларов.

Разработка Золотого кода (см. www.goldencode.com) имеет технологию, которая делает автоматизированное преобразование Progress 4GL (схема и код... все приложение) в Java-приложение с реляционной базой данных (например, PostgreSQL). В настоящее время они поддерживают очень полную среду CHUI и выполняют рефакторинг кода. Например, преобразование разделяет пользовательский интерфейс, модель данных и бизнес-логику на отдельные классы Java. Весь результат-это замена капли, которая является совместимость с оригиналом (пользователи не нуждаются в переподготовке, процессы не нуждаются в модификации, данные также переносятся). Это возможно, потому что они предоставляют сервер приложений и набор классов среды выполнения, которые обеспечивают эту совместимость. Результат автоматического преобразования не является чем-то, что нуждается в дальнейшем редактировании, прежде чем вы сможете его скомпилировать и запустить. Поддержка True terminal включена, поэтому аппаратные терминалы все еще работают (для доступа к NCURSES из Java требуется небольшая библиотека JNI). Весь остальной код в среде выполнения-это чистая Java. В результирующей системе не используется технология Progress Software Corp, и она работает на Linux.

По крайней мере одна преобразованная система уже находится в производстве и работает в критически важной среде 24 на 7. Это преобразованная ERP-система, которую их средний пилотный клиент использует для управления всем своим бизнесом.