Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Технология «клиент-сервер» (различные модели технологии «клиент – сервер»)

Содержание:

ВВЕДЕНИЕ

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

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

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

Объект исследования – технология «клиент-сервер».

Предмет исследования – модели технологии «клиент – сервер».

Цель исследования – изучить технологию «клиент-сервер».

Задачи:

– рассмотреть основные понятия технологии «клиент – сервер»;

– исследовать классическую двухуровневую архитектуру «клиент – сервер»;

– изучить трехуровневую модель;

– проанализировать модели технологии «клиент – сервер»;

– рассмотреть программное обеспечение технологии «клиент – сервер»;

– исследовать организацию обработки данных в СУБД с архитектурой «клиент-сервер».

Работа состоит из введения, двух глав, заключения и списка использованных источников.

1. ТЕХНОЛОГИЯ «КЛИЕНТ – СЕРВЕР»

1.1. Основные понятия технологии «Клиент – сервер»

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

Со временем малофункциональную модель файлового сервера для локальных сетей (FS) заменили появившиеся одна за одной модели структуры «Клиент- сервер» (RDA, DBS и AS).[2] 

Заняв нишу баз данных, технология «Клиент – сервер» стала основной технологией глобальной сети Internet. Далее, в результате перенесения идей сети Internet в среду корпоративных систем, появилась технология Intranet. В отличие от технологии «Клиент-сервер» эта технология ориентирована не на данные, а на информацию в ее окончательно готовом к потреблению виде. Вычислительные системы, построенные на основе Intranet, имеют в своем составе центральные серверы информации и распределенные компоненты представления информации конечному пользователю (программы-навигаторы, или браузеры). Взаимодействие между клиентом и сервером в Intranet происходит при помощи web – технологий. 

На сегодняшний день технология «Клиент-сервер»[3] получает все большее распространение, однако сама по себе она не предлагает универсальных рецептов. Она лишь дает общее представление о том, как должна быть организована современная распределенная информационная система.

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

«Клиент-сервер» - это модель взаимодействия компьютеров в сети. Как правило, компьютеры не являются равноправными. Каждый из них имеет свое, отличное от других, назначение, играет определенную роль. Некоторые компьютеры в сети владеют и распоряжаются информационно-вычислительными ресурсами, такими как процессоры, файловая система, почтовая служба, служба печати, база данных. Другие имеют возможность обращаться к этим службам, пользуясь услугами первых. Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса, а компьютер, желающий им воспользоваться - клиентом.[4]

Конкретный сервер определяется видом ресурса, которым он владеет. Так, если ресурсом являются базы данных, то речь идет о сервере баз данных, назначение которого - обслуживать запросы клиентов, связанные с обработкой данных; если ресурс - это файловая система, то говорят о файловом сервере или файл-сервере и т.д.[5]

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

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

https://studfiles.net/html/2706/363/html_jy6Hbddobb.k7y2/img-wKVnl1.png

Рис. 1. Системы с централизованной архитектурой

Первоначально СУБД имели централизованную архитектуру (рис. 1). В ней сама СУБД и прикладные программы, которые работали с базами данных, функционировали на центральном компьютере (большая ЭВМ или мини-компьютер).[8]

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

Особенности СУБД первого поколения напрямую связаны с архитектурой больших ЭВМ и мини-компьютеров и адекватно отражают все их преимущества и недостатки. Далее будем рассматривать современное состояние многопользовательских СУБД, для которых архитектура «клиент-сервер» стала фактическим стандартом.[10]

Для более четкого представления о ее особенностях необходимо рассмотреть несколько моделей технологии «клиент-сервер», что и будет сделано ниже.

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

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

Основной принцип технологии «клиент-сервер» заключается в разделении функций стандартного интерактивного приложения на четыре группы, имеющие различную природу.[11]

Первая группа - это функции ввода и отображения данных.[12]

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

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

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

В соответствии с этим в любом приложении выделяются следующие логические компоненты:[13]

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

- прикладной компонент, поддерживающий функции второй группы;

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

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

Различия в реализациях технологии «клиент-сервер» определяются четырьмя факторами.[14]

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

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

Выделяются четыре подхода, реализованные в следующих моделях:[15]

- модель файлового сервера (File Server - FS);

- модель доступа к удаленным данным (Remote Data Access - RDA);

- модель севера базы данных (DataBase Server - DBS);

- модель сервера приложений (Application Server - AS).

1.2. Классическая двухуровневая архитектура «Клиент – сервер»

Обычно компоненты сети не равноправны: у одних есть доступ к ресурсам (например, принтер, процессор, система управления базой данных (СУБД), файловая система и так далее), другие имеют возможность обращаться к этим ресурсам.[16]

Технология «Клиент – сервер» - это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи (рисунок 2).[17]

https://works.doklad.ru/images/b_WBz8swNHk/31b25bc0.jpg

Рис. 2. Архитектура «Клиент – сервер»

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

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

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

Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы:[19]

- модули интерфейса с пользователем; 

Также эту группу называют логикой представления. Через эту группу пользователи взаимодействуют с приложением. Независимо от конкретных характеристик логики представления (интерфейс командной строки, сложные графические пользовательские интерфейсы, интерфейсы через посредника) ее задача состоит в том, чтобы обеспечить средства для наиболее эффективного обмена информацией между пользователем и информационной системой.[20] 

