4342

Создание приложений для динамического представления Web-страниц

Реферат

Информатика, кибернетика и программирование

Создание приложений для динамического представления Web-страниц Основы использования Web - технологий для доступа к базам данных Развитие web технологий с использованием баз данных Создание динамических сайтов Современные технологии динамического пр...

Русский

2012-11-16

235 KB

59 чел.

Создание приложений для динамического представления Web-страниц

Основы использования Web - технологий для доступа к базам данных

Развитие web технологий с использованием баз данных

Создание динамических сайтов

Современные технологии динамического представления

CGI – технология, основанная на передачи запросов и ответов по протоколу http

JAVA – технология

Заключение

Основы использования Web - технологий для доступа к базам данных

Времена, когда веб- сайты состояли из статического контента и нескольких cgi или java скриптов для обработки форм, ушли, безвозвратно. Сейчас от веб-приложений требуется гораздо больше интерактивности. Количество разнообразных технологий и подходов для веб-разработок в настоящее время кажется просто гигантским, а направление их развития - слабопредсказуемым. Как выбрать перспективную рабочую платформу для веб-разработок, действительно удовлетворяющую современным требованиям? Для такого выбора необходимо сравнивать множество подходов и реализаций, нужно иметь о них представление.

Первоначально перед Web-серверами стояла  простая задача: найти и отправить клиенту файл, указанный в полученном от клиента запросе. Запрос составлялся тоже очень просто в адресе URL.

Прикладное программирование для Web начиналось с обработки запросов пользователя, передаваемых через формы и динамической генерации страниц на стороне сервера. По этому же принципу работают языки программирования вставок (SSI) в HTML документы. Дальнейшее развитие привело к созданию языков программирования элементов HTML документов на стороне клиента (например, Java Script).

Потом понадобилось сделать на сервере какую-либо небольшую предварительную обработку отправляемого файла. Web-сервер усложнился, появились различные приемы динамической генерации страниц HTML. Затем возникла необходимость выполнять на сервере процедуры. В запросе URL вставили вызов процедур, а на сервере реализовали технологию CGI (Common Gateway Interface). Теперь в запросе URL указывается процедура, которую нужно выполнить на сервере. Процедуру CGI можно написать на любом языке, лишь бы он воспринимал стандартный ввод и стандартный вывод. В технологии Java для этого создаются аплеты, сервлеты, используется язык JSP(Java Server Pages).

Причины возрастания роли веб- приложений понятны - они не требуют установки программных средств у пользователя и их гораздо проще "подстраивать под этого самого пользователя", такие приложения более управляемы с обеих сторон, меньше требований к клиентскому устройству. Многие приложения уже используют для взаимодействия с пользователем веб - интерфейс. То есть в веб- приложения закладывается функциональность, сравнимую с традиционными настольными приложениями. Преимущества приложений даны в табл. 1.

В основе реализации корпоративных информационных систем на базе архитектуры Интернет/Интранет лежит принцип "открытой архитектуры", что во многом определяет независимость реализации корпоративной системы от конкретного производителя. Все программное обеспечение таких систем реализуется в виде аплетов или сервлетов (программ написанных на языке JAVA) или в виде cgi модулей (программ написанных, как правило, на Perl или С).

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

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

Таблица

Преимущества динамических приложений

Преимущество

Метод реализации

Централизация администрирования приложений

За счет централизованного оперирования приложениями и их модификациями, выполняемыми на сервере, они становятся доступными для всех пользователей сразу, не требуется контакт с отдельными пользователями

Упрощение технологии обслуживания рабочих мест

Применяя соответствующие сервисные средства, администратор системы может одновременно обслуживать множество устройств.

Возможность контроля за действиями пользователя

Благодаря отсутствию накопителей на рабочем месте, пользователь не может привносить в конфигурацию программного обеспечения что-то свое, устанавливая собственные программы.

Мобильность пользователей

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

Повышение производительности труда операторов

Сведение всех сервисных операций на сервер заметно повышает производительность труда операторов.

Снижение стоимости эксплуатации оборудования

При не слишком большом различии в стоимости оборудования серверные приложения заметно дешевле в эксплуатации.

Высокая способность к интеграции существующих гетерогенных информационных ресурсов.

Минимальный состав программно-технических средств на клиентском рабочем месте (Браузер и общесистемное программное обеспечение)

Минимальные затраты на настройку и сопровождение клиентских рабочих мест, что позволяет реализовывать системы с тысячами пользователей (причем многие из которых могут работать за удаленными терминалами).

В общем случае информационная система, реализованная с использованием данной архитектуры, включает Web-узлы с интерактивным информационным наполнением, реализованных при помощи технологий Java, JavaBeans, JavaScript, РНР, ASP, Perl, взаимодействующих с базой данных, с одной стороны, и с клиентским местом с другой. База данных, в свою очередь, является источником информации для интерактивных приложений реального времени.

Обновление экрана пользователя при использовании статического HTML  происходит с.о. - страница с формой загружается в браузер, измененная форма отправляется на сервер, происходит передача событий отдельным измененным объектам от клиентской стороны к серверу и обратно. Есть приложения, которые обновляют пользовательский интерфейс только по явным действиям пользователей. Так работает большинство бизнес-приложений, где наиболее частыми операциями являются операции редактирования, добавления и удаления записей или документов и связей между ними. Тогда, скажем, после редактирования записи, клиентское приложение отправляет соответствующие изменения на сервер, а пользователь видит измененную запись. Есть приложения, в которых обязательна передача измененных объектов с сервера на клиент с отображением этих изменений без явных действий пользователя, как, например, в клиентах электронных торгов.

Приложение может требовать установки на клиенте, а может загружаться каждый раз заново с сервера. Клиентское приложение может брать на себя выполнение всей бизнес-логики, а может состоять только из презентационного слоя, который отрабатывает пользовательский интерфейс. Серверная логика может располагаться на уровне хранимых процедур в СУБД, а может включать в себя полноценное объектно-ориентированное многопоточное приложение.

Появление браузера породило ряд иллюзий, вызванных концептуальной красотой решения, однако Internet-приложения оказались более сложными в разработке, чем это казалось на первый взгляд. Трехзвенная архитектура включает обязательное звено — сервер приложений, благодаря которому на серверной стороне оказываются представлены сервисные функции: пользовательские сеансы, транзакции, ведение учетных записей пользователей и прав доступа, а также исполнение серверной логики на различных языках.

Развитием трехзвенного подхода являются технологии, позволяющие осуществлять гибкое и продуманное разделение логики на клиентскую и серверную, и контролировать обмен между клиентом и сервером более разумным способом, чем в двухзвенной архитектуре и традиционных Web-клиентах. Примером такой реализации является сервер приложений Baikonur, который имеет компоненты быстрой разработки, интегрированные с инструментарием Delphi. Сверхтонкий Windows-клиент Taxxi представляет собой легкий (около 400 Кбайт) XML-браузер, который отрисовывает пользовательский интерфейс. Такая схема оптимальна для распределенных систем со слабыми каналами: в ней минимизируется трафик взаимодействия клиента и сервера за счет того, что передаются только содержательные данные по отрисовке пользовательского интерфейса. Объекты принадлежат настраиваемой схеме данных путем задания структуры классов и связей между ними, таким образом, создается каркас будущего приложения, который отражается в хранилище. Например, на клиенте имеется приложение, которое отражает на форме или в табличном представлении значения полей некоторых объектов из базы данных. Когда пользователь правит данные, изменяя через элементы пользовательского интерфейса поля объектов, создавая и удаляя объекты, это отражается на сервере приложений, а также в хранилище. Объекты на клиенте — это всего лишь представления объектов на сервере. При изменении объектов на сервере, помимо сохранения их в базе данных, происходит уведомление тех клиентов, которые загрузили клиентские представления этих объектов, т.е. включили их в свое рабочее объектное пространство. На события изменений клиентских объектов можно стандартным образом подключать обработчики, например, на JavaScript, в результате чего имеется распределенное приложение. На клиентской части идет связывание элементов графического пользовательского интерфейса и полей объектов; при этом изменения объектов передаются как от клиента к серверу, так и обратно.

Можно создавать приложения без программирования, сразу готовые к работе после создания объектной схемы данных и не теряющие работоспособности при ее изменении. Такие средства есть в MS.net, Lotus. Универсальный пользовательский интерфейс имеет свои преимущества, однако в большинстве систем пользовательский интерфейс все же специфичен и требует написания кода. Такое разделение приложений на декларативный пользовательский интерфейс и логику, событийно связанную с его элементами, уже давно произошло де-факто в средствах разработки, хотя в механизме вызова графического пользовательского интерфейса Windows был все тот же механизм оконных сообщений, а презентационная подсистема не была отделена от ядра..

Развитие web технологий с использование баз данных

Функции, реализуемые с помощью БД и web можно разбить на три уровня:

  •  Уровень представления - окна ввода и вывода
  •  Уровень логики приложения - задачи и правила управления процессом (анализ запросов, контроль данных, расчет статистических характеристик и др.)
  •  Уровень данных - механизм постоянного хранения данных - БД.

Эти уровни можно реализовать в нескольких вариантах архитектуры распределенных БД:

  •  Представление и логика приложения могут размещаться на клиенте, БД на - на сервере
  •  Представление на клиенте, приложение на сервере приложений, данные на сервере БД.

Достоинства второго варианта:

  •  Логика приложения представляется в виде изолированных компонентов, которые можно использовать в др. системах
  •  Различные уровни приложения можно распространить по различным компонентам, что позволяет повысить производительность и улучшить координацию
  •  Разработку отдельных уровней можно поручить различным группам разработчиков.

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

Рис.1.Общая схема создания динамических средств представления web - страниц

Динамическое создание гипертекстовых документов на основе содержимого БД.

Широко применяются следующие технологии создания интерактивного взаимодействия с пользователем на Web: использовании Стандартного Интерфейса Шлюза (Commom Gateway Interface) – CGI; включение JavaScript - сценариев в тело Web-страниц; самый мощный, предоставляющий практически неограниченные возможности, способ – это применение технологии Java.

В этом варианте доступ к БД осуществляется специальной CGI-программой, запускаемой Web -сервером в ответ на запрос Web - клиента. Эта программа, обрабатывая запрос, просматривает содержимое БД и создает выходной HTML-документ, возвращаемый клиенту (рис.3).

Это решение эффективно для больших баз данных со сложной структурой и при необходимости поддержки операций поиска. Показаниями также являются частое обновление и невозможность синхронизации преобразования БД в статические документы с обновлением содержимого. В этом варианте, возможно, осуществлять изменение БД из WEB -интерфейсов. К недостаткам этого метода можно отнести большое время обработки запросов, необходимость постоянного доступа к основной базе данных, дополнительную загрузку средств поддержки БД, связанную с обработкой запросов от WEB - сервера. Для реализации такой технологии необходимо использовать взаимодействие WEB -сервера с запускаемыми программами CGI - Common Gateway Interface. Выбор программных средств достаточно широк - языки программирования, интегрированные средства типа генераторов отчетов. Для СУБД со внутренними языками программирования существуют варианты использования этого языка для генерации документов.

Одной из основных технологий создания CGI-модулей для реализации функций "преобразователя" и "обработчика" является язык C. При решении описанных задач язык C можно использовать для создания следующих программ:

  •  преобразователя, однократно преобразующего содержимое БД в гипертекстовые документы;
  •  обработчика, динамически обрабатывающего запрос от WEB -сервера к БД. перегрузчика из существующих БД в информационное хранилище;
  •  обработчика запросов от WEB -сервера к информационному хранилищу.

Для поддержки этих функций создано большое количество библиотек и функций языка C, готовых приложений в исходных текстах.

Создание приложения на основе высокопроизводительной СУБД с языком запросов SQL Компоненты динамического доступа можно разделить на две структурные части — сервер БД и WEB-сервер, — которые можно размещать на различных компьютерах (рис.4).

По запросу клиента WEB сервер осуществляет следующие операции:

  •  Отправляет ASCII коды HTML страниц, включающие при необходимости элементы javaScript;
  •  Отсылает двоичный код запрошенного ресурса (изображения, адио-, видеофайла, архива и т.п.);
  •  Отсылает байт коды JAVA апплетов.
  •  Принимает конкретную информацию от пользователя (результат заполнения активной формы, или статистическую информацию запрошенную CGI скриптом);
  •  Осуществляет заполнение базы данных;
  •  Принимает сообщения от пользователя и регламентирует доступ к ресурсам Web узла на основе анализа принятой информации (проверка паролей и т.п.);
  •  Принимает информацию от пользователя и в зависимости от нее динамически формирует HTML страницы, обращаясь, при необходимости, к базам данных и существующим на WEB сервере HTML страницам.

