Что реализуют модели представленные диаграммами uml. UML. Виды диаграмм UML

Центры обработки данных ориентированы на решение бизнес-задач путём предоставления услуг в виде информационных сервисов. Современный ЦОД, несмотря на такие относительно новые требования как высокая степень гибкости и масштабируемости, по-прежнему должен, прежде всего, обеспечивать высокую надёжность. Всё, что вы хотели знать о надёжности ЦОДов, но боялись спросить – под катом.

ЦОД: что это такое?

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


Оборудование, используемое в ЦОДе, размещается в специальных шкафах и стойках.

Назначение ЦОДа

ЦОД – сложное инженерное сооружение для централизованного размещения и обслуживания информационных систем, компьютерного и телекоммуникационного оборудования, высокотехнологичная площадка, оснащенная системами кондиционирования, бесперебойного питания, пожаротушения, СКС, контроля доступа. Основное назначение центров обработки данных – хранение, обработка и передача критичной для заказчика информации, поэтому в инфраструктуру ЦОДа входит множество сложных и резервируемых инженерных систем высокой надёжности.
Надёжность является главной характеристикой центра обработки данных. Она включает в себя много факторов: надёжность здания, электроснабжения, инженерных систем и коммуникаций, установленного оборудования. Высокая надёжность ЦОДа означает бесперебойное предоставление услуг заказчикам в случае коммерческого центра обработки данных и уверенную работу собственной ИТ-инфраструктуры компании, эксплуатирующей корпоративный ЦОД.

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

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

Состав и структура ЦОД

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


Основными элементами ЦОДа являются системы обработки и хранения данных, активное сетевое оборудование, инженерные системы. В нем размещаются вычислительные платформы и СХД, система передачи данных, система электроснабжения и электроосвещения, система прецизионного кондиционирования, структурированная кабельная система, система кабельных каналов, фальшпол, подвесной потолок, интегрированная система безопасности, средства физической защита вычислительных систем и телекоммуникационного оборудования, системы раннего обнаружения пожара и газового пожаротушения.

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


Структура ЦОД.

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


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

Автоматизированные системы мониторинга, диспетчеризации и управления информационными ресурсами – необходимый элемент повышения надёжности ЦОДа, уменьшения негативного влияния «человеческого фактора». Система безопасности предотвращает несанкционированное вторжение в зоны конфиденциальной информации. Она включает в себя средства защиты, оповещения и контроля доступа. Часто для предотвращения несанкционированного проникновения в ЦОД (физическая безопасность) устанавливаются камеры видеонаблюдения.

Надёжность ЦОДа

Основная функция современных ЦОДов – это повышение надёжности обработки и хранения информации. Одним из главных критериев оценки качества работы любого ЦОД является время доступности информационных систем. ЦОД должен обеспечивать безопасность бизнеса и минимизировать риски простоя, отвечая следующим требованиям:
  • Отказоустойчивость. Это свойство технической системы сохранять свою работоспособность после отказа одного или нескольких составных компонентов.
  • Высокая доступность. Это свойство системы определяет её надёжность, возможность выполнять требуемую функцию при заданных условиях в данный момент времени или в течение заданного интервала времени при соблюдении определенного набора условий.
  • Непрерывность бизнеса. Она включает в себя процессы и методы, направленные на обеспечение безостановочного выполнение критичных бизнес-функций.
  • Катастрофоустойчивость. Это способность к восстановлению после катастрофы т.е. устойчивость к воздействию аварий и природных катаклизмов.
Эти первоочередные требования определяются стоимостью простоя и стоимостью обеспечения доступности приложений и данных. То есть требования бизнеса – стоимость решения, время восстановления приложений и данных после отказа – определяют соответствующие технические требования к подсистемам ЦОД, в числе которых их избыточность, производительность, пропускная способность, емкость и целостность данных.

Надёжность ЦОД обычно включает в себя такие составляющие как правильно выбранное помещение, наличие отлаженной системы бесперебойного гарантированного энергоснабжения, грамотной системы вентиляции и кондиционирования, водоснабжения и водоотвода, а также правильное построение телекоммуникационных систем. Критичным для пользователя остается обеспечение комплексной безопасности центра обработки данных – контроля доступа, охранной и пожарной сигнализации, пожаротушения. Все большее значение приобретают аспекты катастрофоустойчивости, наличия резервной площадки.

При проектировании современных центров обработки данных, помимо исключительной надёжности, отказоустойчивости и работоспособности, к системам предъявляется целый ряд дополнительных требований, таких как управляемость, ремонтопригодность, низкая совокупная стоимость владения, масштабируемость, адаптируемость к изменениям и безопасность. Поэтому ЦОД обычно проектируется как комплексное решение, тесно интегрированное как со службами эксплуатации здания, так и с ИТ-инфраструктурой предприятия. Модульность и стандартизация позволяет всему комплексу развиваться, адаптироваться к меняющимся условиям и нагрузкам.

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

Основная характеристика ЦОДа – уровень его надёжности. По стандарту TIA-942 выделяют четыре уровня надёжности:

Tier I (N) - без резервирования. Доступность 99,71%. Это самый ненадежный ЦОД, в котором в случаи возникновения неполадок и отказа оборудования либо при начале ремонтных работ происходит остановка все центра обмена данными. Более того в таком ЦОДе нет фальшполов и дополнительных источников питания, а инженерная инфраструктура не зарезервирована.

Tier II (N+1) - резервирование критических узлов. Доступность 99,741%. В этом случае есть некий уровень резервирования, в таком ЦОДе присутствуют фальшполы и дополнительные источники питания, но в случае начала ремонтных работ ЦОД приостановит свою работу.

Tier III (N+1) - резервирование критических узлов, путей получения электроэнергии и трасс доставки хладоносителя. При этом есть возможность вывода любого узла из эксплуатации для его обслуживания с сохранением полной функциональности объекта в целом. Доступность 99,982%. В таких ЦОДах есть возможность проведения ремонтных работ без прекращения работы центра обработки данных. Инженерные системы однократно зарезервированы и существует несколько каналов служащих для распределения электропитания и охлаждения, но постоянно работает лишь один из них.

Tier IV (2(N+1)) - это самый отказоустойчивый уровень, где допускается одна авария (а не плановый вывод узла из эксплуатации) в один момент времени. Доступность составляет 99,995%, что означает простой в течение всего 26 минут в год. В ЦОДах такого типа возможно проведение всех видов работ без остановки его работы. Инженерные системы зарезервированы двукратно, продублирована основная и дополнительная система.


Четыре уровня отказоустойчивости ЦОДа.

По оценкам экспертов, ЦОД с полным резервированием обычно обходится в 2,5 раза дороже простого ЦОД, поэтому крайне важно еще на уровне предпроектной подготовки определиться, какой категории должна соответствовать площадка. Как недооценка, так и переоценка важности параметра допустимого времени простоя одинаково негативно сказываются на бюджете компании. Ведь финансовые потери возможны либо из-за простоя и сбоев в работе критически важных систем, либо из-за нерациональных инвестиций.

Другие характеристики

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

Требования к площадям и пространству ЦОДа определяются наряду с общей производительностью и емкостью ИТ-систем также такими факторами, как расчетный отвод тепла и необходимый уровень резервирования для обеспечения отказоустойчивости. Важный параметр – энергопотребление основного оборудования. Например, при проектировании нового ЦОДа рекомендуют ориентироваться не на 5−6 кВт на стойку, а на подведение 10−15 кВт. Мощность источников бесперебойного питания выбирается в зависимости от энергопотребления основного оборудования.

