ソリューションスタック

コンピューティングにおいて、ソリューションスタック(ソフトウェアスタックテックスタックとも呼ばれる)は、アプリケーションをサポートするために追加のソフトウェアを必要としない完全なプラットフォームを作成するために必要なソフトウェアサブシステムまたはコンポーネントのセットです。[ 1 ]アプリケーションは、結果として得られるプラットフォームの「上で実行される」または「その上で実行される」と言われます。

例えば、Webアプリケーションを開発する場合、アーキテクトはスタックを、対象となるオペレーティングシステムWebサーバーデータベースプログラミング言語として定義します。ソフトウェアスタックの別のバージョンは、オペレーティングシステム、ミドルウェア、データベース、アプリケーションです。[ 2 ]通常、ソフトウェアスタックのコンポーネントは、異なる開発者によって互いに独立して開発されます。

全体システムを構成するいくつかのコンポーネント/サブシステムは、多くの場合、まとめて選択されるため、その特定のセットは、部分の名前ではなく、全体を表す名前で参照されます。通常、この名前は個々のコンポーネントを表す頭字語です。 [ 3 ]

「ソリューションスタック」という用語には、歴史的に、最終製品の一部としてハードウェアコンポーネントが含まれることがあり、ハードウェアとソフトウェアの両方がサポート層に混在していました。[ 4 ] [ 5 ]

フルスタック開発者は、アプリケーションのすべてのレイヤー(フロントエンドとバックエンド)で作業できることが期待されます。フルスタック開発者とは、ウェブサイト、ウェブアプリケーション、またはデスクトップアプリケーションのフロントエンドとバックエンドの両方の開発に携わる開発者またはエンジニアと定義できます。[ 6 ]つまり、データベースやユーザー向けウェブサイトを含むプラットフォーム構築を主導したり、プロジェクトの計画段階でクライアントと連携したりできるということです。

JavaScriptスタック

JavaScriptスタックとは、ソフトウェア開発プロセス全体を通してJavaScriptを主要なプログラミング言語として使用する技術の集合体であり、通常はフロントエンドツールとバックエンドツールを組み合わせて本格的なウェブアプリケーションを構築します。Node.jsの登場により、JavaScriptはサーバーサイドで実行できるようになり、開発者はクライアント開発とサーバー開発の両方で単一の言語を使用できるようになりました。この統合により、開発ワークフローが簡素化され、コードの再利用性が向上し、アプリケーション全体で一貫したロジックとツールが実現されるため、生産性が向上します。JavaScriptスタックは、そのスピード、スケーラビリティ、そしてnpmなどのプラットフォームを通じて利用できるライブラリやフレームワークの広大なエコシステムへのアクセス性から、しばしば支持されています。これらのスタックの人気の高まりは、現代のウェブエンジニアリングにおいてフルスタックJavaScript開発への広範な移行を反映しています。[ 7 ] [ 8 ] [ 9 ] [ 10 ]

OSレベルのスタック

MLVN [ 11 ]
MongoDB(データベース)
Linux(オペレーティング システム)
Varnish(ソフトウェア)(フロントエンドキャッシュ)
Node.js (JavaScript ランタイム)
ウィサヴ/ウィパヴ
Windows Server(オペレーティング システム)
インターネット インフォメーション サービス(Web サーバー)
Microsoft SQL Server / PostgreSQL (データベース)
ASP.NET (バックエンド Web フレームワーク)
Vue.js(フロントエンドWebフレームワーク)

OSに依存しないウェブスタック

