Конференция "Корпоративные базы данных'2001"

Технологии интеграции компании Oracle на основе XML и Middleware

Глеб Ладыженский, Oracle Россия

Введение

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

Наибольший интересИнтерес— первоначально средневековый коммерческий и правовой термин (лат.interesse), обозначавший «возмещение ущерба». Отсюда развились, во-первых, чисто юридическое понятие интереса (уже в XIV веке— то, что затрагивает правовые интересы лица), и, во-вторых, финансовое понятие интереса (в XVI веке, сначала в значении «проценты за ссуду», т.е. страховка за риск невозврата). вызывает возможность организации обмена электронными документами между приложениям при помощи стандарта XML. В силу самоопределенности XML-документов, приложения могут передавать друг другу данные через XML-документы, не имея никакой дополнительной информации о струткуре передаваемых данных. Дело в том, что приложения могут работать с XML-документами нормальным образом, не привлекая для этого соответствующий DTD (Document Type Definition), то есть в общем случае двум приложениям, чтобы понять один XML-документ, не нужно пользоваться каким-то общим DTD, задающим XML-документ. Как раз этот факт делает обмен документами между приложениями простым, гибким и надежным.

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

1. Поддержка XML в Oracle

Корпорация Oracle поставляет набор компонентов, утилит и интерфейсов для организации работы с XML-документами. Этот набор включает:

  • Сервер реляционных баз данных Oracle8i (скоро будет доступен Oracle9i)
  • Расширение сервера interMedia
  • Программы-анализаторы XML-документов для Java, C, C++, PL/SQL (XML Parsers)
  • XSLT-процессоры
  • Генераторы XML-классов (Java и C++)
а также специальные утилиты
  • XML SQL Utility for Java
  • XSQL Servlet
  • XML Transviewer Beans (в данной статье не рассматривается)

2. Стратегии хранения XML-документов в базе данных Oracle

Существуют три базовых стратегии хранения XML-документов в базе данных Oracle

(1). Хранение XML-документов (вместе с тэгами, то есть полностью) как отдельных неделимых объектов. Документы храняться как данные типа CLOB или BLOB.

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

(3). Смешанное хранение документов и данных с использованием представлений (views)

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

Oracle умеет хранить документы такого типа в различных форматах (MS Word, WordPerfectWordPerfect— компьютерная программа для электронной обработки текстов. Пик её популярности приходится на конец 1980-х— начало 1990-х годов XX века. В это время программа фактически являлась стандартным текстовым редактором, который затем был вытеснен с рынка редактором Microsoft Word. Хотя версия для MS-DOS была самой известной, секрет популярности WordPerfect до сих пор заключается в том, что программа доступна для целого ряда компьютеров и операционных систем, включая Mac OS, Linux, Apple IIe, Apple IIgs, самых популярных версий Unix, VMS, Data General, System/370, AmigaOS, Atari ST, OS/2 и NeXTSTEP. Существует портированная на Java версия. До появления OpenOffice.org, WordPerfect, вероятно, был первым платформо-независимым офисным приложением., Acrobat и так далее), более того, организовывать по ним эффективный изощренный поиск и в том числе с использованием морфологии русского языка. В смысле особенностей хранения и обработки XML-документы ничем не отличаются от документов других форматов и сервер Oracle хранит их как большие объекты и не делает никакого различия между ними и, например, документами в формате MS Word.

Если документ структурно корректен и содержит элементы, которые могут обновляться и вообще использоваться по отдельности, а не как единое целое, то такой документ можно назвать датацентрическим. Обычно такие документы включают один или несколько элементов со сложной структурой. Примерами могут послужить бланкиБланки — многозначный термин, значения которого зависят от ударения заказов, финансовые счета и т.д., то есть документы на базе сложных форм. Сервер Oracle8i предоставляет адекватные структуры для хранения и обработки элементов сложных документов. Речь идет об объектах в базе данных Oracle, конкретно - о типах, ссылках и коллекциях (collections). Возможны два варианта отображения структурированных XML-документов в объектно-реляционные структуры базы данных Oracle:

  • Хранение аттрибутов элементов XML-документов только в таблицах базы данных и использование объектных представлений для воспроизведения структуры XML-документов;
  • Хранение структурированных элементов XML в объектных таблицах

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

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

Наконец, если необходимо обрабатывать документы смешанных типов, когда имеются как структурированные, так и неструктурированные данные в формате XML, рассматриваемые, тем не менее, как единый документ, целесообразно использовать представления Oracle. Они позволяют конструировать объекты "на лету", комбинируя данные, которые храняться в различном виде. Таким образом, можно хранить структурированные данные (такие, например, как данныеДанные (калька от лат.data) — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. о сотрудниках, заказчиках и т.д.) в одной точке с использованием объектно-реляционных таблиц, и хранить неструктурированные данные (такие как описания и комментарии) как данные типа CLOB. Когда необходимо обновить данные в целом, можно попросту создать структуру из различных "кусочков" данных с использованием конструктора типов в операторе SELECT, примененном к view. УтилитаУтилита (англ.utility или tool)— компьютерная программа, расширяющая стандартные возможности оборудования и операционных систем, выполняющая узкий круг специфических задач. XML SQL далее даст возможность поиска сконструированных данных в view как отдельного XML-документа.

3. Обмен документами между приложениями

В общем случае, обмен данными между приложениями, которые разделяют некий общий DTD, сводится к выполнению следующих действий:

  1. Приложение, передающее данные (источник) генерирует XML-документ с использованием общего DTD.
  2. Источник направляет сгенерированный XML-документ приложению, принимающему данные (приемник)
  3. Приемник анализирует XML-данные, выполняет над ними свои собственные операции и записывает данные в базу данных, с которой он (приемник) работает.
  4. Приемник становится источником и направляет оригинальный XML-документ (или, возможно, новый документ, сгенерированный им самим) следующему приложению в цепочке обмена данными.

Существует несколько сценариев организации обмена XML-данными, которые рассматриваются ниже.

4. Обмен XML-данными с использованием общего DTD

На рис.1 приведен пример такого обмена. Здесь пользователь вводит запрос посредством использования Web-формы. XML-данные генерируются компонентом XSQL Servlet. XML-документ структурирован в соотвествии с некоторым DTD, который далее рассматривается как разделяемый несколькими приложениями. Приложение-приемник получает XML-документ, выполняет его анализ с привлечением программы-анализатора для Java и записывает XML-данные в свою базу данных с помощью XML SQL Utility.

Рис.1. Пример обмена XML-данными с использованием общего DTD

Возможен иной вариант развития событий, представленный на рис.2. Некий заказчик оформляет заказ на покупку, обращаясь к Web-странице. Ввод заказов обеспечивает приложение Электронный магазин. Введенный заказ передается некоторому приложению Бухгалтерия, и, после обработки, направляется приложеним Склад и Поставка. Каждое приложение в цепочке читает и обрабатывает XML-данные так, как это предписано их логикой и записывает некоторые из этих данных в их собственные базы данных. Каждое приложение в цепочке передает следующему исходный или модифицированный в процессе обработки XML-документ.

Рис.2. Альтернативный вариантВариант (фр.variante, от лат.varians, родительный падеж variantis — меняющий, изменяющийся) — одна из нескольких редакций какого-либо произведения (литературного, музыкального и т. п.) или официального документа; видоизменение какой-либо части произведения (разночтения отдельных слов, строк, строф, глав). обмена XML-данными с использованием общего DTD

Ниже расписаны роли каждого из приложений.

Приложение Электронный магазин

  1. Приложение генерирует форму заказа
  2. Заказчик использует форму для запроса к базе данных для поиска доступных товаров, вводит необходимые для оформления заказа данные и подтверждает заказ
  3. Приложение получает заказ и на его основе генерирует XML-документ на основе общего DTD
  4. Приложение направляет DTD и XML-документ в Бухгалтерию

Приложение Бухгалтерия

  1. Получает и обрабатывает заказ (XML-документ), полученный из Электронного магазинМагазин (от фр.magasin) — специально оборудованное стационарное здание или его часть, предназначенное для продажи товаров и оказания услуг покупателям и обеспеченное торговыми, подсобными, административно-бытовыми помещениями, а также помещениями для приёма, хранения товаров и подготовки их к продаже (складами).а
  2. Преобразует XML с использованием соответствующего стиля в представление заказа навигатора, с которым работает бухгалтер
  3. БухгалтерБухгалтер (нем.Buchhalter, Buch— книга, Halter— держатель)— специалист в области бухгалтерии. В настоящее время профессия является важной, без неё не обходится ни одно предприятие. запрашивает базу данных о заказчиках, проверяет кредитную информацию по заказчику, подтверждает или отвергает заказ.
  4. Приложение обновляет соответствующие записи в таблицах базы данных используя для этого данные, полученные из XML-документа
  5. Приложение на основе общего DTD генерирует новый XML-документ (суть модифицированный заказ), содержащий все привнесенные бухгалтерией значения и передает его следующему в цепочке приложению.

