分(fēn)布式架构接口设计技术

分(fēn)布式架构接口设计技术
    马上咨询

    张逸  现為(wèi)深圳大眼科(kē)技有(yǒu)限公司的首席架构师,联合创始人 

    先后就职于中兴通讯、惠普GDCC、中软國(guó)际、ThoughtWorks等大型中外企业,任职角色為(wèi)高级软件工程师,架构师,技术总监,首席咨询师。精通包括C#、Java、Ruby、Scala、Python、JavaScript等多(duō)种语言,熟练掌握面向对象思想、领域驱动设计、函数式语言、架构、大数据分(fēn)析、敏捷与过程改进,并致力于大型软件企业的面向服務(wù)系统架构设计以及互联网Web系统架构设计。在ThoughtWorks期间,作為(wèi)一名咨询师,主要為(wèi)客户提供组织的敏捷转型、过程改进、系统架构监理(lǐ)、领域设计、代码质量提升等咨询工作。目前,作為(wèi)公司产品的架构师,致力于商(shāng)业智能(néng)产品与大数据分(fēn)析平台的开发与架构设计。

    课程⽬标

    从IT技术的历史发展⾼屋建瓴地介绍分(fēn)布式系统的技术变迁,并以RPC、消息中间件、Web服務(wù)、REST為(wèi)主,结合通⽤的接口设计原则与模式,讲解分(fēn)布式系统的接口设计技术。

    课程特⾊

    从架构层⾯与技术底层原理(lǐ)着⼿进⾏讲解,使得培训學(xué)员能(néng)够知其然,更能(néng)知其所以然,深⼊掌握接口设计的基本原则与模式,并应⽤到实际⼯作中。让學(xué)员知道如何评价什么是良好的接口,如何设计良好的接口,如何调⽤已经公开发布的接口。

    培训计划

    分(fēn)布式架构

    单机系统与分(fēn)布式系统的架构有(yǒu)着天壤之别,在接口设计上,⼆者遵循的基本原则虽然相同,但设计者要考虑的要素却完全不同。技术实现的机制可(kě)能(néng)直接影响接口的设计思路。

    要了解分(fēn)布式系统的接⼜编程技术,就需要了解分(fēn)布式系统的特征、优势、发展历史与具體(tǐ)的分(fēn)布式技术。

    从单机系统到分(fēn)布式系统的架构变迁是与业務(wù)复杂度、技术复杂度和系统质量属性直接相关的。分(fēn)布式系统可(kě)以利⽤更多(duō)的计算资源、存储资源与⽹络资源来满⾜系统的质量属性,使得分(fēn)布式系统已经成為(wèi)当今软件系统的事实标准。

    本部分(fēn)内容从历史发展、技术原理(lǐ)、技术特征等多(duō)⽅⾯深⼊讲解分(fēn)布式系统,内容包括:

    • 什么是分(fēn)布式系统
    • 分(fēn)布式系统的优势
    • 分(fēn)布式系统存在的问题
    • 常⽤分(fēn)布式技术
      • 进程间通信技术:如Socket通信
      • 结构化通信技术:RPC
      • 中间件技术:消息中间件、Web Service、REST
    接口设计原则与模式

    确定组件(中间件、服務(wù))的接口是软件项⽬中⾮常重要的活动。接口应当清楚地反映组件(中间件、服務(wù))的职责和使⽤协议,為(wèi)客户端提供有(yǒu)意义的服務(wù),并且让客户端避免由于组件实现的变动和升级⽽受到影响。

    接口设计遵循“⾼内聚低耦合”这个最普适的设计原则,也要满⾜“信息隐藏”的设计思想。⽆论是否分(fēn)布式系统,最基本的设计原则是完全⼀样的;但是,分(fēn)布式系统更多(duō)考虑了服務(wù)与客户端的通信,因⽽在接口设计上需要考虑的因素会更多(duō)。

    本部分(fēn)内容会从架构层⾯上全⾯介绍基本的设计原则与模式,并结合分(fēn)布式架构的⾓度讲解与分(fēn)布式系统有(yǒu)关的接口设计原则。内容包括:

    • 信息隐藏与⾃治
    • 分(fēn)布式分(fēn)层架构
    • 团队合作模式与通信集成模式
    • 接口设计的原则
    • 接口设计的模式
    分(fēn)布式通信的接口设计

    虽然在设计接口时,应从调⽤者(消费者)的⾓度考虑,并尽量遵循“信息隐藏”设计原则,以考虑通信的接口契约為(wèi)主;但接⼜的设计始终还是会受到实现技术的直接影响。例如,Web Service与REST的设计理(lǐ)念与原理(lǐ)有(yǒu)极⼤的差别,带来了接口设计上的很(hěn)⼤不同:Web Service是⾯向服務(wù)⾏為(wèi)的,⽽REST则是⾯向资源的。

    因⽽,在介绍了基本的接口设计原则与模式之后,我们还要结合具體(tǐ)的分(fēn)布式通信技术讲解接口设计技术。本部分(fēn)内容会从四个⽅⾯分(fēn)别讲解接口设计技术,其中还包括介绍相关的分(fēn)布式框架:

    • RPC的接口设计
    • 消息中间件的接口设计
    • Web Service的接口设计
    • REST的接口设计