Клиент-серверные технологии. Файл - серверные и клиент - серверные технологии. Распределение приложения между клиентом и сервером

БД, работающие по технологии ФАЙЛ-СЕРВЕР;

БД, работающие по технологии КЛИЕНТ-СЕРВЕР.

Файл-сервер


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

Для наглядности рассмотрим конкретные примеры. Допустим, Вам необходимо просмотреть отправленные платежные поручения за период с 19 по 25 мая на сумму 5000 рублей. Пользователю необходимо будет запустить на своем компьютере клиентское приложение, работающее в БД с платежными поручениями, и ввести нужные критерии отбора. После чего на Ваш компьютер перекачается с сервера базы данных и загрузится в оперативную память файл, содержащий все документы данного вида за весь период на любые суммы. Запущенное на компьютере пользователя клиентское приложение, работающее с БД, само проведет обработку этой информации (отсортирует их), после чего выдаст ответ (на экране появится список платежных поручений, удовлетворяющих Вашим критериям). После этого Вы выберете нужное платежное поручение и попытаетесь отредактировать (изменить) в нем одно поле - например, дату. Во время редактирования происходит блокировка источника данных, то есть всего файла, содержащего этот документ. Это означает, что файл будет либо совсем не доступен остальным пользователям, либо доступен только в режиме просмотра. Причем подобного рода захват происходит даже не на уровне записи, то есть одного документа, а заблокированным является целый файл - то есть вся таблица, содержащая аналогичные документы. Только после полной обработки этого поля и выхода из режима редактирования данный файл платежных поручений будет разблокирован от захвата пользователем. Если же данные хранятся в более объемных объектах, например, в одном файле содержатся платежные поручения и о поступлении средств, и об отправке, то еще большая часть информации будет не доступна. Вы будете работать с одним полем "дата" в одном документе - остальные сотрудники предприятия будут ждать, пока Вы не закончите.

Недостатки ФАЙЛ-СЕРВЕРНОЙ системы очевидны:

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

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

    Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.

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

    Клиент-сервер

    Обработка запроса одного пользователя:
    - Обращение к БД (SQL-запрос)
    - Передача ответа - результата обработки


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

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

    Таким образом, все вышеперечисленные недостатки ФАЙЛ-СЕРВЕРНОЙ схемы устраняются в архитектуре КЛИЕНТ-СЕРВЕР:

      Массивы данных не перекачиваются по сети от сервера БД на компьютер пользователя. Требования к пропускной способности сети понижаются. Это делает возможным одновременную работу большого числа пользователей с большими объемами данных.

      Обработка данных осуществляется на сервере БД, а не в компьютере пользователей. Что позволяет использовать более простые, а значит, дешевые компьютеры на клиентских местах.

      Блокировки (захвата) данных одним пользователем не происходит.

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

      Рассмотрев отличие ФАЙЛ-СЕРВЕРА от КЛИЕНТ-СЕРВЕРА, можно завершить рассмотрение понятия "хранилище информации". Важно подчеркнуть, что от вида используемой СУБД во многом зависит работа корпоративной системы. Совершенно очевидно, что для крупных предприятий, с большим количеством пользователей, с огромным числом записей в БД, файл-серверная схема совершенно неприемлема. С другой стороны, отличия в базах данных есть и по другим параметрам и возможностям:

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

        по организуемым самой БД технологиям доступа к данным в базе и уровню защиты информации от несанкционированного доступа;

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

        по предоставляемым средствам и методикам анализа информации (данных), которые могут быть применены в информационной системы на основе данной БД;

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

        по быстродействию - времени, затраченному на доступ и обработку информации;

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

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

        по наличию хороших средств создания приложений, использующих данную базу данных и т.д.

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

Настоящая статья адресована как начинающим разработчикам, так и опытным пользователям Интернета. Ее цель — осветить некоторые современные Интернет-технологии, включая те, что появились за последние два-три года.

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

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

Клиентские технологии

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

Клиентские технологии применяются главным образом для повышения интерактивности приложений, например для проверки корректности вводимых данных без дополнительного обращения к серверу, и для создания удобного пользовательского интерфейса. Так, современные веб-браузеры и некоторые почтовые клиенты способны интерпретировать код на скриптовых языках, выполнять Java-аплеты и элементы управления ActiveX, использовать другие дополнения, такие как Macromedia Flash Player, средства просмотра презентаций QuickTime, средства воспроизведения мультимедиаданных.

Код, интерпретируемый браузером

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

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

Java-аплеты

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

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

Элементы управления ActiveX

Некоторые из современных браузеров (в частности, Microsoft Internet Explorer) могут служить контейнерами для элементов управления ActiveX — специальных COM-серверов, выполняющихся в адресном пространстве браузера. Ссылки на такие элементы управления могут содержаться в составе веб-страницы. Сами элементы управления ActiveX представляют собой динамически загружаемые библиотеки, выполняющиеся в адресном пространстве браузера.

