Архитектура для сервисов (WCF и Delphi) - PullRequest
3 голосов
/ 13 апреля 2011

Я работаю в проекте, который будет иметь два пользовательских интерфейса.Веб (asp.net mvc) и рабочий стол (Delphi 2010).Это был запрос клиента, поэтому нам нужно использовать Delphi.

Мы думаем о архитектуре, ориентированной на сервисы, как и WCF.Доступ к службам WCF в Asp.Net MVC - это нормально, но что нужно сделать в Delphi?Мои главные сомнения в том, как получить доступ к службе в WCF с помощью Delphi.Есть ли способ сделать это проще?

Могут ли мои методы в сервисе вернуть IEnumerable или T []?Есть ли для этого рекомендации!?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 13 апреля 2011

Поддержка веб-сервисов в WCF предоставляет множество функций, которые не поддерживаются Delphi - MTOM, WS-Addressing, WS-Reliable Messaging и WS-Security - это лишь некоторые из них.Если вы проектируете обе части системы (сервер веб-службы и клиент (ы)), вы находитесь в счастливой ситуации, когда вы можете выбрать, какие функции использовать (если они не диктуются другими сторонами).

К счастью, WCF не «диктует» использование SOAP.В разделе Взаимодействие в этой статье Википедии упоминается, например, WCF со стандартным XML (или RSS, или JSON).Существует также привязка WCF для REST .

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

2 голосов
/ 13 апреля 2011

Может быть, вы можете взглянуть на RemObjects SDK : это решение, подобное WCF, и вы можете использовать его для .Net, Delphi, Objective-C, PHP, C ++ и т. Д.

Таким образом, вы можете создать сервер с RemObjects для .Net, например, двоичное сообщение TCP + для лучшей производительности (SOAP / XML намного медленнее!), И клиент Delphi 2010 (даже поддерживается FreePascal). Обе стороны (Delphi и .Net) совместимы друг с другом даже для двоичного сообщения!

Мой опыт работы с RemObjects очень хорош: очень прост в использовании и создании сервисов (проще, чем WCF?), Хорошая поддержка и качество и т. Д.

0 голосов
/ 20 апреля 2012

Одна из последних SOA-сред для Delphi - это Open Source mORMot Framework .

. Вы можете использовать interface для определения своего контракта на обслуживание и доступа к ним локально или удаленно.используя именованные каналы, сообщения GDI или TCP / HTTP.Ваш контракт определен как таковой как на стороне клиента, так и на стороне сервера, точно так же, как в WCF.

type
  ICalculator = interface(IInvokable)
    ['{9A60C8ED-CEB2-4E09-87D4-4A16F496E5FE}']
    function Add(n1,n2: integer): integer;
  end;

Он обрабатывает живой экземпляр для каждого вызова, для каждого сеанса, для пользователя или для каждой группы.См. этот пример кода .

Это безопасно (с безопасная аутентификация на уровне URI), легко и быстро.

Он использует JSON в качестве связи (легче XML) и доступа RESTful.Он готов к использованию клиентами AJAX или WCF (последний после пользовательского маршалинга интерфейсов).Он был оптимизирован для скорости и масштабируемости (с расширенными функциями, такими как сбалансированный пользовательский хостинг и безопасность доступа для каждого интерфейса / метода).

Документация по mORMot Framework содержит более 800 страниц, инекоторое выделенное высокоуровневое объяснение сервис-ориентированной архитектуры шаблон проектирования в Delphi.Он интегрирован с клиент-серверным ORM, поэтому у вас под рукой есть все необходимые низкоуровневые инструменты для создания правильного доменного приложения в Delphi и других технологий.

...