После того, как клиент получил ответ WEB сервера, он осуществляет следующие операции:

  •  визуализирует HTML страницу в окне Браузера;
  •  интерпретирует команды JavaScript, модифицирует образ HTML страницы и т.п.;
  •  интерпретируя байт коды JAVA апплетов, позволяет загружать и выполнять активные приложения;
  •  ведет диалог с пользователем, заполняющим формы, и создает новые запросы к WEB серверу;
  •  с помощью утилит воспроизводит коды аудио и видео файлов, поддерживает мультимедийные средства.

Рис.4. Архитектура динамического доступа к БД

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

Сервер БД представляет собой компьютер, на котором установлена СУБД; он выполняет функции хранения и обработки данных. WEB-сервер предназначен для создания пользовательского интерфейса к функциям динамического доступа. На него устанавливается серверное обеспечение СУБД Oracle, один из интерпретирующих языков JSP, PHP, Perl с необходимыми модулями, и HTTP-сервер. Физически WEB-сервер и сервер БД в принципе можно объединить на одной машине, но делать это не желательно из-за возможных проблем с производительностью, безопасностью и надежностью работы.

Web-серверы, кроме выполнения основной функции - возврата файла, запрошенного пользователем, позволяют расширять свою применимость, предоставляя для расширения функциональности различные интерфейсы. Одна из основных проблем, решаемых этими интерфейсами - создание возвращаемой пользователю страницы «на ходу», при этом в качестве исходного материала обычно используется адрес (URL), переданный пользователем, и файл, находящийся на сервере по этому адресу.

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

Сервер Приложений обязан:

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

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

1. Интеграционный Сервер Приложений. Основная задача такого Сервера – интеграция Бизнес-приложений в единую интеллектуальную среду. Такие Серверы особенно актуальны для организации приложений, связанных с задачами электронной коммерции. К таким серверам относятся реализации крупнейших поставщиков брокеров объектных запросов – компаний Inprise и Iona.

2. Информационный Сервер Приложений. Деятельность такого сервера сконцентрирована на манипулировании данными. В качестве хранилищ могут выступать произвольные приложения. Такие серверы берут на себя организацию представления распределенных данных, хранящихся в различных источниках, в объектной парадигме. Примером такого сервера является JBOSS.

3. Обрабатывающий Сервер Приложений (Processing-centric application server). Центральной заботой таких серверов является обеспечение специфической бизнес-логики. Например, сервер, реализующий распределенные вычисления, или сервер ERP-системы. К такой реализации относится продукт фирмы IBM Websphere, сервер Байконур.

4. Управляющий Сервер Приложений. Такие серверы являются подмножеством Обрабатывающих Серверов Приложений, но в отличие от них сконцентрированы на выполнении определенных бизнес-правил. Они ориентированы прежде всего на область электронной коммерции. Примером таких серверов является реализация от компании Vision Software.

5. Сервер XML. Этот сервер представляет собой подмножество Информационного сервера, с той лишь разницей, что в качестве хранилищ данных выступают XML – документы. С другой стороны, такой сервер может представлять собой подмножество Интеграционного сервера, в котором в качестве механизма интеграции выбран XML. JBOSS выполняет функции сервера XML.

Наиболее интересные экземпляры Серверов Приложений гармонично сочетают в себе достоинства различных групп.

Создание динамических сайтов

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

Можно использовать разные СУБД. Гибкость использования, развитые средства управления доступом и распределенная архитектура делают сервер Oracle чрезвычайно привлекательным для технологии информационных хранилищ, а возможность работы на свободно - распространяемых Unix-платформах расширяет его возможности в некоммерческой среде.

Для создания динамического сайта нужно выбрать один из следующих языков (Perl, PHP, ASP, JSP) и  получить доступ к БД. Выбор языка не особо критичен - как правило, значительно больше времени тратится на получение результата от базы данных, чем на его обработку и выдачу клиенту, поэтому ориентируйтесь на тот язык, на котором вам удобнее писать. В принципе, PHP сейчас развивается очень быстро и обладает кучей полезных возможностей, ориентированных именно на программирование для WWW.

Серверные технологии, используемые в Web-приложениях, основываются на достаточно простом и очевидном принципе динамического создания страницы при запросе клиента вместо возврата готовой страницы. Такой подход позволяет создавать страницы "на лету", основываясь на различных данных (например, из баз данных или информации из браузера клиента), доступных с сервера. Наиболее «старая» и известная технология - CGI (Common Gateway Interface). Фактически CGI позволяет создавать страницы путем запуска на сервере указанной пользователем программы. По ходу работы программа последовательно создает HTML-код результирующей страницы, в зависимости от различных условий код может быть разным. Стандарт CGI определяет достаточно простой протокол взаимодействия запущенной программы и Web-сервера.

Выбор платформы и web сервера. Можно выбрать несколько вариантов:

  1.  ОС freeBSD+ Apache.
  2.  ОС NT (win 2000) + IIS  
  3.  ОС Линукс + Apache
  4.  ОС Windows NT 4.0 Server или другая, в которой функционируют все последующие программные продукты;  СУБД Oracle 9i.; Клиентская часть СУБД Oracle; WEB-сервер Apache или любой другой, позволяющий вызывать CGI-сценарии; Интерпретатор ActiveState Perl с установленными модулями DBI и DBD-Oracle.

Среди WWW-серверов доминируют системы на основе Unix-серверов (70%), Все большую популярность приобретает Microsoft Internet Information Server (IIS), IBM выпускает для этой же платформы Internet Connection Server. На Unix-платформе присутствуют сервер Apache. Направление развития состоит в том, что производитель операционной системы, поставщик "железа" или прикладной системы поставляет интегрированное решение для WWW-сервера. Многие СУБД включают сервер приложений, например, Web Application Oracle, WebSphere.

К преимуществам UNIX-платформ, помимо устойчивости можно отнести еще бесплатность, большое количество документации и просто невообразимое число всевозможных модулей, скриптов и программ, которые могут пригодиться при разработке сайта. freeBSD + Apache является также распространенным сочетанием в Интернете.

