...
...

Lotus Notes и Domino: первое знакомство

В последние годы программное обеспечение Lotus Notes и Lotus Domino стало известно и начало приобретать популярность в нашей стране. Сегодня о Lotus Notes слышали практически все программисты. Те, кто в познавательных целях устанавливали сервер Lotus Domino и/или клиент Lotus Notes, знают, что их очень трудно, если вообще возможно, освоить "нахрапом". Слишком много в них нового и необычного, а доступной вводной литературы на русском языке нет. Этой заметкой я хотел бы начать ряд статей практического характера, которые могли бы сколько-нибудь поправить положение.

(c) Компьютерная газета

В доказательство серьезности и обоснованности своих претензий считаю необходимым сообщить, что работаю с Lotus Notes и Domino более двух лет и имею международные сертификаты компании Tekmetrics в категориях Lotus Notes Programmer, Lotus Domino Administrator и High IT Aptitude. На этом покончим с предисловиями и предпримем краткий исторический экскурс.

Основатель компании Lotus, Митчел Кэпор, - личность легендарная. До того как увлечься программированием в 1978 году, Кэпор работал диск-жокеем и так серьезно занимался трансцедентальной медитацией, что даже получил аттестат и преподавал ее. Отсюда, кстати, название его компании и программ - "Лотос". Разработав для Apple II две многообещающих программы для деловых операций, он очень скоро пополнил ряды миллионеров. На этом Кэпор не успокоился и, продав за 1.2 миллиона права на эти программы, основал собственную компанию по производству и продаже своей универсальной системы "Lotus 1-2-3", сочетавшей, во-первых, электронные таблицы, во-вторых, графические возможности, а в-третьих, функции базы данных. Именно так расшифровывается загадочное "1-2-3".

Lotus 1-2-3, впрочем, как и все последующие продукты компании, были ориентированы на персональные компьютеры IBM. Сделав ставку на авторитет империи IBM, разработав высококачественную систему для IBM PC, затратив в конце 1982 года на рекламу Lotus 1-2-3 один миллион долларов, Кэпор оказался прав. Lotus 1-2-3 занял первое место в списке популярных программ, и всего через полгода было продано 60000 экземпляров программы по 495 долларов каждый.

В настоящее время компания Lotus входит в состав IBM. Среди самых известных продуктов Lotus-IBM особенного внимания, на мой взгляд, заслуживают Lotus Smart Suite и, конечно, Lotus Notes и Lotus Domino. Lotus Smart Suite по своему назначению можно сравнить с MS Office. В состав Lotus Smart Suite входит мощный текстовый редактор, система электронных таблиц, реляционная база данных, а также редактор для создания презентаций. Важно, что все эти программы тесно интегрированы между собой и, что для нас еще важнее, легко и естественно интегрируются с Lotus Notes. Другими словами, чтобы на компьютере было все, что нужно "для этой жизни", и даже больше, совсем не обязательно прибегать к услугам Microsoft.

Корни Lotus Notes принято искать в 1973 году, в программе PLATO Notes. В середине 80-х лицензия на PLATO Notes была приобретена Кэпором. В специально организованную по этому случаю компанию IRIS перешли ведущие программисты PLATO, и с этого момента началась действительная история Notes. В 1986 году была готова предварительная версия, предназначавшаяся для внутреннего использования. Первая версия Lotus Notes была выпущена в 1989 году. Показательно, что глава фирмы "Price Waterhouse", присутствовавший на предварительной демонстрации, получил от Notes такое сильное впечатление, что немедленно закупил 10000 экземпляров программы еще до выхода законченной версии продукта.

За прошедшие годы Lotus Notes аккумулировал труд и талант десятков тысяч разработчиков. Последняя фраза придумана не мною - это цитата из "Руководства разработчика Lotus Notes", выпущенного IBM и Lotus. В этой книге дается следующее определение: "Lotus Notes представляет собою распределенную клиент-серверную платформу, позволяющую создавать приложения по работе с данными, разделяемыми в сети группами пользователей. Такие приложения представляют собою наборы документарных баз данных, использующих инфраструктуру передачи сообщений. В дополнение к распределенному хранению данных и коммуникационным возможностям интегрированная среда разработки, являющаяся частью Lotus Notes, ориентирована на технологию быстрой разработки и развертывания стратегически важных систем корпоративного масштаба".

Эта цитата, конечно, производит впечатление, но для того чтобы сознательно выбрать Lotus Notes, нужно знать гораздо больше. Дело в том, что Notes - система с громадным количеством возможностей, а творчески воспользовавшись ими, можно сделать еще больше. В помощь специалистам, принимающим решение, следует ли использовать Notes и для каких целей, IBM и Lotus выпустили целую книгу под названием "Секреты применения Lotus Notes: решения, которые вам никто не поможет принять". Эту и другие книги можно найти на сайте IRIS www.notes.net. Много примеров применения Lotus Notes в различных областях приведены на сайте www.lotus.com.

Не претендуя ни на полноту, ни на глубину изложения, попробую коротко охарактеризовать Lotus Notes своими словами. Это современная, промышленная система, являющаяся и средой конечного пользователя, и средой разработки, и средой развертывания/поддержки приложений.

Lotus Notes реализует многие современные концепции. Вот их неполный перечень. Сетецентрическая среда, клиент-серверная архитектура, распределенная обработка данных. Коммуникации, поддержка интранет, встроенные HTTP, NNTP, POP, IMAP, LDAP, SMTP серверы. Встроенный объектно-ориентированный язык, вызов внешних программ, собственные API. Документарные базы данных, средства интеграции с реляционными базами. Богатый графический интерфейс, поддержка OLE, средства построения гипертекстовых систем. Встроенные средства защиты данных - от шифрования в канале связи до шифрования, цифровой подписи и управления доступом на уровне полей. Словом, многое из того, что очень хочется иметь, но не верится, что можно получить это так просто.

Слова о промышленном, корпоративном характере Notes означают, что выстроенные с его помощью системы, во-первых, охватывают, связывая воедино, всю организацию сверху донизу. Notes служит для обеспечения совместной работы множества людей с акцентом на решении задач масштаба предприятия, а не автоматизации отдельно взятых рабочих мест. В таком контексте с разработкой приложения для конкретного места работа далеко не заканчивается: просто в общей картине системы появляется еще один штрих. Во-вторых, ссылка на корпоративность подчеркивает факт, что Notes пользуется широким признанием в промышленных кругах, являясь надежным, проверенным решением, зарекомендовавшим себя именно в упомянутом выше смысле. По данным IBM, число конечных пользователей Notes во всем мире исчисляется миллионами.

Не думаю, что если и дальше твердить "халва, халва", то у вас станет сладко во рту. Самое время перейти к обзору ключевых технических характеристик Lotus Notes. Первая из них - многоплатформенность. Так, существуют версии сервера Notes для следующих ОС:

Microsoft Windows NT (Intel, Alpha), Windows 95/98; IBM OS/2 Warp 4.0, OS/2 Warp 3.0 и OS/2 2.21; UNIX: IBM AIX, Sun Solaris, SCO, NP/UX и Linux.

Клиенты Notes выпускаются для следующих платформ: Microsoft Windows NT, Windows 95/98, Windows 3.1 и 3.11; IBM OS/2 Warp 4.0, OS/2 Warp 3.0 и OS/2 2.21; Apple System 7.x; UNIX: IBM AIX, Sun Solaris, SCO, NP/UX и Linux.

Кроме того, серверы и клиенты Notes работают в среде следующих сетевых операционных систем: Novell NetWare, IBM LAN Server, Microsoft LAN Manager, Microsoft NT Advanced Server, PATHWORKS, Banyan VINES, AppleTalk.

Notes поддерживает следующие сетевые протоколы, как поодиночке, так и любую их комбинацию: NetBIOS, NetBEUI, TCP/IP, IPX/SPX, AppleTalk.

Эти перечни могут несколько различаться в зависимости от версии Notes.

Пользователи и разработчики приложений Notes "живут" не в среде операционной и сетевой системы, а в среде Lotus Notes. Поэтому если единая система Lotus Notes развернута на компьютерах с разными ОС в составе различных сетей, то ни пользователи, ни разработчики этого не ощущают. Можно выразиться иначе:

- разработчикам не нужно знать системно-зависимые API, специфическую технику и инструментарий программирования для разных платформ;

- нет необходимости переносить код приложений с одной платформы на другую, то есть нет нужды ни переписывать, ни перекомпилировать исходный код;

- нет необходимости учитывать коммуникационные аспекты разработки по связи гетерогенных сетей;

- приложение, разработанное для сервера, может локально исполняться на клиенте и наоборот.

Иными словами, приложение, разработанное под OS/2, может одновременно исполняться на сервере для Netware и на другом - для Windows NT. При этом с приложением смогут одновременно работать клиенты на компьютерах Apple Macintosh с Mac OS 7 и IBM PC с UNIX и Windows 95, причем сеть Netware будет обслуживать клиентов Windows 95, сеть AppleTalk - Mac OS, а сеть TCP/IP свяжет Unix-машины и серверы. И все это одновременно будет являться единой виртуальной сетью Lotus Notes, а для учета специфики межсетевой и межплатформенной интеграции программист не должен ничего делать вообще. Все уже сделали разработчики Lotus Notes. Такие вещи, как интерфейс пользователя и средства разработки Notes, естественно, одинаковы для всех платформ, хотя использование их специфических особенностей остается возможным.

Обсуждение межплатформенной природы Notes нельзя считать завершенным без упоминания о встроенных в Lotus Domino серверах WWW, электронной почты и новостей (HTTP, POP и NNTP). Таким образом Notes включает в состав поддерживаемых платформ Internet/Intranet. Особенно интересен сервер WWW: наряду с традиционным CGI и HTML-программированием, он, что гораздо значительнее, позволяет эксплуатировать приложение, созданное средствами Notes, клиенту, пользующемуся стандартным браузером!

Похоже обстоит дело и со средствами обмена сообщениями, то есть системой электронной почты и новостей. Пользователи клиентов Notes применяют для этой цели встроенные средства Lotus Notes. Соответствующие серверы в составе Domino не только обеспечивают прохождение сообщений от клиентов Notes в Internet и обратно, но и предоставляют пользователю, имеющему стандартное ПО электронной почты, доступ к коммуникационной инфраструктуре Notes. Кстати сказать, серверы и клиенты Notes работают не только в LAN или WAN, но и по выделенным линиям, и по коммутируемым соединениям.

Следующей ключевой особенностью Lotus Notes является мощнейшая система обеспечения секретности информации. По сравнению с ней все, что мне приходилось видеть до сих пор, представляется доморощенным любительством. Эта система многоуровневая. На самом нижнем уровне она включает в себя шифрование информации, передаваемой по каналам связи, как при обмене между серверами и клиентами Notes, так и при доступе из Internet (по протоколу SSL).

Следующий уровень защиты основан на применении системы шифрования с открытыми ключами и метода идентификации пользователей при помощи цифровой подписи. Первое позволяет осуществлять адресный обмен шифрованной информацией, а второе устанавливает строгие правила "доверительности", то есть условий, при которых пользователю разрешается работать с системой.

Наконец, третий уровень защиты заключается в том, что, во-первых, доступ к системе разрешается исключительно зарегистрированным пользователям, а во-вторых, предусмотрены средства дальнейшего разграничения доступа и ранжирования. Эти средства включают в себя возможности назначать различные уровни доступа к среде клиента Notes, к определенному приложению, в пределах приложения - к спискам документов, к самим документам и даже к отдельным полям в конкретном документе.

Следующая особенность Notes действительно уникальна. Речь идет о документарном характере баз данных Notes. Тема документарной ориентации Lotus Notes настолько обширна, что ее обсуждение разумнее отложить. Упомяну только то, что, наряду с громадными достоинствами, документарная ориентация имеет свои слабости. Однако в Lotus Notes предусмотрены средства для их преодоления, а именно: возможность интеграции с внешними реляционными базами данных. Справедливости ради стоит сказать, что обратное тоже верно: интеграция с Lotus Notes позволяет преодолеть слабые стороны реляционных баз...

Давайте на этом закончим первое знакомство с Lotus Notes. Надеюсь, мне удалось передать вам впечатление, что объединение многих технологий в одном продукте привело к грандиозному качественному скачку, благодаря чему Lotus Notes стал уникальным продуктом нового класса.

Евгений Щербатюк

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

полезные ссылки
Ремонт ноутбуков, компьютеров, мониторов