WCF и не только.

Автор Тема: WCF и не только.  (Прочитано 9221 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
WCF и не только.
« : 21-04-2016, 13:53:23 »
Маленький ликбез по теме WCF

Тематика написания сервисов и их клиентов для программистов, пишущих под AutoCAD может быть интересна, на мой взгляд в следующих случаях:

1. Взаимодействие любых сторонних приложений (в т.ч. и самого AutoCAD) с AutoCAD (возможно др. версии) через сервис для выполнения каких-то пакетных операций. Для этого лучше использовать accoreconsole.exe, который может находиться, как вариант, на удалённом компьютере (в т.ч. в Интернете). Т.е. клиент обращается к сервису, хостящемуся в IIS или WAS и тот запускает очередной экземпляр accoreconsole.exe, в котором, в свою очередь хостится др. сервис. Первый сервис по отношению ко второму является клиентом и перенаправляет запросы от исходного клиента к конечному сервису. По завершению сеанса процесс так же завершается. Параллельно может выполняться множество процессов accoreconsole.exe, с которыми работают разные клиенты. Так можно существенно сэкономить количество лицензий AutoCAD, купив всего одну более новую версию (если будет нужно). :) Конечно это относится для случаев программной обработки (или генерации) чертежей. Кроме того, версию AutoCAD на удалённой машине можно менять прозрачно для клиента. В отличие от использования скриптов, аля accoreconsole.exe /s srript.scr обозначенный мною способ взаимодействия с AutoCAD является интерактивным хотя, безусловно, при желании в ряде случаев его можно использовать и по принципу скриптов (отработал и автоматом закрылся).

2. Взаимодействие управляемых расширений AutoCAD с другими (любыми) сервисами, размещёнными на удалённом компьютере или в Интернете. Это может быть полезным например когда следует выполнить какие-то сложные расчёты, требующие существенных ресурсов системы. Т.е. можно переложить эту задачу на др. компьютер или даже разбить её на части и отправить на исполнение на разные компьютеры. Кроме того, этим можно пользоваться для предоставления общих ресурсов (в т.ч. их обновлённых версий): шрифты, шаблоны, общие настройки AutoCAD а так же те, которые хранятся в DWG файлов - всё это через сервисы можно обновлять на локальном клиенте. Через сервисы можно организовать и свой механизм модулей нормоконтроля взамен тому, который по умолчанию присутствует в AutoCAD, имеет ряд досадных недостатков и довольно неудобен в использовании... Кроме того, обновления удалённого сервиса влияет на работу сразу всех клиентов.

3. Свой AppStore и механизм обновления плагинов.

