В России имеется множество предприятий электроэнергетики, и эффективность работы каждого из них, да и отрасли в целом, требует выработки общих механизмов обмена информацией. Необходимо наладить взаимодействие независимых фирм, подразделений территориальнораспределенных компаний и обеспечить интеграцию разрозненных приложений в рамках каждого предприятия электроэнергетики. Мировое ИТ-сообщество предложило международные стандарты Common Information Model и Generic Interface Definition, которые могут стать основой для успешной разработки и интеграции приложений.

Институт Electric Power Research Institute (EPRI, www.epri.com) приступил к разработке стандартов в области энергетики в рамках исследовательского проекта Control Center Application Program Interface (CCAPI). В результате появилась группа стандартов серии 61970, описывающих программный интерфейс приложений для систем управления энергетикой. Сегодня некоторые стандарты этой серии уже приняты Международной электротехнической комиссией (IEC, www.iec.ru).

Цель проекта CCAPI — облегчить интеграцию приложений и систем управления энергетикой, разработанных независимо друг от друга разными производителями, в рамках системы управления энергетикой для эффективного управления генерацией и распределением электроэнергии. Сроки и стоимость интеграции уменьшаются за счет общего подхода к описанию объектов электроэнергетики и создания стандартизованных программных интерфейсов. Ключевые элементы этого проекта — Common Information Model (CIM), общая информационная модель объектов электроэнергетики, описывающая стандартным образом информационную инфраструктуру предприятия, а также Generic Interface Definition (GID), спецификация интерфейсов, которые позволяют организовать взаимодействие систем.

Описание объектов инфраструктуры

Сущности прикладной области — электроэнергетики — представляются в CIM как классы объектов с атрибутами и связями. В уже принятом стандарте IEC 61970 Part 301 Common Information Model Base описаны основные классы объектов электроэнергетики (рис. 1). Готовятся стандарты IEC 61970 Part 302 Common Information Model Finance, Energy Scheduling, Reservation, IEC 61970 Part 303 Common Information Model Scada и ряд других.

CIM позволяет построить модель энергетической фирмы или группы компаний на основе описания всех объектов электроэнергетики (электростанции, ЛЭП, подстанции, трансформаторы, измерения, расписания и т.п.) и связей между ними (скажем, «компания управляет электростанцией»). Каждому объекту присваивается уникальный идентификатор ресурса (universal resource identifier, URI). В результате формируется общее представление о предприятиях электроэнергетики, элементах их инфраструктуры и оборудовании, а также создается стандартизованное, не зависящее от поставщиков программных продуктов описание инфраструктуры энергетической фирмы или группы компаний. На базе общей модели проще разрабатывать новые приложения (можно использовать готовый набор классов), внедрять их (инфраструктура предприятия описана стандартным образом), налаживать обмен информацией между системами, применяющими единую информационную модель.

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

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

Классы объектов CIM помогают не только при разработке и внедрении приложений в рамках одной системы управления энергетикой. Стандарт CIM удобно применять и в тех случаях, когда предприятию или группе компаний необходима общая модель энергетической системы для налаживания информационного обмена. Разрабатываются стандарты представления CIM-модели в XML (IEC 61970 Part 501 CIM RDF Schema) и стандарты обмена моделями через XML (IEC 61970 Part 503 CIM XML Model Exchange Format). В XML можно представить классы объектов электроэнергетики и сами объекты со значениями их атрибутов, в том числе со ссылками на другие объекты. Причем это относится как к модели в целом, так и ко всем изменениям в ней (рис. 2). Приложения должны уметь выгружать CIM-модель в определенном XML-формате и загружать модель из XML. Импорт и экспорт всей модели могут пригодиться при внедрении системы, а ее фрагмента — при работе нескольких приложений с общей CIM-моделью и необходимости синхронизировать изменения в моделях. Использование стандартного механизма устраняет издержки на разработку и согласование форматов обмена.

