Олифер операционные системы. Сетевые операционные системы

09.04.2019

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

Уже несколько лет в России, как и во всем мире, обсуждаются вопросы, связанные с применением принципов сервис-ориентированной архитектуры (Service Oriented Architecture, SOA). Многие производители информационных систем уже заявили о поддержке принципов SOA, но реализация этих принципов на практике пока ограничивается единичными случаями. Мы рассмотрим предпосылки появления SOA и основные требования, которые должна выполнить компания, чтобы успешно применять концепцию SOA в своей практике.

«Проблема в том, что в аббревиатуре SOA люди больше обращают внимание на «service oriented», нежели на «architecture». Однако именно архитектура и дисциплина могут помочь SOA принести реальный результат».

Джеймс Гавернор (James Governor), ведущий аналитик, компания Redmonk

Термин SOA пока что несет на себе сильный маркетинговый отпечаток, а для самого понятия SOA на сегодняшний день все еще существуют различные трактовки. Многие отождествляют SOA с технологией Web-сервисов или определенными информационными системами, например, системами для управления бизнес-процессами (Business Process Management, BPM). Но SOA — это не коробочный продукт или технология, а идеология информатизации бизнеса, основанная на процессном подходе и методологии управления бизнес-процессами BPM.

Помимо этого существует множество определений самого понятия «сервис». Например, такое: это услуга, предоставляемая одними системами (провайдерами) для других систем (потребителей). Однако для SOA больше подходит следующее определение сервиса: законченный функциональный компонент, многократно используемый в различных бизнес-процессах. Фактически суть концепции SOA заключается в унификации и автоматизации бизнес-процессов при помощи типовых компонентов — сервисов.

Можно сказать, что SOA — это развитие известных принципов структурного и объектно-ориентированного программирования: разработка элементарных стандартных процедур и функций, годных к многократному повторному использованию, но на новом витке. SOA требует перехода с уровня разработки, каталогизации и типизации отдельных детальных операций и алгоритмов на уровень бизнес-функций и бизнес-процессов. В случае использования SOA создание, внедрение или изменение бизнес-процесса представляет собой компоновку (оркестровку) ранее разработанных сервисов, предназначенных для автоматизации бизнес-функций.

Принципы SOA

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

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

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

Идеология SOA как раз и предлагает вместо монолитной системы блочную, в которой можно собирать из блоков-сервисов требуемое комплексное ИТ-решение, «склеивая» их между собой с помощью систем класса BPM. Автоматизируя новые бизнес-процессы, можно использовать набор уже существующих сервисов, поэтому процессы, автоматизированные с помощью SOA, легко настраиваются или перестраиваются в соответствии со специфичными потребностями компании или в ответ на изменения внешней среды. При этом BPM-система обеспечивает адаптивность и поддержку SOA и фактически выступает в качестве «нервной системы» в SOA-архитектуре, управляя вызовом сервисов и потоком работ. «Сквозные» бизнес-процессы, автоматизированные при помощи BPM-системы, могут объединять как процессы, поддержанные набором сервисов, так и процессы-сервисы в существующих монолитных системах.

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

Оценив сложившуюся маркетинговую ситуацию и потенциал SOA для бизнеса, ведущие поставщики информационных систем поспешили заявить о своей готовности к SOA. Не отставали здесь ни пресса, ни аналитики. Если вспомнить начало кампании в 2005 г., то все единодушно говорили о большом потенциале SOA, и как следствие в 2006-2007 гг. было начато множество пилотных проектов SOA. Затем появилась информация о первых результатах, первых трудностях и неудачах. Темпы развития рынка SOA оказались не столь высоки, как ожидалось. По данным аналитиков, 90% компаний, запустивших пилотные проекты, завязли в них.

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

Цели и средства внедрения SOA

Изначально при внедрении SOA ставятся следующие цели:

  • сокращение времени адаптации сложных информационных систем к постоянно изменяющимся бизнес-процессам компании;
  • снижение стоимости владения ИТ (Total Cost of Ownership, TCO) в масштабе времени — за счет сокращения затрат на проектирование, внедрение, документирование, внесение изменений и т. п.;
  • систематизация компонентов ИТ-архитектуры и повышение степени интегрированности информационных систем компании.

Эти цели не так противоречивы, как может показаться на первый взгляд, и отражают естественное желание бизнеса иметь эффективную ИТ-поддержку, т. е. прозрачные, гибкие и надежные информационные системы, изменения в которые можно вносить мгновенно и практически даром.

Так какие же технологические средства необходимы для внедрения SOA? Для начала это инструментарий документирования бизнес-процессов, далее репозиторий — библиотека унифицированных сервисов, позволяющая быстро компоновать новые автоматизированные процессы, далее — технология перехода от описания бизнес-процессов и определения сервисов к их реализации, например, с возможностью генерации BPEL, и, наконец, среда вызова сервисов и выполнения бизнес-процессов (рис. 1).

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

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

Таким образом, методология SOA предоставляет возможность стандартизации в той сфере, где ее катастрофически не хватает, что и позволяет найти «золотую середину» между типовыми процессами и специфическими требованиями бизнес-пользователей.

Условия успешного применения SOA

Несмотря на то что все ведущие вендоры ИТ-мира вписали в свои маркетинговые материалы аббревиатуру SOA, а заказчики все чаще требуют от внедренцев, чтобы ИТ-решение у них строилось с использованием принципов SOA, ясные и понятные цели SOA очень часто не достигаются. Причина в первую очередь кроется в низком уровне бизнес-культуры и процессной зрелости компаний. Поскольку SOA, как мы уже говорили, базируется на идеологии BPM, трудно поверить в «кусочное» внедрение SOA в какой-либо компании, разве что в узкотехнологическом аспекте — применении технологии Web-сервисов. Это подтверждается и опытом первых проектов SOA — многие из них, зайдя в тупик из-за непрозрачности ИТ-архитектуры и непонимания общей картины ИТ-поддержки бизнеса, вызвали к жизни проекты документирования и управления архитектурой предприятия (Enterprise Architecture, EA). И наоборот — успешные проекты описания архитектуры предприятия дали жизнь SOA-проектам, поскольку стало очевидно, в каких областях идеология SOA применима и может дать наибольший эффект.

Другая причина неудач кроется опять-таки в уровне бизнес-зрелости компании. SOA может дать стратегические конкурентные преимущества, но на стратегическом, а не на тактическом горизонте. И это требует стратегического мышления, наличия бизнес-стратегии и координированной с ней ИТ-стратегии. Однако не всякий владелец бизнеса готов сейчас инвестировать значительные средства для получения стратегических преимуществ через несколько лет. Предпочтение отдается сиюминутным решениям по минимальной цене. Такой подход исключает возможность правильного применения SOA и получения ожидаемых результатов. Говоря языком финансистов, SOA — это доходы будущих периодов.

Доходы будущих периодов

Этот тезис подтверждают и данные аналитиков: по прогнозу Aberdeen Group, в течение следующих пяти лет крупнейшие глобальные компании ожидают экономии до 53 трлн долл. за счет внедрения SOA. Эти данные заставляют задуматься над стратегическими вопросами применения SOA.

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

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

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

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

Игнорирование перечисленных условий и требований, чрезмерное увлечение технологической стороной в ущерб процессной грозят привести к совершенно противоположным результатам:

  • расширение, а не сужение, «зоопарка» информационных систем и приложений,
  • снижение надежности поддержки бизнеса;
  • повышение стоимости владения ИТ;
  • и в конечном счете — дискредитация идеологии SOA как таковой.

Заключение

Идеология SOA предлагает революционное изменение способа проектирования информационных систем, влияющее не только на архитектуру бизнес-процессов, но и на архитектуру предприятия в целом. Однако попытка внедрить SOA в неготовой к этому организации грозит неминуемым провалом и лишь дискредитирует саму идею.

Уроки первых проектов позволяют утверждать, что:

  • SOA требует присутствия процессного управления в компании;
  • SOA может стать средством интеграции, но не панацеей от «зоопарка приложений»;
  • SOA не снимает вопросов интеграции данных и обеспечения безопасности;
  • SOA не только не отменяет, но, напротив, обостряет необходимость системного подхода, корпоративного управления знаниями, изменениями, процессами и проектами.

Не следует ждать немедленного сокращения времени внедрения и экономии от SOA: это «доходы будущих периодов», базирующиеся на предварительно созданной SOA-инфраструктуре и репозитории сервисов. Но если мы не хотим «остаться за бортом» и рассчитываем получить стратегические бизнес-преимущества, этим надо заниматься уже сейчас — потому что к 2010 г., согласно прогнозу аналитиков Gartner Group, по меньшей мере 65% больших компаний переведут более 35% своего портфеля приложений на SOA.

Андрей Коптелов , директор департамента развития и внедрения ИТ
Виктор Голубев , директор департамента продвижения продуктов и услуг компания «IDS Scheer Россия и страны СНГ»

Дословно SOA расшифровывается как service-oriented architecture (сервис-ориентированная архитектура).

В последнее время это стало эдаким buzzword, то есть отчасти модным словечком, отчасти термином специально произносимым произвести впечатление на окружающих.

Все крупнешие компание-производители программного обеспечиния (такие как IBM, BEA, Oracle) постоянно преподносят новости, которые так или иначе обыгрывают SOA. Большинство фирм-консалтеров и интеграторов различными способами информируют, что занимаются реализацией и внедрением сервис-ориентированной архитектуры у клиентов. Часто правда каждый понимает сервис-ориентированную архитекту́немного (или сильно) по своему.

На самом деле и нет строгого определения SOA, нет комитета, вырабатающего стандарты сервис-ориентированной архитектуры (хотя это совершенно не относится к технологиям, на которых она может реализована), да и быть его в принципе не может, поскольку СОА это никак не технология, а философия, концепция, парадигма, новый подход (называйте, как хотите) к построению корпоративных информационных систем, интеграция бизнеса и информационных технологий.

Традиционные проблемы информационных систем

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

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

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

Определение SOA

По своей сути service-oriented architecture (SOA) не содержит новых революционных идей, а является обобщением лучших практик создания программно-информационных систем уровня предприятия и выше, она не привнесла ничего оригинального, но она служит квитэссенцией ведения интеграционных проектов.

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

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

SOA характеризуют следующие основные принципы, следование которым позволяет сказать является ли информационная система сервис-ориентированной или нет:

  • сервисы как компоненты информационной системы, которые публикуют свои интерфейсы (контракты). Эти контракты являются независимыми от платформы, языка программирования, операционной системы и других технических особенностей реализации, сервисы взаимодействуют между собой и вспомогательными службами посредством открытых, широко используемых стандартов.
  • каждый, составляющий информационную систему сервис реализует отдельную бизнес-функцию, которая является логически обособленной, повторяющейся задачей, являющейся составной частью бизнес-процесса предприятия.
  • низкая связанность (loose coupling). Сервисы в системах, построенных на SOA могут быть реализованы в независимости от других служб системы, необходимо только знание интерфейса используемых сервисов.

Как видно, каждый из пунктов не является специфической особенностью СОА, многие технологии взяли на вооружение эти принципы, отличительной особенностью построенной на SOA системы является одновременное следование всем указанным принципам.

Рассмотрим их немного подробнее.

Сервисы как компоненты информационной системы

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

Использование открытых стандартов является важной характерной особенностью SOA. Это значительно уменьшает время подключения нового бизнес-сервиса к существующей системе, так же как и (что является часто крайне важным моментом для предприятий, имеющих богатые наработки за предыдущее время), при внедрении СОА, нет необходимости переписывать или просто отказываться от проверенных годами и действующих решений.

Выбор распределенной технологии играет существенную роль. Использование, например, SNA или DCOM в качестве средства общения сервисов накладывают такое ограничение, при котором все компоненты в системе обязаны использовать SNA или DCOM, что ограничивает применимость системы.

Когда же говорят том, что информационная система следует принципам СОА, то сервис, реализованный, например, на языке Java и работающий в EE контейнере должен быть применим для использования клиентами, реализованными в Windows среде и наоборот.

Сервис выполняет повторяющуюся бизнес функцию

Что такое сервис в контексте SOA? Является ли сервисом функция в приложении? Являются ли технические сервисы сервисами, о которых говорят, когда имеют в виду СОА? Все это важные и уместные вопросы. Сервисы в SOA реализуют повторяющиеся бизнес-функции, которые необходимы для организации согласованной работы сложных, состоящих из большого числа различных компонентов, приложений.

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

Таким образом функциональность используется многочисленными приложениями и существует возможность быстро и относительно просто изменить бизнес-логику, приспосабливая ее к постоянно меняющимся условиям рынка.

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

Это и является одним из главных достоинств SOA.

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

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

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

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

Низкая связанность (loose coupling)

Низкая связанность - важный архитектурный принцип при разработке СОА систем. Использование этого принципа позволяет связывать различные компоненты информационной системы во время ее функционирования с помощью, так называемого, позднего связывания (late binding).

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

Благодаря низкой связанности значительно упрощается пошаговое создание корпоративной системы из-за отсутствия барьеров реализации функциональности сервиса за несколько итераций.

Возможность динамически подключать новые сервисы, также как и поиск этих сервисов клиентами является также одним из краеугольных принципов системы, построенной на основе service-oriented architecture.

Пример построенной на SOA информационной системы

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

Однако все-таки, наверное, имеет смысл рассмотреть, из каких компонент может состоять некая идеальная усредненная SOA система. Многие из предоставленных ниже этих составляющих частей настолько важны и объемны, что могут являться темами отдельного рассмотрения, здесь же эти компоненты будут предоставлены только для общего ознакомления.

Итак, основными компонентами (представлены на рисунке 1) являются сервисная шина предприятия (ESB), СОА реестр (SOA Registry), workflow engine, сервисный брокер (service broker), СОА супервизор (SOA supervisor) Все они играют собственную роль в системе, при этом взаимодействуя друг с другом.

Рисунок 1.

Сервисная шина предприятия (ESB):

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

Для передачи сообщений в SOA как правило используют сервисную шину предприятия (Enterprise Service Bus – ESB). Сервисная шина является настолько важной в СОА, что возможно представить, что сервис-ориентированная архитектура не может существовать без нее и, наоборот, наличие ее является достаточным условием для SOA. На самом деле можно построить основанную на сервис-ориентированной архитектуре систему без применения сервисной шины и ее наличие не гарантирует позиционирование системы как СОА.

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

СОА реестр (SOA Registry):

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

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

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

СОА реестр также хранит информацию каждого компонента.

Workflow engine:

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

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

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

Продукты, моделирующие бизнес процессы, существовали задолго до СОА, существует огромное количество предложений от различных поставщиков, часто специализирующихся в различных областях. Около 15 лет назад большинство из этим систем были связаны с системами документооборота. Сейчас же поставщики этих систем все более тяготеют к системам управления бизнес-процессами и административными регламентами (business process management system или просто BPM).

Cервисный брокер (service broker):

Сервисным брокером является служба, соединяющая различные сервисы вместе. Он получает всю необходимую информацию от СОА реестра (SOA Registry), что означает, что реестр и брокер должны работать координировано.

Рисунок 2.

На рисунке 2 представлено как в некоторой СОА системе сервисный брокер организовывает обработку заказов. Схема включает только 4 бизнес сервиса и workflow engine.

Стрелками изображены действия сервисного брокера, утолщенные линии изображают потоки запросов.

Последовательность действий может выглядеть следующим образом:

  1. Пользователь входит в систему и запрашивает службу обработки заказов. Поскольку эта служба еще не запущена, сервисный брокер получает соответствующее уведомление и начинает свою работу
  2. Сервисный брокер запрашивает у СОА реестра, что необходимо для запуска службы обработки заказов и возможно ли ее стартовать в настоящее время
  3. Сервисный брокер проверяет, запущены ли 4 необходимых для службы обработки заказов бизнес-сервиса, если еще не запущены, то стартует их.
  4. На основании полученной от реестра СОА сервисный брокер проверяет интерфейсы между бизнес компонентами. Эти компоненты можно затем соединить вместе для службы обработки заказов.
  5. Сервисный брокер уведомляет бизнес компоненты, что они должны связаться с workflow engine для выполнения необходимой службы и бизнесс процесс начинает выполняться

Некоторые реализации сервисной шины предприятия (ESB) выполняют также функции сервисного брокера.

СОА супервизор (SOA supervisor):

СОА супервизор это, можно сказать, главный служебный сервис, функционирующий все время работы системы и контролирующий и координирующий работу всех остальных, прежде все служебных, сервисов.

Одна из основных задач СОА супервизора это отслеживать работу различных компонентов внутри СОА системы, оценивать корректность их функционирования, а также отслеживать запросы, посланные во внешние системы.

Трудно переоценить важность этого компонента.

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

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

СПб.: Питер, 2002. — 544 с. — ISBN: 5-272-00120-6Эта книга — не о конкретной системе и даже не о конкретном типе операционных систем. Она рассматривает фундаментальные концепции и принципы построения, справедливые для большинства известных на сегодня операционных систем. .
В первую очередь эта книга рекомендуется студентам и аспирантам различных специальностей направления «Информатика и вычислительная техника» как учебное пособие по курсам «Операционные системы» и «Организация вычислительных процессов». Кроме того, она может быть полезна специалистам: программистам, сетевым администраторам и профессионалам по коммуникационному оборудованию. И, наконец, книга может заинтересовать всех, кто имеет дело с компьютерами и хочет больше узнать о том, как устроены современные операционные системы.Эволюция операционных систем.
Появление первых операционных систем.
Появление мультипрограммных операционных систем для мэйнфреймов.
Операционные системы и глобальные сети.
Операционные системы мини-компьютеров и первые локальные сети.
Развитие операционных систем в 80-е годы.
Особенности современного этапа развития операционных систем.
Выводы.
Задачи и упражнения.
Назначение и функции операционной системы.
Операционные системы для автономного компьютера.
Функциональные компоненты операционной системы автономного компьютера.
Сетевые операционные системы.
Одноранговые и серверные сетевые операционные системы.
Требования к современным операционным системам.
Выводы.
Задачи и упражнения.
Архитектура операционной системы.
Ядро и вспомогательные модули ОС.
Ядро в привилегированном режиме.
Многослойная структура ОС.
Аппаратная зависимость и переносимость ОС.
Микроядерная архитектура.
Совместимость и множественные прикладные среды.
Выводы.
Задачи и упражнения.
Процессы и потоки.
Мультипрограммирование.
Планирование процессов и потоков.
Мультипрограммирование на основе прерываний.
Синхронизация процессов и потоко.
Выводы.
Задачи и упражнения.
Управление памятью.
Функции ОС по управлению памятью.
Типы адресов.
Алгоритмы распределения памяти.
Свопинг и виртуальная память.
Разделяемые сегменты памяти.
Кэширование данных.
Выводы.
Задачи и упражнения.
Аппаратная поддержка мультипрограммирования на примере процессора Pentium.
Регистры процессора.
Привилегированные команды.
Средства поддержки сегментации памяти.
Сегментно-страничный механизм.
Средства вызова процедур и задач.
Механизм прерываний.
Кэширование в процессоре Pentium.
Выводы.
Задачи и упражнения.
Ввод-вывод и файловая система.
Задачи ОС по управлению файлами и устройствами.
Многослойная модель подсистемы ввода-вывода.
Логическая организация файловой системы.
Физическая организация файловой системы.
Файловые операции.
Контроль доступа к файлам.
Выводы.
Задачи и упражнения.
Дополнительные возможности файловых систем.
Специальные файлы и аппаратные драйверы.
Отображаемые в память файлы.
Дисковый кэш.
Отказоустойчивость файловых и дисковых систем.
Обмен данными между процессами и потоками.
Выводы.
Задачи и упражнения.
Концепции распределенной обработки в сетевых ОС.
Модели сетевых служб и распределенных приложени.
Механизм передачи сообщений в распределенных система.
Вызов удаленных процедур.
Выводы.
Задачи и упражнения.
Сетевые службы.
Сетевые файловые системы.
Вопросы реализации сетевой файловой системы.
Служба каталогов.
Межсетевое взаимодействие.
Выводы.
Задачи и упражнения.
Сетевая безопасность.
Основные понятия безопасности.
Базовые технологии безопасности.
Технологии аутентификации.
Система Kerberos.
Выводы.
Задачи и упражнения.
Приложение. Модель ISO/OSI.
Физический уровень.
Канальный уровень.
Сетевой уровень.
Транспортный уровень.
Сеансовый уровень.
Уровень представления.
Прикладной уровень.
Ответы к задачам и упражнениям.
Рекомендуемая литература.
Алфавитный указатель.

