• 分布式系统——什么是分布式


    原文链接

    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
  • 相关阅读:
    spark定制之五:使用说明
    ElasticSearch-5.0安装head插件
    安卓真机或者模拟器运行安装应用时提示 Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]解决办法
    Elasticsearch介绍和安装与使用
    AndroidFine Error:Annotation processors must be explicitly declared now.
    Retrofit全攻略——进阶篇
    WCF基础教程之开篇:创建、测试和调用WCF
    SoapUI简介和入门实例解析
    postman的使用方法详解!最全面的教程
    Postman使用详解
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/11284391.html
Copyright © 2020-2023  润新知