Поделиться через


Модель программирования

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

Монолитные операторы goto и процедуры, упакованные в общие библиотеки

Язык программирования C поддерживает процедурно-ориентированное программирование. В C процедура main относится ко всем остальным процедурам как черные ящики. Например, процедура main не может узнать, как выполняются процедуры A, B и X. Процедура main вызывает только другую процедуру. В ней нет сведений о том, как эта процедура реализована.

изоляция действий, выполняемых во внешних процедурах

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

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

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