Литература Литература: Олифер В.Г., Олифер Н.А. Сетевые операционные системы: Учебник для вузов. – СПб.: Питер, (Эндрю Таненбаум Современные операционные системы. 2-е изд. – СПб.: Питер А.В. Гордеев, А.Ю. Молчанов Системное программное обеспечение. – СПб.: Питер, 2003 Юров В.И. Assembler: Учебник для вузов. 2-е изд. – СПб.: Питер, Вильям Столлингс Операционные системы. – М.: Издательский дом «Вильямс», 2002.


1. Основные принципы устройства и функционирования ЭВМ 1.1 Эволюция развития ЭВМ Леонардо да Винчи (гг) – проект механической счетной машины, описанный в собрании рукописей Codex Madrid и Codex Atlanticus – ученный Вильгельм Шиккард, «Часы для счета» – французский ученный и философ Блез Паскаль, первый арифмометр, выполнявший четыре основных действия – английский ученный Чарльз Беббидж разрабатывает проект «Разностной машины» ставшей прообразом программно-управляемой машины.


1. Основные принципы устройства и функционирования ЭВМ 1.1 Эволюция развития ЭВМ 1880-е годы – американец Герман Холлерит разрабатывает машину, работающую с таблицами данных, машина управлялась программой записанной на перфокартах – немецкий инженер-кибернетик Конрад Цузе создает механическую вычислительную машину Z-1 использующую, в отличии от предыдущих, двоичную систему счисления. В 1941 создает электромеханическую вычислительную машину Z-3, основанную на телефонном реле, которая умела выполнять операции с плавающей точкой – Говард Айкен, электромеханическая вычислительная машина MARK-1, которая оперировала десятичной системой счисления – Джон фон Нейман разработал концепцию ЭВМ (EDVAC) с вводимыми в память программой и данными, главными элементами концепции были принцип хранимой программы и принцип па-раллельной организации вычислений. Сама машина была завершена в 1950 г.


1. Основные принципы устройства и функционирования ЭВМ 1.1 Эволюция развития ЭВМ 1946 – в США, в университете Пенсильвания, была создана первая универсальная ЭВМ – ENIAC, содержащая 18 тыс. ламп, весила 30 тонн, занимала площадь 200 м 2. В ней использовались десятичные операции, программирование производилось с помощью переключателей (1-е поколение ЭВМ) – время становление машин с фон-неймановской архитектурой. Машины 1-го поколения строились на ламповой элементной базе. Программы составлялись на языке Assembler.


1. Основные принципы устройства и функционирования ЭВМ 1.1 Эволюция развития ЭВМ (2-е поколение ЭВМ). Вместо ламп и реле стали применяться транзисторы, в качестве ОП стали использоваться магнитные сердечники. В архитектуре ЭВМ стали использоваться процессоры ввода-вывода, позволявшими производить ввод-вывод информации одновременно с процессом вычисления. Появились трансляторы языков высокого уровня Algol, FORTRAN, COBOL. Для эффективного управления ресурсами ЭВМ стали впервые использоваться ОС (3-е поколение ЭВМ). В качестве элементной базы стали использоваться интегральные микросхемы. Появились недорогие и малогабаритные машины – мини- ЭВМ. Увеличение мощности ЭВМ сделало возможным одновременно выполнять несколько программ, что приводит к созданию более сложных многозадачных ОС. Наблюдается тенденция к созданию семейств ЭВМ, т.е. машины становятся совестимыми снизу вверх на программно-аппаратном уровне (пример серия IBM System 360, отечественный аналог серия EC).


1. Основные принципы устройства и функционирования ЭВМ 1.1 Эволюция развития ЭВМ (4-е поколение ЭВМ). Смена элементной базы на большие и сверхбольшие интегральные схемы (БИС и СБИС) – фирмой Intel был выпущен первый микропроцессор 4-х разрядный i4004. До этого было три направления развития ЭВМ: суперЭВМ, большие ЭВМ (мэйнфреймы) и мини-ЭВМ), теперь к ним прибавилось четвертое – микропроцессорное – создание 8-ми разрядного МП i – фирма MITS на основе i8008 начинает выпускать первый ПК Altair IBM/360 Altair 8800 Apple I


1. Основные принципы устройства и функционирования ЭВМ 1.1 Эволюция развития ЭВМ 1981 – корпорация IBM на базе 16-ти разрядного процессора i8086 выпускает ПК IBM PC, который послужил начальной точкой развития одной из современных платформы ПК получившей название PC – компания Apple выпускает первый ПК с графическим пользовательским интерфейсом Apple Lisa, который не завоевал большой популярности, но послужил прообразом более популярной линейки компьютеров Apple Macintosh. IBM PC Apple Lisa Macintosh C средины 1980-х (5-е поколение ЭВМ). ЭВМ с использованием принципиально новых технологий, т.к. управления потоками данных, элементы искусственного интеллекта


1. Основные принципы устройства и функционирования ЭВМ 1.2 Основные типы современных ЭВМ СуперЭВМ и большие ЭВМ (мейнфрейм) – уникальная сверхпроизводительная система используемая для решения сложнейших задач, требующих гигантский объемов вычислений. Кластер - это группа вычислительных машин (часто ПК), которые связаны между собою и функционируют как один узел обработки информации. Сервер – компьютер, предоставляющий свои ресурсы другим пользователям. Персональный компьютер (ПК) – компьютер, предназначенный для работы в условиях предприятия или дома, настройка, обслуживание и установка программного обеспечения выполняется самим пользователем. Встраиваемая ЭВМ – микроЭВМ, предназначенная в системах управления и контроля. Скиф Cyberia Встраиваемая ЭВМ ЦОВ


1. Основные принципы устройства и функционирования ЭВМ 1.2 Основные типы современных ЭВМ Профессиональная рабочая станция – специализированный компьютер, ориентированный на профессиональную деятельность в определенной области, оснащен дополнительным оборудование и специализированным программным обеспечением. Сетевая рабочая станция (сетевой ПК) - ПК который предназначен для функционирования в вычислительной сети, обычно настройка, техническая поддержка и установка программного на такой компьютер осуществляется централизованно. Портативный компьютер (ноутбук) – ПК, обладающий мощностью персонального компьютера, способный в течение определенного времени работать без подключения к электрической сети. Карманный компьютер (КПК) – компьютер, обладающий малыми размерами (не больше записной книжки) и способный функционировать автономно в течение длительного промежутка времени. Смартфон – телефон с функциями компьютера. Коммуникатор – КПК со встроенным GSM/GPRS модулем, позволяющим совершать телефонные звонки и выходить в сеть Internet. Терминал – устройство, которое не предназначено для работы в автономном режиме, выполняющие операции по вводу и передаче команд пользователя более мощному компьютеру и выдаче пользователю результата.


1. Основные принципы устройства и функционирования ЭВМ 1.3 Структура ЭВМ АЛУ ЗУ УУ УВвУВыв блок для выполнения арифметических и логических операций (АЛУ - арифметико-логическое устройство); блок для хранения информации или память (ЗУ – запоминающее устройство); устройство для ввода исходных данных (УВв) и для вывода результатов (УВыв); устройство для управления блоками ЭВМ (УУ – устройство управления)


1. Основные принципы устройства и функционирования ЭВМ 1.3 Структура ЭВМ Элементы современных ЭВМ: Центральный процессор (ЦП) - устройство, непосредственно осуществляющее процесс обработки данных и программное управление этим процессом. Оперативное запоминающие устройство (ОЗУ) - предназначено для приема, хранения и выдачи информации необходимой для выполнения операций в ЦП. ВЗУ – запоминающие устройство, предназначенное для хранения больших массивов информации, обычно ВЗУ строятся на разновидностях магнитных носителей. В современных ЭВМ в качестве ЗУ используется комбинация ОЗУ с ВЗУ, которая называется виртуальная память.


1. Основные принципы устройства и функционирования ЭВМ 1.4 Основные свойства архитектуры ЭВМ Общие архитектурные свойства современных ЭВМ: Принцип хранимой программы. Код программы и ее данные находятся в одном адресном пространстве в ОЗУ. Принцип микропрограммирования. Процессор имеет блок микропрограммного управления, этот блок для каждой машинной команды имеет набор действий-сигналов, который нужно сгенерировать для физического выполнения требуемой команды. Линейное адресное пространство. Совокупность ячеек памяти, которым последовательно присваиваются адреса. Последовательное выполнение команд. Процессор выбирает из памяти команды строго последовательно. Для изменения прямолинейного хода выполнения программы необходимо использовать специальные команды. Безразличие к целевому назначению данных. С точки зрения процессора нет принципиальной разницы между данными и командами. Данные и команды находятся в одном адресном пространстве в виде последовательности нулей и единиц. Машине все равно, какую логическую нагрузку несут эти данные.


1. Основные принципы устройства и функционирования ЭВМ 1.5 Архитектура и основные свойства современных ЦП Запуск Остановка Выборка Исполнение Выполнение команд процессор включает: выборка очередной команды из памяти; декодирование команды; генерация адреса, при которой определяются адреса аргументов команды; выполнение команды с помощью АЛУ; запись результатов.


1. Основные принципы устройства и функционирования ЭВМ 1.5 Архитектура и основные свойства современных ЦП Архитектура - абстрактное понятие, которое отражает структурную, схемотехническую и логическую организацию ЦП. Основные архитектуры: o CISC (Complete Instruction Set Computing) – процессоры с полным набором команд; o RISC (Reduced Instruction Set Computer) – процессоры с сокращенным набором команд, ориентированный на быстрое и эффективное выполнение относительно небольшого набора команд, в отличие от команд процессоров CISC-архитектуры, все команды имеют фиксированную длину, за счет чего пропускается этап генерации адреса для определения адресов аргументов и значительно повышается скорость выполнения.


1. Основные принципы устройства и функционирования ЭВМ 1.5 Архитектура и основные свойства современных ЦП Особенности архитектуры современных ЦП: Суперскалярная архитектура – в основе архитектуры лежит принцип конвейеризации вычислений. Важным элементом суперскалярной архитектуры является конвейер – специальное устройство, реализующее такой метод обработки команд внутри процессора, при котором исполнение команды разбивается на несколько этапов. При этом очередная команда после выборки попадает на декодирование. Таким образом, блок выборки свободен и может выбирать следующую команду. В результате на конвейере могут находиться несколько команд в разной стадии выполнения. Процессоры, имеющие один конвейер, называются скалярными, два и более – суперскалярными. Несколько АЛУ и специализированные вычислительные блоки. Несколько уровней кэш-памяти, значительно ускоряющей обмен информацией между ЦП и ОЗУ. Много ядерная архитектура, когда на одном кристалле располагаются несколько процессоров.


1. Основные принципы устройства и функционирования ЭВМ 1.5 Архитектура и основные характеристики современных ЦП Системная шина Кэш (L2) Кэш команд (L1) Блок Микро команд Кэш данных (L1) 1) выборка команды 2) декодирование 3) определение адреса данных и их загрузка 4) выполнение 5) запись результата Рег. Буф. ком. АЛУ Конвейер ЯДРО Структура ЦП серии P6


1. Основные принципы устройства и функционирования ЭВМ 1.5 Архитектура и основные свойства современных ЦП Основные характеристики ЦП: Тактовая частота Такт - сигнал фиксированной продолжительность, используемый для синхронизации работ устройств ЭВМ. Разрядность шины данных определяется, какой объем информации может обрабатывать МП за один такт, измеряется в битах. Разрядность адресной шины емкость адресуемой МП памяти. Количество уровней и размерность кэш-памяти. Кэш память МП - промежуточная сверхскоростная оперативная память являющейся буфером между контроллером сравнительно медленной системной памяти и процессором. Количество ядер в МП.


1. Основные принципы устройства и функционирования ЭВМ 1.6 Оперативное запоминающие устройство ОЗУ - предназначена для приема, хранения и выдачи информации (чисел, символов, команд, констант), т.е. всей информации необходимой для выполнения операций в ЦП. ОЗУ представляет собой набор однотипный ячеек (в роли последних выступают конденсаторы или триггеры), которые хранят информацию в виде электрических импульсов. Каждая из ячеек имеет свой уникальный адрес. Основные типы памяти: Статическая память – в качестве носителя информации используются триггеры, которые могут иметь одно из двух состояний. Динамическая память – в качестве носителя информации используются конденсаторы. Основные характеристики ОЗУ: Емкость - характеризуется максимальный объем информации, которую может хранить память. Время доступа - время за которое ЦП получает требуемую информацию.


1. Основные принципы устройства и функционирования ЭВМ 1.7 Внешнее запоминающие устройство ВЗУ - применяются для хранения больших объемов информации, которые не используются в данный момент времени процессором, информация на таких устройствах хранится блоками, каждый из которых имеет свой уникальный адрес. Основные типы ВЗУ: Произвольного доступа – позволяют обратиться к любому произвольному блоку хранимой информации (винчестеры, накопители на оптических дисках и т.д.). Последовательного доступа – позволяют получить доступ к нужному блоку информации только после прочтения всех предыдущих блоков (накопители на магнитной ленте). Основные характеристики ВЗУ: Емкость - характеризуется максимальный объем информации, которую может хранить ВЗУ. Размер кэш-памяти. Время доступа - время за которое ЦП получает требуемую информацию.


1. Основные принципы устройства и функционирования ЭВМ 1.8 Кэш Память вычислительной машины представляет собой иерархию запоминающих устройств (ЗУ), отличающихся средним временем доступа к данным, объемом и стоимостью хранения одного бита. Регистры процессора Быстродействующая память Оперативная память Внешняя память Объем Время доступа Стоимость хранения Иерархия запоминающих устройств Сотни гигабайт Сотни мегабайт Десятки байт байт Сотни-тысячи килобайт 0,2-0,5 нс 0,5-1 нс 1-3 нс 5-15 мс


1. Основные принципы устройства и функционирования ЭВМ 1.8 Кэш Кэш память (кэш) - это способ совместного функционирования двух типов запоминающих устройств, отличающихся временем доступа и стоимостью хранения данных, который за счет динамического копирования в «быстрое» ЗУ наиболее часто используемой информации из «медленного» ЗУ позволяет, с одной стороны, уменьшить среднее время доступа к данным, а с другой стороны, экономить более дорогую быстродействующую память. Кэширование это универсальный метод, пригодный для ускорения доступа к оперативной памяти, к диску и к другим видам запоминающих устройств.


1. Основные принципы устройства и функционирования ЭВМ 1.8 Кэш Источник запросов к основной памяти Основная память Кэш Быстрый ответ (кэш-попадание) Запрос Медленный ответ (кэш-промах) Принцип работы кэш-памяти При каждом обращении к основной памяти по физическому адресу просматривается содержимое кэш-памяти с целью определения, не находятся ли там нужные данные. Кэш- память не является адресуемой, поэтому поиск нужных данных осуществляется по содержимому по взятому из запроса значению поля адреса в оперативной памяти. Далее возможен один из двух вариантов развития событий: если данные обнаруживаются в кэш-памяти, то есть произошло кэш-попадание, они считываются из нее и результат передается источнику запроса; если нужные данные отсутствуют в кэш-памяти, то есть произошел кэш-промах, они считываются из основной памяти, передаются источнику запроса и одновременно с этим копируются и кэш-память.


1. Основные принципы устройства и функционирования ЭВМ 1.8 Кэш Высокое значение вероятности нахождения нужных данных в кэш-памяти объясняется наличием у данных двух объективных свойств: Временная локальность. Если произошло обращение по некоторому адресу, то следующее обращение по тому же адресу с большой вероятностью произойдет в ближайшее время. Пространственная локальность. Если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам.


1. Основные принципы устройства и функционирования ЭВМ 1.9 Устройства ввода-вывода К устройствам ввода-вывода относятся: клавиатура, мышь, монитор, принтер, сканер, модем, сетевая карта и т.д. Любое устройство управляется контроллером. Контроллер – блок ЭВМ предназначенный для управления внешними устройствами или группой внешних устройств. Системная шина Контроллер 1 Контроллер 2 Устройство 1 Устройство 2 Устройство 3 Интерфейс


1. Основные принципы устройства и функционирования ЭВМ 1.9 Устройства ввода-вывода Интерфейс представляет собой совокупность стандартизованных аппаратных и программных средств, обеспечивающих обмен информацией между устройствами. В основе построения интерфейсов лежат унификация и стандартизация (использование единых способов кодирования данных, форматов данных, стандартизация соединительных элементов - разъемов и т.д.). Наличие стандартных интерфейсов позволяет унифицировать передачу информации между устройствами независимо от их особенностей, и производителей устройств. Интерфейсы устройств ЭВМ делятся на две категории: Последовательные интерфейсы - информация передается последовательно по битам (интерфейсы стандартов COM и USB). Параллельные интерфейсы - данные предаются порцией за раз по параллельным каналам, каждый бит по отдельному каналу (LPT и АТА).


