N 29
02.08.2000
Итак, 25 июля 2000 года Inprise опубликовала
пресс-релиз,
исходя из которого IB 6 становится OpenSource. Лицензия,
по которой эти исходники (и исполняемые файлы) можно использовать,
называется IPL.
По этой лицензии (за базу взята лицензия MPL, см. соответствующий
выпуск) сторонние производители
ПО, использующие IB, не обязаны поставлять свой продукт
в исходных текстах, или поставлять вместе со своим продуктом
исходные тексты IB. Также теперь отсутствует понятие лицензии,
количества коннектов и т.п. Распространять дистрибутив IB
можно бесплатно и в сколь угодно больших количествах.
К сожалению, я так и не нашел перевода (вообще,
хоть плохого хоть хорошего) лицензии MPL, а подобная лицензия
- документ юридический. Поэтому вам придется читать лицензию
в оригинале.
Вместе с приятной новостью есть масса странностей.
Если внимательно прочитать пресс-релиз и лицензию IPL, то
станет видно, что Interbase Software Corp. там никак не
упоминается. Практически все файлы (и исходники и дистрибутивы)
находятся на www.borland.com. Более того, сообщение
гласит о том, что Inprise решил отказаться от передачи IB
компании ISC (см. комментарий
InfoWorld).
Таким образом, дальнейшая судьба ISC как компании
непонятна. Теоретически, именно Borland будет заниматься
сопровождением IB, однако на эту тему пока ничего не говорится.
ISC также молчит. Известно только то, что Харрисон отказалась
стать во главе отделения Interbase в Inprise, и осталась
директором ISC. На самом деле в данной ситуации сопровождением
IB может заниматься кто угодно.
Кроме того, в пресс-релизе Borland есть упоминание репликатора
для IB. Но репликатор был создан компанией Synectics
Software, принадлежит ей, и "не подлежит"
OpenSource. Вначале Synectics вела переговоры о репликаторе
с ISC, теперь же придется начинать это с начала с Inprise.
Но от Synectics пока никаких сообщений о судьбе репликатора
не поступало (репликатора в дистрибутивах IB 6 нет). То
же самое касается ODBC-драйвера для IB 6, которого нет в
дистрибутивах релиза. Драйвер выполнен James Starkey (об
этом я писал в предыдущем выпуске),
и также не принадлежит Inprise (если упомянутый мной линк
на cvs не работает, то увы - все вопросы к Starkey).
Ну да ладно. У тех, кто еще ничего не скачивал,
возникает вопрос - ГДЕ? Специально для ответа на странице
по версии 6 размещены практически
все ссылки с перечислениями всех дистрибутивов, исходников
и дополнительных файлов. Однако, без замечаний не обойдется
(хотя они там тоже указаны):
- IBConsole build 309 фактически не работает. Перекомпилировать
его не удастся, т.к. был утерян один из pas-файлов. Пользуйтесь
IBConsole build 308 или другими утилитами. Напомню, что
категорически не рекомендуется делать backup или restore
при помощи IBConsole, т.к. файлы могут оказаться битыми.
Используйте gbak.
- Скомпилировать исходники можно только прочитав рекомендации
Reed Mikele и взяв недостающие файлы с www.interbase.com.
- Документации в поставке нет. Используйте документацию
от бета версии.
Да, исходники даются в двух вариантах: в Windows-стиле
(CRLF) и в UNIX-стиле (CR). Так что два раза одно и то же
скачивать не стоит. На тему юниксового CR замечу, что это
означает "возврат каретки", и собственно на пишущей
машинке надо еще и нажать "перевод строки" (а
рычаг на каретке как раз и производит эти две операции последовательно),
иначе печать будет продолжена на той же строке. Так что
юниксоиды со своим CR без LF глубоко не правы. Нечего было
экономить один байт.
В дополнение к "скачке". На сервере конференций
news.mers.com появилась группа mers.interbase.build, посвященная
проблемам компиляции исходников IB6 и разумеется, их решению.
Конференция создана только в воскресенье, так что большого
количества писем там не ждите. Альтернативой news является
получение этой же конференции по email-рассылке.
Они же (mers) организовали CVS-сервер
для IB, marion и прочих вещей. Правда, этот сервер не является
официальным, так что надеяться на публикацию в нем изменений
особо не приходится. Тем более, что доступен он только для
чтения.
И еще - по словам Фуллера, с момента объявления IB 6 OpenSource
до 28 июля было скачано от 160 до 200 тысяч копий IB6.
Для пользователей BDE могут наступить плохие времена. Судя
по черновому
описанию архитектуры dbExpress, который будет в Kylix
и следующих версиях Delphi и C++Builder, отличия от BDE
будут существенными. Процитирую:
"Приложения баз данных, интенсивно работающие с данными,
должны использовать запросы и процедуры для обработки данных.
Открытие таблиц в BDE не только требует клиентских ресурсов,
но также и повышает обмен данными с сервером. dbExpress
не использует концепцию открытия таблиц, и клиенту рекомендуется
использовать SQL-запросы для оптимизированной выборки данных.
В отличие от BDE, dbExpress возвращает только однонаправленные
курсоры, и не поддерживает кэширование. Компонент ClientDataSet
может быть использован в этом случае для кэширования, скроллирования,
сортировки и фильтрации данных запроса.
BDE кэширует метаданные для последующих обращений к данным.
dbExpress этого не делает, и интерфейс работы с метаданными
реализован с использованием основного способа работы с данными.
Производительность BDE для баз данных SQL ухудшается при
внутренней генерации запросов для навигации, выборки blob
и извлечения метаданных. dbExpress занимается только выполнением
запросов, указываемых пользователем, при этом доступ к данным
оптимизируется за счет исключения лишних запросов.
dbExpress обеспечивает буфер записи или блок буферов записей,
и позволяет клиентам обращаться к значениям полей. BDE,
напротив, использует буфер записей, выделяемый на клиенте,
и это может послужить причиной ошибки в случае чтения клиентом
испорченного или уже недействительного буфера записи.
Вкупе с другими отличиями от BDE, dbExpress не имеет "живых"
запросов, кэшируемых обновлений, создания схемы, обработки
гетерогенных запросов, пакетного копирования записей и т.д."
Вам не стало страшно? Мне - нет. Я уже около года пишу
на FreeIBComponents и IBX. В общем, весь вышеизложенный
текст - предупреждение пользователям BDE. Кроме указанных
в последнем абзаце неподдерживаемых вещей, мне кажется,
что и не будет так любимого режима AutoCommit. И сотни тысяч
пользователей закричат - "как, я должен после commit
переоткрывать запросы?!?!".
Так что IBX после таких заявлений должен показаться раем.
Даже без компонент IBTable и IBQuery (которыми, кстати,
лично я не пользуюсь).
Поскольку одновременно выпущены как исходники IBX 4.2,
так и его дистрибутивы для Delphi и C++Builder, я рекомендую
воспользоваться именно исходниками (где взять, см раздел
по IB6). Всего 185 килобайт скачивания,
можно установить новую версию. Уточню, что этот метод более
предпочтителен для тех, кто уже привык обновлять версии
FreeIBComponents таким же способом. Или, таким методом стоит
воспользоваться тем, у кого есть проблемы с установкой дистрибутива
IBX. Напомню, что перед установкой IBX надо установить Delphi
5 update pack 1 (или переустановить его, если проблемы остаются).
При установке релиза IB 6 на W2K могут возникнуть серьезные
проблемы. В дистрибутив попал старый файл msvcrt.dll,
помеченный датой выхода релиза. Как результат - правильный
файл переписывается старым, и операционная система или офисные
приложения перестают работать. Разумеется, тут виноват и
разработчик, который "пометил" msvcrt.dll датой
релиза, но в большей степени - Microsoft, поскольку функция
SetupInstallFile должна проверять версии в ресурсах файлов,
а не только внешние даты файлов. Тем более что msvcrt.dll
- файл Микрософта, как и функция SetupInstallFile - из WinAPI.
Что делать - найдите сначала в каталоге с Windows файл
msvcrt.dll. Затем, скопируйте его на место одноименного
файла в дистрибутиве IB 6. После этого можете смело запускать
инсталляцию IB 6.
После опубликования релиза IB 6 выяснилось, что якобы были
предприняты специальные меры для того, чтобы IB 6 мог читать
базы данных формата ODS 9.0/9.1 (версий 5.x). Не могу пока
ни подтвердить это, ни опровергнуть, однако по некоторым
сообщениям работа с базами данных формата IB 5.x может привести
к проблемам. Дело в том, что IB 6 использует для процедур,
триггеров и прочего BLR версии 5, когда IB 5.x использует
BLR версии 4. Сообщают о таинственных случаях "самомодификации"
версии BLR при полном отсутствии изменений, производимых
из 6.0 с базой данных от 5.x.
Поэтому, будьте предельно осторожны. Обязательно перед установкой
IB 6 сделайте backup ваших баз данных. Еще лучше - после
этого сделайте им restore, и работайте в 6.0 с этими базами
данных в диалекте 1.
Замечания по ODS и возможности "отката" на предыдущую
версию IB описаны в документе,
а также в "Упрощенном руководстве
по переходу на IB6".
На закуску предлагаю почитать перл
от Открытых Систем. Хотя, возможно, для большинства пользователей
это звучит именно так. С другой стороны, солидная компания
могла бы и почитать предыдущие пресс-релизы Inprise. А может,
они читают только российскую прессу?
Надеюсь уйти в отпуск, так что следующая
наша
встреча произойдет в сентябре, не раньше. Пока!
HitBox
с 18 июня 1999 года |
Rambler
с 27 декабря 1998 года
|
|