С помощью элементов управления ActiveX, как и посредством Java-аплетов, можно реализовать любую функциональность; при этом, в отличие от Java-аплетов, выполнение элементов управления ActiveX в общем случае не подвергается никаким ограничениям на доступ к файлам и иным ресурсам операционной системы и сети, а код, содержащийся в них, выполняется от имени загрузившего их пользователя. Как и Java-аплеты, элементы управления ActiveX могут считывать свои свойства с содержащей их страницы; кроме того, свойства элемента управления ActiveX можно менять динамически из кода на скриптовых языках, содержащихся в составе той же страницы; в том же коде можно обрабатывать события, возникающие в таких элементах управления (данная технология носит название ActiveX scripting).

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

Отметим, что сегодня элементы управления ActiveX применяются главным образом в интрасетях, а не на общедоступных веб-сайтах.

Приложения Macromedia Flash

Еще одна очень популярная веб-технология, основанная на выполнении кода в клиентском приложении, — приложения Macromedia Flash. Macromedia Flash Player, как и виртуальная Java-машина, обладает ограниченными возможностями с точки зрения доступа к ресурсам клиентского компьютера. Так, приложения Flash не имеют доступа к файловой системе, за исключением служебного каталога Macromedia Flash Player, а доступ к внешним устройствам ограничивается микрофонами и видеокамерами. Доступ к сетевым ресурсам ограничивается доменом, с которого было получено данное приложение. Отметим, что, так же как и Java-аплеты и элементы управления ActiveX, приложения Flash могут управляться с помощью кода JavaScript, присутствующего на той же странице. Поскольку Macromedia Flash Player для Microsoft Internet Explorer сам по себе является элементом управления ActiveX, он использует некоторые возможности элементов управления ActiveX для доступа к свойствам приложений Flash из скриптовых языков.

Имеется и ряд других средств, реализованных обычно в виде так называемых модулей расширения (plug-in), представляющих собой исполняемый код. При этом современные браузеры обладают средствами ограничения возможностей, связанных с их загрузкой и выполнением.

Все перечисленные средства расширения функциональности HTML-страниц могут быть использованы и в динамических страницах, генерируемых серверными веб-приложениями, — подобные страницы могут содержать ссылки на элементы управления ActiveX, приложения Flash, аплеты. Но наиболее широкое распространение получили средства создания веб-приложений, которые выполняются под управлением веб-серверов и генерируют динамические HTML-страницы с внедренным в них кодом на скриптовых языках, предназначенным для интерпретации браузером.

Серверные технологии

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

Скрипты и исполняемые файлы

Одной из первых технологий создания веб-приложений, выполняющихся на серверах, была Common Gateway Interface (CGI). Она позволяла создавать и выполнять серверные приложения, обращение к которым происходит посредством указания их имени (а иногда — и параметров) в URL. Входной информацией для таких приложений служит содержимое HTTP-заголовка либо тело запроса, в зависимости от применяемого протокола. CGI-приложения — это консольные приложения, которые генерируют HTML-код, передаваемый браузеру. Подобные приложения могут представлять собой код на скриптовых языках, интерпретируемый на сервере, либо исполняемый файл, который можно создать с помощью практически любого средства разработки, генерирующего консольные приложения для операционной системы, под управлением которой функционирует веб-сервер.

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

Библиотеки, загружаемые в адресное пространство веб-сервера

Проблему ограниченной производительности веб-приложений, которые выполняются в отдельном адресном пространстве, можно решить, создав приложение в виде библиотеки, загружающейся в адресное пространство веб-сервера и при необходимости остающейся там для обработки последующих запросов от других клиентов (понятно, что в этом случае веб-сервер должен поддерживать загрузку таких библиотек). Подобные приложения для Microsoft Internet Information Servise носят название ISAPI (Internet Server Application Program Interface), а такие библиотеки для весьма популярного веб-сервера Apache называются Apache DSO (Dynamic Shared Objects). Означенные технологии существуют уже довольно продолжительное время, но все еще весьма популярны.

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

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

Веб-страницы с фрагментами серверного кода

ASP и ASP .NET

Очередным шагом в развитии технологий создания Интернет-приложений стало появление средств, позволяющих отделить задачи веб-дизайна от задач, связанных с реализацией функциональности приложений. Первой подобной технологией стала Active Server Pages (ASP). Основная идея ASP заключается в создании веб-страниц с внедренными в них фрагментами кода на скриптовых языках. Однако, в отличие от рассмотренных выше средств применения скриптовых языков для расширения функциональности браузеров, указанные фрагменты кода интерпретируются не браузером, а предназначенной для этого ISAPI-библиотекой, входящей в состав Internet Information Server. Внедренный фрагмент кода замещается результатом его выполнения, а полученная таким образом динамическая страница передается в пользовательский браузер.

Одной из наиболее популярных сегодня технологий, реализующих идею создания веб-страниц с фрагментами кода, является ASP .NET — ключевая в архитектуре Microsoft .NET Framework. Основное отличие этой технологии от ASP в плане архитектуры приложений заключается в том, что код, присутствующий на веб-странице, не интерпретируется, а компилируется и кэшируется, что способствует повышению производительности приложений. Кроме того, указанная технология позволяет создавать так называемые серверные компоненты, возвращающие в браузер HTML-код с интерпретируемыми браузером фрагментами кода на скриптовых языках и способные предоставить более удобный пользовательский интерфейс, нежели обычный HTML-код. Важными особенностями серверных компонентов ASP .NET являются возможность обработки на сервере событий, возникающих в клиентском приложении, и возможность генерировать HTML-, WML- и CHTML-код в зависимости от типа клиента и поддерживаемых им языков разметки и протоколов передачи данных.

Технология ASP .NET 2.0, представляющая собой дальнейшее развитие технологии ASP .NET, станет доступной разработчикам в течение этого года. С ее помощью разработчики получат доступ к расширенному набору готовых блоков, шаблонов страниц, прикладных интерфейсов, средств упрощения настройки внешнего вида приложений, а также к средствам персонализации, к инструментам для поддержки локализации приложений, к утилитам развертывания, позволяющим распространять приложения без предоставления исходного кода, и к компонентам для создания порталов, доступа к защищенной информации, для удобного отображения данных, что позволит создавать веб-приложения, близкие в плане удобства и пользовательского интерфейса к Windows-приложениям.

Java Server Pages

Наряду с ASP и ASP .NET существуют и другие технологии, реализующие идею размещения внутри веб-страницы кода, выполняемого веб-сервером. Наиболее известной из них сегодня является технология JSP (Java Server Pages), основная идея которой — однократная компиляция Java-кода (сервлета) при первом обращении к нему, выполнение методов этого сервлета и помещение результатов выполнения этих методов в набор данных, отправляемых в браузер.

Веб-приложения, основанные на применении веб-страниц с внедренными в них фрагментами серверного кода

Говоря о технологии JSP, нельзя не отметить относительно новую спецификацию Sun под названием Java Server Faces. Эта спецификация описывает правила создания веб-приложений с удобным пользовательским интерфейсом (схожим по функциональности с интерфейсом Windows-приложений) и разработки серверных компонентов, реализующих подобный интерфейс. Средства разработки Java-приложений, поддерживающие указанную спецификацию, в идеале должны позволить создавать веб-приложения, основанные на J2EE, примерно с той же скоростью и степенью удобства, что и средства разработки.NET-приложений.

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

Применение инфраструктурного ПО общего назначения

Чем выше посещаемость сайта и больше объем обрабатываемых им данных, тем более строгими будут требования к производительности и масштабируемости веб-приложений. Чем более серьезные задачи решаются с помощью веб-приложения, тем выше требования к его надежности и безопасности. Чаще всего для удовлетворения этих требований бизнес-логика, реализованная в веб-приложении, а также службы обработки данных и реализации транзакций отделяются от пользовательского интерфейса приложений и реализуются в виде отдельных приложений, библиотек, сервлетов, которые в общем случае называются бизнес-объектами. Сегодня в подавляющем большинстве современных корпоративных решений применяются либо серверы, поддерживающие спецификацию Java2 Enterprise Edition, либо серверы, базирующиеся на применении служб серверных версий Windows, технологиях COM и Microsoft .NET.

Бизнес-объекты могут обладать различной функциональностью. Как правило, они предоставляют доступ к данным, управляемым какой-либо серверной СУБД, нередко — доступ к данным корпоративных информационных систем. Довольно часто бизнес-объекты реализуют какую-либо часть корпоративной информационной системы, создание которой изначально предполагало включение внешнего веб-сервера в качестве составной части корпоративной информационной системы (например, в качестве одного из источников данных для CRM-приложения). Готовые CRM- и ERP-системы ведущих производителей, таких как SAP, PeopleSoft, Siebel, обычно содержат в своем составе подобные бизнес-объекты, а зачастую — и обращающиеся к ним готовые веб-приложения, например порталы для клиентов и удаленных пользователей, приложения для осуществления электронной коммерции и иные приложения.

Веб-службы

информационным системам многих предприятий уже не один десяток лет. А поскольку предприятия нередко начинали свое развитие со стихийной автоматизации отдельных видов деятельности, то сегодня многие из них сталкиваются с проблемой интеграции приложений, создававшихся в разные годы для разных платформ. Одним из средств подобной интеграции является технология веб-служб, использующая для обмена данными стандартный протокол HTTP. Создавать веб-службы можно и в виде исполняемых файлов, и в виде библиотек, и в виде интерпретируемого кода; существуют также средства представления бизнес-объектов, основанных на различных технологиях, в виде веб-служб (эту технологию сегодня поддерживают все ведущие производители офисных продуктов), средств разработки, СУБД, серверов приложений и операционных систем. Методы веб-служб можно вызывать из обычных приложений, веб-приложений, других веб-служб. В последнее время наблюдается массовое появление приложений, использующих веб-службы, в том числе предназначенных для конечных пользователей (к таким приложениям, например, относятся приложения семейства Microsoft Office System, позволяющие при помощи веб-служб пользоваться данными словарей, энциклопедий, систем онлайнового перевода, служб онлайнового заказа товаров, — см., например, статью «Интернет и офисные приложения», № 10’2004).

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

В дальнейших уроках я планирую рассказывать о создании информационных сетей с использованием:

  • контроллеров локальной сети Ethernet;
  • WiFi модемов;
  • GSM модемов;
  • Bluetooth модемов.

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

Я не претендую на полное освещение этой объемной темы. Я хочу дать минимум информации, необходимой для понимания последующих уроков.

Технология клиент-сервер.

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

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

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

