Meta tags:
Headings (most frequently used words):
distributed, computing, systems, other, contents, introduction, patterns, events, vs, messages, parallel, and, history, architectures, applications, examples, reactive, theoretical, foundations, see, also, notes, references, further, reading, external, links, cell, based, architecture, models, an, example, complexity, measures, problems, election, properties, of, topics,
Text of the page (most frequently used words):
the (289), #distributed (173), and (141), #computing (85), systems (64), computer (60), parallel (54), system (51), isbn (48), are (47), 978 (44), network (42), for (41), from (40), that (40), can (37), algorithms (36), 2000 (32), with (31), each (30), edit (27), algorithm (26), archived (25), model (23), original (23), which (23), one (23), problem (23), computers (22), architecture (21), retrieved (20), based (20), memory (20), 2007 (20), microservices (20), programming (19), shared (19), other (18), problems (18), such (18), may (17), this (17), more (17), ghosh (16), program (15), pdf (15), applications (15), computational (15), message (15), patterns (15), communication (15), passing (15), used (15), there (15), has (14), peleg (14), 1996 (14), lynch (14), time (14), peer (14), messages (14), using (13), example (13), concurrent (13), graph (13), doi (13), information (13), architectures (13), networks (13), multiple (12), all (12), data (12), reactive (12), application (12), media (12), section (12), its (12), coordinator (12), than (12), between (12), oriented (11), process (11), design (11), processing (11), 2018 (11), nodes (11), events (11), use (10), java (10), reilly (10), computation (10), some (10), science (10), examples (10), processes (10), not (10), node (10), event (9), models (9), cloud (9), general (9), 2009 (9), complexity (9), andrews (9), 2019 (9), communicate (9), their (9), also (9), processors (9), many (9), machines (9), election (9), single (9), cell (9), was (8), different (8), logic (8), task (8), introduction (8), journal (8), approach (8), database (8), spring (8), access (8), field (8), given (8), where (8), another (8), typically (8), solved (8), same (8), while (8), wikipedia (7), about (7), terms (7), list (7), links (7), components (7), level (7), order (7), large (7), processor (7), cost (7), related (7), three (7), 2010 (7), history (7), internet (7), 2020 (7), 2015 (7), number (7), but (7), run (7), however (7), state (7), among (7), much (7), local (7), must (7), main (7), both (7), non (6), page (6), link (6), type (6), driven (6), structured (6), synchronous (6), cache (6), hardware (6), high (6), s2cid (6), addison (6), wesley (6), 1994 (6), press (6), machine (6), springer (6), 1990 (6), through (6), building (6), principles (6), work (6), resources (6), common (6), case (6), several (6), graphs (6), then (6), commonly (6), running (6), rounds (6), structure (6), own (6), theoretical (6), tier (6), view (5), short (5), articles (5), 2016 (5), control (5), functional (5), global (5), function (5), cluster (5), pram (5), asynchronous (5), boolean (5), conference (5), acm (5), 2021 (5), operating (5), web (5), what (5), 201 (5), 2008 (5), papadimitriou (5), dolev (5), foundations (5), questions (5), efficient (5), 2017 (5), scale (5), manning (5), apress (5), practical (5), architectural (5), see (5), programs (5), any (5), focus (5), properties (5), often (5), into (5), provide (5), include (5), only (5), coloring (5), string (5), circuit (5), have (5), within (5), cells (5), services (5), move (5), client (5), server (5), delivery (5), once (5), languages (4), toggle (4), contents (4), search (4), code (4), commons (4), pages (4), descriptions (4), redirect (4), description (4), object (4), multi (4), self (4), pattern (4), set (4), scientific (4), user (4), array (4), answer (4), dataflow (4), point (4), total (4), higher (4), scalability (4), software (4), massively (4), multiprocessor (4), explicit (4), coordination (4), performance (4), 1145 (4), keidar (4), dusseau (4), chapter (4), 2002 (4), 2011 (4), fundamentals (4), further (4), rivest (4), leiserson (4), cormen (4), world (4), march (4), how (4), traditional (4), 2023 (4), cite (4), sections (4), technology (4), real (4), xix (4), christudas (4), binildas (4), berkeley (4), 4842 (4), 4501 (4), boot (4), richardson (4), chris (4), shelter (4), island (4), publications (4), 61729 (4), 454 (4), newman (4), sam (4), 4919 (4), 5035 (4), issn (4), 4920 (4), scalable (4), london (4), 84882 (4), called (4), goal (4), uses (4), possible (4), whether (4), runs (4), understanding (4), been (4), central (4), were (4), method (4), fault (4), question (4), including (4), produce (4), known (4), solution (4), well (4), part (4), input (4), following (4), instance (4), designer (4), seen (4), individual (4), purpose (4), coupled (4), various (4), infrastructure (4), autonomous (4), networked (4), most (4), change (4), first (4), arpanet (4), figure (4), hide (4), sidebar (4), contact (3), available (3), additional (3), wikimedia (3), category (3), wikidata (3), displaying (3), targets (3), via (3), cs1 (3), wayback (3), international (3), automatic (3), concurrency (3), service (3), constraint (3), english (3), language (3), end (3), command (3), types (3), class (3), deterministic (3), grid (3), thread (3), theory (3), eds (3), cambridge (3), university (3), wiley (3), ieee (3), 1998 (3), 642 (3), bibcode (3), 2004 (3), topics (3), peter (3), siam (3), 1992 (3), cole (3), vishkin (3), elmasri (3), navathe (3), modern (3), references (3), solve (3), january (3), leader (3), engineering (3), 1007 (3), centric (3), help (3), evolutionary (3), 291 (3), consists (3), your (3), projects (3), edge (3), availability (3), designed (3), across (3), special (3), particular (3), behaviour (3), finite (3), solves (3), complete (3), decide (3), research (3), suggested (3), definition (3), create (3), new (3), token (3), them (3), unique (3), either (3), serve (3), physical (3), those (3), produces (3), required (3), these (3), coordinate (3), measure (3), defined (3), output (3), make (3), location (3), circuits (3), efficiently (3), implemented (3), chooses (3), account (3), random (3), discussion (3), tasks (3), would (3), like (3), article (3), loosely (3), native (3), file (3), monolithic (3), failure (3), operational (3), implementations (3), breakers (3), failures (3), inter (3), requests (3), form (3), clients (3), servers (3), coupling (3), cpus (3), 1970s (3), early (3), typical (3), execution (3), rather (3), exactly (3), tools (3), table (2), privacy (2), policy (2), under (2), you (2), categories (2), maint (2), names (2), authors (2), unsourced (2), statements (2), october (2), template (2), national (2), databases (2), paradigm (2), comparison (2), features (2), abstraction (2), inductive (2), space (2), mutual (2), exclusion (2), actor (2), stack (2), probabilistic (2), modeling (2), low (2), specific (2), free (2), modular (2), paradigms (2), slowdown (2), deadlock (2), pipelined (2), parallelism (2), synchronization (2), coherence (2), multiprocessing (2), instruction (2), elements (2), speedup (2), law (2), analysis (2), simultaneous (2), bit (2), wikiquote (2), external (2), 1982 (2), communications (2), idit (2), 2014 (2), sigact (2), news (2), column (2), tel (2), 471 (2), jim (2), faber (2), book (2), reliable (2), books (2), reading (2), ian (2), godfrey (2), 1995 (2), 2013 (2), 1137 (2), stockmeyer (2), naor (2), locality (2), 193 (2), linial (2), 1986 (2), optimal (2), morgan (2), kaufmann (2), shavit (2), herlihy (2), 348 (2), hall (2), algorithmic (2), 262 (2), mit (2), 1st (2), barak (2), 521 (2), arora (2), 981 (2), randomness (2), answers (2), physics (2), com (2), big (2), 2012 (2), korach (2), 101 (2), transactions (2), technique (2), finding (2), moran (2), kutten (2), humblet (2), spira (2), gallager (2), lelann (2), intensive (2), analytics (2), business (2), power (2), environments (2), annual (2), 2006 (2), virtual (2), martin (2), bitcoin (2), leveraging (2), designing (2), 4345 (2), 012038 (2), 1742 (2), 6596 (2), 608 (2), messaging (2), 406 (2), abstract (2), collection (2), concurrently (2), variables (2), 1868 (2), 0941 (2), 744 (2), 745 (2), 5_11 (2), 373 (2), texts (2), serverless (2), monolith (2), consist (2), physically (2), independently (2), private (2), storage (2), notes (2), nothing (2), volunteer (2), technologies (2), reach (2), devices (2), group (2), dijkstra (2), prize (2), consistency (2), achieve (2), operate (2), interconnected (2), mechanism (2), decentralized (2), cases (2), decidable (2), interacting (2), centralised (2), halting (2), least (2), perform (2), employ (2), concept (2), choose (2), kinds (2), undirected (2), rings (2), others (2), transmitted (2), impact (2), will (2), get (2), identities (2), compare (2), before (2), current (2), should (2), latency (2), globally (2), consistent (2), clock (2), ordering (2), nature (2), challenges (2), tolerance (2), take (2), similar (2), bits (2), similarly (2), hand (2), smaller (2), without (2), obtain (2), polylogarithmic (2), considered (2), diameter (2), during (2), arbitrary (2), neighbors (2), addition (2), faster (2), said (2), measures (2), moreover (2), boundary (2), does (2), interaction (2), two (2), fields (2), originally (2), directly (2), coordinating (2), immediate (2), exchange (2), encoded (2), might (2), approaches (2), regardless (2), simple (2), sorting (2), executed (2), wide (2), below (2), studies (2), solving (2), sequential (2), ask (2), instances (2), desired (2), according (2), multiplayer (2), online (2), games (2), reasons (2), manage (2), particularly (2), isolation (2), implementation (2), depending (2), requirements (2), functions (2), unit (2), entire (2), maintaining (2), basic (2), communicating (2), alternatively (2), direct (2), schematic (2), divided (2), peers (2), users (2), back (2), when (2), permanent (2), loose (2), share (2), distinction (2), necessary (2), interconnect (2), sort (2), became (2), late (2), 1980s (2), symposium (2), 1960s (2), invented (2), mail (2), support (2), area (2), nevertheless (2), topology (2), shows (2), exchanged (2), notifications (2), publish (2), subscribe (2), pure (2), mechanisms (2), generally (2), soa (2), here (2), needs (2), entities (2), actions (2), appearance (2), upload (2), changes (2), read (2), norsk (2), bahasa (2), беларуская (2), subsection (2), log (2), donate (2), menu (2), add, topic, mobile, cookie, statement, statistics, developers, conduct, legal, safety, contacts, disclaimers, text, apply, site, agree, registered, trademark, profit, organization, foundation, inc, creative, attribution, sharealike, license, rendered, parsoid, last, edited, september, 2026, utc, hidden, module, annotated, errors, missing, periodical, webarchive, https, org, index, php, title, distributed_computing, oldid, 1376696275, yale, lux, idref, israel, latvia, spain, bnf, france, united, states, fast, gnd, authority, comparisons, lists, subjects, roles, literate, aspects, separation, concerns, symbolic, modifying, reflective, vibe, coding, demonstration, bayesian, synthesis, stage, metalinguistic, hygienic, macro, interactive, homoiconicity, generic, extensible, dynamic, attribute, metaprogramming, relativistic, partitioned, address, organic, multitier, macroprogramming, choreographic, visual, production, rewriting, transformation, templating, tactile, simulation, theoretic, scripting, quantum, filters, pipes, natural, comprehension, interface, grammar, differentiable, spacecraft, action, automata, algebraic, dsl, domain, query, ontology, nondeterministic, abductive, streams, signals, flow, monad, value, concatenative, applicative, expression, style, dependent, gadts, strict, purely, partial, anonymous, recursive, declarative, uniform, call, syntax, persistent, immutable, agent, prototype, nested, invariant, contract, small, procedural, block, jackson, structures, imperative, starvation, lockout, race, condition, embarrassingly, stampede, parallelization, zpl, tbb, upc, rocm, raftlib, pthreads, pvm, extensions, openacc, openhmpp, opencl, openmp, mpi, gpuopen, arrays, amp, dryad, cuda, coarray, fortran, cilk, charm, hpx, chapel, boost, ateji, apis, acceleration, beowulf, coma, numa, uma, asymmetric, symmetric, vector, superscalar, mimd, misd, associative, simt, simd, sisd, flynn, taxonomy, blocking, implicit, stream, checkpointing, barrier, invalidation, window, fiber, karp, flatt, metric, efficiency, gustafson, amdahl, pem, scout, cmt, clustered, cooperative, preemptive, spmt, speculative, heterogenous, smt, temporal, multithreading, pipeline, loop, levels, systolic, gpgpu, manycore, quotations, rodriguez, carlos, villagra, marcos, baran, benjamin, team, satisfiability, 15185219, 1109, bimnics, 4610083, 2nd, bio, inspired, papers, birrell, levin, schroeder, april, 274, 16066616, 358468, 358487, 260, grapevine, exercise, needham, rajsbaum, sergio, remzi, andrea, august, easy, pieces, 0201058669, 1988, chandy, mani, gerard, 03600, garg, vijay, 132, 14301, coulouris, george, concepts, 5th, edition, christian, cachin, rachid, guerraoui, luís, rodrigues, 15259, 2011itra, secure, 45324, jennifer, welch, interscience, simulations, advanced, attiya, hagit, bill, primer, sites, 1277, s0097539793254571, 1259, computed, locally, larry, moni, 0221015, nathan, 7607391, 1466390, 1466402, year, review, richard, coin, tossing, ranking, 1016, s0019, 9958, 80023, uzi, 89871, 464, sensitive, david, 53082, christos, 370591, art, nir, maurice, 55860, nancy, sukumar, chapman, crc, 58488, 564, ramez, 3rd, 54263, shamkant, 04178, stabilization, shlomi, 03141, 1990ita, ronald, charles, thomas, boaz, 42426, sanjeev, gregory, 35752, multithreaded, svozil, hector, 4462, 112, indeterminism, theserverside, cstheory, stackexchange, major, unsolved, hamilton, howard, ephraim, 9175968, 77606, 77610, shlomo, shay, 1983, 2758285, 357195, 357200, minimum, weight, spanning, trees, 1977, toward, formal, 155, 160, elsevier, haloi, packt, publishing, ltd, 78439, 832, 100, apache, zookeeper, essentials, kamburugamuve, supun, ekanayake, saliya, john, sons, 119, 71301, hood, 102, 192, schneider, wattenhofer, 24099, trading, tulsiramji, gaikwad, patil, college, nagpur, department, chapters, savage, 209, 89539, exploring, toomarian, barhen, gulati, fijany, bejczy, 214, 4506, robotics, neural, robotic, 63835, 581, development, haussmann, irregularly, 909, 54447518, s10586, 018, 2879, 887, chiu, allocation, proceedings, infocom, ninth, joint, societies, lind, alm, chemistry, 16711722, pmid, 1021, ci050360b, 1034, chem, inf, quang, hieu, mihai, lupu, beng, chin, ooi, heidelberg, 663093862, oclc, 03513, vigna, casey, 9781250065636, age, cryptocurrency, blockchain, challenging, economic, requires, 2278, 0661, ohlídal, jaroš, schwarz, oab, aab, schedules, interconnection, rothlauf, branke, cagnoni, 540, 33237, 267, 79483, banks, 4302, 5074, way, secret, founders, email, bentaleb, yifan, xin, singapore, july, 5789, organizational, kleppmann, 4493, 7332, ideas, behind, maintainable, 292, magnoni, 1088, 2015jphcs, 608a2038m, series, sytems, sic, disjoint, changed, 0981, 4204, knative, 4781, transform, ford, neal, 147, 146, tanenbaum, andrew, steen, maarten, van, upper, saddle, river, pearson, prentice, 088893, cognitive, checking, conferences, loa, library, layered, queueing, jungle, regarding, spatial, gis, widely, fog, flat, neighborhood, telecommunication, providers, agreeing, upon, interoperability, standards, federation, edsger, eventual, over, source, networking, built, distribution, jobs, mobility, linearizability, interesting, reason, telling, likely, pspace, analogous, halts, forever, naturally, hard, undecidable, far, complementary, studying, coordinators, act, exist, unidirectional, grids, directed, euler, decouples, issue, family, economical, had, strong, won, influential, paper, bytes, attributed, who, formalized, lost, ring, themselves, they, need, break, symmetry, comparable, highest, identity, designating, organizer, begun, unaware, unable, after, throughout, recognizes, note, measured, 99th, percentile, because, median, average, misleading, stamps, causal, happened, logical, clocks, synchronizers, focused, fundamental, stabilisation, byzantine, consensus, perspective, asks, stops, stop, supposed, continuously, conflicts, occur, deadlocks, dining, philosophers, captured, congest, contain, having, possibility, distant, parts, words, decisions, size, neighbourhood, closely, let, computable, trivially, approximately, simply, gather, inform, attention, usually, paid, operations, steps, perhaps, simplest, lockstep, fashion, receive, latest, neighbours, send, round, yet, resource, indeed, trade, off, decision, polynomial, equally, formalism, simulate, vice, versa, suitable, lie, place, presented, operation, initially, knows, discover, color, exploits, again, finds, encodes, outputs, result, centralized, consider, describes, illustrated, per, correctly, gate, extremely, comparator, closer, behavior, takes, instructions, cas, body, summary, found, literature, swap, extended, underlying, encapsulates, virtually, unifies, classical, assumes, viewpoints, focuses, although, issues, executes, obvious, meant, equivalent, citation, needed, seeks, understand, traditionally, correct, reads, performs, formalisms, executing, universal, turing, computability, automate, formally, together, solutions, manifesto, responsive, resilient, elastic, subsequently, flexible, advised, implement, graphics, rendering, industrial, aircraft, banking, airline, reservation, burst, buffers, management, communities, reality, routing, wireless, sensor, cellular, telephone, telecommunications, principle, reliability, easier, expand, uniprocessor, allow, larger, compute, bandwidth, beneficial, very, connects, produced, require, adopted, redundancy, key, considerations, varies, constraints, objectives, prevent, cascading, isolate, failing, traffic, remain, replicate, sets, partition, workloads, replicated, rerouted, experiences, intended, enhance, resilience, reducing, localized, organized, contained, units, operates, aspect, protocols, relationship, enable, done, utilizing, provides, relational, allowing, live, environment, relay, enables, beyond, parameters, sub, instead, responsibilities, uniformly, bittorrent, 227, refer, forward, enterprise, responsible, success, intelligence, middle, simplifies, deployment, stateless, smart, format, display, committed, represents, falls, tight, disk, determines, lower, printed, onto, made, cables, board, study, branch, podc, dates, counterpart, disc, held, ottawa, 1985, workshop, predecessors, introduced, successful, probably, earliest, successor, worldwide, included, fidonet, usenet, roots, studied, widespread, ethernet, situation, complicated, quite, match, above, definitions, detailed, rule, thumb, right, illustrates, difference, represented, line, connecting, detail, groups, overlap, clear, exists, characterized, tightly, roughly, classify, criteria, combine, targeted, workflows, timing, request, reply, technically, associated, excel, propagation, decoupled, better, suited, workflow, orchestration, contrast, broader, role, encompassing, commands, documents, guarantees, achieved, idempotency, true, semantics, datapayload, paymentprocessed, processpayment, represent, fact, broadcast, asynchronously, consumers, promoting, don, expect, response, acknowledgment, kafka, commit, offsets, sns, statuses, being, inherent, itself, orderplaced, p2p, saga, know, limited, incomplete, advance, tolerate, perceives, cited, word, referred, geographical, nowadays, wider, sense, even, referring, interact, refers, writing, http, connectors, queues, rpc, overcoming, managing, independent, component, fails, fail, vary, primarily, due, increased, gateways, firewalls, subnets, proxies, suffer, conversely, durable, changeable, fine, tuned, deployed, marc, brooker, range, workload, nearly, constant, fit, ownership, just, marginal, fallacies, lack, whose, located, confused, encyclopedia, item, wikiversity, printable, version, download, print, export, switch, legacy, parser, shortened, url, talk, tiếng, việt, اردو, українська, türkçe, ไทย, தமிழ், svenska, српски, srpski, shqip, slovenčina, русский, română, português, polski, bokmål, nynorsk, nederlands, melayu, монгол, മലയാളം, македонски, latviešu, lietuvių, latina, 한국어, қазақша, ქართული, jawa, 日本語, italiano, ido, indonesia, magyar, हिन्दी, עברית, gaeilge, français, suomi, فارسی, euskara, eesti, español, esperanto, ελληνικά, deutsch, dansk, čeština, català, bosanski, български, тарашкевіца, العربية, top, personal, recent, community, portal, learn, contribute, navigation, jump, content,
Text of the page (random words):
durable more changeable and more fine tuned than a monolithic application deployed on a single machine 5 according to marc brooker a system is scalable in the range where marginal cost of additional workload is nearly constant serverless technologies fit this definition but the total cost of ownership and not just the infrastructure cost must be considered 6 a computer program that runs within a distributed system is called a distributed program 7 and distributed programming is the process of writing such programs 8 there are many types of implementations for the message passing mechanism including pure http rpc like connectors and message queues 9 distributed computing also refers to the use of distributed systems to solve computational problems in distributed computing a problem is divided into many tasks each of which is solved by one or more computers 10 which communicate with each other via message passing 11 introduction edit the word distributed in terms such as distributed system distributed programming and distributed algorithm originally referred to computer networks where individual computers were physically distributed within some geographical area 12 the terms are nowadays used in a much wider sense even referring to autonomous processes that run on the same physical computer and interact with each other by message passing 11 there is no single definition of a distributed system 13 but two common properties are generally cited there are several autonomous computational entities computers or nodes each of which has its own local memory 14 the entities communicate with each other by message passing 15 a distributed system may have a common goal such as solving a large computational problem 16 the user then perceives the collection of autonomous processors as a unit alternatively each computer may have its own user with individual needs and the purpose of the distributed system is to coordinate the use of shared resources or provide communication services to the users 17 other typical properties of distributed systems are the system must tolerate failures in individual computers 18 the structure of the system network topology network latency number of computers is not known in advance the system may consist of different kinds of computers and network links the system may change during the execution of a distributed program 19 each computer has a limited incomplete view of the system each computer may know only one part of the input 20 patterns edit here are common architectural patterns used for distributed computing 21 saga interaction pattern microservices event driven architecture client server architecture service oriented architecture soa publish subscribe pattern peer to peer p2p events vs messages edit in distributed systems events represent a fact or state change e g orderplaced and are typically broadcast asynchronously to multiple consumers promoting loose coupling and scalability while events generally don t expect an immediate response acknowledgment mechanisms are often implemented at the infrastructure level e g kafka commit offsets sns delivery statuses rather than being an inherent part of the event pattern itself 22 23 in contrast messages serve a broader role encompassing commands e g processpayment events e g paymentprocessed and documents e g datapayload both events and messages can support various delivery guarantees including at least once at most once and exactly once depending on the technology stack and implementation however exactly once delivery is often achieved through idempotency mechanisms rather than true infrastructure level exactly once semantics 22 23 delivery patterns for both events and messages include publish subscribe one to many and point to point one to one while request reply is technically possible it is more commonly associated with messaging patterns rather than pure event driven systems events excel at state propagation and decoupled notifications while messages are better suited for command execution workflow orchestration and explicit coordination 22 23 modern architectures commonly combine both approaches leveraging events for distributed state change notifications and messages for targeted command execution and structured workflows based on specific timing ordering and delivery requirements 22 23 parallel and distributed computing edit a b a distributed system c a parallel system distributed systems are groups of networked computers which share a common goal for their work the terms concurrent computing parallel computing and distributed computing have much overlap and no clear distinction exists between them 24 the same system may be characterized both as parallel and distributed the processors in a typical distributed system run concurrently in parallel 25 parallel computing may be seen as a particularly tightly coupled form of distributed computing 26 and distributed computing may be seen as a loosely coupled form of parallel computing 13 nevertheless it is possible to roughly classify concurrent systems as parallel or distributed using the following criteria in parallel computing all processors may have access to a shared memory to exchange information between processors 27 in distributed computing each processor has its own private memory distributed memory information is exchanged by passing messages between the processors 28 the figure on the right illustrates the difference between distributed and parallel systems figure a is a schematic view of a typical distributed system the system is represented as a network topology in which each node is a computer and each line connecting the nodes is a communication link figure b shows the same distributed system in more detail each computer has its own local memory and information can be exchanged only by passing messages from one node to another by using the available communication links figure c shows a parallel system in which each processor has a direct access to a shared memory the situation is further complicated by the traditional uses of the terms parallel and distributed algorithm that do not quite match the above definitions of parallel and distributed systems see below for more detailed discussion nevertheless as a rule of thumb high performance parallel computation in a shared memory multiprocessor uses parallel algorithms while the coordination of a large scale distributed system uses distributed algorithms 29 history edit the use of concurrent processes which communicate through message passing has its roots in operating system architectures studied in the 1960s 30 the first widespread distributed systems were local area networks such as ethernet which was invented in the 1970s 31 arpanet one of the predecessors of the internet was introduced in the late 1960s and arpanet e mail was invented in the early 1970s e mail became the most successful application of arpanet 32 and it is probably the earliest example of a large scale distributed application in addition to arpanet and its successor the global internet other early worldwide computer networks included usenet and fidonet from the 1980s both of which were used to support distributed discussion systems 33 the study of distributed computing became its own branch of computer science in the late 1970s and early 1980s the first conference in the field symposium on principles of distributed computing podc dates back to 1982 and its counterpart international symposium on distributed computing disc was first held in ottawa in 1985 as the international workshop on distributed algorithms on graphs 34 distributed computing architectures edit 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 processes running on those cpus with some sort of communication system 35 whether these cpus share resources or not determines a first distinction between three types of architecture shared memory shared disk shared nothing distributed programming typically falls into one of several basic architectures client server three tier n tier or peer to peer or categories loose coupling or tight coupling 36 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 architectures that move the client intelligence to a middle tier so that stateless clients can be used this simplifies application deployment most web applications are three tier 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 servers peer to peer architectures where there are no special machines that provide a service or manage the network resources 37 227 instead all responsibilities are uniformly divided among all machines known as peers peers can serve both as clients and as servers 38 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 relationship alternatively a database centric architecture can enable distributed computing to be done without any form of direct inter process communication by utilizing a shared database 39 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 40 cell based architecture edit 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 41 42 43 a cell typically consists of multiple services or application components and functions as an autonomous unit some implementations replicate entire sets of 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 44 45 46 some implementations employ 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 47 48 49 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 50 51 52 applications edit reasons for using distributed systems and distributed computing may include the very nature of an application may require the use of a communication network that connects several computers for example data produced in one physical location and required in another location there are many cases in which the use of a single computer would be possible in principle but the use of a distributed system is beneficial for practical reasons for example it can allow for much larger storage and memory faster compute and higher bandwidth than a single machine it can provide more reliability than a non distributed system as there is no single point of failure moreover a distributed system may be easier to expand and manage than a monolithic uniprocessor system 53 it may be more cost efficient to obtain the desired level of performance by using a cluster of several low end computers in comparison with a single high end computer examples edit examples of distributed systems and applications of distributed computing include the following 54 telecommunications networks telephone networks and cellular networks computer networks such as the internet wireless sensor networks routing algorithms network applications world wide web and peer to peer networks massively multiplayer online games and virtual reality communities distributed databases and distributed database management systems network file systems distributed cache such as burst buffers distributed information processing systems such as banking systems and airline reservation systems real time process control aircraft control systems industrial control systems parallel computation scientific computing including cluster computing grid computing cloud computing 55 and various volunteer computing projects distributed rendering in computer graphics peer to peer reactive distributed systems edit according to reactive manifesto reactive distributed systems are responsive resilient elastic and message driven subsequently reactive systems are more flexible loosely coupled and scalable to make your systems reactive you are advised to implement reactive principles reactive principles are a set of principles and patterns which help to make your cloud native application as well as edge native applications more reactive 56 theoretical foundations edit main article distributed algorithm models edit many tasks that we would like to automate by using a computer are of question answer type we would like to ask a question and the computer should produce an answer in theoretical computer science such tasks are called computational problems formally a computational problem consists of instances together with a solution for each instance instances are questions that we can ask and solutions are desired answers to these questions theoretical computer science seeks to understand which computational problems can be solved by using a computer computability theory and how efficiently computational complexity theory traditionally it is said that a problem can be solved by using a computer if we can design an algorithm that produces a correct solution for any given instance such an algorithm can be implemented as a computer program that runs on a general purpose computer the program reads a problem instance from input performs some computation and produces the solution as output formalisms such as random access machines or universal turing machines can be used as abstract models of a sequential general purpose computer executing such an algorithm 57 58 the field of concurrent and distributed computing stu...
|