При сборке сервера вовсе не обязательно покупать "готовое решение", предлагаемое различными компаниями, вполне можно собрать сервер и самостоятельно. Два слабых процессора работают лучше, чем один мощный (естественно, в разумных пределах!) и обходятся дешевле. Дело в том, что все серверные ОС умеют работать на многопроцессорных системах, а специфика веб-сервера заключается в том, что на нем запускается и работает несколько серверов Apache (и столько же СУБД). Такие работы очень хорошо распараллеливаются.

Обязательно узнайте телефон "серверной комнаты" и кто там дежурит - если вдруг сервер зависнет, и не будет пускать вас, то надо будет, чтобы кто-то нажал резет. В настройках СУБД отдайте ей побольше shared memory. Чем больше данных находится в кэше, тем быстрее все работает. Грамотная настройка этого параметра позволяет увеличить производительность СУБД в несколько раз.

Регулярно запускайте top, vmstat, iostat и pstat -  это поможет обнаружить "узкие места" еще до того, как они проявятся. Пренебрежение этим советом может стоить нескольких дней простоя сервера. Не забывайте про бэкапы! Насколько часто их делать зависит от ваших нужд, но делать это надо. Бэкап на втором винчестере страхует не только от сбоев приложения, но и от физической поломки диска. Копии бэкапов на CD тоже не помешают.

В скриптах необходимо предусмотреть отправку сообщений на e-mail и мобильный телефон о том, что не удается подключиться к базе, упал сервер Апаче и т.д. Предусмотреть периодическую проверку наличия всех нужных процессов и их перезапуск. Договоритесь с кем-нибудь о регулярной проверке работы вашего сервера и отправке сообщения, если он не отвечает. Теоретически можно использовать ping, но еще лучше, чтобы ваш сервер отправлял сообщения на сервер вашего партнера - это поможет подать сигнал, если сервер окажется перегружен и куча процессов скопилась в очереди на выполнение.

Ограничьте диапазон адресов доступа из сети. Очень многие функции, в частности обсчет статистики весьма ресурсоемок. Их вполне безболезненно можно сделать "квазидинамическими" - т.е. пересчитывать не при каждом просмотре пользователем страницы, а, скажем, раз в час, сутки и писать результаты в файл или базу.

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

Как правило, процентов 80-90 работы сервера заключается в выполнении всего нескольких скриптов. Именно их и надо оптимизировать в первую очередь. Удобным методом вычисления таких скриптов является банальная запись в файл имени вызываемой функции (каждой вызываемой функции!) и времени ее работы. Проанализировав этот файл, сможете достаточно ясно увидеть, чем следует заняться в первую очередь. Этот же метод очень удобно использовать для оптимизации SQL запросов. Перенумеровать все SQL запросы более эффективно, чем пытаться пропарсить лог-файл СУБД - многие запросы очень похожи (или просто одинаковы) и из лог сложно понять какой именно скрипт их вида.

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

Современные технологии динамического представления

Технология ASP основана на совместном использовании визуальной разработки страницы и фрагментов скриптов, изменяющих HTML-код страницы в зависимости от условий, в которых исполняется страница.

Инструменты на основе кода ASP популярны по следующим причинам:

  •  Привычность. VB Script похож на Microsoft Visual Basic (VB) , поэтому разработчики знакомы с этим широко известным стандартом. Многие разработчики считают, что этим языком легче пользоваться, чем JSP, JavaBeans, PHP и так далее.
  •  Стандартность. Технология ASP содержит гибкие серверные компоненты, уже встроенные в продукты Microsoft, на которых установлен сервер IIS (Internet Information Server), с целью создания ASP-приложений.
  •  ASP-разработчиков проще найти. Разработчиков, знающих ASP, довольно много, поэтому сложностей с их поиском нет.
  •  Хорошая интеграция в другие продукты Microsoft. ASP, Internet Explorer, IIS и SQL-сервер хорошо взаимодействуют друг с другом.
  •  Возможность многократного использования. Разработчики могут сэкономить время, копируя и вставляя строки кода, ранее написанные для других веб-страниц, а также создавая универсальные компоненты, которые годятся для многих веб-страниц.

Технология CSS (Cascading Style Sheets) и DHTML (Dynamic HTML). CSS предназначен в первую очередь для разделения содержания сайта и его оформления. С помощью CSS всем одинаковым элементам сайта (например, таблицам) можно задать единые правила оформления, причем эти правила будут написаны не на каждой странице, а в отдельном файле, что упрощает переоформление сайта. DHTML используется для динамического изменения страниц в браузере без обращений к Web-серверу. Собственно DHTML состоит из двух составляющих - DOM (Document Object Model, объектная модель документа) и JavaScript (иначе стандарт ECMAScript), использующий DOM. JavaScript - это стандартизованный объектно-ориентированный «скриптовый» язык общего назначения, однако его исходное предназначение -исполнение в среде браузера. В качестве контекста исполнения используются объекты, расположенные на странице - таблицы, ссылки, рисунки и т.д. Описание существующих объектов и методы работы с ними и образуют DOM - стандарт на программный доступ к содержанию HTML-страниц. Основные различия между браузерами кроются именно в реализации этого стандарта, что приводит к упрощению алгоритмов работы в клиентском браузере (для уменьшения влияния различий), или к созданию нескольких страниц для разных браузеров.

CGI - технология основанная на передачи запросов и ответов по протоколу http

Одно из самых слабых мест HTML – невозможность хранить состояния. Предлагаемый вариант решения проблемы – использование CGI (Common Gateway Interface – общий шлюзовой интерфейс) или других Web API (Application Programming Interface - интерфейс прикладного программирования) для реализации связующего ПО (middleware). С помощью этого метода можно обеспечить хранение состояний, а также буферизацию строк, возвращаемых на клиент, и выполнение некоторых вычислений над передаваемыми данными.

Помимо доступа к статическим документам сервера существует возможность получения документов как результат выполнения прикладной программы. Такая возможность реализуется на сервере WEB благодаря использованию интерфейса CGI (Common Gateway Interface). Спецификация CGI описывает формат и правила обмена данными между ПО WEB  сервера и запускаемой программой.