Итак, в общих чертах система клиент-сервер выглядит так:

  • Есть компьютеры, контроллеры Ардуино, планшеты, сотовые телефоны и другие интеллектуальные устройства.
  • Все они включены в общую вычислительную сеть. Проводную или беспроводную - не важно. Они могут быть подключены даже к разным сетям, связанным между собой через глобальную сеть, например через интернет.
  • На некоторых устройствах установлены программы-серверы. Эти устройства называются серверами, должны быть постоянно включены, и их задача обрабатывать запросы от клиентов.
  • На других устройствах работают программы-клиенты. Такие устройства называются клиентами, они инициируют запросы серверам. Их включают только в моменты, когда необходимо обратиться к серверам.

Например, если вы хотите с сотового телефона по WiFi включать утюг, то утюг будет сервером, а телефон – клиентом. Утюг должен быть постоянно включен в розетку, а управляющую программу на телефоне вы будете запускать по необходимости. Если к WiFi сети утюга подключить компьютер, то вы сможете управлять утюгом и с помощью компьютера. Это будет еще один клиент. WiFi микроволновая печь, добавленная в систему, будет сервером. И так систему можно расширять бесконечно.

Передача данных пакетами.

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

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

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

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

Адресация пакетов.

На эту тему в интернете есть много подробной информации. Я хочу рассказать как можно ближе к практике.

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

  • IP-адрес устройства;
  • маску подсети;
  • доменное имя;
  • IP-адрес сетевого шлюза;
  • MAC-адрес;
  • порт.

Давайте разбираться, что это такое.

IP-адреса.

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

Каждой точке подключения устройства к сети присваивается уникальный номер – IP-адрес (Internet Protocol Address). IP-адрес присваивается не устройству (компьютеру), а интерфейсу подключения. В принципе устройства могут иметь несколько точек подключения, а значит несколько различных IP-адресов.

IP-адрес это 32х разрядное число или 4 байта. Для наглядности принято записывать его в виде 4 десятичных чисел от 0 до 255, разделенных точками. Например, IP-адрес моего сервера 31.31.196.216.

Для того чтобы сетевому оборудованию было проще выстраивать маршрут доставки пакетов в формат IP-адреса введена логическая адресация. IP-адрес разбит на 2 логических поля: номер сети и номер узла. Размеры этих полей зависят от значения первого (старшего) октета IP-адреса и разбиты на 5 групп – классов. Это так называемый метод классовой маршрутизации.

Класс Старший октет Формат

(С-сеть,
У-узел)

Начальный адрес Конечный адрес Количество сетей Количество узлов
A 0 С.У.У.У 0.0.0.0 127.255.255.255 128 16777216
B 10 С.С.У.У 128.0.0.0 191.255.255.255 16384 65534
C 110 С.С.С.У 192.0.0.0 223.255.255.255 2097152 254
D 1110 Групповой адрес 224.0.0.0 239.255.255.255 - 2 28
E 1111 Резерв 240.0.0.0 255.255.255.255 - 2 27

Класс A предназначен для применения в больших сетях. Класс B используется в сетях средних размеров. Класс C предназначен для сетей с небольшим числом узлов. Класс D используется для обращения к группам узлов, а адреса класса E зарезервированы.

Существуют ограничения на выбор IP-адресов. Я посчитал главными для нас следующие:

  • Адрес 127.0.0.1 называется loopback и используется для тестирования программ в пределах одного устройства. Данные посланы по этому адресу не передаются по сети, а возвращаются программе верхнего уровня, как принятые.
  • “Серые” адреса – это IP-адреса разрешенные только для устройств, работающих в локальных сетях без выхода в Интернет. Эти адреса никогда не обрабатываются маршрутизаторами. Их используют в локальных сетях.
    • Класс A: 10.0.0.0 – 10.255.255.255
    • Класс B: 172.16.0.0 – 172.31.255.255
    • Класс C: 192.168.0.0 – 192.168.255.255
  • Если поле номера сети содержит все 0, то это означает, что узел принадлежит той же самой сети, что и узел, который отправил пакет.

Маски подсетей.

При классовом методе маршрутизации число битов адресов сети и узла в IP-адресе задается типом класса. А классов всего 5, реально используется 3. Поэтому метод классовой маршрутизации в большинстве случаях не позволяет оптимально выбрать размер сети. Что приводит к неэкономному использованию пространства IP-адресов.

В 1993 году был введен бесклассовый способ маршрутизации, который в данный момент является основным. Он позволяет гибко, а значит и рационально выбирать требуемое количество узлов сети. В этом методе адресации применяются маски подсети переменной длины.

Сетевому узлу присваивается не только IP-адрес, но и маска подсети. Она имеет такой же размер, как и IP-адрес, 32 бит. Маска подсети и определяет, какая часть IP-адреса относится к сети, а какая к узлу.

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

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

По сути, маска позволяет одну большую сеть разбить на несколько подсетей. Размер любой подсети (число IP-адресов) должен быть кратным степени числа 2. Т.е. 4, 8, 16 и т.д. Это условие определяется тем, что биты полей адресов сети и узлов должны идти подряд. Нельзя задать, например, 5 битов - адрес сети, затем 8 битов – адрес узла, а затем опять биты адресации сети.

Пример формы записи сети с четырьмя узлами выглядит так:

Сеть 31.34.196.32, маска 255.255.255.252

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

Сеть 31.34.196.32/30

/30 это число единиц в маске подсети. В данном примере остается два нуля, что соответствует 2 разрядам адреса узла или четырем узлам.