- модули хранения данных; 

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

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

Алгоритмы доступа к данным исторически рассматривались как специфический для конкретного приложения интерфейс к механизму постоянного хранения данных наподобие файловой системы или СУБД. При помощи модулей обработки данных организуется специфический для приложения интерфейс к СУБД.[21]

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

Каждая из этих групп может быть реализована независимо от двух других. Например, не изменяя программ, используемых для хранения и обработки данных, можно изменить интерфейс с пользователем таким образом, что одни и те же данные будут отображаться в виде таблиц, графиков или гистограмм. Очень простые приложения часто способны собрать все три части в единственную программу, и подобное разделение соответствует функциональным границам.[22] 

В соответствии с разделением функций в любом приложении выделяются следующие компоненты:[23] 

- компонент представления данных; 

- прикладной компонент; 

- компонент управления ресурсом. 

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

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

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

Чтобы избежать несогласованности различных элементов архитектуры были созданы две модификации двухзвенной архитектуры «Клиент – сервер»: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»).[25] 

В данных архитектурах разработчики попытались выполнять обработку данных на одной из двух физических частей - либо на стороне клиента («Толстый клиент»), либо на сервере («Тонкий клиент). 

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

Систему с обработкой информации на сервере абсолютно невозможно перенести на другую платформу (ОС), что является серьезным недостатком. 
Есди все-таки разрабатывается двухуровневая классическая архитектура «Клиент – сервер», то необходимо помнить следующее:[27] 

- архитектура «Толстый сервер» аналогична архитектуре «Тонкий клиент» (рисунок 3);

https://works.doklad.ru/images/b_WBz8swNHk/m12463294.jpg

Рис. 3. Архитектура «Тонкий клиент»

Передача запроса от клиента на сервер, обработка запроса сервером и передача результата клиенту. При этом архитектуры имеют следующие недостатки:[28] 

- усложняется реализация, так как языки типа SQL не приспособлены для разработки подобного ПО и нет хороших средств отладки; 

- производительность программ, написанных на языках типа SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем; 

- программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных; 

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

1.3. Трехуровневая модель

С середины 90-х годов прошлого века признание специалистов получила трехзвенная архитектура «Клиент – сервер», которая разделила информационную систему по функциональным возможностям на три отдельных компонента: логика представления, бизнес-логика и логика доступа к данным.[29]

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

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

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

Сервер приложений – это программное обеспечение, являющееся промежуточным слоем между клиентом и сервером (рисунок 5).

https://vk.com/images/blank.gifhttps://works.doklad.ru/images/b_WBz8swNHk/m1fb445c6.jpg

Рис. 5. Сервер приложений

Существует несколько категорий продуктов промежуточного слоя:[32] 

- Message orientated – яркие представители MQseries и JMS; 

- Object Broker – яркие представители CORBA и DCOM; 

- Component based – яркие представители.NET и EJB. 

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

Существует несколько серверов приложений от таких знаменитых компаний как Sun Microsystem, Borland, IBM, Oracle и каждый из них отличается набором предоставляемых сервисов (производительность в данном случае учитывать не будем). Эти сервисы облегчают программирование и развертывание приложений масштаба предприятия. Обычно сервер приложений предоставляет следующие сервисы:[34] 

- WEB Server – чаще всего включают в поставку самый популярный и мощный Apache; 

- WEB Container – позволяет выполнять JSP и сервлеты. Для Apache таким сервисом является Tomcat; 

- CORBA Agent – может предоставлять распределенную директорию для хранения CORBA объектов; 

- Messaging Service – брокер сообщений; 

- Transaction Service – уже из названия понятно, что это сервис транзакций; 

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

- Java Mail – данный сервис может предоставлять сервис к SMTP; 

- JMS (Java Messaging Service) – обработка синхронных и асинхронных сообщений; 

- RMI (Remote Method Invocation) - вызов удаленных процедур.[35] 

Многоуровневые клиент-серверные системы достаточно легко можно перевести на Web-технологию - для этого достаточно заменить клиентскую часть универсальным или специализированным браузером, а сервер приложений дополнить Web-сервером и небольшими программами вызова процедур сервера. Для разработки этих программ можно использовать как Common Gateway Interface (CGI), так и более современную технологию Java.[36] 

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

2. РАЗЛИЧНЫЕ МОДЕЛИ ТЕХНОЛОГИИ «КЛИЕНТ – СЕРВЕР»

2.1. Модели технологии «Клиент – сервер»

Самой первой базовой технологией для локальных сетей являлась модель файлового сервера (FS). В свое время данная технология была очень среди отечественных разработчиков, использовавших такие системы, как FoxPro, Clipper, Clarion, Paradox и так далее.[37] 

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

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

Технология взаимодействия клиента и сервера следующая: запрос направляется на файловый сервер, который передает СУБД, размещенной на компьютере-клиенте, требуемый блок данных. Вся обработка осуществляется на терминале (рисунок 6).[39] 

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

https://vk.com/images/blank.gifhttps://works.doklad.ru/images/b_WBz8swNHk/m4f12ae6b.jpg

