Алгоритмы веб-сервиса обработки сборок метаданных для CRM-системы с открытым исходным кодом | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Технические науки

Опубликовано в Молодой учёный №20 (206) май 2018 г.

Дата публикации: 21.05.2018

Статья просмотрена: 69 раз

Библиографическое описание:

Василевский, И. А. Алгоритмы веб-сервиса обработки сборок метаданных для CRM-системы с открытым исходным кодом / И. А. Василевский. — Текст : непосредственный // Молодой ученый. — 2018. — № 20 (206). — С. 125-127. — URL: https://moluch.ru/archive/206/50518/ (дата обращения: 17.12.2024).



На сегодняшний день на рынке существует множество CRM-решений. Но в настоящее время возникла проблема при продаже компанией своего решения, основанного на Microsoft Dynamics CRM, так как существуют ощутимые лицензионные отчисления компании Microsoft за право пользования CRM. Этот факт вытекает в низкую прибыль для компании Manzana Group. Поэтому было решено разработать веб-сервис обработки сборок метаданных для новой CRM системы с открытым исходным кодом компании Manzana Group. У данного веб-сервиса будут три основных бизнес-процесса:

1) Создание сущностей;

2) Обновление сущностей;

3) Удаление сущностей.

Сущность — объект CRM-системы, который хранит различную информацию [1].

Разрабатываемый веб-сервис будет реализован на технологии WCF (Windows Communication Foundation). Данная технология создана для построения распределенных приложений и межпроцессорного взаимодействия [2].

В общем проекте разрабатываемого веб-сервиса содержится 4 подпроекта:

‒ Manzana.Loyalty.Service;

‒ Manzana.Loyalty.Service.Core;

‒ Manzala.Loyalty.Service.DB;

‒ Manzana.Loyalty.Service.SDK.

Подпроект Manzana.Loyalty.Service является WCF-сервисом, на который пользователи будут отправлять запросы в виде XML. По сути, данный подпроект является связующим звеном между пользователем и ядром разработанной программой. Как только приходит запрос на сервис, вызываются операции ядра для метода, указанного в запросе. Запрос обрабатывается, и на сервис приходит ответ, который в итоге и транслируется конечному пользователю.

Подпроект Manzana.Loyalty.Service.Core является ядром всей программы. Все основные операции происходят именно в этом подпроекте. Отправленный запрос из сервиса в ядро валидируется, исполняет конкретные для метода операции и возвращает ответ в сервис.

Подпроект Manzana.Loyalty.Service.DB является проектом для объектов базы данных SQL. В нем хранятся все таблицы, хранимые процедуры, схемы. Поэтому если происходят какие-то изменения в SQL, то они должны быть отражены именно в этом подпроекте.

Подпроект Manzana.Loyalty.Service.SDK является набором средств разработки (software development kit), который позволяет специалистам из других компаний использовать разработанный веб-сервис. В данном подпроекте вся логика скрыта от глаз других разработчиков, кто будет им пользоваться. Открыты будут только публичные методы, которые можно вызывать. Это обусловлено, как безопасностью интеллектуальной собственности, так и чтобы облегчить работу с сервисом сторонним разработчикам, которым не нужно знать все внутренности сервиса, а просто необходим результат.

Алгоритм программы разрабатывался вместе с ведущими разработчиками и архитекторами компании. При первом обращении к веб-сервису происходит два действия:

1) Считывание настроек из файла конфигураций;

2) Считывание метаданных из SQL.

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

При первом обращении к сервису, происходит считывание метаданных из SQL, и заполняется пользовательская коллекция для удобного оперирования над объектом:

Рис. 1. Пользовательская коллекция

После создания пользовательской коллекции происходит проверка прав пользователя, от которого пришел запрос. Сначала проверяется наличие пользователя с данным доменом и логином в таблице Users, если есть продолжается проверка, иначе — прекращение обработки запроса.

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

После того как были занесены данные из SQL в пользовательскую коллекцию, из запроса вытягивается название сущности. Далее в пользовательской коллекции осуществляется поиск Id сущности, у которой название совпадает с названием, переданным в запросе. После этого пользовательская коллекция сортируется по EntityId, чтобы получить актуальные данные только для этой сущности.

Далее происходит валидирование запроса, пришедшего на веб-сервис:

‒ Происходит проверка атрибутов, если атрибуты, указанные в запросе, присутствуют в атрибутах метаданных — то проверка пройдена, если нет — то возвращается ошибка;

‒ Происходит проверка по типу вставки пришедшей сущности. Методами CRM или же через SQL;

‒ Если тип вставки CRM, то происходят операции с сущностью с помощью методов CRM;

‒ Если тип вставки SQL, то генерируется динамический SQL запрос на операцию с сущностью и отправляется в базу данных.

Литература:

  1. Дмитрий Лобода — Microsoft Dynamics CRM 2016 Шаг за шагом, 2016–177 с
  2. Что такое Windows Communication Foundation [Электронный ресурс] — URL: https://docs.microsoft.com/ru-ru/dotnet/framework/wcf/whats-wcf (дата обращения 12.05.2018)
Основные термины (генерируются автоматически): SQL, CRM, пользовательская коллекция, запрос, проверка, тип вставки, WCF, XML, баз данных, считывание метаданных.


Похожие статьи

Открытая реляционная модель данных технологических возможностей промышленных предприятий

Организация доступа к реляционной базе данных на основе технологии ORM с использованием паттерна Active Record

Особенности предобработки данных для применения машинного обучения

Сравнительный анализ каскадной и V-образной методологий разработки программного обеспечения

Общее определение программной среды используемой для организации учебного процесса на основе Web- технологий

Автоматизированная разработка базы данных Oracle с помощью CA ERWin Data Modeler

Статический анализ исходного кода в обучении и разработке программного обеспечения

Функция автодополнения в поисковых системах как инструмент для филологического исследования на примере запросов на английском и русском языках

Составные модули и алгоритмы базовых функций контроллера NAND flash-памяти

Разработка компонента сервера данных на основе стандарта OPC UA для подсистемы электроавтоматики

Похожие статьи

Открытая реляционная модель данных технологических возможностей промышленных предприятий

Организация доступа к реляционной базе данных на основе технологии ORM с использованием паттерна Active Record

Особенности предобработки данных для применения машинного обучения

Сравнительный анализ каскадной и V-образной методологий разработки программного обеспечения

Общее определение программной среды используемой для организации учебного процесса на основе Web- технологий

Автоматизированная разработка базы данных Oracle с помощью CA ERWin Data Modeler

Статический анализ исходного кода в обучении и разработке программного обеспечения

Функция автодополнения в поисковых системах как инструмент для филологического исследования на примере запросов на английском и русском языках

Составные модули и алгоритмы базовых функций контроллера NAND flash-памяти

Разработка компонента сервера данных на основе стандарта OPC UA для подсистемы электроавтоматики

Задать вопрос