[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]

-[[戻る>通信技術]]

* 目次 [#x47864f3]
#contents

*概要 [#kacf7438]
RPC(英: remote procedure call、リモートプロシージャコール)

*色々なRPC [#o8d11410]

**DCE/RPC [#e49c6a83]
-マイクロソフトがMSRPCの基盤として採用し、DCOMの実装に使った。
-同じ頃、パロアルト研究所のILUとObject Management GroupのCORBAが登場。

***DCOM [#z23b05db]
DCOMは、COM+としても提供されている(VB6などでも利用可能)。~
.NETからは、COM+をEnterprise Servicesとして利用可能だが、

現在は主流ではなくなっている。

-参考
--.NET における Enterprise Services (COM+) について~
http://msdn.microsoft.com/ja-jp/library/ms973847.aspx
--.NET で COM+ サービスを使用する~
http://msdn.microsoft.com/ja-jp/library/ms973809.aspx

***.NET Remoting [#j1bf476c]
-Windowsプラットフォーム上でRPC機能を提供する。
-現在、[[WCF]]に置き換えられ、現在は主流ではなくなっている。

-参考
--Microsoft .NET Remoting Framework の概要~
http://msdn.microsoft.com/ja-jp/library/ms973864.aspx
--.NET リモート処理から Windows Communication Foundation (WCF) へ~
http://msdn.microsoft.com/ja-jp/library/aa730857.aspx
--.NET Framework 3.0新技術の使い分け指針 - @IT~
http://www.atmarkit.co.jp/fdotnet/special/dotnetfx3002/dotnetfx3002_02.html

***[[WCF]] (Windows Communication Foundation) [#f3a54d6e]
-Windowsプラットフォーム(.NET)上でのデファクトの通信サブシステム。
-Web界隈では、[[ASP.NET Web API]]が主流となっている。

**Webサービス [#i434485e]
さまざまなプラットフォーム上で動作する異なるソフトウェア同士が相互運用するための標準的な手段を提供するもの。

-HTTPなどのインターネット関連プロトコルを用い~
メッセージの送受信を行う技術やサービス。

-ほぼ同義語の用語としてWeb APIがある。

***XML-RPC [#fdad3f1c]
https://ja.wikipedia.org/wiki/XML-RPC


-RPCプロトコルの一種

--1998年、ユーザーランド・ソフトウェアがマイクロソフトと共同で開発

--以下の技術を採用している。
---エンコード(符号化)にXML
---転送機構にHTTP

--非常に単純なプロトコル
---少数のデータ型やコマンドを定義。
---仕様は2枚の紙にまとめられる。
---他のRPCの膨大な規格+実装と比べ、際立った特徴。

-SOAP
--XML-RPCに新たな機能を追加したものがSOAPへと発展。
--SOAP よりも単純で扱いやすいXML-RPCを好む人もいる。

***JSON-RPC [#g8bee649]
https://ja.wikipedia.org/wiki/JSON-RPC

-[[ASP.NET Web API]]で実装可能。
-JSON-RPCとは、ざっくり以下の様なものらしい。

--XML-RPC(SOAP)をJSONで行なうようなイメージだが、厳密な仕様が決まっていない。

--[[REST]] APIは疎結合で、不特定多数の開発者を相手にする場合は優れた方法だが、~
[[REST]]ではRPCライクな処理ができない(対応できないケースがある)。
---SPAで一覧更新した結果データを送信する場合。
---データを非同期で押し出さなければならない場合。
---バイナリプロトコル(例:IoTデバイスからの最適化されたメッセージ転送)
--RESTful (RESTafarians) に疲れたらJSON-RPCを使う。

-参考
--REST vs JSON-RPC? - Stack Overflow~
http://stackoverflow.com/questions/15056878/rest-vs-json-rpc
--RESTの代替は必要か~
https://www.infoq.com/jp/news/2014/01/rest-alternatives
--Microsoft REST APIガイドラインはRESTfulではない~
https://www.infoq.com/jp/news/2016/07/microsoft-rest-api
--REST APIに消耗したらJSON RPCを試そう - タオルケット体操~
http://hachibeechan.hateblo.jp/entry/try-json-rpc-great-good
--RESTとJSON-RPC - 廃墟~
http://d.hatena.ne.jp/hagino_3000/20101209/1291831632

----
Tags: [[:.NET開発]], [[:.NET Core]], [[:ASP.NET]], [[:ASP.NET Web API]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS