DevOps describes an approach to improving collaboration between the development and operation of services. DevOps is a blend of the terms development and operation.
ArchDev is an example of an Accelerated Architecture-Driven Digital Transformation Process, which helps companies proactively embed stakeholder interest and sustainability into the company’s digital growth. AgileEA Management (AEAM) is a methodology used for software development and project management. AEAM uses divide and conquer methodology by breaking individual projects into smaller pieces to make them easier to manage, which speeds up design processes and produces quality products. ArchDev is enabled by methodology, tooling, and IP. It incorporates AEAM, and is compatible with TOGAF, to assess As-Is and To-Be states and a gap analysis to identify transformation initiatives that feed into the portfolio management process.
The business context driving prioritization is a major factor in selecting appropriate architectures for initiatives. Where DevOps integrates the tasks required to accelerate the development to deployment cycle, ArchDev (SecOps) integrates the disciplines required to identify a target architecture, which informs the solution design, monitors its implementation, and ensures its continued validity in the face of a changing environment. If changes in requirements or business context necessitate architecture revisions at any point in the development cycle or thereafter, ArchDev (SecOps) processes facilitate identifying the best replacement and following the most efficient path to migrating to it. ArchDev (SecOps), therefore, enables businesses to strike a balance between expedience and architecting business, which allows preserving business agility and sustainability.
An enterprise architecture blueprint is a visualization of the architecture at the conceptual, logical, and physical level of an enterprise, showing concepts, their elements, and the components that implement the elements and their interrelationships. Various blueprinting templates are available to help derive architecture diagrams. Figure 10.37 illustrates a template that may be used to create conceptual business architectures. The diagram shows how the template may be applied in an insurance industry context. The diagram represents the enterprise value chain, which includes sales and marketing, product development, underwriting, finance and accounting, servicing, and claim processing. The blueprint includes many components and services, such as BPM processes, business capabilities, and business services.
attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.37 The diagram represents the enterprise value chain, which includes sales and marketing, product development, underwriting, finance and accounting, servicing, and claim processing. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.37 この図は、販売とマーケティング、商品開発、引受審査、財務と会計、契約管理サービス、保険金請求処理を含む、企業の価値連鎖を表している。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
To specify the conceptual business architecture of the underwriting value chain element, Figure 10.38 drills down into the “underwriting” value chain element.
attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.38 Underwriting is an element of the value chain and incorporates new business and fulfillment. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.38 引受審査は価値連鎖の一要素であり、新契約業務とその履行を含む。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
Representing the logical architecture models using a blueprint template is different. Figure 10.39 illustrates a blueprint for the logical architecture model, shows the separation of concerns through layering, and enables high cohesion and low coupling across the application component. This blueprint represents interaction integration, bus process integration, application integration, service integration, data integration, and infrastructure integration. Using this template helps to create a detailed logical architecture model that may then be split into separate layers to convey more readable details.
attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.39 This blueprint represents interaction integration, business process integration, application integration, service integration, data integration, and infrastructure integration. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.39 この設計図は、やり取りの統合、業務プロセス統合、アプリケーション統合、サービス統合、データ統合、基盤の統合を表す。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
Architectural and Implementation Stylesアーキテクチャスタイルと実装スタイル
As you may recall, the specification of architectures starts at a high level within the enterprise to help align business and IT strategy. The main strategies are typically to achieve operational excellence as well as competitiveness. Figure 10.40 represents the relationship between the customer and the enterprise to improve the digital customer experience and digital operational excellence. The digital customer experience architect roles develop architecture strategy for a customer life cycle, collaborate on digital product and service design, and guide customer technology choice. The digital operational excellence roles guide integration with ecosystem partners, support innovation with technology, and codevelop agility strategy.
attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.40 The relationship between the customer and the enterprise can improve the digital customer experience and digital operational excellence. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.40 顧客と企業の関係は、デジタル顧客体験と、デジタルの業務運営の卓越性を向上させることができる。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
This leads to the creation of enterprise reference architectures and specific business and technical architecture blueprints that represent the various views of architecture within the business, application, information, and technology domains. The scope of these views may then be refined to drill down into specific business units (portfolio) and project-level architectures. Within each level of scope, it is possible to apply architectural styles and corresponding implementation styles available within a pattern catalog. As we have learned, patterns can be applied to project-level architectures as part of high-level design and via leveraging of the architecture management umbrella activity.
Architectural and implementation styles may be reflected within blueprints. For example, Figure 10.41 represents how a conceptual technical architecture blueprint leverages the Business Process Management (BPM) architectural style. The diagram answers six questions:
2. What is the classification of the business event type?
2. 業務イベントの種類は、どのように分類されるか。
3. What channels are provided to initiate the business event?
3. 業務イベントを開始するために、どのような経路が用意されているか。
4. What is the method used to digitize recognized business events?
4. 認識した業務イベントをデジタル化する方法は何か。
5. How are business events digitally managed during their life cycle?
5. 業務イベントは、そのライフサイクルの間、どのようにデジタルで管理されるか。
6. What automation, organizations, and processes are needed to support digital business event management?
6. デジタルの業務イベント管理を支えるには、どのような自動化、組織、プロセスが必要か。
attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.41 A conceptual technical architecture blueprint leverages the Business Process Management (BPM) architectural style. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.41 概念的な技術アーキテクチャの設計図では、業務プロセス管理(BPM)のアーキテクチャスタイルを活用する。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
Figure 10.42 illustrates a technical implementation architecture blueprint that leverages specific implementation styles, and Figure 10.43 illustrates the same along with callouts identifying specific products and related vendors selected to implement and deploy the solution.
attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.42 A technical implementation architecture blueprint leverages specific implementation styles. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.42 技術実装アーキテクチャの設計図は、特定の実装スタイルを活用する。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.43 Technical implementation architecture blueprint shown earlier with callouts specifying products and related vendors selected to implement and deploy the solution. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.43 先に示した技術実装アーキテクチャの設計図に、実装と配備に選んだ製品と関連する供給業者を指定する引き出し注記を加えたもの。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
Human-Centered Computing Architectures and Related Patterns
人間中心コンピューティングのアーキテクチャと関連パターン
Human-centered computing (HCC) is a newer term that subsumes human-computer interaction (HCI) and includes social computing and HCI. HCC studies the design, development, and deployment of mixed-initiative human-computer systems. HCC/HCI is a subfield within computer science that is concerned with the study of interaction between people and computers.
The main objective of HCC/HCI is to make computer systems more user-friendly and more usable. HCI studies the design, evaluation, and implementation of user interfaces for computer systems that are receptive to the user’s needs and habits. It is a multidisciplinary field, which incorporates computer science, behavioral sciences, and design. The field of computing basically seeks to provide a framework for the integration of human sciences and computer science in a manner that promotes the progress of human activities. With this respect, human-centered computing models design computing systems that support and enrich human existence.
Users interact with computer systems through a user interface, which consists of hardware and software that provides means of input, allowing users to manipulate the system, and output, allowing the system to provide information to the user. The design, implementation, and evaluation of interfaces is, therefore, a central focus of HCC/HCI. Corresponding process patterns are applied when designing HCC/HCI architectures. Pattern-based frameworks may be used to study, analyze, and translate the interactions of people with their surroundings into collaborative solution architectures.
Big clouds (e.g., Amazon AWS, Google Cloud Platform, IBM Cloud, Microsoft Azure) are available today to help put together complex solutions in an enterprise context by providing Platform as a Service (PaaS) capabilities that can be assembled very quickly. For example, the cloud-based implementation architecture shown in Figure 10.44 uses three different clouds (social media cloud for data collection, private cloud for predictive analysis, and public cloud for data mining). These clouds collaborate in a mashup configuration and provide a cost-effective way to devise and implement solution architectures that leverage data collection, secure data mining, and intelligent analytics patterns. Scalable data processing framework implementations (e.g., Hadoop, Spark) are also readily available on the big clouds to provide efficient means of handling large amounts of data.
英語のヒント
現在、Amazon AWS、Google Cloud Platform、IBM Cloud、Microsoft Azureなどの大規模クラウドは、非常にすばやく組み合わせられるPlatform as a Service(PaaS)の機能を提供し、企業の中で複雑な仕組みを組み立てる助けとなっている。たとえば図10.44のクラウド型実装アーキテクチャは、三つの異なるクラウドを使う。データ収集のためのソーシャルメディアクラウド、予測分析のためのプライベートクラウド、データマイニングのためのパブリッククラウドである。これらがマッシュアップ構成で協力し、データ収集、安全なデータマイニング、知的な分析のパターンを活用するソリューションアーキテクチャを、費用対効果の高い方法で考案・実装できるようにする。HadoopやSparkなど、規模を拡大できるデータ処理の枠組みの実装も、大規模クラウド上ですぐに利用でき、大量のデータを効率的に扱う手段を提供する。
attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.44 Three different clouds that include a social media cloud for data collection, private cloud for predictive analysis, and public cloud for data mining are collaborating in a mashup configuration. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.44 データ収集用のソーシャルメディアクラウド、予測分析用のプライベートクラウド、データマイニング用のパブリッククラウドという三つの異なるクラウドが、マッシュアップ構成で協力している。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
Microservices Architectures and Related Patterns
マイクロサービスアーキテクチャと関連パターン
A microservices architecture, called a microservice, is an approach to building a software solution as a set of small services (i.e., independent parts) that may be deployed locally or on the cloud. The cloud holds data, software, and services that run on the Internet instead of on a local computer. While microservices architectures are mainly oriented toward providing backend services, the approach is also being used to enable solutions’ front ends. Each service runs in its own process and communicates with other processes using protocols such as HTTP/HTTPS, WebSockets, or AMPQ. Each microservice implements a specific business capability within a certain context boundary, and each must be developed autonomously and be deployable independently. Finally, each microservice should own its related domain data model and domain logic and could be based on different data storage technologies such as SQL or NoSQL, and different programming languages. Figure 10.45 illustrates many patterns associated with microservices architectures such as motivating patterns and solution patterns. Multiple service hosts, database per service, access token, and health check API are examples of microservices. At a high level, microservices provide long-term agility and enable better maintainability in complex, large, and highly scalable systems by making it possible to create applications based on many independently deployable services that each have granular and autonomous life cycles.
data source: C. Richardson, "Microservice Architecture pattern," https://microservices.io/patterns/microservices.html; attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 10.45 Multiple service host, database per service, access token, and health check API are examples of microservices. (data source: C. Richardson, "Microservice Architecture pattern," https://microservices.io/patterns/microservices.html; attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図10.45 複数のサービスホスト、サービスごとのデータベース、アクセストークン、ヘルスチェックAPIは、マイクロサービスの例である。(データ出典:C. Richardson「Microservice Architecture pattern」、https://microservices.io/patterns/microservices.html。帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
As an additional benefit, microservices can scale out independently. Instead of having single monolithic applications that must be scaled out as units, specific microservices may be scaled instead. This enables scaling just the functional area that needs more processing power or network bandwidth to support demand rather than scaling out other areas of the application that do not need to be scaled, which results in cost savings because less hardware is required.