Вычислительная платформа

Материал из Циклопедии
Перейти к навигации Перейти к поиску
Вычислительная платформа

Вычислительная платформа, программная платформа — инфраструктура, необходимая для запуска определённого программного обеспечения (ПО).

Совокупность необходимых компонентов для работы ПО составляет вычислительную платформу, хотя отдельные компоненты вычислительной платформы могут быть скрыты под слоями абстракции[1][2].

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

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

Примеры вычислительных платформ[править]

  • Для исходного кода программы на языке C, предназначенной для работы в среде ОС UNIX, поддерживающей стандарты POSIX, платформой будет являться собственно ОС UNIX, поддерживающая стандарты POSIX (или просто POSIX, использую метонимию). Однако, для такой же программы, транслированной в машинные коды конкретного процессора и собранной в исполняемый файл, вычислительная платформа может быть уже обозначена, например, как «ОС CLIX на процессорах архитектуры Intergraph Clipper».
  • Для ПО, написанного на языке Java, платформой может быть указана конкретная виртуальная машина, например JX. В общем случае, c ПО на языке Java тип ОС и даже её наличие не важны, так как исходный текстовый код на Java транслируется в байткод Java и выполняется не реальным аппаратным устройством (центральным процессором), а специальным программным механизмом — виртуальной машиной Java (Java Virtual Machine, JVM), которая может сама по себе исполняться в среде какой-то ОС или непосредственно на «голом» железе.
  • Если уникальный программный комплекс требующий сложных вычислений для моделирования поведения биологических макромолекул, созданный в НИИ, разработан c целью использовать множество процессоров конкретного графического ускорителя, например, nVidia GeForce RTX 4090, и без такой платы ПО не сможет работать, то такой аппаратный компонент вычислительной системы будет входить в понятие «вычислительная платформа» для такого ПО.
  • Другой пример. Серийное ПО для расчётов, например, поведения атмосферных явлений может использовать такой интерфейс прикладного программирования (API) графических ускорителей, как CUDA, благодаря чему сможет работать уже на множество графических ускорителей, например, ускорителях серии GeForce 40. Тут в понятие вычислительная платформа попадает уже не конкретная модель аппаратного компонента, а целая линейка аналогичных продуктов.
  • В случае же c какой-то компьютерной игрой, где графический ускоритель может повысить плавность анимации и качество графического изображения, он может являться желательным, но не безусловно обязательным аппаратным компонентом персонального компьютера (ПК). В этом случае он не будет включаться в понятие «вычислительная платформа» для такого ПО.
Файл:WinAPI Scheme.svg
Различные компоненты вычислительной системы на базе ОС семейства Windows NT. Каждый компонент (слой) вносит свой уровень абстракции для вышележащих слоёв, являясь для них частью вычислительной платформы, но и сам нуждаясь в нижележащих компонентах, являющихся компонентами вычислительной платформы уже для него.

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

Общее правило таково: До тех пор, пока нечто — это необходимый компонент для выполнения программного кода, оно является частью вычислительной платформы для такого кода.

Компоненты[править]

Компонентами вычислительных платформ могут являться:

  • Аппаратное обеспечение (АО) в виде т. н. «голого железа»: вычислительная система без установленного программного обеспечения. Такой вычислительная платформа может существовать для встраиваемых систем (embedded system), где ПО обращается к аппаратным компонентам напрямую, без участия ОС. Также это будет являться платформой для системного ПО, типа ОС. Пустое аппаратное обеспечение может являться готовой платформой и для таких видов ПО, как СУБД и виртуальные машины.
  • Программные каркасы (фреймворки) и библиотеки предоставляют программам готовые функциональные и архитектурные компоненты.
  • Веб-браузеры для веб-приложений могут являться платформой. Хотя они сами функционируют на определённой платформе АО + ОС, это не относится и не является компонентами вычислительной платформы для приложений, функционирующих в среде браузера[3].
  • Любое приложение, которое предоставляет возможность выполнять в его среде пользовательский программный код на встроенном скриптовом языке. Например, макрос электронной таблицы LibreOffice Calc имеет в качестве вычислительной платформы это приложение, а для полноценного приложения управления продажами, написанного на встроенном в пакет офисных приложений скриптовом языке платформой может быть уже весь пакет LibreOffice или многие его приложения[4].
  • Системы облачных вычислений и сервисы типа «Платформа как услуга» (Platform as a Service) расширяют идею программных каркасов, позволяя разработчикам создавать приложения, многие компоненты которых располагаются на площадках провайдеров таких услуг. В таких распределённых приложениях, где компоненты связаны посредством глобальной сети, они также являются «вычислительной платформой»[5]. Сайты социальных сетей, например ВК, позволяющие пользователям создавать и запускать собственные приложения, также являются для таких приложений «вычислительной платформой», предоставляя разработчику программные компоненты и данные недоступные другим способом[6].
  • Виртуальные машины (такие, как JVM) и среды исполнения, например .NET CLR, безусловно относятся к вычислительным платформам, предоставляя приложениям в исходных кодах или транслированным в байт-код, необходимую инфраструктуру для работы, изолируя их от особенностей реальной вычислительной системы.

