システムを設定する時、Low Couplingと High Cohesionを満たすことを確保するように、システムを小さなモデルに分けることが多いです。
または、システムを小さなサービスを分けて組み合わせることも多いです。
これにより、システムのスケーリングが簡単になり、システムのフォールトトレラントも確保することができます。
しかし、上記のようにシステムを分割すると、統合に関する問題が発生してしまうことも…。
システムを一緒にスムーズに稼働するためには、適切な組み合わせを選択するべきです。この記事ではそんな適切なシステム統合プロトコルについて紹介していきます。
これらに当てはまる方におすすめの記事となっています。これを読めばシステム統合プログラムについて丸わかりですよ。
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が異なるサーバ上にある場合、仮想的なポートのみを組み込み使用することができます。
NGINXがWebサーバー、 Proxy、 Load Balancer等のシステムに多くの影響を与えます。
基本的に、NGINX と PHPを連携する方法はPHPとMySQLに似ています。これらはソケットによって通信します。
NGINXを使用する為、PHP-FPMという特別なPHPのバージョンが必要です。NGINX と Apache仕様管理の仕組みが異なりますので、この問題ができるようにPHPのバージョンが必要です。
PHP- FPMはローカルアクセスまたはリモートアクセスの為にポート9000またはUNIXソケットのファイルを開きます。
Dockerには、 Command Line Interface (CLI) の使用は Docker Clientに作業しているということです。
コマンドを入力する時、Docker Clientが RESTful標準に従ってDocker Machineへコマンドを送信します。
しかし、送信の仕組みがHTTPではなくソケットです。
それから、 Docker Machine へソケットができるウェブサイトを作成することに基づき、Docker管理プログラムが構築できます。
まず、Docker Composeによって実行される各サーバが個別のサーバ―であることを理解することが必要です。
つまり、このサーバーのプロセスが他のサーバーのプロセスを呼び出すことができません。他のネットワークプロトコルを通じることで通信することができます。
通信できるように、これらのサービスが同じネットワーク上にある必要があります(Overlay Networkと呼ばれる)。
このネットワークがDocker 自体によって作成され、そのネットワークにコンテナを付けます。その時、付かれるサービスの名がhostnameになります。
例えば、 PHPサービスがSocket portを通じてMySQLを呼び出せるように、MySQLとポート3306という hostnameを宣言するべきです。
なお、NGINX と PHPに対するPHPとポート9000というhostnameを宣言するべきです。
これは現在の世界を支配するプロトコルです。これらはウェブサイト、ビデオ、写真等のネットワークリソースへのアクセスをサポートできます。
ステートレスは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ソケットのみ考慮されます。TCPソケットのプロトコルには、2台の機械が相互に接続し、情報を送信したい場合絶えず接続を作成しましょう。
なお、UDPという他のプロトコルもあります。このプロトコルはもっと高速で、接続を作成する必要がありません。しかし、パケットの受信が確認できないので信頼性が低いです。
これはリモート関数を呼び出すための手法のことです。
この関数が現在のプログラムがないので、サーバーまたは他のプログラムを実行するべきです。
例えば、内部のチャートプログラムがある場合、ユーザーの登録を実行する為のクライアント確認のザーバーを構築していきましょう。クライアントは確認を依頼する時、サーバーへリクエストを送信します。このリクエストが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は分散システムの重要なテクノロジーです。分散システムは複数のサーバー、救数のサービス、複数のデータベースを含みます。
これらはお互いに連携し、動作します。良い1つの分散システムはCAP Theoremを確保する必要のシステムです。
サービス数が増えると、サービス間の通信が混乱になります。
メッセージキューは別のサーバーで遠隔手続き呼び出しまたはリソースコードへの呼び出しが1つのメッセージと見なすという提案します。その後、メッセージブローカは構成され、各サービス間でメッセージを通信することができます。
メッセージブローカはAMQP プロトコルを実装することが多いです。これは分散システムでメッセージの送受信に関する専門があるプロトコルの一つです。
いかがでしたか。この記事では一般的なシステム統合プロトコルについて紹介していきました。
さまざまな組み合わせがあり、それぞれに特徴がありましたね。
dehaでは、5年ほど前から、ベトナムオフショア開発を行っています。
システム統合の為のメッセージブローカとしてKafkaを導入しています。本日紹介したシステム統合プロトコルについてや、Kafkaに関してなど興味がある方はぜひご気軽にお問い合わせください。
長年運用されてきた基幹システムは、企業活動を支える重要な存在である一方で、技術的負債の蓄積、保守人材不足、クラウド対応の遅れ、ブラックボックス化など、さまざまな問題を引き起こしています。 従来のマイグレーションでは、既存システムの解析からコード変換、データ移行、テスト、カットオーバーまで、多くの工程を人手に依存していました。 こうした背景の中、注目を集めているのが「AIレガシーマイグレーション」です。 この記事ではAIレガシーマイグレーションについて、どんな特徴があるのかやその強みに着目をしていきたいと思います。 AIレガシーマイグレーションが気になる方 製造業の方 DXをすすめたい企業の方 これらに当てはまる方におすすめの記事となっています。これを読めばAIレガシーマイグレーションがどう言ったものかがわかるのはもちろん、DEHAのAIレガシーマイグレーションについてもわかりますよ。 (more…)
近年、企業のIT戦略やシステム開発において「AI Native(AIネイティブ)」という言葉が急速に注目を集めています。 この記事ではそんなAI Nativeについて、その概要やメリットなどを紹介していきます。 AI Nativeが気になる方 システム開発をお考えの方 社内にIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAI Nativeが何かがわかるのはもちろん、導入するべき理由が丸わかりですよ。 (more…)
IFS Cloudは、スウェーデン発のグローバルERPパッケージであり、ERP、EAM(設備資産管理)、SM(サービス管理)を統合的に提供する統合プラットフォームです。 本日はそんなIFS Cloudについて主要モジュールを解説します。 IFS Cloudに興味がある方 ERPをお探しの方 製造業の方 これらに当てはまる方におすすめの記事となっています。これを読めばIFS Cloudについてわかるのはもちろん、IFS Cloudの強みまで丸わかりですよ。 (more…)
企業のDX推進が本格化する中で、ERP(基幹業務システム)の役割は単なる業務管理ツールから、経営基盤そのものへと変化しています。 その中で、世界的に注目されているクラウドERPが IFS とOracle Cloud ERPです。 どちらも世界トップクラスのERPとして高く評価されていますが、実際には設計思想や得意分野が大きく異なります。 IFS Cloudは「現場・設備・サービス」を重視したERPであり、製造業やインフラ産業との相性が非常に高いことで知られています。 一方のOracle Cloud ERPは、「財務・経営統制・グローバル管理」を重視したERPであり、多国籍企業や大企業における経営管理基盤として強みを発揮しています。 そのため、「どちらが優れているか」という単純な比較ではなく、「自社の業務や経営戦略にどちらが適しているか」を見極めることが重要になります。 この記事では、IFS CloudとOracle…
製造業や建設業、航空・防衛、エネルギー、サービス業など、複雑な業務を抱える企業にとって、ERPシステムは単なる基幹システムではなく、経営そのものを支えるインフラとなっています。 しかし近年、多くの企業で従来型ERPの限界が顕在化しています。そのような中で注目されているのが、クラウド型ERPへの移行です。 この記事では、「IFSクラウドへ移行すべき4つの理由」というテーマで、IFS Cloudがなぜ多くの企業に選ばれているのかを詳しく解説します。 IFSクラウドに興味がある方 製造業や建設業の方 従来型ERPをお使いの方 これらに当てはまる方におすすめの記事となっています。これを読めばIFSクラウドへ移行すべき理由がわかるだけでなく、経営改革の視点からIFS Cloudの価値を整理することができますよ。 (more…)
製造業を取り巻く環境は、ここ数年で大きく変化しています。原材料価格の高騰、サプライチェーンの不安定化、人手不足の深刻化、さらにはDXの加速など、企業にはこれまで以上に迅速かつ柔軟な意思決定が求められています。 こうした中で注目されているのが、企業の基幹業務を統合・最適化するERP(基幹業務システム)の再構築です。 その中で、多くの製造業が比較検討しているのが「IFS Cloud」と「SAP」です。いずれもグローバルで高い評価を受けているERPでありながら、その強みや設計思想は大きく異なります。 そのため、「どちらを選ぶべきか分からない」「自社に合うのはどちらなのか判断できない」といった悩みを抱える企業も少なくありません。 この記事では、そんなIFS CloudとSAPを「製造業」という視点から徹底比較し、それぞれの特徴や強み、導入時のポイントを分かりやすく解説します。 製造業の方 IFS CloudとSAPに興味がある方 グローバルERPの導入を検討している方 これらに当てはまる方におすすめの記事となっています。これを読めばIFS CloudとSAPの違いがわかるだけでなく、「どのような企業にどちらが適しているのか」がわかりますよ。 (more…)