Компьютерные корпорации. История Oracle

Через год свой 30-летний юбилей будет отмечать один из мировых лидеров софтверного бизнеса и главный конкурент Microsoft — корпорация Oracle. В ее истории как в зеркале отразилась вся история американской "Силиконовой долины", история взлетов и падений индустрии компьютерных технологий, история наступления информационной эры.

Oracle: начало


История Oracle началась в легендарной Силиконовой долине, штат Калифорния, США. В 1977 году молодой программист Ларри Эллисон бросил учебу в Йельском университете, чтобы начать собственный бизнес. Ларри Эллисон, в распоряжении которого тогда было всего 1200 долларов, уговорил Боба Майнера и Эда Оутса, своих бывших коллег, создать собственную компанию. До этого все трое разрабатывали по заказу ЦРУ проект под названием… Oracle. Так в 1977 году появилась Software Development Lab., вскоре переименованная сначала с Relational Software Inc., а затем — в Oracle. Молодые программисты, чьи общие вложения в бизнес составили $2 тыс., начали разработку системы управления базами данных (СУБД), построенной на принципах реляционной алгебры.

В наши дни все сложные СУБД являются реляционными, но, когда в 1970 году сотрудник исследовательской лаборатории IBM Эдгар Кодд предложил новый метод организации баз данных, у многих специалистов были сомнения в том, что он вообще оправдает себя. Поэтому до середины 70-х годов информация в базах данных распределялась по старинному иерархическому, или "древовидному", принципу, который до сих пор используется для представления файлов в ПК. В IBM, впрочем, профинансировали создание прототипа системы на принципах, предложенных Коддом, и в 1976 году появился проект System R, который вдохновил будущих основателей Oracle на создание реляционной СУБД. В июне 1979 года появилась первая система компании Эллисона — Oracle 2. В маркетинговом отношении Эллисон оказался талантливее Билла Гейтса. В отличие от основателя Microsoft, который первую версию Windows так и назвал — Windows 1.0, он проявил маркетинговую смекалку, поэтому свет увидела сразу вторая версия продукта. Это должно было как бы дать понять заказчикам, что система надежна и даже прошла проверку временем. Эллисона можно понять: у него не было одобрения со стороны IBM, которое было у Гейтса. Даже напротив: Эллисон создавал продукт, который мог стать конкурентом решениям IBM. Главным конкурентным преимуществом СУБД Oracle была высокая скорость обработки огромных массивов информации, которую тогда отметили все эксперты. В отличие от System R, для работы которой был необходим мощный суперкомпьютер — мейнфрейм, Oracle 2 справлялась с обработкой информации на гораздо более скромных машинах. Это и поспособствовало невероятно широкому распространению детища Эллисона в начале 80-х годов. А когда с появлением третьей версии Oracle стала многоплатформенной, то есть появилась возможность устанавливать эту СУБД на разнообразные компьютерные системы (их тогда было не менее 20), популярность ее стала расти еще быстрее, и слава американской СУБД вскоре докатилась до СССР. Впрочем, "советскую" историю Oracle мы опишем ниже.

История программных продуктов

Oracle является исторически первой и одной из наиболее развитых на сегодняшний день реализацией архитектуры клиент/сервер. Открытость (переносимость + масштабируемость) всегда была основной идеей разработчиков Oracle. Современное положение компании на рынке СУБД, безусловно, является прямым следствием открытости системы. Вторая версия Oracle (как мы помним, первой не существовало вообще) работала на мини-компьютере PDP-11 фирмы Digital Equipment в операционной среде RSX-11. Большая часть Oracle была написана на ассемблере PDP-11, а отдельные компоненты — на новом для того времени языке C. Уже в те дни система была портируемой и работала в других операционных средах PDP-11: IAS, RSTS и UNIX. Тогда же было принято решение о переносе Oracle в новую ОС VMS. Благодаря этому СУБД Oracle заняла обширную нишу корпоративных информационных систем на быстро растущем рынке VAX. Тогда самое сильное впечатление на пользователей произвела полная реализация возможностей нового языка запросов SQL — подзапросы, операция соединения и непроцедурность, — благодаря чему многократно выросла производительность программирования. Стандартный SQL (IBM) был расширен утверждением CONNECT BY, позволяющим обрабатывать древовидные структуры, что остается уникальным для SQL-систем. Конечно, вторая версия Oracle была чрезвычайно проста — в частности, не поддерживалось понятие транзакции, и, если в процессе обновления базы данных происходил сбой, состояние базы данных могло стать некорректным, поэтому пользователи были вынуждены часто делать резервные копии базы данных во избежание потерь информации.