Подводимая к ЦОДу должна составлять примерно 250% от мощности, потребляемой ИТ-системами. Наряду с ИТ ее потребляют системы кондиционирования и электропитания, а также системы освещения, вентиляции, пожаротушения, контроля доступа, видеонаблюдения.
Размеры и общий вес стоек определяют требования к минимальной нагрузочной способности перекрытий и фальшпола, а состав и производительность информационных систем – к кабельным системам и внешним кабельным вводам для каналов связи. На основании емкости и типов размещаемого оборудования, а также необходимых уровней обслуживания составляются требования к вспомогательным помещениям.
Требования к ЦОДу также определяются особенностями эксплуатации прикладных систем и необходимостью выделения ИТ-ресурсов, законодательными актами государственных регуляторов хозяйственной деятельности. В целом они зависят от потребностей бизнеса и решаемых бизнес-задач, однако есть и общие требования, определяемые стандартами.

Классификация ЦОДов

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

По своему назначению в информационной инфраструктуре ЦОД может быть основным или резервным. Последний необходим для замены основного в случае непредвиденных происшествий либо профилактических работ.

ЦОДы можно также разделить на несколько типов по размерам. Крупные ЦОДы имеют собственное здание, которое создано или выбрано в соответствии с предъявляемыми к центру обработки данных требованиями. Средние ЦОДы, как правило, арендуют помещение необходимого размера, а также каналы определенной пропускной способностью. Малые ЦОДы и серверные вовсе не обязательно располагаются в плохо приспособленных для этого помещениях, а перечень услуг представлен по минимуму. В последние годы становятся популярными высокотехнологичные контейнерные ЦОДы – специально спроектированные и быстро развертываемые модульные решения. Наконец, ЦОДы классифицируются по уровням надёжности – упомянутым выше Tier I-IV.

Существует несколько типов коммерческого использования ЦОДов. Первый - виртуальный хостинг, подразумевающий аренду части дискового пространства, процессорного времени и оперативной памяти (один физический сервер делится между множеством клиентов). Второй - выделенный хостинг - аналогичная схема, но с гарантированными ресурсами. Третий - размещение сервера и другого оборудования клиента в помещении центра (co-location).

Стандарты ЦОДов

Есть два основных документа, которые чаще всего упоминаются при обсуждении стандартов центров обработки данных: это стандарт TIA 942 и классификация по уровням от Uptime Institute. Оба этих документа регламентируют уровни надёжности (Tier), что часто приводит к путанице: например, Tier III по TIA 942 и Tier III по Uptime Institute - это две большие разницы.

Стандарт ANSI/TIA/EIA-942 регламентирует требования к расположению центров обработки данных, к внешней инфраструктуре, телекоммуникационному пространству внутри центра данных, к кабельной системе и кабельным каналам ЦОДа, к его инфраструктуре в зависимости от требуемого уровня надёжности ЦОДа. ЦОДы I и II класса могут занимать часть какого-либо помещения, а объекты III и IV класса размещаются только в отдельных зданиях. Всего EIA/TIA-942 описывает до 200 различных параметров ЦОДа.

Стандарт TIA 942 (Telecommunications Industry Association - Telecommunications Infrastructure Standard for Data Centers) разработан ассоциацией телекоммуникационной промышленности США и, в первую очередь, касается вопросов организации структурированных кабельных систем в ЦОДе и отказоустойчивости и других инженерных подсистем. Он носит рекомендательный характер. Разработанный Uptime Institute документ – не стандарт, а скорее методология нормирования отказоустойчивости ЦОДа. В нем сформулированы основные принципы проектирования и подходы. Сертифицируется как проект (Tier Certification of Design Documents), так и работающая площадка (Tier Certification of Constructed Facility) и её эксплуатация (Operational Sustainability Certification). Сертификация осуществляется только самим Uptime Institute.

Хотя по сути эти уровни схожи, принципы оценки значительно различаются. Uptime Institute проверяет полученный результат – как работает построенный ЦОД, а не строгое соответствие документам. В России нет единого стандарта, однако ЦОДы ориентируются на требования, разработанные для сооружений связи, на TIA-942, а также на ГОСТы. Существует также относительно новый стандарт BICSI 002 2010 Data Center Design and Implementation Best Practices, который появился в 2010 году и был обновлен в 2011 году. Он создан с целью дополнения уже существующих стандартов. Близок к завершению и европейский стандарт EN 50173-5, на основе которого в будущем предполагается сформировать соответствующий российский ГОСТ.

ЦОДы SAFEDATA

Центры обработки данных – основное направление деятельности SAFEDATA , оператора собственной распределенной сети ЦОДов и поставщика услуг ИТ-аутсорсинга. Группа SAFEDATA, в состав которой сегодня входят Центр Хранения Данных, Центр Технологий Виртуализации, оператор CDN компания NGENIX и оператор площадки обмена трафиком MСК-IX, владеет сетью ЦОДов, построенных в соответствии с требованиями международных стандартов TIA-942 (Tier III).

По данным iKS-Consulting, структуры «Ростелекома» в 2015 году займут 12,5% российского рынка ЦОДов. Сейчас госкомпания запустила 3081 стойку, включая ЦОДы ММТС-9 и SAFEDATA. На конец 2014 года доход ее ЦОДов оценивается в 1,67 млрд руб.

ЦОДы SAFEDATA - современные и энергоэффективные инженерные решения. Они спроектированы так, что смогут функционировать практически в любых условиях. ЦОД SAFEDATA Москва-I общей площадью более 2000 кв.м расположен в Остаповском проезде.


ЦОД Москва-I начал свою работу в сентябре 2007 года. С момента запуска ЦОДа не было зафиксировано ни одной аварийной остановки.


Инфраструктура ЦОДа, рассчитанного на 500 стоек, построена в соответствии со стандартом TIA-942.


Питается этот ЦОД мощностью 4 МВт напрямую от ТЭЦ-8 Мосэнерго. ЦОД обеспечивает бесперебойное электропитание категории 1, имеет независимые энерговводы, резервированные дизель-генераторные установки. Для бесперебойной работы ЦОДа задействованы четыре ДГУ FG Wilson мощностью 1250 кВА каждая, и четыре ИБП мощностью 800 кВА. ДГУ автоматически запускается при пропадании напряжения от трансформаторной подстанции и работает до 8 часов без дозаправки топливом.


ЦОД имеет ВОЛС до ММТС-9, ММТС-10, а клиентам предоставляется возможность ввода собственной ВОЛС.


Работа системы энергоснабжения круглосуточно контролируется сотрудниками SAFEDATA.

В ЦОДе Москва-I установлены прецизионные шкафные кондиционеры, работающие по схеме (N+1), холодопроизводительностью 100 кВт каждый. Система прецизионного кондиционирования построена на базе шкафных кондиционеров Hiref и холодильных машин Geoclima. От кондиционеров охлажденный воздух подается под фальшпол и далее, через перфорированные плитки фальшпола - в «холодные» коридоры.


На крыше здания расположены внешние конденсаторные блоки Guntner, соединенные с кондиционерами двумя независимыми трассами.

На открытых технологических площадках ЦОДа установлены два чиллера с технологией естественного охлаждения (free cooling) по 700 кВт холодопроизводительности, а также две холодильные машины с технологией Turbocool. Суммарная холодопроизводительность двух контуров независимой системы охлаждения ЦОДа доведена до 2600 кВт. В качестве хладагента используется 40% раствор этиленгликоля. ЦОД оборудован системами автоматического газового пожаротушения (АГПТ) на основе газовой смеси Хладон 227.

ЦОД Москва-II , расположенный по адресу пл. Академика Курчатова, д.1, стр.19, построен в рамках сотрудничества с Российским Научным Центром «Курчатовский Институт».


ЦОД Москва-II общей площадью 3500 кв.м. построен в соответствии со стандартом TIA-942 (Tier III) и введен в эксплуатацию в 2014 году.


Он рассчитан на 900 стоек, а выделенная электрическая мощность составляет 10 МВт.

Как и Москва-I, данный ЦОД предусматривает собственные ВОЛС до ММТС-9 и ММТС-10, а крупным клиентам предоставляется возможность ввода собственной ВОЛС.


