Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3курс, 1семестр - Информационные системы - Лекции.DOC
Скачиваний:
79
Добавлен:
04.10.2013
Размер:
524.29 Кб
Скачать
  1. Средства реализации аис

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

На языках низкого уровня (Ассемблер, Си) создаются отдельные модули АИС, для которых очень критично время обработки данных, работающих на стыке аппаратных и программных средств (например, драйверы устройств). Такие модули необходимы в АИС реального времени для обработки входной информации. Достигается наибольшая эффективность функционирования АИС по скорости обработки данных и выполнению вычислительных операций, использованию стандартного и нестандартного оборудования, минимизируются требования к аппаратным ресурсам. Но при программной реализации требуется чрезвычайно большой объем анализа логических операций.

Языки среднего уровня (С, встроенные языки различных СУБД, Паскаль и др.) используются для создания приложений пользователя. Программирование трудоемко при создании больших АИС (множество функций, сложная структура, множество отчетов). Сложно реализовать повышенные требования к интерфейсу пользователя. АИС получаются эффективными для решения конкретных задач.

Средства визуального проектирования (VisualC,Delphi,CBuilder,VisualBasic, встроенные средства СУБД) имеют встроенный дизайнер, с помощью которого проектируются элементы АИС (экранные формы, поля ввода, кнопки, отчеты). Это позволяет сделать быстро хороший многофункциональный интерфейс, обеспечить высокий уровень дизайна. Генерация программного кода автоматически может быть выполнена на разных языках, на которые настроено визуальное средство. Это могут быть языки Си, СУБД, С++ и т.д. Легко программировать, но приложение получается громоздким за счет универсальности средств.

9.1 Сравнительный анализ языков программирования для создания интернет–приложений

На данный момент в глобальной сети Интернет стало быстро увеличиваться количество динамических страниц. Разработчики уже не могут обойтись без того или иного интернет-приложения (например: динамическая навигация, счетчик посещений, гостевая книга, голосование и так далее). Если необходимо более сложное приложение (например, интернет-магазин), то возникает необходимость в написании большого объема программного кода, вследствие чего встанет вопрос о выборе языка программирования, оптимального для создания данного приложения.

Существует большой выбор таких языков, среди которых существуют признанные лидеры в своих областях. К примеру, Web-страницы города Уфы включают интернет-приложения, большинство из которых написано на Perl [7]. Изначально этот язык был создан для решения более широкого круга задач; как следствие сценарии Perl получаются громоздкие и трудночитаемые. Простота языкаPHP, платформенная совместимость и открытость его кода сделали его быстро развивающимся языком программирования для создания интернет-приложений [6]. В то же время другой язык программирования –Python, помимо всех достоинств языкаPHP, в свою очередь, имеет еще и другие преимущества, в том числе богатый набор стандартных модулей для работы с протоколами Интернет, языками структурной разметки, поддержки форматов, используемых в Интернет, с различными форматами баз данных и многие другие. Также объектно-ориентированный языкPythonпозволяет внести в интернет-приложения некоторые элементы искусственного интеллекта и повысить гибкостьWeb-дизайна, что в корне отличает его отPHP.

Интернет-приложения могут выполняться на стороне клиента (клиент-

ский скрипт). В этом случае приложения будут обрабатываться средствами браузера, не обращаясь к серверу. Одним из преимуществ применения клиентских скриптов является то, что они позволяют распознавать события, вызванные действиями пользователя (ввод данных в форме, появление курсора мыши над конкретным графическим объектом и так далее). Затем, получая информацию о действиях пользователя, клиентские сценарии могут либо вызывать другие части сценария, либо выполнять иную работу, не обращаясь снова к серверу и не требуя дополнительной информации. Это, в свою очередь, уменьшает нагрузку на сервер, экономит время пользователя, который может загрузить один раз клиентское приложение и работать с ним в режиме «off line» сколько угодно. Но это преимущество одновременно является и недостатком, так как невозможно делать запросы к базе данных, читать и записывать файлы, общаться с внешними серверами, также сильно повышается вероятность заражения компьютерными вирусами. Кроме того, применение клиентских скриптов затруднено отсутствием единого стандарта для JavaScript, а другие языки (Perl) поддерживаются браузерами лишь опционально. Также наличие обработки данных с помощью скрипта на стороне клиента не освобождает от необходимости проверок данных на стороне сервера, так как клиентские скрипты могут быть отключены или замещены самим пользователем. Задачи работы с базами данных и многие другие задачи можно реализовать сценариями серверного приложения либо совместным использованием серверных или клиентских скриптов.

