Архитектура "клиент-сервер": открытые системы, клиенты и серверы локальных сетей, системная архитектура "клиент-сервер", серверы баз данных.
Открытые системы.
Открытая система – это любая система (компьютер, вычислительная сеть, ОС, программный пакет и т.д.), которая построена в соответствии с открытыми спецификациями. Открытые спецификации – опубликованные, общедоступные описания систем, соответствующие стандартам. Основной подход открытых систем – упрощение комплексирования вычислительных систем за счет международной и национальной стандартизации аппаратных и программных интерфейсов. Главная причина развития открытых систем – повсеместный переход к локальным и глобальным сетям. Открытые системы позволяют быть независимыми от поставщиков и наращивать мощность системы, используя аппаратные и программные средства различных производителей, придерживающихся стандартов открытых систем.
Практической опорой системных и прикладных программных средств открытых систем является стандартизованная ОС. В настоящее время такой ОС является ОС Unix, открытость которой заключается в стандартизованном программном интерфейсе м/д ядром и приложениями, что позволяет переносить приложение из одной версии ОС в другую. Модель OSI (модель взаимодействия открытых систем) касается только открытости средств взаимодействия устройств, связанных в вычислительную сеть. Пример открытой системы – Internet (стандарты RFC).
Технологии и стандарты обеспечивают производство системных и программных средств со свойствами мобильности и интероперабельности. Мобильность – простота переноса программной системы в широком спектре аппаратно-программных средств, соответствующих стандартам. Интероперабельность - упрощение комплексирования программных систем на основе использования готовых компонентов со стандартными интерфейсами.
Клиенты и серверы локальных сетей.
В основе распространения локальных сетей лежит идея разделения ресурсов. Высокая пропускная способность локальных сетей обеспечивает эффективный доступ из одного узла локальной сети к ресурсам других узлов. Необходимо иметь не только доступ к ресурсами удаленного компьютера, но также получать от этого узла некоторый сервис, который специфичен для ресурсов данного рода. Следствие этого: рабочие станции и серверы.
Рабочая станция предназначена для непосредственной работы пользователя или категории пользователей и обладает ресурсами, соответствующими локальным потребностям данного пользователя. Специфические особенности рабочей станции: 1) объем ОЗУ; 2) наличие и объем дисковой памяти (можно использовать внешнюю память дискового сервера); 3) характеристики процессора и монитора. При необходимости можно использовать ресурсы и/или услуги, предоставляемые сервером.
Сервер локальной сети должен обладать ресурсами, соответствующими его функциональному назначению и потребностям сети. С точки зрения открытых систем, правильнее говорить о логических серверах (имея в виду набор ресурсов и программных средств, обеспечивающих услуги над этими ресурсами), которые располагаются не обязательно на разных компьютерах. Особенностью логического сервера в открытой системе является то, что если сервер целесообразно переместить на отдельный компьютер, то это можно проделать без переделки как его самого, так и использующих его прикладных программ.
Примеры серверов:
1) сервер телекоммуникаций, обеспечивающий услуги по связи данной локальной сети с внешним миром;
2) вычислительный сервер, производящий вычисления, которые невозможно выполнить на рабочих станциях;
3) дисковый сервер, обладающий расширенными ресурсами внешней памяти;
4) файловый сервер, поддерживающий общее хранилище файлов для всех рабочих станций;
5) сервер баз данных фактически обычная СУБД, принимающая запросы по локальной сети и возвращающая результаты.
Клиент локальной сети - компонент, запрашивающий услуги у некоторого сервера и сервером - компонент, оказывающий услуги некоторым клиентам.
Системная архитектура «клиент-сервер».
Чтобы прикладная программа, выполняющаяся на рабочей станции, могла запросить услугу у сервера, требуется некоторый интерфейсный программный слой, поддерживающий такое взаимодействие. Из этого вытекают основные принципы системной архитектуры "клиент-сервер".
Система разбивается на две части, которые могут выполняться в разных узлах сети, - клиентскую и серверную части. Прикладная программа или конечный пользователь взаимодействуют с клиентской частью системы, которая обеспечивает надсетевой интерфейс. Клиентская часть системы при потребности обращается по сети к серверной части. Интерфейс серверной части определен и фиксирован. Поэтому возможно создание новых клиентских частей существующей системы.
Основной проблемой систем, основанных на архитектуре "клиент-сервер", является то, что в соответствии с концепцией открытых систем от них требуется мобильность в как можно более широком классе аппаратно-программных решений открытых систем. Попытки создания систем, поддерживающих все возможные протоколы, приводит к их перегрузке сетевыми деталями в ущерб функциональности.
Еще 1 проблема связана с возможностью использования разных представлений данных в узлах неоднородной локальной сети. В разных компьютерах может существовать различная адресация, представление чисел, кодировка символов и т.д. Это особенно существенно для серверов высокого уровня: телекоммуникационных, вычислительных, БД.
Общим решением проблемы мобильности систем, основанных на архитектуре "клиент-сервер", являются программные пакеты, реализующие протоколы удаленного вызова процедур (RPC - Remote Procedure Call). При использовании таких средств обращение к сервису в удаленном узле выглядит как обычный вызов процедуры. Средства RPC, в которых содержится вся информация о специфике аппаратуры локальной сети и сетевых протоколов, переводит вызов в последовательность сетевых взаимодействий. Тем самым, специфика сетевой среды и протоколов скрыта от прикладного программиста.
При вызове удаленной процедуры программы RPC производят преобразование форматов данных клиента в промежуточные машинно-независимые форматы и затем преобразование в форматы данных сервера. При передаче ответных параметров производятся аналогичные преобразования. Если система реализована на основе стандартного пакета RPC, она может быть легко перенесена в любую открытую среду.
Серверы БД.
Сервер БД используют для обозначения всей СУБД, основанной на архитектуре "клиент-сервер", включая и серверную, и клиентскую части. Такие системы предназначены для хранения и обеспечения доступа к БД.
1) Принципы взаимодействия м/д клиентскими и серверными частями.
Доступ к БД от прикладной программы или пользователя производится путем обращения к клиентской части системы. В качестве основного интерфейса между клиентской и серверной частями выступает язык БД SQL. Он представляет собой текущий стандарт интерфейса СУБД в открытых системах.
Серверы БД, интерфейс которых основан исключительно на языке SQL, обладают своими «+» и «-». Очевидное «+» - стандартность интерфейса, а «-» - на стороне клиента работает мало программ СУБД. Это нормально, если на стороне клиента используется маломощная рабочая станция.
2) Преимущества протоколов удаленного вызова процедур.
Протоколы RPC важны в СУБД, основанных на архитектуре "клиент-сервер".
- механизм удаленных процедур позволяет перераспределять функции между клиентской и серверной частями системы, т.к. в тексте программы удаленный вызов процедуры ничем не отличается от локального вызова, и, следовательно, любой компонент системы может располагаться и на стороне сервера, и на стороне клиента.
- механизм удаленного вызова скрывает различия между взаимодействующими компьютерами. Физически неоднородная локальная сеть приводится к логически однородной сети взаимодействующих программных компонентов.
3) Разделение функций м/д клиентами и серверами.
На стороне клиента СУБД работает только такое ПО, которое не имеет непосредственного доступа к БД, а обращается для этого к серверу с использованием языка SQL. В некоторых случаях хотелось бы включить в состав клиентской части системы некоторые функции для работы с "локальным кэшем" БД, т.е. с той ее частью, которая интенсивно используется клиентской прикладной программой. В современной технологии это можно сделать только путем формального создания на стороне клиента локальной копии сервера БД и рассмотрения всей системы как набора взаимодействующих серверов.
Требования к аппаратуре и ПО клиентских и серверных компьютеров различаются в зависимости от вида использования системы.
- Программа государственного экзамена
- Пояснительная записка
- Основные задачи государственного экзамена
- Содержание государственного экзамена
- Структура экзаменационного билета
- Требования к ответу на вопросы экзаменационного билета
- Критерии оценки ответа
- Программа
- I. Общепрофессиональные дисциплины
- Раздел 1. Программирование на языке высокого уровня
- Динамический тип данных, линейные динамические структуры данных: стек, очередь, списки; нелинейные динамические структуры данных: мультисписки, деревья.
- Процедуры и функции: описание, вызов, передача параметров, программирование рекурсивных алгоритмов.
- Раздел 2. Компьютерная графика
- Раздел 3. Организация эвм и систем
- Архитектура эвм, периферийные устройства, организация ввода-вывода информации.
- Системы эвм: вычислительные системы и сети, сопроцессоры, мультипроцессорные вычислительные системы, матричные и конвейерные вычислительные системы, связные устройства, модемы, протоколы обмена.
- Раздел 4. Операционные системы
- Виртуальная память: страничная, сегментная, сегментно-страничная организация памяти, коллективное использование и защита информации; файлы, отображаемые в память.
- Файловая система ос: состав, управление, типы файловых систем; логическая и физическая организация файла, методы доступа, операции над файлами, отображаемые файлы.
- Раздел 5. Базы данных
- Управление транзакциями, сериализация транзакций (синхронизационные захваты, метод временных меток), изолированность пользователей.
- Архитектура "клиент-сервер": открытые системы, клиенты и серверы локальных сетей, системная архитектура "клиент-сервер", серверы баз данных.
- Распределенные бд: разновидности распределенных систем, распределенная субд System r, интегрированные или федеративные системы и мультибазы данных.
- Раздел 6. Сети эвм и телекоммуникации
- Передача дискретных данных: линии связи, методы передачи дискретных данных на физическом уровне, методы передачи данных канального уровня, методы коммутации.
- Средства анализа и управления сетями: функции и архитектура систем управления сетями, стандарты систем управления, мониторинг и анализ локальных сетей.
- Раздел 7. Методы и средства защиты компьютерной информации
- Безопасность компьютерных сетей: протоколы сетевой безопасности, программно-аппаратные комплексы защиты сетей.
- Безопасность современных ос и программных комплексов, вредоносные программы, системы обнаружения вторжений, комплексный подход к проектированию и анализу защищенных ис.
- Раздел 8. Системное программирование
- Организация ячеек памяти, регистры, форматы команд.
- Ассемблер: основные понятия, директивы, команды. Условный и безусловный переходы. Циклы. Массивы. Процедуры. Упакованные данные. Структуры.
- Защищенный режим процессора Intel 80386: страничная адресация, переключение контекста, использование возможностей защищенного режима различными ос.
- Раздел 9. Структуры и алгоритмы обработки данных
- Абстрактный тип данных. Линейные и нелинейные структуры данных. Стек, очередь, списки, деревья, графы.
- Алгоритмы сортировки: методы внутренней и внешней сортировки, анализ сложности и эффективности алгоритмов сортировки.
- Алгоритмы поиска: последовательный, бинарный, интерполяционный поиск, использование деревьев в задачах поиска; хеширование с открытой и закрытой адресацией; алгоритмы поиска подстроки в строке.
- Раздел 10. Функциональное и логическое программирование
- Принципы функционального программирования: программирование при помощи функций, функциональность, основные свойства функциональных языков, язык программирования Лисп, рекурсия.
- Функционалы: функциональное значение функции, способы композиции функций, функции более высокого порядка.
- Раздел 11. Объектно-ориентированное программирование
- Параметрический полиморфизм: шаблонные классы и шаблонные функции - назначение, параметризованные типы данных, синтаксис и семантика.
- Раздел 12. Теория вычислительных процессов
- Элементы теории вычислимости: вычислимость и разрешимость, интуитивное и точное понятие алгоритма, вычислимые функции, машина Тьюринга, массовые алгоритмические проблемы.
- Раздел 13. Теория языков программирования и методы трансляции
- Раздел 14. Архитектура вычислительных систем
- Раздел 15. Технология разработки программного обеспечения
- 1 Область применения
- Структуры данных: несвязанные, с неявными связями, с явными связями; иерархические модели Джексона-Орра; моделирование данных – диаграммы «сущность-связь» (erd); метод Баркера; метод idef1.
- Разработка структуры по при объектом подхода
- Раздел 16. Человеко-машинное взаимодействие
- Типы пользовательских интерфейсов и этапы их разработки, психофизические особенности человека, связанные с восприятием, запоминанием и обработкой информации.
- Раздел 17. Системы искусственного интеллекта
- Системы распознавания образов (идентификации): обучение распознаванию образов, геометрический и структурный подходы, гипотеза компактности, адаптация и обучение.
- Эволюционные методы поиска решений: метод группового учета аргументов, генетический алгоритм.
- Экспертные системы: классификация и структура; инструментальные средства проектирования, разработки и отладки; этапы разработки; примеры реализации.
- Раздел 18. Проектирование информационных систем
- Архитектуры реализации корпоративных информационных систем на платформах Sun, Microsoft, Linux.
- Раздел 19. Сетевые операционные системы
- Основные концепции ос семейства Windows nt: особенности установки, конфигурирования, администрирования, оптимизации производительности.
- Администрирование удаленного доступа к сетям Windows, взаимодействие с сетями tcp/ip, взаимодействие с сетями NetWare, средства просмотра сетевых ресурсов.
- Основные концепции ос unix/Linux, средства графического интерфейса пользователей, основные механизмы и компоненты ядра, программирование в среде unix /Linux.
- Основные концепции ос NetWare, проектирование Novell Directory Services, поддержка ос NetWare.
- Администрирование ос NetWare, дополнительные средства ос NetWare: средства защиты nds для nt, встроенные утилиты администрирования сети.
- Раздел 20. Комплексные программные платформы
- Системы планирования ресурсов предприятия (erp). Основные понятия, принципы, подсистемы.
- Методология внедрения erp-систем.
- Раздел 21. Программное обеспечение распределенных систем и сетей
- Раздел 22. Разработка корпоративного web-узла
- Перечень литературы
- Перечень основных стандартов в области обеспечения жизненного цикла и качества программных средств