Рис. 2. Фрагмент XML-документа c данными CIM-модели

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

Еще одно важное преимущество стандартов для энергетических компаний — возможность оперативно заменять совместимое с CIM приложение более новой версией или приложением другого поставщика. Если все эти приложения используют CIM-модель как основу для построения логической схемы данных, то исходные данные уже введены и правильно структурированы. Можно выгрузить эти данные в XML и загрузить модель в новое приложение.

Уже несколько лет ведущие разработчики систем для электроэнергетики тестируют свои приложения на совместимость и соответствие CIM-стандарту. Например, в приложение загружается CIM-модель, запускается расчетная задача, затем модель выгружается и загружается в приложение другого поставщика. Расчетная задача, запущенная во втором приложении, должна показать те же результаты, какие были получены в приложении первого поставщика.

Интеграция приложений

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

GID описывает четыре программных интерфейса, основанных на индустриальных стандартах Object Management Group и OPC Foundation и дополненных средствами решения специфических задач электроэнергетики.

  • Generic Data Access (GDA) — интерфейс для работы с данными и метаданными CIM-модели. Можно как получать, так и модифицировать данные, причем пользователь не обязательно должен иметь информацию о CIM-модели. GDA позволяет осуществлять навигацию по CIM-модели без знания этой модели (например, получать все свойства класса или все объекты, связанные с заданным объектом). Интерфейс основан на стандарте OMG Data Access Facility (DAF).
  • Generic Eventing and Subscription (GES) — интерфейс, обеспечивающий публикацию сообщений и получение этих сообщений определенными подписчиками. GES — независимый от поставщиков интерфейс для работы с интеграционными продуктами (например, с системой гарантированной доставки сообщений IBM MQ Series, с интеграционной платформой InterSystems Ensemble и т.п.). Интерфейс базируется на стандартах OMG Data Acquisition from Industrial Systems (DAIS) и OPC Foundation Simple Eventing.
  • High Speed Data Access (HSDA) — интерфейс для передачи больших объемов данных из SCADA-систем. Он позволяет запрашивать информацию о схеме (классах) и об экземплярах этих классов, содержащих данные реального времени. Используя HSDA, можно запрашивать данные SCADA-систем, организовывать их публикацию и подписку на изменения. Интерфейс базируется на стандарте OMG DAIS и спецификации OPC Foundation Data Access.
  • Time Series Data Access (TSDA) — интерфейс, который позволяет эффективно передавать временные ряды (архивные данные). Он позволяет запрашивать информацию о схеме (классах) и об экземплярах этих классов, содержащих временные ряды. С помощью TSDA можно получать информацию, организовывать публикацию и подписку на изменения. Интерфейс предназначен для извлечения исторических/архивных данных и основан на стандарте OMG Historical Data Access From Industrial Systems (HDAIS).

В качестве примера рассмотрим интерфейс Generic Data Access, который предназначен для работы с данными и метаданными CIM-модели. Любое приложение, которое обеспечивает GDA-интерфейс, должно предлагать набор сервисов для просмотра и редактирования данных клиентской частью приложения или другими приложениями. В GDA специфицирован сервис Resource Query Service, который содержит набор методов для запроса данных из приложения. Например, инструмент get_values по идентификатору ресурса (объекта электроэнергетики) должен вернуть описание ресурса, а метод get_child_values по идентификатору ресурса должен вернуть ресурсы, связанные с заданным. Используя набор специфицированных сервисов, клиентская часть приложения может через интерфейс GDA работать c данными и метаданными CIM-модели.

