Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 4. Выводы Объект характеризуется состоянием, поведением и идентичностью

Выводы

  • Объект характеризуется состоянием, поведением и идентичностью.
  • Структура и поведение одинаковых объектов описывается в общем для них классе.
  • Состояние объекта определяет его статические и динамические свойства.
  • Поведение объекта характеризуется изменением его состояния в процессе взаимодействия (посредством передачи сообщений) с другими объектами.
  • Идентичность объекта – это его отличия от всех других объектов.
  • Иерархия объектов может строиться на принципах связи или агрегации.
  • Множество объектов с одинаковой структурой и поведением является классом.
  • Шесть типов иерархий классов включают: ассоциирование, наследование, агрегация, использование, инстанцирование и метаклассирование.
  • Классы и объекты, образующие словарь предметной области, называются ключевыми абстракциями.
  • Структура, объединяющая множество объектов и обеспечивающая их совместное целенаправленное функционирование, называется механизмом.
  • Качество абстракций измеряется их зацеплением, связностью, достаточностью, полнотой и примитивностью.

 

3. Лекция 3. Распределённое взаимодействие. Распределённые системы. Распределённые объекты.

 

3.1. Основные определения и положения распределённых систем

Распределённая система – это система, составные части которой могут быть пространственно или логически распределены.

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

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

Существует ряд задач, для решения которых традиционным считается целесообразным построение распределённых систем:

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

 

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

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

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

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

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

  • Разделяемые блокировки
  • Монопольные блокировки

Разделяемая блокировка может удерживаться сразу несколькими активными субъектами, при этом ни один субъект не имеет право повысить уровень блокировки до монопольной.

Монопольная блокировка на доступ к объекту может удерживаться лишь одним субъектом в каждый момент времени.

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

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

 

Для обеспечения распределённой работы широко применяются следующие подходы:

  • Взаимодействие по протоколу TCP/IP и использование Berkley sockets (сокеты);
  • Вызов удалённых процедур;
  • Системы распределённых объектов;
  • Системы передачи сообщений.

 

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

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

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

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

Маршалинг – преобразование данных из структуры памяти в поток байт.

Демаршалинг (или анмаршалинг) – обратное преобразование потока байт в структуру данных в памяти.

В ООП и в языке Java (и.технологии.Net) эти процедуры, применительно к объектам называются сериализация и десериализация соответственно [1].

 

<== предыдущая лекция | следующая лекция ==>
Измерение качества абстракции | Программное обеспечение промежуточного слоя (middleware)
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 552; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.