Сервлет – это небольшая программа
Сервлет – это небольшая программа, которая выполняется на серверной стороне WEB, расширяет функциональные возможности WEB сервера, облегчает доступ к ресурсам и разрешает процессу читать данные из HTTP, запрашивать WEB–сервер и записывать данные из сервера в http, как ответ. Они выполняются в границах адресного пространства WEB–сервера. Сервлеты – альтернатива CGI (Common Gateway Interface), которые базируются на взаимодействии процесса запроса клиента с WEB–сервером. CGI программы разрабатываются на разных ЯП и являются необходимыми при создании отдельного процесса обработки каждого запроса клиента. Сервлеты не требуют больших ресурсов памяти и процессора, описываются на языке JAVA независимо от платформы, размещаются в разных средах и используют библиотеку классов JAVA для получения параметров инициализации, активизации и регистрации событий, а также для доступа к информации и формирования ответа клиенту.
Создание сервлетов в языке Java осуществляется с помощью инструментария Servlet Development Kit (JSDK) с применением следующих шаблонов создания и интеграции:
– WebModule – элемент WEB ресурса, который может разворачиваться в прикладной программе для поддержки функционирования сервлета, использует спецификации сервлетов и серверных страниц. Может содержать в себе файлы с Java классами, которые поддерживают сервлети, beans компоненты с тем же назначением, страницы сервера, статические HTML документы и аплеты;
– WebModuleGroup – шаблон для создания группы взаимодействующих WebModule на WEB сервере и поддержки создания сервлетов.
– Servlet;
– HTML File.
Методы спецификации компонентов. Спецификация – это описание компонента и способа вызова компонентов из другой среды, или из электронной библиотеки, или репозитария. Спецификация включает интерфейс, контракт и нефункциональные свойства.
Интерфейс компонента может быть определен как спецификация точек доступа к компоненту. Клиент получает сервис, который предоставляет компонент, через эти точки доступа.
Так как интерфейс не дает реализацию его операций, а предоставляет их описание имеется возможность изменять реализацию без изменения интерфейса, а также добавлять новые интерфейсы (и реализацию).
Семантика интерфейса может быть представлена с помощью контрактов, в которых определяются глобальные ограничения, которые поддерживает компонент т.е инвариант. Контракт может определять ограничения операций, которые должны быть выполнены клиентом перед вызовом операции (пред–условия), и условия, которые предлагает установить после завершения операции (пост–условия). Вместе пред–условия, инвариант и пост–условия составляют спецификацию поведения компонента.
Каждый интерфейс состоит из набора операций (сервисов, которые он предлагает или требует). С каждой операцией связанный набор пред–условия и пост–условия, зависящие от состояния, которое получает компонент. Контракты и интерфейс связаны между собою, но наполняются по–разному. Интерфейс отражает функциональные свойства и состоит из набора операций для спецификации сервисов, а контракт отражает семантику и описание поведения компонента, зависящее от взаимодействия с другими компонентами.
Нефункциональные свойства задают общие черты поведения компонента, которые не могут быть выражены через стандартные интерфейсы. Примерами нефункциональных свойств являются надежность, живучесть, доступность и др. Все эти свойства можно предоставлять как специальные расширения интерфейса, которые обеспечивают сервисы описания компонента, динамической конфигурации, динамического взаимодействия с другими компонентами или средой.