SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)(AD)

実践WPF業務アプリケーションのアーキテクチャ【概要編】 ~ マイクロソフト公式サンプルデータベースAdventureWorksを題材に

  • X ポスト
  • このエントリーをはてなブックマークに追加

配置ビュー

システム全体の配置モデル

 本システムの最上位の3レイヤー、WPFアプリケーション・WCFサービス・データベースサービスを配置モデルで表現したものが以下になります。

システム全体配置モデル
システム全体配置モデル

 システムの規模によっては、アプリケーションサーバーとデータベースサーバーは物理的に同一の筐体で提供することも可能です。ここでは物理サーバーについては言及しませんが、論理的に二つの役割をもったノードが必要になるものとしています。

 また実際の構成では、データベースサーバーはフェイルオーバークラスター構成を、アプリケーションサーバーは負荷分散構成をとることになるでしょう。しかし、今回はソフトウェアアーキテクチャを対象としているため、詳細は割愛します。

詳細な配置モデル

 各ノードに実際に導入されるOS・ミドルウェア・ランタイムそしてソフトウェアコンポーネントを図示したのが、次のモデルになります。

詳細配置モデル
詳細配置モデル

 さて、よく見ると次の二つのコンポーネントだけ、利用者端末とアプリケーションサーバー上どちらにも配置されていることが見て取れると思います。

  • SystemManager
  • SystemManager.Services

 SystemManager.ServicesはWCFで提供されるRPCのインターフェースが、SystemManagerにはそのサービスのシグニチャに登場するクラスが定義されています。この二つで、クライアント側とサーバー側の通信のルールが決定されていることになります。

WPFアプリケーションの配布について

 WPFアプリケーションの配布はClick Onceを利用して行うこととします。

 Windowsアプリケーションはユーザビリティが高く、その反面、配布や更新が困難だとよく言われます。しかしClick Onceを利用することでその課題はクリアすることができます。その際、アプリケーションを署名する証明書をクライアントへ配布する必要がありますが、Active Directoryで管理された企業内であれば、グループポリシーを利用して一括配布することが可能です。

中締め

 ここまで、Microsoft社の公開しているSQL Serverのサンプルデータベース「AdventureWorks」を参考に、WPFで業務アプリケーションを構築するためのアーキテクチャについて解説してきました。次回はコードを交えながら、ユースケースビューで取り上げた代表的なユースケースと、アーキテクチャ上重要な要素について、具体的な実装方法を紹介します。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)連載記事一覧

もっと読む

この記事の著者

中村 充志(リコージャパン株式会社)(ナカムラ アツシ)

 Microsoft MVP for Visual Studio and Development Technologies リコージャパン株式会社 金融事業部 金融ソリューション開発部所属。 エンタープライズ領域での業務システム開発におけるアプリケーション アーキテクト・プログラマおよび中間管理職。 業務ではWPFおよびASP.NETを用いた業務システム開発が中心。 SI案件において、テスト・保守容易性を担保した、アーキテクチャ構築を得意としている。 GitHub:https://github.com/nuitsjp Twitter:@nuits_jp 著書 『Essential Xamarin ネイティブからクロスプラットフォームまで モバイル.NETの世界』(共著) 『Extensive Xamarin ─ひろがるXamarinの世界─』(共著)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10727 2018/04/10 16:28

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング