プリンキピア

第10章エンタープライズアーキテクチャーとソリューションアーキテクチャーの管理

LINK TO LEARNING学習へのリンク
Read this article comparing orchestration and choreography (https://openstax.org/r/76OrchChoreo) to learn more about the advantages and disadvantages of both of them.
Implementation patterns are typically specific to technology stacks that are selected as part of the specialization of a solution design (i.e., a transition from analysis and design model to implementation architecture). Figure 10.8 illustrates how a pattern catalog is used to select the patterns and eventually create and deploy software engineering products at different project levels.
英語のヒント
実装パターンは通常、仕組みの設計を具体化するときに選ぶ技術スタックに固有のものである。この具体化は、分析・設計モデルから実装アーキテクチャへの移行を意味する。図10.8は、パターンカタログからパターンを選び、最終的に異なるプロジェクトの水準で、ソフトウェア工学の製品を作成・配備する方法を示す。
Figure 10.8

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典

Figure 10.8 A pattern catalog can be used to select the pattern based on the architecture and solution view for the enterprise perspectives. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.8 パターンカタログは、企業の観点に対するアーキテクチャとソリューションのビューに基づき、パターンを選ぶために使える。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)

Pattern Languagesパターン言語

As we learned in Chapter 9 Software Engineering, a pattern language provides a connected view of how to apply one pattern in the presence of another.
英語のヒント
第9章「ソフトウェア工学」で学んだように、パターン言語は、あるパターンが存在するときに別のパターンをどう適用するかを、つながりのある見方として示す。
CONCEPTS IN PRACTICE概念を実際に使う
Are All Pattern Problems the Same?パターンに関する問題は、どれも同じか
Classifying software patterns is a similar problem to classifying patterns for buildings. For example, you would have to consider each room in a building and describe its role (e.g., kitchen, bedroom) along with specific related patterns, such as appliances, furniture, doors, and locks. As you may recall, design patterns are described using pattern templates. Enterprise pattern catalogs are more complex as they need to consider the degree of specialization of patterns; that is, whether they apply to the enterprise, portfolio, or project level. Therefore, there are many characteristics that must be considered when creating an enterprise pattern catalog, including the domain of applicability, scope, and level of abstraction.
英語のヒント
ソフトウェアパターンの分類は、建物のパターンの分類と似た問題である。たとえば建物の各部屋について、その役割(台所、寝室など)と、家電、家具、扉、錠前などの関連する具体的なパターンを考え、記述する必要がある。思い出してほしいが、デザインパターンはパターンテンプレートを用いて記述する。企業のパターンカタログは、パターンがどの程度具体化されているか、つまり企業、ポートフォリオ、プロジェクトのどの水準に適用されるかを考慮しなければならないため、より複雑である。したがって、作成時には、適用のドメイン、範囲、抽象度など、多くの特徴を考慮する必要がある。

Current State of Patterns Managementパターン管理の現状

