システム開発

一般的なシステム統合プロトコルについて

システムを設定する時、Low Couplingと High Cohesionを満たすことを確保するように、システムを小さなモデルに分けることが多いです。

または、システムを小さなサービスを分けて組み合わせることも多いです。

これにより、システムのスケーリングが簡単になり、システムのフォールトトレラントも確保することができます。

しかし、上記のようにシステムを分割すると、統合に関する問題が発生してしまうことも…。

システムを一緒にスムーズに稼働するためには、適切な組み合わせを選択するべきです。この記事ではそんな適切なシステム統合プロトコルについて紹介していきます。

  • 適切なシステム統合プロトコルについて知りたい方
  • 社内のIT人材が不足している方

これらに当てはまる方におすすめの記事となっています。これを読めばシステム統合プログラムについて丸わかりですよ。

一般的なシステムの組み合わせ方法の例

PHP と MySQL組み合わせ

PHPとMySQLは異なるテクノロジーです。(PHP:プログラミングの言語 MySQL:データベース管理のシステム)。

開発の時にPHPとMySQLを接続する必要があります。PHPはMysqli、 PDO等のMySQLへ接続できるようにいくつかの方法をご紹介します。アクセス方法とデータベース処理を提供する拡張機能です。

MySQLへの接続の為、ホスト、ポート、ユーザー名、パスワード等のいくつかのパラメータを宣言しましょう。

他のパラメータを無視して、ホストとポートを注意してください。

MySQLは tcp/socketでサーバーへのアクセス方法を提供します。これはシステムにアクセスして、組み合わせる為のプロトコルです。ほとんどプログラミング言語とデータベースがこのプロトコルをサポートしています。

MySQLサーバーが実行される時、サーバソケットがポート3306(MySQLのデフォルトのポート)待機します。このポートへのアクセスがある場合(PHP等から)、依頼情報によりMySQLが結果を返します。

ソケットが2つの通信仕組みを提供します。1つは仮想的なポートを使用します(ポート3306)。もう1つはソケットのファイルシステムを使用します(UNIXソケット)。

このファイルがシステム内のプロセス間の内部的な通信を担当します(1つのプログラムが複数のプロセスを含む)。

UNIXソケットのファイルは同じサーバ上に2つのプロセスがある時の使用可能性です。PHPとMySQLが異なるサーバ上にある場合、仮想的なポートのみを組み込み使用することができます。

PHP と NGINXの組み合わせ

NGINXがWebサーバー、 Proxy、 Load Balancer等のシステムに多くの影響を与えます。

基本的に、NGINX と PHPを連携する方法はPHPとMySQLに似ています。これらはソケットによって通信します。

NGINXを使用する為、PHP-FPMという特別なPHPのバージョンが必要です。NGINX と Apache仕様管理の仕組みが異なりますので、この問題ができるようにPHPのバージョンが必要です。

PHP- FPMはローカルアクセスまたはリモートアクセスの為にポート9000またはUNIXソケットのファイルを開きます。

Docker Client と Docker Machine

Dockerには、 Command Line Interface (CLI) の使用は Docker Clientに作業しているということです。

コマンドを入力する時、Docker Clientが RESTful標準に従ってDocker Machineへコマンドを送信します。

しかし、送信の仕組みがHTTPではなくソケットです。

それから、 Docker Machine へソケットができるウェブサイトを作成することに基づき、Docker管理プログラムが構築できます。

Docker Composeシステム

まず、Docker Composeによって実行される各サーバが個別のサーバ―であることを理解することが必要です。

つまり、このサーバーのプロセスが他のサーバーのプロセスを呼び出すことができません。他のネットワークプロトコルを通じることで通信することができます。

通信できるように、これらのサービスが同じネットワーク上にある必要があります(Overlay Networkと呼ばれる)。

このネットワークがDocker 自体によって作成され、そのネットワークにコンテナを付けます。その時、付かれるサービスの名がhostnameになります。

例えば、 PHPサービスがSocket portを通じてMySQLを呼び出せるように、MySQLとポート3306という hostnameを宣言するべきです。

なお、NGINX と PHPに対するPHPとポート9000というhostnameを宣言するべきです。

一般的なシステムの組み合わせる方法

HTTP Protocol

これは現在の世界を支配するプロトコルです。これらはウェブサイト、ビデオ、写真等のネットワークリソースへのアクセスをサポートできます。

ステートレスはHTTPの特殊です。これは初めてのクライアントがサーバーへ依頼を送信した時、二回目まで、サーバーはこのクライアントが依頼を送信するかどうか分からないということです。

このデメリットを克服する為、Session、Cookie、LocalStorage、 Json Web Token等が効果的です。(HTTPがステートフルになる為)。これにより、サーバーが書くクライアントが区別できます。

