分布式架构接口设计技术

分布式架构接口设计技术
    马上咨询

    张逸  现为深圳大眼科技有限公司的首席架构师,联合创始人 

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

    课程⽬标

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

    课程特⾊

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

    培训计划

    分布式架构

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

    要了解分布式系统的接⼜编程技术,就需要了解分布式系统的特征、优势、发展历史与具体的分布式技术。

    从单机系统到分布式系统的架构变迁是与业务复杂度、技术复杂度和系统质量属性直接相关的。分布式系统可以利⽤更多的计算资源、存储资源与⽹络资源来满⾜系统的质量属性,使得分布式系统已经成为当今软件系统的事实标准。

    本部分内容从历史发展、技术原理、技术特征等多⽅⾯深⼊讲解分布式系统,内容包括:

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

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

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

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

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

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

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

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