Введение

Предлагаемый материал содержит доступную автору (возможно, не исчерпывающую) информацию по поводу проектирования, разработки, сопровождения и реинжиниринга информационных систем. Информация - это самое ценное достижение человечества. Она ценнее, чем алмазы и золото. Информация помогает нам жить. Информационные системы дают нам шанс на то, чтобы выжить. Грубо говоря, "data and knowlegment mining", т.е. добыча данных и знаний является нашей основной задачей. Задачей не русских, не японцев, не американцев, не какой-то конкретной страны, но всего человечества. Мы все непрерывно накапливаем данные и знания, но проблема состоит в том, чтобы все это переварить и полезно использовать. Для этого и предназначены компьютеризованные информационные системы. Они служат нам, чтобы более быстро, более надежно обработать информацию, чтобы люди не тратили рутинное время, чтобы избежать свойственных человеку случайных ошибок, чтобы сэкономить расходы, чтобы сделать жизнь людей более комфортной. Мы просто не можем справиться с поступающей информацией без компьютерной поддержки. Но для этого нужно уметь использовать существующие, а также проектировать, разрабатывать и сопровождать новые информационные системы.

Собственно, этому и посвящен настоящий курс, который состоит из восьми частей.

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

Во второй части курса предлагается общая классификация архитектур информационных систем, для проектирования и разработки которых сегодня имеются соответствующие технологии и методологии. Рассматриваются архитектуры информационных систем, основанных на наиболее распространенных в России файл-серверных локальных сетях. В ряде простых случаев файл-серверные информационные приложения остаются наиболее дешевым и достаточно эффективным решением, к которому, однако, нужно относиться с осторожностью. По мере развития деятельности корпорации могут потребоваться революционные изменения информационной системы, а революция всегда хуже эволюции. Обсуждаются архитектуры информационных систем, основанных на подходе "клиент-сервер". Главным образом этот подход предполагает использование одного или нескольких серверов баз данных. Поэтому основной акцент ставится на методы проектирования баз данных, хотя рассматриваются и распространенные технологические методы связывания и взаимодействия клиентских и серверных частей ИС. Далее рассматриваются современные подходы к организации ИС на основе методов Intranet. Эти методы являются развитием идей архитектуры "клиент-сервер", но в целом подход Intranet обеспечивает возможность разработки более дешевых (по трудозатратам) и более комфортных для пользователей приложений. Кроме того, ориентация на Intranet почти автоматически позволяет пользоваться глобальными службами Internet, что очень существенно при учете тенденции к мировой интеграции информационных ресурсов. Следующая тема второй части курса касается так называемых "складов данных" (DataWarehousing). Идея складов данных проста и естественна. В любой долго живущей корпорации постепенно накапливаются разнородные хранилища данных: файлы, разного рода базы данных. Но по смыслу эта информация однородна, вся она относится к деятельности корпорации. Подход DataWarehousing, не являясь еще канонизированным, предлагает решение проблемы создания ИС, основанной на разнородной информации. Естественно, имеются предложения по организации складов данных на основе методов Intranet/Internet. Наконец, последний раздел второй части относится к возможностям построения глобально распределенной информационной системы, в которой используются абсолютно разнородные информационные и/или вычислительные ресурсы. И это становится возможным. Многолетняя деятельность международного консорциума Object Management Group (OMG) позволила выработать набор фактически признанных в мире стандартов, реализация которых (а таких реализаций уже существует много) позволяет достичь реальной интероперабельности (т.е. возможности осмысленного взаимодействия) независимо построенных информационных ресурсов.

В следующих частях курса подробно обсуждается каждая из тем, упомянутых во второй части. Третья часть курса посвящена рассмотрению средств и методов проектирования, разработки и сопровождения информационных приложений в архитектуре "файл-сервер".

В первом разделе третьей части рассматриваются "традиционные" средства и методологии разработки файл-серверных приложений. Традиционные в кавычках, потому что, на самом деле, прошло не так много лет с тех пор, когда в России появились локальные сети персональных компьютеров с выделенным файл-сервером. Традиционные в том смысле, что большинство существующих в России ИС основано именно на этой технологии. Можно ругать или хвалить этот подход, но факт остается фактом - он все еще активно используется и, скорее всего, будет продолжать использоваться. Для него существует своя экологическая ниша. Это дешевое, хотя и недостаточно рациональное и надежное решение для малых компаний. (Заметим, что когда компания хотя бы слегка подрастает, то начинает испытывать проблемы.) Итак, в первом разделе будут рассмотрены наиболее популярные системы программирования, доступные на персональных компьютерах, и сопутствующие им библиотеки. Кроме того, мы обсудим имеющиеся средства и методы разработки информационных приложений на основе персональных систем управления базами данных. Второй раздел третьей части курса посвящается современным тенденциям в области разработки файл-серверных информационных приложений. Общей характеристикой этих тенденций является стремление к нормализации ИС (Rightsizing). Нормализация может достигаться путем разукрупления (Downsigzing) за счет использования персональных версий развитых СУБД или путем укрупления (Upsizing) за счет перехода к использованию истинных серверов баз данных. В качестве примеров новых инструментальных средств разработки файл-серверных информационных систем будут рассмотрены продукты Microsoft Access, Visual FoxPro и CA-VisualObjects. В последнем, третьем разделе будут обсуждаться проблемы переноса файл-серверных информационных приложений в среду клиент-сервер. Как отмечалось выше, эти проблемы актуальны, поскольку при росте размеров корпорации файл-серверный подход перестает быть удовлетворительным. В частности, будет рассмотрен протокол ODBC и его реализации.

В четвертой, самой длинной части курса, обсуждаются средства и методологии проектирования, разработки и сопровождения приложений в архитектуре "клиент-сервер". Первый раздел четвертой части посвящен основным транспортным средствам, на которых основываются клиент-серверные приложения. Рассматриваются протоколы удаленного вызова процедур (RPC) и внешнего представления данных (XDR). Кратко обсуждается основа RPC - стек протоколов TCP/IP. Дается представление о путях развития RPC на примере нового пакета компании Sun Microsystems ONC++. В рамках этой темы приводится краткая характеристика распределенных файловых систем; наибольшее внимание уделяется самой популярной системе NFS. Второй раздел этой части курса посвящен серверам баз данных. Рассматривается понятие сервера баз данных. Обсуждаются наиболее популярные семейства серверов баз данных - продукты компаний Oracle, Informix, IBM, Sybase, Computer Associates. Далее даются базовые сведения о стандартном средстве взаимодействия с базами данных в архитектуре клиент-сервер - языке баз данных SQL. Кратко излагается история языка, описывается международная деятельность по стандартизации SQL, рассматривается современное состояние этого языка баз данных и анализируются перспективы его развития. Темой следующего раздела четвертой части курса является классический подход к проектированию реляционных баз данных, основанный на учете функциональных и многозначных зависимостей и принципах нормализации путем проецирования. В пятом разделе рассматриваются методы проектирования реляционных (и не только) баз данных более высокого уровня. Вводится понятие концептуальной, или семантической модели данных. Описывается наиболее распространенный подход к концептуальному проектированию баз данных, основанный на диаграммном подходе. Рассматриваются популярные диаграммные нотации и рекомендуемые методологии для перехода к реляционным схемам баз данных. Шестой раздел посвящен средствам автоматизации проектирования баз данных и информационных систем в целом - CASE-системам. Обсуждаются назначение и разновидности таких систем. Рассматриваются примеры наиболее распространенных CASE-систем этого класса. Темой седьмого раздела является физическое проектирование реляционных баз данных. Этот вопрос иногда недооценивается специалистами, в то время, как его правильное решение почти всегда оказывает критическое влияние на производительность информационной системы. Мы обсудим противоречия, которые часто возникают между теорией и практикой реляционных баз данных, и приведем примеры, демонстрирующие, что иногда на стадии физического проектирования реляционной базы данных стоит отойти от теоретических догм. В завершающем четвертую часть восьмом разделе будет приведено представление о программных системах четвертого поколения и возможностях их интеграции с CASE-средствами. Будет представлен обзор ряда распространенных 4GL.

Пятая часть курса связана, возможно, с наиболее модной темой - разработкой информационных приложений на основе технологии Intranet. Это не только модно, но и полезно и эффективно. Языковые и инструментальные средства, поддерживающие Intranet-приложения, обеспечивают удобные графические пользовательские интерфейсы и существенно облегчают разработку информационных приложений (хотя, конечно, проблемы проектирования баз данных остаются). В первом разделе пятой части будут кратко рассмотрены основные понятия Intranet, которые, фактически, являются понятиями Internet. Во втором разделе приводится обзор наиболее популярных средств разработки Intranet-приложений - языка составления гипертекстовых файлов HTML и протокола взаимодействия серверной и клиентской частей WWW HTTP. Третий раздел посвящен рассмотрению распространенных видов серверов, которые могут входить в состав Intranet (и Internet) приложения: файл-серверы, FTP-серверы, Web-серверы, поисковые серверы. Далее мы обсудим проблемы доступа информационной системы к мультимедийной информации. В этом отношении нерешенным вопросом является стандартизация внешнего представления графической, аудио и видео информации. Будет рассмотрено решение этих проблем на основе использования объектно-ориентированного интерпретируемого языка Java. В четвертом разделе пятой части курса обсуждаются возможные архитектуры Intranet-приложений. Будут рассмотрены решения, в которых основная нагрузка ложится на клиентскую часть системы, трехзвенные организации, в которых часть приложения (или приложение полностью) выполняется на стороне Web-сервера (конечно, и в этом случае та часть приложения, которая отвечает за интерфейс с пользователем, остается на стороне клиента), и, наконец, решения, основанные на использовании языка Java, которые требуют основательной нагрузки клиентской стороны, но обеспечивают максимальную гибкость.

В шестой части курса рассматриваются технологии проектирования и разработки информационных приложений, основанных на использовании глобальных "складов данных" (DataWarehousing). Основной (и еще не конца решенной) проблемой складов данных является проблема интеграции данных, которые хранятся в неоднородно организованных базах данных. Имеется ряд подходов к решению этой проблемы, основанных, в частности, на использовании объектно-реляционных или объектно-ориентированных надстроек над существующими системами баз данных.

Седьмая часть курса посвящается разработке глобально (в масштабах земного шара) распределенных информационных приложений, которые строятся на основе независимо разработанных информационно-вычислительных ресурсов. В принципе, этот подход предлагает решение так называемой проблемы "унаследованных систем" (legacy systems). Независимо созданные корпорации объединяются, имея независимо созданные информационные системы, крупные корпорации ведут ряд слабо связанных информационных проектов, которые впоследствии необходимо интегрировать и т.д.

Основанное на объектном подходе решение предлагает международный консорциум Object Management Group, выработавший ряд стандартов под общим названием CORBA (Common Object Request Broker Architecture), следование которым обеспечивает интероперабельность независимо разработанных информационно-вычислительных компонентов.

Будут рассмотрены общий подход CORBA, предлагаемая структура брокера объектных заявок (Object Request Broker - ORB), имеющиеся реализации ORB, язык определения интерфейсов IDL, а также набор сервисов, предполагаемых стандартом CORBA.

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

Содержание | Вперед