Размер сети (количество узлов) Длинная маска Короткая маска
4 255.255.255.252 /30
8 255.255.255.248 /29
16 255.255.255.240 /28
32 255.255.255.224 /27
64 255.255.255.192 /26
128 255.255.255.128 /25
256 255.255.255.0 /24
  • Последнее число первого адреса подсети должно делиться без остатка на размер сети.
  • Первый и последний адреса подсети – служебные, их использовать нельзя.

Доменное имя.

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

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

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

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

Но это все не так важно. Для нас главное, что любой клиент или сервер может обратиться к DNS-серверу с DNS-запросом, т.е. с запросом о соответствии IP-адрес – доменное имя или наоборот доменное имя – IP-адрес. Если DNS-сервер обладает информацией о соответствии IP-адреса и домена, то он отвечает. Если не знает, то ищет информацию на других DNS-серверах и после этого сообщает клиенту.

Сетевые шлюзы.

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

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

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

В общем случае использование сетевого шлюза выглядит так:

  • Допустим у нас система из нескольких плат Ардуино, подключенных через локальную сеть Ethernet к маршрутизатору, который в свою очередь подключен к Интернету.
  • В локальной сети мы используем ”серые” IP-адреса (выше об этом написано), которые не допускают выхода в Интернет. У маршрутизатора два интерфейса: нашей локальной сети с “серым” IP-адресом и интерфейс для подключения к Интернету с ”белым” адресом.
  • В конфигурации узла мы указываем адрес шлюза, т.е. “белый” IP-адрес интерфейса маршрутизатора, подключенного к Интернету.
  • Теперь, если маршрутизатор получает от устройства с ”серым” адресом пакет с запросом на получение информации из Интернета, он заменяет в заголовке пакета ”серый” адрес на свой ”белый” и отправляет его в глобальную сеть. Получив из Интернета ответ, он заменяет ”белый” адрес на запомненный при запросе ”серый” и передает пакет локальному устройству.

MAC-адрес.

MAC-адрес это уникальный идентификатор устройств локальной сети. Как правило, он записывается на заводе-производителе оборудования в постоянную память устройства.

Адрес состоит из 6 байтов. Принято записывать его в шестнадцатеричной системе исчисления в следующих форматах: c4-0b-cb-8b-c3-3a или c4:0b:cb:8b:c3:3a. Первые три байта это уникальный идентификатор организации-производителя. Остальные байты называются ”Номер интерфейса” и их значение является уникальным для каждого конкретного устройства.

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

Порты.

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

Порт используется для определения процесса приемника пакета в пределах одного IP-адреса.

Под номер порта выделено 16 бит, что соответствует числам от 0 до 65535. Первые 1024 портов зарезервированы под стандартные процессы, такие как почта, веб-сайты и т.п. В своих приложениях их лучше не использовать.

Статические и динамические IP-адреса. Протокол DHCP.

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

Проблема решается применением динамических IP-адресов. Динамические адреса выдаются клиентам на ограниченное время, пока они непрерывно находятся в сети. Распределение динамических адресов происходит под управлением протокола DHCP.

DHCP – это сетевой протокол, позволяющий устройствам автоматически получать IP-адреса и другие параметры, необходимые для работы в сети.

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

Просмотр параметров сетевых устройств с помощь командной строки.

Существует много способов, как узнать IP-адрес или MAC-адрес своей сетевой карты. Самый простой – это использовать CMD команды операционной системы. Я покажу, как это делать на примере Windows 7.

В папке Windows\System32 находится файл cmd.exe. Это интерпретатор командной строки. С помощь него можно получать системную информацию и конфигурировать систему.

Открываем окно выполнить. Для этого выполняем меню Пуск -> Выполнить или нажимаем комбинацию клавиш Win + R .

Набираем cmd и нажимаем OK или Enter. Появляется окно интерпретатора команд.

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

Прежде всего, это команда ipconfig , которая отображает настройки сетевых плат.

Подробный вариант ipconfig/all .

Только MAC-адреса показывает команда getmac .

Таблицу соответствия IP и MAC адресов (ARP таблицу) показывает команда arp –a .

Проверить связь с сетевым устройством можно командой ping .

  • ping доменное имя
  • ping IP-адрес

Сервер моего сайта отвечает.

Основные сетевые протоколы.

Я коротко расскажу о протоколах, необходимых нам в дальнейших уроках.

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

Протокол IP.

Inernet Protocol (межсетевой протокол) доставляет пакеты данных от одного сетевого устройства к другому. IP протокол объединяет локальные сети в единую глобальную сеть, обеспечивая передачу пакетов информации между любыми устройствами сетей. Из представленных в этом уроке протоколов IP находится на самом низком уровне. Все остальные протоколы используют его.

IP протокол работает без установления соединений. Он просто пытается доставить пакет по указанному IP-адресу.

IP обрабатывает каждый пакет данных, как отдельную независимую единицу, не связанную с другими пакетами. Невозможно используя только IP протокол, передать значительный объем связанных данных. Например, в сетях Ethernet максимальный объем данных одного IP-пакета составляет всего 1500 байт.

В протоколе IP нет механизмов, позволяющих контролировать достоверность конечных данных. Контрольные коды используются только для защиты целостности данных заголовка. Т.е. IP не гарантирует, что данные в полученном пакете будут правильными.