ЦОД имеет бесперебойное электропитание категории 1, независимые энерговводы, дублированные дизель-роторными источниками бесперебойного питания. Он оснащен восемью дизель-роторными источниками бесперебойного питания Hitec Power Protection мощностью 1680 кВА каждый, зарезервированными по схеме N+1.

Специальная резервная емкость обеспечивает время автономной работы всей системы дизель-роторных ИБП не менее 20 часов (оперативная доставка дизельного топлива гарантирует бесперебойную работу ЦОДа даже при долговременном отсутствии питания городской электросети).

Поддержание требуемых климатических параметров осуществляется с помощью прецизионных кондиционеров Hiref. В ЦОДе Москва-II установлены несколько десятков прецизионных шкафных кондиционеров, работающих по схеме (N+1), холодопроизводительностью 100 кВт каждый. Вся система кондиционирования зарезервирована по схеме N+1 для каждого машинного зала. От кондиционеров охлажденный воздух подается под фальшпол и далее, через перфорированные плитки фальшпола в «холодные» коридоры.


ЦОД оборудован системами автоматического газового пожаротушения (АГПТ) на основе газовой смеси Хладон 125. В состав АГПТ входят световая и звуковая сигнализация, предупреждающая о пуске газа, которая интегрирована с системой охлаждения для отключения кондиционирующего оборудования в случае аварии, и системой разграничения физического доступа.


Система безопасности и ограничения доступа ЦОДов Москва-I и Москва-II организована на нескольких уровнях и включает в себя охраняемую территорию, организационные процедуры контроля доступа в ЦОД, систему разграничения физического доступа на базе «proximity»-карт, систему видеонаблюдения внутри, снаружи ЦОДа и в каждом модуле с тридцатидневным архивированием записей. По желанию заказчика могут быть установлены дополнительные средства безопасности.

Главное свойство современного ЦОДа - надёжность. Он не останавливается даже при авариях в энергосистемах города. Вышедшее из строя оборудование и каналы связи подменяют резервные системы. ЦОДам SAFEDATA не помешают нештатные ситуации – на случай любого бедствия есть ответ.

Теги: Добавить метки

/ ЦОД: строить или арендовать?


Вконтакте

Одноклассники

Михаил Поляков , заместитель генерального директора «ИНСИСТЕМС» (группа компаний ЛАНИТ)

ЦОД: строить или арендовать?

Дискуссии о том, что выгоднее – собственный ЦОД или аренда серверного оборудования, не затихают, наверное, с появления первого ЦОД или по крайней мере с того момента, когда это понятие возникло.

Как и в любом споре, обе стороны не могут быть объективны: почти наверняка операторы ЦОД будут убеждать в необходимости аренды, а компании, специализирующиеся на строительстве ЦОД и их инфраструктуры, рассказывать опреимуществах и необходимости собственных ЦОД

Но ответ на вопрос, что делать, строить собственный ЦОД или арендовать серверное оборудование, можно найти, только проанализировав ряд таких важнейших факторов, как уровень капитальных и эксплуатационных затрат, степень развития и доступности услуг ЦОД, ИТ-услуг и систем обеспечения информационной безопасности. Кроме того, выбор услуг собственного или арендованного ЦОД определяет ряд очевидных факторов. Рассмотрим подробнее наиболее важные.

Направление бизнеса и его масштабы

Чем крупнее компания, тем больше вероятность того, что ей потребуется собственный ЦОД. Так, промышленной компании с государственным участием, имеющей собственные исследовательские и конструкторские разработки, например,в интересах национальной обороны, необходимо вести высокопроизводительные вычисления, требуется надежное хранилище больших массивов данных и другие ИТ-услуги. Доверит ли она эти функции публичному оператору услуг ЦОД? Скорее всего нет, и, даже если бы попыталась, ей не позволили бы это сделать. Единственный выход в этом случае – создание собственного ЦОД.

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

Но даже если компания решает арендовать ЦОД, то его кто-то должен сначала построить. Поэтому собственные ЦОД будут также строить компании-провайдеры услуг ЦОД. По мере развития рынка операторы ЦОД станут предлагать ИТ-услуги все более высокого уровня. Этот переход будет строиться прежде всего на основе собственных ресурсов. Гипотетически операторы ЦОД могут прибегнуть и к аренде мощностей, но лишь в том случае, когда необходимо очень быстро предложить заказчику услуги, а собственных ресурсов недостаточно.

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

Географическое положение региона, уровень развития и доступности ИТ-услуг. Территориальная удаленность от основных магистралей, промышленных центров и транспортных узлов, отсутствие необходимой инфраструктуры и каналов связи, несомненно, оказывают влияние на выбор между собственным ЦОД и арендой. Тем не менее по мере развития каналов связи и роста доступности услуг удаленных ЦОД оно будет нивелироваться.

Перспективы и динамика развития бизнеса, экономическая конъюнктура. Очевидно, что на выбор решения серьезное влияние оказывают динамика бизнеса и общая экономическая ситуация. Многие компании принимают решение остроительстве своего ЦОД, когда находятся на этапе роста. Причем обычно предполагают, что он будет использоваться не только для решения собственных задач, но и для сдачи свободных ресурсов в аренду. Так же на растущем рынке действуют и операторы ЦОД, инвестируя в развитие мощностей.

В период спада все без исключения начинают задумываться об оптимизации ИТ-бюджетов и соответственно об аренде услуг ЦОД. В этом смысле аренда, являясь весьма гибким инструментом, открывает огромные возможности оптимизации. Кроме того, операторы ЦОД, расширяя свой бизнес, могут предлагать дополнительные сервисы, например, услуги связи для арендаторов, выделенные гермозоны (модули), услуги по информационной безопасности.

Найти верный ответ на вопрос об аренде или собственном ЦОД каждый бизнес или компания могут, лишь учитывая множество факторов и только для определенного временного интервала, а динамичный рынок ИТ-услуг постоянно меняет условия для принятия того или иного решения. Сегодня все обстоятельства могут однозначно указывать на необходимость строительства собственного ЦОД, а уже завтра они подсказывают противоположное решение. В такой ситуации часть операторов будет строить собственные ЦОД, часть станет арендовать их услуги. По мере развития облачных технологий сегментация и специализация операторов услуг ЦОД по видам и уровню предоставляемых сервисов будет углубляться.

Сейчас следует задуматься именно об аренде услуг ЦОД. В связи с развитием виртуализации и облачных технологий аренда серверного оборудования (dedicated server) и размещение собственных серверов в предоставляемых стойках (colocation) – лишь часть услуг, традиционно предоставляемых ЦОД. Кроме перечисленных, ЦОД предоставляют услуги IaaS (Infrastructure as a Service), SaaS (Software as a Service) и PaaS (Platform as a Service).

В последнее время развитие облачных технологий вызвало появление даже такого понятия, как XaaS (Anything as a Service), то есть возможность предоставления любых услуг через Интернет. Все это не только расширяет список потребителей услуг ЦОД, но и создает новые типы провайдеров этих услуг. В свою очередь, провайдеры услуг ЦОД более высокого уровня одновременно являются потребителями услуг более низкого уровня. Например, провайдер SaaS может являться потребителем IaaS, colocation или dedicated server. Важным субъективным моментом, влияющим на выбор решения о собственном ЦОД или аренде, может стать и осведомленность потребителя об услугах, которые ему предлагают.

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

Рост на фоне нестабильности

В 2014 году российский рынок дата-центров вырос почти на 30% и составил 11,9 млрд руб. (9,3 млрд в 2013 году).

Такие данные приводятся в исследовании компании iKS-Consulting «Российский рынок коммерческих дата-центров 2014-2018», опубликованном в декабре 2014 года. Одним из ключевых факторов роста рынка стал ввод новых мощностей ЦОД в РФ. В 2014-м площадь машинных залов увеличилась на 17,5 тыс. кв.м, а количество стоек – на 3,5 тыс. Таким образом, на конец 2014 года суммарная площадь машинных залов коммерческих ЦОД в РФ достигнет 86 тыс. кв.м (рост 36,5%), стоек – 25,5 тыс. (рост 28%) (см. рис. 1).