Примером таких приложений являются: создание интерактивной конференции, гостевой книги, интернет-магазина, почтовой службы, счетчика посещений или просто динамической страницы [2]. В этих приложениях пользователь посылает определенный запрос на сервер, с которого ему передается ответ. Для написания приложений, выполняемых на стороне сервера, используются либо языки, создающие CGIскрипты (внешние приложения, которые передают браузеру кодHTML), либо обработчики гипертекста, конструкции которых встраиваются в HTMLстраницу (интерпретатор на сервере обрабатывает скрипты, а код HTML, находящийся вне скрипта, остается неизменным). Практически любой язык можно применить для написания CGI, тогда как обработчики гипертекста создавались именно для написания интернет-приложений, вследствие чего выявляются сильные различия в этих группах. Реально вместоCGIскриптов обычно используются модулиWebсервераApache, имитирующие функцииCGI, но подключаемые кWebсерверу как разделяемые библиотеки, а не как приложения, что существенно сокращает затраты времени на отображениеHTMLстраницы за счет исключения операций создания контекста процесса наWebсервере. ЯзыкPHPреализован как модульWebсервера, а для остальных языков необходимо использование специальных модулей интеграции. Другим способом повышения эффективности работы интерпретатора языка программирования сверхвысокого уровня является использование сервера приложений, при этом исключается необходимость повторного запуска интерпретатора и соответственно связанных с этой операцией накладных расходов при отображении каждойHTML-страницы. Интеграция сWeb-сервером в этом случае осуществляется на основе использования обмена данных междуWeb-сервером и сервером приложений по протоколуFastCGI(или его разновидности).

Далее будут рассмотрены лишь некоторые из языков для создания интернет-приложениий: Perl,PHP,PythonиJava.

Приложения, написанные на Java[1], значительно больше, чем такие же на других языках. Это связано с недостаточно высоким уровнем объектно-ориентированных конструкций языка Java. Как правило, использование этого языка не оправдывает усилий и времени, затраченных на воплощение приложения, так как на программиста возлагается слишком много функций по реализации механизмов наследования, обработки исключений и т.д. Для большинства интернет-приложений достаточно средств, которые предоставляют языкиPerl,PHP(объектно-ориентированные средства в них являются опциональными). Если человек достаточно хорошо знаетPerl, то, скорее всего, он будет для него лучшим языком для создания динамических страниц HTML, потому что такой профессионал сможет использовать определенные рычаги и весь свой опыт. Синтаксис языка Perl прост для изучения, но стиль программирования на этом языке уникален (задача по передаче переменных методомpostтребует от программиста детального знания заголовковHTML, либо определенной библиотеки) [3,4,5]. Кроме того, особенности синтаксисаPerlи библиотеки языка, содержащие большое количество модулей, приводят к тому, что при использовании этого языка трудно проконтролировать возможные побочные эффекты. Для создания интернет-приложений эффективны также языкиPythonиPHP[6]. Их программный код хорошо читаемый и не требуются глубокие познания в смежных областях. Perl нацелен на поддержку общих программно-ориентированных задач, например, имеет встроенную обработку регулярных выражений, сканирование файлов и генерирование отчетов. Python концентрируется на общих методологиях программирования, таких как разработка структур данных и объектно-ориентированное программирование, способствует написанию удобочитаемого (а значит легко поддерживаемого) кода, путем предоставления не чрезмерно зашифрованной нотации. Python близко подходит к Perl, но редко побеждает в его оригинальной нише приложений; однако Python имеет хорошую применимость за пределами ниши Perl. Для разработкиWebприложений имеется системаPythonсервлетов –Webware, сервер приложений, которые позволяют соединить достоинства языкаPythonс возможностью инкапсулировать код скрипта непосредственно вHTMLстраницу (достоинства языкаPHP) и, кроме того, повышает производительность приложения в целом. Благодаря простоте и гибкости языка Python, его можно рекомендовать пользователям (математикам, физикам, экономистам и т.д.), не являющимся программистами, но использующими вычислительную технику и программирование в своей работе. Программы на Python разрабатываются в среднем в два-три раза быстрее, чем на языкеJavaи, по крайней мере, в десять раз быстрее, чем на компилируемых языках (С, С++, Pascal). Поэтому язык может представляет интерес и для профессиональных программистов, разрабатывающих приложения, не критичные к скорости выполнения. Python хорошо зарекомендовал себя при разработке программ работы с графами, генерации деревьев. Для языкаPython(по сравнению с языкамиPerl,PHP) существенно облегчена интеграция с компилированными программами, написанными на языкахC,С++, что позволяет реализовать критическую секцию в компилированном коде. ИнтерпретаторPythonможет быть непосредственно подключен к приложению, написанному на языкеC,C++ как разделяемая библиотека

Из рассмотренных языков для создания интернет-приложений наиболее эффективным является PHP, так как он обладает легко доступным синтаксисом и наиболее простым способом интегрируется с Web-сервером. Эффективным по совокупности свойств простоты, наглядности и скорости разработки является также язык Python в сочетании с сервером приложений.