М. Н. Машкин Информационные технологии Учебное пособие

Вид материалаУчебное пособие

Содержание


22.5Расширение доступа к данным
22.6Разработка приложений клиент/сервер
Подобный материал:
1   ...   30   31   32   33   34   35   36   37   ...   45

22.5Расширение доступа к данным


Администраторы информационных систем и разработчики приложений часто сталкиваются с таким фактором, как неоднородная вычислительная среда. Сочетание широко распространенных технологических платформ, например ПК, мини-ЭВМ и больших компьютеров, а также разнообразных операционных систем ставит перед специалистами информационных подразделений и разработчиками приложений весьма непростые проблемы. Крупные организации и даже относительно небольшие фирмы часто имеют разнородные компьютерные системы, которые нередко разнесены территориально. Для администраторов информационных систем важнейшим вопросом является обеспечение взаимодействия всех этих компонентов, а для разработчиков приложений – создание такого ПО, которое могло бы функционировать на максимально возможном числе аппаратных и программных платформ и взаимодействовать со всеми другими платформами. В конечном счете все это направлено на то, чтобы предоставить пользователям простой доступ к данным в масштабе предприятия.

Благодаря преимуществам вычислений клиент/сервер решение указанной проблемы выходит на качественно новый уровень. Так, ПО промежуточного слоя, а во многих случаях даже сами СУБД теперь могут скрывать детали доступа к нескольким источникам данных за общим интерфейсом. Прикладным программистам больше не придется выполнять эти обязанности. Они просто используют интерфейс, обеспечиваемый такими стандартами, как IDAPI или ODBC. Кроме того, многие системы на базе серверов предусматривают интеграцию с унаследованными данными, размещенными на мэйнфреймах, где применяются DB2, ISAM, IMSи др.

Переход к архитектуре клиент/сервер преобразует сам характер работы с информационными системами. Сегодня решение многих задач переходит от системных программистов и администраторов к получившим мощные возможности пользователям локальных сетей. Приложения БД типа клиент/сервер предоставляют этим пользователям доступ к большим объемам информации, развитый графический интерфейс, а средства разработки четвертого поколения дают ключ к их созданию. Однако неверно было бы говорить, что для взаимодействия спользователем технология клиент/сервер обязательно предусматривает наличие графического пользовательского интерфейса (GUI). Логика приложения клиент/сервер остается независимой от характера ее интерфейса с пользователем. Внешний интерфейс для разукрупняемых приложений, функционировавших на мэйнфреймах, действительно, как правило, базируется на популярных сегодня операционных системах с GUI-интерфейсом. Технология клиент/сервер иногда неверно ассоциируется с операционной платформой, на которой применяется приложение. Ведь графическими интерфейсами оснащены многие новые инструментальные средства разработки приложений клиент/сервер, такие как языки четвертого поколения и инструментарий CASE. Эти интерфейсы ошибочно относят к самой технологии клиент/сервер, хотя в реальности они просто представляют собой компоненты клиента и сервера в графическом виде.

Ошибочно также думать, что технология клиент/сервер всегда предполагает использование СУБД. Наиболее популярными приложениями клиент/сервер действительно являются именно реляционные базы данных, поэтому сегодня во многих кругах вычислительная среда клиент/сервер стала синонимом приложений БД в архитектуре клиент/сервер. Однако подобные приложения вовсе не определяют характеристик этой технологии. Тем не менее можно с уверенностью утверждать, что одно из весомых преимуществ технологии клиент/сервер заключается в том, что она может ориентироваться на данные.

22.6Разработка приложений клиент/сервер


Как и языки структурного программирования, технология клиент/сервер была разработана для того, чтобы решить сложные проблемы, связанные с децентрализацией данных. Характерные особенности технологии клиент/сервер: высокий уровень стандартизации, распределенная обработка, интеграция специализированных и неоднородных систем, объектно-ориентированный анализ и программирование, а также удовлетворение новых потребностей пользователей - вызвали необходимость создания новых инструментальных средств разработки, позволяющих упростить построение сложных приложений и обслуживание программного кода. Сегодня задачи значительно усложнились и прежние методы программирования перестали отвечать возросшим требованиям, в том числе со стороны пользователей, которым необходимо получать данные из самых различных источников. Задачи анализа таких данных также стали более разнообразными и специфическими. Изменились даже сроки создания приложений. Если раньше на анализ сложного проекта уходило иногда до пяти лет, то теперь это неприемлемо: за такое время проектт устаревает. Все это заставило искать новые подходы к разработке ПО.

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

Если раньше приложения можно было проектировать исключительно с помощью процедурных языков программирования третьего поколения, то сегодня предложены совершенно новые подходы. Первым шагом здесь стало применение графического интерфейса(GUI), обеспечившего простоту взаимодействия с пользователем, а также более низкую стоимость обучения и поддержки. Для разработчиков приложений клиент/сервер теперь доступно большее число инструментальных средств, и еще много готовится.

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

Сегодня наиболее популярными стали графические средства визуальной разработки приложений клиент/сервер четвертого поколения, включая SQLWindows компании Gupta, PowerBuilder фирмы Powersoft, а также продукты таких компаний, как Oracle, обеспечивающие превосходный доступ к серверам БД. Кроме того, многие из инструментальных средств четвертого поколения позволяют скрыть специфику операционной системы иСУБД в такой степени, что создаваемые с их помощью приложения приобретают свойства переносимости. Появляются новые продукты, с помощью которых разработчики смогут логически распределять свой программный код между клиентом и сервером и строить компоненты как клиента, так и сервера. В соответствии с новыми требованиями и возможностями современных аппаратных платформ совершенствуются и уже известные технологии.

Так, на больших ЭВМ стали чрезвычайно популярными системы автоматизированной разработки программного обеспечения(CASE). Для построения реальных приложений CASE-продуктыпытаются моделировать логику задачи в графическом виде. Многие из них перенесены на ПК или рабочие станции. Сегодня они предоставляют сходную рабочую среду для программистов, перешедших на эти платформы с мэйнфреймов. Кроме того, CASE-продукты позволяют теперь получить на выходе приложения типа клиент/сервер с графическим интерфейсом, т. е., используя одну и ту же методологию проектирования, они проектируют компоненты, функционирующие и на клиентских, и на серверных машинах.

Многообещающую технологию создания приложений, включая приложения клиент/сервер, предлагают и такие программные продукты визуальной разработки, как Visual AppBuilder компании Novell, который позволяет программировать чрезвычайно сложные приложения, не написав практически ни одной строки программного кода. Продукты такого типа логически предоставляют в распоряжение пользователя крупные компоненты приложения, давая разработчику возможность визуально комбинировать их в функциональное приложение. С помощьюстандартных компонентов, которые программист может объединять в единое целое, эти приложения обеспечивают связь с такими службами, как базы данных, видео, обработка изображений и передача сообщений. Используя мощные прикладные компоненты и моделируя в этих продуктах взаимодействие клиента и сервера, разработчики создают реальные приложения типа клиент/сервер без особых усилий. Однако было бы заблуждением полагать, что технология клиент/сервер всегда увеличивает продуктивность труда разработчиков. На самом деле такая эффективность достигается соответствующей практикой и техникой программирования, что справедливо для любой технологии, включая и технологию клиент/сервер. Производительность труда разработчика увеличивается не за счет особенностей самой технологии, а лишь благодаря используемым для создания приложений клиент/сервер инструментальным средствам. Как уже говорилось, многие среды разработки систем клиент/сервер (третьего, четвертого поколения или объектно-ориентированные) способны значительно повысить эффективность программирования. Эти продукты обеспечивают работу на нескольких платформах, поддержку множества СУБД и повторное применение кода. Однако следует заметить, что проектирование приложений клиент/сервер само по себе не обеспечивает повторное использование кода. Это преимущество опять же могут предоставить лишь соответствующие инструментальные средства, например те, которые основаны на объектно-ориентированном подходе. Этому способствует и хорошая практика программирования.

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