Главная страница Visual 2000 · Общий список статей

Проект "Три семерки" — новый этап сотрудничества лидеров софтверного бизнеса
Ради совместимости с продуктом "1С" корпорация Microsoft сделала исправление в SQL Server 7.0

Андрей Колесов

© Андрей Колесов, 2000
СТАТЬЯ НЕ БЫЛА ОПУБЛИКОВАНА!
Примечание автора от 06.06.2003. В еженедельнике PC Week в течение нескольких лет у меня был целый ряд публикаций, посвященных совместным проекта "1С" и Microsoft. Одно из направленией такого сотрудничества — выпуск совместного решения "1С:Предприятие" и MS SQL Server. Сейчас (2003 г.) подобные продукты на базе MS SQL уже давно не в диковинку, но тогда это были первые шаги в очень важном для обеих компаний направлении. Летом 1999 г. у меня появилась идея написать статью не просто об очередном совместном продукте, а о общей стратегии развития сотрудничества "1С" и Microsoft. Но с ее публикацией были трудности.

В PC Week/RE я уже написал небольшую статью о реализации проекта "Три Семерки", поэтому отталкиваться от того же информационного поводу, там было уже нельзя. Я предложил эту статью Камиллу Ахметову в сентябре 1999 г. Но оказалось, что он в тот момент как раз переходил из "КомпьютерПресс" в Etnerprise Partner ("СК Пресс") и слегка "продинамил" меня. Из-за этого все сильно затянулось, к тому же оба издания ("КомпьютерПресс" и только что появившийся Enterprise Partner) решили ограничиться только вариациями текста о самом совместном продукте. Можно было бы попробовать опубликовать статью в "Модусе", но в начале 2000 года оттуда ушел Ирик Иммамутдинов, и общение с этой газетой прекралось...

Тем не менее, я считаю, в этой статье затронуты важные вопросы, к которым стоит еще вернуться с учетом новых реальностей.



В июне 1999 года на очередном партнерском семинаре...

В июне 1999 года на очередном партнерском семинаре фирма "1С" объявила о новом варианте поставки своей программной системы "1С:Предприятие 7.7" в комплекте с Microsoft SQL Server 7.0. Соответственно было и выбрано название продукта: "1С:MS SQL — Предприятие 777". Именно такая маркировка, напомнившая о весьма популярном в старые добрые времена напитке, привлекла внимание широкой публики. И действительно, сегодня на фоне всеобщего присутствия в нынешнем году "2000" в наименовании практически всех новых продуктов использование "трех семерок" выглядело довольно удачным маркетинговым ходом.

Все остальное в "1С:MS SQL — Предприятие 777" казалось довольно обыденным, без признаков какой-либо уникальности. Уже стало нормой, что фирма "1С" выпускает не только обновления уже известных продуктов, но и принципиально новые программы с завидной частотой. Простое перечисление подобных новостей за квартальный период занимает, как правило, несколько страниц текста.

Не являлось необычным и представление совместных продуктов — "1С" давно известна активным сотрудничеством как с российскими ("Гарант", "Диасофт", "Инек"), так и с зарубежными разработчиками (IBM, Dell, Novell, Symantec). Причем одним из самых "старых" партнеров является как раз Microsoft — именно с ней "1С" выпустила более двух лет назад свой первый коробочный бандл "Бухофис 97" ("1С:Бухгалтерия 6.0 Проф" + MS Office 97).

Проект "1С:Предприятие" + MS SQL Server тоже, вроде бы, не отличается новизной: его первый вариант (соответственно для версий 7.5 и 6.5) был представлен еще год назад. А компоненты нового совместного продукта были также уже известны на рынке: пакет "1С:Предприятие 7.7" был представлен еще в апреле, на "Комтеке'99", а SQL Server 7.0 корпорация Microsoft выпустила даже раньше — в конце 1998 года. В этой связи, наоборот, возникал вопрос: почему единый продукт с новыми составными частями вышел с таким запозданием?

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