1. Основные принципы устройства и функционирования ЭВМ 1.10 Прерывания Прерывания – механизм ЭВМ, используемый для выполнения незапланированных действий, который прерывает выполнение основного потока команд и переводит процессор на выполнение потока команд для обработки прерывания с последующим возвратом к исходным командам. Команда Данные Обраб. прер. Прогр. Буф. ком. Рег. ОЗУ ЦП Буф. ком. Рег. ЦП Буф. ком. Рег. ЦП Буф. ком. Рег. ЦП Механизм обработки прерывания Команда Данные Обраб. прер. Прогр. ОЗУ Конт. проц. Команда Данные Обраб. прер. Прогр. ОЗУ Конт. проц. Команда Данные Обраб. прер. Прогр. ОЗУ Конт. проц. Возникновение прерывания Выгрузка контекста процесса Обработка прерывания Загрузка контекста процесса


1. Основные принципы устройства и функционирования ЭВМ 1.10 Прерывания В зависимости от источника прерывания делятся на три класса: Внешние (аппаратные) прерывания – возникают вследствие подачи некоторой аппаратурой (например, контроллером принтера) электрического сигнала, который передается (возможно, проходя через другие блоки компьютера, например контроллер прерываний) на специальный вход прерывания процессора. Внешние прерывания обслуживаются драйверами устройств. Внутренние прерывания (исключения) - возникают при появлении аварийной ситуации в ходе исполнения некоторой инструкции программы и обрабатываются специальными модулями ядра. Программные прерывания - возникают при выполнении особой команды процессора, выполнение которой имитирует прерывание.


1. Основные принципы устройства и функционирования ЭВМ 1.10 Прерывания Существую два способа реализации прерываний: векторный – в ЦП передается информация об уровне приоритета прерывания, а так же информация о начальном адресе программы обработчика возникшего прерывания; опрашиваемый – в ЦП передается только приоритет прерывания, ЦП самостоятельно определяет каким устройством вызвано прерывание путем вызова всех обработчиков прерывания для данного уровня приоритета, пока один из обработчиков не подтвердит что прерывание пришло из обслуживаемого им устройства.


1. Основные принципы устройства и функционирования ЭВМ 1.10 Прерывания Маскирование прерываний – способ обработки нескольких одновременно возникших прерываний, при котором обслуживаются прерывания с наибольшим приоритетом, остальные прерывания игнорируются (маскируются).


1. Основные принципы устройства и функционирования ЭВМ 1.10 Структура ПК Современные ПК построенные на принципе открытой архитектуры. При использование открытой архитектуры производитель ПК должен придерживаться общеизвестных стандартов на интерфейсы устройств ПК. ЦППамять Системная шина К ПУ К К ЦП – центральный процессор; К – контроллер; ПУ – периферийное устройство В ПК используется структура с одним общим интерфейсом, называемым системной шиной. При такой структуре все устройства компьютера обмениваются информацией и управляющими сигналами через общий интерфейс - системную шину. Все устройства ПК подключаются через разъемы (шины), которые соединены с системной или локальной шиной. Основная электронная часть ПК конструктивно располагается в системном блоке выполняющая функции механического и электрического соединения компонентов ЭВМ по средствам системной шины, называется системной (материнской) платой. Большая часть устройств системной платы помещена в одну или несколько больших микросхем, называемых набором микросхем (chipset).




2. Программное обеспечение 2.1 Классификация программного обеспечения Программное обеспечение (ПО) Системное ПОПрикладное ПО Операционные системы (ОС) Программно-инструментальные средства Системы технического обслуживания Сервисные системы Оболочки ОС Утилиты Операционные среды Средства диагностики Программно-логический контроль Тестовый контроль Аппаратный контроль Программно-аппаратный контроль


2. Программное обеспечение 2.1 Классификация программного обеспечения Программа – формализованное описание последовательности действий устройств компьютера по реализации той или иной задачи. Совокупность программ и сопровождающей их документации, предназначенная для решения задач на ПК, называется программным обеспечением (ПО) (software). Прикладное программное обеспечение предназначено для решения определенных классов задач пользователя. Системное программное обеспечение предназначено для управления компьютером, создания и поддержки выполнения программ пользователя, а также для предоставления пользователю набора всевозможных услуг.


2. Программное обеспечение 2.1 Классификация программного обеспечения Системное ПО делится на: Операционные системы. Операционная система (ОС) - совокупность программ, управляющих работой всех устройств ПК, процессом выполнения прикладных программ и взаимодействием пользователя с ПК. Сервисные системы расширяют возможности ОС, предоставляя пользователю, а также выполняемым программам набор разнообразных дополнительных услуг. К сервисным системам относят: Оболочки ОС - это программные продукты, которые делают общение пользователя с компьютером более комфортным. Утилиты - это служебные программы, которые предоставляют пользователю ряд дополнительных услуг. Операционные среды. Операционная среда - полнофункциональная надстройка над ОС, которая формирует новую среду выполнения программ и выполняет все функции оболочки.


2. Программное обеспечение 2.1 Классификация программного обеспечения Системы технического обслуживания – совокупность программно-аппаратных средств ПК для обслуживания сбоев в процессе работы ПК. Эти средства можно разделить на пять категорий: средства диагностики – обеспечивают автоматический поиск ошибок и выявление неисправностей с их локализацией; программно-логический контроль – основан на использовании избыточного кода исходных и промежуточных данных ПК, что позволяет находить ошибки при изменении отдельных битов информации; тестовый контроль – осуществляется с помощью специальных тестов для проверки правильности работы ПУ или его устройств; аппаратный контроль – ведется автоматически с помощью встроенного в ПК оборудования; программно-аппаратный контроль – включает программный и аппаратный контроль.


2. Программное обеспечение 2.1 Классификация программного обеспечения Программно-инструментальные средства - это программные продукты, предназначенные для разработки программного обеспечения. Языки программирования делятся на два класса: Машинно-зависимые языки (низкого уровня) – являются внутренними языками ЭВМ и представляет собой систему инструкций и данных, которые не требуют преобразования и могут непосредственно интерпретироваться и исполняться аппаратными средствами ЭВМ. Машинно-независимые языки (высокого уровня) – не требуют от пользователя полного знания архитектуры ЭВМ на котором реализуется программа и позволяют пользователю записывать программу в виде команд близких к человеческому пониманию, которые пред выполнением программы преобразуются в команды ЭВМ. Процесс преобразования команд языков высокого уровня в команда языка низкого уровня называется трансляцией, соответственно программа выполняющие это действие – транслятор. Работа трансляторов строится по одному из двух принципов: Интерпретация подразумевает пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной программы. Компиляция разделяется на два этапа: сначала программа полностью переводится на машинный язык, а затем оттранслированная программа может многократно выполняться.


2. Программное обеспечение 2.1 Классификация программного обеспечения Существуют современные языки программирования использующие обе разновидности трансляторов, к примеру Java. В таких языках исходный текст программы компилируется в специальный низкоуровневый двоичный код – байт-код, который интерпретируется при непосредственном исполнении. Для работы бай-кода на ЭВМ необходимо наличие виртуальной машины, которая будет выполнять функции транслятора байт-кода в код ЦП, на котором будет исполняться программа. Достоинство такого метода – это кроссплатформенность программы, т.е. способность программы работать на любом семействе ЭВМ, где есть необходимая виртуальная машина. Недостаток – снижение быстродействия за счет необходимости преобразования байт-кода в код ЦП.


