Spread the love

Импортозамещение в сети

Хочу рассказать о проекте, в котором я участвовал с 2010 по 2014 г.

Это некий аналог Skype , но более приспособленный для видео-конференций и дистанционного обучения.

Моей задачей было участие в разработке общей архитектуры и написание back-end сервера.

На самом деле серверов было 3.

Основной сервер должен был хранить в БД списки пользователей, сообщения чата, пересланные файлы, биллинговую информацию (в системе изначально была предусмотрена монетизация трафика) и т.д.

Медиа-сервер отвечал за трансляцию аудио/видео потоков.

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

Теперь чуть подробнее. Ну, поскольку проект является коммерческим, и я давал «подписку о неразглашении», все секреты раскрывать не имею права… Расскажу о некоторых решениях, может и нестандартных, которые позволили реализовать проект. Ну и конечно, о моих любимых паттернах проектирования, которые были там применены (в продолжении давно начатого цикла).

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

Короткие сжатые запросы с пересылкой номера команды и упакованного массива аргументов гарантировали высокую степень защищенности. Были и другие решения для защиты от Ddos-атак, показавшие эффективность при тестировании…

Запись вебинара. Новый подход разработки компонентов FireMonkey в RAD Studio XE8. “Контрол – Модель – Презентация”

Читать на сайте автора.

Как обоблачиться с YandexDisk — 2.5 Протокольные компоненты, часть 1. TidHTTP и JSON

rouse

Данная статья является продолжением предыдущей§2.5. Протокольные компонентычасть 1. TidHTTP и JSON

Часть I. Теория
2.1 Подключение ЯД к Windows
2.2 Создание папки приложения
2.3 Indy и HTTPS
2.4 Скрипач как прокси
2.5

Читать на сайте автора.

База в облаке. Часть 3. Что предлагается.

1. Отказаться от RationalRose. Либо свой UML-редактор, либо существующий, но с доработками — возможностью редактирования поведения объектов. Например — WhiteStarUML (если есть исходные коды). Выигрыш во времени с доработкой существующего очевиден.


2. Хранение модели и БД перенести в облако. Для этого необходим собственный веб-сервер (написан уже на 80%).

Это позволит позиционировать платформу как «более продвинутую» CMS, но для создания не сайтов,  а информационных систем. Вот такой продукт, IMHO, будет продаваться :).

База в облаке. Часть 2. Что получилось.

   В период с 2004 по 2009 г. я очень плотно занимался этим проектом (рабочее название FastBase).

   Был написан деск-топный вариант. Использовались компоненты компании BoldSoft (компания была куплена корпорацией Borland), к сожалению, даже не нашел ссылки на ее сайт.

   Для разработки UML-модели применялся редактор RationalRose, для которого BoldSoft и разработала плагин. Основной особенностью компонента было то, что он позволял, во-первых, генерировать структуру БД, во-вторых, внести объекты UML-модели в объектное пространство приложения, и оперировать с ними как с классами Дельфи.

   Сначала немного о терминах:
 

База в облаке. Часть 1. Что хочется.

                  Новая парадигма проектирования приложений

   Большинство предлагаемых сред разработки приложений ориентировано на парадигму «форма приложения -> элемент управления -> свойства элемента управления –> объект модели». При этом элемент управления (окно ввода, сетка и т.п.) может быть привязан к объектам модели. Разработчик настраивает свойства элемента управления для достижения необходимой функциональности (представление объекта, события при его изменении, проверки введенной информации …). Как правило, бизнес-логика (свойства и поведение объектов модели) реализуется на сервере БД в виде триггеров и хранимых процедур, или в кодеприложения. При этом приложение часто состоит из множества форм с однотипными элементами управления, на которых приходится повторять рутинную процедуру их настройки. При изменении свойств объекта модели необходимо менять свойства всех элементов управления, связанных с объектом.
В результате «классический» способ разработки приложений и информационных систем имеет множество ограничений. При изменении бизнес-логикиили набора атрибутов объекта необходимо менять структуру БД (не потеряв при этом введенные данные) и кодпрограммы, свойства элементов управления (полей ввода/редактирования и т.д.), что приводит к необходимости многократно переписывать и отлаживать приложение. Такой подход затрудняет модификацию и развитие информационной системы.
Предлагается новая парадигма – «объект модели -> свойства объекта-> свойства элемента управления». Она является дальнейшим развитием технологии Model Driven Architecture (MDA) — (архитектура, управляемая моделью). От «классического» способа разработки данная парадигма отличается более высоким уровнем «абстракции» — во главу угла ставятся свойства объекта модели, а не элементов управления, связанных с объектом. Основное положение — модель приложения (описание структуры БД на языке UML) и поведениеобъектов (то есть бизнес-логика) отделеныот кода приложения.
На базе этой парадигмы планируется создать платформу разработки информационных систем
Что хочется получить:
  • Для разработки информационной системы достаточно спроектировать структуру БД на языке UML. 
  • Настройка свойств объектов, не входящих в спецификацию языка UML, производится в визуальном редакторе модели. 
  • Большинство стандартных операций должно быть уже встроено в платформу, для более детального описания — «мастера» (визарды), облегчающие работу с платформой. 
  • После описания свойств объектов модели приложение должно быть готово к работе.
Должен получится продукт не для программиста, а для конечного пользователя (конечно, достаточно продвинутого).
Все формы ввода/отображения объектов строятся динамическисогласно информации о свойствах и поведении объектов в модели — исполняющий модуль приложения не зависит от структуры БД и бизнес-логики (подобно тому, как Internet Explorer не зависит от html-страниц — и отображает ее независимо от содержащихся в ней данных).
Преимущества такой технологии:

Создание нативных представлений для iOS. TSpinBox и UIStepper. Часть 3

Продолжим рассмотрение нового подхода разработки (1 часть, 2 часть) и в этой статье рассмотрим использование нативных контролов на базе механизма презентаций для iOS. В качестве примера

Читать на сайте автора.

Чем меня порадовала ХЕ8

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

http://alexander-bagel.blogspot.com/2015/04/8.html

Как обоблачиться с YandexDisk — 2.4 Скрипач как прокси

rouse

Данная статья является продолжением предыдущей§2.4. Скрипач как прокси
Часть I. Теория
2.1 Подключение ЯД к Windows
2.2 Создание папки приложения
2.3 Indy и HTTPS
2.4 Скрипач как прокси
2.5 Протокольные компоненты,

Читать на сайте автора.