プリンキピア

第2章計算論的思考と設計の再利用性

Accelerating the Creation of Mainstream Business Solutions一般的なビジネスソリューションの作成を加速する

To illustrate the power of architectural design and adaptive design reuse, various designs used in mainstream business solutions are surveyed, followed by explanations as to how corresponding turnkey solutions can be derived from these models. Several subsequent chapters of the book elaborate on building-related solutions.
英語のヒント
アーキテクチャー設計と適応的な設計の再利用の力を示すため、一般的なビジネスソリューションで使われるさまざまな設計を概観する。その後、それらのモデルから、対応する導入後すぐ使える解決策をどう導けるかを説明する。本書の後のいくつかの章では、関連する解決策の構築を詳しく扱う。
CONCEPTS IN PRACTICE概念を実践する
Object Management Architecture (OMA)Object Management Architecture(OMA)
Organizations like the Object Management Group (OMG) create foundational and common system architectures that may be used across industries. An example is the Object Management Architecture (OMA), which is a foundation for developing architectures as building blocks. It then elaborates in providing Object Services, Horizontal Facilities, and Vertical Facilities as subcomponents to help classify common system architectures that may be used to assemble a complete OMA-centric architecture. It is then the responsibility of the various industries to establish standard architectures that may be leveraged by organizations that operate in these industries. Finally, organizations benefit from being able to leverage foundational, common systems and industry architectures to develop their own proprietary architectures. Based on the models of the various architectures that organizations may use and assuming there exists solutions for them, organizations can develop their own solutions faster by reusing and customizing existing solution components instead of reinventing the wheel. This is actually how the TOGAF solution continuum applies adaptive design reuse.
英語のヒント
Object Management Group(OMG)のような組織は、産業を横断して使える基礎的・共通的なシステムアーキテクチャーを作る。Object Management Architecture(OMA)はその例であり、構成部品としてのアーキテクチャーを開発する土台となる。OMAはさらに、オブジェクトサービス、水平ファシリティー、垂直ファシリティーを下位の構成要素として提供する。それらは、完成したOMA中心のアーキテクチャーを組み立てる際に使える、共通のシステムアーキテクチャーを分類するのに役立つ。次に、各産業が、その産業で活動する組織の使える標準アーキテクチャーを確立する責任を担う。最終的に組織は、基礎的なアーキテクチャー、共通システムのアーキテクチャー、業界のアーキテクチャーを活用し、自社独自のアーキテクチャーを開発できる。利用可能な各種のアーキテクチャーモデルに対応する解決策が存在すると仮定すれば、既存の解決策の部品を再利用・調整することで、車輪を再発明せず、自社の解決策をより速く開発できる。TOGAFのソリューションコンティニュアムが適応的な設計の再利用を適用するとは、実際にはこのことである。
Responsive Web 2.0 Business SolutionsレスポンシブなWeb 2.0ビジネスソリューション
World Wide Web Consortium (W3C) is an international community that develops guidelines to ensure the long-term growth and accessibility of the World Wide Web. Web 2.0 is the second generation of the World Wide Web when we shift from static web pages to dynamic content. Web 3.0 is the third generation of the World Wide Web and represents a vision for the future of the Internet characterized by advanced technologies. Most modern websites rely on the Web 2.0 architectural model set forth by W3C. A sample logical application architecture model is illustrated in Figure 2.26.
英語のヒント
World Wide Web Consortium(W3C)は、ワールドワイドウェブの長期的な成長と利用しやすさを確保するための指針を開発する、国際的なコミュニティーである。Web 2.0は、静的なウェブページから動的なコンテンツへ移る、ワールドワイドウェブの第2世代を指す。Web 3.0は第3世代であり、先進技術を特徴とするインターネットの未来像を表す。現代のウェブサイトの多くは、W3Cが提示したWeb 2.0のアーキテクチャーモデルに依拠している。図2.26に、論理的なアプリケーションアーキテクチャーモデルの例を示す。
Figure 2.26

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

