Называть статью «Эволюция прикладных информационных систем и перспективы развития их архитектуры» было бы слишком академично, а ведь тут будет очень краткая выжимка из реального практического опыта, возможные варианты развития технологий, вызвавшие их потребности и пути решения. Я надеюсь, что статья поможет обобщить и переосмыслить широкий круг задач, связанных с прикладными ИС, и сразу хочу уточнить, что понимаю под этими терминами. ИС — это системы, обеспечивающие обработку, передачу и хранение данных. Это далеко не все программирование, но сейчас ИС чаще всего ассоциируются с веб и мобильными приложениями, хотя и не совпадают с ними полностью, знак равенства между UI и ИС нельзя ставить тем более. Очень прошу всех посмотреть на вопрос как можно шире и присоединяться к обсуждению в комментариях. И еще, я намеренно не буду использовать названия фреймворков и технологий, чтобы избежать лишних холиваров, ограничившись общепринятыми названиями архитектур, стандартов и протоколов, что и вам рекомендую в комментариях.
Читать полностью »
Рубрика «Анализ и проектирование систем» - 101
Эволюция приложений или куда мы идем
2017-04-12 в 0:16, admin, рубрики: api, RPC, Анализ и проектирование систем, архитектура, браузер, браузеры, ветхий веб, высокая производительность, интернет, исследование, клиент, обзор, прогноз, Программирование, протокол, Разработка веб-сайтов, реактивность, сервер, СУБДTarantool как основное хранилище данных для серверных приложений, написанных на .NET
2017-04-11 в 12:57, admin, рубрики: .net, .net core, mail.ru, open source, tarantool, Анализ и проектирование систем, Блог компании Mail.Ru Group, высокая производительность
Этот пост — текстовая версия доклада, представленного на Tarantool Meetup второго марта 2017-го года в Mail.Ru Group с поправкой на то, что прошёл уже месяц, и кое-что из обещанного уже было реализовано, поэтому текст будет интересен даже тем, кто видел выступление.
Большое спасибо коллегам, друзьям и сотрудникам компании Mail.Ru Group, которые помогали написать эту статью.
Выбор СУБД
В жизни каждого проекта рано или поздно возникает переломный момент, когда нужно выбрать СУБД для хранения всех данных. Наш проект с этой точки зрения простой: пользователи, голосования, ответы, какая-то попутно собираемая информация — всё это прекрасно можно держать в key-value хранилище. Поэтому на старте мы рассматривали три варианта: Redis, Tarantool и MySQL с handlersocket. Фаворитом с самого начала был Redis. Он быстро работает, у него замечательный коннектор для .NET, созданный командой Stack Overflow. К слову, сам Stack Overflow написан на .NET, работает на Windows, у них SQL Server от Microsoft, Redis и ещё много интересного. У Redis прекрасная документация. Если мы нанимаем нового программиста, который никогда не работал с Redis, то мы отправляем его туда — и через три дня он знает примерно всё, что ему нужно знать для использования Redis.
Шаблоны проектирования с человеческим лицом
2017-04-10 в 12:49, admin, рубрики: php, Анализ и проектирование систем, Блог компании Mail.Ru Group, никто не читает теги, Проектирование и рефакторинг, Разработка веб-сайтов, шаблоны проектированияШаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.
Как сказано в Википедии:
В программной инженерии шаблон проектирования приложений — это многократно применяемое решение регулярно возникающей проблемы в рамках определённого контекста архитектуры приложения. Шаблон — это не законченное архитектурное решение, которое можно напрямую преобразовать в исходный или машинный код. Это описание подхода к решению проблемы, который можно применять в разных ситуациях.
Будьте осторожны
- Шаблоны проектирования — не «серебряная пуля».
- Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
- Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.
В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.
Будущее API
2017-04-10 в 11:12, admin, рубрики: api, Анализ и проектирование систем, Разработка систем связи
Думаю, мы недостаточно говорим о будущем API. Я не помню ни одного хорошего обсуждения о том, что ждёт API в будущем. Вот совсем не припоминаю. Но если мы хорошенько подумаем об этом, то придём к выводу, что API в том виде, в каком мы понимаем сейчас — это далеко не конец игры. В этом виде API не будет оставаться вечно. Давайте попробуем заглянуть в будущее и ответить на вопрос, что случится с API в будущем.
e-Government будущего
2017-04-10 в 10:48, admin, рубрики: blockchain, e-government, egaas, Анализ и проектирование систем, цифровая экономика, электронное правительствоВозможно ли сделать так, чтобы любой желающий мог безопасно писать код прямо в кабинете электронного правительства?


Инструменты для команды удалённых разработчиков
2017-04-10 в 8:52, admin, рубрики: Parallels, parallels desktop, Анализ и проектирование систем, Блог компании Parallels, Программирование, разработка, разработка под iOS, Разработка под OS X, удаленная работа, удалённый доступ
Сегодня все чаще говорят о возможности удаленной работы. Тут и там большие компании анонсируют повсеместный исход офисного и не только планктона из корпоративных теплиц. Разработчики – первые, кого вспоминают в этот контексте. Работая удалённым разработчиком, вы зачастую не можете встретиться лицом к лицу с клиентом, лично представить свой проект, присесть за стол к коллеге, чтобы вместе решить какую-то проблему. Из-за этого у некоторых может возникнуть впечатление, что у удалённой работы есть ряд серьёзных недостатков. На мой взгляд, и по мнению десятков тысяч удаленных разработчиков это ложное впечатление. Удалённые разработчики в целом счастливее, работают усерднее, и быстро осваивают подходящие инструменты для совместной работы. Конечно, удалённая работа — вещь непростая. Ведь нас с детства приучают к тому, что нам нужен коллектив, и что общаться нужно лицом к лицу. Уходя из офиса на удалёнку, приходится учиться пользоваться инструментами, компенсирующими географическую распределённость команды. Под катом — подборка инструментов, которая поможет вам эффективно взаимодействовать с коллегами в других городах и странах. Безусловно, это не весь инструментарий. Было бы любопытно прочесть о ваших находках в комментариях к данной статье.Читать полностью »
Цифровая экосистема eGaaS
2017-04-08 в 13:48, admin, рубрики: e-government, Анализ и проектирование систем, блокчейн, экосистема для бизнеса
eGaaS (Electronic Government as a Service) — это цифровая экосистема, спроектированная для реализации идеи электронного правительства. При этом термин “электронное правительство” в eGaaS трактуется не в узком смысле, как лишь онлайн сервис оказания услуг гражданам или механизм автоматизации деятельности правительства, а понимается как целостная цифровая экосистема, объединяющая в едином информационном пространстве деятельность всех сфер государства: институтов власти, экономики, финансов и социальной сферы. Экосистема eGaaS включает в себя глобальные реестры и программные средства для построения государственных, частных и общественных пользовательских приложений и платформ на базе смарт-контрактов.
Экосистема eGaaS обладает многоуровневой системой управления правами на создание и редактирование реестров, контрактов и интерфейсов. Для контроля прав доступа к элементам экосистемы используются специальные контракты – смарт-законы, благодаря чему система контроля прав получается гибко настраиваемой и, что самое главное, позволяет автоматически отслеживать передачу прав доступа.
Читать полностью »
Применение IMS QTI в электронных курсах в формате ePUB
2017-04-08 в 10:45, admin, рубрики: e-learning, ePub, IMS QTI, tincan, xAPI, XML, Анализ и проектирование систем, Программирование, метки: IMS QTIСуть проблемы
В системах электронного обучения (СЭО), используемых в образовательных учреждениях, часто требуется помимо подключения электронного курса к СЭО, также импортировать его отдельные компоненты для формирования единых банков образовательных ресурсов. Такие банки используются в образовательном процессе, в том числе для создания междисциплинарных спецкурсов, итоговых тестирований по всему периоду обучения. Как правило, это в первую очередь тестовые задания, изображения, мультимедийные компоненты. Некоторые элементы контента, в частности тестовые задания, созданные без использования машиночитаемых форматов (CSV, JSON, XML, XLS), не поддаются эффективному автоматизированному импорту в СЭО. В частности, это касается HTML/CSS/JavaScript, применяемых в контейнере для электронных курсов и публикаций ePUB. Для решения этой задачи автором предлагается использовать описания тестов и отдельных тестовых вопросов в составе курса в машиночитаемом формате XML в соответствии со спецификацией IMS Question and Test Interoperability v.2.2 (IMS QTI).
Пару слов о ePUB v.3
ePUB версии 3, разработан ассоциацией IDPF и является стандартом для обмена и дистрибуции электронных публикаций. ePUB получил широкое распространение среди издателей электронных учебников и курсов. Формат поддерживается на большинстве мобильных платформ, и лег в основу ряда других подобных форматов, в частности ibooks компании Apple.
Рисунок 1. Структура EPUB-контейнера
Читать полностью »
Кинетика больших кластеров
2017-04-06 в 9:40, admin, рубрики: big data, Алгоритмы, Анализ и проектирование систем, высокая производительность, кинетика, Промышленное программирование, распределенные системы, репликация, метки: кинетикаКраткое содержание
- Фатальная ошибка Мартина Клеппмана.
- Физико-химическая кинетика уделывает математику.
- Период полураспада кластера.
- Решаем нелинейные дифференциальные уравнения, не решая их.
- Ноды как катализатор.
- Предсказательная сила графиков.
- 100 миллионов лет.
- Синергия.
В предыдущей заметке мы подробно разбирали статью Брюера и его одноименную теорему. На этот раз займемся препарированием поста Мартина Клеппмана «The probability of data loss in large clusters».
В данном посте автор пытается промоделировать следующую задачу. Для обеспечения сохранности данных обычно используется метод репликации данных. При этом, на самом деле, не важно, используется ли erasure кодирование или нет. В оригинальном посте автор задает вероятность выпадения одной ноды, а затем ставит вопрос: а какова вероятность выпадения данных при увеличении числа нод?
Ответ приведен на этой картинке:
Читать полностью »
Как в «Додо Пицца» потеряли 8 миллионов за один час из-за технической ошибки, а потом вернули
2017-04-06 в 8:18, admin, рубрики: e-commerce, Анализ и проектирование систем, Блог компании Яндекс.Деньги, ошибки программистов, платежные системы, Разработка под e-commerce, Тестирование IT-систем
Историю нашумевшей технической ошибки «Додо Пиццы», партнера Яндекс.Кассы, нам рассказал системный архитектор компании Андрей Моревский — сразу передаю микрофон автору.
Еду я в «Сапсане» на открытие первой в Санкт-Петербурге пиццерии «Додо», как вдруг получаю оповещение о множественных отменах оплаченных заказов. И не просто множественных — наша система за час умудрилась откатить якобы оплаченные заказы на 8 миллионов рублей!
Сейчас эта история вызывает только улыбку, но в то утро было совсем не смешно. Поэтому хочу поделиться некоторыми техническими подробностями инцидента и сделанными выводами, а заодно немного рассказать про систему обработки заказов «Додо Пиццы». Читать полностью »
