开发分布式软件系统时,要考虑许多因素。 如果您甚至不知道第一句话中我在说什么,那么让我为您提供一些见解,示例以及有关分布式系统的实例。

总览

分布式系统是指多个物理硬件设备与单独的离散用户交互并通过这些硬件设备协作以为这些离散的单独用户实现不同且相似的目标。 有时,这些设备使用服务器作为集线器以点对点模式工作,以了解彼此之间的连通性,而其他设备则通过单个或一组集中式服务器进行协作和协调,例如

类似于Extranet之类的系统,供方用户通过Web浏览器审阅文档,然后在其浏览器中单击工作流,最终将文档传真给另一组用户,这些用户应提供带有足够标签(即带有条形码)的服务。 这个循环使一个封闭的系统能够为其设计和开发分布式软件。 传真的接收者填写并做任何需要作为他们纸本世界的一部分的事情(包括随着时间的推移接收许多传真并将它们全部寄回,这是另一篇有关电子签名的博客文章的案例) 。 接收到的原始传真接收服务器将接收到的传真图像“交给”另一组用户(甚至是发起出站传真的相同用户)进行整理和处理,以在接收下对其进行检查和处理再次在他们的浏览器中进行工作流程。

在这里,您有许多系统在数据中心内协同工作以实现不同的目标。 您有一些用于用户界面的Web服务器。 用于工作流系统,分析和报告的某些数据持久性层。 您有用于管理传入/传出传真传输的传真服务器(我自己喜欢Dialogic Brooktrout传真板, http://www.dialogic.com/Products/fax-boards-and-software/fax-boards.aspx )。 您具有入站和出站标签,标记,排序规则,扫描和对象字符识别组件(通常,根据设计,几个不同的服务器可能并不一定每个都是单独的实例,而取决于规模可能只有六个左右)。

所有这些组件下面的结构在所有这些组件之间都是一致的。 这始于OSI层,因为首先和大多数分布式系统是通过约束的物理层连接的,所以让我们从这里开始。

物理层约束

OSI层有7层或9层,具体取决于您与谁交谈。 在某些团队中,第8层和第9层分别是政治和宗教,因为必须考虑围绕设计,开发,部署和维护这些系统的所有交互作用的社会结构,方法论和人类行为。 如果您不满意,那么您的应用程序层用户体验也可能会出错。 第1-7层(较常见的层,通常是更好理解的层)对计算机如何通过用户或计算机的界面以及通过另一计算机或另一用户的另一计算机界面的数据移动方式进行分类。 如果没有重构或在这些层中创建新软件,您将永远无法在基础层之外做任何事情。 因此,很高兴知道它们是如何工作的。 您可以在自己的软件程序编写工作中做到这一点(请,请相当高兴),以更好地平衡处理约束。

http://fab.cba.mit.edu/classes/MIT/961.04/people/neil/ip.pdf的图30-1映射了Internet协议套件的许多协议及其对应的OSI层。

软件在硬件设备中继续的位置

最重要的是本地机器硬件的操作系统及其实现。 我很难选择真正属于底层架构的许多或任何其他层或系统,具体取决于您的托管提供商,而最终托管人是卖方,因此也将是另一回事……除非他们运行通过open编写的软件您已经完成了源项目工作,但我离题了…… Linux编程接口:Linux和UNIX系统编程手册是我喜欢Linux的资源。

怎么办?

在过去的九年中,由于廉价(有时便宜)的商品硬件已成为我们预见的现实,因此许多经典计算机概念已变得更容易实现。 这使得并行和分布式计算平台,分布式文档和键/值存储,分布式发布/订阅经纪人,发布者和消费者系统,甚至具有不可变结构的参与者模式也开始成为该结构的一部分。 这里的难题是这些市场领域的竞争和起步阶段,甚至还没有“ 跨越鸿沟 ”。

现在,说了这么多……有一个突出之处。 “ ZooKeeper提供了正确性和协调性的关键点,这些要点必须比所有想要固有地构建到其自己的关键逻辑中的系统都具有更高的交易保证。” 卡米尔·富妮尔(Camille Fournier)在她的一篇博客文章中让我看到了这一点, 网址为http://whilefalse.blogspot.com/2013/05/zookeeper-and-distributed-operating.html?spref=tw ,这是因为Zookeeper是如何与许多此类动物联系在一起的现有类型的系统。 由于这些系统尚未在市场上成熟(到目前为止,它已经与较早采用者充分地成熟了),因此它们之间和内部存在一些一致性,因此我们必须开始(从字面上)研究,支持和承诺。

现在,关于Zookeeper的另一个好处是,已经开发了一个开放源代码库,并且(在所有条件都相同的情况下)不断维护该开放源代码库,使开发Zookeeper开发的可重复模式更加容易http://curator.incubator.apache.org/ 。 如果您从未使用过Zookeeper,建议您从http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html开始。

参考:来自JCG合作伙伴 Joe Stein的分布式系统开发注意事项 ,位于All Things Hadoop博客上。

翻译自: https://www.javacodegeeks.com/2013/06/distributed-system-development-considerations.html

分布式系统开发注意事项相关推荐

  1. 分布式系统开发注意点_分布式系统开发注意事项

    分布式系统开发注意点 开发分布式软件系统时,要考虑许多因素. 如果您甚至不知道第一句话中我在说什么,那么让我为您提供一些见解,示例以及有关分布式系统的实例. 总览 分布式系统是指多个物理硬件设备与单独 ...

  2. 分布式系统开发注意点_分布式系统注意事项

    分布式系统开发注意点 by Shubheksha 通过Shubheksha 分布式计算概述:分布式系统如何工作 (Distributed Computing in a nutshell: How di ...

  3. 分布式系统开发的一些相关理论基础——CAP、ACID、BASE

    本文主要讲述分布式系统开发的一些相关理论基础. 一.ACID 事务的四个特征: 1.Atomic原子性 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全 ...

  4. Zynq的AMP开发注意事项之sdk_repo

    目录 前言 1.BSP工程说明 第一步:创建BSP工程,选择硬件平台.cpu核和支持的OS 第二步:BSP工程设置 (1)版本+库文件选择 (2)standalone配置 (3)drivers支持 ( ...

  5. PHP 接口开发注意事项

    PHP 接口开发注意事项 PHP 接口开发注意事项 预先定义接口流程和逻辑,确认需求 在开发前首先确定流程,复杂的接口可以绘制流程图,并确保流程与需求一致: 使用统一的变量定义 无论是SDK还是Ser ...

  6. java分布式系统开发_从微服务到分布式系统-Java开发人员生存指南

    java分布式系统开发 感觉像是对微服务的炒作正在慢慢地落到实处,并且我们的行业开始意识到,根据微服务背后的体系结构范式无法通过仅在现有组件之上公开一些HTTP接口来轻松创建一个系统. . 我们似乎确 ...

  7. 嵌入式软件开发注意事项一

    嵌入式软件开发注意事项一 1.首先对测试板进行各方面硬件性能的测试:电源测试,时钟测试等等.要确保硬件最基本的几个性能是正常的,否则后面真的无法进行软件的开发,因为如果你没有确保硬件的正确性,那么后面 ...

  8. WP7开发平台介绍及开发注意事项【WP7学习札记之二】

    Windows Phone是一个由微软制作并发行的触控操作模式行动操作系统,它的前身是Windows Mobile系统,但却与之完全不同. WP7系统架构: Windows Phone 7基于Wind ...

  9. 分布式系统开发实战:分布式存储,分布式存储常用技术

    分布式存储 互联网每天产生数以亿计的数据,这些数据如何能够被正确地存储.解析.利用,是摆在每个数据公司面前的挑战.传统的关系型数据库,对于处理大规模的数据显得力不从心,由此以NoSQL为代表的分布式存 ...

最新文章

  1. python函数式编程模式_函数式编程指引
  2. RabbitMQ学习总结(5)——发布和订阅实例详解
  3. python免费试听-哈尔滨Python人工智能课程免费试听
  4. C++11实战——多线程的日志类
  5. CSS属性display:inline-block使用揭秘
  6. mac安装opencv
  7. x86 linux 裁剪过程中能正常跑起来的必要配置项
  8. http --- 混合加密的具体过程
  9. 快速查找文件的工具Everything
  10. Cocos2dx源码记录(6) CCTrianglesCommand
  11. 思科精睿系列交换机被曝高危漏洞,仅修复部分产品
  12. 04-树6 Complete Binary Search Tree(30 分)
  13. JavaScript的Function 类型
  14. 序号-element-序号根据页数和行数计算
  15. 30天自制操作系统-2
  16. 通过串口给ESP8266发送AT指令连接wifi的注意事项
  17. oracle裁员原因_甲骨文中国裁员 部分员工不满补偿方案
  18. Unity 3D 泰课网小球移动 相机跟随
  19. 江苏大学计算机考研上岸分享
  20. 使用hbase来解决上亿条数据的准实时响应

热门文章

  1. java内部类选择题_java内部类详解(附相关面试题)
  2. java多表查询返回数据_spring data jpa如何在多张数据库表中查询返回某些字段值?...
  3. linux-basic(8)linux磁盘与文件系统管理
  4. tomcat(1)一个简单的web server
  5. java –cp_Java –缺少字体–崩溃的应用程序!
  6. 将json绑定为对象_了解自定义对象创建:JSON绑定概述系列
  7. sun jdk 与jdk_Sun过去的世界中的JDK 11和代理
  8. 机器学习java_如何开始使用Java机器学习
  9. jpa语法错误_JPA陷阱/错误
  10. java中集合选取怎么选_集合中的可选