Некоторые компании имеют филиалы, находящиеся в разных городах страны (или даже в разных странах). В виду этого использование служб, предоставляющих доступ на работу с ними через Интернет всем сотрудникам филиалов может оказаться весьма удобным.
« Последнее редактирование: 21-04-2016, 20:10:05 от Андрей Бушман »

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Re: WCF и не только.
« Ответ #1 : 22-04-2016, 19:27:25 »
Off-Topic: показать
По второму пункту - ихмо - все перечисленное + еще и сами исполняемые программные модули (обновления и "расширители отображения" - overrul'ьки) хранятся в единой БД - к которой так-же подключаются из разных филиалов (районов города) через VPN работая в "своем" автокаде - через которую так-же проходит и все "общение" - по моей практике этот метод гораздо надежней (и меньше велосипедов в виде своих сервисов) + готовые сервисы БД по резервному копированию, предоставлению и логгированию доступа.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: WCF и не только.
« Ответ #2 : 22-04-2016, 20:17:02 »
по моей практике этот метод гораздо надежней (и меньше велосипедов в виде своих сервисов)
Слово "гораздо" создаёт впечатление, что ты помимо VPN реально пробовал использовать сервисы. Пробовал? В чём выражается большая надёжность?

Кто хочет, тот может строить взаимодейтсвие на основе VPN. Я отдаю предпочтение SOA.

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Re: WCF и не только.
« Ответ #3 : 22-04-2016, 23:18:47 »
что ты помимо VPN реально пробовал использовать сервисы.
Я не знаю как у тебя получилось привязать написанное мною к VPN - я про "гораздо надежней" говорил об обмене данными через стандартные СУБД, а не через "доморощенные" сервисы, которые в большинстве своем реализуют готовый функционал. VPN это по сути "каприз" админов которые по понятным соображениям не хотят открывать прямой доступ к  БД (хоть там и по умолчанию так-же стоит шифрованное соединение). VPN в моем случае используется только как "средство доступа", аналогию с SOA в данном случае я не понял. Зачем писать вручную, то что уже прекрасно сделано. Да есть вещи которые реализованы из коробки не на 5 - те-же уведомления (Dependency). Но используя "коробочные" интерфейсы - интеграция с каким-нибудь 1С  (или иным "добром") гораздо проще - чем писать еще службу конвертируемую под нее.
Написать свой интерфейс качественно обеспечивающий откат по транзакциям, регулируемый доступ и пр. - это задача не на один год.

з.ы. Минусом сей технологии в том, что со временем БД становится "сердцем" всей системы - и требует очень качественного "сбережения" и хостинга.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: WCF и не только.
« Ответ #4 : 22-04-2016, 23:30:35 »
Написать свой интерфейс качественно обеспечивающий откат по транзакциям, регулируемый доступ и пр. - это задача не на один год.
Это если не на WCF. WCF берёт на себя многое из того, что не относится к уровню бизнес-логики (в т.ч. и транзакции). Реализация по умолчанию подходит для большинства случаев. При необходимости в предлагаемое по умолчанию поведение можно вносить детализированные изменения.
Цитировать
через стандартные СУБД, а не через "доморощенные" сервисы, которые в большинстве своем реализуют готовый функционал
Сервисы и СУБД - это четыре совершенно разных человека и у них разные задачи. Сервис в процессе своей работы может взаимодействовать с данными, хранящимися в СУБД. Я не ратую за "реализацию готового функционала" (не понимаю, что ты под этим подразумевал). "Доморощенные сервисы" имеет смысл создавать к месту. Тебя же не смущает тот факт, что по сути ты пишешь "доморощенный код"? Так а чем "доморощенные сервисы" отличаются в этом отношении?

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Re: WCF и не только.
« Ответ #5 : 22-04-2016, 23:58:20 »
не понимаю, что ты под этим подразумевал
Так я и пишу - гибкую настройку прав доступа (с администрированием), 100% обеспеченную транзакционную целостность с заданным уровнем блокировок. И потом - даже если все это задавшись целью написать - "администратора" всего этого хозяйства кто будет учить (под известные СУБД их "валом" на hh.ru). Рано или поздно эти требования появляются в любом крупном многопользовательском проекте (я текущий достаточно крупный проект, который на данный момент продаем "за дорого" в другую крупную организацию, тоже начинал с "интерфейса" через XML файлы). Сейчас вся интеграция по данным с информационной системой заказчика представляла из себя выдачу админам (толковые ребята попались - надо отметить) структуры необходимых таблиц СУБД - как-бы это выглядело если все было построено на "своих" сервисах (справедливости ради - так гладко только с данными - что касается второй "большой" части - управления ЧПУ - там такого рода стандарты есть только в зародыше - и пока каждый производитель, кто на что горазд (даже и внутри одного производителя) - по сути приходится не только переписывать функции постобработки, но иногда и менять внутреннею "логистику" производства и создавать дополнительные пользовательские интерфейсы).

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: WCF и не только.
« Ответ #6 : 23-04-2016, 00:21:04 »
Я не понимаю о чём ты пишешь. Что касается административных настроек сервисов, то определён достаточно удобный, штатный способ выполнения этого через конфигурационные файлы. Те, кто имеет опыт конфигурирования приложений или сайтов через app.config или web.config, без особого труда смогут конфигурировать и сервисы.

Не так страшен чёрт, как его малюют.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: WCF и не только.
« Ответ #7 : 23-04-2016, 00:54:36 »
Вы увлеклись оффтопом. Тему разделил и перенес.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение