И. Соммервилл - Инженерия программного обеспечения (1133538), страница 57
Текст из файла (страница 57)
Поэтому разработчики, реализуя собственныс средства высокого уровня, могут "пропустить" некоторые уровни модели. Иначе говоря, чтобы повысить производительность системы, разработчики мазут проектировать нсстандартныс средства, которые не укладываются в рамки модели. После этого простая замена уровней в такой модели вряд ли возможна. Однако от этого эффективность модели не сннжаетсл, Даннал модель обеспечивает основу для общего структурирования системы и для реализации взаимодействий между системами. Другими базовыми моделями являютсл САБЕ среды [104, 6*) и модель разработки про.
граммного обеспечения [298, 14в]. Некоторые архитектурные зпаблоны [124, 13*, 32в[ также можно считать базовыми архитектурами. Эти модели обсулщаются в главе 14. , ..КЛЮЧЕВЫЕ ПОНЯТИЯ е~.'о,;,,'-,йркнтезктура: ПО,.-" вто описание структуры программной системы. Разлгнные архитектурные мо[ез з::;",дели, такие как структурная модель, модель управления и модель модульной декомпозиции, раз. к:-.! -.
пабатываются е процессе, итхнуектурного,проектировангм, „ йобо7большйе,снстемызредко сводятся к одной архитектурной. модели. Они неоднородны и на разных йй'-,~буровику обобщения''исрсльауют разные модели..., г,т чзаств Пк. Проектнрованне , °;,к:,'структурным: модмям: отйосятся'''модплй*репозиторив," губделтй",клгшнт/сервергизтягудеялб",,ай~ ршпной машины,'В моделцттвюйитория совместно,йспольэуемйц двнименшящлтсл в ойцемф-.~ нйлище,(РеРоэитопии).;В''ыодшвпг юшент/сеРвеР;даннйе;,Яйк~$ав4~,'Распйццшшныхй~юдфйтй~~~з страктной машины яшмются,'мйогоуровневыми,',прмгем: каждый'дхишьны:реализовайгйвйофЫ средств, предюстзвяяемыхпргедь~цущим уровиы;.:-.'-'-',:='-';.,';.'~:;:,-.'~.",„'.-",":",,:,"..'-ъб~~цйй~~~~~ф : ° к вщешгм управления отцосятсякьюдели цейтралйзотаайнгягтцуравлейия-:,ипзойееяи,".'тлтухшь'ляеггпяцчк событиями: В'централизованных "моделях чятравлеНйе Завйсит,"От'сОстпяниа сйотвьгыг!в.ывдвйтбг," -управляемых сюбытиямилсистемоВуйравляют:енешниесобытшу;.йм."'-'~згг"';„'"~~~~',:к~!-ф;;.,'';:~р...~!$ф ° К моделям модулыюй декомпойцв~",~тнесятспчмодзшш;йртрбовуйшйых' и ообзйктйцетязойатлкй;;.Нточйй дели потоков данных фунщионашлаг;:гв::я времячшюобъвкцяцй',,вщели являются сово~ттностьк»' слабо связанных между собой объекТов с собсшвннымгу ~щтофбгями и опершзшми!Й:йф:.чг4~з 'з ° Проблемно-завйсиыые архмишк~урныегмоделй!отрзжают~сво~фаа и'харйкткрйбпйл~фрцйфй" областей.
Проблемно-ивисимце'мгщмвделята~;~яг';.'туобкелибшассов:сйстемч„:Ттррвюцйувмые'шг'а"'1 основе существующих листвы;;.'й:базовйе, модвлй; который':предстманотгсобеой мдезшюйровзнные абстрактные модели.дпя йонкретнойрредьштной области.",'!:..',;;:; -;,!!'::""::,, ', ',!.„'~;,'.;,',".;у',„';,'„„ Упражнения 10.1, 10.2. 10,3. 10нй 10.5. 10.6.
10.7. 10.8, 10.9. Обьясните, почему архитектуру системы необходимо рззрабстать до оюоыюния создания специфиации. Создайте таблицу, описывающую преимущества и недостатки различных структурных моделей, об. суждавшихся в данной главе. Предините подхшшщую спхгктии6ю ьюдеяь гзм перечисленнык ниже систем. Обоснуйте свой выбор. ° Система автоматической продажи железнодорожных билетоа ° Система видеоконференций, управляемая компьютером, с возможностью одновременного просмотра компьютерных, аудио- и видеоданных несколькими участниками. Робот-уборщик, который убирает относительно свободные пространства, например коридоры. Робот должен фиксировать стены и другие преграды.
На основе выбранной модели разработайте архитектуру для систем из предыдущего упражненгм. Сделайте предположения о системных требованиях, Объясните, почему модель управления вызова-возврата обычно не подходит для систем реального времени, управляющих определенным процессом. Предложите подходящую модель управления для перечисленных ниже систем. Обоснуйте свой выбор.
° Пакетная система обработки данных, которая на основании информации об отработзнных часах и ставок зщиботной платы формирует заявки на зарплату персонала и перепает информацию в банк. ° Набор инструментальных программных средств от разных производителей, которые должны работа~ь совместно. ° Телевизионный контроллер, который отвечает на сигналы, поступающие от удаленного блока управления. Обсудите преимущества и недостатки модели потоков данных и объектной модели в предпаложвншг, что необходимо разработать как локальную, так и распределенную версии программного пршюжетмя. Существует два набора инструментальных САЯЕ. средств.
Необходимо сравнить их. Продумайте, как это сделать с помощью базовой модели САЯЕ-сдеств [51 3. Предположим, существует конкретная дсшжность 'архитектор программного обеспечения"; его роль состоит в проектировании системной архитектуры независимо от того, для какого заказчша выполняется данный проект. Такая должность мохют быть, например, а компании, занимающейся разработкой ПО. Какие трудности могут возникнуть при введении данной должности? ь З1ЗЗ з ~ Ь ~ .'Щ,.'., ф аь,ф «.".Х1ГСябт~5Е з,цагйстд, ":ой ф '1 '3 ! лс ьвас 1 / ц ° ..ф ьф .9 Архитектура распределенных систем Цель настоящей главы — изучснис архитектуры рас. прсдслснных программных систем. Прочитав зту главу, вы должны: знать основныс ирсимущссгвз и недостатки рас- прсдслснных сисгсм; иметь прсдставлснис о различных подходах, использусмых нри разработке архитектур клн.
сит/ссрвср; понимать различия между архитектурой кли. снт/ссрвср и архитектурой распрсдслснных объектов; 1:3 знать концепцию брокера запросов к объектам и принципы, рсализованныс в стандартах СОКВА. 11.1. Многопроцсссорная архнтсктура 11тб Архитектура клиснт/ссрвср 11.3. Лрхитсктура расирсдслсиных объсктов 11гй СОКВА 226 хуасть П1. Проектирование В настоящее время практически все большие программные системы являются распределенными. Распределенной называется такая система, в которой обработка информации сосредоточена не на одной вычислительной машине, а распределена между несколькими компьютерами.
При проектировании распределенных систем, которое имеет много общего с проектированием любого другого ПО, все же следует учитывать ряд специфических особенностей. Некоторые иэ них уже упоминалось во введении к главе 10 при рассмотрении архитектуры клиент/сервер, здесь они обсуждаются более подробно. Поскольку в наши дни распределенные системы получили широкое распространение, разработчики ПО должны быть знакомы с особенностями их проектирования. До недавнего времени все большие системы в основном являлись централизованными, которые запускались на одной главной вычислительной машине (мэйнфрейме) с подключенными к ней терминалами. Терминалы практически не занимались обработкой информации — все вычисления выполнялись иа главной машине.
Разработчикам таких систем не приходилось задумываться о проблемах распределенных вычислений. Все современные программные системы можно разделить на три больших класса. 1. Прикладные программные системы, предназначенные для работы только на одном персональном компьютере или рабочей станции. К ним относятся текстовые процессоры, электронные таблицы, графические системы и т.п. 2. Встроенные системы, предназначенные для работы на одном процессоре либо на интегрированной группе процессоров. К ним относятся системы управления бытовыми устройствами, различными прибораии и др. 3.
Раснрсдслснныс системы, в которых программное обеспечение выполняется на слабо интегрированной группе параллельно работающих процессоров, связанных через сеть. К пим относятся системы банкоматов, принадлежащих какому-либо банку, издательские системы, системы ПО коллективного пользования и др. В настоящее время между перечисленными классами программных систем существуют четкие границы, которые в дальнейшем будут все более стираться. Со временем, когда высокоскоростные беспроводные сети станут широкодоступными, появится возможность динамически интегрировать устройства со встроенными программными системами, например электронные органайзеры с более общими системами.
В книге [81] выделено шесть основных характеристик распределенных систем. 1. Совмесэщае шяэзьзавпяие ресурсов. Распределенные системы допускают совместное использование аппаратных и программных ресурсов, например жестких дисков, принтеров, файлов, компиляторов и т.п., связанных посредством сети. Очевидно, что разделение ресурсов возможно также в многопользовательских системах, однако в этом случае за предоставление ресурсов и их управление должен отвечать центральный компьютер.
2. Ояжрытоояь Это возможность расширять систему путем добавления новых ресурсов. Раснредслспиыс системы — это открытые системы, к которым подключают аппаратное и программное обеспечение от разных производителей. 3. Паряллглькосжь В распределенных системах несколько процессов могут одноврс" мспно выполняться пв разных колшьютерах в сети. Этн процессы могут (но не обязательно) взаимодействовать друг с другом во время их выполнения. 4.
Млся~тпбирукносжь В принципе все распределенные системы являются масштабирусмымн: чтобы система соответствовала новым требованиям, ее можно наращивать посредством добавления новых вычислительных ресурсов. Но на практике наращивание может ограничиваться сетью, объединяющей отдельные компьютеры системы. Если подключить много новых машин, пропускная способность сети может оказаться недостаточной. 11. Архитектура распределенных систем 227 Таблица 11.1.