Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Выбор языкапрограммирования




При создании большинства web-приложений используются языки программирования: php , python, ruby, perl. Сравним данные языки по сле- дующимпоказателям:

-сложность языка, влияющая на длительность изучения языка програм- мирования илитехнологии;

-размеры сообщества программистов, использующих данный язык. Критерийособенноважендляopensourceтехнологий,таккаквболь-


шинстве случаев отсутствует техническаяподдержка;

-наличие библиотек управления пакетами (библиотеками, фреймворка- ми ипр.);

-наличие библиотек коммуникаций, использование которых позволя- ет взаимодействовать с базами данных под управлением различных СУБД;

-независимость от используемойплатформы;

-скорость работы программ, использующих язык, технологию.

 


Библиотеки управленияпакетами

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

Наличие менеджера пакетов во многом решает эти проблемы. Для PHP существует менеджер пакетов Composer, для Python - pip, Ruby - RubyGems. При использовании Perl за установку, настройку и обновление сторонних библиотек отвечаетразработчик.

 

Библиотеки взаимодействия с базами данных

Язык PHP имееют самую развитую поддержку различных СУБД из рассматриваемых языков программирования. Самое распространенное рас- ширение языка для работы с базами данных в PHP - PDO, позволяет исполь- зовать при разработки различные СУБД, среди которых OracleDatabase, MSSQLServer, Infomix, MySQL, PostgreSQL, Firebird и пр. Также многие раз- работчики СУБД выпускают специализированные библиотеки доступа для PHP.

Ruby, также как и PHP, легко интегрирует в свои программы высоко- производительныесерверыбазданных(DB2,MySQL,OracleиSybase);


Python имеет изначальную ограниченность средств для работы с ба- замиданных.

В Perl существует множество различных модулей для работы с базами данных, которые оптимизированы для работы с конкретными СУБД. Но как правило эти модули имеют разные наборы функций. Для упрощения пере- носа приложений был разработан модуль DBI. Он построен по модульной архитектуре – для каждой СУБД существует драйвер, реализующий специ- фику работы с конкретной базой данных.

 


Независимость от используемойплатформы

Все из рассматриваемых языков программирования имеют возмож- ность установки на разных платформах и работы с разными web-серверами (Apache,IIS).

 

Скорость работы программ, использующихязык

Среди рассматриваемых языков на основании проведенных экспери- ментов лучшую производительность показали языки PHP и Perl. Програм- мы, написанные на Python и Ruby значительно отстают в производительно- сти.

 

Выводы

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

-низкий «порог вхождения» - простота синтаксиса, динамическая типи- зация переменных, возможность интеграции html/css/js прямо в скрип- ты позволяют создавать простые программы после непродолжитель- ного изучениядокументации;

-множество свободных библиотек, cms, фреймворков с открытым ис- ходным кодом;

-большое сообщество разработчиков наhttp://github.com.


-php работает практически на любом web-сервере(apache2, nigx, iis), а так же без него (можно использовать для задач администрирования, написания десктопныхприложений);

-возможность взаимодействия с различными системами управления ба- зами данных (Mysql, SQLite, PostgresSQL, Firebird, MSSQL, OracleDataBase);

-поддерживает объектно-ориентированный метод программирования (создатели php совместили много сильных сторон ООП-походов дру- гих языковпрограммирования);

-возможность установки и использования на различных архитектурах (x86, ARM) и различных операционных системах (Linux, Windows, Unix).

Таблица3.1—Сравнениеязыковпрограммирования

 

Критерий/Язык PHP Python Ruby Perl
Сложностьязыка Низкая Низкая Высокая Высокая
Менеджерыпакетов + + +
Работа с различнымиСУБД + +/- +/- +
Платформонезависимость + + + +
Скорость работыпрограмм Высокая Низкая Низкая Высокая

 

Подробнее с количественными характеристиками рассмотренных язы- ков программирования можно ознакомиться в статье [18].

 


Описание выбораСУБД

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

Для сравнения были выбраны три свободно распространяемые СУБД: Firebird, MySQL и PostgreSQL. Сравнение проводилось по пяти основным параметрам: поддержка СУБД механизма триггеров и хранимых процедур, удобство и доступность средств разработки приложений СУБД, перечень


поддерживаемых операционных систем, минимальные требования к серве- ру баз данных, и производительность.

 


Встроенные средства резервирования ирепликации

MySQL имеет утилиту mysqldump, позволяющую резервировать дан- ные базы. Есть средства встроенной репликации, что позволяет обеспечить масштабируемость системы при увеличении хранимых данных и возросшей нагрузки.

В комплекте PostgreSQL есть 2 утилиты которые позволяют делать резервные копии, это pg_dump/pg_dumpall и pg_basebackup. Кроме того есть возможность использовать утилиты файлового копирования, такие как rsync, tar, cp и т.п. Также как и MySQL имеет встроенные средства админи- стрирования.

Для организации резервирования баз данных под управлением СУБД Firebird используются встроенные утилиты gbak и nbackup. Штатные сред- ства репликации отсутствуют, но есть сторонний продукт IBReplicator, поз- воляющий достичь синхронизации двух и более баз данных, правда, для его работы необходимо менять структуру метаданных базы.

 

Триггеры и хранимыепроцедуры

Для большинства информационных систем наиболее распространен- ной является клиент-серверная архитектура, то есть архитектура, в которой под БД выделяется отдельный, достаточно мощный и надежный сервер, сетевой доступ к которому осуществляют несколько клиентов. Поддерж- ка СУБД механизма триггеров и хранимых процедур позволяет перенести часть вычислительной нагрузки по обработке данных на сервер, несколько снижает сетевой трафик, облегчает модернизацию ПО. Все три СУБД под- держивают процедурные языки SQL, но больший функционал предостав- ляет PostgresSQL, его PL/pgSQL практически не уступает коммерческим СУБД.



Средыразработки

Все рассматриваемые СУБД имеют функциональные IDE: для MySQL

— phpMyAdmin,Workbench, Firebird — Ibexpert/FlameRobin, PostgreSQL — phpMyPgSQL. Все IDE являются свободно распространяемыми продуктами, наиболее удобны в использовании Workbench, Ibexpert.

 










Последнее изменение этой страницы: 2018-05-31; просмотров: 191.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...