zoukankan      html  css  js  c++  java
  • 分布式系统——什么是分布式

    原文链接

    Why Distribute?

    • resource sharing

    • physical separation

    • robustness

    • performance

    • cost-effective system evolution

    Examples

    • file server, print server, etc.

    • networked management

    • directory and naming services

    • desktop (multimedia) conferences

    • large-scale computation

    • etc.

    Why are DSs Different?

    • non-zero (and variable) message transmission time

    1. • processors executing in parallel
    2. • multi-path links between them
    3. • same message may arrive at different times at different processors
    4. • possibility of “race” situations, i.e. nondeterminism in algorithm execution (or bugs)
    5. • consistency of data at different sites

    • probability of partial failure of collaborating components

    1. not a concept found in single processor programs
    2. • recovery from failures
      1. – use of alternative processor
      2. – migration of services
      3. – update and propagation of naming/routing information
    3. Fault tolerant algorithms
      1. – leadership elections
      2. – distributed synchronisation

    • large scale

    1. • Abstraction
    2. • Inheritance/object orientation

    • environment is not totally secure

    1. computer hosts may be protectable via architecture and OS etc.
    2. • ... but link is very vulnerable to
      1. – tapping/message reply
      2. – hosts faking addresses
    3. • ... and hosts vulnerable to
      1. – deliberate message overload
      2. – faked services

    Distributed Programming

    • Remote Procedure Call
      1. common approach
      2. • client-server model
      3. • caller’s arguments are marshalled by “stubs”, put in a packet and sent to remote proc.
      4. • problems with memory addresses
        1. - need args to be sent by “value”
      5. • execution semantics when failure
        1. – at-least-once (cheap and easy but ...)
        2. – at-most-once (relatively easy)
        3. – exactly once (expensive protocol)
      6. • how is server located?
        1. – name server based on type matching
        2. – trader includes other attributes e.g. location of device, options, etc.
        3. – version management too
      7. parameter security
        1. – may need to pass encryption keys or other security tokens as parameters
      8. • Interface Definition Language (IDL)
        1. – indicates type and order of parameters
        2. – signature for matching in name server
        3. – possibly security indication for stubs
    • Real World
      1. often termed “Middleware”
      2. • support by environments such as DCE, CORBA etc.
    • Transparency
      1. is desirable, but may not be achievable:
        • – distribution - effects of distribution (delays etc.) should be invisible to user
        • – location - location of components should be irrelevant
        • – migration - remote objects may relocate during use
        • – failure - recovery from faults
    • Security
      1. Use of cryptographic techniques to deal with:
        1. • secrecy
        2. • authentication of individuals and messages
        3. • replay and faking attacks
        4. • can also provide access control to object methods
  • 相关阅读:
    黄聪:电子商务关键数字优化(线上部分,上)
    黄聪:Wordpress如何在主题模板中调用菜单?
    黄聪:WordPress for SAE在Windows下使用SVN部署代码
    黄聪:Ubuntu下使用低版g++编译器编译TSE
    黄聪:如何使用WordPress 2.9内置文章缩略图功能(Post Thumbnail)
    黄聪:相关词句采集与分析研究
    黄聪:JQuery鼠标放上后链接平滑移动效果WordPress插件
    黄聪:TSE分析及完全注释[6] 倒排索引的建立的程序分析(转)
    黄聪:buffer overflow detected问题解决及gcc4.1安装
    黄聪:VMware安装Ubuntu10.10【图解】转
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/11284391.html
Copyright © 2011-2022 走看看