The design philosophy of distributed programming systems : the Mozart experience

Distributed programming is usually considered both difficult and inherently different from concurrent centralized programming. It is thought that the distributed programming systems that we ultimately deploy, in the future, when we've worked out all the details, will require a very different pr...

Full description

Bibliographic Details
Main Author: Brand, Per
Format: Doctoral Thesis
Language:English
Published: KTH, Elektronik- och datorsystem, ECS 2005
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-232
id ndltd-UPSALLA1-oai-DiVA.org-kth-232
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-kth-2322013-01-08T13:06:40ZThe design philosophy of distributed programming systems : the Mozart experienceengBrand, PerKTH, Elektronik- och datorsystem, ECSStockholm : KTH2005InformationsteknikInformation technologyInformationsteknikDistributed programming is usually considered both difficult and inherently different from concurrent centralized programming. It is thought that the distributed programming systems that we ultimately deploy, in the future, when we've worked out all the details, will require a very different programming model and will even need to be evaluated by new criteria. The Mozart Programming System, described in this thesis, demonstrates that this need not be the case. It is shown that, with a good system design, distributed programming can be seen as an extended form of concurrent programming. This is from the programmer's point-of-view; under the hood the design and implementation will necessarily be more complex. We relate the Mozart system with the classical transparencies of distributed systems. We show that some of these are inherently on the application level, while as Mozart demonstrates, others can and should be dealt with on the language/system level. The extensions to the programming model, given the right concurrent programming base, are mainly concerned with non-functional properties of programs. The models and tuning facilities for failure and performance need to take latency, bandwidth, and partial failure into account. Other than that there need not be any difference between concurrent programming and distributed programming. The Mozart Programming System is based on the concurrent programming language Oz, which integrates, in a coherent way, all three known concurrency or thread-interaction models. These are message-passing (like Erlang), shared objects (like Java with threads) and shared data-flow variables. The Mozart design philosophy is thus applicable over the entire range of concurrent programming languages/systems. We have extracted from the experience with Mozart a number of principles and properties that are applicable to the design and implementation of all (general-purpose) distributed programming systems. The full range of the design and implementation issues behind Mozart are presented. This includes a description of the consistency protocols that make transparency possible for the full language, including distributed objects and distributed data-flow variables. Mozart is extensively compared with other approaches to distributed programming, in general, and to other language-based distributed programming systems, in particular QC 20100928Doctoral thesis, comprehensive summaryinfo:eu-repo/semantics/doctoralThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-232Trita-IMIT. LECS, 1651-4076 ; 05:04application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Doctoral Thesis
sources NDLTD
topic Informationsteknik
Information technology
Informationsteknik
spellingShingle Informationsteknik
Information technology
Informationsteknik
Brand, Per
The design philosophy of distributed programming systems : the Mozart experience
description Distributed programming is usually considered both difficult and inherently different from concurrent centralized programming. It is thought that the distributed programming systems that we ultimately deploy, in the future, when we've worked out all the details, will require a very different programming model and will even need to be evaluated by new criteria. The Mozart Programming System, described in this thesis, demonstrates that this need not be the case. It is shown that, with a good system design, distributed programming can be seen as an extended form of concurrent programming. This is from the programmer's point-of-view; under the hood the design and implementation will necessarily be more complex. We relate the Mozart system with the classical transparencies of distributed systems. We show that some of these are inherently on the application level, while as Mozart demonstrates, others can and should be dealt with on the language/system level. The extensions to the programming model, given the right concurrent programming base, are mainly concerned with non-functional properties of programs. The models and tuning facilities for failure and performance need to take latency, bandwidth, and partial failure into account. Other than that there need not be any difference between concurrent programming and distributed programming. The Mozart Programming System is based on the concurrent programming language Oz, which integrates, in a coherent way, all three known concurrency or thread-interaction models. These are message-passing (like Erlang), shared objects (like Java with threads) and shared data-flow variables. The Mozart design philosophy is thus applicable over the entire range of concurrent programming languages/systems. We have extracted from the experience with Mozart a number of principles and properties that are applicable to the design and implementation of all (general-purpose) distributed programming systems. The full range of the design and implementation issues behind Mozart are presented. This includes a description of the consistency protocols that make transparency possible for the full language, including distributed objects and distributed data-flow variables. Mozart is extensively compared with other approaches to distributed programming, in general, and to other language-based distributed programming systems, in particular === QC 20100928
author Brand, Per
author_facet Brand, Per
author_sort Brand, Per
title The design philosophy of distributed programming systems : the Mozart experience
title_short The design philosophy of distributed programming systems : the Mozart experience
title_full The design philosophy of distributed programming systems : the Mozart experience
title_fullStr The design philosophy of distributed programming systems : the Mozart experience
title_full_unstemmed The design philosophy of distributed programming systems : the Mozart experience
title_sort design philosophy of distributed programming systems : the mozart experience
publisher KTH, Elektronik- och datorsystem, ECS
publishDate 2005
url http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-232
work_keys_str_mv AT brandper thedesignphilosophyofdistributedprogrammingsystemsthemozartexperience
AT brandper designphilosophyofdistributedprogrammingsystemsthemozartexperience
_version_ 1716509201310679040