- •Содержание
- •Информатика. Предмет и задачи
- •Структура информатики
- •Задачи информатики:
- •Измерение и представление информации
- •СигналыДанныеМетодыИнформация
- •Методы воспроизведения и обработки данных
- •Информационный процесс
- •Меры информации
- •Единицы измерения информации
- •Качественные свойства информации
- •Классификация информации
- •Хранение информации
- •Кодирование данных двоичным кодом
- •Системы счисления
- •Двоичная система счисления
- •Перевод из десятичной системы в двоичную
- •Арифметические операции с двоичными числами
- •Восьмеричная и шестнадцатеричная системы счисления
- •Кодирование числовых данных
- •Кодирование текстовых данных
- •Кодирование графических данных
- •Кодирование звуковых данных
- •Послесловие к лекции о кодировании данных в компьютере
- •Хранение данных в компьютере
- •История развития вычислительной техники
- •Классификация эвм по принципу действия
- •Поколения цифровых эвм
- •Архитектура эвм
- •Архитектура эвм, построенная на принципах фон Неймана
- •Структура современных эвм
- •Тенденции в развитии структуры современных эвм
- •Упрощенная структурная схемаIbmpCсовместимого компьютера
- •Структура и виды команд
- •Состав машинных команд
- •Основной цикл работы компьютера
- •Обработка прерываний
- •Состав вычислительной системы
- •Аппаратное обеспечение
- •Программное обеспечение
- •Операционная система
- •Ос как расширенная машина
- •Ос как система управления ресурсами
- •Функции ос
- •Понятие многозадачности
- •Установка приложений
- •Удаление приложений
- •Обеспечение взаимодействия с аппаратным обеспечением
- •Обслуживание компьютера
- •Прочие функции операционных систем
- •Особенности файловых систем
- •Файловые системы fat и fat32
- •Файловая система ntfs
- •Физическая структура ntfs
- •Mft и его структура.
- •Основные понятия ос Windows
- •Моделирование как метод решения прикладных задач
- •Моделирование как метод познания
- •Материальные и информационные модели
- •Формализация модели
- •Математическое моделирование
- •Классификация математических моделей по цели моделирования
- •Компьютерное моделирование
- •Этапы и цели компьютерного математического моделирования
- •Понятие алгоритма и его свойства
- •Определение алгоритма на основе рекурсивных функций
- •Определение алгоритма на основе абстрактных автоматов (машины Тьюринга)
- •Способы записи алгоритмов
- •Линейный алгоритм
- •Разветвляющийся алгоритм
- •Циклический алгоритм
- •Объекты алгоритма
- •Языки и системы программирования
- •Классификация языков программирования, их эволюция
- •Алгоритмические (процедурные) языки программирования
- •Декларативные (описательные) языки программирования
- •Объектно-ориентированные языки программирования
- •Языки создания сценариев (программирование для Интернета)
- •Языки программирования баз данных
- •Языки моделирования
- •Поколения языков программирования
- •Системы программирования и их компоненты
- •Архитектура программных систем
- •Технологии программирования
- •Основные этапы развития технологии программирования
- •Модули и их свойства
- •Нисходящая и восходящая разработка программного обеспечения
- •Структурное и «неструктурное» программирование
Архитектура программных систем
В то время как большинство автономных приложений: офисные программы, среды разработки, системы подготовки текстов и изображений – выполняются на одном компьютере, крупные информационные комплексы (например, система автоматизации предприятия) состоят из десятков и сотен отдельных программ, которые взаимодействуют друг с другом по сети, выполняясь на разных компьютерах. В таких случаях говорят, что они работают в различной программной архитектуре. Она делится на следующие группы.
Автономные приложения. Работают на одном компьютере.
Приложения в файл-серверной архитектуре. Компьютеры пользователей системы объединены в сеть, при этом на каждом из них (наклиентском месте) запущены копии одной и той же программы, которые обращаются за данными ксерверу – специальному компьютеру, который хранит файлы, одновременно доступные всем пользователям (как правило, это базы данных). Сервер обладает повышенной надежностью, высоким быстродействием, большим объемом памяти, на нем установлена специальнаясерверная версия операционной системы.
При одновременном обращении нескольких программ к одному файлу, например, с целью его обновления, могут возникнуть проблемы, связанные с неоднозначностью определения его содержимого. Поэтому каждое изменение общедоступного файла выделяется в транзакцию – элементарную операцию по обработке данных, имеющую фиксированные начало, конец (успешное или неуспешное завершение) и ряд других характеристик (системаOLTP).
Особенность этой архитектуры в том, что все вычисления выполняются на клиентских местах, что требует наличия на них достаточно производительных ПК (это так называемые системы с толстым клиентом – программой, которая выполняет всю обработку получаемой от сервера информации).
Приложения в клиент-серверной архитектуре. Эта архитектура похожа на предыдущую, только сервер помимо простого обеспечения одновременного доступа к данным способен еще выполнять программы (обычно выполняются СУБД – тогда сервер называетсясервером баз данных), которые берут на себя определенный объем вычислений (в файл-серверной архитектуре он реализуется полностью на клиентских местах). Благодаря этому удается повысить общую надежность системы, так как сервер работает значительно более устойчиво, чем ПК, и снять лишнюю нагрузку с клиентских мест, на которых удается использовать дешевые компьютеры. Запускаемые на них приложения реально осуществляют небольшие объемы вычислений, а иногда занимаются только отображением получаемой от сервера информации, поэтому они называютсятонкими клиентами.
Приложения в многозвенной архитектуре. Недостаток предыдущей архитектуры в том, что резко возрастает нагрузка на сервер, а если он выходит из строя, то работа всей системы останавливается. Поэтому в некоторых случаях в систему добавляется так называемыйсервер приложений, на котором выполняется вся вычислительная работа. Другой сервер баз данных обрабатывает запросы пользователей, на третьем может быть установлена специальная программа –монитор транзакций, которая оптимизирует обработку транзакций и балансирует нагрузку на серверы. В большинстве практических случаев все серверы соединены последовательно –позвенно, и выход из строя одного звена если и не останавливает всю работу, то по крайней мере резко снижает производительность системы.
Приложения в распределенной архитектуре. Чтобы избежать недостатков рассмотренных архитектур, были придуманы специальные технологии, позволяющие создавать программу в виде набора компонентов, которые можно запускать на любых серверах, связанных в сеть (компоненты как бы распределены по сети). Основное преимущество подобного подхода в том, что при выходе из строя любого компьютера специальныепрограммы-мониторы, которые следят за корректностью работы компонентов и позволяют им «переговариваться» между собой, сразу перезапуская временно пропавший компонент на другом компьютере. При этом общая надежность всей системы становится очень высокой, а вычислительная загрузка распределяется между серверами оптимальным образом. Доступ к возможностям любого компонента, предназначенного для общения с пользователем, осуществляется с произвольного клиентского места. При этом, так как все вычисления происходят на серверах, появляется возможность создаватьсверхтонкие клиенты – программы, только отображающие получаемую из сети информацию и требующие минимальных компьютерных ресурсов. Благодаря этому доступ к компонентной системе возможен не только с ПК, но и с небольших мобильных устройств.
Частный случай компонентного подхода — доступ к серверным приложениям из броузеров через Интернет.
Сегодня наиболее популярны три компонентные технологии – CORBA консорциума ОМG,Java BeansкомпанииSunиСОМ+ корпорацииMicrosoft.
Для разработки серверных и распределенных приложений можно использовать систему программирования MicrosoftVisualC++, продукты фирмыInpriseпод маркойBorland, практически любые средства программирования наJava.