Следующая версия — Oracle 3, выпущенная на рынок в 1983 году, — была уже полностью написана на языке C. Решение использовать C и поддерживать одно множество исходных кодов стало ключом к решению проблемы переносимости Oracle на широкий спектр платформ. Были внесены изменения в язык SQL, существенно улучшена эффективность, расширена архитектура системы и введено атомарное выполнение SQL-утверждений и транзакций (SQL- утверждение либо выполнялось полностью, либо не выполнялось вообще, соответственно, транзакция либо завершалась успешно по всем изменениям базы данных, либо откатывала все сделанные ею изменения). Именно в это время Relational Software Incorporated получила свое современное название — Oracle Corporation. В версии 4 была существенно повышена надежность Oracle, выполнены переносы системы на большие компьютеры в ОС VM и MVS, а также на персональный компьютер с 640 килобайтами оперативной памяти. Была реализована модель контроля доступа к базе данных, которая гарантировала, что результат запроса не противоречит состоянию базы данных на начало запроса (благодаря этому было устранено известное противоречие между процессами чтения и записи). В 1985-86 годах Oracle выпустила на рынок две новые версии СУБД: 5.0 и 5.1. В версии 5.0 была впервые введена архитектура клиент/сервер и реализована программа SQL*Net, поддерживающая неоднородные среды. В версии 5.1 были впервые разрешены распределенные запросы — запрос мог обращаться к данным, физически размещенным в разных узлах. Несколько взаимодействующих серверов могли создать у пользователя многих физически разнесенных баз данных иллюзию единой логической базы данных.

Разработчики версии 6 стремились создать инструмент построения крупномасштабных информационных систем, ориентированных на обработку транзакций в режиме реального времени. Были введены генераторы последовательностей и блокировка на уровне записи, а это вместе с моделью "непротиворечивости чтения" означало, что процессы чтения и записи больше не блокируют друг друга (в состояние ожидания переходит лишь процесс записи при попытке обновить строку таблицы, которая уже контролируется другим процессом записи). В это же время ORACLE стал первым многопользовательским сетевым сервером баз данных для OS/2, Xenix, Banyan Vines и Macintosh. В версии 6 были заложены принципиально новые возможности, в полном объеме реализованные позже. Во-первых, SQL-утверждения могли использоваться совместно с утверждениями процедурного языка PL/SQL и посылаться для исполнения на сервер как анонимные процедуры. Во-вторых, тот же язык PL/SQL был введен в язык четвертого поколения SQL*Forms в качестве средства программирования приложений (в версии 7 расширенный язык PL/SQL стал средством описания процедур и триггеров базы данных). В-третьих, в описание схемы базы данных на синтаксическом уровне были введены (в соответствии с ANSI/ISO-стандартом) декларативные определения ограничений референциальной целостности.

Помимо общего повышения эффективности ввода/вывода, использования центрального процессора и работы с памятью, версия 7 обладала рядом инновационных архитектурных решений: разделяемый SQL-кэш на сервере (сервер распознает посылаемые клиентами SQL-утверждения, которые ранее уже были проанализированы и скомпилированы и в данный момент находятся в кэш-памяти, за счет чего экономится время анализа, оптимизации и трансляции, а также память, требуемая для хранения SQL-утверждения) и разделяемый пул процессов сервера вместо отдельного процесса для каждого клиента, что позволяет сэкономить значительный объем памяти. В области администрирования баз данных также был введен ряд новшеств: зеркальный журнал транзакций, динамическое создание журналов данных, команда ANALYZE, позволяющая собирать статистику об использовании таблиц, индексов и других физических объектов (эта статистика используется оптимизатором запросов), профили пользователей на использование системных ресурсов: ЦПУ, ввода/вывода и т.д. В версии 7 были полностью реализованы декларативные ограничения референциальной целостности в соответствии со стандартами ANSI/ISO. В рамках этих ограничений (первичные и внешние ключи) пользователь может специфицировать каскадное удаление связанных с некоторым первичным ключом записей. Процедуры PL/SQL могут описываться на уровне схемы базы данных (хранимые процедуры) и вызываться любым приложением, другими процедурами и триггерами. Взаимосвязанные процедуры могут быть сгруппированы в пакеты и использовать общие переменные и определения. Значения переменных, объявленных на уровне пакета, сохраняются в течение всей пользовательской сессии и могут совместно использоваться процедурами и функциями пакета. Другим важным нововведением явились триггеры базы данных.

Триггер представляет собой пару (событие+действие), где событие — это удаление/занесение/обновление записей таблицы, а действие (тело триггера) — процедура PL/SQL, выполняемая при совершении события. Триггеры могут определяться на уровне утверждений (DELETE, INSERT, UPDATE) или на уровне отдельных строк (FOR-EACH-ROW-триггеры, которые, к тому же, могут работать со старыми и новыми значениями строк). С помощью триггеров можно реализовать сложные правила контроля целостности, прав доступа, вывода значений и пр. Управление безопасностью и целостностью существенно упростилось благодаря введению ролей. Роль — это совокупность прав доступа к объектам базы данных (INSERT, UPDATE, SELECT и др.) и системных прав (CREATE TABLE, ALTER SYSTEM и т.д.). Определив роль, администратор базы данных может с помощью одной команды дать пользователю привилегии для работы с некоторым приложением. Эффективность выполнения распределенных запросов была повышена за счет глобальной оптимизации: в версии 7 оптимизатор обладает информацией об индексах и статистике удаленных таблиц, и, например, скорость соединения таблиц, расположенных в разных узлах сети, существенно возрастает благодаря тому, что из удаленных таблиц выбираются лишь строки, соответствующие строкам локальной таблицы.

Oracle и "советский блок"

До начала 1990-х годов об официальных поставках Oracle в СССР не могло идти и речи. Рынка программного обеспечения не существовало, а по государственным каналам американское ПО в СССР поставить было нельзя — подобные разработки считались в США стратегически важными. Существовал специальный орган — координационный комитет по экспортному контролю, который препятствовал экспорту высоких технологий из стран НАТО в страны Восточной Европы. Поэтому Oracle начиная с версии 3 ввозилась и копировалась нелегально, и к середине 80-х годов американская система работала на довольно большом числе предприятий и научных институтов СССР. Одним из самых передовых исследовательских центров был ВНИИ системных исследований (ВНИИСИ), куда Oracle попала в 1984 году. С этого момента и начинается история Oracle в России.