Однако эксперты рынка отмечают замедление роста рынка российских ЦОД в связи с нестабильной экономической ситуацией. Среди причин, которые влияют на развитие этого рынка, выделяют повышение стоимости на часть импортного оборудования для ЦОД, изменение условий кредитования при их строительстве или развитии, неопределенность, возникшая в связи с введением санкций со стороны США и Евросоюза.

По данным годового отчет «Российский рынок центров обработки данных 2014» РБК.Research, доходность от услуг ЦОД в 2014-м выросла у 60% компаний, снизилась у 10%, осталась на прежнем уровне у 30% компаний, в то время как в 2013 году увеличение показателя доходности отметили 71% игроков рынка.

Повышение энергоэффективности ЦОД более чем на 5% в 2013 году отметили 71% опрошенных компаний, в 2014-м – уже 78%. У остальных участников исследования этот показатель остался на прежнем уровне.

Граница минимальной стоимости услуги ЦОД в 2014 году увеличилась у 11% участников исследования. При этом у 78% компаний данный показатель остался на уровне прошлого года.

Типы дата-центров

Все дата-центры можно условно разделить на несколько типов:

  1. Крупные дата-центры имеют свое здание, специально сконструированное для обеспечения наилучших условий размещения. Обычно они имеют свои каналы связи, к которым подключают серверы.
  2. Средние дата-центры обычно арендуют площадку определенного размера и каналы определенной ширины (ширина канала измеряется его пропускной способностью в Mbps).
  3. Мелкие дата-центры размещаются в неприспособленных помещениях. В общих случаях используется оборудование плохого качества, а также предоставляется самый минимум услуг.

Структура и описание дата-центра

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

Некоторые дата-центры предлагают клиентам дополнительные услуги по использованию оборудования по автоматическому уходу от различных видов атак. Команды квалифицированных специалистов круглосуточно производят мониторинг всех серверов. Необходимо отметить, что услуги датацентров сильно отличаются в цене и количестве услуг. Для обеспечения сохранности данных используются резервные системы копирования. Для предотвращения кражи данных, в дата-центрах используются различные системы ограничения физического доступа, системы видеонаблюдения. В корпоративных (ведомственных) дата-центрах обычно сосредоточено большинство серверов соответствующей организации. Оборудование крепится в специализированных стойках . Как правило, в дата-центр принимают для размещения лишь оборудование в стоечном исполнении, то есть, в корпусах стандартных размеров, приспособленных для крепления в стойку. Компьютеры в корпусах настольного исполнения не удобны для дата-центров и размещаются в них редко. Датацентр представляет собой комнату, этаж или целое здание, обычно расположенные в пределах или в непосредственной близости от узла связи или точки присутствия какого-либо одного или нескольких операторов . Системы электропитания, вентиляции и пожаротушения дата-центра отличаются повышенной надёжностью и резервированием. Разумеется, должна быть предусмотрена физическая защита и особый режим допуска в технологические помещения. В ряде стран имеются специальные стандарты на оборудование помещений датацентров. В России пока такого стандарта нет, дата-центры оснащаются согласно требованиям для сооружений связи . Существует американский (ANSI) стандарт TIA-942 , несущий в себе рекомендации по созданию дата-центров, и делящий дата-центры на типы по степени надежности. Фактически, TIA-942 воспринимается во всем мире как единый стандарт для дата-центров.

Услуги дата-центров

  1. Виртуальный хостинг . Предоставление лимитированной части дискового места, процессорного времени, оперативной памяти клиенту для использования. Крупные датацентры обычно не предоставляют подобную массовую услугу из-за необходимости обеспечения техническо-консультационной поддержки. При использовании виртуального хостинга один физический сервер делится между множеством клиентов (сотни или тысячи). Каждому клиенту не гарантируется какое-либо выделение ресурса, но строго лимитируется максимальное. Клиенты не могут в большей степени конфигурировать сервер. Виртуальный хостинг имеет два основных преимущества: малую стоимость и легкость управления сайтами. По этим причинам виртуальный хостинг в основном используют частные лица.
  2. VDS)-хостинг - Предоставление гарантированной и лимитированной части сервера (части всех ресурсов). Важная особенность данного вида хостинга - разделение сервера на несколько виртуальных независимых серверов реализуемых программным способом.
  3. хостинг - Аренда сервера (Dedicated). Дата-центр предоставляет клиенту в аренду сервер в различной конфигурации. Крупные дата-центры в основном специализируются именно на подобных типах услуг. В зависимости от страны расположения дата-центра имеются различные ограничения на трафик.
  4. Размещение сервера (Colocation). Размещение сервера клиента на площадке дата-центра за определенную плату. Стоимость зависит от энергопотребления и тепловыделения размещаемого оборудования, пропускной способности подключаемого к оборудованию канала передачи данных, а также размера и веса стойки.
  5. Выделенная зона (Dedicated area). В некоторых случаях владельцы дата-центра выделяют часть технологических площадей для специальных клиентов, как правило, финансовых компаний, имеющих строгие внутренние нормы безопасности. В этом случае дата-центр предоставляет некую выделенную зону, обеспеченную каналами связи, электроснабжением, холодоснабжением и системами безопасности, а клиент сам создает свой ЦОД внутри этого пространства.

Сетевая инфраструктура

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

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

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

Примечания

Ссылки

  • Описание и фотографии одного из дата-центров компании Яндекс
  • Project Blackbox (рус.) , SUN.com (англ.)
  • Коллекция полезных нормативов по строительству и эксплуатации дата-центров
  • Лист российских топ-игроков бизнеса коммерческих дата-центров

См. также

Wikimedia Foundation . 2010 .

Смотреть что такое "Центр обработки данных" в других словарях:

    центр обработки данных - центр обработки и хранения данных ЦОД Консолидированный комплекс инженерно технических средств, обеспечивающий безопасную централизованную обработку, хранение и предоставление данных, сервисов и приложений, а также вычислительную инфраструктуру… …

    Центр обработки данных при управлении приоритетными национальными проектами - центр обработки данных информационно технологический и программно технический комплекс, обеспечивающий автоматизацию процедур формирования, ведения, хранения и оперативного представления различным группам пользователей полной и достоверной… … Официальная терминология

    модульный центр обработки данных (ЦОД) - [Интент] Параллельные тексты EN RU Data Centers are a hot topic these days. No… … Справочник технического переводчика

    Связать? Подземный центр обработки данных расположен в парке Гризинькалнс в Риге (Латвия), и принадлежит оператору … Википедия

    - (мобильный ЦОД) или контейнерный центр обработки данных (контейнерный ЦОД) (от англ. Container Data Center), центр обработки данных, размещённый в специализированном транспортном контейнере с размещённым внутри него комплексом информационной … Википедия

    динамический центр обработки данных - Динамические центры обработки данных - это концепция аппаратной и программной архитектуры нового поколения. Ее основные принципы - предоставление сервисов для конечных пользователей и гарантированное выполнение соглашений об уровне… … Справочник технического переводчика

    интернет-центр обработки данных - Компания, предоставляющая услуги хостинга вычислительных платформ и простых Internet сервисов c немногими расширенными услугами. Тематики ЦОДы (центры обработки данных) EN internet data… … Справочник технического переводчика

    - (МЦОД) специализированное мобильное помещение с размещённым внутри комплексом информационной, телекоммуникационной и инженерной инфраструктуры, подключенный к каналам связи и предназначенный для хранения и обработки информации, а также оказания… … Википедия

Что такое UML

UML- унифицированный язык моделирования