В случае использования такой архитектуры переносимость для клиентских платформ обеспечивается за счет использования HTML в качестве интерфейса. Однако в зависимости от того, как реализовано приложение Web-сервера, проект может также переноситься с одной серверной платформы на другую. Это, в частности, касается CGI-приложений, обладающих высокой переносимостью. О большинстве других Web API этого сказать нельзя. Например, серверное приложение, разработанное с использованием API Microsoft Internet Information Server (ISAPI) вероятнее всего будет работать только на Internet Information Server.

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

CGI не является языком описания документов. CGI определяет, как Web серверы передают информацию, используя приложения, находящиеся на сервере. Это способ расширения возможностей Web сервера. Подобно тому, как Браузер Web обращается к вспомогательным приложениям для обработки информации, которую он не понимает, CGI предоставляет Web серверу возможность переложить работу на другие приложения, такие как средства поиска в базе данных.

Для инициирования CGI необходимо, чтобы в запрашиваемом URL был указан путь до запускаемой программы. ПО WEB  сервера исполняет эту программу, передает ей входные параметры и возвращает результаты ее работы, как результат обработки запроса, клиенту. CGI - программой может являться любая программа локальной операционной системы сервера - в двоичном виде или в виде программы для интерпретатора (Basic, SH, Perl и т.д.).

С целью облегчения администрирования CGI - программ, а также для удовлетворения требованиям безопасности CGI - программы группируются в одном или нескольких явно указанных серверу каталогах. По умолчанию это каталог cgi-bin в иерархии серверных каталогов, однако, его имя и положение могут отличаться.

Например: клиент, обращающийся к CGI - программе test-query, будет использовать URL http://<имя_сервера>/cgi-bin/test-query 

Интерфейс CGI позволяет расширить границы применения WEB - технологии. CGI - программа может обрабатывать сигналы с датчиков установок, взаимодействовать с мощным сервером баз данных, переводить и т.п.

Запросы от WEB-браузера клиента попадают на HTTP-сервер. HTTP-сервер преобразует запрос в вызов соответствующего CGI-сценария, и передает ему параметры запроса. Возвращаемый CGI-сценарием поток данных отправляется клиенту. CGI-сценарии содержат логику работы системы. В основном работа всех программ системы сводится к преобразованию параметров HTTP-запросов к SQL-запросам к СУБД, и преобразованию данных, возвращаемых СУБД, в отформатированные WEB-страницы.

Работа программ системы с СУБД идет через интерфейс СУБД, состоящий из двух компонент: диспетчера СУБД (модуля DBI интерпретатора Perl) и драйвера Oracle (модуля DBD-Oracle). Для взаимодействия с СУБД Oracle необходим клиент Oracle, установленный на той же машине, где запускаются программы системы. Он преобразует SQL-запросы к внутреннему представлению Oracle и передает их на сервер СУБД; также клиент выполняет обратную операцию — возвращаемые СУБД данные преобразует к стандартному виду, понимаемому Perl. Запросы от клиента Oracle по сети передаются на сервер СУБД.

Web компонент промежуточного уровня выполняет набор функций, которые не может обеспечить HTML, а именно:

  •  взаимодействие с базой данных, где находится Хранилище;
  •  хранение состояний (предыдущих транзакций базы данных);
  •  вычисление и буферизация данных, возвращаемых на клиент.

Последним компонентом этой архитектуры является база данных. Web-браузер не соединяется с ней напрямую: за это отвечает связующее звено. Таким образом, ограниченные возможности HTML наряду с лимитированным доступом клиентской машины на сервер обеспечивают достаточную безопасность при извлечении данных из реляционной базы.

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

Размещение промежуточного программного обеспечения между клиентской частью и базой данных снижает издержки, связанные с перемещением данных и потенциально может повысить производительность системы. Такой подход предотвращает разрастание объема хранилища данных. Централизованное хранение информации, доступной для всех пользователей с помощью приложений, устраняет риск работы с устаревшими данными, так как все пользователи будут обращаться только к тем элементам, которые находятся в центральной БД.

При написании программы шлюза (которая может конвертировать данные из одной системы в другую) CGI позволяет использовать почти любой язык программирования. Способность использовать при написании программы шлюза любой язык, даже язык сценариев, чрезвычайно важна. Самыми популярными языками являются Perl, C и С++. Сценарием традиционно называют программу, которая выполняется с помощью интерпретатора, выполняющего каждую строку программы по мере ее считывания. Последовательность действий при взаимодействии клиента с программой запущенной на Web-сервере выглядит следующим образом.

  •  Браузер принимает введенную пользователем информацию, как правило, с помощью формы.
  •  Браузер помещает введенную пользователем информацию в URL, указывающий имя и местоположение сценария CGI, который требуется ввести в действие.
  •  Браузер подключается к Web серверу и запрашивает URL. Сервер определяет, что URL должен ввести в действие сценарий CGI, и запускает указанный сценарий.
  •  Сценарий CGI выполняется, обрабатывая все передаваемые ему данные.
  •  Сценарий CGI динамически формирует Web-страницу и возвращает результат серверу.
  •  Сервер возвращает результат клиенту.
  •  Браузер отображает результат пользователю.

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

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

Недостатки CGI. Графическая информацию будут представлять обычные картинки в формате JEPG/GIF (или любом другом понятном браузеру клиента формате), что, безусловно, сильно понизит производительность сервера. Также существенным недостатком следует считать то, что объем пересылаемых данных, будет большой, так как,  во-первых, данные будут передаваться в растровом формате, а во-вторых, при каждом запросе придется передавать всю информацию заново. Также будет затруднена навигация по информации, так как HTML не является удобным средством сложного интерфейса пользователя.

Вывод: CGI - технология может быть применена в случае, если объем передаваемых данных не велик, по сравнению с пропускной способностью канала  данных с клиентом; количество запросов не велико, по сравнению с производительностью сервера; данные не требуют сложного интерфейса пользователя для их представления.

Другим способом расширения статической структуры WEB документов является использование "языков сценариев" - JavaScript и включение в HTML документ программ-апплетов на языке программирования Java, которые позволяют размещать внутри документа и видоизменять информацию любого вида.

Технология Java является одним из самых модных средств разработки приложений Web, а использование сценариев направление оформилось в концепцию DHTML (Dynamic HTML).

JAVA – технология

Отдельной позицией в развитии технологии WEB программирования является использование - языка программирования Java и виртуальной Java-машины, встроенной в браузеры. Возможности Java технологии используются, прежде всего, для преодоления негативных особенностей HTTP протокола (в основном для поддержки постоянных TCP-соединений).

Наибольшей мощью в реализации клиентского программного обеспечения обладают аплеты – программы, написанные на языке JAVA компании Sun Microsystems. Java - объектно-ориентированный язык. Наиболее интересным свойством является то, что программа на Java компилируется в псевдокод, который исполняется на виртуальной машине (естественно, реализация такой машины своя для каждой платформы). Java легко и естественно интегрируется с WWW. Создан Java-подобный упрощенный язык Javascript для пользователей, которые не являются программистами. Интерпретатор этого языка встроен в браузер, http://java.sun.com/. В широком смысле Java - это технология программирования, изначально рассчитанная на интеграцию с Web-сервисом, то есть на использование в сетевой среде независимо от платформы, при этом используются два важнейших постулата. Возможно несколько вариантов использования языка Java.

JAVA APPLET – технология, позволяющая встраивать программы написанные на языке JAVA в НTML страницы. Совместное использование HTML и Java-апплетов позволяет создать отличное Web решение. В этом случае HTML применяется для отображения меню и выполнения простых интерфейсных функций, а с помощью Java-апплетов обеспечиваются более сложные компоненты интерфейса программы, а также согласованное отображение диаграмм, графиков и таблиц. В таких приложениях чаще всего реализованы функции агрегирования и детализации, а также вращения (pivoting) данных. За счет широких графических возможностей Java по сравнению с HTML, можно представлять данные в виде диаграмм и изменять их в интерактивном режиме. 

Web-архитектуры быстро вытесняют традиционные клиент/серверные приложения для целого ряда категорий программного обеспечения. Это направление стремительно развивается за счет появления различных Web инструментов на базе HTML- и Java-технологий от известных поставщиков и быстро растущих новых компаний. Происходит переход от инструментальных средств исследования данных, ориентированных на специалистов-аналитиков, к готовым аналитическим приложениям, доступным для более широкого круга пользователей.

Преимущества: Для использования данной технологии на стороне клиента понадобится только веб-браузер с установленной с поддержкой JAVA APPLETs. Таковыми на сегодняшней день являются большинство браузеров. Applet может получать данные с сервера в виде графических примитивов в бинарном формате данных, хранить уже полученные данные, а также в фоновом режиме получать данные, которые наиболее вероятно будут востребованы, что, безусловно, сократит нагрузку на сеть и сервер. Applet может сам преобразовывать данные их векторной формы в растровую, что тоже снизит нагрузку на сервер. Applet - полноценная программа, следовательно, он позволит реализовать интерфейс пользователя любой сложности.

Недостатки: Недостатками JAVA APPLET является необходимость при каждом новом обращении к html странице скачивать весь applet целиком. Также могут возникнуть трудности с версией JAVA virtual machine (JVM) установленной в браузере.

Рис.5.

Вывод: Данная технология может быть применена в случае, если: клиент располагает  веб-браузером с поддержкой нужной версии JVM, запросы производятся интенсивно и требуется реализовать полноценный интерфейс пользователя, объем получаемых данных многократно превосходит объем JAVA APPLET.

Использование виртуальной Java-машины (JVM), на которой должны выполняться (интерпретироваться) Java-программы. Исходные Java-тексты транслируются в коды этой машины. При появлении новой аппаратно-программной платформы в портировании будет нуждаться только Java-машина; все программы, написанные на Java, пойдут без изменений.

Рис.6. Java технологии при реализации АИС

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

В компилируемой среде трудно абстрагироваться от аппаратных особенностей компьютера, как трудно (хотя и можно) реализовать прозрачную динамическую загрузку по сети. С другой стороны, прием объектов извне требует повышенной осторожности при работе с ними, а, значит, и со всеми Java-программами. Принимать необходимые меры безопасности проще всего в интерпретируемой, а не компилируемой среде. Вообще, мобильность, динамизм и безопасность - спутники интерпретатора, а не компилятора. Java-среда идеальное средство разработки интерактивных клиентских приложений.

Стандартный реляционный доступ к данным очень важен для программ на Java, потому что Java-апплеты по природе своей не являются монолитными, самодостаточными программами. Будучи модульными, апплеты должны получать информацию из хранилищ данных, обрабатывать ее и записывать обратно для последующей обработки другими апплетами. Монолитные программы могут себе позволить иметь собственные схемы обработки данных, но Java-апплеты, пересекающие границы операционных систем и компьютерных сетей, нуждаются в опубликовании открытых схем доступа к данным.

Интерфейс JDBC (Java Database Connectivity) является первой попыткой реализации доступа к данным из программ Java, не зависящего от платформы и базы данных. JDBC - это набор реляционных объектов и методов взаимодействия с источниками данных. Программа на языке Java открывает связь с таблицей, создает объект оператор, передает через него операторы SQL системе управления базой данных получает результаты и служебную информацию о них. В типичном случае файлы .class JDBC и апплет/приложение на языке Java находятся на компьютере клиенте. Хотя они могут быть загружены из сети, для минимизации задержек во время выполнения лучше иметь классы JDBC у клиента. Система управления базой данных (CУБД) и источник данных обычно расположены на удаленном сервере. На рис.7 показаны различные варианты реализаций связи JDBC с базой данных.

Рис.7. Варианты реализации связи JDBC с базой данных 

Апплет/приложение взаимодействует с JDBC в системе клиента, драйвер отвечает за обмен информацией с базой данных через сеть.

Классы JDBC находятся в пакете java.sql.*. Все программы Java используют объекты и методы из этого пакета для чтения и записи в источник данных. Программе, использующей JDBC, требуется драйвер к источнику данных, с которым она будет взаимодействовать. Этот драйвер может быть написан на другом языке программирования, или он может являться программой на языке Java, которая общается с сервером, используя удаленный вызов процедур или HTTP. Драйвер JDBC может быть библиотекой на другом, как программа сопряжения ODBC - JDBC, или классом Java, который общается через сеть с сервером базы данных, используя удаленный вызов процедур или HTTP. Допускается, что приложение будет иметь дело с несколькими источниками данных, в т.ч. неоднородными. По этой причине у JDBC есть диспетчер драйверов, обязанностью которых является управление драйверами и предоставление программе списка загруженных драйверов.

