Немного о компании PLATINUM technology
Компания Platinum techology начала свою деятельность в 1987 году как поставщик услуг и вспомогательного программного обеспечения для мейнфреймов компании IBM, где добилась значительных успехов. (Сразу же отметим, что компания PLATINUM technology не имеет ничего общего с компанией Platinum Software, создателем известного в России мощного бухгалтерского пакета). В начале девяностых годов расширила сферу своих интересов за счет открытых систем, продолжая поддерживать мейнфреймы. В течение трех последних лет PLATINUM technology поглотила около 30 разных софтверных компаний, таких как Trinzic, Protosoft, Prodea, Datura. Одной из самых известных у нас компаний является LogicWorks, сделка с которой стала достоянием гласности в марте текущего, 1998 года.
В отличие от компаний, которые послужили печальным примером того, как не надо расти, PLATINUM technology демонстрирует способность справляться с потоком продуктов, технологий и неизбежно возникающих организационных сложностей. По результатам финансового 1996 года PLATINUM занимала с оборотом в 486 миллиона долларов нехорошее тринадцатое место среди независимых производителей ПО. За 1997 год оборот вырос до 615 миллионов, а компания вышла на девятое место. О стабильности положения PLATINUM technology свидетельствует хотя бы тот факт, что объявление о покупке LogicWorks не привело, как обычно в таких случаях происходит, к падению курса акций. Если принять во внимание трудности, которые испытывают в 1997 году крупные софтверные компании, этот факт еще более знаменателен.
Компания поставляет сейчас около 170 наименований по категориям поддержка цикла разработки ПО, сопровождение баз данных, управления системами, управление секретностью, решение проблемы двухтысячного года и, наконец, хранилища данных. По тому, что происходит с покупаемыми продуктами, можно судить также не только о наличии свободных денег, но и о высоком техническом потенциале и технологической культуре компании. Пакеты меняются на глазах, причем технологически, а не в смысле украшательства и появления «бантиков». Опыт консалтинга и работы в реальных проектах помогает PLATINUM выбирать правильное направление движения.
О концепциях и программах
Настроимся на практический лад, так как PLATINUM technology предлагает не ослепительную по своей красоте идею, а линию работоспособных продуктов, каждый из которых не претендует на разрешение фундаментальных проблем бытия, но занимается вполне конкретными вопросами. Здесь и ниже мы не будем заниматься схоластическими вопросами типа «чем OLAP отличается от DSS, и кто из них главнее».
Как консалтинговая компания, PLATINUM предпочитает использовать проблемно-ориентированные, а не «продуктово-ориентированные» классификаторы. И если мы говорим о построении и работе с хранилищами данных, то здесь рассматривается следующий круг проблем:
- Управление метаданными
- Трансформация и перемещение данных
- Поддержка принятия решений
- Управление работой хранилища
Сразу обратим внимание на то, что PLATINUM не предлагает собственных процессоров данных -иерархических, реляционных, многомерных и прочая, прочая - предпочитая жить в мире с теми, кто уже подтвердил свое умение создавать СУБД. Мы не будем точно следовать последовательности, в котором перечислены задачи, и начнем с конспективного рассмотрения средств управления работой хранилища.
Краткий обзор средств сопровождения хранилища данных
Начнем мы с вещей не то чтобы второстепенных, но вторичных, дабы добиться постепенного нарастания «интересности» рассказа. Действительно, средства обеспечивающие работоспособность информационных систем тем и хороши, что их не видно и о них не слышно. На первом месте - прикладные аспекты, средства поддержки - на втором. Однако в их отсутствие, как правило, случаются разнообразные таинственные и часто - страшные случаи из жизни больших информационных систем.
Продукты семейства ProVision чаще упоминаются в контексте управления распределенными корпоративными информационными системами. Но, поскольку хранилище является частью последнего, они же и являются средствами управления работой хранилища (п. 4) и управления метаданными (п. 1). ProVision Enterprise Performance Management включает DBVision, ServerVision, TransTracker и WireTap, которые осуществляют мониторинг разных «слоев» - СУБД, операционной системы и трафика, соответственно. Каждая из компонент снимает большое количество показателей о работе «слоев». DBVision в дополнение к тому, что «рассказывает» о себе сервер данных, просматривает также текстовые файлы - error logs, message logs - которые заполняются сервером в ходе работы. WireTap подобен сниферу - он осуществляет просмотр всех сетевых пакетов, при этом распознает HTML, а также формат сообщений Oracle SQL*Net и SYBASE Tabulated Data Stream. В сочетании с ServerVision, обеспечивающим мониторинг операционной системы, весь EPM Suite помогает предупреждать или быстро локализовывать проблемы с производительностью.
Забавно, но консоль администратора по всем формальным признакам попадает определение OLAP/DSS - ведь, снимая массу «сырых» данных с датчиков, она их перерабатывает и представляет в существенно более удобоваримом виде. Налицо онлайновость, анализ и поддержка принятия решений - только не в финансовой области.
ProVision Enterprise-DBA является обычной консолью администритора сервера данных, но, помимо этого осуществляет и управление распространением изменений в схеме базы - совокупность DDL команд (CREATE, ALTER, DROP) оформляются как единое целое, передаются на соответствующие серверы данных и выполняются там в соответствии с заданным планом. Enterprise-DBA позволяет даже откатывать произведенные изменения, но, заметьте, уже не над данными, а над структурой данных!
В целом же более 30 продуктов могут использоваться в рамках поддержки хранилища, решая задачи управления изменениями, мониторинга, реорганизации баз данных (на физическом уровне), обеспечения надежности хранения, планирования заданий и т.п. Одним из значимых событий является покупка компанией PLATINUM в феврале 1998 года HP Intelligent Warehouse.
PLATINUM Repository - работаем с метаданными
Базовым продуктом для решения задач управления метаданными является PLATINUM Repository и Repository Open Enterprise Edition (OEE). К слову, на основе последнего создан Microsoft Repository. Важнейшей характеристикой репозитария PLATINUM является его настраиваемость - можно самостоятельно добавлять собственные типы сущностей (сущность в смысле E-R, функциональный блок, класс, объект, ...) и связей (ассоциация, наследование, поток, ...). В дополнение к этому для Repository поставляются сканирующие модули для языков SQL, C, COBOL, PL/I стыки с ERWin и Designer/2000. Правда, все перечисленное, кроме связок с SQL и CASE, представляет больший интерес с точки зрения реинжениринга унаследованных наработок.
Трансформация и перекачка данных: InfoPump, InfoRefiner, InfoTransport, Fast Load/Unload
Потребность в ускорении процессов загрузки и выгрузки данных очень часто возникает, когда операционные базы велики. Утилиты PLATINUM technology для DB2/MVS, Oracle, SYBASE и Microsoft SQL Server по скорости превосходят штатные средства СУБД в 2-10 раз.
Рассмотрим для примера, как работают Fast Load/Fast Unload for SYBASE. Первым делом серверу посылается команда с требованием отсоединить базу. После этого на уровне операционной системы происходит снятие блокировки с файла базы. Появляется возможность напрямую, минуя сервер данных, обратиться к базе, чем, собственно и занимается Fast Unload, который самостоятельно распознает внутренние форматы файлов Sybase. Есть возможность выгрузки части данных, а условия задаются в виде привычных команд SELECT на диалекте Transact-SQL. Чтение производится за один проход, сколько бы условий в отношении таблицы не было бы задано. Fast Load работает по похожей схеме - создается готовый файл, включающий данные таблиц и индексов, пересылается на компьютер, на котором работает SQL Server, после чего база переводится в онлайн. Практически вся работа проводится в обход сервера баз данных, именно поэтому и достигается выигрыш (чем больше приходится строить индексов, тем заметнее) по сравнению со штатными средствами СУБД.
Рабочая лошадка, InfoPump, занимается перемещением данных из одного источника в другой. Он включает консоль для управления и мониторинга, а также прикладной сервер, который обеспечивает выполнение заданий в соответствии с планом. Поддерживаемые источники данных самые разнообразные. Это все версии DB2 (MVS, Common Server, OS/400), Informix, Lotus Notes, MS SQL Server, Oracle, SYBASE, ODBC источники и регулярные файлы. Процесс перекачки может сопровождаться преобразованием данных - здесь речь может идти и о преобразовании форматов, и об изменении значений полей, и о структурных преобразованиях.
В простейшем случае вы просто задаете transfer, указывая profile-источник и целевой profile, а также план выполнения данного transfer"а. В этом случае в основном задействуется «мышь». Если же речь заходит о трансформации данных, то приходится прибегать к программированию на встроенном языке скриптов, синтаксически представляющим из себя нечто среднее между C и BASIC. Нет ничего лишнего, и в то же время есть все необходимое - выборки из одного или нескольких источников одновременно, преобразование (при необходимости можно подключать внешние функции из динамических библиотек) и сохранение в одном или нескольких целевых profile одновременно, а также обработка ошибок.
Несмотря на кажущуюся простоту, вернее, именно из-за того, что работа, которую берет на себя InfoPump, является примитивной и рутинной, его применение может дать выигрыш. Ведь пустяки перестают быть пустяками, когда речь заходит о десятках трансферов. Один из часто упоминаемых в связи с InfoPump клиентов PLATINUM реализовал четыре сотни трансферов, объединив около 50 приложений и семь типов СУБД. Идея приведения к единому формату данных даже одной организации до сих пор никем и нигде не была реализована в окончательном виде, следовательно, является пагубной иллюзией. Поэтому с необходимостью постоянной синхронизации данных и в продуктах такого рода, как InfoPump, столкнется по мере развития информационной системы любой крупный банк, предприятие, учреждение. InfoPump независим от СУБД, и поддерживает великое их множество. Он поддерживает перекачку 1:1, 1:N, M:N, M:1 - то есть соотношение количества исходных и целевых баз/таблиц может варьироваться в зависимости от потребностей. Круг вопросов, которые может решать InfoPump в контексте хранилищ, может включать:
- Перемещение данных из операционных баз на специально выделенный сервер хранилища.
- Смена типа СУБД (пример: исходная - DB2/400, целевая - IBM UDB. InfoPump может откачивать данные в реляционные ускорители запросов RedBrick и SybaseIQ, а также массово-параллельные DB2 SP2, Teradata и т.д.)
- Унификация форматов (например, дат из "DD/MM/YY" и "DD Month Year" в "DD/MM/YYYY")
- Очистка данных ("Бол. Ордынка", "Большая Ордынка", "Б. Ордынка")
- Преобразование схемы (3-5 нормальной формы в «звезду», «снежинку» и т.п.)
Этот список можно продолжать, комбинируя пункты. Сходными с InfoPump вещами занимаются и PLATINUM InfoRefiner/InfoTransport. Основное различие в том, что эти продукты реализованы на MVS, но не только для MVS - откачка данных может проводиться на открытые системы и все известные СУБД, а в придачу - и на не столь широко известные.
DecisionBase - новый рубеж
Совершенно закономерным шагом в развитии линии продуктов PLATINUM, имеющих дело с моделью данных, стал выпуск DecisionBase, о выпуске которого было объявлено 31 марта 1998 года. DecisionBase является не механическим объединением в одной коробке, а полностью переработанным и интегрированным продуктом, основанным в то же время на уже проверенных технологиях. Можно выделить следующие крупные блоки DecisionBase:
- Metadata Manager (вспомним PLATINUM Repository)
- Data Movement Server (InfoPump, InfoRefiner, InfoTransport), помимо имевшихся простых средств планирования и выполнения заданий обрел средства координированного выполнения цепей заданий
- Mapper - это совершенно новый компонент. Хотя он и использует наработки InfoPump в автоматической генерации скриптов перекачки, а также CASE- инструмента PLATINUM Paradigm+, все же среди существующих продуктов PLATINUM нельзя найти прямого аналога. Можно сказать, что Mapper представляет из себя специализированный CASE, в котором можно графически отобразить взаимосвязи между исходными и целевыми таблицами, а то, что нельзя показать графически, описать средствами языка перемещения данных
Ядро DecisionBase включает в себя сервис POEMS, на котором базируются все компоненты среды управления ProVision, со всеми вытекающими последствиями.
Анализируем, размышляем, принимаем решения
Группа продуктов, имеющих самое прямое отношение к средствам поддержки принятия решений, или, более прозаично - анализа сложных данных, в свою очередь делится на две. Первая - это, условно говоря, инструментарий, вторая - вертикальные приложения из области финансового анализа, анализа рисков в страховой деятельности и маркетинг-анализа.
Основная причина, по которой мы сегодня говорим о хранилищах данных, была афористично сформулирована так: «Много данных, но никакой информации». В общем-то любая хрестоматия делает акцент на том, что данные информацией не является, но лишь относительно недавно выяснилось, что дистанция слишком велика. Информацию надо извлекать, но тот, кому она нужна, и тот, кто технически способен это сделать - в большинстве случаев не одно и то же лицо. Медведя можно научить кататься на велосипеде, но разобраться всего с тремя операциями реляционной алгебры - проекцией, селекцией и соединением - он не в силах. Возможно, из-за того, что последняя не является базовой и определяется через декартово произведение и селекцию. В общем, несмотря на кажущуюся простоту, конечный пользователь, даже если он не медведь, худо-бедно в состоянии разобраться с первыми двумя операциями, однако «склеивать» таблицы правильно у него обычно не получается. Особую опасность представляет то, что пользуясь стандартными генераторами запросов, он может создать синтаксически правильную SQL-команду, но получит ответ совсем не на тот вопрос, который собирался задать.
С другой стороны, наши предки до того, как выйти на сушу, ограничив тем самым одну из степеней свободы, достаточно свободно ориентировались в трех координатах и во времени. Привлечение пространственных аналогий оказалось продуктивным, а представление событий и фактов в виде точек в многомерном пространстве - более ясным. Отличия между моделью многомерного куба и звезды малосущественны, идея одна и та же.
Многомерный анализ оперирует, как правило, тремя понятиями. В англо-саксонской литературе чаще всего это fact (или business object), dimension и metric. Совершенно независимо в нашей стране выработали набор из слов «объект», «разрез» и «показатель», коим я и намерен пользоваться ниже, поскольку считаю фразу «рассмотреть объект ... в разрезе ... с точки зрения показателей ...» более естественной для родного языка, чем «рассмотреть все то же самое в метрике и размерности».
Вернемся к PLATINUM. Едва ли не самым важным в первой подгруппе является InfoBeacon - многомерная надстройка к реляционному серверу данных. После того, как администратор системы произведет настройку репозитария и укажет соответствия между объектами реляционной базы (серверами, базами, таблицами и колонками) и объектами InfoBeacon (business abstract, fact set - факт/объект, dimension - размерность, attribute - показатель), конечному пользователю нужно только «мышью» указывать, что и в каком объеме его интересует. Далее InfoBeacon производит отображение многомерной модели в реляционную и генерацию SQL запросов. Обработка результатов производится в Excel, Forest & Trees или любым из офисных продуктов Synergy.
В InfoBeacon реализована более продвинутая по сравнению с fact/dimension/metric модель. Объединение фактов, разрезов и показателей в business abstract позволяет лучше структуризовать сложные задачи. Введение наряду с обыкновенными, хранимыми, еще двух категорий фактов - вычисляемых и сравнений, упрощает решение комплексных задач.
Наиболее естественно и просто производится так называемый top-sheet анализ, в котором интенсивно используются операции drill-down и roll-up, и под который подпадают финансовый анализ, планирование бюджета, анализ продаж. Drill-down, «всверливание», заключается в анализе фактов с нарастающим уровнем детализации, например переход от разбивки по годам к поквартальной, помесячной, понедельной и т.п. Антипод drill-down - roll-up - итеративный переход на все более общий уровень.
Выделение в InfoBeacon времени, как специального вида разреза, а также введение фактов-сравнений позволяет реализовать задачи, которые выходят за рамки операций drill-down & roll-up) - задачи анализа бизнес-процессов, т.е. всех случаев, когда важна история, например в страховой деятельности, при возобновлении полиса, обработки счетов, учета складских запасов и перемещения товаров и матценностей.
InfoBeacon работает поверх обычной СУБД, может работать на «живых» данных. В отличие от многомерных СУБД, которые приносят детальность в жертву скорости, InfoBeacon"у доступны данные на самом глубоком уровне детализации, т.е. на уровне отдельных бизнес-транзакций. Это важно, например, для построения профиля клиента или анализа потребительской корзины.
Таким образом, InfoBeacon учитывает три составляющие, которые по отдельности или в комбинациях охватывают 99% задач многомерного анализа. Хотелось бы заострить внимание на некоторых других особенностях InfoBeacon:
- Отсутствие ограничений на число логических объектов (разрезов, фактов/объектов, показателей) и физических (серверов и баз данных, таблиц, колонок)
- Изменения в логической модели вступают в силу практически сразу, поскольку нет необходимости перезагружать данные, реструктуризовать их в «звезду», «снежинку» и т.п. Изменения в физической схеме скрываются логической моделью InfoBeacon
- Возможность использования стандартных СУБД и реляционных ускорителей запросов снимает известное ограничение многомерных СУБД в 10-25 гигабайт. (Акселераторы SybaseIQ и RedBrick работают с базами в 1терабайт)
- Использование приема преагрегирования, того же, за счет которого достигается ускорение в многомерных СУБД. Кеширование словарей в browse-файлах разгружает СУБД на момент формирования пользователем запроса.
- Разбиение таблиц-фактов (fact partitioning) и разнесение разделов между разными компьютерами - в точности такой же прием (key table partitioning) используется при работе СУБД на кластерных и массово-параллельных архитектурах. Разница в том, что InfoBeacon использует стандартное, существенно менее дорогое оборудование. К тому же разные разделы могут обрабатываться на разнородных серверах (Oracle и SQL Server, например)
- «Конвейерная» обработка результатов запросов средствами Synergy, стыковка с большим количеством офисных программных продуктов.
«Настольным вариантом OLAP» является Forest & Trees. В отличие от InfoBeacon, F&T делает всю работу на клиенте, что может повлечь определенные проблемы с масштабируемостью на больших базах. Это, впрочем, преодолевается тандемом F&T - InfoBeacon. В то же время F&T является полной средой разработки, в которой крайне тщательно проработан вопрос отслеживания связей между данными - не только связей первичный/внешний ключ, но и функциональных связей, связей обобщения/детализации. F&T активно используется PLATINUM для разработки вертикальных приложений, например специализированный OLAP для решения задач оптимизации разработки программного обеспечения, ADvisor, написан на нем. В мае 1998 года вышла новая, пятая, версия Forest & Trees.
Вертикальные приложения
Для предметных областей-основных потребителей OLAP технологий PLATINUM поставляет готовые решения.
Для страховой области предназначен RiskAdvisor. Здесь и анализ рисков и потерь, и выплата премии агентам, и анализ тенденций, и многое другое.
Для финансового анализа до последнего времени предлагался InfoAdvisor. Ему на смену пришел переработанный и реализованный в трехзвенной архитектуре Finance Advisor.
Для анализа прибылей и потерь с целью планирования маркетинговой политики служит Perspectives for Market Analysis. Данная предметная область не столь формализована, как две предыдущие и реализация этого вида анализа варьируется по областям деятельности гораздо сильнее. Поэтому Perspectives - более предметно-ориентированная вещь, нежели InfoBeacon или F&T, но и не жесткий продукт, который хорош для сыроваренной промышленности, но непригоден для сталелитейной. Это платформа, набор настраиваемых шаблонов для развертывания итогового продукта.
Aion
Несмотря на то, что продукт, рассмотрением которого я собираюсь завершить обзор, не относится напрямую к тематике Data Warehouse, но к поддержке принятия решений уж он-то относится. А если быть более точным - к автоматизации бизнес-процессов (Business Process Automation), но не в том смысле, который обычно вкладывают в эти слова. Системы данного класса перекрывают системы принятия решений - занимаясь тем же, они реализуют более сложную логику и образуют более комплексное окружение, и должны использоваться шире, нежели DSS. В массе системы такого рода существуют лишь в проектах, однако утверждается, что 40% вновь создаваемых после 1997 года приложений будут именно BPA. На них возлагатся задача автоматизации действительно сложной бизнес-логики.
За 11 лет существования Aion на нем реализованы приложения, осуществляющие анализ подлогов в банковской и страховой деятельности, делающие заключения о факте наступления страхового случая, принимающие решения о взобновлении страхового договора и другие приложения, которые заставляют вспомнить не только о DSS, но и об экспертных системах. С другой стороны, есть и реализации вполне «мирных» систем типа обработки счетов, конфигураторов и систем складского учета. Более 150 очень крупных страховых компаний, крупные банки, в том числе Banque de France (поддержка решений о предоставлении займов), госструктуры, такие как Служба Социальной Защиты Великобритании или Налоговая Служба Министерства Финансов провинции Британская Колумбия (Канада), производственные предприятия - Крайслер и Харлей-Дэвидсон, всего 1500 клиентов. Таков послужной список Aion.
В техническом смысле Aion представляет собой среду разработки и позволяет создавать такие же приложения, как и C/C++, Visual Basic, PowerBuilder или Smalltalk, в том числе и клиент-сервер. Седьмая версия Aion позволяет создавать OSF/DCE серверы приложений, а новая, восьмая - компоненты для мониторов транзакций BEA Tuxedo и IBM Encina, а также C/C++, ActiveX/COM/DCOM, CORBA. Последнее позволяет встраивать базы правил и машину логического вывода Aion в клиентские приложения или мониторы Microsoft Transaction Server и SYBASE Jaguar CTS. На этом сходство заканчивается. Язык Aion отличается тем, что позволяет задавать правила непроцедурным образом. Базы правил затем активизируются и система, поддерживающая как прямой, так и обратный вывод, ищет ответы на вопросы, либо предпринимает предопределенные правилами действия. Язык очень близок распространенным объектно-ориентированным. Нет заборов из скобок, характерных для Лиспа, нет и принятых в Прологе, но крайне непривычных для большинства программистов хорновских дизъюнктов - правила записываются в распространенной «если, то...» нотации. Понятно, что даже с учетом возможности генерации C/C++ кода, приложение Aion отличается от «чистого C». В то же время приложения Aion поразительно быстры и компактны - в то время как виртуальные машины VB, Java, PowerBuilder, Smalltalk требуют от полутора до трех мегабайт, простенькое приложение Aion укладывается в максимум 700 килобайт. Если принять во внимание, что виртуальная машина Aion занимается куда более серъезными вещами, чем просто интерпретация байт-кода, то такая неприхотливость заслуживает внимания. Прямой и обратный вывод, поиск по шаблону, элементы нечеткой логики и «что-если» анализ, оптимизация и возможность воздействия на поиск - и при всем том язык, который опытный программист в состоянии освоить за пару дней.
Наличие в Aion интерфейса COBS позволяет создавать то, что в экспертных системах называлось оболочками - языковая или графическая среда, расчитанная на пользователя-эксперта предметной области, не умеющего программировать, посредством которой может заполняться база правил. Хотя этого не требуется (оболочка, как правило, достаточно специализирована), но чисто технически COBS дает возможность написать собственную среду разработки Aion.
В узком смысле Aion может применяться в рамках проведения анализа данных как альтернатива или дополнение статистическим методам. Вы можете проводить анализ и делать выводы в контектсте назначения системы, изменения как самих воздействующих факторов, так и оценки степени их влияния, конфликтов, восприятия и прочего - все задается правилами. Специалисты Gartner Group указывают наряду с нейронными сетями и генетическим алгоритмом именно на индуктивные системы, как на средства, реально способные помочь постичь природу сложных систем, а не только предугадать их поведение.
Взглянем на вопрос шире, и вспомним, что склады данных - лишь часть информационной системы. А повсеместное внедрение индуктивных технологий позволяет попытаться замкнуть систему в целое, добившись того, чтобы правила не только вырабатывались, но и соблюдались. В начале 90-х годов популярной в салонах была тема систем поддержки исполнения (что-то наподобие help-desk"ов, но не по техническим проблемам, а по поводу содержательной части самой работы). Через пару лет она была исчерпана, так как вопрос «на чем их реализовывать?» практически не рассматривался, и дальше разговоров «как надо» дело не пошло. Средство распространения правил могло бы стать связующим звеном между системами поддержки принятия решений и поддержки исполнения, и Aion вполне годится на эту роль.
Заключение
Предлагаемые PLATINUM technology продукты составляют набор, достаточный для создания хранилища данных, проведения разностороннего анализа в области финансового анализа, страхового бизнеса и маркетинговых исследований, а также создания собственных решений в любых других областях. Поддержка СУБД всех известных производителей - CA, IBM, Informix, Microsoft, NCR, Oracle, RedBrick, Sybase и пр. - позволяет избежать конфликтов с эксплуатируемыми системами и полагаться на проверенные технологии обработки данных. Можно рассматривать PLATINUM, как поставщика всей инфраструктуры, но в то же время можно использовать отдельные продукты. Сегодняшние позиции, динамика роста и технологичский задел PLATINUM technology заслуживают самого пристального внимания. Не исключено, что мы наблюдаем появление нового отраслевого лидера.
ACT Group, Вадим Индриков, Тел: +7(095)232-5688, 785-5347, Факс: +7(095)250 0060 e-mail: indrikov@act.ru, http://www.act.ru