Примеры существующих вычислительных платформ[править]

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

Аппаратное обеспечение[править]

Операционные системы[править]

Для мейнфремов[править]

Для персональных компьютеров (стационарных и переносимых), рабочих станций и серверов[править]

Для мобильных и носимых устройств[править]

Программное обеспечение[править]

  • .NET — модульная платформа для разработки программного обеспечения с открытым исходным кодом и общеязыковой средой исполнения Common Language Runtime (CLR), которая подходит для различных языков программирования
    • .NET Framework — патентованная реализация от Microsoft
    • Mono — воплощение системы «.NET Framework» на базе свободного программного обеспечения
  • Java — программная платформа для разработки переносимого программного обеспечения
  • LibreOffice — свободный пакет офисных приложений
  • LibreCAD — свободная САПР
  • Oracle Database — одна из старейших промышленных СУБД
  • Platform V Pangolin DB — российская сборка СУБД PostgreSQL уровня enterprise, содержащая доработки для повышения производительности, безопасности, удобства разработки и сопровождения
  • Qt — фреймворк для разработки кроссплатформенного программного обеспечения на языках программирования C++, Python, Java, Ruby, PHP и др.


См. также[править]

Комментарии[править]

  1. Приведённые примеры не отражают ни популярность, ни объём рынка, как в количестве инсталляций, так и в финансовых показателях.
  2. При прочтении списка следует учесть, что термин ЭВМ является подмножеством термина компьютер и может быть заменён им, но не наоборот.

Источники[править]

Литература[править]

  • Платунов А. Е., Яналов Р. И. Проектирование вычислительных платформ киберфизических систем // Известия высших учебных заведений. Приборостроение. — 2017. — № 10.
  • Таненбаум Э. С. Архитектура компьютера = Structured Computer Organization . — 5-е изд.. — СПб.: Питер, 2007. — 848 с. — (Классика Computer Science). — ISBN 978-5-469-01274-0.
  • Лукьяненко А., Григорьев В. Словарь терминов в области вычислительной техники. Москва, ИТТП, 2008.
  • Большой энциклопедический словарь. Москва, 2011.
  • Крыжановский А. Н. Технический словарь по вычислительной технике. Москва, Вузовская книга, 2005.
  • Wood, David. The Oxford Dictionary of Computing. Oxford University Press, 2016.
  • Merriam-Webster. Merriam-Webster’s Collegiate Dictionary. 11th Edition, Merriam-Webster, 2003.
  • IEEE. IEEE Std 610.12-1990: IEEE Standard Glossary of Software Engineering Terminology. Institute of Electrical and Electronics Engineers, 1990.


 
Известные
деятели

Кент Бек Гради Буч Фред Брукс Barry Boehm Уорд Каннингем Оле-Йохан Даль Том Демарко Эдсгер Вибе Дейкстра Дональд Кнут Мартин Фаулер Чарльз Энтони Ричард Хоар Watts Humphrey Майкл Джексон Ивар Якобсон Craig Larman James Martin Мейер Бертран Дэвид Парнас Winston W. Royce James Rumbaugh Никлаус Вирт Эдвард Йордан Стив Макконнелл

Процесс

Анализ требований Проектирование Программирование Тестирование Внедрение Сопровождение Формальные методы Стадии разработки

Концепции

Моделирование данных Архитектура ПО Функциональная спецификация Язык моделирования Парадигма Методология Технологии Процесс разработки Качество Обеспечение качества Структурный анализ)

Направления

Программирование (Аспектно-ориентированное Объектно-ориентированное Проблемно-ориентированное) • Онтология Сервис-ориентированная архитектура Оценка затрат на разработку

Модели
разработки

Agile Cleanroom CASE Итеративная разработка RUP OpenUP RAD Scrum MSF Спиральная Каскадная XP V-Model Dual Vee Model DSDM

Другие
модели

CMM CMMI Данных Function model IDEF Информационная Metamodeling Object model View model UML

Прочее

Информатика Инженерия (Компьютерная Организационная) • История разработки ПО Документирование Управление (Конфигурационное Проектами Программами качеством) • Эргономика Системотехника Обратная разработка Версии

Рувики

Одним из источников, использованных при создании данной статьи, является статья из википроекта «Рувики» («ruwiki.ru») под названием «Вычислительная платформа», расположенная по адресу:

Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC-BY-SA 4.0 и более поздних версий.

Всем участникам Рувики предлагается прочитать материал «Почему Циклопедия?».