В начало статьи

Microsoft и "1С" — как много в них общего!

При всем различии в масштабах деятельности обеих компаний, можно найти много общего в их в стиле работы и стратегии продвижения своей продукции на рынок. И дело здесь совсем не в копировании удачного примера Microsoft: в действительности это просто реализация одной из наиболее эффективный бизнес- моделей софтверного бизнеса на современном этапе (который начался в середине 80-х годов) его развития.

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

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

На примере Microsoft в последние десять лет можно четко наблюдать реализацию этих двух бизнес-линий на примере платформ настольных систем Windows/Office (краткосрочные задачи) и серверных Windows NT/BackOffice (долгосрочные задачи). Одновременно ведется планомерное расширение круга пользователей (от индивидуальных к корпоративным) и функциональности продуктов (от настольных ОС к прикладным пакетам, далее к серверным ОС и серверным приложениям).

Что касается "1C", то тут просматривается достаточно четкая аналогия: расширение набора продуктов в функциональном (от бухучета к комплексным системам управления предприятием) и технологическом (от локальных систем к сетевым) направлении. В качестве примера "опережающего" предложения можно вспомнить о выпуске еще осенью 1995 года версии "1С:Бухгалтерия" для Windows 95.

В то время 90 процентов бухгалтеров еще работами с системами под DOS и поэтому многие наблюдатели посчитали тогда выпуск 32-разрядного пакета чисто имиджевым шагом. Однако уже на следующий год начался массовый переход пользователей из DOS в Windows, причем именно в 95, минуя 16-разрядную версию 3.1. В результате в концу 1996 года более 50% продаж бухгалтерских программ "1C" пришлись на платформу Windows 95.

История же с сетевыми версиями программ "1С" в этом плане также весьма любопытна.

В начало статьи

От файл-серверных к клиент-серверным версиям

Сетевые версии бухгалтерских программ компании "1С" существуют уже давно и до недавнего времени все они ориентировались на применение файл-серверной технологии своих сетевых версий продуктов с использованием СУБД Btrieve.

В представленном в середине 1996 года новом пакете "1С:Торговля" (который потом превратился в семейство продуктов "1С:Предприятие") на базе Btrieve 5.15 были реализованы уже два варианта — файл-серверный и клиент-серверный. При этом из бесед с разработчиками фирмы было понятно, что клиент-серверная версия являлась как бы переходной к будущему использованию баз данных на основе SQL. Вместе с тем, несмотря на наличие уже тогда MS SQL 5.0, фирма явно не спешила с его использованием, мотивирую это многими причинами, в том числе необходимостью поддержки платформы Novell, в среде которой работало большинство "сетевых" клиентов фирмы, а также "сыростью" продукта Microsoft (даже когда вышла версия 6.0).

Одновременно руководство "1С" отлично понимало стратегическую необходимость перехода (хотя бы частичного) на применение MS SQL. Во-первых, четко обозначилась стратегическая перспектива перехода традиционных пользователей "1С" на платформу Windows NT и MS SQL. Во-вторых, настоящий клиент-серверный вариант, обеспечивающий реальную масштабируемость систем, крайне необходим для продвижения продуктов фирмы "1С" в сторону более крупных заказчиков.

Однако выход версии MS SQL 7.0, которая по предварительным данным должна быть вполне пригодной для массового рынка, все затягивался (по поводу чего представители "1С" регулярно сетовали), а тянуть с SQL-вариантом было уже невозможно. Именно поэтому в начале 1998 года было решено выпустить версию на основе MS SQL 6.5 и в мае был представлен совместный продукт "1C" и Microsoft "1С:MS SQL 6.5 — Предприятие 7.5".