各システムがサービスという役割を果たします。したがって、Webサービスがあります。

SOAPという標準の通信プロトコルを使用することが以前は多かったそうです。SOAPもHTTP(Web)及びSMTP(Mail)プロトコルの両方で使用することができます。

その後2000年以降、RESTという1つの標準を発明されました。

この標準を使用するシステムが RESTful Serviceと呼ばれます。これは現在Web APIで一般的に使用する標準です。RESTの本質はStatelessですので(以上の通りに言った)、各クライアントのAuthenticateの為Web Tokenを使用します。

TCP Socket Protocol

前述したように、ソケットはとても古典的なプロトコですが、現在でもかなり使用されています。

ここではTCPソケットのみ考慮されます。TCPソケットのプロトコルには、2台の機械が相互に接続し、情報を送信したい場合絶えず接続を作成しましょう。

なお、UDPという他のプロトコルもあります。このプロトコルはもっと高速で、接続を作成する必要がありません。しかし、パケットの受信が確認できないので信頼性が低いです。

RPC – Remote Produce Call

これはリモート関数を呼び出すための手法のことです。

この関数が現在のプログラムがないので、サーバーまたは他のプログラムを実行するべきです。

例えば、内部のチャートプログラムがある場合、ユーザーの登録を実行する為のクライアント確認のザーバーを構築していきましょう。クライアントは確認を依頼する時、サーバーへリクエストを送信します。このリクエストがRPCと呼ばれます。

 RESTful Serviceを設計する時、ログイン、ログアウト等の機能がRPCと見なします。

基本的に、RPCはRESTと同じように通信設計のことを指します。HTTP Protocol または TCP Socketでこの仕組みが実装できます。

現在、RPCは複数のサーバーから関数を呼び出す必要がある高性能化問題によく使用されます。

その中では Thrift 及び gRPCという2つのRPCフレームワークが一番有名です。

これはユーザーがサーバーと遠隔手続き呼び出しが構築できる2つフレームワークです。Thrift及びgRPCはRPC実行が簡単になるため安易なインタフェースを提供します。

現在、ThriftはFacebookに使用されています。ちなみに、gRPCはサービス統合用のGoogleに使用されています。

Message Queue

Message Queueは分散システムの重要なテクノロジーです。分散システムは複数のサーバー、救数のサービス、複数のデータベースを含みます。

これらはお互いに連携し、動作します。良い1つの分散システムはCAP Theoremを確保する必要のシステムです。

サービス数が増えると、サービス間の通信が混乱になります。

メッセージキューは別のサーバーで遠隔手続き呼び出しまたはリソースコードへの呼び出しが1つのメッセージと見なすという提案します。その後、メッセージブローカは構成され、各サービス間でメッセージを通信することができます。

メッセージブローカはAMQP プロトコルを実装することが多いです。これは分散システムでメッセージの送受信に関する専門があるプロトコルの一つです。

まとめ

いかがでしたか。この記事では一般的なシステム統合プロトコルについて紹介していきました。

さまざまな組み合わせがあり、それぞれに特徴がありましたね。

dehaでは、5年ほど前から、ベトナムオフショア開発を行っています。

システム統合の為のメッセージブローカとしてKafkaを導入しています。本日紹介したシステム統合プロトコルについてや、Kafkaに関してなど興味がある方はぜひご気軽にお問い合わせください。

お問い合わせはこちらから

Van Nguyen

Recent Posts

AI活用で業務効率化へ:2026年度IT導入補助金のスケジュールと活用法

「AIを業務に取り入れたいけれど、導入コストが気になる」「どのようなAIツールを選べばよいのかわからない」「補助金を使ってDXを進めたい」――このような悩みを抱える中小企業・小規模事業者は少なくありません。 そこで活用を検討したいのが、2026年度の「デジタル化・AI導入補助金」です。 従来の「IT導入補助金」から名称が変更され、2026年度はAI活用を含むデジタル化をより意識した制度となっています。 業務効率化や生産性向上につながるITツールの導入費用を支援することで、中小企業のDXを後押しする制度です。 この記事では、2026年度のデジタル化・AI導入補助金について、制度の概要から申請スケジュール、AI活用の具体例、申請時の注意点までをわかりやすく解説します。 AI導入を検討している方 IT導入補助金を申請したい方 これらに当てはまる方におすすめの記事となっています。これを読めば2026年度の「デジタル化・AI導入補助金」の詳細がわかるだけでなく、具体的な申請方法も丸わかりですよ。 (more…)

3 days ago

AX推進を成功させる7つのステップ|構想から定着までの実践ロードマップ

