Первый кейс – КД2 в SQL
Первый кейс – обмен с помощью xml.
Суть этого кейса: туристические компании часто имеют сайты, где можно заказать билеты, подобрать тур, поездку или экскурсию. В начале карьеры я работал в такой туристической компании, и они хотели интегрировать свой сайт с самописной системой на 1С.
Тогда мне казалось, что требования меняются очень часто, поэтому я пошел по пути разработки конструктора. Чтобы сделать такой конструктор, я немного изменил «Конвертацию данных 2»:
-
Сделал так, чтобы источником или приемником могла быть не только база данных на 1С, но и некоторые SQL-базы данных в качестве объектов.
-
Добавил возможность выбора объекта «Таблица SQL».
С помощью измененной «Конвертации данных 2» настроил правила обмена между 1С и SQL-базой данных, которая используется сайтом.
И написал на С# веб-сервис, который получает данные от 1С и, опираясь на правила КД2, раскладывает эти данные в таблицу SQL.
Работа была интересной, мне было приятно этим заниматься. В этом решении были позитивные стороны:
-
изменения можно было вносить быстро;
-
с помощью КД2 я легко добавлял реквизиты, перенастраивал обработчики;
-
и в 1С это было легко отлаживать.
Но негативных сторон было больше:
-
получилось решение с высокой стоимостью владения, потому что исправлять сервис на C# – большая работа;
-
сложная отладка на стороне веб;
-
все это работало не очень быстро, потому что структура правил КД2 избыточная, а при каждом обращении к сервису они перечитывались;
-
получилось громоздкое решение, которое мы запускали очень долго: два месяца мы только его отлаживали.
Так я больше делать не буду, но кейс был интересным. Для себя я сделал такой вывод, что «Конвертацию данных» лучше не трогать: как ее поставляет вендор, так мы ее и используем.
Итак, что такое «интеграция API»?
Интеграция API – это соединение между двумя или более приложениями через их API (интерфейсы прикладного программирования), которые позволяют системам обмениваться источниками данных. Интеграция API позволяет управлять процессами во многих секторах и уровнях организации, обеспечивая синхронизацию данных, повышая производительность и увеличивая прибыль.
API – это интерфейс, который является неотъемлемой частью практически всего в цифровом мире. Независимо от бизнеса и размера предприятия, API-интерфейсы обеспечивают бесперебойную работу и производительность приложений и веб-систем. Узнайте подробней о том, , как работают и почему важны для бизнеса.
Однако существует дополнительное требование для достижения оптимальных и автоматизированных бизнес-процессов и процедур, которые взаимодействуют и обмениваются важными данными. Вот тут-то и появляется интеграция API.
Сравнение платформ для запуска онлайн-курсов
Мы собрали ключевые параметры платформ в сравнительную таблицу.
Платформа | Стоимость | Конструктор лендингов | Интеграции | Мобильное приложение |
iSpring | 3,66 долларов в месяц за 300 участников | + | + | + |
Emdesell | от 1000 рублей в месяц | — | + | — |
Moodle LMS | Бесплатно | + | + | + |
Stepik | от 2900 рублей в месяц | — | + | + |
Core | от 990 рублей в месяц | — | + | + |
GoSkills | 14,50 долларов в месяц за каждого сотрудника | — | + | — |
Trainual | от 49 долларов в месяц | — | + | + |
Ruzuku | 74,75 долларов в месяц | + | + | — |
TeachBase | от 97500 рублей в год | — | + | + |
Teachable | 99 долларов в месяц | + | + | — |
ZenClass | 2160 рублей в месяц | — | + | — |
Эквио | 1490 за одного пользователя | — | + | + |
We.Study | 5995 рублей в месяц | + | + | + |
Thinkific | 39 долларов в месяц | + | + | — |
Kajabi | 119 долларов в месяц | + | + | + |
Hello world
- Качаем дистрибутив ServiceMix, распаковываем и запускаем servicemix.sh (bat).
-
Создаем и настраиваем новый maven проект.
В src/main/resources нужно создать каталог META-INF, в котором создать подкаталог spring.
Т.к. нам нужно собрать бандл — правим pom.xml (добавляем инструкции packaging и build):Каких-либо maven зависимостей добавлять не нужно.
-
Настраиваем Camel контекст и роут.
В каталоге spring нужно создать файл camel-context.xml (загрузчик автоматически ищет файл с описанием Camel контекста в META-INF/spring и запускает роуты). В файл camel-context.xml поместим следующее содержимое (по тексту даны комментарии):Для того чтобы наш роут выполнил свою задачу (записал в лог текст “Hello world”), нужно передать ему на вход сообщение. В нашем случае эту задачу решает таймер <from uri=«timer://startTimer?repeatCount=1»/>, который, следуя инструкции repeatCount=1, один раз отправит на вход роута сообщение. Т.к. таймер посылает на вход роута пустое сообщение, нам нужно его чем-то заполнить – помещаем в тело сообщения текст “Hello world” <setBody>. В конце роута выводим содержимое тела сообщения в лог <log message=»${body}»>.
- Собираем наш проект: mvn package
- Деплоим собранный бандл.
Одним из способов задеплоить бандл в ServiceMix является копирование jar файла в каталог deploy. Копируем собранный jar в каталог ServiceMix/deploy.
ServiceMix/data/log/servicemix.logHelloWorldRoute | 43 — org.apache.camel.camel-core — 2.16.3 | Hello world
Как работает RPC на стороне сервиса?
Давайте рассмотрим гипотетический сервис, который отправляет SMS, получая на вход номер телефона абонента и текст сообщения. Как наладить работу такого сервиса в рамках подсистемы YRMQ?
- Во-первых, на стороне сервиса вы точно так же пишете прикладной обработчик, который как-то отправляет SMS. Это ваш прикладной код, который пишет ваш программист.
-
А в переопределяемом модуле подсистемы YRMQ добавляете обработчик вызова (ДобавитьОбработчикВызова()), где указываете, что:
при вызове вот этого асинхронного сервиса должен быть запущен вот этот код.
- И подсистема будет это делать.
На слайде приведен пример этого метода. Он получает параметры и кладет их в некий волшебный черный ящик, который уже взаимодействует с SMS-провайдером.
Как выбрать платформу для размещения онлайн-курсов
В этом разделе узнаем, на какие критерии опираться, чтобы подобрать платформу для онлайн-курса.
Три важных критерия на начальном этапе отбора:
- Потребности вашего бизнеса — планируемый бюджет, варианты монетизации, количество сотрудников, которым нужен доступ к платформе, и тому подобное.
- Отзывы клиентов и обзоры, которые помогут понять особенности и принять решение.
- Бесплатный функционал или демо-версия. Это поможет изучить все возможности, протестировать систему, изучить технические нюансы и сложность настройки.
Ниже мы собрали ряд признаков, на которые важно обратить внимание при детальном разборе возможностей платформы
Мобильное приложение
Проверьте, чтобы платформа поддерживала мобильную версию. Это поможет студенту заниматься без ограничений и с любого устройства.
Учебные программы
Разнообразие обучающих материалов — например, курсы, вебинары, тренинги и марафоны. Также у вас должна быть возможность работы со всеми видами контента: текст, видео, инфографика, изображения, презентации и файлы.
Управление и функционал
После того, как вы протестируете систему изнутри, проверьте, как ей будет пользоваться студент:
- Легко ли ему зарегистрироваться?
- Понятно ли, как начать обучение и включить урок?
- Как быстро он смог найти домашнее задание и перейти к его выполнению?
- Нужна ли система мотивации — если да, то в каком виде?
- Все ли источники информации легко найти на платформе — например, глоссарий, полезные ссылки, презентации?
Гибкость системы
Узнайте заранее, можно ли добавить в систему дополнительный функционал или решить нестандартную задачу, с которой студенты могут столкнуться в ходе обучения. А также — как скоро разработчики платформы смогут внедрить новую возможность.
Обратная связь
На платформе должен быть чат или возможность обмена сообщениями для решения вопросов между студентом и преподавателем
Также важно, чтобы у учащихся была форма обратной связи, которая помогает собирать отзывы, чтобы на их основе улучшать курс
Статистика
Изучите систему анализа данных на платформе — учтены ли все метрики, которые вы планируете отслеживать, и есть ли автоматическое построение отчетности.
Стоимость и тарифные планы
Ознакомьтесь с тарифными планами и стоимостью дополнительного функционала. Также уточните, во сколько вам обойдется подключение каждого сотрудника.
Оплата
Узнайте, как на платформе можно принимать платежи и с какими сервисами есть интеграция. Уточните, можно ли настроить оплату по частям или добавить рассрочку.
Геймификация
Изучите возможности платформы — можно ли добавить в обучение элементы игры. Например, составление рейтингов, вручение подарков или проведение розыгрышей.
Какова роль системного интегратора?
В широком смысле в мире ИТ системный интегратор (SI) рассматривается как компания, специализирующаяся на внедрении, планировании, координации, составлении графиков, тестировании, улучшении и иногда поддержке ИТ-систем. Хорошими примерами системных интеграторов являются, например, Deloitte, IBM, Accenture, TCS и т.д. Они реализуют крупные ИТ-проекты (например, проекты ERP), пытаясь управлять такими проектами и многочисленными вовлеченными поставщиками. Однако с точки зрения системной интеграции роль системного интегратора сужается до обеспечения интеграции данных между различными существующими системами конечного потребителя, определенными в объеме проекта. Это может означать все, что угодно, от простых внутренних двухточечных соединений до очень сложных интеграций «многие ко многим» как внутри компании, так и с третьими сторонами.
Роль системных интеграторов в этом уравнении обычно заключается в разработке, внедрении и тестировании интеграционного решения, но роль системного интегратора может также включать постоянное управление решениями, а также связь с третьими сторонами для установления связи с ними
Однако наиболее важно то, что системный интегратор вносит свой вклад в интеграцию, которой заказчик не хватает внутри компании (или имеет под рукой нехватку доступных внутренних ресурсов). CTI признан одним из лучших системных интеграторов России рейтинга CRN/RE
Что такое система управления обучением
Система управления обучением, или LMS (Learning Management System) — это софт, который позволяет создавать, размещать и продвигать учебные программы любой сложности. Вы можете организовать очное, дистанционное, индивидуальное или групповое занятие и использовать для этого различные инструменты: чаты, трансляции, форумы и рассылки.
Примечание. В России и СНГ часто фигурирует понятие «система дистанционного обучения, или СДО». Данный подход подразумевает только удаленное взаимодействие, а LMS является смешанным типом обучения, который подходит как для онлайн, так и для офлайн занятий.
С помощью LMS можно автоматизировать следующие процессы:
- Адаптация новичков в компании.
- Обучение сотрудников, клиентов или партнеров.
- Проведение аттестаций.
- Создание единой базы знаний.
- Анализ успеваемости и вовлеченности участников.
- Рассылка уведомлений и автоматическая проверка домашних заданий.
Готовая платформа позволяет создать продукт с помощью конструктора, в котором вы выбираете шаблон, добавляете фирменный стиль и загружаете всю нужную информацию: уроки, вебинары, опросники и так далее.
А с помощью интеграций с другими сервисами у вас будет возможность автоматизировать процесс оплаты, собрать данные клиентов в единую базу CRM и развивать курс через инструменты маркетинга.
Методы системной интеграции
Типичные методы системной интеграции делятся на следующие категории:
Двухточечная интеграция
Можно утверждать, что интеграция точка-точка (или соединение точка-точка) не является системной интеграцией как таковой, поскольку задействованы только два системных компонента. Однако, хотя ему не хватает сложности «настоящей» системной интеграции, он все же соединяет систему с другой системой, чтобы они могли работать вместе. Обычно такая двухточечная интеграция выполняет только одну функцию и не требует сложной бизнес-логики. Многие облачные приложения предлагают такие типы двухточечной интеграции в виде готовых готовых модулей интеграции для наиболее распространенных ИТ-систем.
Вертикальная интеграция
В методе вертикальной интеграции компоненты системы (подсистемы) объединяются путем создания функциональных «бункеров», начиная с основной нижней функции и снизу вверх. Обычно это относительно простой и легкий метод, который включает только ограниченное количество систем (более двух), но, с другой стороны, этот метод интеграции является жестким и трудным для управления в долгосрочной перспективе, так как любое новое функционально потребует своего собственный функциональный «силос». Тем не менее, этот метод можно эффективно использовать для создания простых интеграций, которые должны адресовать только одну функцию.
Звездная интеграция
Звездная интеграция означает, что система, в которой каждая подсистема связана с другими подсистемами, с помощью соединений точка-точка. Это обеспечивает большую функциональность, но по мере увеличения количества интегрированных систем количество интеграций также значительно увеличивается, и управление интеграциями становится очень требовательным. Например, для соединения десяти систем друг с другом с помощью этого метода потребуется 45 отдельных интеграций, и каждый раз, когда в одной системе происходит изменение, может потребоваться повторное выполнение девяти подключений. Иногда звездную интеграцию также называют «спагетти-интеграцией» по аналогии с «спагетти-кодом».
Горизонтальная интеграция
При горизонтальной интеграции отдельная подсистема используется в качестве общего уровня интерфейса между всеми подсистемами. Очень часто этот уровень называют Enterprise Service Bus (ESB). Этот метод позволяет каждой подсистеме иметь только один интерфейс для связи со всеми другими подсистемами, подключенными к общему уровню интерфейса (т. Е. С десятью системами есть только десять соединений). Преимущество этого метода также в том, что каждую подсистему можно изменить или даже заменить без необходимости переделывать интерфейсы любых других систем.
Интеграция с общим форматом данных
Интеграция различных ИТ-систем друг с другом обычно требует преобразования данных, исходящих из одной системы, в другой формат данных, используемый принимающей системой. Как и в случае со звездообразной интеграцией, если каждое преобразование необходимо выполнять для каждой системы, количество преобразований данных значительно возрастает и становится задачей, требующей значительного обслуживания. Чтобы преодолеть эту проблему, подход с использованием общего формата данных позволяет каждой системе выполнять только одно преобразование данных из собственного формата в общий (и наоборот). Таким образом, количество необходимых преобразований данных будет равно количеству подсистемы.
Перспектива low code разработки
Платформа OutSystems была создана в 2001 году и за последние 20 лет стала одним из лидеров среди технологий low code. OutSystems используют компании из различных отраслей по всему миру, в том числе такие гиганты, как Mercedes-Benz, Volkswagen, Honda, ING, AXA, Intel и Hewlett-Packard.
По словам создателей OutSystems, платформа завоевала популярность благодаря тому, что она ускоряет реализацию новых решений. По качеству такие решения не уступают приложениям, разработанным традиционным образом, — и даже сопоставимы по уровню сложности.
Одно из бесспорных преимуществ low code разработки — возможность сэкономить деньги и, что наиболее важно, время. Все благодаря упрощенному методу проектирования
Поскольку сложный код представлен в виде готовых графических элементов, для построения базы данных и логики приложения достаточно создать лишь подходящую блок-схему. А для этого не нужно знать языки программирования.
Создатели OutSystems глубоко прониклись этой идеей. Среда программирования платформы помогает разработчику на каждом этапе: от него требуются лишь указания, которые технология затем переводит на соответствующий язык программирования.
Таким образом, для создания таблиц, из которых состоит база данных, и их заполнения требуется лишь несколько щелчков мыши — это не намного сложнее, чем заполнить таблицу в Excel.
Возможности доработки выгрузки из 1С в Битрикс
В статье собраны некоторые полезные и интересные примеры доработок выгрузки из 1С на сайты на платформе Битрикс (Возможно, что-то подойдёт и для WordPress и других платформ, принимающих типовую выгрузку на сайт из 1С). Доработки рассмотрены без привязки к конкретным конфигурациям, примеры кода взяты в основном из доработок УТ 10 и 11. Некоторые доработки требуют изменений на стороне Битрикса, некоторые укладываются в типовой функционал.
Примеры взяты из личного опыта, возможно, описание где-то не полное, т.к. доработки делались в разное время. Если материал будет интересен или будут аналогичные актуальные задачи, буду стараться дополнять статью более подробным описанием и примерами.
Преимущества размещения курса на специальной платформе
Дистанционное или удаленное обучение может проходить в любом режиме: кто-то предпочитает использовать закрытые группы в соцсетях или чаты в мессенджерах, в то время как другие настраивают специальные платформы и не испытывают в дальнейшем сложностей с технической частью онлайн-образования. В этом разделе мы рассмотрим преимущества готового софта.
Универсальность
Сервис адаптирован под все устройства и позволяет заниматься не только с ПК, но и со смартфона. Также если у участника в какой-то момент нет доступа к интернету — он сможет запустить урок и без подключения к сети.
Автоматизация
Платформа помогает автоматизировать рутинные процессы: назначить занятия для специалистов в корпоративном обучении или помочь выбрать подходящие уроки при покупке тематических курсов, проверить ответы на тест и проанализировать успеваемость.
Экономия
Готовые площадки позволяют снизить затраты на подготовку к курсу — вы заранее знаете, сколько нужно заплатить за автоматизацию процесса. Также это помогает вам оптимизировать свой график и потратить время на другие задачи: подготовка и загрузка новых уроков, добавление тестов или улучшение рассылки.
Быстрый запуск
Вам не нужно обладать техническими знаниями, чтобы настроить обучение. Достаточно зарегистрироваться в сервисе, разместить информацию в конструкторе и запустить курс.
Единая база знаний
Вы можете не только настроить сам курс, но и добавить глоссарий с основными терминами, создать инструкцию или сопроводительный документ к уроку — например, презентацию или памятку.
Интерактивность
На платформе вы можете использовать видеоролики и интерактивные тесты, проводить лекции и опросы, задавать домашние задания, выставлять оценки за успешные работы студентов, подключать общий чат и многое другое.
Аналитика обучения
Система автоматически собирает данные и показывает успеваемость и вовлеченность участников, общие результаты по курсу, а также оценивает сложность уроков, чтобы вы могли скорректировать программу.
Преимущества интеграции на основе PSIM
Неограниченные возможности интеграции
Ключевым различием между интеграцией на основе PSIM и другими формами интеграции физической безопасности является способность программной платформы подключать системы на уровне данных, в отличие от других формам интеграции, которые взаимодействуют с ограниченным количеством продуктов.
Бюджетная модернизация систем
PSIM позволяет использовать открытые технологии, совместимые с большим количеством производителей, что обеспечивает больше возможностей для расширения и может снизить затраты на внедрение за счет более широкого использования существующего оборудования.
Централизованное управление информацией
Решения PSIM изначально развертываются для централизации информации от комплексов безопасности в одном или нескольких диспетчерских (операторских) центров, что позволяет быстро реагировать на события, обладая полной информацией.
Стэк технологий
RabbitMQ
- Сообщения, которые хранятся в очереди, персистентные. Т.е. если система какое-то время недоступна, то сообщения никуда не пропадут и будут обработаны после того, как система поднимется. Перезапуск самого RabbitMQ также не приводит к потере сообщений.
- Очередь служит буфером, который система может обрабатывать в комфортном режиме, избегая пиковых нагрузок. Понятно, что для запросов, выполнения которых ждет в интерфейсе пользователь, это не подойдет. В этом случае нужен незамедлительный ответ. А вот для разного рода асинхронных взаимодействий подходит очень хорошо.
- Асинхронный режим взаимодействия. При этом также поддерживаются и синхронные вызовы.
Apache ServiceMix
- Собственно сам Karaf контейнер, в котором работают бандлы и который позволяет ими управлять: устанавливать / удалять / останавливать / запускать, просматривать логи, видеть зависимости компонентов и т.д.
- Широкий набор бандлов, которые выполняют классические интеграционные функции: валидация, различные трансформации (например, из JSON в XML, трансформации при помощи XSLT и т.д.), обогащение, роутинг, split and join, мониторинг, исполнение интеграционных процессов и т.д.
- Широкий набор различных адаптеров: файловые адаптеры, адаптеры к web и rest сервисам, JMS, RabbitMQ, Kafka и т.д. Полный список адаптеров можно посмотреть на сайте Camel.
Редакции (Free, Standard и Enterprise)
OutSystems предлагает четыре уровня лицензии для доступа к платформе: бесплатный, стандартный и корпоративный. Выбор зависит от количества человек в команде и того, для каких целей она будет использоваться. Рассмотрим каждую из них в отдельности.
Free
- Количество конечных пользователей: 100.
- Стоимость: бесплатно.
Этот уровень открывает доступ к 2 Гб памяти в общедоступном облаке OutSystems — этого хватает для простых приложений. Он подойдет для небольших компаний и разработчиков, которые хотят ознакомиться с технологией и понять, как она работает.
Standard
- Количество конечных пользователей: не ограничено.
- Стоимость: от $1,5 тысяч в месяц.
Стандартная версия предлагает ряд дополнительных преимуществ: возможность использовать технологию локально или в частном облаке и доступ к более безопасному типу облака OutSystems. За дополнительную плату также можно увеличить число доступных сред.
Enterprise
- Количество конечных пользователей: не ограничено.
- Стоимость: индивидуальна для каждого клиента.
Основное отличие от более дешевых вариантов — количество доступных сред (от пяти и более) и конвейеров (от двух и более).
Стоит отметить, что при наличии любой платной версии OutSystems можно использовать службу поддержки клиентов. Однако ее возможности зависят от типа подписки: например, «корпоративные» клиенты могут связаться с поставщиком в любое время (24/7). На все подписки также распространяется гарантия работоспособности на 99,5%.