ответник 10-11. 11. Технология объектноориентированного программирования
Скачать 0.83 Mb.
|
Абстракция данных. Объекты представляют собою упрощенное, идеализированное описание реальных сущностей предметной области. Если соответствующие модели адекватны решаемой задаче, то работать с ними оказывается намного удобнее, чем с низкоуровневым описанием всех возможных свойств и реакций объекта. Инкапсуляция — это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик — пользователь класса должен видеть и использовать только интерфейсную часть класса (т. е. список декларируемых свойств и методов класса) и не вникать в его внутреннюю реализацию. Поэтому данные принято инкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записи осуществлялся не напрямую, а с помощью методов. Принцип инкапсуляции (теоретически) позволяет минимизировать число связей между классами и, соответственно, упростить независимую реализацию и модификацию классов. Сокрытие данных — неотделимая часть ООП, управляющая областями видимости. Является логическим продолжением инкапсуляции. Целью сокрытия является невозможность для пользователя узнать или испортить внутреннее состояние объекта. Наследованием называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые свойства и методы. Набор классов, связанных отношением наследования, называют иерархией. Наследование призвано отобразить такое свойство реального мира, как иерархичность. Полиморфизмом называют явление, при котором функции (методу) с одним и тем же именем соответствует разный программный код (полиморфный код) в зависимости от того, объект какого класса используется при вызове данного метода. Полиморфизм обеспечивается тем, что в классе-потомке изменяют реализацию метода класса-предка с обязательным сохранением сигнатуры метода. Это обеспечивает сохранение неизменным интерфейса класса-предка и позволяет осуществить связывание имени метода в коде с разными классами — из объекта какого класса осуществляется вызов, из того класса и берётся метод с данным именем. Такой механизм называется динамическим (или поздним) связыванием — в отличие от статического (раннего) связывания, осуществляемого на этапе компиляции. 11.3. Определение класса. Объект как представитель класса. Механизм наследования классов. Множественное наследование. ИЗ Книги Лафоре Объектно-ориентированное программирование. 11.4. Языки Smalltalk и C++, сравнительная характеристика. Smalltalk Smalltalk (произносится [смо?лток]) — объектно-ориентированный язык программирования с динамической типизацией, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и другими в 1970-х годах. Язык был представлен как Smalltalk-80 и с тех пор широко используется. Smalltalk продолжает активно развиваться и собирает вокруг себя сообщество пользователей. Smalltalk оказал большое влияние на развитие многих других языков, таких как: Objective-C, Actor, Java, Groovy и Ruby. Многие идеи 1980-х и 1990-х по написанию программ появились в сообществе Smalltalk. К ним можно отнести рефакторинг, шаблоны проектирования (применительно к ПО), карты Класс-Обязанности-Взаимодействие и экстремальное программирование в целом. Основатель концепции Wiki, Вард Каннингем, также входит в сообщество Smalltalk. Основные идеи Основными идеями Smalltalk являются: Всё — объекты. Строки, целые числа, логические значения, определения классов, блоки кода, стеки, память — всё представляется в виде объектов. Выполнение программы состоит из посылок сообщений между объектами. Любое сообщение может быть послано любому объекту; объект-получатель определяет, является ли это сообщение правильным, и что надо сделать, чтобы его обработать. Всё доступно для изменения. Если вы хотите изменить интегрированную среду разработки, вы можете сделать это в работающей системе, без остановки, перекомпиляции и перезапуска. Если вам необходима в языке новая управляющая структура, вы можете добавить её. В некоторых реализациях вы можете также изменить синтаксис языка или способ работы сборщика мусора. Динамическая типизация — это означает, что вы не указываете типы переменных в программе, что делает язык гораздо лаконичней. (Как объяснено выше, является ли операция правильной, определяет объект-получатель, а не компилятор). Model-view-controller (MVC) шаблон структуры пользовательского интерфейса. (В последнее время используют и другие концепции реализации пользовательского интерфейса — например, Morlihic в Squeak и LIollock в VisualWorks). Dynamic translation: современные коммерческие виртуальные машины компилируют байткоды в машинные коды для быстрого выполнения. Чтобы лучше понять, как работает механизм обмена сообщениями, можно представить каждый объект как веб-сервер, отвечающий на запросы. 12. Информационно-вычислительные сети. Определение. Информационно-вычислительная сеть – это система компьютеров, объединенных каналами передачи данных. Соединение компьютеров в сеть обеспечивает следующие основные возможности: > Объединение ресурсов - возможность резервировать вычислительные мощности и средства передачи данных на случай выхода из строя отдельных из них с целью быстрого восстановления нормальной работы сети. > Разделение ресурсов - возможность стабилизировать и повысить уровень загрузки компьютеров и дорогостоящего периферийного оборудования, управлять периферийными устройствами. > Разделение данных - возможность создавать распределенные базы данных, размещаемые в памяти отдельных компьютеров, и управлять ими с периферийных рабочих мест > Разделение программных средств - возможность совместного использования программных средств. > Разделение вычислительных ресурсов - возможность организовать параллельную обработку данных; используя для обработки данных другие системы, входящие в сеть. > Многопользовательский режим. Основная задача существования ИВС – информационное обслуживание пользователей, в том числе:
Современные ИС, как правило, являются распределенными. Таким образом, ИВС представляет собой комплекс технических средств, обеспечивающих функционирование ИС (техническую обеспечивающую подсистему). Показатели качества ИВС:
12.1. Архитектура ИВС. Территориальные и локальные вычислительные сети. Протоколы ИВС. Концептуальное описание информационно-вычислительной сети часто называют ее архитектурой. Понятие Архитектура ИВС обычно включает в себя описание следующих элементов:
Определение. Топология – это схема соединения сетевых компьютеров, кабельной системы и других сетевых компонентов. Топологии ИВС принято разделять на 2 основных класса:
В широковещательных конфигурациях каждый компьютер передает сигналы, которые могут быть восприняты всеми остальными компьютерами. К таким конфигурациям относятся:
Широковещательные топологии применяются в основном для ЛВС. В последовательных конфигурациях каждый физический подуровень передает информацию только одному компьютеру. К таким конфигурациям относятся:
Последовательные топологии применяются для глобальных сетей. Сети с шинной топологией используют линейный общий канал связи, к которому все узлы присоединяются через интерфейсные устройства посредством коротких соединительных линий. В сети с кольцевой топологией все узлы соединены в единую замкнутую петлю (кольцо) каналами связи. Выход одного узла соединяется со входом другого узла. Информация передается от узла к узлу и при необходимости (если сообщение адресовано не ему) ретранслируется им по сети дальше. Передача данных осуществляется с использованием специальной интерфейсной аппаратуры и ведется в одном направлении. Основу сети с радиальной топологией составляет специальное сетевое устройство, к которому подключаются компьютеры – каждый по своей линии связи. Таким устройством может выступать активный или пассивный концентратор, через который рабочие станции сети, например, осуществляют взаимодействие с сервером. Существуют также иные виды топологий, которые являются развитием базовых: цепочка, дерево, снежинка, сеть и т.д. Топология реальной сети может совпадать с одной из указанных выше, либо представлять собой их комбинацию. В различных топологиях реализуются различные принципы передачи информации:
ИВС классифицируются по ряду признаков. Зависимо от расстояний меж связываемыми узлами различают вычислительные сети: территориальные — обхватывающие существенное географическое место. Посреди территориальных сетей можно выделить сети региональные и глобальные, имеющие соответственно региональные либо глобальные масштабы; региональные сети время от времени именуют сетями MAN (Metropolitan Area Network), а общее английское заглавие для территориальных сетей — WAN (Wide Area Network); локальные (ЛВС) — обхватывающие ограниченную местность (обычно в границах удаленности станций менее чем на несколько 10-ов либо сотен метров друг от друга, пореже — на 1.2 км). Локальные сети обозначают LAN (Local Area Network); Определение. Сетевой протокол – это набор правил и методов взаимодействия объектов вычислительной сети, охватывающий основные процедуры, алгоритмы и форматы преобразования и передачи данных в сети. Международная организация по стандартизации разработала систему стандартных протоколов, которые охватывают все уровни сетевого взаимодействия – от физического до прикладного. Эта система протоколов получила название модели взаимодействия открытых систем (OSI, Open System Interconnection). Модель OSI включает в себя 7 уровней взаимодействия:
12.2. Аппаратное обеспечение ИВС. Программное обеспечение ИВС. Аппаратное обеспечение сетей ЭВМ. Сетевые карты - периферийное устройство, позволяющее компьютерувзаимодействовать с другими устройствами сети. В настоящее время, особенно в персональных компьютерах, сетевые платы довольно часто интегрированы в материнские платы для удобства и удешевления всего компьютера в целом. Сетевой адаптер (Network Interface Card (или Controller), NIC) вместе со своим драйвером реализует второй, канальный уровень модели открытых систем в конечном узле сети — компьютере. Более точно, в сетевой операционной системе пара адаптер и драйвер выполняет только функции физического и МАС-уровней, в то время как LLC-уровень обычно реализуется модулем операционной системы, единым для всех драйверов и сетевых адаптеров. Собственно так оно и должно быть в соответствии с моделью стека протоколов IEEE 802. Например, в ОС Windows NT уровень LLC реализуется в модуле NDIS, общем для всех драйверов сетевых адаптеров, независимо от того, какую технологию поддерживает драйвер. Сетевой адаптер совместно с драйвером выполняют две операции: передачу и прием кадра. Мосты - сетевое устройство 2 уровня модели OSI, предназначенное для объединения сегментов(подсети) компьютерной сети разных топологий и архитектур. Мост обеспечивает: · ограничение домена коллизий · задержку фреймов, адресованных узлу в сегменте отправителя · ограничение перехода из домена в домен ошибочных фреймов: 1. карликов (фреймов меньшей длины, чем допускается по стандарту (64 байта)) 2. фреймов с ошибками в CRC 3. фреймов с признаком «коллизия» 4. затянувшихся фреймов (размером больше, чем разрешено стандартом) Мосты «изучают» характер расположения сегментов сети путем построения адресных таблиц вида «Интерфейс:MAC-адрес», в которых содержатся адреса всех сетевых устройств и сегментов, необходимых для получения доступа к данному устройству. Мосты увеличивают латентность сети на 10-30 %. Это увеличение латентности связано с тем, что мосту при передаче данных требуется дополнительное время на принятие решения. Мост рассматривается как устройство с функциями хранения и дальнейшей отправки, поскольку он должен проанализировать поле адреса пункта назначения фрейма и вычислить контрольную сумму CRC в поле контрольной последовательности фрейма перед отправкой фрейма на все порты. Если порт пункта назначения в данный момент занят, то мост может временно сохранить фрейм до освобождения порта. Для выполнения этих операций требуется некоторое время, что замедляет процесс передачи и увеличивает латентность. Коммутаторы - устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети. В отличие от концентратора, который распространяет трафик от одного подключенного устройства ко всем остальным, коммутатор передаёт данные только непосредственно получателю, исключение составляет широковещательный трафик (на MAC-адрес FF:FF:FF:FF:FF:FF) всем узлам сети. Это повышает производительность и безопасность сети, избавляя остальные сегменты сети от необходимости (и возможности) обрабатывать данные, которые им не предназначались. Коммутатор работает на канальном (2) уровне модели OSI и потому в общем случае может только объединять узлы одной сети по их MAC-адресам. Коммутаторы были разработаны с использованием мостовых технологий и часто рассматриваются как многопортовые мосты. Маршрутизаторы - сетевоеустройство, на основании информации о топологии сети и определённых правил принимающее решения о пересылке пакетов сетевого уровня (уровень 3 модели OSI) между различными сегментами сети. Работает на более высоком уровне (3 уровень), нежели коммутатор и сетевой мост. Маршрутизаторы помогают уменьшить загрузку сети, благодаря её разделению на домены коллизий или широковещательные домены, а также благодаря фильтрации пакетов. В основном их применяют для объединения сетей разных типов, зачастую несовместимых по архитектуре и протоколам, например для объединения локальных сетей Ethernet и WAN-соединений, использующих протоколы xDSL, PPP, ATM, Frame relay и т. д. Нередко маршрутизатор используется для обеспечения доступа из локальной сети в глобальную сеть Интернет, осуществляя функции трансляции адресов и межсетевого экрана. В качестве маршрутизатора может выступать как специализированное (аппаратное) устройство, так и обычный компьютер, выполняющий функции маршрутизатора. |