UML (Unified Modeling Language - унифицированный язык моделирования) - язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью . UML был создан для определения, визуализации, проектирования и документирования в основном программных систем. UML не является языком программирования, но в средствах выполнения UML-моделей как интерпретируемого кода возможна кодогенерация.

Использование

Использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов системного проектирования и отображения организационных структур.

UML позволяет также разработчикам программного обеспечения достигнуть соглашения в графических обозначениях для представления общих понятий (таких как класс, компонент, обобщение (generalization), объединение (aggregation) и поведение, и больше сконцентрироваться на проектировании и архитектуре.

История

В 1994 году Гради Буч и Джеймс Рамбо, работавшие в компании Rational Software, объединили свои усилия для создания нового языка объектно-ориентированного моделирования. За основу языка ими были взяты методы моделирования, разработанные Бучем и Рамбо Object-Modeling Technique, (OMT). OMT был ориентирован на анализ, а Booch - на проектирование программных систем. В октябре 1995 года была выпущена предварительная версия 0.8 унифицированного метода Unified Method. Осенью 1995 года к компании Rational присоединился Айвар Якобсон, автор метода Object-Oriented Software Engineering - OOSE. OOSE обеспечивал превосходные возможности для спецификации бизнес-процессов и анализа требований при помощи сценариев использования. OOSE был также интегрирован в унифицированный метод.

На этом этапе основная роль в организации процесса разработки UML перешла к консорциуму OMG (Object Management Group). Группа разработчиков OMG, в которую также входили Буч, Рамбо и Якобсон, выпустила спецификации UML версий 0.9 и 0.91 в июне и октябре 1996 года.

На волне растущего интереса к UML к разработке новых версий языка в рамках консорциума UML Partners присоединились такие компании, как Digital Equipment Corporation, Hewlett-Packard, i-Logix, IntelliCorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle Corporation, Rational Software, Texas Instruments и Unisys. Результатом совместной работы стала спецификация UML 1.0, вышедшая в январе 1997 года. В ноябре того же года за ней последовала версия 1.1, содержавшая улучшения нотации, а также некоторые расширения семантики.

Последующие релизы UML включали версии 1.3, 1.4 и 1.5, опубликованные, соответственно в июне 1999, сентябре 2001 и марте 2003 года.

Формальная спецификация последней версии UML 2.0 опубликована в августе 2005 года. Семантика языка была значительно уточнена и расширена для поддержки методологии Model Driven Development - MDD (англ.). Последняя версия UML 2.3 опубликована в мае 2010 года.

UML 1.4.2 принят в качестве международного стандарта ISO/IEC 19501:2005.

Диаграммы

В UML используются следующие виды диаграмм (для исключения неоднозначности приведены также обозначения на английском языке):

Structure Diagrams:

  • Class diagram
  • Component diagram
  • Composite structure diagram
    • Collaboration (UML2.0)
  • Deployment diagram
  • Object diagram
  • Package diagram
  • Profile diagram (UML2.2)

Behavior Diagrams:

  • Activity diagram
  • State Machine diagram
  • Use case diagram
  • Interaction Diagrams:
    • Communication diagram (UML2.0) / Collaboration (UML1.x)
    • Interaction overview diagram (UML2.0)
    • Sequence diagram
    • Timing diagram (UML2.0)

Структурные диаграммы:

  • Классов
  • Компонентов
  • Композитной/составной структуры
    • Кооперации (UML2.0)
  • Развёртывания
  • Объектов
  • Пакетов
  • Профилей (UML2.2)

Диаграммы поведения:

  • Деятельности
  • Состояний
  • Вариантов использования
  • Диаграммы взаимодействия:
    • Коммуникации (UML2.0) / Кооперации (UML1.x)
    • Обзора взаимодействия (UML2.0)
    • Последовательности
    • Синхронизации (UML2.0)

Структуру диаграмм UML 2.3 можно представить на диаграмме классов UML:

Диаграмма классов

Диаграмма классов (Class diagram) - статическая структурная диаграмма, описывающая структуру системы, она демонстрирует классы системы, их атрибуты, методы и зависимости между классами.

Существуют разные точки зрения на построение диаграмм классов в зависимости от целей их применения:

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

Диаграмма компонентов

Диаграмма компонентов (Component diagram) - статическая структурная диаграмма, показывает разбиение программной системы на структурные компоненты и связи (зависимости) между компонентами. В качестве физических компонент могут выступать файлы, библиотеки, модули, исполняемые файлы, пакеты и т. п.

Диаграмма композитной/составной структуры (Composite structure diagram) - статическая структурная диаграмма, демонстрирует внутреннюю структуру классов и, по возможности, взаимодействие элементов (частей) внутренней структуры класса.

Подвидом диаграмм композитной структуры являются диаграммы кооперации (Collaboration diagram, введены в UML 2.0), которые показывают роли и взаимодействие классов в рамках кооперации. Кооперации удобны при моделировании шаблонов проектирования.

Диаграммы композитной структуры могут использоваться совместно с диаграммами классов.

Диаграмма развёртывания

Диаграмма развёртывания (Deployment diagram) - служит для моделирования работающих узлов (аппаратных средств, англ. node ) и артефактов, развёрнутых на них. В UML 2 на узлах разворачиваются артефакты англ. artifact ), в то время как в UML 1 на узлах разворачивались компоненты. Между артефактом и логическим элементом (компонентом), который он реализует, устанавливается зависимость манифестации.

Диаграмма объектов

Диаграмма объектов (Object diagram) - демонстрирует полный или частичный снимок моделируемой системы в заданный момент времени. На диаграмме объектов отображаются экземпляры классов (объекты) системы с указанием текущих значений их атрибутов и связей между объектами.

Диаграмма пакетов

Диаграмма пакетов (Package diagram) - структурная диаграмма, основным содержанием которой являются пакеты и отношения между ними. Жёсткого разделения между разными структурными диаграммами не проводится, поэтому данное название предлагается исключительно для удобства и не имеет семантического значения (пакеты и диаграммы пакетов могут присутствовать на других структурных диаграммах). Диаграммы пакетов служат, в первую очередь, для организации элементов в группы по какому-либо признаку с целью упрощения структуры и организации работы с моделью системы.

Диаграмма деятельности

Диаграмма деятельности (Activity diagram) - диаграмма, на которой показано разложение некоторой деятельности на её составные части. Под деятельностью (англ. activity ) понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов - вложенных видов деятельности и отдельных действий (англ. action ), соединённых между собой потоками, которые идут от выходов одного узла ко входам другого.

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

Аналогом диаграмм деятельности являются схемы алгоритмов по ГОСТ 19.701-90.

Диаграмма автомата

Диаграмма автомата (State Machine diagram, диаграмма конечного автомата , диаграмма состояний ) - диаграмма, на которой представлен конечный автомат с простыми состояниями, переходами и композитными состояниями.

Конечный автомат (англ. State machine ) - спецификация последовательности состояний, через которые проходит объект или взаимодействие в ответ на события своей жизни, а также ответные действия объекта на эти события. Конечный автомат прикреплён к исходному элементу (классу, кооперации или методу) и служит для определения поведения его экземпляров.

Диаграмма прецедентов

Диаграмма прецедентов (Use case diagram, диаграмма вариантов использования ) - диаграмма, на которой отражены отношения, существующие между акторами и прецедентами.

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

Диаграммы коммуникации и последовательности

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

Диаграмма коммуникации (Communication diagram, в UML 1.x - диаграмма кооперации , collaboration diagram ) - диаграмма, на которой изображаются взаимодействия между частями композитной структуры или ролями кооперации. В отличие от диаграммы последовательности, на диаграмме коммуникации явно указываются отношения между элементами (объектами), а время как отдельное измерение не используется (применяются порядковые номера вызовов).

Диаграмма последовательности (Sequence diagram) - диаграмма, на которой изображено упорядоченное во времени взаимодействие объектов. В частности, на ней изображаются участвующие во взаимодействии объекты и последовательность сообщений, которыми они обмениваются.

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

