Рубрика «Анализ и проектирование систем»

 

Александр Макаров

Александр Макаров ( SamDark )

Здравствуйте! Я Александр Макаров, и вы можете меня знать по фреймворку «Yii» — я один из его разработчиков. У меня также есть full-time работа — и это уже не стартап — Stay.com, который занимается путешествиями.

Сегодня я буду рассказывать про горизонтальное масштабирование, но в очень-очень общих словах.

Что такое масштабирование, вообще? Это возможность увеличить производительность проекта за минимальное время путем добавления ресурсов.

Обычно масштабирование подразумевает не переписывание кода, а либо добавление серверов, либо наращивание ресурсов существующего. По этому типу выделяют вертикальное и горизонтальное масштабирование.
Читать полностью »

В текущей статье я определю следующие термины: объект, состояние, событие, операция, функция. Я расскажу о том, как можно представить себе их. В качестве мета-метамодели для моделирования мы возьмем теорию множеств, а не MOF. Почему именно ее? Потому что это единственный на сегодняшний день известный способ моделирования, который имеет математическую основу, границы применимости которого нам хорошо известны, достаточно широки и обоснованы.

Строгое определение понятий: объект, состояние, событие, бизнес-операция и бизнес- функция - 1

Прошлые статьи вызвали оживленную дискуссию среди тех, кто использует для моделирования предметных областей инструменты ООП: языки ООП, нотацию UML. Несмотря на то, что я постоянно подчеркиваю, что объекты учета, о которых я веду речь, не моделируются средствами UML, и объясняю почему, тем не менее, вопрос об их моделировании методами ООП поднимается снова и снова. Наверно, мне надо еще раз рассказать, чем так плох ООП для моделирования предметных областей.
Читать полностью »

Речь в статье пойдет о том, как организовать возможность динамического переключения между сетевыми интерфейсами.

Корни вопроса начали расти из предыдущего проекта socmetr.ru, где понадобилось собирать большой объем информации из социальных сетей, и таким образом забивая единственный канал с интернетом. Анализ показал, что даже при наличии сжатия, объем поступающей информации так велик, что происходит его блокировка, при этом мощности CPU и Memory не задействованы и на 20%, а дисковая подсистема почти все время простаивает, то есть мы упёрлись в ширину канала, которую нам предоставляет провайдер.

Первая мысль была пойти экстенсивным путём и просто увеличить его возможности, немного остыв и призадумавшись, поняли, что перекладываем проблему на будущее. Само собой, возник вопрос: "Каким путём пойдем товарищи?". В результате реализовали следующую идею:

image

Читать полностью »

Повышаем производительность кода: сначала думаем о данных - 1

Занимаясь программированием рендеринга графики, мы живём в мире, в котором обязательны низкоуровневые оптимизации, чтобы добиться GPU-фреймов длиной 30 мс. Для этого мы используем различные методики и разработанные с нуля новые проходы рендеринга с повышенной производительностью (атрибуты геометрии, текстурный кеш, экспорт и так далее), GPR-сжатие, скрывание задержки (latency hiding), ROP…

В сфере повышения производительности CPU в своё время применялись разные трюки, и примечательно то, что сегодня они используются для современных видеокарт ради ускорения вычислений ALU (Низкоуровневая оптимизация для AMD GCN, Быстрый обратный квадратный корень в Quake).

Повышаем производительность кода: сначала думаем о данных - 2
Быстрый обратный квадратный корень в Quake

Но в последнее время, особенно в свете перехода на 64 бита, я заметил рост количества неоптимизированного кода, словно в индустрии стремительно теряются все накопленные ранее знания. Да, старые трюки вроде быстрого обратного квадратного корня на современных процессорах контрпродуктивны. Но программисты не должны забывать о низкоуровневых оптимизациях и надеяться, что компиляторы решат все их проблемы. Не решат.

Эта статья — не исчерпывающее хардкорное руководство по железу. Это всего лишь введение, напоминание, свод базовых принципов написания эффективного кода для CPU. Я хочу «показать, что низкоуровневое мышление сегодня всё ещё полезно», даже если речь пойдёт о процессорах, которые я мог бы добавить.

В статье мы рассмотрим кеширование, векторное программирование, чтение и понимание ассемблерного кода, а также написание кода, удобного для компилятора.
Читать полностью »

Сравнительный анализ методов балансировки трафика - 1

Сергей Зубов (CDNvideo)

Сегодня я бы хотел дать некий обзорный доклад о балансировке трафика в высоконагруженных системах. Так как доклад обзорный, рассмотрим различные методы балансировки, что такое балансировка, в принципе, различные методы и алгоритмы балансировки, и озвучим плюсы и минусы того или иного метода.

