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

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

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

Автор:

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

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

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

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

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

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



На сегодняшний день на рынке существует множество 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, баз данных, считывание метаданных.


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

Интеграция информационных систем на основе стандартов XML...

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

Сравнение производительности ORM-библиотек как критерия...

Хранилище типа ключ-значение для примитивных типов данных, которое представляет собой обертку над XML файлом

Основные термины (генерируются автоматически): CQRS, SQL, база данных, запрос, ORM, архитектура, баз данных, время отдачи данных, данные.

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

Основные термины (генерируются автоматически): SQL, данные, внешняя система, баз данных, запрос, тендер, центральный узел, обработка данных, препарат.

SQL, BSD, система, баз данных, высокая стоимость, пользовательский тип данных, сервер, СУБД, таблица.

Система ведения метаданных контактов в социальной сети

Рис. 3. Интеграция веб-сервиса метаданных в пользовательскую информационную систему.

Для удобства пользования программы, запросы к базе метаданных сгруппированы по

Подпроект Manzana.Loyalty.Service.DB является проектом для объектов базы данных SQL.

Метод автоматизированного анализа электронных документов...

Процесс анализа XML-документов различных типов и сохранения данных в базу данных изображен на рис. 1.

Кроме этого в описании каждой таблицы могут присутствовать блоки с SQL запросами, которые необходимо выполнить перед или после вставки в таблицу новых...

Организация доступа к реляционной базе данных на основе...

Библиотека не только решает задачу связи классов Java с таблицами базы данныхтипов данных Java с типами данных SQL), но и также

По заданному XML-описанию сущностей и связей NHibernate автоматически создает SQL-запросы для загрузки и сохранения объектов [9].

Технология ADO и средства доступа к реляционным базам данных

ADO.NET поддерживает два типа источников данныхSQL Managed Provider и ADO Managed Provider.

Он может использоваться с несколькими различными источниками данных, XML-данными или для

Обзор методов обнаружения аномалий в SQL-запросах к базам...

Современные подходы к разработке мобильных приложений для...

А также добавить App Permissions в AndroidManifest.xml

Однако в любую секунду может быть получена свежая информация из базы данных через вызов метода FillDataSet. Асинхронное выполнение SQL-запросов на языке... Ключевые слова: PHP, SQL, cURL, многопоточная...

Оптимизация взаимодействия web-приложения с базой данных...

b. Трансляционная схема содержит правило обновления или вставки данных - программа производит модификацию базы данных в соответствии с правилами

Библиотека тегов ESQL (Extended SQL) обрабатывает SQL запросы и преобразует их в XML-данные.

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

Интеграция информационных систем на основе стандартов XML...

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

Сравнение производительности ORM-библиотек как критерия...

Хранилище типа ключ-значение для примитивных типов данных, которое представляет собой обертку над XML файлом

Основные термины (генерируются автоматически): CQRS, SQL, база данных, запрос, ORM, архитектура, баз данных, время отдачи данных, данные.

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

Основные термины (генерируются автоматически): SQL, данные, внешняя система, баз данных, запрос, тендер, центральный узел, обработка данных, препарат.

SQL, BSD, система, баз данных, высокая стоимость, пользовательский тип данных, сервер, СУБД, таблица.

Система ведения метаданных контактов в социальной сети

Рис. 3. Интеграция веб-сервиса метаданных в пользовательскую информационную систему.

Для удобства пользования программы, запросы к базе метаданных сгруппированы по

Подпроект Manzana.Loyalty.Service.DB является проектом для объектов базы данных SQL.

Метод автоматизированного анализа электронных документов...

Процесс анализа XML-документов различных типов и сохранения данных в базу данных изображен на рис. 1.

Кроме этого в описании каждой таблицы могут присутствовать блоки с SQL запросами, которые необходимо выполнить перед или после вставки в таблицу новых...

Организация доступа к реляционной базе данных на основе...

Библиотека не только решает задачу связи классов Java с таблицами базы данныхтипов данных Java с типами данных SQL), но и также

По заданному XML-описанию сущностей и связей NHibernate автоматически создает SQL-запросы для загрузки и сохранения объектов [9].

Технология ADO и средства доступа к реляционным базам данных

ADO.NET поддерживает два типа источников данныхSQL Managed Provider и ADO Managed Provider.

Он может использоваться с несколькими различными источниками данных, XML-данными или для

Обзор методов обнаружения аномалий в SQL-запросах к базам...

Современные подходы к разработке мобильных приложений для...

А также добавить App Permissions в AndroidManifest.xml

Однако в любую секунду может быть получена свежая информация из базы данных через вызов метода FillDataSet. Асинхронное выполнение SQL-запросов на языке... Ключевые слова: PHP, SQL, cURL, многопоточная...

Оптимизация взаимодействия web-приложения с базой данных...

b. Трансляционная схема содержит правило обновления или вставки данных - программа производит модификацию базы данных в соответствии с правилами

Библиотека тегов ESQL (Extended SQL) обрабатывает SQL запросы и преобразует их в XML-данные.

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