プレゼンテーション、ビジネス、データ アクセスなどの層を持つ n 層アプリの通常の特性を考慮します。サービス指向アーキテクチャ ( SOA ) を作成するために、これは通常どのように再構築されますか?
この演習で経験を積んだプログラマーから高レベルの概要を求めます。
ある程度、1 つの垂直スタックではなく、概念的に平らになっていると思います。または、一連の水平モジュールとして、それぞれ独自のミニ n 層スタックをカプセル化します。メッセージングのためのより重いプロトコルが間にあります。
プレゼンテーション、ビジネス、データ アクセスなどの層を持つ n 層アプリの通常の特性を考慮します。サービス指向アーキテクチャ ( SOA ) を作成するために、これは通常どのように再構築されますか?
この演習で経験を積んだプログラマーから高レベルの概要を求めます。
ある程度、1 つの垂直スタックではなく、概念的に平らになっていると思います。または、一連の水平モジュールとして、それぞれ独自のミニ n 層スタックをカプセル化します。メッセージングのためのより重いプロトコルが間にあります。
SOA と n 層は多少異なる概念です。n 層は一般に、スタンドアロン アプリケーションを構築するアプリケーション アーキテクチャに関するものです (これには、他のアプリケーションなどへの定義済みのインターフェイスがある場合があります)。
SOA はこれを一歩退いて、重複を減らすことを目的として、企業全体で必要とされるビジネス サービスの範囲と、それらが提供されるべき場所に注目します。これらは、既存の n 層アプリケーションの要素に基づいて構築したり、再利用したりできます。たとえば、注文の作成を可能にする既存のアプリケーションが多数ある場合があり (例: 営業チームによるイントラネット クライアント ベースのアプリケーション、Web サイトでのオンラインなど)、ある時点でそれらのデータを同期または集約する必要があります。代わりに、さまざまなフロントエンド アプリケーションで再利用できる「注文」サービスを作成できます。
これらの初期サービスは、既存のアプリケーション内の機能に基づいて存在し、ビジネス サービスにラップされて再利用可能なインターフェイスを提供します。
次に、複合サービスを提供するために、さまざまな方法 (オーケストレーション) で多数のサービスを連鎖させることを検討することができます。請求書などを作成するために請求サービスがさらに呼び出されます。
私の理解では、SOA アプローチは、(レイヤー間でデータを送信するのではなく) システムが互いに通信できるようにするために使用するものです。従来のレイヤーの一部のみで構成され、データ用の既存のサービスに依存するアプリを構築できるというバリエーションがあります。
また、SOA の S は Web サービス (技術レベルの何か) ではなく、ビジネス サービス (ビジネス レベルの何か) を指していると思います。
その意味で、私はアプリが SOA に「再構築」されているとは思いません。確かにそうなりますが、より高いレベルで推進されます。つまり、メリットを評価したり、ビジネスケースを実行したりした後にのみ、それを実行したいと思うでしょう。
どのような概観、つまり技術的な概観を求めていますか? または、他の何か?
高レベルの概要: 提供する (または提供したい) データとサービスを理解している人を見つけて、それらをどのように分割するかを理解してください。