グランドスタック[ 12 ]
GraphQL(データクエリおよび操作言語)
React(Webアプリケーションのプレゼンテーション)
Apollo(データグラフプラットフォーム)
Neo4j (データベース管理システム)
ジャムスタック[ 13 ]
JavaScript(プログラミング言語)
API(アプリケーションプログラミングインターフェース)
マークアップ(コンテンツ)
平均[ 14 ]
MongoDB(データベース)
Express.js (アプリケーションコントローラー層)
AngularJS / Angular(Webアプリケーションのプレゼンテーション)
Node.js (JavaScript ランタイム)
メルン[ 15 ]
MongoDB(データベース)
Express.js (アプリケーションコントローラー層)
React.js(Webアプリケーションのプレゼンテーション)
Node.js (JavaScript ランタイム)
メヴン[ 16 ]
MongoDB(データベース)
Express.js (アプリケーションコントローラー層)
Vue.js (Web アプリケーションのプレゼンテーション)
Node.js (JavaScript ランタイム)
ペルン[ 17 ]
PostgreSQL(データベース)
Express.js (アプリケーションコントローラー層)
React(JavaScript ライブラリ)(Web アプリケーションのプレゼンテーション)
Node.js (JavaScript ランタイム)
T-REx [ 18 ]
TerminusDB(スケーラブルなグラフデータベース
ReactJavaScriptウェブフレームワーク)
Express .js ( Node.js用フレームワーク)

特定のフレームワークスタック

Java-Springスタック

Java- Springスタックは、Javaプログラミング言語とSpringエコシステムを中心に構築された、堅牢でエンタープライズグレードのテクノロジースタックです。その中核を成すのはSpring Frameworkであり、これは最新のJavaアプリケーション向けの包括的なプログラミングおよび構成モデルを提供します。このスタックには、多くの場合、Spring Bootが含まれます。Spring Bootは、設定よりも規約を重視したSpringアプリケーションのセットアップを簡素化するプロジェクトで、組み込みサーバーと本番環境対応のデフォルト設定を備えています。Spring MVC、Spring Data、Spring Securityなどの追加コンポーネントは、Webアプリケーションの構築、データベースへのアクセス、認証と認可の実装に広く使用されています。Java-Springスタックは、MySQLやPostgreSQLなどのリレーショナルデータベースと組み合わせられることが多く、通常はApache Tomcatなどのサーブレットコンテナ、またはマイクロサービスアーキテクチャ向けのSpring Cloudなどのプラットフォームを使用してデプロイされます。スケーラビリティ、モジュール性、長期的な安定性で知られるJava-Springスタックは、特に金融、通信、大規模SaaSプラットフォームなどのエンタープライズ環境で広く採用されています。[ 19 ] [ 20 ] [ 21 ]

Python-Djangoスタック

