#database #frameworks #client-server #point-of-sale
Вопрос:
В нашей компании есть система торговых точек со множеством дополнительных функций, таких как функции заказа и получения, история продаж и заказов и т.д. Наша главная проблема заключается в том, что система не была разработана должным образом с нуля, поэтому для внесения исправлений и обработки запросов от наших клиентов требуется слишком много времени. Кроме того, текущая технология, которую мы используем (Progress database, Progress 4GL для языка), требует от наших клиентов немалых затрат на лицензирование из-за платы за лицензии для разных пользователей за подключение к базе данных и т. Д.
После долгих обсуждений складывается впечатление, что мы, вероятно, начнем все с нуля (сохраняя при этом текущий продукт, по крайней мере, на данный момент). Мы ищем пару вещей:
- Создайте систему с хорошим интерфейсом с графическим интерфейсом (в настоящее время это CHUI, и приложение не было построено таким образом, чтобы мы могли перепроектировать интерфейс… никакого наслоения или разделения бизнес-логики и графического интерфейса…содрогание).
- Создайте систему с возможностью модуляции различных функций, чтобы продукт не включал все функции. Это снизило бы стоимость для наших нынешних клиентов, которым нужна базовая функциональность и более низкая цена. Колокольчики и свистки будут доступны для тех, кто захочет их получить.
- Используйте правильные шаблоны проектирования, чтобы упростить добавление или изменение любой части продукта в любое время (т. Е. Измените базу данных или измените интерфейс без необходимости переписывать приложение или большую его часть). Сегодня это проблема, поскольку код Progress 4GL напрямую компилируется в базе данных. Небольшие изменения в базе данных требуют большой перекомпиляции кода.
Наша новая система будет основана на Linux, с возможностью клиентского приложения, предоставляющего функциональные возможности из одного или нескольких окон Windows.
Поэтому я ищу любые предложения о том, какую базу данных и/или фреймворк или язык(языки) программирования кто-то может порекомендовать для такого рода продуктов. Любой, у кого есть опыт в этой области, может указать нам правильное направление или даже иметь некоторые идеи о том, чего следует избегать. Мы рассмотрели .NET и SQL Express (нам не нужна база данных корпоративного уровня), но это ограничило бы нас Windows (насколько я знаю, в любом случае). Я слышал о Моно для письма .ЧИСТЫЙ код в среде Linux, но я пока мало что об этом знаю. Мы также рассмотрели реализацию на основе Java и MySQL.
Подводя итог, мы хотим сделать следующее:
- Сократите затраты на лицензирование технологии, которую мы будем использовать для разработки продукта (Oracle, блин! MySQL, мило.)
- Предоставьте решение, которое легко ремонтопригодно и поддается поддержке.
- Решение, в котором есть компонент, способный работать на «старом» оборудовании через интерфейс CHUI. (у некоторых наших клиентов есть более 40 терминалов, которые можно было бы обменять на пк за тонну наличных денег).
Буду признателен за предложения.
Спасибо
[ОБНОВЛЕНИЕ] Я должен отметить, что в настоящее время мы проводим анализ общих затрат. Этот вопрос предназначен для того, чтобы дать нам несколько «образованных» вариантов для рассмотрения или анализа. Любой, кто мог бы поделиться опытом/предложениями о настройке клиента/сервера, был бы признателен (не только тем, кто имеет опыт работы с системами торговых точек… это было бы просто бонусом).
[ОБНОВЛЕНИЕ]
Для всех, кому интересно, мы закончили с Microsoft Dynamics NAV, LS Retail (плагин для торговых точек и многое другое), а затем проделали некоторые (и в настоящее время работаем над этим) работы по настройке. Эта установка дала нам дополнительное преимущество-наличие полностью интегрированной системы g/l, которой не хватало нашей нынешней системе.
Ответ №1:
Java для языка (или Scala, если вы хотите быть «кровоточащим краем», в зависимости от того, как вы планируете его поддерживать и каковы ваши разработчики, это может быть лучше, но также и хуже)
H2 для базы данных
Качели для графического интерфейса
Причина: Бесплатный, портативный и довольно стандартный.
Обновление: Пропущена часть, в которой система должна быть настроена на клиент-сервер. Мое предположение состояло в том, что база данных и клиент должны работать на одной машине.
Комментарии:
1. Есть ли шанс, что вы сможете дать некоторое представление о том, почему вы предлагаете это? Есть ли какие-то особые преимущества в их использовании по сравнению с чем-то другим? Спасибо
2. Java является стандартом в том виде, в каком он есть. И он портативный, как вы и предполагали. H2-это встроенная база данных, которая должна быть полезна в таком специализированном приложении, как ваше. Также H2 (по утверждению создателей) является производительным и легким. Качайтесь только для того, чтобы избежать зависимостей. Этого достаточно.
3. Спасибо, Джон. Это именно тот материал, который мы ищем.
Ответ №2:
Я предлагаю вам сначала немного подробнее изучить свои ограничения — вы сделали мимолетную ссылку на клиента, использующего определенный тип терминала, — это может ограничить ваши возможности, если клиент не согласится на обновление.
Вам нужно еще много поработать над этим. Здорово получать мнения с веб-форумов, но мы, возможно, не можем знать вашу среду так же хорошо, как вы.
Мой общий совет состоял бы в том, чтобы стремиться к технологии, которая широко используется. Таким образом, экспертиза на платформе обходится дешевле, чем «нишевые» технологии, и вам будет легче получить помощь, если вы упретесь в кирпичную стену. Конечно, следовать этому совету может оказаться невозможным, если у вас уже есть необоротная технология для клиентов.
Мое второе предложение состояло бы в том, чтобы завершить полный план проекта с подробными спецификациями и надлежащей оценкой затрат, прежде чем переходить к опции «переписать с нуля». Прямо сейчас вы говорите, что было бы дешевле переписать систему, чем поддерживать ее, и вы действительно не знаете, сколько будет стоить переписать.
Комментарии:
1. Переписывание еще не наверняка (я имел в виду, что прямо сейчас проводится текущий анализ общей стоимости, с учетом того, что мы хотим переписать). Мы изучаем варианты переписывания, которые позволят больше узнать о стоимости. Вот для чего этот вопрос, чтобы дать образованные идеи.
2. Би Би попала в самую точку насчет выбора плодовитой технологии. Это действительно отстой, когда ваш один эксперт в SupaDupaDB увольняется, а вы не можете найти другого за все деньги в Китае.
Ответ №3:
Я предлагаю вам использовать браузер для пользовательского интерфейса.
Организуйте свое приложение как веб-приложение.
Существует множество вариантов для серверной части. Вы можете использовать Java MySQL. Серверная часть Java избавит вас от споров о Windows/linux, поскольку она будет работать на обеих платформах. У вас не будет никаких затрат на лицензирование как для Java, так и для MySQL. (Правка: Определенно есть много других языков, которые имеют время выполнения как для linux, так и для Windows, включая PHP, Ruby, Python и т. Д.)
Если вы пойдете по этому пути, вы также можете рассмотреть Google Web Toolkit (GWT) для создания интерфейсного интерфейса на основе браузера модульным способом.
Хотя одно слово предостережения. Браузеры могут быть надоедливыми, когда дело доходит до управления памятью. По нашему опыту, это было самой серьезной проблемой при выполнении POS-операций на основе браузера.Возможно, вам захочется проверить Adobe Flex, который работает в браузере, но может быть более цивилизованным в управлении памятью.
Комментарии:
1. Я действительно не вижу, как дополнительная сложность использования HTTP и друзей между графическим интерфейсом и системой принесет какую-либо пользу.
2. Будьте осторожны с пользовательским интерфейсом на основе браузера при разработке системы точек продаж. Обычно он интегрируется со специализированным оборудованием (например, термопринтером, сканером штрих-кодов и т.д.).
Ответ №4:
Что такое ЧУЙ? Пользовательский интерфейс персонажа, как в терминалах VT? Или даже в стиле 3270?
Похоже, вам нужна 3-уровневая система — серверная часть базы данных, средний уровень, на котором выполняется основная часть внутренних бизнес-процессов, и интерфейсный уровень для CHUI / GUI / шлюза данных.
Все три уровня могут находиться на одной машине; или вы можете распределить уровни между различными серверами. Интерфейсный уровень будет управлять фактическими терминалами, будь то VT-терминалы, веб-браузер или специально написанное «клиентское» приложение.
Убедитесь, что вы рассмотрели потребности в оборудовании здесь-у вас будут сканеры штрих-кодов, кассовые ящики, POS-терминалы дебет/кредит и т. Д.? Если вы используете стандартный браузер, может быть трудно надежно интегрировать эти элементы. (По крайней мере, вам, вероятно, придется написать специальные апплеты для их обработки.)
Наконец, рассмотрим возможность использования технологии тонкого клиента в Windows. Это значительно упрощает управление системой, так как вам нужно только централизованно обновлять программное обеспечение. ПК с тонким клиентом стоят дешево-менее 200 долларов.
Ответ №5:
Разработка Золотого кода (см. www.goldencode.com) имеет технологию, которая выполняет автоматическое преобразование Progress 4GL (схема и код… все приложение) в приложение Java с серверной частью реляционной базы данных (например, PostgreSQL). В настоящее время они поддерживают очень полную среду CHUI и выполняют рефакторинг кода. Например, преобразование разделяет пользовательский интерфейс, модель данных и бизнес-логику на отдельные классы Java. Весь результат-это замена, совместимая с оригиналом (пользователи не нуждаются в переподготовке, процессы не нуждаются в изменении, данные также переносятся). Это возможно, потому что они предоставляют сервер приложений и набор классов среды выполнения, которые обеспечивают такую совместимость. Результат автоматического преобразования не нуждается в дальнейшем редактировании, прежде чем вы сможете его скомпилировать и запустить. Включена поддержка истинных терминалов, поэтому аппаратные терминалы все еще работают (для доступа к NCURSES с Java требуется небольшая библиотека JNI). Весь остальной код во время выполнения-это чистая Java. В полученной системе не используется технология Progress Software Corp, и она работает на Linux.
По крайней мере одна преобразованная система уже находится в производстве и работает в критически важной среде 24 на 7. Это преобразованная ERP-система, которую их пилотный клиент среднего размера использует для управления всем своим бизнесом.