В Международной электротехнической комиссии рассматриваются следующие GID-стандарты: IEC 61970 Part 401 Component Interface Specification Framework, IEC 61970 Part 402 Common Services, IEC 61970 Part 403 Generic Data Access, 61970 Part 404 High Speed Data Access, 61970 Part 405 Generic Eventing and Subscription, 61970 Part 407 Time Series Data Access. Все эти стандарты не накладывают ограничений на технологии разработки интерфейсов приложений главное — обеспечить реализацию требований стандарта. Задача создания интерфейсов возлагается на разработчиков приложений. В зависимости от того, какой тип GID-интерфейса необходим приложению (GDA, GES, HSDA или TSDA), какие данные нужно передавать (например, модель классов объектов электроэнергетики или поток телеизмерений), на каких программно-аппаратных платформах будет работать приложение, и от ряда других факторов разработчики приложений выбирают конкретную технологию для реализации интерфейса. Можно создавать интерфейсы в соответствии со стандартами GID, например на языках программирования C++ или Java, обеспечивать доступ к интерфейсам GID с применением CORBA, COM, Web-сервисов и других технологий.

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

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

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

CIM и GID на предприятиях энергетики

Каким же образом предприятия электроэнергетики могут использовать стандарты CIM и GID? Как создать общее описание инфраструктуры предприятия? Как решить проблему единой идентификации объектов электроэнергетики? Как перейти от набора приложений, каждое из которых основано на собственной логической модели данных и является «закрытым» для других приложений (или в лучшем случае обеспечивает собственный интерфейс), к CIM-совместимым приложениям, предоставляющим GID-интерфейсы?

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

Российским разработчикам стоит обратить внимание на данные стандарты, так как их применение позволит использовать опыт, накопленный мировым энергетическим сообществом, для решения проблем, которые крайне актуальны и в России (сложность внедрения новых систем, проблемы интеграции приложений, отсутствие согласованных данных об одних и тех же объектах в различных приложениях энергетической компании). Однако приложения, которые уже работают на предприятиях электроэнергетики, можно модернизировать по мере необходимости интеграции с новыми CIM/GID-совместимыми системами и при этом можно ограничиться реализацией только тех частей стандарта, которые требуются для решения конкретной интеграционной задачи. К примеру, к стандартам CIM может быть приведена общая нормативно-справочная информация, которая используется в РАО ЕЭС, ОАО «Системный оператор — Центральное диспетчерское управление Единой энергетической системы» (СО-ЦДУ ЕЭС — www.so-cdu.ru), ОАО «Федеральная сетевая компания Единой энергетической системы», Некоммерческом партнерстве «Администратор торговой системы оптового рынка электроэнергии Единой энергетической системы», а также в других предприятиях электроэнергетики. Это позволило бы значительно упростить информационное взаимодействие этих организаций и решить проблему единой идентификации и описания объектов электроэнергетики.

Так как предприятия должны обмениваться информацией, для отечественной энергетики было бы крайне полезно создать единую CIM-модель объектов, описывающую инфраструктуру компаний и групп компаний. Часто для того чтобы описать инфраструктуру предприятия, требуется расширить CIM-модель, добавив новые классы, атрибуты классов и связи между ними. CIM-стандарты предусматривают возможность расширения. При расширении стандарта необходимо, во-первых, полнее использовать классы, предоставляемые стандартом, минимизируя расширения, во-вторых, в процессе доработки стандарта должны по возможности участвовать все предприятия, которые собираются обмениваться информацией в CIM-моделях. В противном случае обмен расширенными CIM-моделями потребует от каждого предприятия реализации собственных механизмов обработки дополнительной информации. Эти задачи мог бы решать координационный совет по изучению и адаптации CIM/GID-стандартов, в который могут войти представители ведущих энергетических предприятий. Этот совет мог бы создать российскую версию стандарта, централизованно ввести в стандарт расширения, отражающие специфику российской электроэнергетики. Такая работа была бы полезна всем предприятиям отрасли. Решение о создании такого координационного совета было принято в сентябре 2004 года на семинаре «Общая информационная модель (CIM) для РАО ЕЭС России». Работа подобного совета не исключает частных случаев расширения стандарта для решения задач, специфических для конкретной компании или группы компаний.

Вадим Федоров (vadim@intersystems.ru) — ведущий консультант компании InterSystems (Москва).


Инструментальные средства

Инструментальные средства для работы с CIM и GID выпускаются западными разработчиками программного обеспечения, такими как Siemens, ABB, Areva и др. Первое отечественное инструментальное средство, ориентированное на работу с CIM, создано компанией «Лаборатория 3 ИТ» (www.lab3it.com) совместно с Лабораторией 15 ОАО «ВНИИЭ». Этот инструментарий, получивший название «CIMModeller-Каскад», можно использовать для описания инфраструктуры энергетического предприятия, как инструментарий для расширения CIM-стандартов и как платформу разработки и интеграции новых приложений в электроэнергетике. «CIMModeller-Каскад» обеспечивает совместную работу нескольких групп аналитиков над расширением CIM-стандарта, что достигается за счет возможности редактирования структуры CIM-модели и экспорта и импорта полученных моделей в XML.

Энергетические компании могут использовать «CIMModeller-Каскад» для описания своей инфраструктуры, создавая собственные модели или загружая подготовленные фрагменты CIM-модели из XML-документов. Кроме того, в состав «CIMModeller-Каскад» входит графический редактор, который обеспечивает автоматическое создание режимных схем и объектов баз данных оборудования на основе представленных в формате СО-ЦДУ ЕЭС данных о топологии сети. В результате появляется унифицированное, стандартизованное, независимое от производителя программных средств описание инфраструктуры предприятия, в котором каждый объект энергетики имеет уникальный идентификатор.

Рис. Архитектура «CIMModeller-Каскад»

Полученную CIM-модель можно выгрузить в XML и загрузить в любое приложение, созданное в соответствии со стандартом CIM. Если это приложение к тому же поддерживает GID-интерфейс (в «CIMModeller-Каскад» реализован GDA-интерфейс), то оно может использовать «CIMModeller-Каскад» как объектно-ориентированное хранилище данных, обращаясь через GID-интерфейс к объектам.

Разработчики приложений для электроэнергетики могут применять «CIMModeller-Каскад» как платформу для построения новых систем. Вместо реализации собственного хранилища объектов можно использовать готовую систему, которая предоставляет стандартизированные интерфейсы. Таким образом, разработчикам удастся сконцентрироваться на решении прикладных задач и ускорить разработку новых систем, соответствующих современным международным стандартам. Важно отметить, что системы, которые станут работать через GID-интерфейс с «CIMModeller-Каскад», будут взаимодействовать и с любыми другими приложениями, предоставляющими GID-интерфейсы. В такой взаимозаменяемости и состоит одно из преимуществ стандартов.

«CIMModeller-Каскад» использует для хранения объектов и метаданных постреляционную СУБД InterSystems Cache, поддерживающую объектную модель, что позволяет разработчикам создавать приложения в виде набора классов объектов. Серверная часть CIMModeller функционирует на платформах Windows, Linux/Unix и Mac OS. Если необходимы высокая надежность и масштабируемость, могут применяться отказоустойчивые кластеры, резервные серверы, многосерверные конфигурации и ряд других решений. Разработчики могут создавать новые интерфейсы для «CIMModeller-Каскад», применяя ODBC, JDBC, интерфейсы для .Net, C++, Java, Web-сервисы, интерфейсы к реляционным СУБД.

Если при внедрении «CIMModeller-Каскад» предполагается интеграция с другими приложениями электроэнергетики, можно развернуть «CIMModeller-Каскад» на платформе для интеграции и разработки приложений InterSystems Ensemble. Это дает ряд дополнительных преимуществ, связанных с интеграцией приложений, таких как специализированные адаптеры для взаимодействия с приложениями (в том числе на основе GID-интерфейсов) и механизмы обмена данными с помощью сообщений (скажем, «публикация-подписка»). Ensemble позволяет выполнять интеграционные проекты на предприятиях электроэнергетики, например интегрировать эталонное хранилище объектов под управлением «CIMModeller-Каскад» с приложениями, эксплуатируемыми энергетической компанией.