A series of “patterns” that create an organization chart for developing software is called patterns management. In software engineering, the detailed study of engineering to design, develop, and maintain software, Christopher Alexander, a well-known building architect, is regarded as the father of the Pattern Language movement. Eric Gamma, Martin Fowler, and several other contributors are all part of the large community that has been focusing on collecting and documenting software patterns over the past forty years. As a side note, the original wiki, the technology behind Wikipedia, resulted directly from Alexander’s work, according to its creator, Ward Cunningham. Christopher Alexander’s work has also influenced the development of Agile software development, which is an interactive approach to software development in order to deliver value to customers, and Scrum, which is a management framework that helps the development team organize the work to reach a specific goal. A framework is an implementation-specific skeletal subsystem for design work. A subsystem is a set of collaborating components that perform a given task included in software systems, and it is a separate entity within a software architecture.
英語のヒント
ソフトウェア開発のための組織図を作る、一連の「パターン」を、パターン管理という。ソフトウェアを設計・開発・保守するための工学を詳しく研究するソフトウェア工学の分野では、著名な建築家Christopher Alexanderが、パターンランゲージ運動の父と見なされている。Eric Gamma、Martin Fowlerをはじめとする多くの貢献者は、過去40年間、ソフトウェアパターンの収集と文書化に取り組んできた大きなコミュニティの一員である。ちなみに、Wikipediaの基盤となる技術の原型であるwikiは、開発者Ward Cunninghamによれば、Alexanderの仕事から直接生まれた。Alexanderの仕事は、顧客に価値を提供するための対話的なソフトウェア開発の手法であるアジャイル開発にも影響した。また、チームが特定の目標に向けて作業を整理するのを助ける、管理の枠組みであるScrumにも影響している。フレームワークは、設計作業のための、実装に固有の骨組みとなるサブシステムである。サブシステムとは、ソフトウェアシステムに含まれる所定のタスクを実行する、協力する部品の集合であり、ソフトウェアアーキテクチャ内の独立した存在である。
Enterprise architects use four architecture domains and architecture views to handle hybrid domains (e.g., an information systems architecture is as an architectural view that spans across the application and data architectures and handles both control and data flows). Therefore, the applicability of patterns may be qualified according to the (combination of) domain(s) of architecture they apply to business architecture patterns or information systems patterns.
英語のヒント
エンタープライズアーキテクトは、四つのアーキテクチャドメインとアーキテクチャビューを使い、複合したドメインを扱う。たとえば情報システムアーキテクチャは、アプリケーションとデータのアーキテクチャを横断し、制御の流れとデータの流れの両方を扱うビューである。そのため、パターンが適用されるアーキテクチャのドメイン、またはドメインの組み合わせに応じて、業務アーキテクチャパターンや情報システムパターンというように、適用性を限定できる。
INDUSTRY SPOTLIGHT産業界に注目
Patterns and the Health-Care Industryパターンと医療産業
Architectural styles and related pattern hierarchies are important in every industry today. For example, there are different styles of software architectures in health care that help address various types of business needs. These include mobile health architectures, emotion control management architectures, and remote-surgery architectures. Mobile health architectures enable remote patient monitoring and ensure secure data exchange. Emotion control management systems track emotional patterns in patients. This allows for personalized mental health interventions. Real-time data and robotics allow surgeons to operate on patients who are located far away through remote-surgery architecture. These architectural styles each play a critical role in enhancing health-care delivery and operational efficacy.
英語のヒント
現在、あらゆる産業で、アーキテクチャスタイルとそれに関わるパターン階層が重要である。たとえば医療には、さまざまな業務上のニーズに対応する、異なるスタイルのソフトウェアアーキテクチャがある。モバイルヘルス、感情制御管理、遠隔手術などのアーキテクチャである。モバイルヘルスのアーキテクチャは、患者を遠隔で観察し、安全にデータを交換できるようにする。感情制御管理システムは、患者の感情のパターンを追跡し、個人に合った精神保健上の介入を可能にする。リアルタイムのデータとロボット技術によって、外科医は遠隔手術のアーキテクチャを通じ、離れた場所にいる患者を手術できる。各スタイルは、医療の提供と業務の有効性を高めるうえで、重要な役割を果たす。
A more general view promotes the bookkeeping of architectures at various levels of abstraction as part of an architecture continuum, representing a structure composed of building blocks to reuse architecture assets that conform to a pattern language. The corresponding specializations are then organized in a solution (architecture) continuum. In this case, architectures used at the enterprise level in the industry and specific organizations are derived from foundation and common systems architectures, as shown in Figure 10.9, and then realized practically as solution architectures.
英語のヒント
より一般的な見方では、パターン言語に従うアーキテクチャ資産を再利用する構成要素からなる構造を、アーキテクチャ連続体として表す。この連続体の一部として、さまざまな抽象度のアーキテクチャを記録・管理することが促される。対応する具体化は、ソリューション(アーキテクチャ)連続体に整理される。この場合、産業や特定の組織の企業水準で用いるアーキテクチャは、図10.9のように、基盤アーキテクチャと共通システムアーキテクチャから導き、ソリューションアーキテクチャとして実際に実現する。
Figure 10.9

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典

Figure 10.9 The Open Group Architecture Framework (TOGAF) foundation architecture contacts common systems architectures, which contacts industry and organization architectures. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.9 The Open Group Architecture Framework(TOGAF)の基盤アーキテクチャは共通システムアーキテクチャにつながり、そこから産業や組織のアーキテクチャにつながる。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)