Если во время доставки пакета произошла ошибка, и пакет был потерян, то IP не пытается заново послать пакет. Т.е. IP не гарантирует, что пакет будет доставлен.

Коротко о протоколе IP можно сказать, что:

  • он доставляет небольшие (не более 1500 байт) отдельные пакеты данных между IP-адресами;
  • он не гарантирует, что доставленные данные будут правильными;

Протокол TCP.

Transmission Control Protocol (протокол управления передачей) основной протокол передачи данных Интернета. Он использует способность IP протокола доставлять информацию от одного узла другому. Но в отличии от IP он:

  • Позволяет переносить большие объемы информации. Разделение данных на пакеты и “склеивание” данных на приемной стороне обеспечивает TCP.
  • Данные передаются с предварительной установкой соединения.
  • Производит контроль целостности данных.
  • В случае потери данных инициирует повторные запросы потерянных пакетов, устраняет дублирование при получении копий одного пакета.

По сути, протокол TCP снимает все проблемы доставки данных. Если есть возможность, он их доставит. Не случайно это основной протокол передачи данных в сетях. Часто используют терминологию TCP/IP сети.

Протокол UDP.

User Datagram Protokol (протокол пользовательских датаграмм) простой протокол для передачи данных без установления соединения. Данные отправляются в одном направлении без проверки готовности приемника и без подтверждения доставки. Объем данных пакета может достигать 64 кБайт, но на практике многие сети поддерживают размер данных только 1500 байт.

Главное достоинство этого протокола – простата и высокая скорость передачи. Часто применяется в приложениях критичных к скорости доставки данных, таких как видеопотоки. В подобных задачах предпочтительнее потерять несколько пакетов, чем ждать отставшие.

Протоколу UDP свойственно:

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

Протокол HTTP.

Скорее всего, об этом протоколе в следующих уроках буду писать подробнее. А сейчас коротко скажу, что это протокол передачи гипертекста (Hyper Text Transfer Protocol). Он используется для получения информации с веб-сайтов. При этом веб-браузер выступает в роли клиента, а сетевое устройство в качестве веб-сервера.

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

Клиентские технологии

Представление и отображение данных должно осуществляться в соответствии с определенным набором правил, в качестве которого используют html (Hypertext Markup Language). Html по сути не является языком программирования, поскольку не выполняет никаких функций по обработке материала, только по его оформлению и представлению. Теги этого метаязыка помогают получать в окне браузера информацию именно в том виде, в каком желает вебмастер. Отметим, что гипертекст разработан в 1989 году и изначально создавался с целью обмена различной документацией, позволяя браузерам отличать, например, заголовки и подзаголовки от рисунков и текста.

Интернет технологии развивались, html радикально изменился, с учетом новых возможностей появился "усовершенствованный" xhtml (Extensible Hypertext Markup Language) - язык расширенной разметки гипертекста для веб страниц, по возможностям сопоставимый с html и созданный на базе xml.

Разметка страниц со временем усложнилась, и ее стало трудно поддерживать. В связи с этим потребовалось отделить структуру документа от его визуального представления; появились каскадные таблицы стилей (Cascading Style Sheets - CSS). Впервые таблицы стилей в качестве рекомендаций W3C приняты в 1996 году и с тех пор широко используются для верстки сайтов. CSS верстка веб сайтов позволяет, например, одинаково оформить множество элементов, исправив всего одну строку в таблице стилей.

Конечно, оптимальные результаты верстки web сайта могут быть получены только путем умелого сочетания html-кода и каскадной таблицы стилей.

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

JavaScript - это облегченный, интерпретируемый язык программирования с объектно-ориентированными возможностями. Универсальное ядро языка встроено в различные веб-браузеры. Клиентская версия JavaScript позволяет включать в веб-страницы исполняемое содержимое, то есть web страница не обязаны быть статическим html-кодом, а может включать в себя программы, взаимодействующие с пользователем, управляющие браузером и динамически создающие html.

JavaScript развивался много лет, в течение которых выпущено несколько версий этого языка. Например, Microsoft издала версии под именем Jscript. В свою очередь ассоциация Ecma, деятельность которой посвящена стандартизации информационных и коммуникационных технологий, опубликовала три версии, стандартизирующие JavaScript под названием EcmaScript. Последняя и определила стандартную версию базового языка JavaScript, а World Wide Web Consortiums опубликовала рекомендацию DOM, отражающую возможности браузеров по поддержке объектной модели.

Web - браузеры позволяют просматривать страницы сети Интернет.

Как показывает практика, различные браузеры показывают конкретную страницу по-разному. Отображение страниц зависит от работы алгоритмов коррекции, встроенных в браузер, а в разных браузерах эти алгоритмы различны. Internet Explorer и Netscape Navigator, работая под Windows, отображают страницы примерно одинаково, с различиями лишь в таких деталях, как поля и отступы. Однако другие браузеры могут серьезно исказить некоторые страницы. Разработчики с каждой новой версией совершенствуют свои продукты, поэтому чем новее версия браузера, тем меньше он искажает.

Серверные технологии

