|
Программирование >> Программный интерфейс приложений
or exit (); $result = mysql query{ SELECT COUNT(*) FROM member ) or exit(); if ($row = mysql fetch array ($result)) echo <P>B Исторической Лиге зарегистрировано . $row[0] . членов ; mysql free result ($result); ?> </BODY></HTML> Значения DBI и DBD Несмотря на то, что уровень DBI (independent) не зависит от СУБД, а уровень DBD (dependent) зависит, это не означает, что в этом кроется смысл аббревиатуры DBI и DBD . Эти аббревиатуры означают всего лишь интерфейс баз данных и драйвер база данных . Сценарии РНР обычно выглядят как обычные HTML-страницы, но заключенные внутри маркеров <?php к ?>. Страница может содержать несколько сценариев. Это обеспечивает предельно гибкий подход к разработке сценариев. Например, можно создать обычную HTML-страницу, в которую позже будет вставлен сценарий. Языку РНР не нужно делать усилия для унификации интерфейса с различными базами данных, подобно интерфейсу DBL Наоборот, интерфейс к каждой базе данных представляет собой интерфейс с соответствующей библиотекой С, осуществляющий АРЬинтерфейс низкого уровня с любой базой данных. Например, имена функций языка РНР, предназначенных для доступа к базам данных MySQL из сценариев РНР, очень похожи на имена и функции клиентской библиотеки языка С. Выбор API-интерфейса в этом разделе вы найдете общие рекомендации, имеющие своей целью помочь в выборе API-интерфейса на этапе разработки приложений, В ней сравниваются возможности API-интерфейсов С, DBI и РНР. Дается сравнительная характеристика их сильных и слабых сторон. Делается подсказка, в каких ситуациях можно остановить свой выбор на одном варианте, а в каких на другом. Автор не отдает предпочтения ни одному из языков. В своей работе он использует их все, хотя есть такие, которым отдается предпочтение. Читатели тоже могут иметь свой кр>т предпочтений, как это имело место у рецензентов данной книги. Один из них настаивал на том, что автор должен акцентировать внимание на важности языка С при программировании задач, работающих с СУБД MySQL, в то время как другой считал, что автор должен всячески предостерегать читателя от использования языка С в профаммировании и всячески преуменьшать его значение! Я придерживаюсь той точки зрения, что читатель сам должен взвесить все за и против и сделать свои собственные заключения. в процессе выбора типа интерфейса API учитываются многие факторы. Среда, в которой будет выполняться задача. Контекст, в котором будет выполняться приложение. Производительность. Какова эффективность приложений, написанных с применением того или иного интерфейса. Простота разработки. Насколько удобно работать с интерфейсом и его языком при создании приложений. Переносимость. Будут ли использоваться приложения в работе с . другими базами данных. Все эти факторы будут детально изложены в дальнейшем повествовании. Помните, что некоторые факторы имеют взаимное влияние. Например, разрабатывается приложение, которое должно обладать хорошей производительностью, но не менее важен также и фактор быстроты разработки приложения. Поэтому предпочтение отдается языку, позволяюшему быстро разрабатывать приложения, эффективность работы которых не будет достаточно высокой. Но эти оба фактора взаимоисключают друг друга. Среда выполнения Разработчик приложения всегда знает, в какой среде будет работать приложение. Например, это может быть программа генерации отчетов, которая будет вызываться из оболочки, или программа, суммирующая задолженность, которая запускается утилитой сгоп в конце каждого месяца. Обычно команды, запускающиеся из оболочки или из утилиты сгоп, не имеют каких-то особенных требований к среде, в которой они выполняются. В качестве другого примера можно привести приложение, которое будет запускаться Web-сервером. Такая программа должна уметь вытягивать информацию специфического типа из своей рабочей среды. Каким брозурером пользуется клиент? Какие параметры заносятся в форму списка рассылки при запросе на подписку? Вводит ли клиент правильный пароль для того, чтобы получить доступ к информации о персонале? Все языки API обладают различными характеристиками. Язык С является языком программирования общего назначения. Отсюда следует, что его можно использовать для решения самых разнообразных задач. Есть тенденция использования С для написания автономных программ, а не для программирования Web-узлов. Вероятно, одной из причин является то, что язык программирования С не настолько удобен для обработки текстов и управления памяти, как языки Perl или РНР, которые имеют тенденцию активно использоваться для программирования Web-приложений. Язык Perl, как и язык С, отлично подходит для написания автономных профамм. Однако в отношении языка Perl справедливо и то, что он вполне подходит для разработки Web-узлов, например, с помощью модуля CGl.pm. Это делает язык Perl очень удобным инсфументом для создания приложений, связывающих СУБД MySQL с Internet. Такая профамма может подключаться к Internet через модуль CGl.pm, взаимодействуя при этом через интерфейс DBI с СУБД MySQL. Язык РНР разрабатывался как инсфумент разработки Web-приложений, поэтому является средой, в которой его использование наиболее предпочтительно. В то же время, доступ к базам данных является его самым большим преимуществом. Таким образом, его совершенно естественно использовать в приложениях, осуществляющих доступ к базам данных через Internet. Конечно, можно использовать язык РНР и в роли автономного интерпретатора (например, для выполнения сценариев из оболочки), но он не используется в таком качестве очень часто. Принимая во внимание эти доводы, можно сделать вывод, что языки С и Perl являются наиболее вероятными кандидатами для создания автономной профаммы. Для написания Web-приложений больше всего подходят языки РНР и Perl. Если необходимо написать оба типа приложений, но вы не знаете ни одного из этих языков и не хотите их подробно изучать, наилучшим выбором будет язык Perl. Производительность При прочих равных условиях мы будем Сфемиться к тому, чтобы приложение работало как можно бысфее. Однако реальное влияние фактора производительности имеет тенденцию зависеть от частоты использования профаммы. Для профамм, которые запускаются процессом сгоп один раз в месяц ночью, фактор производительности не будет очень критичным. Но когда профамма запускается на перефуженном Web-узле несколько раз в секунду, каждая миллисекунда выифыша важна. В последнем случае производительность может сыфать существенную роль в отдаче, получаемой от вашего Web-узла и его популярности. Медленный узел независимо от своей направленности раздражает посетителей. И если Web-узел является источником вашего дохода, уменьшение производительности сразу же ударит по вашему карману. Узел не будет в состоянии одновременно обслужить много запросов, и посетители просто перестанут заходить на него. Оценка производительности является сложной задачей. Лучшим индикатором того, как приложение производит операцию записи при использовании определенного интерфейса будет создание тестового примера, работающего с этим API. Но лучшим сравнительным тестом будет создание тестов для различных API и сравнение их работы. Наверняка
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |