Технология «клиент-сервер» (Понятие и сущность технологии "клиент-сервес")
Содержание:
ВВЕДЕНИЕ
Актуальность исследования. Как результат эволюции компьютерных технологий появились компьютерные сети. Само появление компьютерных сетей ознаменовало новый этап в компьютерной технологии.
Самые первые компьютерные сети были довольно примитивными – скорость работы такой сети была очень маленькой по сравнению с современными сетевыми технологиями, но для того времени и это было достижение.
С совершенствованием аппаратной части сетей совершенствовалось и сетевое программное обеспечение. Со временем потребовалось совершенствование самих технологий, а не только развитие аппаратуры и программного обеспечения. Были разработаны современные сетевые технологии. Одной из таких технологий является технология «клиент-сервер», позволяющая пользователям сети получать быстрый доступ к ресурсам. Об этой сетевой технологии мы и хотели подробно рассказать.
Целью работы являться изучение технологии «Клиент- сервер»
Предметом работы выступают информационный системы.
Объектом работы возможности и назначение программы «Клиент- Сервер»
Задачи:
- рассмотреть понятие и сущность технологии "клиент-сервес";
- изучить модель клиент-сервер;
- рассмотреть архитектурные решения многопользовательского доступа к данным;
- изучить трехзвенную архитектуру «клиент-сервер»;
- рассмотреть пример использования трехзвенной архитектуры при построении информационной системы;
- выявить перспективы использования трехзвенной архитектуры «клиент-сервер».
Объект исследования - «клиент-сервер».
Предмет исследования - технология «клиент-сервер».
Структура работы состоит из введения, основной части, заключения и списка литературы.
Теоретической и методологической базой данной работы послужили труды российских и зарубежных авторов в области информационных технологий, материалы периодических изданий и сети Интернет.
ГЛАВА 1 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ТЕХНОЛОГИИ КЛИЕНТ-СЕРВИСА
1.1 Понятие и сущность технологии "клиент-сервес"
В общем случае для организации работы пользователей сети с информационными ресурсами, распределенными по различным компьютерам, необходимы три составляющих:
- программа, установленная на компьютере пользователя, которая может осуществлять сетевой запрос с целью получения объекта, и предназначенная для его обработки (например, просмотра, изменения или печати документа);
- программа, установленная, как правило, на компьютере, где расположен информационный объект, которая может осуществлять по запросу поиск и пересылку объекта, а также упорядочивание доступа к нему нескольких пользователей;
- правила (протокол) взаимодействия между этими программами.
Технология взаимодействия, в которой одна программа запрашивает выполнение какой-либо совокупности действий («запрашивает услугу»), а другая ее выполняет, называется технологией «клиент-сервер». Участники такого взаимодействия называются соответственно клиентом (client) и сервером (server). Достаточно часто клиентом (или сервером) называют компьютеры, на которых функционирует то или иное клиентское (или серверное) программное обеспечение.
Следует особо отметить, что набор действий, понимаемых как запрашиваемая услуга, – это не обязательно чтение (получение) объекта. В том числе это может быть сохранение (запись), пересылка объекта и т.д.
При большом числе компьютеров (десятки, сотни и даже тысячи) предприятия чаще всего полагаются на сети модели «клиент-сервер». Упрощенно можно считать, что в такой сети отдельный компьютер подключается к одному или нескольким мощным компьютерам, которые называются серверами.
Сервер – это компьютер, или выполняющаяся на нём программа, которая предоставляет клиентам доступ к общим ресурсам и управляет этими ресурсами.
Клиент – пользователь (получатель) услуг и/или ресурсов, которые предоставляет сервер.
СЕРВЕР
Рис. 1.1. - Модель клиент-сервер.
В серверных сетях серверы оснащены процессорами типа Intel Pentium 4 и сетевой операционной системой.
1.2. Модель клиент-сервер
Понятия сервер и клиент и закрепленные за ними роли образуют программную концепцию «клиент-сервер». Модель клиент-сервер это еще один подход к структурированию Операционной системы(ОС). В широком смысле модель клиент-сервер предполагает наличие программного компонента потребителя какого-либо сервиса клиента, и программного компонента поставщика этого сервиса сервера. Взаимодействие между клиентом и сервером стандартизуется, так что сервер может обслуживать клиентов, реализованных различными способами и, может быть, разными производителями. При этом главным требованием является то, чтобы они запрашивали услуги сервера понятным ему способом. Инициатором обмена обычно является клиент, который посылает запрос на обслуживание серверу, находящемуся в состоянии ожидания запроса. Один и тот же программный компонент может быть клиентом по отношению к одному виду услуг, и сервером для другого вида услуг.
Класс данных программ в полной мере может быть использован не только в обозначенном направлении, но и в учебном процессе образовательных учреждений, где особенно первостепенны, как подача изучаемого материала с его визуализацией, так и контроль за действиями обучаемых. В образовательных учреждениях презентационные возможности при изучении материала могут быть реализованы с помощью такого технического средства как мультимедиа проектор. Стоимость мультимедиа оборудования для аудитории может составлять до 120 тысяч и более. Важно отметить, что наряду со своей не малой стоимостью и финансовыми затратами на дальнейшее обслуживание данное оборудование решает только демонстрационную задачу, коммуникационные задачи, в частности контроль за удалёнными компьютерами (компьютерами сотрудников, обучаемых) остаются не реализованы.
В комплексе презентационные и коммуникационные возможности, важные и необходимые, в том числе и в образовательном процессе могут быть решены с помощью программ удалённого доступа. Самая распространенная утилита для удаленного управления ПК – это, конечно же, Remote Desktop Connection (RDC), входящая в комплект операционной системы Windows. Этот факт объясняется не столько ее функциональными возможностями, сколько тем, что она является составной частью ОС, а потому приобретать ее отдельно не нужно. Что касается функциональности данной утилиты, то на практике ее, как правило, бывает недостаточно, поэтому нередко используются специализированные программные пакеты сторонних производителей. В таблице 1 приведены данные о некоторых специализированных лицензионных программных пакетах, предназначенных для удалённого управления компьютерами с указанием их стоимости [1]. Заметим, что стоимость лицензионной программы зависит от количества лицензий (числа управляемых ПК)
Обозначенное позволяет констатировать о том, что далеко не все организации, образовательные учреждения могут позволить себе приобрести как необходимое мультимедийное оборудование, так и лицензионное достаточно дорогое программное обеспечение. Выше изложенное послужило идеей для создания программы «Удалённого мониторинга», которая решает необходимый минимум описанных задач, а именно:
– отображает содержимое экрана сервера (управляющего, преподавателя) любому количеству клиентов (сотрудников, обучаемых) – одному, группе, всем одновременно;
– показывает содержимое закачанных учителем из сети Интернет Webстраниц;
– отображает содержимое рабочих станций (одновременно или по очереди), тем самым клиенты (сотрудников, обучаемые) понимают, что их деятельность находится под постоянным контролем;
– контролирует загружаемые из сети Интернет информационные материалы;
– использует дистанционное управление компьютером клиентов (сотрудников, обучаемых);
– блокирует машины клиентов (сотрудников, обучаемых), например в конце урока или в ходе урока (рабочего дня) перезагружает, выключает машины в конце рабочего дня. В ходе работы над программой проводилось решение следующих задач:
– анализ материала по существующим программам удалённого управления ПК, их функциональных возможностях, стоимости и т.д.;
– подбор языка программирования для создания данной программы;
– анализ и разработка механизма работы программы, её необходимого состава; – написание программы;
– апробация созданной программы. Результаты первой задачи описаны выше. В качестве языка программирования для написания программы был определён язык Delphi. Пакет программы в своём составе содержит три папки:
1) Klient (people) – устанавливается на ПК клиентов (сотрудников, обучаемых);
2) Klien (teacher) – устанавливается на ПК сервера (управляющего, преподавателя);
3) Server –управляющая папка, устанавливается на все компьютеры, как клиентов, так и сервер.
Апробация программы была проведена на базах учебных заведений МОУ лицея №83 города Тюмени, Тобольского индустриального института и показала хорошие результаты, которые определяются: – презентабельностью, мобильностью, динамичностью проводимых занятий и как следствие повышением эффективности качества обучения; – коммуникационными возможностями, заключающимися в управлении, технической поддержке, контроле ПК удалённых компьютеров, что положительно, отражается на плодотворной деятельности клиентов (сотрудников, обучаемых).
В перспективе программа может дорабатываться с учётом получаемых отзывов, возможных необходимостей, а также наших идей, среди которых можно отметить следующие: – добавление функции обмена сообщениями (чата), что облегчит общение на расстоянии; – функция передачи файлов, с компьютера на компьютер и другие
ГЛАВА 2 ИСПОЛЬЗОВАНИЕ ТРЕХЗВЕННОЙ АРХИТЕКТУРЫ «КЛИЕНТ-СЕРВЕР» В СОВРЕМЕННЫХ СИСТЕМАХ ОБРАБОТКИ ИНФОРМАЦИИ
2.1 Архитектурные решения многопользовательского доступа к данным
В настоящее время в связи с повсеместным увеличением сложности вычислительных задач, лавинообразного роста объемов обрабатываемой информации, широкому внедрению в практическое использование планшетных персональных компьютеров, смартфонов и других типов мобильных гаджетов и связанным с этим бурным развитием облачных вычислений - технологии удаленного доступа к вычислительным ресурсам по компьютерным сетям, все более актуальным при построении различных программных систем и, в том числе, систем управления базами данных, является применение так называемой трехзвенной или трехуровневой архитектуры, предполагающей наличие в программном комплексе трех компонентов: приложения пользователя (клиента), сервера приложений (к которому подключено клиентское приложение) и сервера баз данных (с которым работает сервер приложений).
В статье рассматриваются принципы построения данной архитектурной модели, проводится ее сравнение с традиционными клиент-серверной или файл-серверной архитектурами, обсуждаются области ее применения и возможные направления дальнейшего развития, а также приводится пример успешной практической реализации трехзвенной архитектуры в программном комплексе, разработанном авторами для нужд Федеральной таможенной службы Российской Федерации.
По мере развития информационных технологий довольно быстро возникла необходимость одновременного доступа к одному и тому же информационному массиву (базе данных) нескольких пользователей. Так возникла концепция многопользовательских или распределенных систем управления базами данных (СУБД). Хронологически первой многопользовательской технологией работы с данными стала централизованная архитектура. При использовании этой технологии база данных, СУБД и прикладная программа (клиентское приложение) располагаются на одном и том же компьютере [1]. При этом многопользовательский режим работы обеспечивается либо за счет разделения вычислительных ресурсов между пользователями, либо за счет разделения времени доступа клиентских приложений к этим ресурсам. Понятным недостатком этой архитектуры является значительное снижение производительности системы при увеличении числа пользователей [2].
Развитие компьютерных сетей и массовое внедрение персональных компьютеров дало возможность появления нового типа архитектуры, получившим название «файл-сервер». Эта технология организации совместной работы в вычислительной сети предполагает выделение одного из компьютеров исключительно под задачи ввода-вывода и хранения данных. Клиентские приложения пользователей при такой организации программной архитектуры самостоятельно выполняют всю необходимую обработку данных, а ресурсы компьютера-сервера используют для хранения информации в виде отдельных файлов [2, 3]. Существенным недостатком такой архитектуры также является небольшое число клиентов, способных одновременно работать с базой данной без заметного снижения производительности системы из-за физических ограничений на количество одновременного возможных сеансов доступа к одному и тому же файлу. Также к недостаткам данной архитектуры относят ее низкую надежность и безопасность [3].
Пришедшая на смену архитектуре «файлсервер» архитектура «клиент-сервер» предполагает наличие в сети выделенного компьютера-сервера, на котором располагается СУБД и хранятся базы данных. Клиентские приложения не могут обращаться непосредственно к данным, монопольным правом на доступ к информации обладает СУБД. Сервер обеспечивает интерпретацию запросов клиентов на доступ к данным, их выполнение за счет взаимодействия с базой данных, формирование результатов их выполнения и передачу этих результатов приложениям-клиентам. Взаимодействие приложений-клиентов и СУБД стандартно реализуются на структурном языке запросов SQL (Structured Query Language), а соответствующие базы данных принято называть реляционными [4]. Поскольку выполнение запроса происходит на сервере, там же, где хранятся данные, то нет необходимости в пересылке больших объемов информации, по сети предаются только запросы клиентов и результаты их выполнения, что значительно повышает быстродействие системы и снижает время ожидания результата запроса. Дополнительным преимуществом архитектуры является обеспечение высокой надежности механизма поддержания целостности базы данных и безопасности при одновременной работе большого числа пользователей за счет системы транзакций и разграничения доступа [4, 5].
Рис. 2.1. Концепция трехзвенной архитектуры «клиент-сервер» [6]
Сегодня клиент-серверная технология является фактически стандартом работы с данными и реализована в значительном количестве СУБД. Однако в процессе эксплуатации систем, основанных на данной архитектуре, был выявлен ряд существенных недостатков:
- недостаточная масштабируемость, т.е. ограниченная способность системы увеличивать свою производительность с увеличением нагрузки за счет добавлении ресурсов, а также недостаточная надежность, выраженная в невозможности продолжения работы при отказе сервера;
- необходимость привлечения системного администратора - высококвалифицированного технического специалиста, занимающегося обеспечением корректной и стабильной работы сервера;
- высокая стоимость серверного оборудования, связанная с необходимостью обеспечения обработки сервером большого количества запросов в единицу времени, а также необходимость обеспечения достаточно высокой пропускной способности сети передачи данных.
2.2 Трехзвенная архитектура «клиент-сервер»
В результате развития технологии «клиентсервер» была предложена новая, трехзвенная архитектурная модель программного комплекса (рисунок 1) [6].
Трехзвенная (трехуровневая, а также иногда многозвенная или многоуровневая) архитектура подразумевает наличие в системе трех основных компонентов:
- клиентский уровень, на котором обеспечивается интерфейс с пользователем путем передачи запросов пользователя на следующий уровень и представлении полученных от этого уровня результатов;
- уровень сервера приложений, на котором реализуется вся бизнес-логика, ранее входившая в состав клиентских приложений: обрабатывается запросы клиентов, выполняется логическая и математическая обработка данных, осуществляется передача данных между двумя окружающими уровнями;
- уровень данных (сервер баз данных), на котором обеспечивается хранение данных, извлечение необходимой информации по запросу от сервера приложений и передача ему этих данных для обработки. Доступ к этому уровню возможен только с уровня сервера приложений.
К основным преимуществам трехзвенной архитектуры относятся:
- возможность распределения функций системы по нескольким компонентам - разным физическим устройствам - клиентской рабочей станции, сервера приложений и сервера базы данных, что позволяет повысить надежность, безопасность и производительность системы в целом;
- масштабируемость, под которой понимают возможность оперативного увеличения производительности системы в зависимости от планируемой нагрузки за счет изменения конфигурации сервера приложений;
- конфигурируемость, т.е. возможность произвести изменение системы на любом из ее уровней при возникновении сбоев или в процессе планового обслуживания при неизменности всех остальных уровней, что достигается за счет изолированности уровней друг от друга. Таким образом, возможно осуществить, например, модификацию программного обеспечения отдельного уровня или наращивание вычислительной мощности компьютерного комплекса без какого либо воздействия на другие уровни обработки данных;
- значительно более низкие требования к пропускной способности канала передачи данных между клиентом и сервером приложений по сравнению с классической архитектурой «клиент-сервер»;
- минимальные требования к производительности и техническим характеристикам клиентского оборудования, что позволяет использовать в их качестве так называемые «тонкие» клиенты - мобильные устройства, вычислительных ресурсов которых достаточно лишь для запуска необходимого сетевого приложения через web- интерфейс [7].
2.3 Пример использования трехзвенной архитектуры при построении информационной системы
Трехзвенная архитектура построения многопользовательской программной системы для работы с базами данных была успешно использована нами при реализации программной задачи (ПЗ) «Контроль исполнения» из состава комплекса программных средств (КПС) «Инспекторские проверки», разработанной для нужд Федеральной таможенной службы Российской Федерации.
Клиентское программное обеспечение разрабатывалось в виде Windows Forms приложений с использованием языка программирования C# в среде инструментальной разработки Microsoft Visual Studio 2010 и языка серверной части PL/ SQL СУБД Oracle.
Программное обеспечение сервера приложений разрабатывалось с использованием языка программирования C# в среде инструментальной разработки Microsoft Visual Studio 2010.
В соответствии с требованиями технического задания на разработку ПЗ «Контроль исполнения» в качестве СУБД в системе применялись:
- на сервере баз данных - ORACLE Database Server версии 10g или выше
- на сервере приложений - ORACLE Client версии 10g или выше и MS .NET Data Provider for Oracle.
В соответствии с трехзвенной архитектурой общая концепция обработки данных в ПЗ «Контроль исполнения» предполагает разделение его составляющих на три уровня:
- уровень клиента;
- уровень доступа к данным;
- уровень данных.
Далее подробно рассмотрим каждый из уровней.
Уровень клиента - реализация интерфейсного компонента, приложение для конечного пользователя. Этот уровень в целях безопасности не имеет прямых связей с базой данных, однако помимо интерфейса здесь реализуются некоторые несложные операции с загруженными данными, проверка введенных значений и реализации правил и ограничений автоматизируемых операций, а также при необходимости алгоритмы шифрования данных.
Уровень доступа к данным (уровень сервера приложений). На этом уровне процедуры, реализованные через технологию провайдера DataAdapter возвращают данные от источника данных (Data Source), в качестве которого применяется СУБД Oracle, в виде структурированных наборов данных (DataSet) и изменяют данные в соответствии со значениями параметров системного класса OracleCommand, в котором отражаются изменения наборов данных DataSet. В качестве шаблона (т.е. прототипа DataSet) используются классы описатели данных - наследники класса DataSet.
Уровень данных - реализация самой СУБД. На этом уровне операции с базой данных выполняются с помощью хранимых процедур и триггеров СУБД, а также с помощью встроенных SQL-утверждений в программном коде сервера приложений.
Использование хранимых процедур диктуется следующими причинами:
- применение хранимых процедур в большинстве случаев повышает производительность, так как помогает оптимизировать план доступа к данным, используемым процедурой, и кэшировать эти данные для дальнейшего применения;
- использование хранимых процедур позволяет защищать их индивидуально на уровне базы данных. Клиенту можно выдать разрешения на выполнение хранимой процедуры, не предоставляя разрешения на доступ к используемым процедурой таблицам, что повышает защищенность данных;
- реализация бизнес-логики через хранимые процедуры позволяет упростить сопровождение системы, так как обычно легче изменить хранимую процедуру, чем «жестко зашитый» в развертываемый компонент оператор SQL;
- хранимые процедуры создают дополнительный уровень абстракции от схемы базы данных. Клиенту хранимой процедуры не требуется что-либо знать ни о деталях работы хранимой процедуры, ни о схеме базы данных;
- хранимые процедуры уменьшают сетевой трафик, так как в этом случае операторы SQL выполняются в пакетном режиме, а не путем передачи многократных запросов от клиента.
Использование встроенных в программный код SQL-утверждений позволяет воспользоваться более мощными средствами обработки параметров и генерации динамических SQL- запросов, а также, при необходимости, большей независимостью от используемых СУБД.
Рис. 2.2 Структура функционирования программной задачи «Контроль исполнения»
Для выполнения ряда специальных общесистемных функций в модель данных введен ряд общесистемных таблиц базы данных. В частности они используются:
- для хранения регистрационных параметров КПС;
- для выполнения задач организации разграничения доступа к ресурсам системы;
- для описания перечня таблиц базы данных (сущностей предметной области) и основных атрибутов этих сущностей;
- для организации мониторинга действий пользователей;
- для организации протоколирования изменений базы данных.
На уровне базы данных реализуется ряд общесистемных хранимых процедур и триггеров БД. В частности они обеспечивают:
- запись в протокол изменений БД;
- формирование уникальных ключей экземпляра БД;
- организацию каскадного удаления данных и другие действия служебного характера.
Модель, указывающая варианты реализации и размещения программных компонентов, приводится на рисунке 2.
В процессе работы системы возникают следующие потоки данных:
- со стороны клиента на сервер приложений передаются тип операций (запросов) и параметры, необходимые для выполнения этих операций;
- со стороны сервера приложений на клиента передаются результаты выполнения операций.
Это могут быть коды выполнения операций, наборы данных (Data Set), тексты сообщений, сложные объекты, содержащие специализированную информацию, а также любые другие данные, сформированные в результате работы сервера приложений с сервером баз данных.
Взаимодействие сервера приложений с сервером баз данных осуществляется либо вызовом хранимых процедур с получением результатов выполнения этих процедур, либо непосредственным выполнением SQL запросов.
Ядром ПЗ «Контроль исполнения» является сервер приложений, который выполняет следующие функции:
- получение запросов клиентских приложений на аутентификацию и идентификацию пользователей, и выполнение этих процедур;
- получение запросов клиентских приложений на выполнение специализированных функций, их выполнение и передача результатов выполнения клиентским приложениям;
- ведение сессий пользователей - информации о пользователе, его правах, идентификаторе сессии, время запуска сессии, время последнего обращения пользователя, выполняемые запросы и т.д.;
- организация доступа к базе данных;
- сервисные функции, такие как упаковка (распаковка) объектов данных, формирование SQL-запросов на основе набора параметров, очистка поисковых таблиц (таблиц, временно хранящих результаты выполнения поисковых запросов) и т.д.
2.4 Перспективы использования трехзвенной архитектуры «клиент-сервер»
На сегодняшний день распределенные СУБД являются одним из наиболее значимых направлений развития современного рынка программных продуктов. В связи с постоянным ростом объемов обрабатываемых данных, интенсивным развитием информационных сетей, в том числе беспроводных, повсеместным распространения мобильных гаджетов в качестве тонких клиентов, необходимость широкого внедрения трехзвенной архитектуры технологии «клиент - сервер» становится все более ощутимой. Например, подавляющее большинство из существующих на сегодняшний день мобильных устройств обладает широкими возможностями для работы с данными с помощью информационных сетей, и, стоит отметить, что эти возможности постоянно совершенствуются. Одним из основных способов доступа к данным с использованием таких устройств в качестве клиентских терминалов становится концепция облачных вычислений («cloud computing»), которая предполагает обеспечение удаленного динамического доступа пользователей к услугам, вычислительным ресурсам и приложениям (включая операционные системы и инфраструктуру) через информационные сети.
В последнее время активно развивается многоуровневая архитектура (M-tier), которая предполагает еще больший уровень абстракции, в результате чего вышеописанные три уровня могут быть разбиты еще на несколько составляющих. В качестве примера можно привести архитектуру, в которой уровень базы данных может быть разделен на составляющую, ответственную исключительно за хранение данных, а также интерфейсный комплекс, обеспечивающий построение запросов к базе данных. Таким образом, многоуровневая архитектура является частным случаем трехуровневой, но при этом обладает большей степенью детализации.
Очевидно, что использование именно многоуровневой архитектуры является идеальным вариантом реализации облачных технологий обработки данных.
ЗАКЛЮЧЕНИЕ
Трехзвенная архитектура позволяет реализовать работоспособные и эффективные информационные системы, которые успешно используются, в том числе, и в современных реалиях постоянно увеличивающихся информационных потоков и повсеместного использования в качестве основного рабочего инструмента мобильных устройств - типичных «тонких» клиентов.
При этом, дальнейшее продолжение трехзвенной технологии в виде многоуровневой архитектуры обработки информации помогает существенно расширить ее возможности, в том числе и в рамках облачных технологий. Таким образом, трехуровневая технология обработки данных не только соответствует всем современным требованиям, но и обладает значительными возможностями для развития, что позволяет сделать вывод о безусловной перспективности многозвенной архитектуры в области современных технологий обработки информации.
СПИСОК ЛИТЕРАТУРЫ
- Александреску, А. Язык программирования D / А. Александреску. - СПб.: Символ-плюс, 2014. - 544 c.
- Ашарина, И.В. Основы программирования на языках C и C++ / И.В. Ашарина. - М.: ГЛТ, 2012. - 208 c.
- Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. - М.: ИЦ Академия, 2012. - 368 c.
- Белоусова, С.Н. Основные принципы и концепции программирования на языке VBA в Excel: Учебное пособие / С.Н. Белоусова, И.А. Бессонова. - М.: БИНОМ. ЛЗ, 2010. - 200 c.
- Бьянкуцци, Ф. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования / Ф. Бьянкуцци, Ш. Уорден. - М.: Символ, 2011. - 608 c.
- Бьянкуцци, Ф. Пионеры программирования: Диалоги с создателями наиболее популярных языков программирования / Ф. Бьянкуцци, Ш. Уорден; Пер. с англ. С. Маккавеев. - СПб.: Символ-Плюс, 2011. - 608 c.
- Бэгг К., Конноли Т., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика. 2-е изд. М.: Вильямс, 2000.
- Воронин В.В., Семченко П.Н. Концепция клиент - серверной среды динамических экспертных систем // Интеллектуальные системы, 2010. №3. C. 95100.
- Головин, И.Г. Языки и методы программирования: Учебник для студентов учреждений высшего профессионального образования / И.Г. Головин, И.А. Волкова. - М.: ИЦ Академия, 2012. - 304 c.
- Дейт К. Дж. Введение в системы баз данных. 8-е изд. М.: Вильямс, 2005.
- Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2016. - 134 c.
- Карпова Т. Базы данных. Модели, разработка, реализация. СПб.: Питер, 2001.
- Керниган, Б. Язык программирования C. / Б. Керниган, Д.М. Ритчи. - М.: Вильямс, 2016. - 288 c.
- Кренке Д. Теория и практика построения баз данных. 8-е изд. СПб.: Питер, 2003.
- Мартин Дж. Организация баз данных в вычислительных системах. М.: Мир, 1980.
- Опалева, Э.А. Языки программирования и методы трансляции. / Э.А. Опалева. - СПб.: BHV, 2005. - 480 c.
- Орлов, С. Теория и практика языков программирования: Учебник для вузов. Стандарт 3-го поколения / С. Орлов. - СПб.: Питер, 2013. - 688 c.
- Пирс, Б. Типы в языках программирования / Б. Пирс. - М.: КДУ, 2012. - 680 c.
- Серебряков, В.А. Теория и реализация языков программирования / В.А. Серебряков. - М.: Физматлит, 2012. - 236 c.
- Фридман, А.Л. Основы объектно-ориентированного программирования на языке Си++ / А.Л. Фридман. - М.: Гор. линия-Телеком, 2012. - 234 c.
- Хейлсберг, А. Язык программирования C#. Классика Computers Science / А. Хейлсберг, М. Торгерсен, С. Вилтамут. - СПб.: Питер, 2012. - 784 c.
- Цуканова, Н.И. Теория и практика логического программирования на языке Visual Prolog 7: Учебное пособие для вузов / Н.И. Цуканова, Т.А. Дмитриева. - М.: Гор. линия-Телеком, 2013. - 232 c.
- Microsoft Developer Network - Chapter 5: Layered Application Guidelines. http://msdn.microsoft.com/.
- Сущность и значение понятий оплаты труда и заработной платы
- АНАЛИЗ ЭФФЕКТИВНОСТИ ДЕЯТЕЛЬНОСТИ ПАО «СБЕРБАНК»
- Разработка сайта для обработки цветов (Садавод)
- КЛАССИФИКАЦИЯ И ОБОЗНАЧЕНИЕ
- Разработка и реализация конфигурации «Компания по реализации стройматериалов» в среде 1С:Предприятие
- Политика развития персонала в системе стратегического управления кадровым направлением деятельности организации (Теоретические аспекты политики развития персонала)
- Общая характеристика и структура управления организацией
- «Развитие воображения в дошкольном возрасте»
- Оценка качества (выбрать из ОКП )товаров, рисовая крупа
- Кадровое планирование и его значение БУЗОО «РУССКО-ПОЛЯНСКАЯ ЦРБ»
- Коммерческие риски и способы их уменьшения (на примере конкретной организации) ПАО «АЭРОФЛОТ РА»
- Особенности политики мотивации персонала организаций бюджетной сферы, ЦТО