Сравнительный анализ методов балансировки трафика - 2
Читать полностью »

Вышедшая летом 2016 года восьмая версия платформы nanoCAD Plus включила в себя огромное количество новшеств и усовершенствований. И на данный момент у платформы nanoCAD Plus 8.0 самый лучший старт продаж за всю историю существования продукта: более миллиона скачиваний, непрерывающийся поток встреч и презентаций, прирост числа регистраций на сайте примерно на 20%. Сейчас платформа nanoCAD Plus 8.0 распространилась на чуть более чем 40 000 рабочих мест (разные виды лицензий в различных комплектациях) и примерно 11 000 аккаунтов (личные кабинеты) сайта www.nanocad.ru. И я уверен, что это число будет расти – только что вышли обновления самых популярных специализированных программных продуктов: nanoCAD СПДС 7.0 и nanoCAD Механика 6.1.

В этой статье мы выделим ключевые новшества восьмой версии платформы и наиболее интересные технические исправления версии 8.1, которая вышла аккурат под Новый 2017 год.
nanoCAD Plus 8.1: что ожидает пользователя в новой версии российской САПР-платформы? - 1
Читать полностью »

Инфраструктура простой электронной подписи. Часть 3: Системы обработки персональных данных - 1

В первой и второй частях была рассмотрена инфраструктура ПЭП в системах контрагента и агента, как участниках электронного взаимодействия. Важную роль в этой инфраструктуре играют персональные данные(ПД) контрагента. Системы агента не создают ПД, они используют данные, предоставленные другими системами. Что это за системы, как происходит первичная передача и обработка ПД – эти вопросы будут предметом третьей части статьи.
Читать полностью »

Инфраструктура простой электронной подписи. Часть 2: Моделирование целевой системы - 1
В предыдущей части была построена диаграмма использующих систем в проектируемой инфраструктуре ПЭП. Следующим этапом необходимо проанализировать целевую систему в этой инфраструктуре. Целевой системой у нас является ПЭП, которая, согласно законодательству, является аналогом личной собственноручной подписи. Поэтому дальнейший анализ будет вестись как для личной собственноручной подписи, так и для ПЭП.
Читать полностью »

При написании этой статьи я сделал все возможное, чтобы сделать ее простой для чтения. Однако, в ней содержится очень сложный и нетривиальный вывод — почему методы моделирования операций, которые мы встречаем почти в каждой нотации, не дают нам удовлетворения. Я не видел подобного анализа нигде, даже в книге Криса Партриджа, которую я очень люблю: Business Objects: Re-Engineering for Re-Use. Поэтому я надеюсь, что статья будет легка и полезна одновременно.

Трудности в моделировании операций стандартными способами. Моделирование 4-объектов, постановка задачи - 1

Все модели, которые мы строим, должны так или иначе моделировать 4-х мерное пространство-время, потому что именно так мы представляем себе окружающий нас мир.
Например, что такое болт? Это 4-х мерный объект, который ограничен в пространстве-времени определенными границами. Для моделирования болта существуют нотации, которые моделируют эти границы. Например, чертеж болта моделирует поверхность, которая ограничивает 3-х мерный объем. Добавив к этому чертежу еще 6 координат, зависящих от времени, мы получим модель поверхности 4-Д пространства — времени, которая моделирует болт.

Однако, что такое операция? Это — тоже 4-х мерный объект, который также, как и болт ограничен определенными границами в пространстве и во времени. Правда, представить себе операцию как 4-объект намного сложнее. Существуют три причины, по которым нам сложно это сделать.
Читать полностью »

Инфраструктура простой электронной подписи. Часть 1: Моделирование использующих систем - 1
Предыдущая статья о простой электронной подписи (ПЭП) сделала акцент на юридические нюансы, и только вскользь затрагивала технические решения. Первый же комментарий к статье отметил этот момент. Отсутствие описания технических решений среди «подводных камней ПЭП» не случайно, так как на законодательном уровне вопросы практического применения ПЭП регламентированы только для сферы государственных услуг. Для частного бизнеса применение ПЭП не стандартизируется, поэтому практический опыт отражает лишь личное видение заинтересованных сторон конкретного проекта. Это сильно ограничивает, но, судя по комментариям, не стандартизированное описание также востребовано. Родилось продолжение статьи, с целью компенсировать этот информационный пробел. Продолжение состоит из нескольких частей, каждая из которых кратко рассматривает шаги анализа и проектирования функциональности ПЭП. Описание базируется на реальных проектах, в частности, на успешном внедрении ПЭП в информационную систему крупного поставщика технологических услуг.
Читать полностью »