エンタープライズへの適用 |
|
1つは、CORBA(Common Object Requet Broker Architecture)です。CORBAそのものについての詳細は、当フォーラムでもほかに紹介記事があります(参考「いまなぜCORBAなの?」)。CORBAは、IDLを使うことによって、Java、C、C++、COBOLなど複数の言語で記述されたオブジェクトの間のインターフェイスを作り、通信を行うことができるようにするというものです。ホスト系のプログラムはCOBOLをはじめ、Java以外の言語で書かれていることがほとんどですから、これをCORBAに対応させればJavaのオブジェクトとも通信を行うことができます。
ほかの方法としては「メッセージング(Messaging)」があります。メッセージングとは、2つのアプリケーションの間で、メッセージをやりとりすることによって通信を行う方法です。RMIなどと異なり、常に接続を確立している必要がなく、非同期的にお互いがそのメッセージに対する処理と応答を行うことができるようになっており、異機種間や異なるプラットフォーム間での通信に適しているといわれています。
メッセージングの手法には、イベント駆動型のPublish/Subscribeモデルと、キューベースのPoint-to-Pointモデルがあります。ここでは、ミドルウェアでも多く用いられているPoint-to-Pointモデルについて簡単にご説明しましょう。
Point-to-Pointモデルは、キューというメッセージの入れ物を使って通信を行います。キューとはメッセージを保管しておく入れ物のようなものです。通信を行う各アプリケーションは、このキューに対してアクセスを行います(キューへのアクセスは、メッセージング用のミドルウェアのAPIを使って行われます)。メッセージを送信したい場合は、相手側のキューにメッセージを送信して格納します。メッセージを受信したい場合は、自分側のキューからメッセージを取り出して受信します。
![]() |
アプリケーション間のメッセージのやりとりは、いったんキューの中にたくわえられる。アプリケーションはキューからメッセージを取り出して処理を行う |
メッセージは直接アプリケーション間でやりとりされるのではなく、キューを介してやりとりされますので、アプリケーション同士が接続を確立している必要はなく、また、メッセージに対して同期的に処理を行う必要もありません。
また、これらの方法のほかにも、特定ホスト向けのミドルウェアとして、ホスト上のモジュールを、プログラム単位で同期的に呼び出すことのできるような製品も存在します。
![]() |
「Java Solution FAQ」 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
![]() |
||
|
||
![]() |
Java Agile 記事ランキング
- AIにJavaと開発環境について聞いてみた――AIコーディング時代に必要なプログラミング脳を強化しよう
- AIにJavaの変数、データ型、演算子について聞いてみた――GitHub Copilotで始めるAIコーディングの基本
- Springにおける「RestController」と「Controller」の違いとは
- 「GitHub Copilot for Eclipse」(パブリックプレビュー)リリース、GitHub CopilotでEclipseの開発体験はどう変わる?
- Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは
- Javaエンジニアがうんざりする「ランタイムエラー」5大原因はこれだ
- 「Spring」「Spring Boot」「Spring Framework」、それぞれの特徴とは
- AIにJavaの変数、データ型、演算子について聞いてみた――GitHub Copilotで始めるAIコーディングの基本
- AIにJavaと開発環境について聞いてみた――AIコーディング時代に必要なプログラミング脳を強化しよう
- Spring BootとSpring MVCの違い 両者の特徴と使い分けのポイントとは
- “Hello World”が3行で収まる、Oracleが「Java 24」を提供開始
- 「GitHub Copilot for Eclipse」(パブリックプレビュー)リリース、GitHub CopilotでEclipseの開発体験はどう変わる?
- Springにおける「RestController」と「Controller」の違いとは
- 「Spring」「Spring Boot」「Spring Framework」、それぞれの特徴とは
- COBOL/メインフレームのJava/マイクロサービス化サービスをデロイト トーマツが発表 どう実現しているのか
- Javaエンジニアがうんざりする「ランタイムエラー」5大原因はこれだ
- 「Spring Framework」における、依存関係の注入(DI)と制御の反転(IoC)とは