Встраиваемый сервер

Встраиваемый сервер

Как известно, первые версии сервера InterBase, работающие под операционной системой UNIX и другими, более экзотическими ОС, использовали прямое связывание кода сервера с клиентским приложением. Строго говоря, термины клиент и сервер здесь не очень уместны, так как существует всего один процесс.

Можно провести аналогию с технологией COM (Component Object Model), в которой используется термин "in-process server" (сервер внутри процесса) для обозначения компоненте, загружаемых в адресное пространство клиентского приложения. Такой способ загрузки обеспечивает максимальную эффективность за счет отсутствия накладных расходов, связанных с упаковкой параметров вызова (marshalling), передачей упакованного блока данных в адресное пространство сервера с помощью некоторого транспортного механизма (сетевого протокола или буферов разделяемой памяти) и диспетчеризацией вызова обработчика запроса на серверной стороне.

Архитектура Yaffil Classic дает возможность приложениям использовать внутрипроцессный сервер Yaffil. Такое использование часто называют встраиваемым (embedded), подразумевая легковесность и упрощение тиражирования прикладных систем. По сравнению с традиционным сервером, внутрипроцессный Yaffil не требует запуска дополнительного процесса сервера или инсталляции служб NT. Приложению для работы требуется всего лишь одна библиотека динамической загрузки (DLL). Общий объем исполнимых модулей при этом также сокращается.

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

Встраиваемый сервер может использоваться только в однопоточных приложениях. Существующее ядро InterBase/Firebird/Yaffil не является безопасным для использования из нескольких потоков (thread-safe). Глобальные структуры данных сервера не защищены от одновременного изменения; кроме того, внутри ядра широко используется локальное состояние потока. Таким образом, поведение сервера будет непредсказуемым при вызове функций сервера с нескольких потоков одновременно, а также при использовании соединений, первоначально открытых в другом потоке.

Если вы разрабатываете программы, работающие в среде сервера приложений или Web-сервера, таких? как СОМ+ или IIS, то встраиваемый сервер для вас также непригоден, поскольку подобные среды используют собственное управление потоками.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Сервер новостей

Из книги Linux From Scratch автора Бикманс Герард

Сервер новостей Все списки рассылки linuxfromscratch.org доступны также через сервер NNTP. Все сообщения, посланные в список, копируются в соответствующую группу новостей и наоборот.Адрес сервера новостей –


FTP-сервер

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван

FTP-сервер В настоящее время мы предпочитаем использовать для конфигурации аппаратов Polycom протокол FTP (File Transfer Protocol - протокол передачи файлов)1. Мы бы рекомендовали выбрать его, а не TFTP и для устройств, которые могут работать с обоими протоколами. В системе CentOS при


Сервер INN

Из книги Сетевые средства Linux автора Смит Родерик В.

Сервер INN Среди серверов новостей, предназначенных для выполнения в системе Linux, наиболее популярным является InterNetNews, или INN (http://www.isc.org/products/INN). Пакет INN состоит из нескольких программ, работающих совместно. Основная программа, innd, предназначена для обработки новых статей


Web-сервер

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

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


Web-сервер

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

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


Сервер

Из книги Интернет – легко и просто! автора Александров Егор

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


Выделенный сервер

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Выделенный сервер Под словосочетанием «выделенный сервер» понимается обыкновенный сервер, то есть компьютер, постоянно подключенный к Интернету и сконфигурированный для работы в нем. Слово «выделенный» подчеркивает, что этот сервер ни от кого не зависит и находится в


Виртуальный сервер

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

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


Прокси-сервер

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

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


16.14. Сервер kHTTPd — веб-сервер уровня ядра

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

16.14. Сервер kHTTPd — веб-сервер уровня ядра В операционной системе все процессы можно разделить на два типа: процессы уровня ядра и пользовательские процессы. Процесс уровня ядра запускается и работает очень быстро по сравнению с относительно неповоротливым


26.2. Web-сервер

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

26.2. Web-сервер 26.2.1. Установка Apache и PHP Запустите менеджер Synaptic. В поле Быстрый поиск введите apache. Щелкните правой кнопкой мыши на пакете apache2 и выберите команду Отметить для установки. Менеджер пакетов сообщит вам, что нужно установить дополнительные пакеты (рис. 26.1). Нажмите


Встраиваемый сервер

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Встраиваемый сервер Начиная с Firebird 1.5, пакеты Firebird для Windows включают полную функциональность встраиваемого сервера (клиент и сервер соединяются как динамическая библиотека). Это идентично обычной модели клиент-сервер, за исключением того, что здесь не поддерживается


Сервер

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Сервер Теперь, когда мы рассмотрели клиента, перейдем к серверу. Клиент использовал функцию ConnectAttach() для создания соединения с сервером, а затем использовал функцию MsgSend() для передачи сообщений.Создание каналаПод этим подразумевается, что сервер должен создать канал —


Сервер

Из книги автора

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


6.11. Эхо-сервер TCP (еще раз)

Из книги автора

6.11. Эхо-сервер TCP (еще раз) Теперь мы изменим наш эхо-сервер TCP из раздела 6.8, используя вместо функции select функцию poll. В предыдущей версии сервера, работая с функцией select, мы должны были выделять массив client вместе с набором дескрипторов rset (см. рис. 6.12). С помощью функции poll мы