Приложение Склад и Поставка

  1. Получает и обрабатывает XML-документ используя для этого DTD также полученный из бухгалтерии
  2. Обновляет записи в базе данных поставок , используя для этого данные о заказчике и заказе, взятые из XML-документа
  3. Приложение генерирует внешнее представление XML-документа для навигатора, которыей используется пользователем-кладовщиком
  4. Кладовщик отпускает товар заказчику.

5. Обмен документа без использования общего DTD

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

Хорошим способом будет использование стилей для преобразования исходного документа в новый, структура которого соответствует структуре таблицы поддерживающей базы данных. В этом случае можно было бы получить XML-документ, соответствующей структуре таблицы, используя XML SQL UtilityУтилита (англ.utility или tool)— компьютерная программа, расширяющая стандартные возможности оборудования и операционных систем, выполняющая узкий круг специфических задач.. Дополнительно можно было бы получить таким образом и "локальный" DTD и использовать его для "оформления" приходящих "внешних" по отношению к этой базе данных документов. Общая схема описанного процесса представлена на рис.3.

Рис.3. Обмен XML-документами при отсутствии общего DTD

XML SQL Utility создает DTD в отдельном файле или добавляет его к сгенерированному XML-документу в тэге DOCTYPE. DTD можно использовать для разработки стилей, которые будут использованы для преобразования исходного XML-документа до записи в базу данных. Эта возможность проиллюстрирована рис.4.

Рис.4. Использование DTD для разработки стилей

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

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

  1. Java-приложение использует XML SQL Utility для генерации DTD, который отражает структуру таблиц поддерживающей базы данных
  2. Приложение передает DTD генератору XML классов для Java, создающему классы, которые будут использованы для построения Web-формы, предоставляемой для работы пользователя
  3. Форма динамически создается компонетами Java Server Page, Java Servlet, и т.д. с использованием сгенерированных классов
  4. Когда пользователь заполняет форму и отправляет ее на обработку, сервлет отображает данные формы в соответствующие структуры XML и компонентКомпонент— (от лат.componens, родительный падеж componentis — составляющий), составная часть, элемент чего-либо. В разных отраслях науки и техники может иметь дополнительное, более специфическое значение. XML SQL Utility записывает данные в базу данных

6. Архитектура для обмена XML-данными с применением Middleware

Существует несколько возможностей по передаче XML-документов между приложениями. Во-первых, их можно передавать попросту как файлы, используя для этой цели FTP, NFS, SMB либо другие известные протоколы передачи файлов. Во-вторых, можно использовать HTTP. В этом случае приложение, которому необходим XML-документ, запрашивает по HTTP сервлет. Третьей возможностьВозможность — направление развития, присутствующее в каждом явлении жизни; выступает и в качестве предстоящего, и вполне объяснимо рациональным путем: в каждой возможности присутствует вероятная невозможность, «возможность невозможного». Возможность не определяется познанием того, что может быть. Познание вероятностей, возможностей не всегда влияет на нашу возможность. На изучении возможности основывается, главным образом, исследование бытия и события.ю является использование Web-форм.

Наконец, можно использовать компонент Oracle8i Server под названием Advanced Queuing (специализированное средство для управленияУправление— воздействие субъекта, направленное на достижение абстрактной (неконкретной), но вынужденно-корректируемой цели (задачи, идеи) в уже сложившихся рамках правил, которые неизбежно-совершенствуются когда субъект непротиворечивее познаёт реальность, с которой сосуществует. очередями). Рассмотрим эту возможность более подробно. Oracle Server может инициировать отправку XML-документа через Net8 и JDBC в качестве сообщения одному или нескольким приложениям-приемникам, используя для этой цели Oracle Advanced Queuing (AQ). Приложение-приемник извлекает XML-документ из входной очередиОчередь— определённый порядок в следовании или в движении чего-либо или кого-либо. сообщений и обрабатывает его. Это как раз тот подход, который используется Oracle для интеграции приложений. Здесь сообщения в формате XML направляются инициирующими приложениями некоторому серверу, который можно было бы назвать сервером сообщений (AQ Hub) - по отношению к тем приложениям, которые хотели бы получать сообщения, циркулирующие в системе. При этом может быть использован стандартный механизм взаимодействия "публикация/подписка", который уже реализован в Oracle8i.