Здесь нужно отметить два важных момента.

  1. Речь в данном случае идет не о простом механическом объединении двух продуктов в одной коробке (как это было ранее с "БухОфисом"). На самом деле между двумя компаниями было заключено (первое в странах Восточной Европы) лицензионное соглашение, в соответствии с которым "1C" получила возможность сама записывать программный продукт Microsoft на компакт-диск вместе со своими программами, а не покупать его отдельно и вкладывать в коробку. Кроме того, фирма получила расширенные права на формирование цен и продажу лицензий. Например, для автономного продукта MS SQL минимальная дискретность приобретения пользовательских лицензий составляет 5, а в составе совместного продукта — 1.

  2. Переход от традиционных баз данных класса DBF к SQL (и от файл-серверной к клиент-серверной архитектуре) является совсем не простым. Эффективное применение механизма базы данных требует соответствующей перестройки всей логики работы приложения, в том числе и его клиентской части. К сожалению, известно достаточно много реальных случаев, когда механический перенос приложений, без учета специфики SQL, не только не приводит к улучшению работы, но даже снижал характеристики системы. (Обсуждению этой проблемы был посвящен очень интересный круглый стол на Фестивале Microsoft еще в октябре 1997 года.)

В этом плане весьма характерным вопросом, который задавался журналистами еще в прошлом году был такой: почему "1С" выпустило версию системы для MS SQL Server, не обеспечив при этом возможность работы с SQL-базами других разработчиков. (Обычно упоминание о том, что некая прикладная программа может работать с SQL-сервером любого производителя, воспринимается как ее большой плюс.)

Отвечая на данный вопрос руководитель разработчиков "1С" Сергей Нуралиев очень четко обратил внимание на то, что эффективное применение СУБД требует учета ее особенностей у каждого отдельного производителя, в том числе для различных версий. Обеспечить поддержку разных систем можно либо за счет использования простых схем взаимодействия прикладной программы и сервера (т.е. снижения производительности системы), либо за счет значительного удорожания разработки в результате "вылизывания" каждого отдельного варианта. В связи с этим позиция фирмы формулируется примерно так: "мы хотим создать эффективную систему и не намерены зря тратить деньги, чтобы иметь возможность указать в рекламе длинный список совместимых СУБД, которыми наши клиенты в обозримом будущем все равно не будут реально пользоваться."

В начало статьи

История трех семерок

Но почему же, если "1С" и Microsoft так давно готовились к совместному SQLпроекту, продукт с версией 7.0 вышел с задержкой почти в полгода? Причина банальна — в ходе тестовых испытаний была обнаружена несовместимость MS SQL Server 7.0 и "1С:Предприятия 7.5".

В январе 1999 года разработчики "1С" обнаружили неприятный для себя факт, что в SQL Server 7.0 по сравнению к SQL Server 6.5 изменилось поведение одной функции, которая касалась Rollback-транзакции. Пикантность ситуации заключалась в том, что речь шла не об ошибке Microsoft — новый вариант функции работал в точном соответствии с его описанием в документации.

В течение почти месяца сотрудники московского представительства Microsoft и фирмы "1С" пытались выяснить, как можно обойти такое поведение или как его можно побороть, искали всякие скрытые ключи запуска MS SQL, запускали его в разнообразных режимах и т.д. И в результате пришли к выводу, что с этим ничего сделать нельзя и есть только две возможности:

По оценкам "1С", переделка ее продукта потребовала бы очень серьезных коррекций, затрат времени и средств, при этом была бы потеряна совместимость с SQL Server 6.5 (точнее, нужно фактически поддерживать оба варианта системы). К тому же такие изменения могли снизить функциональность их продукта.

В результате было принято совместное решение о необходимости убедить Редмонд внести исправление в MS SQL 7.0. По мнению технического специалиста по средствам разработки московского офиса Microsoft Юрия Томашко (именно он занимался всей этой проблемой), российское представительство впервые ставило вопрос о внесении изменения в функциональность готового продукта, а не просто об устранении ошибки. При этом в своем общении с "большим" Microsoft особый упор делался на необходимость выполнения корпорацией упоминавшегося выше лицензионного соглашения.

15 марта из Редмонда было получено подтверждение о том, что указанная функция будет изменена в первом сервисном пакете обновлений MS SQL Server. Одновременно фирма "1С" получила официальный статус бета-тестера этого Service Pack (его первая бета версия вышла 2-го апреля) и московские специалисты (офис Microsoft и "1С") убедились в том, что проблема действительно решена. После чего разработчики "1С" занялись оформлением окончательной версии своего пакета "1С:Предприятие 7.7" (выбор такой последовательности номеров версий явно показывает, что идея названия окончательного проекта — "три семерки" — была определена уже давно), который и был представлен на "Комтеке'99" в середине апреля. А как только в июне вышел Service Pack 1 для MS SQL 7.0, совместный продукт поступил в продажу.

В начало статьи

Совместными усилиями

Рассказанная здесь история, на мой взгляд, служит свидетельством повышения, с одной стороны, авторитета России в глазах "большой" Microsoft, а с другой, — рейтинга местных разработчиков в планах деятельности московского офиса корпорации. Совершенно очевидно, что сегодня продвижение MS SQL Server 7.0 является одним из приоритетных направлений работы компании. Как бы то ни было, но предыдущие версии этой СУБД носили пока явно предварительный характер и служили для "разведки боем" и "захвата плацдармов".

Решающий этап борьбы в продвижении данной системы наступил именно сейчас, с выходом версии 7.0. И успех MS SQL в огромной степени зависит от поддержки СУБД со стороны независимых разработчиков. В этом плане весьма характерным является буквальный поток пресс-информации (с начала нынешнего года) из московского представительства Microsoft о применении SQL Server 7.0 в российских разработках и о готовых решениях.

И хотя таких сообщений довольно много, партнерские отношения с "1С" для Microsoft, безусловно,, являются принципиально важными. Дело в том, что если ранее SQL Server продвигался в основном в качестве решений для корпоративных клиентов (где Microsoft вообще не присутствовала в разряде СУБД), то в последнее время эта система нацеливается также на сегмент баз данных нижнего уровня, в том числе и настольных. Любопытно, что в нижнем уровне баз данных Microsoft как бы вступает в конкурентную борьбу с собственными разработками, в частности FoxPro и Access.

И здесь лучшего партнера, чем "1С", по широкому продвижению MS SQL в сегменте малого и среднего бизнеса сегодня даже трудно представить. Не говоря уже о том, что "1С:Предприятие" настойчиво движется и в направлении корпоративных клиентов. По данным "1C", менее чем за год (по состоянию на апрель 1999 года) продано более 1600 лицензий на "1С:MS SQL — Предприятие". Российское представительство Microsoft не раскрывает сведений об объемах своих продаж, но можно уверенно предположить, что доля "1С" в поставках SQL Server весьма значительна.

Вполне очевидно, что и для "1C" ориентация на использование MS SQL Server является принципиально важной. В этом плане нужно обратить внимание на тщательную проработку финансовой схемы поставок, которая делает выгодной для партнеров продажу совместного варианта продукта.

По информации Сергея Нуралиева версия 1С:Предприятие 7.7" изначально готовилась под MS SQL 7.0 и в ее разработке в течение полутора лет участвовало около 20 специалистов. В системной части новой версии содержится свыше 950 тыс. строк кода, что в 1,5 раза больше, чем в предыдущей.

При этом следует отметить, что если при выпуске первого варианта совместной системы (год назад для SQL 6.5) делался упор на возможность создания более надежной информационной системы, то на этот раз ключевой задачей было резкое повышение ее производительности. По данным тестирования, проведенного рядом партнеров "1С" на рабочих системах своих клиентов, простое автоматическое обновление "1С:Предприятие 7.5" + MS SQL 6.5 на "1С:Предприятие 7.7" + MS SQL 7.0 увеличивает производительность системы в 1,5-4 раза. А по оценкам разработчиков "1С", за счет оптимизации конкретных систем пользователей с помощью новых встроенных средств конфигурирования систем нижнего уровня можно увеличить скорость ключевых операций в 100 и более раз.

В начало статьи