Microservice-architecture-hands-on-soa
マイクロサービスアーキテクチャ-ハンズオンSOA
この章では、SOAアーキテクチャを使用したCRUDベースのアプリケーションを開発します。 後の章で、このサービスをマイクロサービスに分割し、SOAとマイクロサービスアーキテクチャの基本的な違いを学習します。
システム構成とセットアップ
このセクションでは、サンプルのCRUDアプリケーションを作成します。このアプリケーションは、サービスを呼び出すたびにJSONオブジェクトを応答として返します。 Jerseyフレームワークを使用して同じものを開発します。 以下は、ローカルシステム環境をセットアップする手順です。
CRUDアプリケーションの開発
- ステップ1 *-NetBeansを開発IDEとして使用します。 NetBeansの公式Webサイトhttps://netbeans.org/downloads/で入手可能な最新バージョンをダウンロードしてインストールしてください。
- ステップ2 *-NetBeans IDEを開きます。 「ファイル→新規プロジェクト」に進みます。 次のスクリーンショットが表示されます。 カテゴリとして「Maven」を選択し、プロジェクトとして「Project from ArchType」を選択して、「次へ」をクリックします。
これにより、必要なすべてのjarファイルがダウンロードされ、初めてのMavenプロジェクトとRESTful Webサービスが作成されます。
- ステップ3 *-前のステップで[次へ]ボタンを押すと、次のスクリーンショットが表示されます。 ここでは、Mavenアーキタイプを指定する必要があります。
検索ボックスで「Jersey-archType-Webapp(2.16)」を検索し、「Show Older」チェックボックスをオンにします。
- ステップ4 *-同じものを選択すると、次の画面にリダイレクトされます。 リストから優先jarを選択し、[次へ]をクリックして続行します。
- ステップ5 *-このステップでは、プロジェクトの名前とグループID、およびパッケージの詳細を指定する必要があります。 これらの情報をすべて入力したら、[完了]をクリックして続行します。
- ステップ6 *-ワークスペースのセットアップが完了しました。 プロジェクトディレクトリは次のようになります。
「依存関係」フォルダーを確認すると、Mavenがこのプロジェクトに必要なすべてのjarファイルを自動的にダウンロードしていることがわかります。
- ステップ7 *-ワークスペースがセットアップされ、コーディングを開始できます。 次のスクリーンショットで説明するように、4つのクラスとパッケージを作成します。 Mavenは独自のWebサービスを構築することを検出するのに十分なほど賢いため、MyResource.javaはMavenによってすでに作成されています。
- ステップ8 *-上記のステップが完了したら、次のようにUserProfile.javaであるPOJOクラスを構築します。
- ステップ9 *-データベースクラスを作成します。 これは学習教材の一部であるため、データベースとしてDBを使用しません。 組み込みのJavaメモリを使用して、一時メモリとして動作します。 次のコードセットでわかるように、データベースとしてMAPを使用します。 実行するすべてのWebサービス操作は、クラスで定義されたこのMAPで作業します。
- ステップ10 *-サービスクラスを作成しましょう。 先に進み、「ProfileService.java」クラスに次のコードセットをコピーして貼り付けます。 これは、外部に公開されるすべてのWebサービスメソッドを宣言するクラスです。 このクラスで一時データベースにアクセスできるように、DatabaseClassの参照を1つ作成する必要があります。
- ステップ11 *-このステップでは、URLにリンクされるResourceクラスを作成し、対応するサービスが呼び出されます。
ステップ12 *-プロジェクトをクリーンビルドして実行します。 すべてがうまくいけば、 *http://localhost:8080/UserProfile/webapi/Profile” URLにアクセスしながら、ブラウザーで次の出力を取得する必要があります。
XML表現を使用してさまざまなエントリが入力されていることがわかります。
適切なメソッドURLを適用することにより、Postmanを使用して別のメソッドをテストできます。
- @ GETメソッド*-次のスクリーンショットは、すべてのユーザーの詳細を返すgetリクエストに必要な結果を取得する方法を示しています。
同様に、Webサービスで利用可能な他のメソッドを確認できます。
前のセクションでは、CRUD機能を公開する1つのサービスを開発しました。 このサービスをアプリケーションに実装しようとするたびに、このアプリケーションのクライアントを作成し、アプリケーションにアタッチする必要があります。 この章では、マイクロサービスの概念を使用してこの機能を構築する方法を学習します。 以下は、上記の手順を使用して構築されたアプリケーションの図表示です。
アクターは、サービスのエントリポイントである必要があります。 この場合、「ProfileResource.java」がアクターの役割を果たします。 このクラスはさまざまなメソッドを呼び出して、追加、更新、削除などのさまざまな操作を実行します。
CRUDアプリケーションの分解
マイクロサービスの主な原則によれば、各モジュールに必要なビジネスタスクは1つだけであるため、1つのアクターが4つのCRUD機能すべてを担当することはできません。 MicroserviceがSOAのアーキテクチャ表現であることが概念的に明確になるように、いくつかの新しい役割を導入した次の例を考えてください。
「メインユーザー」とは、自分のニーズに応えるために「アプリケーションコントローラー」と通信するユーザーです。 「アプリケーションコントローラー」は、エンドユーザーからの要求に応じて異なる「リソースマネージャー」を呼び出すだけです。 「リソースマネージャー」は、実行する必要があるジョブを実行します。 アプリケーションのさまざまなユニットのさまざまな役割を簡単に見てみましょう。
- エンドユーザー/メインユーザー-アプリケーションコントローラーへのいくつかのリソースのリクエスト。
- アプリケーション-リクエストを受信し、それを特定のリソースマネージャーに転送します。
- リソースマネージャー-ユーザーの更新、削除、および追加の実際のジョブを実行します。
1つのクラスの合計責任が他の異なるクラスにどのように分散されるかを確認してください。