На рис.5 представлена архитектура системы, в которой различные приложения асинхронно взаимодействуют, направляя друг другу стандартизованные (XML) сообщения, извлекают из них собственно данные, размещая их в локальных, принадлежащих им базах данных и генерируя сообщения на основе данных, хранящихся в локальных базах. Вся инфраструктура целиком строится на основе продуктов Oracle, ядром системы является сервер Oracle8i Enterprise Edition. Использование только Net8 является некоторым ограничением архитектуры, не позволяя расширить ее до масштабов глобальной сети, однако не будем забывать, что пересылку данных можно будет организовать и другими способами (FTP, HTTP).

Рис.5. АрхитектураАрхитектура (лат.architectura от др.-греч. — старший, главный и — строитель, плотник) — искусство проектировать и строить здания и другие сооружения (также их комплексы), создающие материально организованную среду, необходимую людям для их жизни и деятельности, в соответствии с назначением, современными техническими возможностями и эстетическими воззрениями общества. Сами здания и сооружения также называют архитектурой. системы с асинхронной передачей стандартизованных сообщений

Рассмотрим более общую ситуацию, когда необходимо организовать обмен документами между двумя независимыми организациями. Пусть одна из них использует приложения Oracle Applications (на основе СУБД Oracle), другая - какие-либо другие приложения и не обязательно на основе Oracle. Более того, в рамках локальной сети первой организации для обмена электронными документами между различными приложениями используется описанная выше схема на основе Net8 и AQ, в другой же организации в качестве Message Oriented Middleware (MOM) используется IBM MQSeries. Очевидно, что в такой неоднородной среде необходим посредник, умеющий работать с различными системами MOM. В этом качестве Oracle предлагает использовать продукт Oracle Message Broker, реализованный на основе спецификации Java Message Service (JMS).

 

Мы рекомендуем еще посмотреть:

ellspacing="0" cellpadding="0" border=0>

Результаты тестовых испытаний беспроводного оборудования

Radioethernet и коллизии

Компьютерные сети Ethernet – сети, использующие метод случайного доступа зарекомендовали себя как надежная и быстрая среда передачи данных, достигнув гигабайтных скоростей передачи, во многом благодаря использованию эффективного механизма множественного доступа Carrier Sense Multiple Access (CSMA). Однако, существует принципиальное ограничение пропускной способности сети при увеличении её нагруженности (увеличении числа абонентов), связанное с возрастанием вероятности возникновения коллизий – столкновении пакетов от разных абонентов.

Для уменьшения влияния этого эффекта (особенно заметного в сложных сетях с высоким трафиком), в протоколе IEEE LAN 802.3 определён механизм обнаружения коллизий – CSMA/CD (Carrier Sense Multiple Access protocol with Collision Detection). Если средой передачи информации является не кабельная сеть, а радиоэфир, то вероятность возникновения коллизий существенно возрастает, и протокол CSMA/CD становится неэффективен. Это связано, прежде всего, с тем, что работа устройства RadioEthernet возможна только в полудуплексном режиме, т.е. невозможно одновременно вести передачу и прослушивание несущей на одной и той же частоте. Таким образом, в беспроводной среде невозможно гарантировать разрешение коллизий (collision detection) и в полной мере реализовать работу протокола CSMA/CD. Поэтому для беспроводных сетей IEEE Std. 802.11 был предложен модифицированный механизм доступа к среде – CSMA/CA (Carrier Sense Multiple Access protocol with Collision Avoidance) - схема заменяющая обнаружение на предупреждение коллизий, то есть снижение вероятности их возникновения.

Кроме того, при передаче в радиоэфире мы сталкиваемся с новой проблемой: это ситуации, когда есть видимость точка-точка, но нет видимости "каждый видит всех". В этом случае нарушается основной принцип Ethernet – нет полной связности среды. Сеть работает "за рамками" сетевых протоколов, как 802.3 (нет возможности обнаруживать коллизии), так и 802.11 (не выполнено требование относительно взаимной видимости станций в рамках домена).

Как бороться с коллизиями в радиосетях?

Метод CSMA/CA предполагает следующие принципы организации связи:

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

Доступ к среде по принципу Ethernet оказывается в ряде случаев малоэффективным или вообще неприемлемым. Иногда решением является применение механизма RTS/CTS , заключающегося в следующем: узел посылает на точку доступа запрос на передачу (RTS), затем доступа посылает ко всем абонентам сигнала CTS, после которого все узлы сети молчат до получения сигнала ACK (подтверждения приёма) от точки доступа, давая возможность передать информацию узлу, инициализировавшему RTS. Однако, в ряде "особо тяжёлых" случаев, когда нарушена связность среды и высок трафик, даже использование механизма RTS/CTS может оказаться недостаточным. В таких ситуациях устойчивой связи можно добиться применением технологии директивного опроса (polling), при котором центральная станция опрашивает последовательно все узлы.

Благодаря применению методов RTS/CTS/ACK и polling снижается вероятность возникновения коллизий около точки доступа между пакетами двух станций не видящих друг друга, сохранияется пропускная способность канала уменьшаются потери полосы пропускания от возникающих коллизий.

В качестве иллюстрации вышесказанного, можно привести следующий простой пример. Есть точка доступа А и две присоединённых к ней станции - В и С, которые разделены экранирующим препятствием или разнесены на такое расстояние, что находятся вне зоны видимости друг друга. В этом случае существует вероятность одновременной передачи с В и С на А, что приведёт к коллизии в точке доступа А (рис.1):

рис. 1

Ситуации, аналогичные описанным, могут встречаться в городской среде, на пересечённой местности, на крупных промышленных объектах. Однако, не все устройства реализуют механизм RTS-CTS-ACK и polling. Причиной этого явилось то, что RadioEthernet первоначально предполагалось использовать преимущественно для внутриофисных приложений, то есть в условиях полной связности среды, и лишь впоследствии оборудование для организации радиосетей стали использовать также для для outdoor- приложений.

В лаборатории компании s-networks были проведены сравнительные тесты в конфигурации, соответствующей Рис. 1 (см.описание), где моделируется столкновение параллельных работающих потоков данных с двух абонентов в процессе теста скорости передачи. Испытания проводились как с включённым протоколом polling, так и без него. Результаты приведены на рис. 2. Как видно из рисунка, включение директивного о проса позволяет поддерживать высокую пропускную способность сети при высокой загруженности в таких критичестих ситуациях.

Рис. 2

Есть решение!

Одним из устройств, поддерживающим протокол директивных запросов на передачу (polling), был радиомаршрутизатор "WaveCampus" (Lucent Technologies) – довольно дорогое устройство, включающее в себя процессор серии 486 и сетевой интерфейс WaveLan. Для работы в сложных кампусных сетях с высоким трафиком WaveCampus конфигурировался в виде вызывающей базовой станции (Polling BaseStation) и вызываемой абонентской станции (Satellite Station). Теперь аналогичное программное обеспечение появилось и в варианте ПО, загружаемого в прибор WavePoint-II, который в результате поддерживает как polling так и non-polling CSMA/CA базовую станцию, а так же маршрутизацию по протоколам RIP-1 и RIP-2.

Резюме

Появилось удобное решение проблемы создания эффективно работающей в условиях высоких помех и нагрузок, в том числе городской сети (outdoor), на базе устройств Lucent Technologies с использованием технологии передачи с запросом polling, позволяющем повысить пропускную способность сети в условиях сильно зашумленного эфира.

Базовым устройством нового семейства радиооборудования является радиокарта WaveLAN IEEE 802.11 PC card, которая также используется в составе радиомоста WavePoint II. На базе радиомоста WavePoint II создана базовая и абонентская станции. Устройства WavePoint II способны работать одновременно со старой и новой версиями радиокарт WaveLAN IEEE 802.11.

Для поддержки всех функций требуется обновленное программное обеспечение.

Итак, представляем Вам решение "point to multipoint", заменяющее ASK - WaveCAMPUS. Новое семейство Software состоит из трёх перечисленных ниже продуктов, работает так же, как и WaveCAMPUS.

  1. WP II Upgrade Kit - Campus Base / comcode: 747010001 / ERP ($695);
  2. WP II Upgrade Kit - Campus Satellite / comcode: 747010003 / ERP ($395);
  3. PC Upgrade Kit - Campus Satellite NDIS PC (PC running WIN/95 or WIN/98) / comcode: 747010004 / ERP: ($95).

WavePoint-II Software Details

2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование