Тенденции развития технологий создания информационных систем
Т.В. Прокопова,
ст. преподаватель [email protected]
Российская экономическая академия им. Г.В. Плеханова
В данной статье представлен анализ тенденций развития технологий для создания современных корпоративных информационных систем, перечисляются особенности и требования, с точки зрения функциональности и технологий создания IT-систем, проводится анализ возможностей проектов на Java технологиях первого поколения, предоставляется обзор преимуществ технологий разработки на JAVA2 и INTERNET технологиях.
Современные тенденции развития информационных технологий заключаются в переходе к созданию систем, способных принимать, объединять, хранить и передавать знания. В настоящее время для управления бизнесом в России пока еще применяются системы, основанные на алгоритмах обработки данных. Они отличаются количеством и структурой функциональных модулей и соответственно различаются как монолитные, модульные и компонентные системы. Пределы изменения свойств Алгоритмических Систем заранее предопределены разработчиком. Большинство Российских Алгоритмических Систем можно уже назвать устаревшими по объему обрабатываемых данных и функциональности по сравнению с западными системами нового поколения. Так считают западные специалисты. Нам нужны Информационные Системы нового поколения. И они уже появляются. Пределы изменения свойств Интеллектуальных Систем заранее не устанавливаются, так как их свойства полностью определяются моделью организации. Замена модели приводит к изменению свойств системы. А так как любое изменение описания любого ресурса бизнеса или правила операций приводит к смене модели, то свойства Интеллектуальных Систем изменяются с каждым вводом новой информации или данных. Эти системы являются монолитными системами, создаются годами программированием кода. Для поддержки актуального состояния этих систем необходимо содержать группу специалистов. В противном случае системы могут применяться лишь как накопители и поставщики данных. Действующие системы — это компонентные системы, основанные на открытых стандартах информационного обмена компонент независимых разработчиков. Построение систем из компонент существенно снизило срок, цену и риски, а также создало благоприятные условия для объединения услуг независимых интеграторов и консультантов.
На современные информационные системы корпоративного масштаба влияют такие факторы, как:
1) изменение внешней среды;
2) глобализация рынков;
3) конкуренция как стратегическая игра;
4) изменения организации деятельности;
5) изменение модели организации;
6) изменение технологии управления;
7) изменение деловой культуры;
8) изменение управленческого труда;
9) динамика экономических и политических процессов.
Таким образом, темпы развития экономики современного мира требуют создания информационных систем корпоративного масштаба, с постоянной динамикой обновляемых текущей ситуацией данных глобального масштаба и с обратной связью для управления, контроля и регулирования ситуаций.
Задачи такого объема и характера под силу только Глобальной сети, следовательно современные Корпоративные Информационные Системы должны интегрироваться с Глобальной сетью, взаимно дополняя друг друга. Естественно, технологии создания таких систем должны быть интегрированы на основе уже имеющихся стандартов распределенных систем и Интернет-технологий. На начальном этапе использования технологий WWW применяли CGI/FastCGI , Java , API сервера.
Для разработки пользовательского интерфейса, на создание которого уходит до 80% времени разработки, удобно и выгодно применять WWW технологии. Тут решаются вопросы переноса на различные платформы и отпадает необходимость серьезного обучения пользователей, большинство из которых умеет работать в
браузерах Интернета. Однако при всех своих преимуществах технология WWW обладает одним существенным недостатком: ее интеграция с другими технологиями порождает массу проблем. Основная из них — это обмен данными WWW сервера с внешней системой. Можно выделить три основных решения данной проблемы:
Первое решение является наиболее распространенным, но его основным недостатком является то, что при возрастании количества запросов к серверу его загрузка значительно увеличивается, что требует дополнительных ресурсов. Также в качестве недостатка можно выделить тот факт, что обмен данными между CGI сценарием и сервером происходит через потоки стандартного ввода/вывода. Поэтому в случае, если клиент прервал свой запрос, то сценарий отработает «вхолостую», что является довольно расточительным, с точки зрения использования ресурсов сервера. Использование аппле-тов Java решает многие проблемы, связанные с CGI, в частности проблему загрузки сервера, проблему безопасности и т.д. Но вместе с тем повышаются требования к ресурсам клиентского рабочего места. При использовании API сервера происходит значительная «привязка» к тому программному продукту, чей API используется, что в основном приводит к значительным затратам при переходе на другую платформу.
Все сказанное выше можно также отнести и к проблемам интеграции WWW с CORBA-системами. Однако CORBA предоставляет дополнительные возможности для этой интеграции. Например, при использовании Java у разработчиков практически не возникает проблем, т.к. в рамках OMG существует стандарт на отображение языка описания интерфейсов в Java. При этом WWW-сервер используется как стандартный механизм, позволяющий производить удаленную загрузку классов, а WWW-браузер, как JVM. Но как уже было сказано выше, Java предъявляет значительные требования к аппаратному обеспечению клиентского рабочего места. Вариант использования API сервера отпадал сам собой по причинам, описанным выше: основной принцип, которым мы руководствуемся при создании ИС — минимальная зависимость системы от программной и аппаратной платформы. Оставалось только исполь-
зовать CGI. Но через некоторое время разработчиков это тоже перестало удовлетворять, т.к. CGI сценарии CORBA получались очень тяжеловесными. В основном это происходило за счет дополнительного кода, генерируемого IDL-компилятором интерфейсов и накладных расходов, связанных с CORBA (установление связи с другими объектами).
Пришлось искать пути выхода из создавшейся ситуации. В результате был разработан модуль для WWW-сер-вера Apache, получивший в дальнейшем название WebORB, который позволял напрямую обращаться к CORBA-объек-там, не порождая нового процесса. Производительность, которую показал WebORB была превосходной: скорость выполнения запроса увеличилась в несколько раз. Однако не стало возможным использовать push технологии, которые применялись для пользовательского интерфейса на Java. И на этот раз решение было найдено. Суть его довольно проста: на клиентское рабочее место загружается Java-апплет, представляющий CORBA-объект, который используется для принудительного управления браузером. Таким образом, интеграция технологий WWW и CORBA не представляет собой какого-либо законченного решения, которое можно «взять с полки». В каждом конкретном случае остается достаточно большое количество степеней свободы. В тоже время, решения, найденные в процессе работы над проектами говорят о том, что интеграция WWW и CORBA заключается в обобщении и объединении опыта и решений, накопленных в обеих технологиях. На сегодняшний день технологии Java и CORBA лучше всего подходят для интегрирования систем, основанных на технологии WWW, с крупными информационными системами. То есть использование этих технологий уже сейчас позволяет поднять технологию WWW на новый уровень — уровень распределенных систем.
На сегодняшний день многие компании и производители поглощены прорывом в области Интернет-ориентированных распределенных клиент/ сервер систем, основанных на модели распределенных объектов.
Система, построенная по технологии распределенных объектов, состоит из набора компонент (объектов), вза-
имодействующих друг с другом. При этом объекты, как правило, разбросаны по сети и выполняются отдельно друг от друга. Использование технологии распределенных объектов позволяет пользоваться всеми преимуществами объектно-ориентированного подхода:
• сокращение времени разработки (изолированная разработка);
• сокращение количества ошибок;
• повторное использование программных компонент;
• легче становится будущее изменение системы.
Еще одним важным достоинством таких систем является возможность построения так называемых легких клиентов. У программистов появляется возможность быстро и эффективно создавать многофункциональные приложения, используя уже существующие plug-and-play компоненты, что заметно снижает стоимость построения новой системы.
Вся система разбивается на различные замкнутые, автономные модули, работа над которыми может идти отдельно от других, но которые, в то же время, могут взаимодействовать с другими модулями системы. Для этого модули должны поддерживать протоколы и интерфейсы, определяющие принципы их взаимодействия. Но так как методы, существующие в модулях, изолированы от методов других модулей, то они могут разрабатываться независимо. В распределенной системе имеется возможность перенести всю функциональную логику информационной системы на ее серверную часть. В этом случае приложения-клиенты, с которыми общается пользователь, могут быть сделаны небольшими и легковесными. Системные ресурсы пользователя оказываются более свободными, а вся тяжесть функциональной логики реализуется высокомощным сервером (или сетью из серверов). При этом клиент имеет доступ к практически неограниченному числу хранилищ информации и других объектов. Появляется возможность создания легковесных компонент, пригодных для быстрой загрузки через сеть (Internet) и запуска на компьютере клиента (к такого рода приложениям можно отнести апплеты или Active-X компоненты)
До недавнего времени выделяли три различные технологии, поддерживаю-
Экономика, Статистика и Информатика 57 №2, 2007
■
щие концепцию распределенных объектных систем. Это технологии RMI, CORBA и DCOM.
Архитектура RMI (Remote Method Invocation, т.е. вызов удаленного метода), которая интегрирована с JDK1.1, является продуктом компании JavaSoft и реализует распределенную модель вычислений. RMI позволяет клиентским и серверным приложениям через сеть вызывать методы клиентов/серверов, выполняющихся в Java Virtual Machine. Хотя RMI считается легковесной и менее мощной, чем CORBA и DCOM тем не менее, она обладает рядом уникальных свойств, таких как распределенное, автоматическое управление объектами и возможность пересылать сами объекты от машине к машине. Технология CORBA (Common Object Request Broker Architecture), разрабатываемая OMG (Object Managment Group) с 1990 г., позволяет вызывать методы у объектов, находящихся в сети где угодно, так, как если бы все они были локальными объектами. Технология DCOM (Distributed Component Object Model) была разработана компанией Microsoft в качестве решения для распределенных систем в 1996 г. Сейчас DCOM является главным конкурентом CORBA, хотя контролируется он теперь уже не Microsoft, а группой TOG (The Open Group), аналогичной OMG. Вкратце, DCOM представляет собой расширение архитектуры COM до уровня сетевых приложений. Перечислим преимущества технологии CORBA над технологиями RMI и DCOM: у каждой из трех рассматриваемых технологий есть свои уникальные особенности, которые во многом характеризуют возможность или невозможность ее применения для решения поставленной задачи.
Плюс технологии CORBA: круг производителей продуктов, поддерживающих данную технологию, значительно шире, чем аналогичный круг для DCOM. Таким образом, оказывается, что именно CORBA — технология, полностью предназначенная для промышленных, открытых, распределенных объектных систем.
Второе решение проблемы связывания технологий CORBA и WWW — язык Java. Дело в том, что OMG стандартизировала отображение из IDL в Java. Имеются программные продукты, реализующие связь
CORBA и Java. Например, OrbixWeb, Visibroker, Java-технология основана на том, что при обнаружении тега <APPLET>, браузер через сеть загружает к себе, необходимые для этого апп-лета Java-классы и запускает его. При этом на машине пользователя запускается Java Virtual Machine (JVM), внутри которой и выполняется загруженный апплет.
Java-апплет, являющийся CORBA-клиентом, устанавливает все необходимые соединения с другими (серверными) приложениями системы и именно через него к пользователю идет вся информация. Апплет играет роль пользовательского интерфейса для данной распределенной системы. Количество выполняемых апплетов ничем не ограничено, вопрос лишь в достаточных вычислительных ресурсах системы.
Такие встроенные в Java средства как многопоточность, позволяют легко реализовывать и синхронное, и асинхронное взаимодействие апплетов с другими приложениями. У технологии Java-CORBA практически нет слабых мест. Единственная проблема, которая может возникнуть — необходимость наличия мощных вычислительных ресурсов на стороне пользователя. Это, конечно, серьезный недостаток, но он, скорее, является недостатком языка Java. Как уже отмечалось, при использовании технологии Java-CORBA, Java-апплеты могут играть роль и клиентов, и серверов. Это позволяет создание «живых» страниц, то есть страниц, информация на которых меняется практически постоянно. Возникает вопрос: а каким способом происходит обмен информацией между апплетами и остальной частью системы?
В CORBA существует два различных механизма передачи сообщений — механизм Push и механизм Pull .Механизм PULL представляет собой следующее: когда клиент готов обрабатывать сообщения, он опрашивает сервер на наличие у того новых сообщений. Если таковых не имеется, клиент через некоторый промежуток времени повторяет операцию. При этом, в зависимости от контекста решаемой задачи и пропускных способностей сетевых каналов, тип взаимодействия клиента и сервера может быть как асинхронным, так и синхронным.
Механизм PUSH, в некотором смысле, противоположен механизму PULL. В
этом случае сервер сообщений сам, по мере поступления новых сообщений, будет информировать об этом клиентов. То есть клиенты сами являются серверами, а сервер сообщений лишь вызывает у них соответствующие методы, «вталкивая» им сообщение. Как и в модели PULL, взаимодействие клиента и сервера сообщений может быть и асинхронным, и синхронным.
Использование PUSH-технологии позволяет практически мгновенно и эффективно пересылать обновленную информацию всем заинтересованным приложениям. Итак, практика показывает, что технология Java-CORBA лучше всего подходит для создания WWW CORBA-клиентов, которые:
• имеют нестандартный, или не HTML-подобный пользовательский интерфейс;
• активно взаимодействуют с другими компонентами информационной системы в течение времени;
• должны участвовать в системе и в роли клиента, и в роли сервера.
Технологию же CORBA-CGI выгоднее применять в случае, если:
• идет работа с большими объемами текстовой информации;
• системные ресурсы на стороне клиента маломощны.
Несмотря на то, что преимущества технологии Java-CORBA над технологией CORBA-CGI значительны и область применения шире, обе рассматриваемых технологии хорошо подходят для объединения WWW-систем и клиент/ сервер-систем. Технология CORBA-CGI расширяет возможности CGI, а технология Java-CORBA возможности всего WWW — до уровня распределенных объектных систем.
С развитием Интернет-технологий появилась возможность создания и активного внедрения корпоративных Информационных Систем нового поколения, которые позволят провести экономические преобразования или даже обеспечат подъем на следующую ступень эволюции отечественной экономики и административно-учетной системы. Последние годы отечественное образование прикладывает немало усилий для обучения с использованием возможностей глобальной сети. Процесс обучения этапам разработки на Internet технологиях в образовании в течение последних лет находится на самом начальном уровне или
даже отсутствует. Но требования современного технического развития всех сфер жизни общества ставит перед образованием задачу подготовки грамотных специалистов в области разработки и проектирования, а не только использования Internet технологий.
Задача создания сетевых бизнес-приложений, информационных систем на WEB технологиях и JAVA платформе — является ключом к решению проблем современной экономики. Встает вопрос об инструментах, на которых должны создаваться эти приложения. Платформу Java можно устанавливать на различных серверах, что дает большие преимущества и свободу действий в выборе и применении технологических и программных средств. На начальных стадиях применения Java используют апплеты, которые оживляют WEB страницы. На более высоких уровнях применяют уже JDBC, как необходимый инструмент для создания распределенных приложений. Это обеспечивает переносимость и согласованность решений при работе с базами данных, все больше применяемых в сети для решения корпоративных экономических задач, да и для решения текущих проблем бизнеса несколько нижнего уровня. На основе JDBC созданы новые технологические JAVA проекты — нового поколения, такие как — интерфейс имен JAVA NAMING and DIRECTORY INTERFACE API, обеспечивающий единообразный доступ к службам имен и каталогов. Сервис для асинхронного обмена данными и событиями(|М8), службы для обработки транзакций (JTS) и создания динамических серверных страниц (JSP), компонентная модель для серверных приложений — архитектура Enterprise JavaBeans (EJB). Применяемая в настоящее время платформа J2EE (Java2 Platform, Enterprise Edition) состоит из основных частей: спецификаций, контрольных реализаций, набора тестов на совместимость и руководств для разработки из J2EE Blueprints. Спецификация определяет, как работает платформа J2EE, независимо от сервера приложений и СУБД. Контрольная реализация применяется для проведения экспериментов на платформе J2EE и представляет образец для сравнения. Наборы тестов на совместимость гарантируют переносимость. В разработке новой серверной платформы приняли участие такие компании как BEA
Systems, IBM, Oracle и Sun Microsystems. Эта платформа устанавливает новый стандарт простоты разработки, масштабируемости и универсальности, рационализирует процесс проектирования и разработки нового поколения бизнес-приложений. Модель J2EE соответствует различным типам приложений от клиент серверных, применяемых внутри одной компании, до WEB сайтов электронной коммерции. Платформа J2EE предоставляет единый универсальный стандарт, который дает компаниям большие возможности для построения коммерческих информационных систем с новыми возможностями и меньшими рисками. Темпы развития сетей Интернет и информационного обмена ставят перед бизнес-приложениями целый ряд задач, которые необходимо решать точно и оперативно, для этого необходима высокая производительность работы программистов. Расхождение в технологиях и моделях программирования в сети приводит к ряду проблем. Приложения должны запускаться на любом сервере, который должен удовлетворять задачам потокооб-мена клиента. Система безопасности экономических приложений должна быть совместима с уже имеющимися механизмами, обеспечивающими конфиденциальность пользователя и в тоже время ненавязчивость.
Уровень клиента на подобной платформе реализует не только интерфейс пользователя, но и обслуживание клиентов и бизнес-логику приложения. На платформе J2EE реализуется модель многоуровнего распределенного приложения, части которого могут выполняться на различных устройствах. Промежуточный уровень обеспечивает поддержку клиентов за счет WEB контейнеров и компонентов. Контейнер — это стандартное рабочее окружение, которое предоставляет компонентам определенные службы. WEB контейнеры в J2EE обеспечивают оперативную реакцию на запрос клиента, осуществляет обработку запроса, передает результаты клиенту. Все контейнеры EJB реализуют автоматическую поддержку транзакций и управление жизненным циклом компонентов, а также поиск компонентов bean и другие службы. Для платформы J2EE многоуровневая бизнес-логика реализуется в виде компонентов EJB. Модель компонентов составляет основу модели программиро-
вания платформы J2EE и используются в качестве компонентов бизнес-логики.
И так, перечислим преимущества платформы J2EE:
1) упрощенная архитектура и модель разработки;
2) возможность изменения масштабируемости в соответствии со спросом;
3) интеграция с имеющимися информационными системами;
4) широкий спектр выбора серверов, компонентов, инструментальной базы;
5) обеспечение модели безопасности.
Благодаря стандарту J2EE развивающиеся компании получают значительное преимущество в конкурентной борьбе за счет возможности гибкого реагирования бизнес-приложений под постоянно возникающие новые проблемы бизнеса. Эти платформы необходимо изучать в отечественном образовании, для создания интеллектуальной кадровой базы, способной провести техническое перевооружение экономики.
В настоящее время современное общество во всех сферах жизни применяет достижения и возможности глобальной сети Интернет, c помощью сети решаются вопросы экономики, политики, сотрудничества, информационного обмена, торговли, управления, бизнеса, туризма, культуры и многое другое. С развитием интернет-технологий появилась возможность создания и активного внедрения корпоративных Информационных Систем, которые позволят провести экономические преобразования или даже обеспечат подъем на следующую ступень эволюции отечественной экономики и административно-учетной системы. Последние годы отечественное образование прикладывает немало усилий для обучения с использованием возможностей глобальной сети. Требования современного технического развития всех сфер жизни общества ставит перед образованием задачу подготовки грамотных специалистов в области разработки и проектирования, а не только использования Internet технологий.
Изучение и внедрение интернет-технологий, с точки зрения программирования и разработки, как в технических, так и в экономических вузах — это задача образования последних пяти лет и предстоящего десятилетия. Подрастающие специалисты должны быть гото-
Экономика, Статистика и Информатика 59 №2, 2007
■
вы не только применять электронные информационные системы нового поколения, предназначенные для работы во всемирной глобальной сети, но и уметь создавать и модернизировать их для решения экономических, управленческих и других задач. Настало время активного перевооружения отечественной экономики новыми электронными средствами. Поэтому активное изучение интернет-технологий, с точки зрения практического применения их для создания информационных систем нового поколения, стало важным вопросом для инновационных направлений в образовании. Изучение технологий программирования для Internet необходимо на уровне начальных знаний по HTML, CSS, Java Script, CGI, ASP, PHP, XML, JAVA для специалистов, которые смогут решить современные задачи на высоком технологическом уровне. Автором статьи разработан и внедрен курс изучения интернет-технологий для экономических, управленческих и технических ВУЗов. В качестве методического материала для курса может быть использована книга «Интернет-технологии для создания информационных систем». Для дистанционного обучения создан электронный учебник по указанной тематике. Учебник, выполненный на WEB-тех-нологиях, позволит проводить самоподготовку учащихся по сети или на автономном компьютере. В курсе рассмотрены теоретические и практические вопросы по разработке современных корпоративных информационных систем (КИС). Предложенный материал позволяет ознакомиться с видами архитектур клиент-серверных приложений, с теоретическими основами технологий создания баз данных, необходимых для создания современных ин-
формационных систем, разработанных на Интернет-технологиях, с методами доступа к данным и обзором программных продуктов, применяемых для создания хранилищ данных в Корпоративных Информационных Системах. Особое внимание в учебнике уделяется Web-технологиям, таким как: язык разметки HTML, Java Script, ASP, PHP, XML. В книге сделан обзор теоретических основ перечисленных языков и разработаны примеры по указанным технологиям программирования. Материал книги может быть использован как для самостоятельного изучения, так и для преподавания по соответствующим курсам в ВУЗах. Предложенный объем по изучению интернет-технологий предполагает базовую подготовку по программированию для технического профиля вузов, а для студентов экономического и управленческого направления — обзор технологий и знакомство с современными понятиями в изучаемой области. Для глубокого изучения интернет-технологий, возможно потребуется создание кафедр, которые будут специализироваться на изучении конкретных языков и методов, применяемых в WEB разработках и учитывать их постоянную динамику и широкое использование во всех сферах жизни современного общества. Осознание необходимости этих курсов руководителями образования, предоставление технических средств и условий для проведения занятий по предлагаемым направлениям уже частично решит проблему по развитию этих технологий и создаст условия для появления новых отечественных информационных систем, необходимых для подъема экономики. Сложность и стоимость выполняемых проектов требует пересмотра объема финансирования такого рода обучения
и подготовки специалистов, для которых потребуются специальные технические и программные средства и достойная оплата их труда.
Литература
1. Ахтырченко К.В., Аристархов A.A. Опыт применения технологий CORBA, Java(RMI) при построении информационных систем с многозвенной архитектурой. М.: Научно-исследовательский вычислительный центр МГУ.
2. Житенев Д. Internet-технологии в корпоративных информационных системах. За и против // http:// www.monolit.com/~dzh/publications/ corporate.html
3. Пирогова Н. Управление производственными данными на базе Web // http://www.osp.ru/os/1998/06/179586/
4. Попов А.Е., Реут Д.В. Кооперация вместо конкуренции // www.CONSULTING.RU
5. Интернет-технологии и платформа JAVA для создания и совершенствования информационных систем — инновационное направление в образовании // http://www.rea.ru; Интернет-конференция по информационным технологиям 2007 г.
6. Internet-технологии для web программирования // http://intbook.narod.ru/
7. Семихатов С. Технологии построения распределенных объектных систем // http://www.javable.com/docs/ articles/dist/
8. Семихатов С. Технологии WWW, Corba и Java в построении распределенных объектных систем // http:// www.javaportal.ru/articles/www/ www3.html .
9. Системы построенные на базе архитектуры Java 2 Enterprise Edition (J2EE) http://www.esoft.com.ua/info/rus/ products/ma.jsp
№2, 2007Д 60
I