Figure 2.26 The logical application architecture of Microsoft Azure-hosted web applications allows for responsive web and mobile solutions for users. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図2.26 Microsoft Azure上で動くウェブアプリケーションの論理的なアーキテクチャーは、利用者にレスポンシブなウェブ・モバイルの解決策を提供する。(出典:著作権Rice University、OpenStax。CC BY 4.0ライセンス)
In this case, the model leverages the various components available on the Microsoft Azure Cloud. Microsoft Azure is a comprehensive cloud computing platform provided by Microsoft. Azure is designed to help organizations build, deploy, and manage applications and services through a global network of data centers. Azure provides streamlined development capabilities under its DevOps offering to make it very easy to develop and quickly deploy websites on the Azure platform using mainstream web application frameworks (e.g., ASP.Net, PhP, Java). DevOps is an Agile Software Engineering tools-driven approach that focuses on developing software and deploying it into operation.
英語のヒント
この場合、モデルはMicrosoft Azure Cloud上で利用できるさまざまな部品を活用する。Microsoft Azureは、Microsoftが提供する包括的なクラウドコンピューティングプラットフォームである。世界規模のデータセンターのネットワークを通じ、組織によるアプリケーションやサービスの構築、配備、管理を支援するよう設計されている。AzureはDevOpsのサービスのもとで、開発を円滑にする機能を提供する。ASP.Net、PhP、Javaなどの一般的なウェブアプリケーションフレームワークを使い、Azure上でウェブサイトを非常に簡単に開発し、素早く配備できるようにする。DevOpsは、アジャイルソフトウェア工学のツールを中心とする方法で、ソフトウェアの開発と運用への配備に焦点を当てる。
Many of the support components required to support website implementations are readily available on Microsoft Azure and other systems that provide reusable components for responsible web design. It is easy to evolve the model shown below into a running website. A web application framework has built-in support for architectural patterns that make it easy to extend the framework and use plug-ins to implement commercial-grade websites in a reasonable amount of time. They also support the use of web frameworks that make it possible to build a responsive web application that makes the functionality available on the desktop version of the application seamlessly available on a mobile device. In addition to these capabilities, the adaptive design reuse approach may be used to create the custom part of the web application. More information related to the development of web solutions is provided in Chapter 9 Software Engineering, Chapter 10 Enterprise and Solution Architectures Management, and Chapter 11 Web Applications Development.
英語のヒント
ウェブサイトの実装を支える多くの部品は、Microsoft Azureや、責任あるウェブ設計のために再利用可能な部品を提供するほかのシステムで、すぐに利用できる。下に示すモデルを、実際に動くウェブサイトへ発展させることは容易である。ウェブアプリケーションフレームワークには、アーキテクチャーパターンへの対応が組み込まれている。そのため、フレームワークの拡張やプラグインの利用によって、妥当な時間で商用水準のサイトを実装できる。また、デスクトップ版の機能をモバイル端末でも円滑に使えるようにする、レスポンシブなウェブアプリケーションを構築するためのウェブフレームワークにも対応している。これらの機能に加えて、適応的な設計の再利用を使い、ウェブアプリケーションの固有部分を作ることもできる。ウェブソリューションの開発は、第9章「ソフトウェア工学」、第10章「エンタープライズアーキテクチャーとソリューションアーキテクチャーの管理」、第11章「ウェブアプリケーションの開発」で詳しく扱う。
THINK IT THROUGH考えてみよう
Architectural Similaritiesアーキテクチャーの類似性
What is one of the mechanisms that makes it possible to compare architectural similarities between two solutions at different levels?
異なる水準にある二つの解決策のアーキテクチャーの類似点を、比較できるようにする仕組みの一つは何か。
Native Mobile Business Solutionsネイティブモバイルのビジネスソリューション
A web application (web app) is a software application that is accessed and interacted with through a web browser over the Internet. Many web-based solutions leverage the inherent capabilities of mobile devices, offering web apps tailored for various types of phones in addition to responsive websites. Numerous frameworks exist to facilitate the development of native web apps, streamlining the process of creating applications that can run seamlessly on different mobile platforms. These frameworks often provide a unified and efficient approach to building cross-platform mobile applications, ensuring a consistent user experience across various devices.
英語のヒント
ウェブアプリケーション、すなわちウェブアプリは、インターネットを介し、ウェブブラウザーからアクセスして操作するソフトウェアである。多くのウェブベースの解決策は、モバイル端末が元から持つ機能を利用し、レスポンシブなウェブサイトに加えて、さまざまな種類の電話機に合わせたウェブアプリを提供する。ネイティブウェブアプリの開発を助けるフレームワークが数多くあり、異なるモバイルプラットフォームで円滑に動くアプリの作成を進めやすくする。これらは多くの場合、複数のプラットフォームに対応するモバイルアプリを統一的・効率的に構築する方法を提供し、さまざまな端末で一貫した利用体験を確保する。
In certain frameworks and development environments, React Native UI component libraries can be leveraged to, port web apps to mobile devices. Examples include React Native support for Android apps using the Android Studio (Android Studio provides a comprehensive environment for developing, testing, and debugging Android apps) or iPhone web app using XCode IDEs (Xcode is an integrated development environment [IDE] developed by Apple for macOS that offers a suite of tools for building software for Apple platforms, including macOS, iOS, watchOS, and tvOS). Figure 2.27 illustrates the logical application architecture of mobile web apps that use React Native. In addition to these capabilities, the adaptive design reuse approach may be used to create the custom part of the native web app. More information related to the development of native web app solutions is provided in Chapter 9 Software Engineering, Chapter 10 Enterprise and Solution Architectures Management, and Chapter 11 Web Applications Development.
英語のヒント
一部のフレームワークや開発環境では、React NativeのUI部品ライブラリーを活用し、ウェブアプリをモバイル端末へ移植できる。たとえば、Android Studioを使ったAndroidアプリへのReact Nativeの対応や、XCode IDEを使うiPhoneのウェブアプリがある。Android Studioは、Androidアプリの開発、テスト、デバッグのための包括的な環境を提供する。Xcodeは、AppleがmacOS向けに開発した統合開発環境(IDE)であり、macOS、iOS、watchOS、tvOSなど、Appleの各プラットフォーム向けのソフトウェアを作るための一連の道具を備える。図2.27は、React Nativeを使うモバイルウェブアプリの論理的なアプリケーションアーキテクチャーを示す。これらの機能に加え、適応的な設計の再利用を使って、ネイティブウェブアプリの固有部分を作ることもできる。ネイティブウェブアプリの開発については、第9章「ソフトウェア工学」、第10章「エンタープライズアーキテクチャーとソリューションアーキテクチャーの管理」、第11章「ウェブアプリケーションの開発」で詳しく扱う。
Figure 2.27

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