В области программирования для сети Интернет PHP - один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Perl - высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию. Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе работа с регулярными выражениями, встроенная в синтаксис. Перл унаследовал много свойств от языков Си, AWK, скриптовых языков командных оболочек UNIX.

JSP - одна из высокопроизводительных технологий, так как весь код страницы транслируется в java-код сервлета с помощью компилятора JSP страниц Jasper, и затем компилируется в байт-код виртуальной машины java (JVM). Контейнеры сервлетов, способные исполнять JSP страницы, написаны на языке Java, который может работать на различных платформах. JSP страницы загружаются на сервере и управляются из структуры специального Java server packet, который называется Java EE Web Application, в большинстве своём упакованные в файловые архивы.war и.ear. Выгода, которую дает технология JSP в сравнении с другими веб-технологиями заключается в том, что JSP является платформонезависимой, переносимой и легко расширяемой технологией для разработки веб-приложений.

ASP.NET - технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP. ASP.NET внешне во многом сохраняет схожесть с более старой технологией ASP, что позволяет разработчикам относительно легко перейти на ASP.NET. В то же время внутреннее устройство ASP.NET существенно отличается от ASP, поскольку она основана на платформе.NET и, следовательно, использует все новые возможности, предоставляемые этой платформой.

ASP.NET не является платформой.

IIS - проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.

Основным компонентом IIS является веб-сервер, который позволяет размещать в Интернете сайты. IIS поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

хорошую работу на сайт">

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

Размещено на http://www.allbest.ru/

[Введите текст]

Серверы. Основные понятия серверов

Модель клиент-сервер

Классификация стандартных серверов

Список использованной литературы

Серверы. Основные понятия серверов

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

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

2. Сервер (программное обеспечение) - программное обеспечение, принимающее запросы от клиентов (в архитектуре клиент-сервер).

3. Сервер (аппаратное обеспечение) - компьютер (или специальное компьютерное оборудование) выделенный и/или специализированный для выполнения определенных сервисных функций.

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

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

Модель клиент-сервер

Понятия сервер и клиент и закрепленные за ними роли образуют программную концепцию «клиент-сервер». Модель клиент-сервер - это еще один подход к структурированию Операционной системы (ОС). В широком смысле модель клиент-сервер предполагает наличие программного компонента - потребителя какого-либо сервиса - клиента, и программного компонента - поставщика этого сервиса - сервера. Взаимодействие между клиентом и сервером стандартизуется, так что сервер может обслуживать клиентов, реализованных различными способами и, может быть, разными производителями. При этом главным требованием является то, чтобы они запрашивали услуги сервера понятным ему способом. Инициатором обмена обычно является клиент, который посылает запрос на обслуживание серверу, находящемуся в состоянии ожидания запроса. Один и тот же программный компонент может быть клиентом по отношению к одному виду услуг, и сервером для другого вида услуг. Модель клиент-сервер является скорее удобным концептуальным средством ясного представления функций того или иного программного элемента в той или иной ситуации, нежели технологией. Эта модель успешно применяется не только при построении ОС, но и на всех уровнях программного обеспечения, и имеет в некоторых случаях более узкий, специфический смысл, сохраняя, естественно, при этом все свои общие черты. Применительно к структурированию ОС идея состоит в разбиении ее на несколько процессов - серверов, каждый из которых выполняет отдельный набор сервисных функций - например, управление памятью, создание или планирование процессов. Каждый сервер выполняется в пользовательском режиме. Клиент, которым может быть либо другой компонент ОС, либо прикладная программа, запрашивает сервис, посылая сообщение на сервер. Ядро ОС (называемое здесь микроядром), работая в привилегированном режиме, доставляет сообщение нужному серверу, сервер выполняет операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения. Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы межпроцессного взаимодействия (разделяемая память, пайп, сокет, и т. п.) и ожидает запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например, COM-порт) или сетевые соединения.

Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например, протоколы Интернета определяются в документах RFC.

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

Классификация стандартных серверов

Как правило, каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг, которые они предоставляют.

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

inetd от англ. internet super-server daemon демон сервисов IP - стандартное средство UNIX-систем - программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).

RPC от англ. Remote Procedure Call удаленный вызов процедур - система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный Sun Microsystems для своей операционной системы (SunOS, Solaris; Unix-система), в настоящее время используетстся как в большинстве Unix-систем, так и в Windows.

Прикладные клиент-серверные технологии Windows:

(D-)COM (англ. (Distributed) Component Object Model - модель составных объектов) и др. - Позволяет одним программам выполнять операции над объектами данных используя процедуры других программ. Изначально данная технология предназначена для их «внедрения и связывания объектов» (OLE англ. Object Linking and Embedding), но, в общем, позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера, DCOM доступна удаленно через RPC.

Active-X - Расширение COM и DCOM для создания мультимедиа-приложений.

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

Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM).

Сетевые службы обеспечивают функционирование сети, например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций, DNS - трансляцию имен в адреса и наоборот.

