|
|
|||||||||||||||||||||||||||||
|
Lotus Domino, Часть 1: Не такой как все. Роль и место. (электронная книга)Источник: IBM developerWorks Россия Вадим В. Москвин
Что такое Lotus Domino, священое чудовище о котором никто ничего толком не знает, кроме того что оно живёт в своем собственном мире в котором царят малопонятные обычным смертным законы и общатся на равных с которым может только узкая каста жрецов? Или это открытая гибкая и очень удобная для пользователей и разработчиков современная система управления бизнесом. ПредисловиеВ настоящее время сложилась ситуация когда многие специалисты в области ИТ (практически всех административных уровней), даже те кто ориентирован на решения IBM имеют весьма не четкое представление о том что стоит за таким брендом как Lotus. Обычное представление заключается в том, что это или система электронной почты, либо некий "полуфабрикат" документооборота. И когда узнают «весь список» возможностей системы Lotus Domino, то обычной реакцией бывает крайняя степень удивления. Причина такой ситуации в нашей стране в принципе понятна и заключается она в отсутствии «информационного пути» к этому продукту. Нельзя сказать, что бы литературы по Lotus Domino нет вовсе, но то, что можно найти на полках очень не многих крупных магазинов, это ограниченный набор ужасающе, для не подготовленного читателя, толстых и достаточно дорогих изданий, рассчитанных либо на специалистов, либо на тех, кто уже всё для себя решил и теперь готов осваивать этот продукт, во что бы то ни стало. И совершенно ясно, что никто не станет брать такую книгу просто для общего ознакомления с системой, даже если в этот момент решает вопрос по выбору продукта для реализации какой либо задачи. А с другой стороны существуют материалы, имеющие слишком выраженную рекламную окраску с жизнеутверждающими рассказками о «счастливых обладателях». Впрочем, доходят они в основном лишь до IBM ориентированных клиентов. Безусловно, такие материалы часто имеют весьма положительное влияние на руководящих работников, но они в большинстве своём отправляют их на экспертизу техническим специалистам, а если специалист детально не знаком с продуктом, и при этом не смог найти нужную информацию, то не сложно догадаться, какое заключение он даст. Этой статьёй я собираюсь дать ответ как раз на те вопросы, которые не затрагиваются в рекламных материалах с одной стороны и надёжно запрятаны в толстых томах для специалистов с другой. Так, например, чем модель работы с информацией в системе Lotus Domino отличается от широкораспространненой реляционной модели, какими преимуществами обладает и какую специфику имеет. Что важно учитывать при выборе базовой системы для создания информационной среды, в каких случаях целесообразно применение системы Lotus Domino. Каким образом организовывается взаимодействие с другими системами хранения данных (методические вопросы создание "эталонной информации" в гетерогенных средах). Надеюсь, что эта статья будет полезна специалистам, занимающимся разработкой и внедрением информационных систем уровня предприятия, и тогда когда стоит стратегический вопрос о выборе продукта и в процессе поддержки и развития существующих приложений. Сразу хочу отметить, что набора инструментов программирования системы Lotus Domino вполне достаточно для создания приложений отвечающих самым взыскательным требованиям современных пользователей бизнес систем, что и будет видно из конкретных примеров. Данные материалы основаны на опыте разработки и внедрения систем в области дилерского ритейла IT продукции, в области медицинского страхования "ОМС" и области снабжения в организации, занимающейся строительством сети кабельного телевидения. Не реляционный!Так что же такое система Lotus Domino, что она умеет и для чего предназначена. Важной особенностью системы Lotus Domino является модель управления данными. В настоящее время мы настолько привыкли к табличной форме представления информации, что у многих давно сложился стереотип первичности, даже можно сказать фундаментальности, реляционной модели (информационного) мира. Так вот, ни по организации данных, не по средствам поддержания взаимосвязей между объектами, система Lotus Domino совершенно не реляционная. Вероятно наиболее точное определение её может звучать как документарная. Легко представить себе эту систему на примере работы с обычными бумажными документами. В реальном мире существует огромное количество форм документов, сразу обратим внимание на эти термины - ФОРМА и ДОКУМЕНТ, к ним мы скоро вернёмся. Для рассмотрения возьмём, например такой документ как платёжное поручение, вполне обычный в бухгалтерской работе. Отвлечёмся от всеобщей информатизации и представим, что данный документ заполняется от руки. Как происходит работа с этим документом по такой технологии. Процесс очевиден, бухгалтер берёт бланк и начинает заполнять поля, для этого он использует различные справочники (например с данными о банках БИК, кор. счёт и т.п.) и документы на основании которых будет производится платёж (счёт, договор и т.п.), после заполнения документ подписывается ответственными лицами и передается в банк, где в него заносятся соответствующие данные о исполнении платежа, после чего этот документ подшивается в соответствующую папку где и хранится установленный законом срок. В этот период данные из этого документа могут быть использованы для создания других документов, например периодических отчётов в виде балансов и т.п. Как мы все знаем этот процесс повторяется многократно и документы в довольно больших объёмах накапливаются в архивных папках. Теперь представим себе ситуацию, когда контролирующие структуры решили, что данные в документе уже не соответствуют требованиям текущего момента или просто форма не очень удобна для работы и решают изменить форму бланка документа, а заодно добавить пару новых полей и выкинуть какое-нибудь не нужное. Издается нормативный документ предписывающий с определенного момента работать по новому. Готовятся инструкции описывающие правила и порядок работы с новой формой, формируются новые или корректируются существующие справочники. Что при этом происходит в цикле работы с документами, вообщем то ничего особенного, просто с установленного периода служащие берут бланки нового образца, открывают новые или скорректированные справочники и заполняют документ в соответствии с новыми инструкциями. В конечном итоге в архивные папки поступают документы, отличающиеся как по виду, так и по содержанию от тех, что там уже хранятся. А теперь совершенно глупый с точки зрения реального документооборота, но достаточно важный для понимания документарной природы данных вопрос, что произойдёт с документами, которые были сделаны и находились в обращении до момента принятия новых нормативных актов после вступления новых изменений в силу? Ровным счётом ничего ! В полях бланков останутся всё те же данные, даже если в справочниках откуда они были взяты формат их изменился и даже в том случае если они и вовсе от туда исчезли. Очевидно, что даже если и сами справочники будут отменены, то и это событие никак не повлияет на содержание полей уже заполненных документов. Отсутствие постоянной взаимосвязи между объектом куда помещаются и где хранятся данные с эталонным источником этих данных следует отметить как одну из важных особенностей документарной модели. Но отсутствие свойства поддержания ссылочной целостности это всего лишь важное наследование из области реальных документов, которое делает систему удобной для создания документоориентированных процессов. При этом следует отметить, что это свойство, весьма важное и полезное во многих случаях, довольно часто не рассматривают как важный критерий в определении системы как реляционной. Более важным критерием в этом вопросе считается способ организации хранения информации.
Жизнь без таблицТеперь давайте посмотрим, что и как хранит система Lotus Domino. И опять мы видим принципиальное отличие от большинства систем управления данными. Если мы посмотрим на большинство систем хранения и управления данными, начиная от сложнейших программных комплексов типа IBM DB2, MS SQL Server, Oracle и до доступного практически всем MS Exel, то увидим, что организация данных в них имеет чётко структурированную форму, и все они основаны на табличной организации. Единицей хранения в таких системах является, то что чаще всего называют "ЗАПИСЬ" или "СТРОКА", которая состоит из колонок которые и создают структуру данных табличного объекта. Все системы основаные на этом принципе требуют описания структуры данных, а если они ещё и реализуют реляционную модель со свойствами поддержания ссылочной целостности, то и описания взаимосвязей между объектами. Такие требования часто приводят к тому, что внесение изменений в уже действующую систему бывает черезвычайно затруднено и требует больших накладных расходов иногда вплоть до переноса данных в другую, заново созданую структуру. Коротко можно сказать, что структура данных и описание взаимосвязей являются основой таких систем. Теперь, чтобы лучше понять, как организовано хранение данных в системе Lotus Domino снова вернемся в мир реального документооборота. Что делает лист бумаги с нанесенной на него информацией документом? Прежде всего сама информация ! А не организация её размещения на листе, хотя и это бывает важным моментом. Например, лист бумаги станет заявлением на отпуск, то есть документом, только в том случае если на нём будет содержаться информация о том, от кого оно поступило, кому адресовано, а также данные по сути вопроса, то есть период, на который данный отпуск испрашивается. А величина отступов, цвет чернил как правило большого значения не имеют, главное чтобы подчерк был читаемым а текст однозначно интерпритируемым. Да и платёжное поручение всегда будет принято к исполнению, если будет содержать всю необходимую информацию и требуемые атрибуты не взирая на различия в типе и величине шрифта и прочих полиграфических тонкостях. Таким образом мы приходим к тому, что для того чтобы создать документ нам необходим лишь лист бумаги и инструкция по заполнению. Хотя готовый бланк нам безусловно существенно облегчит работу. Соответственно и в системе Lotus Domino, в которой мы имеем дело с объектами, которые носят название «ДОКУМЕНТ» картина будет аналогичной. Для объектов «ДОКУМЕНТ» системы Lotus Domino , так же как и для реальных документов, структура является не самым главным, более того её можно легко поменять по ходу дела без каких либо заметных потрясений, не говоря уже про искажение или потерю данных. То есть вывод будет такой наличие структуры данных желательное, но не обязательное условие для работы в системе Lotus Domino.
Не ждать согласованийМожно начинать работать буквально с чистого листа или лучше сказать на чистом листе. Мы можем создавать документ и заносить в него информацию, а потом проводить с этим документом любые типичные для базы данных манипуляции, такие как, сортировка, группировка и т.п., не имея представления, как этот документ будет в конечном итоге устроен. Продолжая аналогию с листом бумаги, мы, если не знаем, какова форма документа просто записываем на него информацию в том виде, какой находим удобным. В случае с реальным документом если окажется что для него существует бланк, нам придется переписать его уже на бланк и вполне вероятно дополнить какой то информации о требовании, на которую и не догадывались, а возможно, что-то в нашем черновом документе окажется лишним. Аналогичная схема работает и в системе Lotus Domino, но только в отличие от бумажного документооборота труд по переносу данных на бланк она возьмёт на себя, причем бланков этих может быть любое количество, а наличие лишней или отсутствие требуемой информации не остановит работу. В реальной жизни это означает, что в системе Lotus Domino можно начинать работать ещё до того как будут решены и согласованы все вопросы о том, что и как нужно собирать, хранить и обрабатывать.
Документ и его ФормыНаверное, теперь необходимо договориться об использовании некоторых терминов. В любой системе управления данными существует объект, который можно назвать «единицей хранения» и который содержит в себе те полезные данные, ради которых собственно и используется данная система. В системах основанных на табличных структурах, таким элементом является «ЗАПИСЬ», которая, как мы уже говорили, имеет определённую структуру, т.е. колонки или поля, структура «ЗАПИСИ» является её обязательным и неотъемлемым свойством, причём в каждый конкретный момент времени может существовать только одна единственная структура. Я хочу особо отметить этот факт и вот почему. В системе Lotus Domino единицей хранения является «ДОКУМЕНТ», но в разделе разработки мы не найдем никаких явных признаков его существования, обнаружить «ДОКУМЕНТ» можно только в области данных. А когда мы захотим создать какой либо документ, то нам предложат воспользоваться для этой цели «ФОРМОЙ», которую мы без труда найдем в разделе разработки. И когда мы откроем уже существующую или начнем создавать новую форму, то обнаружим, что мы производим структурирование, назначаем поля, определяем типы данных, которые они должны содержать, совсем так же как в табличных системах. Правда, при этом мы ещё имеем возможность разработать дизайн документа, но это можно было бы отнести на особенности системы. И создается впечатление, что отношение «ДОКУМЕНТ» - «ФОРМА» аналогично такому свойству «ЗАПИСИ» как структура. Это совершенно не так! «ДОКУМЕНТ» в системе Lotus Domino это единица самоопределенная, во всяком случае, для всех кто не занимается разработкой собственно системы. «ФОРМА» это объект, с помощью которого происходит взаимодействие пользователя с «ДОКУМЕНТОМ». Довольно грубой, но наглядной аналогией может послужить персональный компьютер, если мы системный блок вместе со всем его содержимым представим, как «ДОКУМЕНТ», а набор периферийного оборудования предназначенного для взаимодействия с пользователем (клавиатура, монитор, мышь, сканер, принтер и т.п.) как «ФОРМУ», то можно легко убедиться в том, что изменение состава оборудования входящего в «ФОРМУ» не смотря на всевозможные интересные эффекты напрямую никак не отразится на данных хранящихся в том, что мы здесь называем «ДОКУМЕНТОМ». На информацию в «ДОКУМЕНТЕ» может повлиять только пользователь использующий «ФОРМУ» в качестве инструментального средства. И так же как в нашем примере мы можем взаимодействовать с «ДОКУМЕНТОМ» в системе Lotus Domino с помощью разных «ФОРМ» и смена «ФОРМЫ» не оказывает влияния на содержание «ДОКУМЕНТА». Если вернуться к сравнению с реальным документооборотом, то чаще всего нам не важно как был изготовлен лист бумаги лежащий сейчас перед нами, большинство имеет об этом только самое общее представление, нас больше интересует вопрос что будет записано на этом листе и куда он дальше пойдёт. Так же и в системе Lotus Domino мы получаем «ДОКУМЕНТ» таким, каким его создает система и до того момента, когда она предоставит его в наше распоряжение мы не властны как-либо на него повлиять. В отличие от систем табличного типа, где, прежде чем создать «ЕДИНИЦУ ХРАНЕНИЯ» с нас спросят самые подробные инструкции по этому процессу, а потом запускается конвейер, перепрограммировать который иногда бывает очень не просто. Если снова обратится к реальным бумагам, то можно сказать, что в системах с табличными структурами мы получаем для работы готовые бланки с достаточно строгими правилами заполнения, причем в большинстве случаев необходимо при разработке этих бланков максимально учесть всё, что может быть необходимо для работы. В системе Lotus Domino мы получаем в свое распоряжение набор от чистого листа до бланка с весьма сложной организацией. При этом информация, нанесенная даже на «чистый лист» всё равно будет структурированной и у нас будет возможность работать с ней именно как со структурой.
Отсутствие структуры? или …Давайте теперь более внимательно рассмотрим объект, который в системе Lotus Domino называется «ДОКУМЕНТ». Сразу можно сказать, что как при изучении реального документа, мало кто добирается до молекулярной структуры листа бумаги и чернил, мы так же сосредоточим свое внимание только на том, что представляет практический интерес. Важно отметить такой факт, что когда мы обращаемся к системе Lotus Domino с запросом создать «ДОКУМЕНТ», то мы лишены возможности сообщить ей наши «пожелания» относительного того, что мы хотим увидеть. При работе через пользовательский интерфейс это конечно не так очевидно, так как там нам необходимо указать «ФОРМУ» с помощью, которой мы будем вносить данные, хотя мы теперь уже знаем, что отношения «ДОКУМЕНТА» и «ФОРМЫ» могут быть «мимолетными» и всерьез полагаться на такой «союз» было бы опрометчиво. Если мы обратимся к средствам программирования системы Lotus Domino, например, к языку LotusScript, то мы сможем легко убедиться, что у метода CreateDocument объекта notesDatabase нет параметров! Мы не можем указать системе, сделать документ на основании, какой либо структуры. В этом моменте можно обнаружить различие между системой Lotus Domino и реальным документооборотом. В реальной жизни как мы знаем, документы оформляются чаще всего на бланках аналогами, которых в системе Lotus Domino является «ФОРМА». Реальный документ созданный на бланке уже не может изменить свою форму, все, что мы можем сделать, это заполнить другой бланк, вероятно, этим и объясняется такое изобилие бумажных форм документов. А в системе Lotus Domino мы без труда можем использовать любое количество «ФОРМ» для одного и того же документа. Система даёт нам чистый лист (хотя конечно он содержит служебные отметки) и предлагает записать на него все, что нам нужно. Конечно, как и в реальной жизни, где мы, если хотим чтобы нас поняли, придерживаемся определённых правил, например, используем для записей русский язык, слова пишем в строки, с лева на право которые располагаем сверху вниз, так и в системе Lotus Domino существуют правила, которые следует соблюдать. И связаны они, безусловно, со способами хранения информации. Для хранения информации в «ДОКУМЕНТЕ» система Lotus Domino использует объект оригинальное название, которого - «Item». Очевидно, что его название переводится как пункт, но можно назвать его элемент или сущность, важно, что он является базовым модулем хранения информации. Следует обратить внимание на то, что данный объект - именно «Item», так же как «ДОКУМЕНТ» не встречается в разделе разработки в явной форме, его определения можно найти только в программных кодах, то есть он нигде не определен статически. Средством для работы с этим объектом через визуальный интерфейс служит «ФОРМА». Её объекты называемые «Fields» как раз и определяют, что и в каком виде мы увидим на экране монитора, и какие данные попадут в документ после сохранения. Я специально обращаю на это внимание, чтобы подчеркнуть ещё одну особенность системы Lotus Domino, в отличие от большинства систем управления данными объект «Field» в ней не является местом хранения данных, а служит интерфейсом для взаимодействия между «Item» в «ДОКУМЕНТЕ» и средствами пользовательского интерфейса. Хотя необходимо отметить, что «Fields» может хранить и преобразовывать данные и не всегда содержимое «Fields» и «Item» к которому он относится одинаково. Забегая вперед, скажу, что это свойство надо обязательно учитывать при работе с объектами класса «Front-End». Но вернёмся к нашему «ДОКУМЕНТУ», чтобы занести в него информацию, нам необходимо воспользоваться такими свойствами «Item» как его имя и собственно содержимое, о типе данных можно не беспокоиться, система сама определит его по источнику. Точно так же можно не волноваться и про объемы, требуемые для хранения информации рассчитать их в системе Lotus Domino можно лишь весьма и весьма приблизительно, да и то, скорее всего результат будет не верным. Ну а про способы хранения я даже и говорить не буду, потому что у программистов разрабатывающих приложения в системе Lotus Domino нет никаких инструментов для воздействия на них. Наверное, может сложиться впечатление, что система Lotus Domino нечто бесформенное неподдающиеся никакой систематизации, но это не так, просто способ организации в ней несколько иной, чем мы привыкли видеть.
Структура по требованиюДавайте попробуем расставить всё по полочкам. Объект «ДОКУМЕНТ» является контейнером, в который система укладывает объекты «Item» таким образом, какой найдёт для себя наиболее удобным. Мы можем относиться к «Item» на прямую используя средства программирования типа языка LotusScript или используя пользовательский интерфейс посредствам «ФОРМ», «ПРЕДСТАВЛЕНИЙ» и других объектов речь о которых впереди. Все эти средства имеют хорошо проработанную организацию. Например, LotusScript является современным объектно-ориентированным языком программирования с понятной большинству программистов организацией и наборы классов, которые в нем применяются, имеют чёткую хорошо спроектированную структуру. А визуальный построитель, с помощью которого готовятся объекты пользовательского интерфейса, позволяет создавать удобные и эргономические элементы. В любом случае нам предоставлен полный набор инструментов для работы с «ДОКУМЕНТАМИ», как с основным объектом хранения организованной информации, то есть мы можем организовывать поиск, выборку, производить сортировку, группировку и т.п. При этом мы имеем прямой доступ и непосредственно к «Item» для записи, чтения и редактирования информации в них. И что самое главное мы можем вносить изменения в структуру, а точнее в то, что мы называем здесь структурой, не опасаясь за потерю информации в системе в целом. И мы подошли к ещё одному важному для понимания принципа построения Lotus Domino факту, структурирование информации в системе существует, но оно вынесено в отдельный слой, который может иметь одновременно множественные статические связи с реальными объектами, что позволяет нам использовать модель «Структура по требованию».
Роль и место...Необходимо сразу отметить, что мы сейчас рассматриваем информационные системы как инструментальные средства для реализаций решений деловых задач, а не проводим сравнение готовых продуктов для конечного пользователя созданных на их основе. Как мы видим различные информационные системы, реализуют разные модели хранения и управления данными. И любая эта модель, как впрочем, и всякая модель имеет достаточно жесткую, практически дискретную локализацию той области, где применение её наиболее оптимально. И чтобы применение системы было лёгким и приятным нам необходимо очень хорошо представлять природу данных, с которыми ей предстоит работать. В основе любого делового процесса лежит путь от бизнес идеи до реального её воплощения и сбыта, в виде продукта или услуг. И каждый этап этого пути основывается на информационном обмене. Но как различается природа данных на различных этапах. От концепции, через бизнес-план и до технологических карт и логистических схем. Практически мы проходим от области чистого разума и идей, до конкретных продуктов и услуг, нашедших свою реализацию в труде большого числа людей. Посмотрим, что меняется при движении по этому пути. Когда речь идёт о концепции, мы видим, что информация носит в большей степени описательную форму, во многом она даже абстрактна. Как правило, удачная бизнес идея основана на трех факторах, во-первых, это потребность (она же область сбыта), во-вторых, это предложение, максимально удовлетворяющее потребности и, в-третьих, это способ соединения потребности с предложением (организация сбыта). На этом этапе организовать информацию в четкие табличные формы практически не возможно. На следующем этапе, как правило, происходит соединение концепций и идей в единое целое, называемое бизнес планом. При формировании бизнес-плана, мы начинаем организовывать информацию, собираются данные необходимые для анализа возможностей по реализации идей, возникают категории, в которых могут агрегироваться собранные данные (например, объём рынка сбыта, накладные и организационные расходы, расходы на разработку и продвижение, производственные расходы и т.п.). Если процесс имеет продолжение, то данные начинают выстраиваться уже в четко организованные формы. Разрабатывается производственный план, план дистрибуции и продаж. Эти документы в большинстве случаев имеют регламентированную форму и информация, которую они содержат, хорошо структурированная и имеет устойчивые взаимосвязи. Эти данные явно приближаются к реляционной области. Ну а при дальнейшем движении информация становится еще более четко организованной (технологические карты, нормативы и т.п.). Другой информационный поток это взаимодействие стратегического управления, тактического планирования, оперативных решений и конкретного исполнения. Классическая управленческая вертикаль. И здесь мы видим, как меняется природа информации при движении от стратегической концепции (например, повышение эффективности работы сотрудников), до конкретного исполнения (например, плана внедрения нового программного комплекса и закупки нового офисного оборудования). Практически мы видим, что четкой, хорошо организованной структуры можно добиться только при взаимодействии с областью счётных объектов. При этом важно отметить, что все информационные потоки, имеющие управляющее воздействие на объекты данной области имеют документарную природу. Очевидно, что применение системы Lotus Domino для организации документарных потоков более уместно, чем использование для этих целей реляционных систем. В тоже время для работы связанной с организацией планирования и распределения конкретных ресурсов реляционные системы значительно удобней. Хотя использование нескольких систем в одной организации и ведет к некоторому увеличению накладных расходов, но они во многих случаях оказываются значительно ниже, чем суммарные расходы на разработку и поддержку приложений, модель данных которых не соответствует области применения. Рис. 1. Распределение типов задач относительно степени «организации» информации На рис. 1 показано распределение типов задач относительно степени «организации» информации. Таким образом, можно сказать, что применение системы Lotus Domino оптимально в сфере общего управления, где основной единицей обмена является документ и информация, либо не имеет четко выраженной структуры, либо структура подвержена периодическим изменениям. Кроме того, в логику системы Lotus Domino хорошо ложатся задачи связанные с потоками утвердительно-разрешительных документов.
|
|