Рис. 6. Модель файлового сервера

Преимуществами данной технологии являются:[40] 

- простота разработки приложений; 

- удобство администрирования и обновления ПО из-за компактного расположения всех компонентов на одном компьютере; 

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

Но достоинства FS – модели перекрывают ее недостатки:[41] 

- большая загрузка сети; 

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

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

- отсутствие графического интерфейса. 

Благодаря решению проблем, присущих технологии «Файл – сервер» появилась более прогрессивная технология, получившая название «Клиент – сервер».[43] 

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

Различия в реализации приложений в рамках технологии «Клиент-сервер» определяются четырьмя факторами:[44] 

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

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

- как логические компоненты распределяются компьютерами в сети; 

- какие механизмы используются для связи компонент между собой. 

Исходя из этого, выделяются три подхода, каждый из которых реализован в соответствующей модели технологии «Клиент – сервер»:[45] 

- модель доступа к удаленным данным (Remote Date Access - RDA); 

- модель сервера базы данных (DateBase Server - DBS); 

- модель сервера приложений (Application Server - AS). 

Рассмотрим функции и характеристики различных моделей технологии «Клиент-сервер». 

Модель доступа к удаленным данным (RDA) – сетевая архитектура технологии «Клиент – сервер», при которой коды компонента представления и прикладного компонента совмещены и выполняются на компьютере-клиенте. Доступ к информационным ресурсам обеспечивается при помощи непроцедурного языка (например ,SQL – запросов для баз данных) или вызовами функций специальной библиотеки (если имеется специальный интерфейс прикладного программирования - API).[46] 

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

https://works.doklad.ru/images/b_WBz8swNHk/255e480e.jpg

Рис. 7. Модель доступа к удаленным данным

Основным преимуществом RDA-модели является широкий выбор инструментальных средств разработки приложений, обеспечивающих быстрое создание desktop-приложений, работающих с SQL-ориентированными СУБД. Обычно инструментальные средства поддерживают графический интерфейс пользователя с ОС, а также средства автоматической генерации кода, в которых смешаны прикладные функции и функции представления.[47] 

При этом RDA-модель имеет ряд ограничений.[48] 

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

Во-вторых, удовлетворительное администрирование приложений в RDA-модели практически невозможно. Если различные по своей природе функции (функции представления и чисто прикладные функции) смешаны в одной и той же программе, написанной на языке четвертого поколения (4GL), то при необходимости изменения прикладных функций приходится переписывать всю программу целиком.[49] 

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

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

Несмотря на широкое распространение, RDA-модель уступает место более технологичной DBS-модели.[51] 

Модель сервера баз данных (DBS) - сетевая архитектура технологии «Клиент – сервер», основу которой составляет механизм хранимых процедур, реализующий прикладные функции. В DBS – модели понятие информационного ресурса сужено до базы данных из-за того же механизма хранимых процедур, который реализован в СУБД, да и то не во всех.[52] 

В DBS-модели приложение является распределенным. Компонент представления выполняется на компьютере-клиенте, в то время как прикладной компонент (реализующий бизнес-функции) оформлен как набор хранимых процедур и функционирует на компьютере-сервере БД. Хранимые процедуры также называют компилируемыми резидентными процедурами или процедурами базы данных (рисунок 8).[53]

https://works.doklad.ru/images/b_WBz8swNHk/a7823bc.jpg

Рис. 8. Модель сервера базы данных

Преимущества DBS-модели перед RDA-моделью очевидны: это и возможность централизованного администрирования различных функций, и снижение трафика сети из-за того, что вместо SQL-запросов по сети передаются вызовы хранимых процедур, и возможность разделения процедуры между несколькими приложениями, и экономия ресурсов компьютера за счет использования единожды созданного плана выполнения процедуры. Однако есть и недостатки.[54] 

Доступ к информационным ресурсам, необходимым для решения прикладных задач, обеспечивается, как и в RDA-модели менеджером ресурсов (например, SQL-сервер). Из прикладных компонентов доступны такие ресурсы как, базы данных, очереди, почтовые службы и другие.[55]

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

AS-модель является универсальной системой, в которой может быть сколько угодно уровней, взаимодействующих между собой. Четкое разграничение логических компонентов, возможность баланса загрузки между несколькими серверами, и рациональный выбор программных средств для их реализации обеспечивают модели такой уровень гибкости, защиты данных и открытости, который пока недостижим в RDA- и DBS-моделях.[57] 

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

Результаты анализа моделей технологий «Файловый сервер» и «Клиент – сервер» представлены в таблице 1. 

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

Поскольку распределенные вычисления - это один из видов систем «Клиент – сервер», то пользователи получают такие же преимущества, например, увеличение общей пропускной способности и возможность многозадачной работы.[59] 

Так как обработка осуществляется в любом месте сети, распределенные вычисления в архитектуре «Клиент–сервер» гарантируют эффективное масштабирование. Чтобы добиться баланса между клиентом и сервером, компонент приложения должен выполняться на сервере только в том случае, когда централизованная обработка более эффективна.[60] 

Таким образом, если предстоит работа с небольшими информационными системами, не требующими графического интерфейса с пользователем, можно выбрать FS - модель. Проблему графического интерфейса легко решает RDA-модель.[61] 

Таблица 1 - Результаты анализа моделей технологий «Файловый сервер» и «Клиент – сервер»

Критерии

«Файловый сервер»

«Клиент – сервер»

FS - модель

RDA-модель

DBS-модель

AS-модель

1

2

3

4

5

Сложность разработки приложений

Низкая

Низкая

Высокая

Высокая

Сложность администрирования

Низкая

Высокая

Высокая

Высокая

Степень защиты данных

Высокая

Низкая

Высокая

Высокая

Требования к характеристикам сервера

Высокие

Низкие

Высокие

Высокие

Трафик, создаваемый в сети

Низкий

Очень высокий

Низкий

Низкий

Сложность обновления ПО

Низкая

Высокая

Низкая

Низкая

Требования к характеристикам сети

Низкие

Очень высокие

Низкие

Низкие

Распределение загрузки

Нет

Есть

Есть

Есть

Требования к характеристикам рабочих станций

-

Очень высокие

Низкие

Низкие

Использование графического интерфейса

-

+

+

+

Использование символьного интерфейса

+

+

+

+

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

https://vk.com/images/blank.gif2.2. Программное обеспечение технологии «Клиент – сервер»

https://vk.com/images/blank.gif

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

Для успешного применения технологии «Клиент-сервер» должно использоваться соответствующее программное обеспечение, включающее клиентскую и серверную части. 

Программное обеспечение, установленное на сервере для управления базой данных, реагируя на запросы клиентов, начинает поиск информации. Как часть системы «клиент-сервер» оно возвращает только результаты поиска.[63] 

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

Программное обеспечение сервера предусматривает и другие действия над информацией: обновление, удаление, добавление, защита и так далее.[64] 

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

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

Инструментальные средства, приложения и утилиты для интерфейсной части дополняют возможности модели «Клиент-сервер». К ним относятся средства запросов, которые упрощают доступ к данным сервера, используя предопределенные запросы и встроенные возможности для построения отчетов, пользовательские приложения, которые могут работать в качестве интерфейсной части, предоставляя доступ к серверу базы данных. Другие приложения (такие, как Microsoft Access) имеют свой собственный SQL, который обеспечивает доступ к системам управления базами данных от разных производителей.[65]

Для реализации систем «Клиент-сервер» необходимы специально разработанные интерфейсные части. Средства разработки программ (например, Microsoft Visual Basic) значительно облегчают программистам и администраторам информационных систем создание приложений, которые отвечают за доступ к серверам базы данных.[66] 

В зависимости от выбора операционной системы (ОС) и поставленных задач определяется программное обеспечение. Так, если используется ОС Windows, то на компьютере – клиенте обычно используется пакет Microsoft Office, в состав которого входят текстовый процессор Word, табличный процессор Excel, система подготовки презентаций PowerPoint, система управления базами данных Access и программа управления информацией Outlook.[67] 

В связи с успехом распространения пакета Microsoft Office корпорация Microsoft решила собрать комплекс программ для сервера –пакет MS BackOffice.

В состав названного пакета входят Windows Server – сетевая операционная система, System Management Server – система администрирования сети, SQL Server – сервер управления базами данных, SNA Server – сервер для соединения с хост-компьютерами, Exchange Server – сервер системы электронной почты и Internet Information Server – сервер для работы с Internet.[68] 

Windows Server 2000/2003/2008 способна обеспечить совместное использование файлов, печатающих устройств, предоставить услуги по соединению с рабочими станциями (клиентскими компьютерами) и другой сервис. 

В качестве сетевой операционной системы используют Windows 2000/2003/2008 Server, которую можно использоваться и на рабочей станции для реализации дополнительных возможностей.[69] 

Windows Server 2000/2003/2008 обеспечивает совместное использование не только множества процессов, но и ресурсов многими пользователями. Возможность соединения с удаленными сетями реализуется через сервис удаленного доступа – RAS (Remote Access Service), а также через средства связи с сетями других фирм (Novell, Digital Pathworks и Apple).[70] 

System Management Server (SMS) позволяет сетевому администратору централизованно управлять всей сетью. При этом обеспечивается возможность администрирования каждого компьютера, подключенного к сети, включая установленное на нем программное обеспечение.

SQL Server представляет собой систему управления реляционными базами данных, использующую принципы технологии «Клиент-сервер». MS SQL Server поддерживает систему обработки транзакций и механизм распределенных транзакций, систему сохранения ссылочной целостности и тиражирование данных.[71] 

SNA Server позволяет нескольким настольным ПЭВМ, работающим под управлением различных операционных систем «видеть» хост-компьютеры. 

Exchange Server обеспечивает средства передачи и приема сообщений в информационной сети организации. Этот сервис включает электронную почту (E-mail) и обмен информационными сообщениями для рабочих групп.[72]

Microsoft Exchange Server построен на принципах технологии «Клиент-сервер» и масштабируется в соответствии с возрастанием вычислительных возможностей сети. 

Internet Information Server обеспечивает возможность создания Web-, FTP- и Gopher-серверов для сети Internet, поддерживает управление ими с помощью встроенной программы Internet Service Manager.[73]

https://vk.com/images/blank.gif2.3. Организация обработки данных в СУБД с архитектурой «Клиент-сервер»

Существуют различные классификации баз данных (БД), например, по степени изменчивости их можно подразделить на условно-постоянные (такие БД используются в основном для справочных систем) и сильно динамичные (используются например, в банковских системах).[74] 

Термин «сервер баз данных» обычно используют для обозначения всей СУБД, основанной на архитектуре «Клиент-сервер», включая и серверную, и клиентскую части. Такие системы предназначены для хранения и обеспечения доступа к базам данных.[75] 

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

Хотя обычно одна база данных целиком хранится в одном узле сети и поддерживается одним сервером, серверы баз данных представляют собой простое и дешевое приближение к распределенным базам данных, поскольку общая база данных доступна для всех пользователей локальной сети.[76] 

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

Поэтому любая СУБД не может одинаково успешно применяться при работе с БД разных классов.[77] 

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

Серверы баз данных, интерфейс которых основан исключительно на языке SQL, обладают своими преимуществами и своими недостатками. Очевидное преимущество – стандартность интерфейса. Недостаток тоже довольно очевиден. При таком высоком уровне интерфейса между клиентской и серверной частями системы на стороне клиента работает слишком мало программ СУБД. Это нормально, если на стороне клиента используется маломощная рабочая станция. Но если клиентский компьютер обладает достаточной мощностью, то часто возникает желание возложить на него больше функций управления базами данных, разгрузив сервер, который является узким местом всей системы.[78] 

Одним из перспективных направлений СУБД является гибкое конфигурирование системы, при котором распределение функций между клиентской и пользовательской частями СУБД определяется при установке системы.[79] 

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

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

При ошибке в любой из составляющих транзакция считается незавершенной при этом происходит откат транзакций - приведение данных к виду, в котором они находились до начала транзакции.[80] 

Если же все составляющие транзакции были успешно выполнены, то происходит процесс фиксирования транзакции. 

О важности механизма поддержки транзакций можно судить на примере перечисления денег между счетами клиентов банка. Данная транзакция состоит из множества операций от перечисления денег до получения другим клиентом. И если произойдет сбой какой-либо из операций, то деньги просто не дойдут до получателя и останутся у отправителя.[81] 

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

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

- коммуникационный менеджер, контролирующий обмен сообщениями между компонентами информационной системы; 

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

- менеджер транзакций, управляющий распределенными операциями; 

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

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

Обычно коммуникационный менеджер объединен с авторизационным, а менеджер транзакций работает совместно с менеджерами блокировок и системных записей. Причем такой менеджер редко входит в комплект поставки, поскольку его функции (ведение записей, распределение ресурсов и контроль операций), как правило, выполняет сама база данных.[83] 

Первые менеджеры транзакций появились еще в начале 70-х годов прошлого века и использовались еще в технологии «Файловый сервер». С приходом технологии «Клиент - сервер» они незначительно изменились идеологически, но весьма существенно - технологически. Наибольшие идеологические изменения произошли в коммуникационном менеджере, так как в этой области появились новые объектно-ориентированные технологии (CORBA, DCOM и так далее).[84] 

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

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

С появлением технологии «Клиент – сервер» и объектно-ориентированного подхода в программировании мониторы транзакций не исчезли, а перешли на более современную ступень развития.[87] 

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

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

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

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

Основными характеристиками мониторов транзакций являются:[90] 

- гибкость доступа к данным; 

Использование мониторов транзакций практически не накладывает каких-либо ограничений на многообразие или сложность запросов доступа к СУБД. 

- производительность. 

Монитор транзакций представляет собой многопоточное приложение, одновременно открывая собственное соединение с СУБД и устраняя необходимость выполнения каждым прикладным процессом прямых запросов к СУБД. При этом число одновременно работающих пользователей СУБД существенно сокращается, что особенно важно для СУБД с реализацией «Один к одному» (рисунок 10). 

В СУБД с реализацией «Один к одному» для каждого клиента на сервере используется отдельный процесс, даже если программа-клиент физически выполняется на отдельной системе. Таким образом, для работы каждого клиентского приложения используются два процесса - один на сервере и один на клиентской системе.[91]

TP-мониторы позволяют также улучшить производительность за счет сокращения общего объема пересылки данных, пересылаемой между СУБД и прикладным процессом за счет определенной части каждой транзакции, состоящей из минимально требуемых данных. Это особенно важно для загруженной сети или сети с низкой полосой пропускания, а также в глобальной сети (например, Internet на спутниковых каналах связи).[92] 

Одним из современных мониторов транзакций является Microsoft Transaction Server (MTS). Microsoft Transaction Server обеспечивает поддержку транзакций, служб масштабирования, управления подключениями и администрирования, которые позволяют создавать и развертывать масштабируемые серверные приложения, делая при этом управление транзакциями прозрачным для разработчика компонентов.[93] 

https://vk.com/images/blank.gifhttps://works.doklad.ru/images/b_WBz8swNHk/mfea5360.jpg

Рис.10. Конфигурация СУБД с архитектурой «Клиент-сервер» для работы с мониторами обработки транзакций

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

ЗАКЛЮЧЕНИЕ