2. Программное обеспечение 2.1 Развитие системного ПО В развитие которого можно выделить следующие этапы. До 50-х годов ЭВМ использовались только создателями и программирование производилось исключительно на машинном языке, все задачи организации вычислительного процесса решались вручную программистом. В 50-е годы, с ростом вычислительно мощности ЭВМ, заметный рост стал наблюдаться и в области автоматизации программирования и организации вычислительных работ. В эти годы появились первые алгоритмические языки, и таким образом к библиотекам математических и служебных подпрограмм добавился новый тип системного программного обеспечения – трансляторы. Выполнение каждой программы стало включать большое количество вспомогательных работ: загрузка нужного транслятора, запуск транслятора и получение результирующей программы в машинных кодах, связывание программы с библиотечными подпрограммами, загрузка программы в оперативную память, запуск программы, вывод результатов. Для организации эффективной работы в штат многих вычислительных центров были введены должности операторов, профессионально выполнявших работу по организации вычислительного процесса для всех пользователей этого центра.


2. Программное обеспечение 2.1 Развитие системного ПО Для решения проблемы автоматизации вычислительного процесса были разработаны системы пакетной обработки (наиболее известные IBSYS, SAGE, SABRE, MERCURY), которые автоматизировали всю последовательность действий оператора по организации вычислительного процесса. Ранние системы пакетной обработки явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными не для обработки данных, а для управления вычислительным процессом. В ходе реализации систем пакетной обработки был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какие действия и в какой последовательности он хочет выполнить на вычислительной машине. Оператор составлял пакет заданий, которые в дальнейшем без его участия последовательно запускались на выполнение управляющей программой монитором. Кроме того, монитор был способен самостоятельно обрабатывать наиболее часто встречающиеся ошибки. Пакет обычно представлял собой набор перфокарт, но для ускорения работы он мог переноситься на более удобный и емкий носитель, например на магнитную ленту или магнитный диск. Системы пакетной обработки заданий сокращали затраты времени на вспомогательные действия по организации вычислительного процесса, но их недостатком было то, что программист-пользователь лишался непосредственного доступа к компьютеру, что снижало эффективность работы.


2. Программное обеспечение 2.1 Развитие системного ПО Процесс выполнение программы в системе пакетной обработки Устройство считывания перфокарт Перфокарты с программой Устройство записи на магнитную ленту Входная лента Системная лента Выходная лента ПринтерРезультат ЭВМ для считывания перфокарт и записи программ на входную ленту ЭВМ для вычислений ЭВМ для печати результата с выходной ленты




2. Программное обеспечение 2.1 Развитие системного ПО В период годов были реализованы практически все основные механизмы, присущие современным ОС. В условиях резко возросших возможностей ЭВМ выполнение только одной программы в каждый момент времени оказалось крайне неэффективным. Решением стало мультипрограммирование способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре. Мультипрограммирование было реализовано в следующих вариантах: Мультипрограммные системы пакетной обработки имели своей целью обеспечение максимальной загрузки аппаратуры компьютера. В этом режиме процессор не простаивал, пока одна программа выполняла операцию ввода-вывода, ЭВМ переключался на другую готовую к выполнению программу. В результате достигалась сбалансированная загрузка всех устройств компьютера. Вариант систем разделения времени рассчитан на многотерминальные системы, когда каждый пользователь интерактивно работает за своим терминалом. Такой вариант мультипрограммирования был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени эффективность использования оборудования ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя. Примерами систем разделения времени являлись ОС TSS/360, CTSS и MULTICS.


2. Программное обеспечение 2.1 Развитие системного ПО Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратуру компьютера. В процессорах появился привилегированный и пользовательский режимы работы, специальные регистры для быстрого переключения одной программы на другую, средства защиты областей памяти, а также развитая система прерываний. В привилегированном режиме, предназначенном для работы программных модулей ОС, процессор мог выполнять все команды, в том числе те из них, которые позволяли осуществлять распределение и защиту ресурсов компьютера. Программам, работающим в пользовательском режиме, некоторые команды процессора были недоступны. Так же для разделения периферийных устройств между одновременно работающими программами была введена система прерываний. Еще одной важной тенденцией этого периода является создание семейств программно-совместимых машин и ОС для них. Примерами семейств программно- совместимых машин, являются серии машин IBM/360 и IBM/370 (аналоги этих семейств советского производства машины серии ЕС), PDP-11 (СМ). Вскоре идея программно- совместимых машин стала общепризнанной.


2. Программное обеспечение 2.2 Развитие системного ПО В 1969 году Министерство обороны США инициировало работы по объединению суперкомпьютеров оборонных и научно-исследовательских центров в единую сеть. Эта сеть получила название ARPANET и явилась отправной точкой для создания самой известной ныне глобальной сети Интернета. В начале 70-х годов появились первые сетевые операционные системы, которые позволяли организовать распределенное хранение и обработку данных между несколькими компьютерами, связанными электрическими связями. К середине 70-х годов наряду с мэйнфреймами широкое распространение получили мини-компьютеры, такие как PDP-11, Nova, HP, которые использовали преимущества больших интегральных схем, позволившие реализовать достаточно мощные функции при сравнительно невысокой стоимости компьютера. Архитектура мини-компьютеров была значительно упрощена по сравнению с мэйнфреймами, что нашло отражение и в их ОС. Многие функции мультипрограммных многопользовательских ОС мэйнфреймов были усечены, учитывая ограниченность ресурсов мини-компьютеров. Эти ОС не всегда были многопользовательскими, что во многих случаях оправдывалось невысокой стоимостью компьютеров.


2. Программное обеспечение 2.2 Развитие системного ПО С появлением мини-компьютеров для них была создана ОС UNIX. Первоначально эта ОС предназначалась для поддержания режима разделения времени в мини- компьютере PDP-7. С середины 70-х годов началось массовое использование ОС UNIX для мини-компьютеров. К этому времени программный код для ОС UNIX был на 90 % написан на языке высокого уровня С. Широкое распространение эффективных С- компиляторов сделало UNIX уникальной для своего времени ОС, обладающей возможностью сравнительно легкого переноса на различные типы компьютеров, т.е. имевшей одну из важных характеристик ОС – мобильность. С начала 80-х компьютеры стали широко использоваться неспециалистами, что потребовало разработки «дружественного» программного обеспечения, и предоставление этих «дружественных» функций стало прямой обязанностью ОС. Первая версия наиболее популярной ОС раннего этапа развития ПК MS-DOS компании Microsoft была лишена всех выше перечисленных особенностей. Это однопрограммная однопользовательская ОС с интерфейсом командной строки способная стартовать с дискеты. Основными задачами для нее были управление файлами, расположенными на гибких и жестких дисках, а также поочередный запуск программ. MS-DOS не была защищена от программ пользователя, так как процессор Intel 8088 не поддерживал привилегированного режима. Разработчики первых ПК считали, что при индивидуальном использовании компьютера и ограниченных возможностях аппаратуры нет смысла в поддержке мультипрограммирования.


2. Программное обеспечение 2.2 Развитие системного ПО Недостающие функции для MS-DOS и подобных ей ОС компенсировались внешним программами, предоставлявшими пользователю удобный интерфейс (например, Norton Commander) или средства тонкого управления дисками,например, PC Tool). Первой широко распространенная ОС с «дружественным» графическим интерфейсом считается ОС MacOS для компьютеров фирмы Apple. С появлением этой ОС фирма Microsoft также приступила к разработке ОС с графическим интерфейсом. Как результатом в 1991 году была выпущена операционная среда Windows 3.0, которая являлась надстройкой над ОС MS-DOS, предоставляя пользователю графический интерфейс и многозадачную среду для выполнения приложений. В 1991 году Финским студентом Линусом Торвальдсом разрабатывается ядро ОС Linux, которое является свободно распространяемым клоном ОС UNIX. На основе этого множество программистов и компаний по всему миру разрабатывают свои варианты (дистрибутивы) ОС Linux. В конце 90-х особое внимание стало уделяться корпоративным ОС, которые отличаются способностью хорошо и устойчиво работать в крупных сетях, характерных для больших предприятий, имеющих отделения в десятках городов и, возможно, в разных странах. К настоящему времени достаточно явно определились лидеры в классе корпоративных ОС это ОС семейства Microsoft Windows NT (Windows 2000, XP, 2003), ОС семейства Linux, а также UNIX-системы различных производителей аппаратных платформ.


2. Программное обеспечение 2.3 Назначение и функции локальной ОС ОС выполняет две группы функций: предоставление пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины, с которой удобней работать и которую легче программировать; повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием. К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, ЗУ, ПУ. Все ресурсы распределяются между процессами. Процесс (задача) – программа в стадии выполнения. Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач: планирование ресурса, т.е. определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс; удовлетворение запросов на ресурсы; отслеживание состояния и учет использования ресурса то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена; разрешение конфликтов между процессами.


2. Программное обеспечение 2.3 Назначение и функции локальной ОС Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых и конечном счете и определяют облик ОС в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Функции операционной системы автономного компьютера обычно группируются либо в соответствии с типами локальных ресурсов, которыми управляет ОС, либо в соответствии со специфическими задачами. Наиболее важными подсистемы ОС: Управления процессами. Для каждого вновь создаваемого процесса ОС генерирует системные информационные структуры, которые содержат данные о потребностях процесса в ресурсах вычислительной системы, а также о фактически выделенных ему ресурсах. В мультипрограммной ОС одновременно может существовать несколько процессов. Поскольку процессы часто одновременно претендуют на одни и те же ресурсы, то в обязанности ОС входит поддержание очередей заявок процессов на ресурсы, например очереди к процессору. Важной задачей операционной системы является защита ресурсов, выделенных данному процессу, от остальных процессов.


2. Программное обеспечение 2.3 Назначение и функции локальной ОС Управления памятью. Память является для процесса таким же важным ресурсом, как и процессор, так как процесс может выполняться процессором только в том случае, если его коды и данные (не обязательно все) находятся в оперативной памяти. Управление памятью включает распределение имеющейся физической памяти между всеми существующими в системе в данный момент процессами, загрузку кодов и данных процессов в отведенные им области памяти, настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области, а также защиту областей памяти каждого процесса. Управления файлами и внешними устройствами. Способность ОС к «экранированию» сложностей реальной аппаратуры очень ярко проявляется в одной из основных подсистем ОС файловой системе. ОС виртуализирует отдельный набор данных, хранящихся на внешнем накопителе, в виде файла простой неструктурированной последовательности байтов, имеющей символьное имя. При выполнении своих функций файловая система тесно взаимодействует с подсистемой управления внешними устройствами. Защиты данных и администрирования. Безопасность данных вычислительной системы обеспечивается средствами отказоустойчивости ОС, направленными на защиту от сбоев и отказов аппаратуры и ошибок программного обеспечения, а также средствами защиты от несанкционированного доступа. В последнем случае ОС защищает данные от ошибочного или злонамеренного поведения пользователей системы.


2. Программное обеспечение 2.3 Назначения и функции локальной ОС Интерфейса прикладного программирования. Возможности операционной системы доступны прикладному программисту в виде набора функций, называющегося интерфейсом прикладного программирования (Application Programming Interface, API). Oт конечного пользователя эти функций скрыты за оболочкой алфавитно-цифрового или графического пользовательского интерфейса. Приложения выполняют обращения к функциям API с помощью системных вызовов. Способ, которым приложение получает услуги операционной системы, очень похож на вызов подпрограмм. Пользовательского интерфейс. ОС обеспечивает удобный интерфейс для человека, работающего за терминалом. В ранних операционных системах пакетного режима функции пользовательского интерфейса были сведены к минимуму и не требовали наличия терминала. Команды языка управления заданиями набивались на перфокарты, а результаты выводились на печатающее устройство. Современные ОС поддерживают развитые функции пользовательского интерфейса для интерактивной работы за терминалами двух типов: алфавитно-цифровыми и графическими.


2. Программное обеспечение 2.4 Архитектура ОС Ядро и вспомогательные модули Современные ОС представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-либо единой архитектуры ОС не существует, но существуют универсальные подходы к структурированию ОС. Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы: ядро модули, выполняющие основные функции ОС; модули, выполняющие вспомогательные функции ОС, такие как управление процессами, памятью, устройствами ввода-вывода, поддержание приложений и т. п. Ядро составляет сердцевину операционной системы, без него ОС является полностью неработоспособной и не сможет выполнить ни одну из своих функций. Приложения могут обращаться к ядру с запросами для выполнения тех или иных действий, которые называются системными вызовами. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования API.


2. Программное обеспечение 2.4 Архитектура ОС Некоторые функции, выполняемые модулями ядра, часто используются, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС часто используемые модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными. Вспомогательные модули ОС, которые используются редко загружаются в оперативную память, только на время выполнения своих функций, являются транзитными. Такая организация ОС экономит оперативную память компьютера. Разделение операционной системы на ядро и модули-приложения обеспечивает легкую расширяемость ОС. В современных ОС большинство основных функций располагается в ядре, такие системы называются ОС с монолитным ядром.


2. Программное обеспечение 2.4 Архитектура ОС Работа ОС в привилегированном и пользовательском режимах Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функций ядра в привилегированном режиме. Для обеспечения привилегии операционной системе аппаратура компьютера должна поддерживать как минимум два режима работы пользовательский режим и привилегированный режим. Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения в пользовательском режиме. Обычно ядро является той частью ОС, которая работает в привилегированном режиме. Иногда это свойство работа в привилегированном режиме служит основным определением понятия «ядро». Приложения ставятся в подчиненное положение за счет запрета выполнения в пользовательском режиме некоторых критичных команд.




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


2. Программное обеспечение 2.4 Архитектура ОС Многослойная структура и аппаратная зависимость ОС Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, состоящую из трех иерархически расположенных слоев: нижний слой образует аппаратура, промежуточный ядро, а утилиты, обрабатывающие программы и приложения, составляют верхний слой системы. Многослойный подход является универсальным и эффективным способом организации сложных систем любого типа, в том числе и программных. В соответствии с этим подходом система состоит из иерархии слоев. Каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций. Аппаратная часть ЭВМ Трехслойная схема вычислительной системы


2. Программное обеспечение 2.4 Архитектура ОС Большая часть модели многослойной структуры программы реализуется с помощью библиотек. Библиотека – программный модуль, содержащий в своем составе набор функций и различных ресурсов (текст, графика, звук и т.д.), которыми может воспользоваться любая программа. Библиотеки используются как на этапе разработки программы программистом, так и на этапе выполнения программы. Библиотеки бывают двух типов: статические – при использовании статических библиотек в процессе компиляции необходимые функции библиотеки копируются в исполняемый модуль программы; динамические – при компиляции в программу вставляются вызовы нужных функций библиотек. Для работы такой программы обязательно наличие этих библиотек в системе. Для программиста библиотеки доступны в виде исходного кода написанного на любом алгоритмическом языке или в виде бинарного файла. Благодаря многослойному подходу в любой ОС можно выделить достаточно компактный слой машинно-зависимых компонентов ядра и сделать остальные слои ОС общими для разных аппаратных платформ, что облегчает перенос ОС с платформы на платформу. Если код ОС может быть сравнительно легко перенесен с аппаратной платформы одного типа на аппаратную платформу другого типа, то такую ОС называют переносимой, или мобильной