В качестве составной части JDBC поставляется драйвер для доступа из JDBC к источникам данных ODBC (Open Database Connectivity), и называется "программа сопряжения JDBC - ODBC". Эта программа сопряжения реализована в виде JdbcOdbc.class и является библиотекой для доступа к драйверу ODBC. Поскольку JDBC конструктивно близок к ODBC, программа сопряжения является несложной надстройкой над JDBC. На внутреннем уровне этот драйвер отображает методы Java в вызовы ODBC и тем самым взаимодействует с любым ODBC - драйвером. Достоинство такой программы сопряжения состоит в том, что JDBC имеет доступ к любым базам данных, поскольку ODBC - драйверы распространены очень широко. В соответствии с правилами Internet JDBC идентифицирует базу данных при помощи URL, который имеет форму:

jdbc:<субпротокол>:<имя, связанное с СУБД или Протоколом>

У баз данных в Internet/intranet "имя" может содержать сетевой URL //<имя хоста>:<порт>/..   <субпротокол> может быть любым именем, которое понимает база данных. Имя субпротокола "odbc" зарезервированно для источников данных формата ODBC. Типичный JDBC URL для базы данных ODBC выглядит следующим образом: jdbc:odbc:<DNS - имя ODBC>;User=<имя пользователя>; PW=<пароль>

Таким образом, взаимодействие с базами данных из Java отличается простотой и гибкостью. В сочетании со своей природной платформо-независимостью, Java предоставляет уникальный инструмент для создания интерактивных распределенных информационно-обучающих систем на базе Internet/Intranet - технологий.

Технология компании Sun – Enterprise Java Beans (EJB). Если перевести определение Sun как можно ближе к оригиналу – то «это модель для создания и развертывания серверных компонентов многократного использования, написанных на языке Java. Компоненты – это заранее разработанные куски программного кода, которые могут быть установлены в работающие прикладные системы». Если классы Java образуют компонентную модель для проектирования приложений в технологии Java, то Java Beans логически развивает эту модель на следующем уровне интеграции создания автоматизированных систем и абстрагирования от процесса программирования – стадии внедрения. По сути, это переход от разработки приложения под заказ из готовых программных компонентов к сборке из готовых ЕJB действующих компонентов. поддержка распределенности, службы именования, транзакций, безопасности, уведомлений-сообщений, долговременного хранения, и т.д.

EJB представляют собой Java-классы специального типа вместе с описателем-паспортом бина и параметрами среды функционирования, которые бин умеет обрабатывать. Описатель бина (Deployment Descriptor) в свою очередь представляет собой XML-файл, в котором содержатся правила, связанные с управлением бином, например, права доступа пользователей к бину. Несколько бинов могут объединяться, образуя приложения, Java-апплеты и новые бины.

По технологии EJB бины размещаются в стручке – контейнере (рис.8) На контейнер возложены обязанности по защите бинов и поддержке их взаимоотношений с внешним миром: регистрация-прописка объектов, обеспечение для них внешних интерфейсов, создание и разрушение реализаций этих объектов, охрана безопасности, управление их состояниями и координация транзакций. В технологии не определено, как конкретно должен быть реализован контейнер. Это могут быть как многопоточные процессы на отдельном сервере, в которых выполняются бины, так и законченные программные приложения, которые можно переносить или распределять между серверами и/или процессами. Клиентские бины обрабатываются внутри виртуальных контейнеров, таких как Web-страницы, формы, составные документы, и т.д.

В технологии определены два основных типа бинов. Session Beans – сеансы клиент-серверного взаимодействия отрабатывают действия клиента, например, запись в базу данных, выполнение вычислений, и т.д. Это окна клиента в мир программных приложений. Они, в свою очередь, также бывают двух типов:

  •  Stateless session – не умеют сохранять свое состояние и существуют только на протяжении текущего сеанса. В случае сбоя сеанс не может быть восстановлен;
  •  Stateful session – сохраняют свое состояние; сеанс может быть восстановлен.

Entity Bean – компоненты объектного представления данных, размещаемых в хранилище. Entity Bean транзакционны и восстанавливаемы. Каждая их реализация имеет уникальную метку, называемую «первичным ключом» (Primary Key) по аналогии с таблицами баз данных. В свою очередь эти бины делятся на две группы по способу определения где, в каком хранилище и как хранятся данные:

Рис. 8 Контейнер Enterprise Java Beans

  •  Bean-Managed Persistence – самостоятельные бины, управление хранением осуществляется на уровне бинов;
  •  Container-Managed Persistence – «опекаемые» бины, чьим хранением заправляет контейнер.

Кроме класса, реализующего функциональность бина, в него входят два обязательных класса, реализующие два типа интерфейсов:

  •  Home Interface – доступ к «домашним» службам бина, таким как начало или отбой для Session Bean или поиск Entity Bean. Этот интерфейс реализует все службы жизненного цикла компонента и позволяет контейнеру управлять и руководить его поведением;
  •  Remote Interface – доступ к бизнес- службам бина.

Клиентские приложения общаются с бинами через контейнер, который открывает наружу оба интерфейса бина: Home и Remote. С помощью первого открывается сеанс или находится нужный бин, а с помощью второго – осуществляется отработка действий клиента в Session или транзакционная механика обработки Entity.

Прикладная бизнес-логика приложения делится на изолированные бизнес- объекты, каждый из которых реализуется в виде EJB. Они устанавливаются на Сервере Приложений или EJB Сервере и реализуют запрашиваемую логику для клиента (локального или удаленного).

Под сервером Приложений в технологии Java понимается программное приложение, обеспечивающее оптимальную среду для выполнения EJB. Сервер Приложений занимается «коммунальным хозяйством» дома – программной системы. На его руках надзор за системными ресурсами, такими как процессы, потоки, память, связь с базами данных, сетевые отношения, выравнивание загрузки распределенных узлов.

Технология EJB не предоставляет готовые программные решения – контейнеры, Сервера Приложений, а только стандарты на такой тип программного обеспечения.

J2EE (Java 2 Enterprise Edition) – стандарт для многозвенных систем уровня предприятия, прикладная платформа, обеспечивающая взаимодействие Enterprise Java Beans, Java Server Pages, апплетов и сервлетов. Серверные компоненты заключены в контейнеры, взаимодействующие с помощью специальных коннекторов.

Заключение

Представлены основные методы и средства реализации динамических web - страниц.