Работала Oracle и на крупнейшем в мире ускорителе элементарных частиц в Институте физики высоких энергий (ИФВЭ), который расположен в подмосковном Протвине. Советских ученых никто не заставлял внедрять именно ее, но так получилось, что Oracle вытеснила все остальные СУБД. Дело в том, что все физические лаборатории в мире работают в кооперации и стараются стандартизировать свои решения, чтобы облегчить обмен информацией и программами. IBM в физических лабораториях проиграла в свое время DEC. А коль скоро Oracle была многоплатформенной и работала на системах VAX от DEC, ученые сразу взяли ее на вооружение. Судьба Oracle в советском научном сообществе предопределила судьбу компании на российском рынке. 1980-е годы стали периодом "непрямых инвестиций Oracle в российский рынок", однако руководство Oracle смотрит на это время по-другому. Ларри Эллисон, например, считает, что в Советском Союзе его просто-напросто "пиратили". Вообще глава Oracle всегда был настроен скептически по отношению к СССР. В 1988 году в американском журнале о технологиях баз данных Datamation Эллисон даже заявил, что Oracle в Россию доставят ракеты с ядерными боеголовками — системы Oracle тогда интенсивно использовались Минобороны США. Однако всего год спустя после скандального высказывания Ларри Эллисона Oracle попала в СССР вполне цивилизованным образом. Стенд Oracle появился на выставке "Автоматизация-89" осенью 1989 года. В начале 1990-х, когда СУБД Oracle уже распространялась на территории СНГ на коммерческой основе, русификацию продуктов Oracle местные дистрибьютеры делали собственными силами. И только то, что Oracle к тому времени долго "гуляла" по Союзу в нелицензионном виде, помогло сразу набрать в компанию специалистов очень высокого класса. Например, русификацию Oracle Office, которую впоследствии американский гигант и купил, сделали энтузиасты из советского научного сообщества. Успехи первого дистрибьютера Oracle привели в Россию в 1994 году и первого официального представителя компании — Андреаса Харта. Тогда же клиентами Oracle в России стали такие мощные структуры, как ФСБ, Кабинет Министров, Мосприватизация, МПС, РАО ЕЭС и т.д.

День сегодняшний

Корпорация Oracle объявила, что 2004 финансовый год стал одним из самых успешных в ее истории. Годовой оборот вырос на 7% и составил $10,2 млрд, причем доходы от продаж ПО увеличились на 12% и достигли $8,1 млрд, а от оказания услуг — на 8% уменьшились. Норма прибыли за год составила 38%, что стало самым высоким показателем за все время существования корпорации. Сама чистая прибыль выросла на 16% и достигла $2,7 млрд — из них 990 млн было получено в последнем квартале. Глава Oracle Ларри Эллисон отметил, что за полгода, прошедших с момента представления технологии grid- вычислений, объем продаж новых лицензий на СУБД вырос на 15%. По итогам 2004 года офис Oracle в России и СНГ вошел в тройку лучших представительств Oracle по темпам роста в регионе ЕМЕА (Европа, Ближний Восток и Африка) и пятый год подряд — в пятерку лучших среди 145 представительств Oracle в мире. Продажи лицензий в СНГ выросли более чем в 1,5 раза по сравнению с предыдущим годом. В 2004 финансовом году Oracle в России и СНГ укрепила положение на рынке СУБД и заняла лидирующие позиции на рынке систем управления предприятием. В 2004 году базовые технологии Oracle приобрели более 950 компаний. Среди крупнейших клиентов 2004 года — Сбербанк РФ, Ингосстрах, МТС, "Вымпелком", "Мегафон", правительство Москвы.

В ходе парламентских и президентских выборов 2003-2004 годов технологии Oracle использовались на всех уровнях российской государственной автоматизированной системы "Выборы". Состоялась премьера самой сенсационной технологии с момента появления Интернета — Oracle Enterprise Grid — и новых версий базовых технологий: Oracle10g Database, Oracle10g Application Server, Oracle10g Developer Suite. В настоящий момент на Oracle10g уже ведутся несколько проектов в России. В странах СНГ Oracle делает стратегическую ставку на развитие консалтинговых услуг у партнеров. В прошедшем году продолжилось развитие партнерской экспертизы по Oracle E-Business Suite. Сегодня практику по внедрению Оracle E- Business Suite имеют более 400 консультантов по всему СНГ. За последний год их количество увеличилось на 80%. Кроме того, объем консалтинговых услуг, оказываемых непосредственно департаментом консалтинга Oracle СНГ, вырос более чем в 1,5 раза. В 2005 финансовом году Oracle в России и СНГ планирует усилить позиции на всех рынках. В планах корпорации — повышение объема продаж базовых технологий и бизнес-систем, расширение регионального присутствия, специальные программы для компаний-разработчиков, экспансия на рынок малых и средних предприятий. Впрочем, у заклятого конкурента Oracle — корпорации Microsoft — примерно такие же планы.

Денис Лавникевич


Компьютерная газета. Статья была опубликована в номере 26 за 2005 год в рубрике разное :: бизнес

©1997-2024 Компьютерная газета