پشته راه حل
در علم رایانش یک پشته راه حل یا یک پشته نرمافزاری مجموعهای از زیرسیستمها یا اجزای نرمافزاری است که برای ساخت یک سکوی رایانش به آن نیاز میباشد، این مجموعه باید کافی باشد، یعنی به هیچ نرمافزار اضافی دیگری برای پشتیبانی از برنامه کاربردی نیاز نباشد.[1] در اصطلاح گفته میشود که پس از ایجاد سکوی رایانش، برنامههای کاربردی «روی سکو اجرا میشوند» یا «در بالای سکو اجرا میشوند».[2]
برای مثال، برای ساخت یک برنامه کاربردی وب، معماری پشته شامل «سیستم عامل، سرور وب، پایگاه داده، و زبان برنامهنویسی» میباشد. یک ورژن دیگر از پشته نرمافزاری «سیستم عامل، میان افزار، پایگاه داده، و برنامه کاربردی» میباشد.[3] به صورت معمول، اجزای پشته نرمافزاری توسط توسعه دهندگان مختلف، به صورت مستقل از یکدیگر توسعه مییابند.[2]
بعضی از اجزا/زیرسیستمهای یک سیستم کل، آنقدر با هم به کار میروند که به جای آنکه اجزا نامگذاری جداگانه داشته باشند، برای ترکیب آنها یک نام به کار میرود، و این نام نشان دهندهٔ کل آنها میباشد. این نام معمولاً یک کوتهنوشت است که نمایش دهندهٔ اجزای بخصوص آن است.[4]
عبارت «پشته راه حل» بعضی مواقع، به صورت تاریخی، به عنوان بخشی از راه حل کلی، شامل اجزای سختافزاری میباشد، و این به معنی ترکیب لایههای پشتیبانی سختافزاری و لایههای پشتیبانی نرمافزاری است.[5][6]
مثالها
در ادامه چندین پشته راه حل برای ذکر مثال آمدهاست:
- BCHS
- OpenBSD (operating system)
- C (programming language)
- httpd (web server)
- SQLite (database)
- ELK
- Elasticsearch (search engine)
- Logstash (event and log management tool)
- Kibana (data visualization)
- Ganeti
- Xen or KVM (hypervisor)
- Linux with LVM (mass-storage device management)
- Distributed Replicated Block Device (storage replication)
- Ganeti (virtual machine cluster management tool)
- Ganeti Web Manager (web interface)
- GLASS
- GemStone (database and application server)
- Linux (operating system)
- Apache (web server)
- Smalltalk (programming language)
- Seaside (web framework)
- GRANDstack
- GraphQL (data query and manipulation language)
- React (web application presentation)
- Apollo (Data Graph Platform)
- Neo4j (database management systems)
- JAMstack
- JavaScript (programming language)
- APIs (Application programming interfaces)
- Markup (content)
- LAMP
- Linux (operating system)
- Apache (web server)
- MySQL or MariaDB (database management systems)
- Perl, PHP, or Python (scripting languages)
- LAPP
- Linux (operating system)
- Apache (web server)
- PostgreSQL (database management systems)
- Perl, PHP, or Python (scripting languages)
- LEAP
- Linux (operating system)
- Eucalyptus (free and open-source alternative to the Amazon Elastic Compute Cloud)
- AppScale (cloud computing-framework and free and open-source alternative to Google App Engine)
- Python (programming language)
- LEMP/LNMP
- Linux (operating system)
- Nginx (web server)
- MySQL or MariaDB (database management systems)
- Perl, PHP, or Python (scripting languages)
- LLMP
- Linux (operating system)
- Lighttpd (web server)
- MySQL or MariaDB (database management systems)
- Perl, PHP, or Python (scripting languages)
- LYME and LYCE
- Linux (operating system)
- Yaws (web server, written in Erlang)
- Mnesia or CouchDB (database, written in Erlang)
- Erlang (functional programming language)
- MAMP
- Mac OS X (operating system)
- Apache (web server)
- MySQL or MariaDB (database)
- PHP, Perl, or Python (programming languages)
- MARQS
- Apache Mesos (node startup/shutdown)
- Akka (toolkit) (actor implementation)
- Riak (data store)
- Apache Kafka (messaging)
- Apache Spark (big data and MapReduce)
- MEAN
- MongoDB (database)
- Express.js (application controller layer)
- AngularJS/Angular (web application presentation)
- Node.js (web server)
- MERN
- MongoDB (database)
- Express.js (application controller layer)
- React.js (web application presentation)
- Node.js (web server)
- MEVN
- MongoDB (database)
- Express.js (application controller layer)
- Vue.js (web application presentation)
- Node.js (web server)
- NMP
- Nginx (web server)
- MySQL or MariaDB (database)
- PHP (programming language)
- OpenACS
- Linux or Windows (operating system)
- AOLserver (web server)
- OpenACS (web application framework)
- PostgreSQL or Oracle Database (database)
- Tcl (scripting language)
- PLONK
- Prometheus (metrics and time-series)
- Linkerd (service mesh)
- OpenFaaS (management and auto-scaling of compute)
- NATS (asynchronous message bus/queue)
- Kubernetes (declarative, extensible, scale-out, self-healing clustering)
- SMACK
- Apache Spark (big data and MapReduce)
- Apache Mesos (node startup/shutdown)
- Akka (toolkit) (actor implementation)
- Apache Cassandra (database)
- Apache Kafka (messaging)
- WAMP
- Windows (operating system)
- Apache (web server)
- MySQL or MariaDB (database)
- PHP, Perl, or Python (programming language)
- WIMP
- Windows (operating system)
- Internet Information Services (web server)
- MySQL or MariaDB (database)
- PHP, Perl, or Python (programming language)
- WINS
- Windows Server (operating system)
- Internet Information Services (web server)
- .NET (software framework)
- SQL Server (database)
- WISA
- Windows Server (operating system)
- Internet Information Services (web server)
- SQL Server (database)
- ASP.NET (web framework)
- XAMPP
- cross-platform (operating system)
- Apache (web server)
- MariaDB or MySQL (database)
- PHP (programming language)
- Perl (programming language)
- XRX
- XML database (database such as BaseX, eXist, MarkLogic Server)
- XQuery (Query language)
- REST (client interface)
- XForms (client)
منابع
- "Solution stack". Computer Desktop Encyclopedia. The Computer Language Company. 2015. Retrieved 5 July 2018.
- "Solution stack". Wikipedia. 2020-01-02.
- Mimoso, Michael S. (24 February 2003). "Red Hat: Linux served at vertical data center dinner tables". SearchEnterpriseLinux.com. Archived from the original on 10 November 2009. Retrieved 2009-08-09.
- Beal, V. (7 September 2007). "Acronym Guide to Web Stacks". Webopedia. Quinstreet, Inc. Retrieved 5 July 2018.
- Ferguson, R. (2002). Using Microsoft SharePoint Portal Server. Que Publishing. p. 616. ISBN 9780789725707.
- Anderson, G.W. (2003). SAP Planning: Best Practices in Implementation. Sams. p. 13. ISBN 9780789728753.