Python- Djangoスタックは、Pythonを主要プログラミング言語として、DjangoをWebフレームワークとして利用します。Djangoは、クリーンで実用的な設計を促進するように設計されており、DRY(Don't Repeat Yourself)原則に従っています。ユーザー認証、管理インターフェース、フォーム処理、強力なORMなど、幅広い組み込み機能を備えています。これらの組み込みツールにより、Djangoはコンテンツ駆動型またはデータベースを多用するWebアプリケーションに特に効果的です。このスタックは、データベースとしてPostgreSQLまたはSQLiteと組み合わせることが多く、Nginxの背後にあるGunicornなどのWebサーバー上で実行されます。Pythonの可読性とDjangoの包括的なドキュメントにより、このスタックは教育プラットフォーム、科学アプリケーション、コンテンツ管理システムで広く使用されています。[ 22 ] [ 23 ]

Ruby on Railsスタック

Ruby on Railsスタックは、Rubyプログラミング言語とRailsウェブフレームワークを中心に構築されています。設定よりも規約を重視する原則を重視しており、開発者は定型コードや手動設定の必要性を減らすことで、アプリケーションを迅速に構築できます。Ruby on Railsには、オブジェクトリレーショナルマッピング(ORM)システム、コード生成のためのスキャフォールディング、構造化されたディレクトリレイアウトなどの統合ツールセットが付属しており、迅速なアプリケーション開発に適しています。シンプルさと開発者の利便性を重視しているため、スタートアップ企業や小規模チームの間で人気があります。このスタックには通常、PostgreSQLまたはMySQLデータベース、PumaやNginxなどのウェブサーバー、CapistranoやHerokuなどのデプロイメントツールが含まれています。[ 24 ] [ 25 ]

その他のスタック

OSレベルのスタック

BCHS [ 26 ]
OpenBSD(オペレーティングシステム)
C(プログラミング言語)
httpd(ウェブサーバー)
SQLite(データベース)
ガネティ[ 27 ]
XenまたはKVM (ハイパーバイザー)
LVM(大容量記憶装置管理)を搭載したLinux
分散複製ブロックデバイス(ストレージレプリケーション
Ganeti仮想マシンクラスタ管理ツール)
Ganeti Web マネージャー(Web インターフェース)
ガラス[ 28 ]
GemStone (データベースおよびアプリケーション サーバー)
Linux(オペレーティング システム)
Apache(ウェブサーバー)
Smalltalk(プログラミング言語)
Seaside(ウェブフレームワーク)
ランプ[ 14 ]
Linux(オペレーティング システム)
Apache(ウェブサーバー)
MySQLまたはMariaDB (データベース管理システム)
PerlPHP、またはPythonスクリプト言語
リープ[ 29 ]
Linux(オペレーティング システム)
Eucalyptus ( Amazon Elastic Compute Cloudの無料のオープンソース代替)
AppScale (クラウド コンピューティングフレームワーク、 Google App Engineの無料のオープンソース代替)
Python(プログラミング言語)
LEMP/LNMP [ 30 ]
Linux(オペレーティング システム)
Nginx(ウェブサーバー)
MySQLまたはMariaDB (データベース管理システム)
PerlPHP、またはPython(スクリプト言語)
LLMP [ 31 ]
Linux(オペレーティング システム)
Lighttpd(ウェブサーバー)
MySQLまたはMariaDB (データベース管理システム)
PerlPHP、またはPython(スクリプト言語)
ライム病ライセ[ 32 ]
Linux(オペレーティング システム)
Yaws ( Erlangで書かれた Web サーバー)
MnesiaまたはCouchDB ( Erlangで書かれたデータベース)
Erlang(関数型プログラミング言語)
マンプ[ 33 ]
Mac OS X(オペレーティング システム)
Apache(ウェブサーバー)
MySQLまたはMariaDB (データベース)
PHPPerlPython(プログラミング言語)
ラップ[ 34 ]
Linux(オペレーティング システム)
Apache(ウェブサーバー)
PostgreSQL(データベース管理システム)
PerlPHP、またはPython(スクリプト言語)
ワンプ[ 35 ]
Windows(オペレーティング システム)
Apache(ウェブサーバー)
MySQLまたはMariaDB (データベース)
PHPPerl、またはPython(プログラミング言語)
弱虫[ 36 ]
Windows(オペレーティング システム)
インターネット インフォメーション サービス(Web サーバー)
MySQLまたはMariaDB (データベース)
PHPPerl、またはPython(プログラミング言語)
勝利[ 37 ]
Windows Server(オペレーティング システム)
インターネット インフォメーション サービス(Web サーバー)
.NETソフトウェアフレームワーク
SQL Server(データベース)
ウィサ[ 38 ]
Windows Server(オペレーティング システム)
インターネット インフォメーション サービス(Web サーバー)
SQL Server(データベース)
ASP.NET(ウェブフレームワーク)

OSに依存しないウェブスタック

エルク[ 39 ]
Elasticsearch検索エンジン
Logstash(イベントおよびログ管理ツール)
Kibanaデータ可視化
マークス[ 14 ]
Apache Mesos (ノードの起動/シャットダウン)
Akka (ツールキット) (アクター実装)
Riak(データストア)
Apache Kafka(メッセージング)
Apache Spark(ビッグデータとMapReduce)
NMP [ 40 ]
Nginx(ウェブサーバー)
MySQLまたはMariaDB (データベース)
PHP(プログラミング言語)
オープンACS [ 41 ]
NaviServer(ウェブサーバー)
OpenACS (ウェブアプリケーションフレームワーク)
PostgreSQLまたはOracle データベース(データベース)
Tcl(スクリプト言語)
プローン
Prometheus(メトリクスと時系列)
Linkerd(サービスメッシュ)
OpenFaaS(コンピューティングの管理と自動スケーリング)
NATS(非同期メッセージバス/キュー)
Kubernetes(宣言型、拡張可能、スケールアウト型、自己修復型クラスタリング)
スマック[ 14 ]
Apache Spark(ビッグデータとMapReduce)
Apache Mesos (ノードの起動/シャットダウン)
Akka(ツールキット)アクター実装)
Apache Cassandra(データベース)
Apache Kafka (メッセージング)
ザムップ[ 42 ]
クロスプラットフォーム(オペレーティングシステム)
Apache(ウェブサーバー)
MariaDBまたはMySQL (データベース)
PHP(プログラミング言語)
Perl(プログラミング言語)
XRX [ 43 ]
XMLデータベース( BaseXeXistMarkLogic Serverなどのデータベース)
XQuery(クエリ言語)
RESTクライアントインターフェース)
XForms(クライアント)

参照

参考文献

  1. ^ 「ソリューションスタック」コンピュータデスクトップ百科事典。The Computer Language Company。2015年。 2018年7月5日閲覧
  2. ^ Mimoso, Michael S. (2003年2月24日). 「Red Hat: Linux served at vertical data center dinner tables」 . SearchEnterpriseLinux.com . 2009年8月9日閲覧。
  3. ^ Beal, V. (2007年9月7日). 「Web Stacksの頭字語ガイド」 . Webopedia . Quinstreet, Inc. 2018年7月5日閲覧
  4. ^ Ferguson, R. (2002). Microsoft SharePoint Portal Server の使用. Que Publishing. p. 616. ISBN 9780789725707
  5. ^アンダーソン、GW (2003). SAP計画:導入におけるベストプラクティス. サムズ. p. 13. ISBN 9780789728753
  6. ^ Amir, Masroor. 「フルスタック開発者 - 完全ロードマップ | 2023年のテクノロジー」 . The Geeks Bot | オタクのためのコンピューターサイエンスサイト. 2023年4月27日閲覧
  7. ^ Tilkov, Stefan, Steve Vinoski. 「Node.js: JavaScriptを用いた高性能ネットワークプログラムの構築」 IEEE Internet Computing , vol. 14, no. 6, 2010, pp. 80–83. DOI: 10.1109/MIC.2010.145
  8. ^ Pimentel, Jon.フルスタックReactプロジェクト. Packt Publishing, 2018.
  9. ^ 「Node.js — Node.js®について」 . nodejs.org . 2025年6月18日閲覧
  10. ^ bin Uzayr, Sufyan (2023-08-09)、「JavaScript for Mobile Usage」Conquering JavaScript、ボカラトン:CRC Press、pp.  371– 402、doi10.1201/9781003356578-7ISBN 978-1-003-35657-8、 2025年6月18日取得{{citation}}: CS1 maint: ISBNによる作業パラメータ(リンク
  11. ^ Sharma, A. (2018). 「第2章 MEVNの紹介」 . Vue.jsとNode.jsによるフルスタックWeb開発. Packt Publishing Ltd. pp.  6– 30. ISBN 9781788830775
  12. ^ 「GRANDStack」 . 2019年12月24日閲覧
  13. ^ "JAMstack" . 2018年7月5日閲覧
  14. ^ a b c d Frampton, M. (2018).オープンソース・ビッグデータ・スタック完全ガイド. Apress. p. 7. ISBN 9781484221495
  15. ^ Wilson, E. (2018). 「第1章 MERNスタックの紹介」 . MERNクイックスタートガイド. Packt Publishing Ltd. pp.  7– 13. ISBN 9781787280045
  16. ^ Sharma, A. (2018). 「第1章 MEVNの紹介」 . Vue.jsとNode.jsによるフルスタックWeb開発. Packt Publishing Ltd. pp.  6– 30. ISBN 9781788830775
  17. ^ 「Webアプリを構築してPERNスタックを学ぶ - フルビデオコース」 . freeCodeCamp.org . 2020年3月20日. 2021年6月19日閲覧
  18. ^ 「TerminusDB on Twitter」 . Twitter . 2020年10月14日閲覧
  19. ^ウォールズ、クレイグ『春の行動』マニング出版、2022年。
  20. ^ Deinum, Marten; Cosmina, Iuliana (2021)、「Spring Framework Fundamentals」Pro Spring MVC with WebFlux、カリフォルニア州バークレー:Apress、pp.  21– 54、doi10.1007/978-1-4842-5666-4_2ISBN 978-1-4842-5665-7、 2025年6月18日取得{{citation}}: CS1 maint: ISBNによる作業パラメータ(リンク
  21. ^ Gutierrez, Felipe (2016)、「Spring with Spring Boot」Pro Spring Boot、カリフォルニア州バークレー:Apress、pp.  89– 105、doi10.1007/978-1-4842-1431-2_5ISBN 978-1-4842-1432-9、 2025年6月18日取得{{citation}}: CS1 maint: ISBNによる作業パラメータ(リンク
  22. ^ Holovaty, Adrian, Jacob Kaplan-Moss. The Django Book . バージョン2.0.
  23. ^ "Django" . Djangoプロジェクト. 2025年6月18日閲覧。
  24. ^ Hinze, Annika (2008年7月). 「RailsS​​pace: Ruby on Railsによるソーシャルネットワーキングウェブサイトの構築 (Addison-Wesley Professional Ruby Series)、Michael Hartl、Aurelius Prochazka著」のレビュー、Addison-Wesley Professional、2007年、44.99ドル、ISBN 0321480791. ACM Queue . 6 (4): 53. doi : 10.1145/1413254.1413266 . ISSN 1542-7730 . 
  25. ^ 「Ruby on Railsガイド」 . Ruby on Railsガイド. 2025年6月18日閲覧
  26. ^ Dzonsons, K. 「BCHS Stack」 。 2018年7月5日閲覧
  27. ^ 「Ganeti インストールチュートリアル」 . Ganeti ドキュメント. Google, Inc. 2018年7月5日閲覧
  28. ^ Glynn, A. (2015年6月3日). 「GLASSのインストールと設定に関する初心者向けガイド:Gemstone 64/S Smalltalk / Seaside / アプリケーションサーバー / オブジェクトデータベースサーバー環境」 Horizo ​​ns of Identity . 2018年7月5日閲覧。
  29. ^ Kaisler, SH; Amour, F.; Espinosa, A.; Money, WH (2015).サービス提供におけるビッグデータからの価値の獲得. Business Expert Press. p. PT69. ISBN 9781631572234
  30. ^ 「LEMP Stack Info」 . LEMP.io. 2018年7月6日閲覧
  31. ^ Johnston, C. (2009年2月18日). 「Ubuntu 8.10でLLMPスタック(Linux、Lighttpd、MySQL、PHP5)を設定する」 ChrisJohnston.org . 2019年2月5日時点のオリジナルよりアーカイブ。 2018年7月6日閲覧
  32. ^ 「ソリューションスタック」 . Idiosyncratic Knowledge . 2016年7月9日. 2016年7月9日閲覧
  33. ^ Coucouvanis, N. (2007). 「Get Your Wiki On」 . Mac Life (5): 83–86 . 2018年7月6日閲覧
  34. ^ Rittinghouse, JW; Ransome, JF (2017).クラウドコンピューティング:実装、管理、セキュリティ. CRC Press. p. PT184. ISBN 9781351615365
  35. ^ "WAMP" . Softaculous Ltd. 2018年7月6日閲覧
  36. ^ 「チュートリアル: Windows Server を実行している Amazon EC2 インスタンスへの WIMP サーバーのインストール」。AWSドキュメント。Amazon Web Services, Inc. 2018年7月6日閲覧
  37. ^ Evgen (2018年1月28日). 「Web開発のためのテクノロジースタックの選び方」 . GBKSOFTブログ. GBKSOFT Dev LLC . 2018年7月6日閲覧
  38. ^ Sachdeva, B. (2009年5月27日). 「自分に最適なWeb​​アプリケーションスタックはどれか?」 . developer.com . QuinStreet, Inc. 2018年7月6日閲覧
  39. ^ Chhajed, S. (2015). 「第1章 ELKスタック入門」 . Learning ELK Stack . Packt Publishing Ltd. pp.  1– 22. ISBN 9781785886706
  40. ^ルナ、F. (2017). Programador Web フルスタック: Desarrollo フロントエンドとバックエンド。レッドユーザー。17~ 18ページ 
  41. ^ 「OpenACS:その概要と使用理由」 OpenACS.orgOpenACSコミュニティ20187月6日閲覧
  42. ^ 「XAMPP Apache + MariaDB + PHP + Perl」 Apache Friends 2018年7月6日閲覧
  43. ^ McCreary, D. 「XRX」danmccreary.com . 2018年7月6日閲覧