平成28年秋季 問35. SOAP、CORBA、DCOM、SIP
問題文「ほかのコンピュータ上にあるデータやサービスを呼び出すためのプロトコルで、メッセージ記述がXMLのヘッダとボディで構成されているものはどれか。」
解答群
ア. CORBA
イ. DCOM
ウ. SIP
エ. SOAP
この問題もまずもって全くわからない。まあ、記憶に残るように勉強しているわけなので、少しずつ調べてみようと思う。
まず、CORBAはCommon Object Request Broker Architectureの略だそうで、いくつかサイトを見たもののそもそも実際にプログラムを書くような人でないと完全な理解はできそうになさそうである。
その中で、「達人プログラマーを目指して」さんの「
CORBA関連のJava技術について」の中でおそらく現場のプログラマさんが感じている率直な感想を書いていたので参考にしてみた。
「インターフェースを決めておけば言語によらずにサービスを実装できるということから、信頼できる枯れたCORBAの実装が利用できるのであれば、必ずしもWebサービスなどに置き換えるよりもよいというケースも一応存在すると思います。」
CORBAの基本的な概念としてはプログラムコードをカプセル化することで色々な他のプログラムから呼び出せるようにした規格なのだそうで、色々な言語(C、C++、JavaはもとよりPythonまで)からカプセル化されたプログラムを呼び出して使うことができるようにするらしい。
ここまで書くとなんだか古いプログラムもカプセル化してしまえばすごく便利なように聞こえるが、インターネットが普及してブラウザから色々なサービスの提供を受けられるようになった今、あえてこの技術を選択しなくてもいいのでは?みたいなことらしい。
一例としては富士通さんの「
CORBA概要」というPDFファイルがあって、これを見ると細かなところは置いておいても何となく理解できたような気になれる。この例ではCOBOLをCORBAを利用して連携できるようにするということが書かれているが、COBOLなどの古い言語を新しい言語から呼び出したりするのに実用的なんだと理解した。
クラウドや仮想化技術にしても、いかに古い技術を活かすかという観点から考えると営業的な意味合いでどうやって古くなったIT資産を転用し、お金に変えるか(営業する側からみた視点だが・・・)という意味でひねり出されたアイディアとも言えると思うので、そのようなアイディアで昔作られたものなんだろうな、ぐらいでよさそうである。
では次にDCOMは、Weblio辞書さんの「
DCOM」にざっくり書かれていて、簡単に言うとCOMという技術をネットワーク越しに使えるようにした技術だということだ。ちなみに「Distributed Component Object Model」の略だそうだ。
COMというのはWindowsを利用しているとそこかしこにちらほら出てくる用語だが、調べてみてもいまいちピンとはこなかった。が、まあMicrosoftが開発したソフトウェア基盤の一種だということで納めて置いた方がよさそうだ。何しろこの辺の技術は掘り下げるとどこまでも深くなっていく。
ということで適当にウェブサイトを閲覧していたところ、DCOMに関して面白そうな記事を見つけた。
「Geekなぺーじ」さんの「
DCOM(分散COM)を無効にする」というページである。ここを見るとWindows XPの時代からあった技術らしく、上に書いたようにWindows環境にあるCOMをネットワーク越しに使えるというこの便利機能が、ウィルスの踏み台にされることもあり、Windows Updateが行われていないマシンだと「インターネットに接続しているだけで」感染させられてしまうらしい。
どこにいっても便利な技術っていうのはなんらかの落とし穴を持っているらしい。。。
次に進みたい。SIPは「Session Initiation Protocol」の略で、探すと「戦略的イノベーション創造プログラム」とか言う他の言葉まで出てくるのでWikipediaさん情報のみから読み解くと「
Session Initiation Protocol」に書かれている通りオーディオなどの通信を制御するH.323というプロトコルに代わるセッション制御プロトコルなのだそうだが、現在はインターネット上の会議など、電話やチャット、テレビ電話などによく使われている双方向通信を行うもののようだ。
ざっくり概要だけ見ると、サーバとクライアント間の通信のように主従関係のようなものが持ちにくい通信、つまり電話などのやり取りの中で通信を行う双方がサーバとクライアントの両方の役割を担えるような仕組みということだそうだ。
あまり面白くもないのであまり掘り下げずにさっさと次に行こう。最後にSOAPについて調べて今日も終わりにしたい。もう疲れてきてソープと聞くだけで大人なサービスしか思い浮かばない。
@ITさんの「
SOAP(Simple Object Access Protocol)」というページの記述をまとめると、ネットワーク経由でオブジェクト間の通信を行うプロトコルでXMLを使っているのが特徴ということだ。
「エンベロープ」「ヘッダ」「ボディ」の領域で構成されていて、ファイアウォールで通過しにくい組織間の環境を超えて通信するのに役立つと書かれているのは非常に有益な方法のように聞こえる。
そして、最重要な項目としては「W3C」の宣言でSOAPは何かの略ではなくなり、固有名詞であるということになったということである。何故最重要か?という点だが、これを知っている技術者たちは一様に大人なサービスのSOAPとの二つの固有名詞であると心の底では絶対に思っていると断言できるからだ。
モルダー、あなた疲れてるのよ。と言われそうなので今日はここまでにしたい。