В данной статье описывается «нетрадиционная», но достаточно мощная технология обработки XML, позволяющая импортировать любые XML-данные и преобразовывать их структуру эффективно и просто, при этом один и тот же процесс обработки позволяет трансформировать исходные данные любой структуры без какого-либо изменения программного кода.
Читать полностью »
Рубрика «Анализ и проектирование систем» - 103
Интеграция XML данных — другой путь
2017-03-29 в 15:00, admin, рубрики: big data, data warehouse, olap, sql server, XML, xpath, xslt, Анализ и проектирование системFrontera: архитектура фреймворка для обхода веба и текущие проблемы
2017-03-29 в 12:16, admin, рубрики: big data, frontera, Hbase, information retrieval, python, Анализ и проектирование систем, высокая производительность, метки: fronteraВсем привет, я занимаюсь разработкой Frontera, первым в истории фреймворком для масштабного обхода интернета сделанным на Python-е, с открытым исходным кодом. С помощью Фронтеры можно легко сделать робота который сможет выкачивать контент со скоростью тысяч страниц в секунду, при этом следуя вашей стратегии обхода и используя обычную реляционную БД или KV-хранилище для хранения базы ссылок и очереди.
Разработка Фронтеры финансируется компанией Scrapinghub Ltd., имеет полностью открытый исходный код (находится на GitHub, BSD 3-clause лицензия) и модульную архитектуру. Мы стараемся чтобы и процесс разработки тоже был максимально прозрачным и открытым.
В этой статье я собираюсь рассказать о проблемах с которыми мы столкнулись при разработке Фронтеры и эксплуатации роботов на ее основе.
Читать полностью »
MIPSfpga и прерывания
2017-03-27 в 11:59, admin, рубрики: C, fpga, mips, mips assembler, MIPS microAptiv UP, MIPSfpga, SoC, Verilog, Анализ и проектирование систем, программирование микроконтроллеров, системное программированиеВ статье приводится несколько примеров настройки и использования прерываний MIPS32 Release 2, включая подробное описание задаваемой при этом конфигурации, описывается работа с контроллером внешних прерываний.
Весь описываемый код опубликован на github в составе проекта mipsfpga-plus [L3].

Микрооптимизации важны: предотвращаем 20 миллионов системных вызовов
2017-03-27 в 8:26, admin, рубрики: ruby, syscalls, Анализ и проектирование систем, Блог компании Mail.Ru Group, высокая производительность, никто не читает теги, оптимизация, Проектирование и рефакторинг, метки: syscalls
Эта публикация — логическое продолжение поста «Как настройка переменной окружения TZ позволяет избежать тысяч системных вызовов». Здесь мы рассмотрим характерную ситуацию, когда микрооптимизации (например, удаление системного вызова) очень сильно влияют на производительность.
Как Discord индексирует миллиарды сообщений
2017-03-27 в 8:17, admin, рубрики: cassandra, Discord, elasticsearch, Google Cloud Platform, lucene, open source, redis, solr, Анализ и проектирование систем, высокая производительность, Системы обмена сообщениями, метки: Discord
Миллионы пользователей ежемесячно отправляют миллиарды сообщений в Discord. Поиск в этих сообщениях стал одной из самых востребованных функций, какие мы сделали. Да будет поиск!
Требования
- Экономически эффективный: Основное взаимодействие пользователя с Discord — это наш текстовый и голосовой чат. Поиск — вспомогательная функция, и стоимость инфраструктуры должна отражать это. В идеале это значит, что поиск не должен стоить дороже, чем фактическое хранение сообщений.
- Быстрый и интуитивно понятный: Все создаваемые нами функции должны быть быстрыми и интуитивными, в том числе поиск. Он должен выглядеть и ощущаться по высшему стандарту.
- Самовосстановление: У нас нет отдела DevOps (пока), так что поиск должен выдерживать сбои с минимальным человеческим вмешательством или вообще без него.
- Линейно масштабируемый: Как и с хранением сообщений, увеличение ёмкости поисковой инфраструктуры должно предусматривать добавление нодов.
- Ленивая индексация: Не все пользуются поиском — мы не должны индексировать сообщения, пока кто-то не попытается хотя бы раз их найти. Вдобавок, после сбоя индекса должна быть возможность переиндексации серверов на лету.
Постепенное наращивание функционала в сложных информационных системах
2017-03-26 в 3:19, admin, рубрики: Анализ и проектирование систем, метки: Внедрение, информационная системаХочу предложить организациям, занимающимся разработкой сложных информационных систем, типа документооборота (СЭД), способ внедрения своих продуктов в организации клиентов. А именно, постепенное наращивание функционала для каждого сотрудника.
Читать полностью »
Элементы, универсумы и регистры правил
2017-03-25 в 15:16, admin, рубрики: sql, Алгоритмы, Анализ и проектирование систем, атрибуты отношений, выборка данных, Значения, множества, Программирование, регистры правил, релевантность, метки: Значения"Дуэли запрещены в субботу, воскресенье и остальные дни недели."
Речь в статье пойдет о некоторых нюансах операции выборки данных. Эта довольно востребованная в информационных системах операция сводится фактически к определению принадлежности значений (элементов) множествам. Табличная функция, содержащая значения-множества, называется регистром правил. При наличии нескольких множеств, которым принадлежит элемент, возникает вопрос определения наиболее релевантного из них. Вопросам оценки релевантности выборки данных посвящена первая часть работы.

Забегая вперед, укажем, что основным результатом (многолетних наблюдений) является то, что в реляционных отношениях следует учитывать род атрибутов — являются ли значения атрибута отношения конкретными (элементами) или абстрактными (множествами). При этом в операции выборки данных атрибуты входной таблицы и таблицы, к которой обращаются, должны быть разных родов. Более подробно об этом — во 2-й части.
И еще одна оговорка. Там, где приходилось выбирать между простотой (понятностью) описания и его строгостью, автор старался выбирать простоту (хотя слов, в том числе не всегда понятных, все равно набралось много).
Orienteer: обзор платформы и обновлений последнего релиза
2017-03-24 в 7:19, admin, рубрики: BaaS, bap, open source, Orienteer, Анализ и проектирование систем, Блог компании Orienteer, учетные системыПосле нашей первой статьи о том, как из Orienteer и docker сделать BaaS, мы обещали рассказать, что такое Orienteer, кому и как он может быть полезен. А тут еще и повод есть хороший: мы зарелизили версию 1.2 нашей платформы.
Версия 1.2 полностью поддерживает установку с помощью docker-образов, есть интеграция с процессным движком Camunda BPM, встроен интеграционный фреймворк Apache Camel, с помощью удалённого логирования ошибок стало проще получать диагностическую информацию о состоянии системы и многое другое.

Итак, обо всём этом коротко и по порядку под катом. Но краткость не всегда полезна, так что, дорогой читатель, есть одна просьба. Если мы были излишне кратки, а вы хотите узнать о чем-то более подробно — пишите в комментариях!
Ах, да — в статье вы найдете маленький подарок читателям Хабрахабр.
Читать полностью »
Технология APS: облачный стандарт
2017-03-23 в 14:26, admin, рубрики: cloud, cloud hosting, cloud platform, ingrammicro, Odin, SaaS / S+S, анализ данных, Анализ и проектирование систем, архитектура, базы данных, биллинговые системы, Блог компании Odin (Ingram Micro), облачная инфраструктура, облачные технологии, платформы дистрибуции, Разработка под e-commerce, метки: apsПривет!
Меня зовут Тимур Низаметдинов, я работаю Senior Software Architect облачной экосистемы Odin (Ingram Micro). Сегодня я хочу рассказать вам об APS (Application Packaging Standard) — ключевой технологии, используемой для интеграции в платформу по продаже и потреблению облачных сервисов (SaaS marketplace) Odin Automation.
Про платформу

Мы строим платформу, которая свяжет всех разработчиков и потребителей облачных сервисов через инфраструктуру крупных сервис-провайдеров (поставщиков телекоммуникационных и хостинг-услуг), одновременно предоставляя точку входа для конечных пользователей: контрольную панель или портал, с помощью которого можно создать сайт, настроить почту, купить антивирус или виртуальную машину в облаке.
Odin Automation состоит из следующих компонентов:
- Онлайн-магазин, задача которого привлечь конечных пользователей, а также представителей малого и среднего бизнеса, заинтересованных в приобретении таких продуктов, как Microsoft Office 365 или Dropbox for Business. Система помогает выбрать наиболее подходящие решения, сориентироваться в их возможностях и версиях.
- Панель управления купленными сервисами (Контрольная панель / Self-management Control Panel), задача которой предоставить возможности управления, докупки (upsell) и перекрестной продажи (cross-sell) сервисов покупателю.
- Система бизнес-поддержки (BSS, Business Support System), которая управляет рабочими процессами, инициирует процессы оплаты, предоставления (provisioning), биллинга и так далее.
- Система поддержки операций (OSS, Operation Support System), которая занимается учетом, планированием и предоставлением услуг.
OSS управляет созданием сервисов и учетом их потребления. В случае облачных сервисов это становится нетривиальной задачей, ведь каждый сервис имеет собственный API. Для того чтобы решить эту задачу и нужен APS, предоставляющий системе поддержки операций единый API по управлению и учету облачных сервисов.


