Чтение онлайн

на главную

Жанры

Дефрагментация мозга. Софтостроение изнутри
Шрифт:

Интересно, что Btrieve имела уникальный двухверсионный уровень изоляции, который я нигде больше не встречал. Процессы-читатели никогда не блокировались и не считывали «грязные» [103] данные, а если напарывались на них, то брали предыдущую чистую версию. Понятно, что какая-либо целостность этой версии по времени не гарантировалась: каждая таблица хранилась в своем файле. Журналов транзакций не было, «грязные» данные хранились в специальных страницах ( ditry pages ) в той же самой таблице.

СБ: Кроме первой пробной установки Novell, за все остальные компания честно платила. Поэтому стоимость

лицензий NetWare SQL была серьёзным аргументом в дополнение к его слабому быстродействию. CST на «голом» Btrieve работал в разы быстрее.

Кроме системы учёта для «Ниеншанца», на CST в 1992 году была сделана система для Молодёжной Биржи Труда. Как минимум год мы её сопровождали. В том же году сервер CST демонстрировался на выставке в ЛенЭкспо.

NDL, или Java в миниатюре (1993–94 год)

ДЦ: Между тем система, построенная на всем перечисленном, уже активно использовалась в компании и назвалась Seller 1.0. Написана она была, кроме интерфейса, опять-таки на голом C, а из-за ограничения в 640 килобайт представляла несколько разных исполняемых модулей: pay.exe для бухгалтерии, seller.exe для продавцов, store.exe для склада… Универсальную программу по причине размера собрать было уже нельзя.

Однако ограниченность платформы была ясна, и мы предприняли попытку разработать свой, как говорят сейчас, фреймворк. Да, мы создали в кратчайшие сроки свой язык NDL [104] , компилятор, компоновщик и исполняющую систему, независимую от ОС. Она была переносима без каких-либо серьёзных проблем, в переходный период код исполнялся одновременно и под DOS, и под Windows. В ней была даже реализована бесконечнозначная арифметика с фиксированной точкой, хотя в самом NDL количество знаков ограничивалось 64.

Но Windows будет потом, а пока исполняющая система под DOS научилась грузить NDL-программу в расширенную оперативную память ( extended memory ), освобождая под данные почти всю память основных 640 Кбайт минус исполняющая система, это был грандиозный прорыв. Кроме того, в NDL были исключения ( exceptions ) и куча полезных функций для работы именно с базами данных, так что мы бодро принялись писать новую систему Seller 2 на ней.

СБ: Если Seller 1 делался по наитию Д. Разгуляева, уточнявшего каждую неделю техзадание, то Seller 2 мы делали «правильно». Месяца 2–3 мы практически «бездельничали» – то есть придумали и обсудили приличное количество идей, оставив то, что нам казалось лучшим. Нарисовали схему базы данных и даже составили список ключевых функций. И только после этого приступили к реализации.

Сам NDL начинался с интерпретатора. Был придуман мета-код, первые бизнес-функции писались прямо на нем, но через месяц стало ясно, что без нормального языка дальше жить нельзя. Тогда появился NDL, компилятор и компоновщик. За основу синтаксиса был взят Паскаль. Код компилятора генерировался по описанию грамматики конвейером из 2 утилит, lex и yacc, под FreeBSD, установленной на одном из серверов. Полученный код на C затем компилировался в среде Borland под Windows. Компоновщик NDL собирал проект по описанию в makefile с разрешением имён глобальных и локальных ссылок и объектов. При этом он мог оставлять комментарии, которые позволяли исполнять код в режиме отладки с позиционированием на строки исходного кода. Всё было по-взрослому, несмотря на то, что сделано командой из 3 человек менее чем за год.

Закат Novell

ДЦ: Начиналось все хорошо. Вышел новый Btrieve версии 6, где появились интерактивное резервное копирование ( online backups ) и поиск без индексов. В пятой версии можно было либо читать все данные, либо искать по индексу. А для проверки типа «Сумма=123» необходимо проверять записи на клиенте. Теперь можно было эти проверки перенести на сервер.

Поначалу я этому обрадовался: задал сложный поиск, и сервер думает минуту. Пока не заглянул на заднюю панель компьютера. Лампочки, показывающие активность сетевой карты непрерывно горели! Маленький резидент на клиенте непрерывно посылал запросы типа «Готово? – Ещё нет». Иначе он и не мог, ведь раньше все обращения к Btrieve были короткими, и ждать не предполагалось…

Но тут вышла Windows 95 под кодовым названием «Чикаго». Novell почему-то не торопилась делать 32-разрядные драйверы и вообще как-то реагировать на новый тренд. В итоге Microsoft сама сделала 32-битные версии драйверов для IPX/SPX, но воспользоваться ими было невозможно, так как пресловутый brequest работал в 16-разрядном режиме DOS.

Наконец, я нашёл файл с говорящим именем breq32.dll (в «догугловую» эпоху это было делом дней и недель, а не секунд) и… выяснилось, что она представляет собой лишь 32-разрядный интерфейс для обращения к пресловутому brequest.

Последний гвоздь в крышку гроба Novell, как платформы разработки, был забит с попытки запустить систему под Windows NT. Все заработало правильно, но раз в 10 медленнее. Так у нас появился следующий #ifdef.

СБ: У Nоvell был лучший файловый сервис, который я видел. Нормальное управление правами доступа, garbage – мусорная корзина, была реализована на уровне ядра, никаких проблем с восстановлением неосторожно удалённых файлов. Поддержка RAID. Но всё остальное, что делала компания, было ужасно. Их связка Btrieve + NetWare SQL была тупиком. Они это понимали и родили кентавра OracleWare – NetWare со встроенной СУБД Oracle. Мы были на презентации этого чуда в отеле «Европа».

Сегодня я считаю, что такой альянс был ошибкой, так как Novell базировался на архитектуре x86. Тем, кому был нужен Oracle, такие решения не подходили, они в 1990-х покупали серверы на многопроцессорных RISC-архитектурах, например SPARC, а Novell был продуктом более низкой ценовой категории.

Думаю, они специально не торопились с драйверами под Windows и поддержкой доменов NT в своей службе каталогов, понимая, что Microsoft – их прямой конкурент, поскольку Windows объединила в себе функции сетевой серверной и настольной ОС. Btrieve под NT появился в результате выделения продукта в отдельную компанию.

От автора: Я снова столкнулся с Novell в 2010 году в рамках небольшого проекта для французской национальной сети телевещания. Корпоративная система безопасности для тысяч компьютеров на разных территориальных площадках была по-прежнему построена на службе каталогов NetWare, хотя и в тесной интеграции с аналогичной службой Microsoft. Новые компьютеры с Windows Vista/7 включались в общую систему. Сама Novell в конце того же 2010 года была куплена малоизвестной компанией Attachmate за целых 2,2 миллиарда долларов и формально прекратила существование. По некоторым сведениям, за Attachmate стояла Microsoft, незадолго до того выложившая 450 миллионов на приобретение у Novell технологий.

Поделиться:
Популярные книги

Отмороженный 3.0

Гарцевич Евгений Александрович
3. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 3.0

Магнатъ

Кулаков Алексей Иванович
4. Александр Агренев
Приключения:
исторические приключения
8.83
рейтинг книги
Магнатъ

Лорд Системы 13

Токсик Саша
13. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 13

Магия чистых душ 2

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.56
рейтинг книги
Магия чистых душ 2

Романов. Том 1 и Том 2

Кощеев Владимир
1. Романов
Фантастика:
фэнтези
попаданцы
альтернативная история
5.25
рейтинг книги
Романов. Том 1 и Том 2

Последняя жена Синей Бороды

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Последняя жена Синей Бороды

Мимик нового Мира 8

Северный Лис
7. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 8

Приручитель женщин-монстров. Том 3

Дорничев Дмитрий
3. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 3

Возвышение Меркурия. Книга 13

Кронос Александр
13. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 13

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Жена на четверых

Кожина Ксения
Любовные романы:
любовно-фантастические романы
эро литература
5.60
рейтинг книги
Жена на четверых

Я все еще не князь. Книга XV

Дрейк Сириус
15. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я все еще не князь. Книга XV

Звезда сомнительного счастья

Шах Ольга
Фантастика:
фэнтези
6.00
рейтинг книги
Звезда сомнительного счастья