生成AIやAIエージェントなどの技術が急速に進化し、企業におけるAI活用は「一部の業務を効率化する段階」から「企業そのものの仕事の進め方を変える段階」へと移行しています。 こうした変革を指す言葉として注目されているのが、AX(AI Transformation)です。 しかし、AXを推進しようとして「まずは生成AIを導入してみよう」と考えるだけでは、十分な成果につながらないケースも少なくありません。 AIツールを導入したものの、一部の社員しか利用しない、期待したほど生産性が上がらない、既存システムとの連携が進まないといった問題が発生することがあります。 AXで重要なのは、AIという技術そのものではなく、AIを活用して業務・組織・意思決定・顧客体験などをどのように変えていくかという視点です。 そのためには、明確な構想を立て、対象業務を選定し、小さく実証し、成果を検証したうえで全社へ展開していく必要があります。 この記事では、AX推進を成功させるためのプロセスを7つのステップに分け、構想から社内への定着まで、企業が実践すべきポイントを解説します。 AXを推進したい方 AIに興味がある企業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAX推進のための方法がステップごとに具体的にわかりますよ。 (more…)

6 days ago

2034年までのクラウドAI市場規模と動向:最新予測と企業の導入メリット

皆さんは「クラウドAI」をご存知でしょうか。クラウド環境を利用することで、高価なサーバーや専門的なAIインフラを自社で保有することなく、高度なAI機能を利用できるようになりました。 市場調査会社の各種レポートでも、クラウドAI市場は2034年に向けて急速な成長が予測されており、多くの企業が競争力強化や業務効率化を目的に導入を進めています。 この記事では、市場規模の最新予測や成長を支える要因、企業がクラウドAIを導入するメリットについて、最新の市場調査データをもとに詳しく解説します。 クラウドAI市場に興味がある方 クラウドAIの動向が気になる方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばクラウドAI市場の規模や動向について分かるだけでなく、企業のメリットまで丸わかりですよ。 (more…)

3 weeks ago

クラウド型AIとは?仕組みと企業が導入すべき理由

近年、ChatGPTをはじめとする生成AIの登場によって、多くの企業がAI活用に注目しています。 しかし、「AIを導入したいが、自社でサーバーやシステムを構築するのは難しい」「コストを抑えながらAIを活用したい」と考える企業も少なくありません。 そこで注目されているのがクラウド型AIです。インターネット経由でAIを利用できるため、高性能なAIを低コストかつ短期間で導入できることから、多くの企業で採用が進んでいます。 この記事では、クラウド型AIの仕組みや特徴、オンプレミス型との違い、導入メリット、導入時の注意点まで詳しく解説します。 AIを導入したいとお考えの方 社内のIT人材が不足している方 業務効率を上げたい方 これらに当てはまる方におすすめの記事となっています。これを読めばクラウド型AIの特徴がわかるだけでなく、導入方法まで丸わかりですよ。 (more…)

3 weeks ago

3分でわかる「AX段階モデル」|自社のAI活用レベルを知る

「AIを導入したいけれど、何から始めればよいかわからない」「ChatGPTを試してはいるものの、業務改善にはつながっていない」「競合企業はAIを活用しているようだが、自社はどのレベルなのか知りたい」。 このような悩みを抱える企業は少なくありません。 近年、企業のAI活用は「AIツールを使う」段階から、「AIを前提とした企業へ変革する」段階へと進化しています。 その変革を体系的に理解するために注目されているのがAX(AI Transformation)段階モデルです。 この記事では、AX段階モデルの概要と各ステージの特徴、自社がどの段階にあるのかを判断するポイントについて、3分で理解できるようわかりやすく解説します。 AIを導入したいが、どこから始めればよいかわからない方 自社のAI活用レベルを客観的に把握したい方 AIを活用して生産性向上や競争力強化を目指したい方 に当てはまる方におすすめの記事となっています。これを読めばAIを活用するための具体的な方法とAXモデルの具体的な仕組みが分かりますよ。 (more…)

1 month ago

なぜ今、企業にAXが必要なのか?

近年、AI(人工知能)は私たちの生活だけでなく、企業活動にも急速に浸透しています。 文章作成や画像生成、データ分析、問い合わせ対応など、これまで人が担っていた業務をAIが支援・代替できるようになり、多くの企業がAI活用に注目しています。 一方で、「AIツールを導入しただけ」で終わってしまう企業も少なくありません。 本当に競争力を高めるためには、単なるAI活用ではなく、企業全体をAI中心に変革する「AX(AIトランスフォーメーション)」という考え方が重要になります。 この記事では、AXとは何か、DXとの違い、そしてなぜ今企業にAXが必要なのかについて詳しく解説します。 AXに興味がある方 AIを活用したいとお考えの方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば今注目のAXについて丸わかりですよ。 (more…)

1 month ago