Вычислительная платформа
| Вычислительная платформа |
|---|
Вычислительная платформа, программная платформа — инфраструктура, необходимая для запуска определённого программного обеспечения (ПО).
Совокупность необходимых компонентов для работы ПО составляет вычислительную платформу, хотя отдельные компоненты вычислительной платформы могут быть скрыты под слоями абстракции[1][2].
Вычислительная платформа — широкий термин, конкретное значение которого зависит от контекста — типа ПО, для описания работы которого определяют необходимые компоненты. Так как способов классификации типов ПО достаточно много и в каждой классификации выделяют множество параметров, то и термин вычислительная платформа для такого ПО имеет множество вариантов определения. Однако, общим всегда остаётся определение принципиально необходимых для работы ПО компонентов.
Иногда наиболее отличительный параметр, необходимый для конкретного программного обеспечения, называют вычислительной платформой сам по себе, чтобы облегчить коммуникацию, ссылаясь на целое только по одному из его атрибутов, то есть используя метонимию.
Примеры вычислительных платформ[править]
- Для системного программного обеспечения, написанного на языке ассемблера и запускающегося при старте компьютера, к вычислительной платформе можно отнести архитектуру компьютера (большинство современных компьютеров относятся к ЭВМ). Например, для командного процессора операционной системы (ОС) MS-DOS, хранящегося в файле COMMAND.COM, загружаемого в оперативную память (ОЗУ), запускаемого при старте и являющегося, фактически, ядром ОС, платформой будет архитектура процессора и система команд процессора x86.
- Для исходного кода программы на языке C, предназначенной для работы в среде ОС UNIX, поддерживающей стандарты POSIX, платформой будет являться собственно ОС UNIX, поддерживающая стандарты POSIX (или просто POSIX, использую метонимию). Однако, для такой же программы, транслированной в машинные коды конкретного процессора и собранной в исполняемый файл, вычислительная платформа может быть уже обозначена, например, как «ОС CLIX на процессорах архитектуры Intergraph Clipper».
- Для триггера СУБД, написанной на языке PL/SQL, платформой будет конкретная СУБД, подходящая для исполнения такого программного кода: СУБД Oracle Database или IBM DB2. При этом ни тип ОС, ни даже её наличие, ни конкретная архитектура центрального процессора (ЦП) значения не имеют.
- Для ПО, написанного на языке Java, платформой может быть указана конкретная виртуальная машина, например JX. В общем случае, c ПО на языке Java тип ОС и даже её наличие не важны, так как исходный текстовый код на Java транслируется в байткод Java и выполняется не реальным аппаратным устройством (центральным процессором), а специальным программным механизмом — виртуальной машиной Java (Java Virtual Machine, JVM), которая может сама по себе исполняться в среде какой-то ОС или непосредственно на «голом» железе.
- Если уникальный программный комплекс требующий сложных вычислений для моделирования поведения биологических макромолекул, созданный в НИИ, разработан c целью использовать множество процессоров конкретного графического ускорителя, например, nVidia GeForce RTX 4090, и без такой платы ПО не сможет работать, то такой аппаратный компонент вычислительной системы будет входить в понятие «вычислительная платформа» для такого ПО.
- Другой пример. Серийное ПО для расчётов, например, поведения атмосферных явлений может использовать такой интерфейс прикладного программирования (API) графических ускорителей, как CUDA, благодаря чему сможет работать уже на множество графических ускорителей, например, ускорителях серии GeForce 40. Тут в понятие вычислительная платформа попадает уже не конкретная модель аппаратного компонента, а целая линейка аналогичных продуктов.
- В случае же c какой-то компьютерной игрой, где графический ускоритель может повысить плавность анимации и качество графического изображения, он может являться желательным, но не безусловно обязательным аппаратным компонентом персонального компьютера (ПК). В этом случае он не будет включаться в понятие «вычислительная платформа» для такого ПО.
Приведённые примеры показывают, что в зависимости от уровня и типа ПО, те или иные слои и компоненты вычислительной системы могут быть скрыты за промежуточным программным и аппаратным обеспечением, представляющим различные уровни абстракции. При этом отдельный слой, например, виртуальная машина, являющийся вычислительной платформой для приложения, сам по себе нуждается в следующем нижележащем слое ОС, который будет являться платформой для него и т. д.[1].
Общее правило таково: До тех пор, пока нечто — это необходимый компонент для выполнения программного кода, оно является частью вычислительной платформы для такого кода.
Компоненты[править]
Компонентами вычислительных платформ могут являться:
- Аппаратное обеспечение (АО) в виде т. н. «голого железа»: вычислительная система без установленного программного обеспечения. Такой вычислительная платформа может существовать для встраиваемых систем (embedded system), где ПО обращается к аппаратным компонентам напрямую, без участия ОС. Также это будет являться платформой для системного ПО, типа ОС. Пустое аппаратное обеспечение может являться готовой платформой и для таких видов ПО, как СУБД и виртуальные машины.
- Программные каркасы (фреймворки) и библиотеки предоставляют программам готовые функциональные и архитектурные компоненты.
- Веб-браузеры для веб-приложений могут являться платформой. Хотя они сами функционируют на определённой платформе АО + ОС, это не относится и не является компонентами вычислительной платформы для приложений, функционирующих в среде браузера[3].
- Любое приложение, которое предоставляет возможность выполнять в его среде пользовательский программный код на встроенном скриптовом языке. Например, макрос электронной таблицы LibreOffice Calc имеет в качестве вычислительной платформы это приложение, а для полноценного приложения управления продажами, написанного на встроенном в пакет офисных приложений скриптовом языке платформой может быть уже весь пакет LibreOffice или многие его приложения[4].
- Системы облачных вычислений и сервисы типа «Платформа как услуга» (Platform as a Service) расширяют идею программных каркасов, позволяя разработчикам создавать приложения, многие компоненты которых располагаются на площадках провайдеров таких услуг. В таких распределённых приложениях, где компоненты связаны посредством глобальной сети, они также являются «вычислительной платформой»[5]. Сайты социальных сетей, например ВК, позволяющие пользователям создавать и запускать собственные приложения, также являются для таких приложений «вычислительной платформой», предоставляя разработчику программные компоненты и данные недоступные другим способом[6].
- Виртуальные машины (такие, как JVM) и среды исполнения, например .NET CLR, безусловно относятся к вычислительным платформам, предоставляя приложениям в исходных кодах или транслированным в байт-код, необходимую инфраструктуру для работы, изолируя их от особенностей реальной вычислительной системы.
Примеры существующих вычислительных платформ[править]
Ниже дан список примеров вычислительных платформ различного уровня абстракции[комментарий 1][комментарий 2].
Аппаратное обеспечение[править]
- Семейства микроконтроллеров AVR и MIK от компании «Микрон»
- ARM — лицензируемая архитектура микроконтроллеров (включая однокристальные ЭВМ) и ядер центральных процессоров
- Raspberry Pi полнофункциональные миниатюрные компьютеры
- ARM-серверы c Unix-подобными операционными системами такими, как Linux или BSD
- IBM PC-совместимые персональные компьютеры и серверы
- IBM z/Architecture мейнфреймы
- Игровые приставки (специализированные игровые компьютеры, игровые консоли): Nintendo, PlayStation, Xbox
- Суперкомпьютеры
Российский микроконтроллер (компьютер на микросхеме) MIK32 АМУР на открытой архитектуре RISC-V для устройств промышленной автоматизации, интернета вещей, интеллектуальных сетей, сигнализации, телеметрии и бытовых изделий.
- BESM-6 Politech Museum Moscow.jpg
БЭСМ-6. Пульт управления.
- IBM System z10 BC.jpg
Одна из стоек (шкафов) мейнфрема серии IBM System z10.
- Inside and Rear of Webserver.jpg
Компактный блейд-сервер высотой 1U, монтируемый в стандартные стойки.
- Floridaserversfront1.jpg
Блейд-серверы, маршрутизаторы, источники бесперебойного питания и др. аппаратное обеспечение, смонтированные в стойки (шкафы), образуют единый комплекс оборудования, являющегося вычислительной платформой аппаратного уровня для распределённого веб-приложения.
- Nintendo-Switch-Console-Docked-wJoyConRB.jpg
Игровая приставка Nintendo Switch
Операционные системы[править]
Для мейнфремов[править]
- Дубна — ОС для больших ЭВМ (мейнфреймов) серии БЭСМ-6 (подробнее)
- z/OS — ОС для больших ЭВМ (мейнфреймов) семейства IBM System z
Для персональных компьютеров (стационарных и переносимых), рабочих станций и серверов[править]
- Osbk11.png
Интерфейс пользователя ОС БК-11, созданный на основе двухпанельной парадигмы оболочки Norton Commander для ОС MS-DOS
- Java Desktop running on Solaris 10.png
Среда рабочего стола Java Desktop System на ОС Solaris 10, созданная по мотивам графического интерфейса Windows 95
Для мобильных и носимых устройств[править]
- Умные часы.jpg
Умные часы на руке
Программное обеспечение[править]
- .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 и др.
САПР (CAD) MicroStation, запущенная на ОС CLIX, использующая графический интерфейс Motif. MicroStation является как предназначенным для конечного пользователя ПО, так и вычислительной платформой для приложений (например, I/RAS B, I/GeoVec), работающих в её среде c графическими объектами и элементами интерфейса. Эта CAD позволяет пользователям создавать приложения-надстройки c помощью VisualBasic, Си, С++, Java, Python, COM, .NET и др.
Электронная таблица LibreOffice Calc, в среде которой, выполняется специализированное ПО для сопровождения поставок, продаж и контроля остатков склада. LibreOffice позволяет пользователям создавать собственные приложения-надстройки на C++, Java, CLI, Python и LibreOffice Basic.
См. также[править]
- Аппаратное обеспечение
- Программное обеспечение
- API
- Библиотека (программирование)
- Сервер (программное обеспечение)
Комментарии[править]
Источники[править]
- ↑ 1,0 1,1 Платунов А. Е., Яналов Р. И..
- ↑ What I Talk About When I Talk About Platforms, martinfowler.com.
- ↑ Andrew Binstock Google's Redefinition of the Browser As Platform. Dr. Dobbs (July 2, 2012).
- ↑ Chip Wilson, Alan Josephson Microsoft Office as a Platform for Software + Services. Microsoft Developer Network.
- ↑ What Is PAAS?. Interoute. Архивировано из первоисточника 22 октября 2015. Проверено 28 января 2014.
- ↑ X Developer Platform.
Литература[править]
- Платунов А. Е., Яналов Р. И. Проектирование вычислительных платформ киберфизических систем // Известия высших учебных заведений. Приборостроение. — 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.
Одним из источников, использованных при создании данной статьи, является статья из википроекта «Рувики» («ruwiki.ru») под названием «Вычислительная платформа», расположенная по адресу:
Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC-BY-SA 4.0 и более поздних версий. Всем участникам Рувики предлагается прочитать материал «Почему Циклопедия?». |