По причине того, что диаграммы Sequence и Collaboration являются разными взглядами на одни и те же процессы, Rational Rose позволяет создавать из Sequence диаграммы диаграмму Collaboration и наоборот, а также производит автоматическую синхронизацию этих диаграмм.

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

Этот тип диаграмм включает в себя диаграммы Sequence diagram (диаграммы последовательностей действий) и Collaboration diagram (диаграммы сотрудничества). Эти диаграммы позволяют с разных точек зрения рассмотреть взаимодействие объектов в создаваемой системе.

Диаграмма синхронизации

Диаграмма синхронизации (Timing diagram) - альтернативное представление диаграммы последовательности, явным образом показывающее изменения состояния на линии жизни с заданной шкалой времени. Может быть полезна в приложениях реального времени.

Преимущества UML

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

Критика

Несмотря на то, что UML достаточно широко распространённый и используемый стандарт, его часто критикуют из-за следующих недостатков:

  • Избыточность языка . UML часто критикуется, как неоправданно большой и сложный. Он включает много избыточных или практически неиспользуемых диаграмм и конструкций. Чаще это можно услышать в отношении UML 2.0, чем UML 1.0, так как более новые ревизии включают больше «разработанных-комитетом» компромиссов.
  • Неточная семантика . Так как UML определён комбинацией себя (абстрактный синтаксис), OCL (языком описания ограничений - формальной проверки правильности) и Английского (подробная семантика), то он лишен скованности присущей языкам, точно определённым техниками формального описания. В некоторых случаях абстрактный синтаксис UML, OCL и Английский противоречат друг другу, в других случаях они неполные. Неточность описания самого UML одинаково отражается на пользователях и поставщиках инструментов, приводя к несовместимости инструментов из-за уникального трактования спецификаций.
  • Проблемы при изучении и внедрении . Вышеописанные проблемы делают проблематичным изучение и внедрение UML, особенно когда руководство насильно заставляет использовать UML инженеров при отсутствии у них предварительных навыков.
  • Только код отражает код . Ещё одно мнение - что важны рабочие системы, а не красивые модели. Как лаконично выразился Джек Ривс, «The code is the design» («Код и есть проект»).,. В соответствии с этим мнением, существует потребность в лучшем способе написания ПО; UML ценится при подходах, которые компилируют модели для генерирования исходного или выполнимого кода. Однако этого всё же может быть недостаточно, так как UML не имеет свойств полноты по Тьюрингу и любой сгенерированный код будет ограничен тем, что может разглядеть или предположить интерпретирующий UML инструмент.
  • (Cumulative Impedance/Impedance mismatch). Рассогласование нагрузки - термин из теории системного анализа для обозначения неспособности входа системы воспринять выход другой. Как в любой системе обозначений UML может представить одни системы более кратко и эффективно, чем другие. Таким образом, разработчик склоняется к решениям, которые более комфортно подходят к переплетению сильных сторон UML и языков программирования. Проблема становится более очевидной, если язык разработки не придерживается принципов ортодоксальной объектно-ориентированной доктрины (не старается соответствовать традиционным принципам ООП).
  • Пытается быть всем для всех . UML - это язык моделирования общего назначения, который пытается достигнуть совместимости со всеми возможными языками разработки. В контексте конкретного проекта, для достижения командой проектировщиков определённой цели, должны быть выбраны применимые возможности UML. Кроме того, пути ограничения области применения UML в конкретной области проходят через формализм, который не полностью сформулирован, и который сам является объектом критики.

Литература

  • Крэг Ларман. Применение UML 2.0 и шаблонов проектирования = Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. - 3-е изд. - М .: Вильямс, 2006. - 736 с. - ISBN 0-13-148906-2
  • Джозеф Шмуллер. Освой самостоятельно UML 2 за 24 часа. Практическое руководство = Sams Teach Yourself UML in 24 Hours, Complete Starter Kit. - М .: Вильямс, 2005. - 416 с. - ISBN 0-672-32640-X
  • Грейди Буч, Джеймс Рамбо, Айвар Джекобсон. Язык UML. Руководство пользователя = The Unified Modeling Language user guide. - 2-е изд. - М ., СПб. : ДМК Пресс, Питер, 2004. - 432 с. - ISBN 5-94074-260-2
  • Буч Г., Якобсон А., Рамбо Дж. UML. Классика CS. 2-е изд. / Пер. с англ.; Под общей редакцией проф. С. Орлова - СПб. : Питер, 2006. - 736 с. ISBN 5-469-00599-2

Диаграмма классов занимает центральное место в проектировании объектно-ориентированной системы. Нотация классов используется на разных этапах проектирования и строится с различной степенью детализации. Язык UML применяется не только для проектирования, но и с целью документирования, а также эскизирования проекта. Я (в отличии от Гради Буча) не являюсь сторонником разработки проекта с использованием всех видов UML диаграмм, а также детального проектирования. Чаще всего я применяю UML для эскизирования, а также для проектирования по процессу ICONIX . В статье описана часть нотации классов UML, применение которой достаточно в большинстве случаев. Тут не будет информации о кратности ассоциаций и атрибутов, особенностях изображения параллельных операций, шаблонах (параметризованных классах) и ограничениях. При необходимости всю эту информации можно посмотреть в других книгах . Мы же ограничимся базовой частью нотации и больше внимания уделим применению диаграммы классов.

1 Элементы диаграммы классов

На диаграмме классов с помощью специальных символов изображаются типы данных программы и отношения между ними, хотя в некоторых случаях могут использоваться и некоторые другие элементы — пакеты и даже экземпляры классов (объекты) .

1.1 Символ класса

Символ класса на диаграмме может выглядеть различным образом в зависимости от детализации диаграммы:

Вопросы детализации будут рассмотрены в следующих разделах, а сейчас надо обратить внимание, что символ класса содержит имя (Player), набор операций (move , get_gealth) и атрибутов (pos , state). Для элементов класса могут задаваться тип, кратность, видимость и т.д.:

Формат спецификации атрибута:
видимость имя: тип [кратность] = значение_по_умолчанию

Формат спецификации операции:
видимость имя(аргумент: тип) = тип_возвращаемого_значения