Figure 2.27 The logical application architecture of React Native mobile web apps shows the back-end processes that allow both Android and IOS customers to use the same application. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図2.27 React Nativeによるモバイルウェブアプリの論理的なアーキテクチャーは、AndroidとIOSの利用者が同じアプリを使えるようにするバックエンドの処理を示す。(出典:著作権Rice University、OpenStax。CC BY 4.0ライセンス)
Native Mobile Business Examples
ネイティブモバイルのビジネスの例
Native mobile apps are designed specifically for mobile operating systems, providing optimal performance and a seamless user experience.
ネイティブモバイルアプリは、モバイル用オペレーティングシステムに特化して設計され、最適な性能と円滑な利用体験を提供する。
• WhatsApp: WhatsApp is a native mobile app designed specifically for iOS and Android platforms. It directly accesses the hardware of the device, such as the GPS, camera, and microphone, which allows for features like real-time location sharing, voice and video calls, and media sharing.
• WhatsApp:WhatsAppは、iOSとAndroidに特化して設計されたネイティブモバイルアプリである。GPS、カメラ、マイクなど、端末のハードウェアへ直接アクセスすることで、リアルタイムの位置共有、音声・ビデオ通話、メディア共有などを可能にする。
• Instagram: Instagram is a photo- and video-sharing app. Native development helps Instagram manage high-quality media content efficiently, apply real-time filters, and smoothly handle in-app animations.
• Instagram:Instagramは写真・動画を共有するアプリである。ネイティブ開発によって、高品質のメディアを効率よく管理し、リアルタイムのフィルターを適用し、アプリ内のアニメーションを滑らかに扱える。
• Uber Eats: Uber Eats is a food-delivery service that operates as a native app on mobile devices. Being native allows the app to use device-specific features, such as GPS for tracking the delivery person’s location in real time.
英語のヒント
• Uber Eats:Uber Eatsは、モバイル端末のネイティブアプリとして動く、料理の配達サービスである。ネイティブであることで、配達員の現在位置をリアルタイムに追うGPSなど、端末固有の機能を使える。
• Spotify: Spotify uses its native app to deliver personalized music and podcast streaming services. The app’s native nature allows it to integrate closely with the device’s hardware, offering features like offline downloading, low-latency streaming, and background play.
英語のヒント
• Spotify:Spotifyは、ネイティブアプリで、個人に合わせた音楽やポッドキャストのストリーミングサービスを提供する。ネイティブという性質を活かして端末のハードウェアと密接に連携し、オフライン用のダウンロード、遅延の小さいストリーミング、バックグラウンド再生などを提供する。