Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Distributed computing
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Architectures== Various hardware and software architectures are used for distributed computing. At a lower level, it is necessary to interconnect multiple CPUs with some sort of network, regardless of whether that network is printed onto a circuit board or made up of loosely coupled devices and cables. At a higher level, it is necessary to interconnect [[Process (computing)|processes]] running on those CPUs with some sort of [[communication system]].<ref name="OhlídalEvo06">{{cite book |chapter=Evolutionary Design of OAB and AAB Communication Schedules for Interconnection Networks |title=Applications of Evolutionary Computing |author=Ohlídal, M. |author2=Jaroš, J. |author3=Schwarz, J.|editor=Rothlauf, F. |editor2=Branke, J. |editor3=Cagnoni, S.|display-authors=et al |publisher=Springer Science & Business Media |pages=267–78 |year=2006 |isbn=9783540332374}}</ref> Whether these CPUs share resources or not determines a first distinction between three types of architecture: * [[Shared-memory architecture|Shared memory]] * [[Shared-disk architecture|Shared disk]] * [[Shared nothing]]. Distributed programming typically falls into one of several basic architectures: [[client–server]], [[Three-tier (computing)|three-tier]], [[Multitier architecture|''n''-tier]], or [[peer-to-peer]]; or categories: [[loose coupling]], or [[Computer cluster|tight coupling]].<ref>{{Cite journal|title=Real Time And Distributed Computing Systems|url=https://pdfs.semanticscholar.org/2950/37ee46ac281590f67435380cebc385ac9749.pdf|archive-url=https://web.archive.org/web/20170110015222/https://pdfs.semanticscholar.org/2950/37ee46ac281590f67435380cebc385ac9749.pdf|url-status=dead|archive-date=2017-01-10|issn=2278-0661|access-date=2017-01-09}}</ref> * [[Client–server]]: architectures where smart clients contact the server for data then format and display it to the users. Input at the client is committed back to the server when it represents a permanent change. * [[Three-tier (computing)|Three-tier]]: architectures that move the client intelligence to a middle tier so that [[Stateless protocol|stateless]] clients can be used. This simplifies application deployment. Most web applications are three-tier. * [[Multitier architecture|''n''-tier]]: architectures that refer typically to web applications which further forward their requests to other enterprise services. This type of application is the one most responsible for the success of [[application server]]s. * [[Peer-to-peer]]: architectures where there are no special machines that provide a service or manage the network resources.<ref name=Vigna20150127>Vigna P, Casey MJ. ''The Age of Cryptocurrency: How Bitcoin and the Blockchain Are Challenging the Global Economic Order'' St. Martin's Press January 27, 2015 {{ISBN|9781250065636}}</ref>{{rp|227}} Instead all responsibilities are uniformly divided among all machines, known as peers. Peers can serve both as clients and as servers.<ref>{{Cite book|title=Peer-to-peer computing : principles and applications |date=2010|publisher=Springer |author1=Quang Hieu Vu |author2=Mihai Lupu |author3=Beng Chin Ooi |isbn=9783642035135|location=Heidelberg|pages=16|oclc=663093862}}</ref> Examples of this architecture include [[BitTorrent]] and the [[bitcoin network]]. Another basic aspect of distributed computing architecture is the method of communicating and coordinating work among concurrent processes. Through various message passing protocols, processes may communicate directly with one another, typically in a [[main/sub (technology)|main/sub]] relationship. Alternatively, a [[Database-centric architecture|"database-centric" architecture]] can enable distributed computing to be done without any form of direct [[inter-process communication]], by utilizing a shared [[database]].<ref>{{Citation |vauthors=Lind P, Alm M |title=A database-centric virtual chemistry system |journal=J Chem Inf Model |volume=46 |issue=3 |pages=1034–9 |year=2006 |pmid=16711722 |doi=10.1021/ci050360b |postscript=. }}</ref> Database-centric architecture in particular provides relational processing analytics in a schematic architecture allowing for live environment relay. This enables distributed computing functions both within and beyond the parameters of a networked database.<ref>{{cite journal |last1=Chiu |first1=G |title=A model for optimal database allocation in distributed computing systems |journal=Proceedings. IEEE INFOCOM'90: Ninth Annual Joint Conference of the IEEE Computer and Communications Societies |date=1990}}</ref> === Cell-Based Architecture === Cell-based architecture is a distributed computing approach in which computational resources are organized into self-contained units called cells. Each cell operates independently, processing requests while maintaining scalability, fault isolation, and availability. <ref name=":22">{{cite book |last=Newman |first=Sam |title=Building Microservices |date=2015-02-20 |publisher=O'Reilly Media |isbn=978-1491950357}}</ref><ref name=":3">{{Cite book |last=Richardson |first=Chris |title=Microservices patterns: with examples in Java |date=2019 |publisher=Manning Publications |isbn=978-1-61729-454-9 |location=Shelter Island, NY}}</ref><ref name=":4">{{Cite book |last=Christudas |first=Binildas |title=Practical Microservices Architectural Patterns: Event-Based Java Microservices with Spring Boot and Spring Cloud |date=2019 |publisher=Apress L. P |isbn=978-1-4842-4501-9 |location=Berkeley, CA}}</ref> A cell typically consists of multiple services or application components and functions as an autonomous unit. Some implementations replicate entire sets of [[Microservices|services]] across multiple cells, while others partition workloads between cells. In replicated models, requests may be rerouted to an operational cell if another experiences a failure. This design is intended to enhance system resilience by reducing the impact of localized failures. <ref name=":23">{{cite book |last=Newman |first=Sam |title=Building Microservices |date=2015-02-20 |publisher=O'Reilly Media |isbn=978-1491950357}}</ref><ref name=":32">{{Cite book |last=Richardson |first=Chris |title=Microservices patterns: with examples in Java |date=2019 |publisher=Manning Publications |isbn=978-1-61729-454-9 |location=Shelter Island, NY}}</ref><ref name=":42">{{Cite book |last=Christudas |first=Binildas |title=Practical Microservices Architectural Patterns: Event-Based Java Microservices with Spring Boot and Spring Cloud |date=2019 |publisher=Apress L. P |isbn=978-1-4842-4501-9 |location=Berkeley, CA}}</ref> Some implementations employ [[Circuit breaker design pattern|circuit breakers]] within and between cells. Within a cell, circuit breakers may be used to prevent cascading failures among services, while inter-cell circuit breakers can isolate failing cells and redirect traffic to those that remain operational. <ref name=":24">{{cite book |last=Newman |first=Sam |title=Building Microservices |date=2015-02-20 |publisher=O'Reilly Media |isbn=978-1491950357}}</ref><ref name=":33">{{Cite book |last=Richardson |first=Chris |title=Microservices patterns: with examples in Java |date=2019 |publisher=Manning Publications |isbn=978-1-61729-454-9 |location=Shelter Island, NY}}</ref><ref name=":43">{{Cite book |last=Christudas |first=Binildas |title=Practical Microservices Architectural Patterns: Event-Based Java Microservices with Spring Boot and Spring Cloud |date=2019 |publisher=Apress L. P |isbn=978-1-4842-4501-9 |location=Berkeley, CA}}</ref> Cell-based architecture has been adopted in some large-scale distributed systems, particularly in cloud-native and high-availability environments, where fault isolation and redundancy are key design considerations. Its implementation varies depending on system requirements, infrastructure constraints, and operational objectives. <ref name=":25">{{cite book |last=Newman |first=Sam |title=Building Microservices |date=2015-02-20 |publisher=O'Reilly Media |isbn=978-1491950357}}</ref><ref name=":34">{{Cite book |last=Richardson |first=Chris |title=Microservices patterns: with examples in Java |date=2019 |publisher=Manning Publications |isbn=978-1-61729-454-9 |location=Shelter Island, NY}}</ref><ref name=":44">{{Cite book |last=Christudas |first=Binildas |title=Practical Microservices Architectural Patterns: Event-Based Java Microservices with Spring Boot and Spring Cloud |date=2019 |publisher=Apress L. P |isbn=978-1-4842-4501-9 |location=Berkeley, CA}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)