Читаем Системное мышление полностью

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

<p>Платформы и технологические стеки</p>

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

Платформа – это всегда модульное рассмотрение, обсуждение платформы всегда связано с её сервисами, т.е. внешним поведением, предоставляемом на интерфейсе к другим модулям. Для программных модулей этот интерфейс обычно называется API (application program interface), программный интерфейс приложения. Если речь идёт не о программной системе, то можно говорить просто об интерфейсе приложения, или прикладном интерфейсе. Прикладной – это определяемый использующей системой платформы (согласованного в части выполнения каких-то сервисов набора модулей) или модуля. Приложение – это использующая система для платформы модуля, части приложения находятся в операционном окружении модуля.

Основной вопрос при обсуждении платформ – это так называемая видимость интерфейсов. Интерфейсы какого-то низкого системного уровня не должны быть видны снаружи модуля, то есть невозможно соединение модулей иначе, чем через предусмотренные в нём интерфейсы. Грубо говоря, если у вас коробочка с каким-то разъёмом, то нельзя воткнуть внешнее устройство не в этот разъём, а куда-нибудь внутрь коробочки, мимо этого разъёма. Для обсуждения видимости интерфейсов используется диаграмма модульных уровней, диаграмма холархии системных уровней. Каждый уровень отделён от другого уровня каким-то интерфейсом. Реализации нижестоящих уровней тем самым могут быть сменены так, что использующая система этого не заметит. А итоговую холархию называют платформенным стеком или технологическим стеком (stack, стопка – диаграммы похожи на стопку подносов в столовой или стопку листов бумаги в пачке). Вот пример различных технологических стеков для организации связи126:

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

Есть два способа чтения таких модульных диаграмм: на некоторых диаграммах «платформа» именуется стандартом, а реализация этого стандарта находится как бы «между уровнями» (ровно этот способ показан на диаграмме, он самый распространённый), и показ собственно модулей (именование платформ), тогда API этих модулей либо считаются проименованные самим модулем (скажем, модуль TensorFlow имеет API TensorFlow, и поэтому его не нужно отдельно прописывать), или если платформенный уровень реализует стандарт, то он прописывается где-то в границах реализующего его модуля отдельной строчкой поближе к границе использующего модуля, или даже выносится и явно прописывается «между платформами», как это сделано в картинке стека безопасности приложений127 – стандарты указаны сбоку картинки платформенного стека, а каждая плашка обозначает слой модулей:

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

Часто оба этих способа перемешивают, получая гибридную диаграмму. Вот, например, модульная диаграмма компилятора искусственных нейронных сетей, где верхние строки – наименования программных модулей-пакетов реализации нейронных сетей (например, пакет MXNet), а нижние – интерфейсных стандартов для какой-то аппаратуры (например, стандарт OpenCL)128:

Перейти на страницу:

Похожие книги

Сочинения
Сочинения

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

Иммануил Кант

Философия / Проза / Классическая проза ХIX века / Русская классическая проза / Прочая справочная литература / Образование и наука / Словари и Энциклопедии
1. Объективная диалектика.
1. Объективная диалектика.

МатериалистическаяДИАЛЕКТИКАв пяти томахПод общей редакцией Ф. В. Константинова, В. Г. МараховаЧлены редколлегии:Ф. Ф. Вяккерев, В. Г. Иванов, М. Я. Корнеев, В. П. Петленко, Н. В. Пилипенко, Д. И. Попов, В. П. Рожин, А. А. Федосеев, Б. А. Чагин, В. В. ШелягОбъективная диалектикатом 1Ответственный редактор тома Ф. Ф. ВяккеревРедакторы введения и первой части В. П. Бранский, В. В. ИльинРедакторы второй части Ф. Ф. Вяккерев, Б. В. АхлибининскийМОСКВА «МЫСЛЬ» 1981РЕДАКЦИИ ФИЛОСОФСКОЙ ЛИТЕРАТУРЫКнига написана авторским коллективом:предисловие — Ф. В. Константиновым, В. Г. Мараховым; введение: § 1, 3, 5 — В. П. Бранским; § 2 — В. П. Бранским, В. В. Ильиным, А. С. Карминым; § 4 — В. П. Бранским, В. В. Ильиным, А. С. Карминым; § 6 — В. П. Бранским, Г. М. Елфимовым; глава I: § 1 — В. В. Ильиным; § 2 — А. С. Карминым, В. И. Свидерским; глава II — В. П. Бранским; г л а в а III: § 1 — В. В. Ильиным; § 2 — С. Ш. Авалиани, Б. Т. Алексеевым, А. М. Мостепаненко, В. И. Свидерским; глава IV: § 1 — В. В. Ильиным, И. 3. Налетовым; § 2 — В. В. Ильиным; § 3 — В. П. Бранским, В. В. Ильиным; § 4 — В. П. Бранским, В. В. Ильиным, Л. П. Шарыпиным; глава V: § 1 — Б. В. Ахлибининским, Ф. Ф. Вяккеревым; § 2 — А. С. Мамзиным, В. П. Рожиным; § 3 — Э. И. Колчинским; глава VI: § 1, 2, 4 — Б. В. Ахлибининским; § 3 — А. А. Корольковым; глава VII: § 1 — Ф. Ф. Вяккеревым; § 2 — Ф. Ф. Вяккеревым; В. Г. Мараховым; § 3 — Ф. Ф. Вяккеревым, Л. Н. Ляховой, В. А. Кайдаловым; глава VIII: § 1 — Ю. А. Хариным; § 2, 3, 4 — Р. В. Жердевым, А. М. Миклиным.

Александр Аркадьевич Корольков , Арнольд Михайлович Миклин , Виктор Васильевич Ильин , Фёдор Фёдорович Вяккерев , Юрий Андреевич Харин

Философия