Список литературы

  1.  Практика применения Perl, PHP, Apache, MySQL для активных Web-сайтов. Фролов А., Фролов Г.  Издательство: Русская Редакция» Серия: Интернет-технологии»: 2002. Объем: 576 стр.
  2.  Базы данных в Интернете: Практическое пособие по созданию Web-приложений с базами данных. + CD Автор: Фролов А.В., Фролов Г.В., Русская редакция - 2000, 448 стр.

Вопросы для самопроверки

  1.  Назовите линейки инструментов для создания динамических страниц
  2.  Основные технологии динамического представления страниц сайтов (методы и средства)

Клиент

  Сервер-приложений

Сервер-БД

Web  сервер

Apache,

JBOSS

DBI

Клиент

Oracle

Oracle

Данные

JSP, PHP,

ASP

Perl

Клиент

Web-браузер

  1.  

 

А также другие работы, которые могут Вас заинтересовать

83775. Субъекты налоговых правоотношений: общая характеристика 46.47 KB
  Точное определение субъекта налогового права имеет и практическое значение поскольку позволяет выявить круг лиц вступающих в налоговые отношения и действия которых влекут юридически значимые последствия. Наличие критериев позволяющих относить какоелибо физическое или юридическое лицо к субъектам налогового права дает возможность установить какие лица и их действия подпадают под юрисдикцию законодательства о налогах и сборах. Только субъекты налогового права могут иметь права и нести обязанности предусмотренные НК РФ и принятыми в...
83776. Правовой статус налогоплательщиков, налоговых агентов и налоговых представителей 57.26 KB
  Возникновение обстоятельств влекущих уплату суммы налога или сбора служит юридическим фактом на основании которого субъект налогового права приобретает статус участника налоговых правоотношений. 11 НК РФ указывает что физические лица осуществляющие предпринимательскую деятельность без образования юридического лица но не зарегистрировавшиеся в качестве индивидуальных предпринимателей в нарушение требований гражданского законодательства при исполнении налоговых обязанностей не вправе ссылаться на то что они не являются индивидуальными...
83777. Банки как субъекты налогового права. Иные участники налоговых отношений 49.16 KB
  Иные участники налоговых отношений. 9 НК РФ к участникам налоговых отношений регулируемых законодательством о налогах и сборах фактически они таковыми являются и обладают специальным налоговоправовым статусом. Банки являются субъектами налоговых правоотношений обеспечивающими налоговые изъятия и наделенными в связи с этим соответствующими правами и обязанностями. Участие банков в налоговых отношениях носит более сложный по сравнению с иными участниками налоговых отношений регулируемых законодательством о налогах и сборах характер.
83778. Правовой статус налоговых органов. Их права и обязанности. Обязанности должностных лиц налоговых органов 43.23 KB
  Обязанности должностных лиц налоговых органов. Правовой статус налоговых органов РФ объем и характер прав и обязанностей системы налоговых органов России строго определенных законодательством. Правовое положение налоговых органов обусловлено их местом в системе органов государственного управления страны наделением их над ведомственными полномочиями по отношению к организационно неподчиненным объектам управления по контролю за соблюдением налогового законодательства правильностью их исчисления полнотой и своевременностью внесения в...
83779. Правовой статус таможенных органов, финансовых органов, органов внутренних дел, следственных органов 44.78 KB
  Таможенные органы пользуются правами и несут обязанности налоговых органов по взиманию налогов при перемещении товаров через таможенную границу Таможенного союза в соответствии с таможенным законодательством ТС и законодательством РФ о таможенном деле. При исполнении указанных функций таможенные органы и их должностные лица реализовывают в пределах своей компетенции права и обязанности налоговых органов ст. В ходе проведения контрольных мероприятий таможенные органы вправе: – запрашивать документы и сведения в том числе в форме электронных...
83780. Исполнение обязанности по уплате налогов и сборов. Объекты налогообложения. Принципы определения цены товаров, работ или услуг для целей налогообложения 44.19 KB
  Сущность исполнения налоговой обязанности заключается в уплате налога или сбора. Налоговая обязанность возникает с момента возникновения установленных налоговым законодательством обстоятельств предусматривающих уплату конкретного налога или сбора. Так вот обстоятельствами с которыми налоговое законодательство связывает возникновение налоговой обязанности являются следующие: вопервых это наличие объекта конкретного налога или сбора; вовторых это наличие непосредственной связи между этим объектом и субъектом налогоплательщиком. И...
83781. Исполнение обязанности по уплате налогов и сборов. Основания возникновения, изменения и прекращения обязанности по уплате налогов и соборов; порядок исчисления налогов; взыскание налога за счет денежных средств и иного имущества налогоплательщика 46.34 KB
  Основания возникновения изменения и прекращения обязанности по уплате налогов и соборов; порядок исчисления налогов; взыскание налога за счет денежных средств и иного имущества налогоплательщика. Возникновение обязанности по уплате налогов и сборов связано с несколькими обстоятельствами: с наличием конституционноправовой обязанности по уплате налогов по нормам законодательства о налогах и сборах в которых детализируется реализация обязанности по уплате налогов объектами налогообложения.  Основанием возникновения налогового обязательства...
83782. Изменение срока уплаты налога и сбора: общие условия изменения срока уплаты; обстоятельства исключающие изменение срока уплаты, органы, уполномоченные принимать решение об изменении сроков уплаты 41.84 KB
  Изменением срока уплаты налога и сбора признается перенос установленного срока уплаты налога и сбора на более поздний срок. Срок уплаты налога и или сбора может быть изменен в отношении всей подлежащей уплате суммы налога и или сбора либо ее части с начислением процентов на сумму задолженности. Изменение срока уплаты налога и сбора осуществляется в форме отсрочки рассрочки инвестиционного налогового кредита.
83783. Порядок и условия предоставления отсрочки и рассрочки по уплате налога и сбора. Инвестиционный налоговый кредит. Порядок и условия его предоставления 48.98 KB
  Отсрочка или рассрочка по уплате налога представляет собой изменение срока уплаты на срок не превышающий один год соответственно с единовременной или поэтапной уплатой суммы задолженности. Отсрочка или рассрочка может быть предоставлена заинтересованному лицу если имеются достаточные основания полагать что возможность уплаты указанным лицом такого налога возникнет в течение срока на который предоставляется отсрочка или рассрочка при наличии хотя бы одного из следующих оснований: 1 причинение этому лицу ущерба в результате стихийного...