https://vk.com/images/blank.gif

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

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

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

https://vk.com/images/blank.gif

https://vk.com/images/blank.gif

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Архангельский А.Я. Delphi 7 Справочное пособие. - М.: Бином-Пресс, 2017. -897 с.

2. Архангельский А.Я. Программирование в Delphi 7 + дискета, Бином, 2015. – 432 с.

3. Бондаренко Е.А. Технические средства обучения в современной школе, Юверс, 2016. – 397 с.

4. Батищев П.С. Электронный On-Line учебник по курсу информатика.

5. Брюхов Д., Задорожный В., Калиниченко Л. и др. Интероперабельные информационные системы: архитектуры и технологии. - СУБД, 4, 2015. – 330 с.

6. Вудворд Дж. «Технология совместной работы». 2017. – 281 с.

7. Вигерс Карл. Разработка требований к программному обеспечению. /Пер, с англ. - М.: Издательско-торговый дом «Русская Редакция», 2016. - 576 с.

8. Волков В.Б. Понятный самоучитель работы в Windows XP, СПб, Питер, 2015. – 456 с.

9. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. - СПб.: Питер, 2015. - 384 с.

10. Глушаков С.В., Клевцов А.Л., Программирование в среде Delphi 7.0, Фолио, 2016. – 432 с.

11. Гофман В.Э., Хомоненко А.Д. Delphi 5. - СПб.: БХВ - Санкт Петербург, 2017. - 800 с.

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

13. Дьяконов В.П. Новые информационные технологии, Солон-Пресс, 2015. – 421 с.

14. Епанешников А., Епанешников В. Программирование в среде Delphi: Учебное пособие: В 4-х ч. Ч. 4. Работа с базами данных. Организация справочной системы - М.: ДИАЛОГ - МИФИ, 2017. - 400 с.

15. Земсков А.И., Шрайберг Я.Л. Электронные библиотеки, Либерея, 2016. – 477 с.

16. Зубков Сергей Владимирович Assembler для Dos, Windows, Unix. - М.: ДМКПресс, 2017. - 652 с.

17. Ивановский Р.И. Компьютерные технологии в науке и образовании. Практика применения систем Math CAD Pro, Высшая школа, 2015. – 580 с.

18. Калиниченко. Л. Стандарт систем управления объектными базами данных ODMG 93: краткий обзор и оценка состояния. - СУБД, 1, 2016. – 265 с.

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

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

21. Каймин В.А., Жданов В.С. и др. «Информатика» для поступающих в ВУЗы. Москва, АСТ, 2016. – 342 с.

22. Клименко Р.Н. Оптимизация и автоматизация работы на ПК на 100% (+CD), Питер Пресс, 2017. – 742 с.

23. Колин К.К. Фундаментальные основы информатики: социальная информатика / Учебное пособие для вузов. - М.: Академический проект, 2017 - 350 с.

24. Кондратьев Г.Г. Осваиваем Windows XP, Питер, 2015. – 376 с.

25. Коплиен Дж., Мультипарадигменное проектирование для C++, Питер, 2015. – 349 с.

26. Красильникова В.А. Становление и развитие компьютерных технологий обучения: Монография. - М.: ИИО РАО, 2016. - 268 с.

27. Круглински Д., Уингоу С, Шеферд Дж. Программирование на Microsoft Visual C++ 6.0 для профессионалов. /Пер, с англ. - СПб: Питер; М.: Издательско-торговый дом «Русская Редакция», 2017. - 861 с.

28. Кудрявцев Е.М. Оформление дипломного проекта на компьютере, АСВ, 2016. – 558 с.

29. Кэнту Марко Delphi 5.0 для профессионалов. - СПб.: Питер, 2016. - 1064 с.

30. Леонтьев Б.К., Мультимедия Microsoft Windows без страха, Новый издательский дом, 2015. – 632 с.

31. Мандел Т. Дизайн интерфейсов, ДМК, 2016. – 622 с.

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

33. Морозевич А.Н., Зеневич А.М. Информатика. Минск, 2016. – 521 с.

34. Музыченко Е.В., Фролов И.Б., Мультимедия для Windows, 2015. – 340 с.

35. Пайс А. Гении науки. - М.: Институт компьютерных исследований, 2017. – 579 с.

36. Пирогов В.Ю. Assembler учебный курс. - М.: «Нолидж», 2017. - 926 с.

37. Рейнхардт Р., Ленц Д.У. Flash 5. Библия пользователя. - М.: «Вильямс», 2017. - 1164 с.

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

39.Титоренко Г.А. Информационные технологии управления. - М.: Юнити, 2015. – 385 с.

40. Фигурнов В.Э. IBM PC для пользователя. Изд. 7-е, перераб. и доп. - М.: ИНФРА - М, 2016. - 640 с.

  1. Ивановский Р.И. Компьютерные технологии в науке и образовании. Практика применения систем Math CAD Pro, Высшая школа, 2015. – 580 с.

  2. Красильникова В.А. Становление и развитие компьютерных технологий обучения: Монография. - М.: ИИО РАО, 2016. - 268 с.

  3. Титоренко Г.А. Информационные технологии управления. - М.: Юнити, 2015. – 385 с.

  4. Морозевич А.Н., Зеневич А.М. Информатика. Минск, 2016. – 521 с.

  5. Пайс А. Гении науки. - М.: Институт компьютерных исследований, 2017. – 579 с.

  6. Дьяконов В.П. Новые информационные технологии, Солон-Пресс, 2015. – 421 с.

  7. Вудворд Дж. «Технология совместной работы». 2017. – 281 с.

  8. Батищев П.С. Электронный On-Line учебник по курсу информатика.

  9. Архангельский А.Я. Программирование в Delphi 7 + дискета, Бином, 2015. – 432 с.

  10. Волков В.Б. Понятный самоучитель работы в Windows XP, СПб, Питер, 2015. – 456 с.

  11. Глушаков С.В., Клевцов А.Л., Программирование в среде Delphi 7.0, Фолио, 2016. – 432 с.

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

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

  14. Музыченко Е.В., Фролов И.Б., Мультимедия для Windows, 2015. – 340 с.

  15. Круглински Д., Уингоу С, Шеферд Дж. Программирование на Microsoft Visual C++ 6.0 для профессионалов. /Пер, с англ. - СПб: Питер; М.: Издательско-торговый дом «Русская Редакция», 2017. - 861 с.

  16. Коплиен Дж., Мультипарадигменное проектирование для C++, Питер, 2015. – 349 с.

  17. Колин К.К. Фундаментальные основы информатики: социальная информатика / Учебное пособие для вузов. - М.: Академический проект, 2017 - 350 с.

  18. Клименко Р.Н. Оптимизация и автоматизация работы на ПК на 100% (+CD), Питер Пресс, 2017. – 742 с.

  19. Красильникова В.А. Становление и развитие компьютерных технологий обучения: Монография. - М.: ИИО РАО, 2016. - 268 с.

  20. Кондратьев Г.Г. Осваиваем Windows XP, Питер, 2015. – 376 с.

  21. Клименко Р.Н. Оптимизация и автоматизация работы на ПК на 100% (+CD), Питер Пресс, 2017. – 742 с.

  22. Мандел Т. Дизайн интерфейсов, ДМК, 2016. – 622 с.

  23. Морозевич А.Н., Зеневич А.М. Информатика. Минск, 2016. – 521 с.

  24. Пирогов В.Ю. Assembler учебный курс. - М.: «Нолидж», 2017. - 926 с.

  25. Титоренко Г.А. Информационные технологии управления. - М.: Юнити, 2015. – 385 с.

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

  27. Пайс А. Гении науки. - М.: Институт компьютерных исследований, 2017. – 579 с.

  28. Красильникова В.А. Становление и развитие компьютерных технологий обучения: Монография. - М.: ИИО РАО, 2016. - 268 с.

  29. Ивановский Р.И. Компьютерные технологии в науке и образовании. Практика применения систем Math CAD Pro, Высшая школа, 2015. – 580 с.

  30. Калиниченко. Л. Стандарт систем управления объектными базами данных ODMG 93: краткий обзор и оценка состояния. - СУБД, 1, 2016. – 265 с.

  31. Епанешников А., Епанешников В. Программирование в среде Delphi: Учебное пособие: В 4-х ч. Ч. 4. Работа с базами данных. Организация справочной системы - М.: ДИАЛОГ - МИФИ, 2017. - 400 с.

  32. Глушаков С.В., Клевцов А.Л., Программирование в среде Delphi 7.0, Фолио, 2016. – 432 с.

  33. Волков В.Б. Понятный самоучитель работы в Windows XP, СПб, Питер, 2015. – 456 с.

  34. Вигерс Карл. Разработка требований к программному обеспечению. /Пер, с англ. - М.: Издательско-торговый дом «Русская Редакция», 2016. - 576 с.

  35. Гофман В.Э., Хомоненко А.Д. Delphi 5. - СПб.: БХВ - Санкт Петербург, 2017. - 800 с.

  36. Архангельский А.Я. Delphi 7 Справочное пособие. - М.: Бином-Пресс, 2017. -897 с.

  37. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. - СПб.: Питер, 2015. - 384 с.

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

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

  40. Кондратьев Г.Г. Осваиваем Windows XP, Питер, 2015. – 376 с.

  41. Кэнту Марко Delphi 5.0 для профессионалов. - СПб.: Питер, 2016. - 1064 с.

  42. Пайс А. Гении науки. - М.: Институт компьютерных исследований, 2017. – 579 с.

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

  44. Титоренко Г.А. Информационные технологии управления. - М.: Юнити, 2015. – 385 с.

  45. Кудрявцев Е.М. Оформление дипломного проекта на компьютере, АСВ, 2016. – 558 с.

  46. Круглински Д., Уингоу С, Шеферд Дж. Программирование на Microsoft Visual C++ 6.0 для профессионалов. /Пер, с англ. - СПб: Питер; М.: Издательско-торговый дом «Русская Редакция», 2017. - 861 с.

  47. Коплиен Дж., Мультипарадигменное проектирование для C++, Питер, 2015. – 349 с.

  48. Каймин В.А., Жданов В.С. и др. «Информатика» для поступающих в ВУЗы. Москва, АСТ, 2016. – 342 с.

  49. Ивановский Р.И. Компьютерные технологии в науке и образовании. Практика применения систем Math CAD Pro, Высшая школа, 2015. – 580 с.

  50. Глушаков С.В., Клевцов А.Л., Программирование в среде Delphi 7.0, Фолио, 2016. – 432 с.

  51. Вудворд Дж. «Технология совместной работы». 2017. – 281 с.

  52. Епанешников А., Епанешников В. Программирование в среде Delphi: Учебное пособие: В 4-х ч. Ч. 4. Работа с базами данных. Организация справочной системы - М.: ДИАЛОГ - МИФИ, 2017. - 400 с.

  53. Архангельский А.Я. Delphi 7 Справочное пособие. - М.: Бином-Пресс, 2017. -897 с.

  54. Батищев П.С. Электронный On-Line учебник по курсу информатика.

  55. Красильникова В.А. Становление и развитие компьютерных технологий обучения: Монография. - М.: ИИО РАО, 2016. - 268 с.

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

  57. Пайс А. Гении науки. - М.: Институт компьютерных исследований, 2017. – 579 с.

  58. Титоренко Г.А. Информационные технологии управления. - М.: Юнити, 2015. – 385 с.

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

  60. Пирогов В.Ю. Assembler учебный курс. - М.: «Нолидж», 2017. - 926 с.

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

  62. Фигурнов В.Э. IBM PC для пользователя. Изд. 7-е, перераб. и доп. - М.: ИНФРА - М, 2016. - 640 с

  63. Морозевич А.Н., Зеневич А.М. Информатика. Минск, 2016. – 521 с.

  64. Кэнту Марко Delphi 5.0 для профессионалов. - СПб.: Питер, 2016. - 1064 с.

  65. Волков В.Б. Понятный самоучитель работы в Windows XP, СПб, Питер, 2015. – 456 с.

  66. Леонтьев Б.К., Мультимедия Microsoft Windows без страха, Новый издательский дом, 2015. – 632 с.

  67. Кондратьев Г.Г. Осваиваем Windows XP, Питер, 2015. – 376 с.

  68. Кудрявцев Е.М. Оформление дипломного проекта на компьютере, АСВ, 2016. – 558 с.

  69. Красильникова В.А. Становление и развитие компьютерных технологий обучения: Монография. - М.: ИИО РАО, 2016. - 268 с.

  70. Кондратьев Г.Г. Осваиваем Windows XP, Питер, 2015. – 376 с.

  71. Кэнту Марко Delphi 5.0 для профессионалов. - СПб.: Питер, 2016. - 1064 с.

  72. Морозевич А.Н., Зеневич А.М. Информатика. Минск, 2016. – 521 с.

  73. Рейнхардт Р., Ленц Д.У. Flash 5. Библия пользователя. - М.: «Вильямс», 2017. - 1164 с.

  74. Титоренко Г.А. Информационные технологии управления. - М.: Юнити, 2015. – 385 с.

  75. Епанешников А., Епанешников В. Программирование в среде Delphi: Учебное пособие: В 4-х ч. Ч. 4. Работа с базами данных. Организация справочной системы - М.: ДИАЛОГ - МИФИ, 2017. - 400 с.

  76. Глушаков С.В., Клевцов А.Л., Программирование в среде Delphi 7.0, Фолио, 2016. – 432 с.

  77. Дьяконов В.П. Новые информационные технологии, Солон-Пресс, 2015. – 421 с

  78. Волков В.Б. Понятный самоучитель работы в Windows XP, СПб, Питер, 2015. – 456 с.

  79. Батищев П.С. Электронный On-Line учебник по курсу информатика.

  80. Архангельский А.Я. Программирование в Delphi 7 + дискета, Бином, 2015. – 432 с.

  81. Батищев П.С. Электронный On-Line учебник по курсу информатика.

  82. Вигерс Карл. Разработка требований к программному обеспечению. /Пер, с англ. - М.: Издательско-торговый дом «Русская Редакция», 2016. - 576 с.

  83. Вудворд Дж. «Технология совместной работы». 2017. – 281 с.

  84. Глушаков С.В., Клевцов А.Л., Программирование в среде Delphi 7.0, Фолио, 2016. – 432 с.

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

  86. Дьяконов В.П. Новые информационные технологии, Солон-Пресс, 2015. – 421 с.

  87. Земсков А.И., Шрайберг Я.Л. Электронные библиотеки, Либерея, 2016. – 477 с.

  88. Клименко Р.Н. Оптимизация и автоматизация работы на ПК на 100% (+CD), Питер Пресс, 2017. – 742 с.

  89. Красильникова В.А. Становление и развитие компьютерных технологий обучения: Монография. - М.: ИИО РАО, 2016. - 268 с.

  90. Кудрявцев Е.М. Оформление дипломного проекта на компьютере, АСВ, 2016. – 558 с.

  91. Кэнту Марко Delphi 5.0 для профессионалов. - СПб.: Питер, 2016. - 1064 с.

  92. Леонтьев Б.К., Мультимедия Microsoft Windows без страха, Новый издательский дом, 2015. – 632 с.

  93. Пайс А. Гении науки. - М.: Институт компьютерных исследований, 2017. – 579 с.