2014-10-22 1 views
1

Каков наилучший способ переноса старой программы на другой язык без нарушения соединения со старым движком?Лучшая практика для переноса работы OpenEdge ABL на .NET

  1. Используйте Ассамблея
  2. XML-RPC
  3. Restart от нуля
  4. Розетки Соединения
  5. другой путь?

У нас есть ограничения: Цена (15p)/Время (15p)/Качество (70 баллов), потому что старый двигатель находится в производстве, используемом многими клиентами. Новейшая архитектура основана на архитектурном стиле RESTFul. Информация: Программное обеспечение является ERP (Enterprise Resource Planning).

enter image description here

ответ

0

Прогресс OpenEdge AppServer поддерживает веб-службы.

Однако, существуют некоторые ограничения здесь:

Лицензирование

Использование технологии AppServer требует, чтобы иметь право лицензии на них. Вы можете запустить программу showcfg и искать что-то вроде:

Product Name: OE Application Svr 

может иметь другое имя в версии 10.2B - Application Server или Transaction Server будет то, что вы должны искать.

Технология

Версия 10.2B был выпущен в 2009 году, так что это хорошо актуально для обновления. Если вы находитесь в плане поддержки, эти обновления бесплатны. Если нет: подумайте об этом, если эта часть системы будет жить.

10.2B изначально поддерживает только сервисы на основе SOAP. Если вы используете технологию WebSpeed, вы можете создать в ней какой-то веб-сервис REST. Однако это потребует от вас выполнения какой-либо работы, и это будет очень «рулоновое» решение.

Даже без WebSpeed ​​вы можете настроить сокеты и т. Д. И написать небольшой http-сервер в прогресс, но я бы не рекомендовал его.

Версии 11.2 (11.4 в настоящее время является последней версией), а вперед есть встроенная поддержка публикации веб-сервисов на основе REST.

Возможно, вы можете обновить только части лицензий. Запуск БД в 10.2, а сервер приложений в 11.4 мог бы работать. Общая политика выполнения: «Поддерживаются клиентские продукты для продуктов Server с одной основной версией». Обратитесь к Прогрессу и спросите об этом первым.

Для

Читайте на Appserver технологии и веб-служб в ходе OpenEdge! Если вы уже запустили AppServer, довольно просто сделать веб-службы из своих программ.Если вы не все надеетесь, это не потеряно: если программы определены правильно, вы можете легко переместить «API» на AppServer. Если система плохо структурирована, это может быть проблемой - или, скорее, большей работой, - но, я думаю, вы уже это знали?

Ссылки 10.2B Product Documentation Collection

10.2B Web Services documentation

11.4 (latest version) Web Services documentation

Knowledgebase entry about version connectivity

+0

+1, спасибо за ваш полный ответ, и я сожалею, что опоздал. – Girakith

+0

Спасибо, почему бы не поддержать, если вам это нравится? – Jensd

+0

"Vote Up требует 15 репутации" – Girakith

0

Прогресс можно говорить REST. Почему бы не использовать это?

+0

Мы хотим выйти из Прогресса, потому что OpenEdge ABL слишком отстает от Java, C#, C++, а во Франции связь Progress слишком тонкая. – Girakith

0

Я не полностью следовать вашей диаграммы/вопрос и ответ Jensd является более твердым, но я просто хотел для добавления: Progress также поддерживает прокси-систему, позволяющую клиентам .NET (и Java) обращаться к RP C (вид) логики, запущенной на их AppServer. Очевидно, вы можете использовать это, чтобы быть REST-осведомленным.

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

И, конечно же, всегда существует ODBC, на случай, если вам не нужна логика Progress, и вы просто хотите получить данные. Мы также много чего делаем, но я не очень хорошо знаком с этим.

+0

Хорошая точка с прокси. Забыл о тех ... – Jensd

0

Прошу прощения за опоздание.

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

Программное обеспечение Смесь 4GL (Процедура & 4GL код) + OpenEdge ABL 10.2B с 'Object' + WebService (на основе стиля отдыха) на OpenEdge ABL AppServer 11.2.

Очевидно, что очень сложно объединить 3 версии с тремя различными технологиями, но мы не можем перезапустить с пустой страницы (мой босс не согласится с этим делом, потому что клиентам требуется обновление и обслуживание в самой старой версии, основанной на на языке 4GL. Он не хочет разрабатывать другую программу рядом с самой старой, потому что он хочет связать новейший код «Object Like» с процедурой 4GL, и этот выбор он может медленно переносить в ориентированную объектную программу).

Я действительно заблокирован и заблокирован.