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

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

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

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

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

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

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

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

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

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

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

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

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

Спасибо

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

[UPDATE]

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

Ответы [ 5 ]

2 голосов
/ 10 октября 2008

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

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

Swing для GUI

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

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

1 голос
/ 26 августа 2010

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

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

1 голос
/ 10 октября 2008

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

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

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

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

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

1 голос
/ 10 октября 2008

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

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

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

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

1 голос
/ 10 октября 2008

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

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

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

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

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

...