DCE/RPC

DCE/RPC（Distributed Computing Environment / Remote Procedure Calls）は、複数のコンピュータ上のソフトウェアをあたかも1つのコンピュータ上で動作しているかのように動作させる遠隔手続き呼出し (RPC) システムの一種である。これにより、分散処理ソフトウェアをネットワーク関連をどう実装するかを気にせずに構築できる。

DCE/RPC は DCE そのものとは異なる。DCE/RPC は DCE の一部であり、他にも CDS や DFS が DCE に含まれる。

 歴史 
DCE/RPC は Open Software Foundation(OSF)が "Request for Technology" として公募した技術であった。これに応じた主な企業としてアポロコンピュータがある。同社のNetwork Computing System (NCS) が DCE/RPC の主要なベースとなった。NCS の前身は "Network Computing Architecture" (NCA) であるため、DCE/RPC にもその名残りがある。例えば、ncacn_np、ncacn_tcp、ncacn_http といった名称はRPCが利用するプロトコルを指定する番号に付けられた名前である。

DCE/RPC は、複雑なことでも有名だが、その複雑さは対象とする大規模分散システムに由来するものであって、例えば最近のRPC実装である SOAP などは、DCE/RPCが扱える複雑なシステムには適していない。

 ライセンス 
DCE/RPCのリファレンス実装（バージョン 1.1）は、BSD互換の OSF/1.0 ライセンスで提供され、少なくとも、Solaris、AIX、VMS で動作した。後述するSambaやWineにはこのコードは今のところ使われていない。

 利用例 
 イギリスの年金に当たる国民保険のシステム(NIRS/2)で使われたThe Open Group, CASE STUDY : NIRS2, 1996年冬。
 ペンシルベニア州立大学の学生情報ポータル eLion で使われた。
 HP OpenView Operations for Unix/Windows の古いバージョンで使われていた。HP OpenView Operations はシステム/アプリケーション管理製品としては有名な製品である。

 派生バージョンと実装 
 "FreeDCE" は DCE 1.1 リファレンス実装を Linux に移植したもので、64ビットのプラットフォームをサポートしている。また、各種プラットフォームへの移植を容易にするため autoconf 化されている。現在、Win32 版の作業が進行中。
 Entegrity Solutions は OSF の DCE 1.2.2 を Win32 向けに移植し、PC/DCE という名称で製品化している。
 マイクロソフトの DCE/RPC 実装は MSRPC と呼ばれ、Windows NT で採用された。MSRPC は DCE 1.1 リファレンス実装に基づいている。また、マイクロソフトはこれをDCOMにも採用した。
 Samba はMSRPCとの相互運用（ネットワークレベルとIDLレベル）のためにMSRPCの実装を含んでいる。ただし、バイナリレベルでの相互運用はできない。
 Wineプロジェクトでは、バイナリレベルとIDLレベルの相互運用のため、MSRPCの実装を含んでいる。ただし、ネットワークレベルの相互運用はできない。
 Javaで DCE/RPC との相互運用が可能な実装が行われている。

 参考文献 

Category:通信プロトコル
Category:遠隔手続き呼出し