Серверы туннелирования (например, различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью, недоступной роутингом.

Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа.

Информационные службы. К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP. Большинство информационных служб работают через универсальные серверы.

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

Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.

Прежде всего, это серверы передачи файлов по заказу, по протоколам FTP, TFTP, SFTP и HTTP. Протокол HTTP ориентирован на передачу текстовых файлов, но серверы могут отдавать в качестве запрошенных файлов и произвольные данные, например, динамически созданные веб-страницы, картинки, музыку и т. п.

Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.

Недостатки файл-серверной системы:

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

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

Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.

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

Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа - LDAP (англ. Lightweight Directory Access Protocol - облегчённый протокол доступа к спискам).

Для доступа к серверам баз данных единого протокола не существует, однако все серверы баз данных объединяет использование единых правил формирования запросов - язык SQL (англ. Structured Query Language - язык структурированных запросов).

Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно - текстовые).

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

Для организации конференций существует серверы новостей, работающие по протоколу NNTP.

Для обмена сообщениями в реальном времени существуют серверы чатов, стандартный чат-сервер работает по протоколу IRC - распределенный чат для интернета.

Существует большое количество других чат-протоколов, например ICQ или Jabber.

Серверы удаленного доступа

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

Для обеспечения доступа к командной строке служат серверы telnet, RSH, SSH.

Графический интерфейс для Unix-систем - X Window System, имеет встроенный сервер удаленного доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удаленного доступа к интерфейсу Х-Window неправильно называют «X-Server» (этим термином в X-Window называется видеодрайвер).

Стандартный сервер удаленного доступа к графическому интерфейсу Microsoft Windows называется терминальный сервер.

Некоторую разновидность управления (точнее мониторинга и конфигурирования), также, предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер.

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

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

Примером серверных решений можно привести Unix-системы, изначально предназначенные для реализации серверной инфраструктуры, или серверные модификации платформы Microsoft Windows.

Также необходимо выделить пакеты серверов и сопутствующих программ (например, комплект веб-сервер/PHP/MySQL для быстрой развертки хостинга) для установки под Windows (для Unix свойственна модульная или «пакетная» установка каждого компонента, поэтому такие решения редки).

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

Серверные решения служат для упрощения организации базовой ИТ-инфраструктуры компаний, то есть для оперативного построения полноценной сети в компании, в том числе и «с нуля». Компоновка отдельных серверных приложений в решение подразумевает, что решение предназначено для выполнения большинства типовых задач; при этом значительно снижается сложность развертывания и общая стоимость владения ИТ-инфраструктурой, построенной на таких решениях.

Прокси-сервер (от англ. proxy - «представитель, уполномоченный») служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кеша (в случаях, если прокси имеет свой кеш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак.

Вывод ы

сервер формат п рокси windows

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

Список использ ованной литературы

1. Дрога А.А., Жукова П.Н., Копонев Д.Н., Лукьянов Д.Б., Прокопенко А.Н. Информатика и математика. - Минск, 2008.

2. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика - 3-е изд. - М.: «Вильямс», 2003.

3. Кузнецов С.Д. Основы баз данных. - 1-е изд. - М.: «Интернет- университет информационных технологий - ИНТУИТ.ру», 2005.

4. Скотт В. Эмблер, Прамодкумар Дж. Садаладж. Рефакторинг баз данных: эволюционное проектирование - М.: «Вильямс», 2007.

5. А.Н. Морозевич, А.М. Зеневич Информатика. Минск, 2008.

6.Титоренко Г.А. Информационные технологии управления. М., Юнити: 2002.

7. Мельников В. Защита информации в компьютерных системах. - М.: Финансы и статистика, Электронинформ, 1997.

Размещено на Allbest.ru

...

Подобные документы

    Основные понятия серверов. Модель клиент-сервер. Классификация стандартных серверов. Недостатки файл-серверной системы. Криптографические методы защиты информации. Серверы удаленного доступа. Методы и средства обеспечения безопасности информации.

    контрольная работа , добавлен 13.12.2010

    Общие сведения об операционной системе Linux. Анализ информации о серверах. Основные прикладные клиент-серверные технологии Windows. Сведения о SQL-сервере. Общая информация о MySQL–сервере. Установка и специфика конфигурирования MYSQL-сервера на LINUX.

    курсовая работа , добавлен 16.12.2015

    Анализ архитектуры информационной системы, в структуру которой входят системы файл-сервер и клиент-сервер. Сравнение языков запросов SQL и QBE. Принципы разработки приложений архитектуры клиент-сервер при помощи структурированного языка запросов SQL.

    курсовая работа , добавлен 11.04.2010

    Архитектура "клиент-сервер". Системный анализ базы данных "Газета объявлений", ее инфологическое и физическое проектирование. Программирование на стороне SQL-сервера. Разработка клиентской части в Borland C++ Builder 6.0 и с помощью Web-технологий.

    курсовая работа , добавлен 07.07.2013

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

    дипломная работа , добавлен 08.11.2010

    Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.

    курсовая работа , добавлен 18.01.2017

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

    курсовая работа , добавлен 24.08.2012

    Проектирование и разработка базы данных в РСУБД Firebird. Последовательность создания приложения, основанного на клиент-серверной технологии и работающего в операционной системе Windows. Хранимые процедуры и триггеры. Доступ к сети и транзакции.

    курсовая работа , добавлен 27.07.2013

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

    курсовая работа , добавлен 28.07.2013

    Архитектура "клиент-сервер". Параллельная обработка данных в многопроцессорных системах. Модернизация устаревших информационных систем. Характерные черты современных серверных СУБД. Наиболее популярные серверные СУБД. Распределенные запросы и транзакции.