投稿日
アプリケーションアーキテクチャの学習コンテンツ
概要
アプリケーションアーキテクチャに関する基礎的な知識を解説した学習コンテンツです。 エンタープライズシステムの構築に特に必要な領域を扱っています。
これらは最先端の内容ではありません。しかし、最先端の技術をきちんと理解するには、必須の知識です。
「基本の基から学びたい」という方はもちろん、「基礎を復習したい」という方にも有用です。
コンテンツ
Webアプリケーションのセッション管理
内容
Webアプリケーションにおいて、セッション管理は基本的な構成要素です。
安定した稼働が求められるエンタープライズシステムの世界では、セッション管理ひとつとっても考慮すべき点はいくつも存在します。 セッション管理に対する理解が曖昧であったり、考慮が不十分なままだと、想定通りの性能を実現できなかったり、セキュリティ・インシデントの発生によってステークホルダーからの信頼を失う、といった問題に繋がりかねません。
このコンテンツでは、まず、セッション管理の基本をおさらいします。その上で、セッション管理のアーキテクチャ・パターンについて解説します。 また、脆弱なセッション管理を狙ったセキュリティ攻撃についても取り上げ、「安全なセッション管理」を実現するための手法を紹介します。
学習時間の目安
90分程度
入手方法
以下のリンクからダウンロードしてください。
Webアプリケーションのセッション管理
データベースの排他制御
内容
複数のユーザがWebアプリケーションを同時に操作したり、Webアプリケーションとバッチアプリケーションが同時に稼働するシステムは多く存在します。この時データの整合性を保つために鍵となるのが、排他制御です。
排他制御の考慮が不十分だと、不整合なデータが発生したりするだけでなく、性能にも悪影響を及ぼすことがあります。
このコンテンツでは、まず、トランザクションレベルの粒度の小さいロックについて解説します。次に、楽観ロックや悲観ロックといった、粒度の大きいロックについて解説します。最後に、エンタープライズシステムで見られる、これらを組み合わせた発展的な排他制御について解説します。
学習時間の目安
90分程度
入手方法
以下のリンクからダウンロードしてください。
データベースの排他制御
システム間連携
内容
エンタープライズシステムでは、あるシステムが単独で動作するだけではなく、他のシステムと連携して動作することも珍しくありません。この時、頑健なシステムを構築するには、適切な技術を用いてアーキテクチャを設計することが重要となります。
システム間連携の技術にはファイル連携/アプリケーション連携/DB連携などが存在します。しかし、例えば次のような質問に明快に回答できる技術を使わなければ、エンタープライズシステムを安定稼働させることはできません。
- その方法を使うのがなぜ最適なのか
- エラーが発生してもリカバリは問題なくできるか
このコンテンツでは、システム間連携を支える様々な技術やその特徴について解説します。 その上で、エンタープライズシステムで問題となりやすいポイントやその対策についても解説します。
学習時間の目安
90分程度
入手方法
以下のリンクからダウンロードしてください。
システム間連携
非機能要件定義
内容
システム構築での要件定義といえば、●●登録機能や●●一覧機能といった業務機能に求められるものはなにかを詰めていくプロセス、いわゆる「業務要件定義」がまず思い浮かぶのではないでしょうか。
しかし、例えばウェブアプリケーションのレスポンスは何秒以内にするのか、システムを使用できるのは何時から何時までか、万が一止まってしまった時にどの程度の時間で回復させるのか、といった要件、すなわち「非機能要件」も存在します。
そのシステムはビジネスの成功にどれだけ貢献できるのか、という視点で見た時、非機能要件は非常に重要な領域です。
しかし非機能の領域は非常に多岐にわたるため、検討漏れなどによるトラブルが起きやすく、また、独習では学びづらいといった側面もあります。
このコンテンツでは、まず非機能要件について網羅的に検討する方法を解説します。
その上で、現場で特に重要となることの多い「可用性」と「性能」の領域について、非機能要件定義からそれをもとにした設計、実装に至るまでの注意点を解説します。あわせて、インフラ面も含めた基本的な用語についても説明します。
学習時間の目安
90分程度
入手方法
以下のリンクからダウンロードしてください。
非機能要件定義
Webアプリケーション特有の仕組み
内容
ユーザとして使うにしても、サービス提供する側として作るにしても、Webアプリケーションはとても身近な存在ではないでしょうか。 そんな身近なWebアプリケーションは、実に様々な仕組みによって成り立っています。
Webアプリケーションを構築する時、それらの仕組みを正しく理解していなければ、求められる機能をどうやって実現すればよいかわからない、といった事態になってしまうでしょう。 それだけでなく、万一障害が発生した時、その原因を探ることも難しくなってしまいます。
このコンテンツでは、Webアプリケーションを構成する重要な仕組みの中から、特に分かりにくいものを取り上げて説明します。多くのシステムで採用される「定石」を解説しますので、汎用的に役立つ知識を獲得できます。
学習時間の目安
90分程度
入手方法
以下のリンクからダウンロードしてください。
Webアプリケーション特有の仕組み
文字の扱い
内容
エンタープライズシステムに限りませんが、ITシステムではシステム内部に不正な文字が混入しないように入力データをチェックしたり、連携している他システムに不正な文字データを送らないように出力データを変換したりと、適切に文字を取り扱う必要があります。
適切な文字の扱い方を知らないと、自システムで文字化けをはじめとする不具合が生じるだけでなく、連携先システムに不正な文字データを送ってしまうことで、相手先システムの障害の原因を作ってしまうかもしれません。
コンピュータ内部では、あらゆる文字は「数値」で表現されています。これらの数値や対応付けを文字コードと呼びます。
適切に文字を扱うためには、文字コードの知識は欠かせません。
このコンテンツでは、文字コードの基本的な知識をおさらいし、いくつかの代表的な文字コードについて説明します。その後、システム開発を行う際に、どこでどのように文字を検討していくのか、そのステップを解説します。
学習時間の目安
90分程度
入手方法
以下のリンクからダウンロードしてください。
文字の扱い
ITアーキテクト概論
内容
このコンテンツでは、なにかの技術ではなく、ある役割に注目します。それは「ITアーキテクト」という役割です。
ITアーキテクトという言葉を聞いたことがある方は多いと思います。でも、どんなことをやっているのかイメージできるでしょうか。「色々やっている(できてしまう!)、なんだかすごい人」というイメージで、具体的なイメージが浮かびにくい方が多いのではないでしょうか。
ITアーキテクトは、テクニカルな面で力を発揮しつつ、実はテクニカル面に留まらずシステム開発全体に影響を与える、非常に重要でやりがいのある役割です。
このコンテンツでは、架空のシステム開発プロジェクトを舞台に、若手エンジニアの目を通してITアーキテクトがどのようなことに気を配り、何をやっているのか紹介します。あわせて、そのやりがいや面白味もお伝えします。
なお、このコンテンツで対象とするITアーキテクトは、アプリケーション領域のアーキテクトです。インフラストラクチャを主に設計するアーキテクトについては扱っていません。
学習時間の目安
90分程度
入手方法
以下のリンクからダウンロードしてください。
ITアーキテクト概論
本ページで紹介しているコンテンツはクリエイティブコモンズ(Creative Commons)4.0の「表示—継承」に準拠しています。