В зависимости от параметра видимости элемент может быть:

  • приватным (private , доступен только внутри класса) — задается символом «минус» (-), может отображаться в виде квадрата;
  • защищенным (protected , доступен внутри класса, а также внутри классов-наследников) — задается символом «решетка» (#), может отображаться в виде ромба;
  • открытым (public , доступен всем) — задается символом «плюс» (+), может отображаться в виде круга.

Виртуальная функция и имя абстрактного класса выделяются курсивом, а статическая функция — подчеркивается.

1.2 Отношения классов

Диаграмма классов допускает различные виды отношений, рассмотрим их на части диаграммы модели некоторой игры:

В игре есть различные виды элементов (стены, сундуки, персонажи). Все эти элементы являются наследниками абстрактного класса AbstractItem , при этом часть из них умеет двигаться (такие элементы должны быть унаследованы от MovingItem). Наследование (отношение «является») изображается с помощью сплошной линии с закрытой стрелки, направленной в сторону суперкласса — на диаграмме класс MovingItem унаследован от AbstractItem , класс Player — от MovingItem и т.д. Штриховая линия с закрытой стрелкой задает отношение реализации (закрытое наследование).

Другой вид отношений между классами — включение, в объектно-ориентированном программировании различают два вида этого отношения — композицию и агрегацию. Напомню, что композиция — это разновидность включения, когда объекты неразрывно связаны друг с другом (время их жизни совпадает), в случае агрегации, время жизни различно (например, когда объект вложенного класса может быть заменен другим объектом во время выполнения программы).

Отношение композиции обозначается закрашенным ромбом, который рисуется со стороны включающего класса — так, класс MovingItem включает в себя класс Position , т.к. перемещающийся объект всегда имеет позицию. Отношение агрегации изображается незакрашенным ромбом — игрок (Player) агрегирует состояние (IPlayerState).

Если вы знакомы с паттернами State, Strategy или Delegation — секцию можно пропустить.
На приведенной выше диаграмме используется шаблон проектирования Состояние (State), являющийся разновидностью шаблона Делегирование (Delegation) и близкой к паттерну Стратегия (Strategy). Суть делегирования заключается в том, что для упрощения логики работы класса, часть его работы может быть передана (делегирована) вспомогательному классу. В свою очередь, паттерн State может быть добавлен, например, на этапе рефакторинга если в нескольких функциях класса встречается разлапистая проверка состояния объекта для выполнения тех или иных действий. В нашем случае персонаж может взаимодействовать с ежом, предположим, что если персонаж движется сидя и контактирует с ежом — у него должно уменьшится здоровье, а если стоя — увеличится счет (points). Кроме ежа могла быть еда, противники, патроны и т.д. Для демонстрации такого паттерна создан абстрактный класс IPlayerState и два наследника StayState и SeatState . В классе Player , при нажатии кнопки Ctrl состояние могло бы меняться на SeatState , а при отпускании — на StayState . Таким образом, при выполнении state->process_hedgehog(this) наш игрок каким-то образом, определенным объектом state , проконтактирует с ежиком.

Шаблон проектирования Delegation (и все его разновидности) — хороший пример для демонстрации агрегации. В нашем случае состояние игрока может меняться за счет изменения объекта по указателю, т.е. время жизни объектов различается.

Наиболее общий вид отношений между классами — ассоциация, обозначается сплошной линией (иногда со стрелкой). Вообще, и композиция, и агрегация, и обобщение (наследование) — являются частными случаями ассоциации. В нашей диаграмме с помощью ассоциации показано, что класс IPlayerState изменяет stats (health и points) объекта Player . Ассоциация может иметь название связи, поясняющую суть отношения. В качестве названия связей композиции и агрегации часто используется имя соответствующей переменной. Кроме того, ассоциация может иметь кратность, она задается на концах линии:

  • 1 — одна связь (на нашей диаграмме показано, что один игрок включает в себя один экземпляр класса IPlayerState);
  • * любое число связей (если бы на диаграмме был класс игрового поля, то с помощью звездочки можно было бы показать, что оно может содержать произвольное число игровых элементов);
  • [от..до] — может задаваться диапазоном. Так диапазон эквивалентен звездочке, но если мы захотим показать, что должно присутствовать более одного объекта — можем записать

Последний вид отношений, который мы рассмотрим — зависимость, изображается штриховой (прерывистой) линией. Если есть стрелка — то направлена от зависимого к независимому классу, если стрелки нет — то классы зависят друг от друга. Под зависимостью понимается зависимость от интерфейса, т.е. если интерфейс независимого класса изменится — то придется вносить изменения в зависимый класс. В нашей диаграмме SeatState и StayState зависят от класса Player , т.к. обращаются к его методам для изменения характеристик игрока. Для изображения отношения дружбы между классами используется отношение зависимости с подписью friend .

Очевидно, что не все виды отношений стоит отображать на диаграмме и одни отношения могут быть заменены другими. Так, я убрал бы из нашего примера отношения зависимости, однако при некоторых обстоятельствах (например при эскизировании на маркерной доске) они были бы вполне уместны. Расстановка кратности и имен связей тоже выполняется далеко не во всех случаях. Вообще, не стоит помещать на диаграмму лишнюю информацию. Главное — диаграмма должна быть наглядной.

2 Использование диаграммы классов

Мы рассмотрели основные обозначения, используемые на диаграммах классов — их должно быть достаточно в подавляющем большинстве случаев. По крайней мере, владея этим материалом вы легко сможете разобраться в диаграммах шаблонов проектирования и понять эскиз любого проекта. Однако, как правильно строить такие диаграммы? В каком порядке и с какой степенью детализации? — ответ зависит от целей построения диаграммы, поэтому приведенный материал будет разбит на подразделы в соответствии с целями моделирования.

Стоит отметить, что у Гради Буча советы по использованию UML даны в книге «Руководство пользователя» , но в его «Объектно-ориементированном анализе» можно найти хорошие примеры и критерии качества проекта. Леоненков и вовсе избегает этой темы, оставляя лишь ссылки на литературу, конкретные рекомендации я нашел у Лармана и Розенберга , часть материала основана на моем личном опыте. Фаулер рассматривает UML как средство эскизирования, поэтому у него свой (сильно отличающийся от Буча и Розенберга) взгляд на диаграмму классов .

2.1 Диаграмма классов как словарь системы, концептуальная модель

Словарь системы формируется параллельно с разработкой диаграммы прецедентов, т.е. технического задания. Выглядит это следующим образом — вы задаете заказчику вопросы типа «что еще может сделать пользователь?», «что произойдет (должна выдать система) если пользователь сделает нажмет на <эту> кнопку?», а ответы на них записываете в виде описания прецедентов. Однако, заказчик, давая ответы может называть одни и те же вещи разными именами — из личного опыта: говоря «клетка», «пересечение», «узел» и «ячейка» заказчик может иметь ввиду одно и тоже. В вашей же системе все эти понятия должны быть представлены одной абстракцией (классом/функцией/…). Для этого при общении с заказчиком стоит фиксировать терминологию в виде словаря системы — очень хорошо с этим справляется диаграмма классов.

Гради Буч для построения словаря системы предлагает выполнять в следующем порядке :

  1. анализируя прецеденты, определить какие элементы пользователи и разработчики применяют для описания задачи или ее решения;
  2. выявить для каждой абстракции соответствующее ей множество обязанностей (ответственности). Проследите правильность распределения обязанностей (в том числе, соблюдение );
  3. разработайте процедуры и операции для выполнения классами своих обязанностей.

В качестве примера рассмотрим словарь системы для игры «Сапер». На приведенной ниже диаграмме показан вариант, который получился в результате обсуждения задачи у моего студента. Видно, что на диаграмме изображены сущности и их атрибуты, понятные для заказчика, эту диаграмму стоит иметь перед глазами при составлении прецедентов чтобы не называть «Клетку» — «Полем», вводя всех в заблуждение. При построении словаря системы следует избегать нанесения на диаграмму функций классов, т.к. настолько детализированное распределение обязанностей лучше выполнять после построения диаграмм взаимодействия.

В процессе проектирования словарь системы может дополняться, Розенберг очень хорошо демонстрирует это в своей книге описывая итеративный процесс проектирования ICONIX . Например, после рассмотрения нескольких прецедентов может оказаться, что несколько классов реализуют один и тот же функционал — для решения проблемы надо более четко прописать обязанности каждого класса, возможно, добавить новый класс и перенести часть этих обязанностей ему.

Ларман предлагает строить концептуальную модель системы — это примерно то, что мы описали как словарь системы, но помимо терминов предметной области в ней фиксируются некоторые отношения, понятные заказчику. Например, заказчик понимает (и фиксирует в техническом задании), что <покупку> оформляет <продавец> — следовательно, между продавцом и покупкой существует отношение ассоциации "оформляет" . Я рекомендую строить концептуальную модель, дорабатывая словарь системы, хотя Ларман рекомендует сначала добавлять ассоциации, а затем — атрибуты.

2.2 Диаграмма классов уровня проектирования

В любом объектно-ориентированном процессе проектирования диаграмма классов является результатом, т.к. является моделью, наиболее близкой к реализации (коду). Существуют инструменты, способные преобразовать диаграмму классов в код — такой процесс называется кодогенерацией и поддерживается множеством IDE и средств проектирования. Например, кодогенерацию выполняет Visual Paradigm (доступно в виде плагинов для множества IDE), новые версии Microsoft Visual Studio, такие средств UML-моделирования как StarUML, ArgoUML и др. Чтобы построить по диаграмме хороший код, она должна быть достаточно подробной. Именно о такой диаграмме идет речь в этом разделе.

До Ларману до начала построения диаграммы классов уровня проектирования должны быть построены диаграммы взаимодействия и концептуальная модель системы. При этом порядок построения диаграммы следующий:

  1. перенести классы с диаграммы последовательности;
  2. добавить атрибуты концептуальной модели;
  3. добавить имена методов по анализу диаграмм взаимодействия (например, );
  4. добавить типы атрибутов и методов;
  5. добавить ассоциации (на основании атрибутов — отношения композиции и агрегации);
  6. добавить стрелки (направление ассоциаций)
  7. добавить ассоциации, определяющие другие виды отношений (в первую очередь, наследование).

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

Например, при анализе задания на игру «Сапер» мы выделили классы и, но будут ли эти классы в окончательном проекте или останутся только в воображении? — решение можно принять только проанализировав диаграммы взаимодействия. Ведь возможен и такой код:

Enum class CellType { EmptyOpened, EmptyClose, EmptyCloseFlagged, MineOpened, MineClose, MineCloseFlagged }; class PlayingGround { // ... CellType **m_ground; }

Поясню (для тех, кто не пишет на С++) — тут создается перечисление, которое задает тип ячейки. Ячейка может принимать одно из этих шести значений (пустая открытая, пустая закрытая, пустая закрытая с флажком и т.п.). В таком случае, ячейка никак не сможет сама реагировать на нажатия мыши и отвечать за свое отображение (например пустая открытая должна выводить число мин вокруг себя) — все эти обязанности, видимо, лягут на класс PlayingGround .

Пример выше утрированный и однозначно не является образцом хорошего проектирования — на класс PlayingGround возложено слишком много обязанностей, но могли ли мы учесть это при анализе технического задания? Сможем ли мы это сделать до разработки диаграмм взаимодействия для проекта любой сложности? — именно поэтому построение диаграммы классов является последним этапом проектирования.

2.3 Диаграмма классов для эскизирования, документирования

Под эскизированием понимают моделирование некоторой (интересной нам в данный момент) части системы. Например, эскизирование может выполняться на маркерной доске когда в вашу компанию попадет новый сотрудник и вы будете помогать ему «влиться» в существующий проект. Очевидно, что если если дать человеку диаграмму классов уровня проектирования — разбираться он будет долго. Суть эскизирования в избирательности — вы выносите на диаграмму только те элементы, которые важны для пояснения того или иного механизма.

Сторонником применения UML для эскизирования является Фаулер , который считает, что целостный процесс проектирования с использованием UML слишком сложен. Эскизирование применяется очень часто (не только при объяснении проекта на маркерной доске):

  • в любой книге, посвященной паттернам проектирования, вы найдете массу UML диаграмм, выполненных в этом стиле;
  • при моделировании прецедента выбираются классы, за счет которых этот прецедент реализуется. Моделирование прецедента выполняется при рефакторинге;
  • в документацию для разработчиков нет смысла вставлять диаграмму классов уровня проектирования — гораздо полезнее описать наиболее важные (ключевые) моменты системы. Для этого строятся эскизные диаграммы классов и диаграммы взаимодействия. Также существуют специальные инструменты построения документацию по готовому коду — такие как JavaDoc или , в частности они строят диаграмму классов, но чтобы документация была понятной, в исходный код программы требуется вносить комментарии специального вида.

Каких-либо конкретных рекомендаций к эскизам диаграмм классов предложить невозможно, кроме того, обычно это достаточно простая задача. Важно понимать суть — избирательность представления элементов снижает сложность восприятия диаграммы.

2.4 Диаграмма классов для моделирования БД

Частным случаем диаграммы классов является диаграмма «сущность-связь» (E-R диаграмма), используемая для моделирования логической схемы базы данных. В отличии от классических E-R диаграмм, диаграмма классов позволяет моделировать поведение (триггеры и хранимые процедуры).

Обычно ситуация выглядит следующим образом — вы разработали систему, состояние которой нужно сохранять между запусками, например:

  • в вашей игре надо хранить информацию о достижениях пользователя — пройденные уровни, набранные очки и т.п.;
  • если игра сетевая — то может существовать сервер, на котором хранятся достижения разных игроков;
  • ваше приложение для телефона записывает координаты пользователя и позволяет ему оставлять пометки на карте. Вся эта информация тоже не должна уничтожаться после закрытия приложения.

Хранимые между запусками данные должны каким-то образом загружаться по запросу пользователя, т.е. должны задаваться параметры соответствующих классов. Например, приложение должно получить из базы данных список треков (маршрутов) и отобразить его в виде списка в меню программы. При выборе элемента списка — запросить в БД параметры трека, создать объект трека и отобразить его на карте. В любом случае, данные с базы используются при инициализации объектов программы — это важно понимать.

Для моделирования схемы БД с помощью диаграммы классов нужно :

  1. идентифицировать классы, данные которых должны храниться между запусками приложения (или обращениями пользователя) и нанести эти классы на отдельную диаграмму;
  2. детально специфицировать атрибуты классов, ассоциации и кратности. В E-R модели кратности имеют огромное значение — так например, при наличии кратности «многие-ко-многим» придется создавать вспомогательную таблицу. Используйте специфические стереотипы классов и пометки атрибутов (для задания первичных и вторичных ключей, например) ;
  3. решить проблемы использования полученной диаграммы в качестве физической модели базы данных — циклические ассоциации, n-арные ассоциации и т.д. При необходимости создать промежуточные абстракции;
  4. раскрыть операции, важные для доступа к данным и поддержания целостности;

Заключение и список литературы

В статье я постарался описать наиболее существенные элементы диаграммы классов, а также аспекты их применения. Просматривается, что диаграмма строится на начальном этапе проектирования (концептуальная модель) и является его результатом. На всех этапах проектирования созданная в начале диаграмма классов дорабатывается, т.е. я рассматриваю итеративный процесс (такой как RUP или ICONIX). Кроме того, показано, использование диаграммы классов в других целях — эскизирования, документирования, моделирования логической схемы БД. На других страницах этого блога вы можете найти множество примеров использования диаграммы классов.

  • диаграмма ;
  • множество диаграмм, демонстрирующих шаги рефакторинга для приведения проекта в соответствие ;
  • диаграммы классов для .
  • Буч Градди Объектно-ориентированный анализ и проектирование с примерами приложений, 3-е изд. / Буч Градди, Максимчук Роберт А., Энгл Майкл У., Янг Бобби Дж., Коналлен Джим, Хьюстон Келли А.: Пер с англ. - М.: ООО «И.Д. Вильямс», 2010. - 720 с.
  • Леоненков, А.В. Самоучитель UML 2 / А.В. Леоненков. – СПб.: БХВ — Петербург, 2007. – 576с.
  • Ларман, К. Применение UML и шаблонов проектирования: Уч. Пос / К. Ларман. — М.: Издательский дом «Вильямс», 2001. — 496 с.
  • Розенберг Д., Скотт К. Применение объектного моделирования с использованием UML и анализ прецедентов.: Пер. с англ. М.: ДМК Пресс, 2002
  • Бадд Т. Объектно-ориентированное программирование в действии: Пер с англ. — СПб: «Питер», 1997. — 464 с. 2002
  • Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя: Пер. с англ. — М.: ДМК, 2000. — 432 с.
  • Фаулер, М. UML. Основы / М. Фаулер, К. Скотт; пер. с англ. – СПб.: Символ – Плюс, 2002. – 192 с.
  • — URL: https://сайт/archives/1914
  • — URL: https://сайт/archives/2769
  • UML data modeling — URL: http://www.agiledata.org/essays/umlDataModelingProfile.html
  • — URL: https://сайт/archives/887
  • — URL: https://сайт/archives/2400
  • — URL: https://сайт/archives/1372



Top