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


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

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

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

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

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

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

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

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