关于网络设计服务结构的一些理解

  WebService 是iOS网络应用的根本所在,灵活性和健壮性会对用户的体验产生极大的影响。设计良好的服务API可以适应变化的后端数据源,同时为依赖他的应用提供不变的门面。服务定位器可以使应用能够动态探测到新的服务端点并使用他们,从而无须重新编译并重新向AppStore重新提交应用。如果必须提交,一般是大规模的改动,属于整个应用生命周期的一部分。不妨碍新版本怎增加新的特性,那么支持版本化的服务API就显得尤为重要。

一、远程门面模式

  远程门面可以简化应用集成,并且可以让多个客户端共享相当的应用逻辑。比如,邮政系统,包括大量的邮递员、卡车、飞机、配送中心和邮局,然而用户所需的大多数数任务都将这种复杂性隐藏起来,只包含邮寄信件与接收包裹。用户只需要单独的知道如何寄邮件就可以了,并不需要知道是怎么寄过去的。类似,API也可以将多个数据库查询或是后端系统请求抽象对象为一个单独的外部访问方法,只要门面的的外部API契约保持不变,底层系统可以随便变化、升级而不给门面的客户端造成影响。

  假如有家银行与竞争对手合并了,该银行的现有的账户迁移到竞争对手的账户存储系统中。合并数据之后,远程门面可以切换新的数据源,转换与API契约不匹配的任何数据,然后返回给应用,用户并不知道后面发生了什么事情。契约编程,他能保证网络会话的两端遵循之前达成一致的输入和输出契约。只要契约依然有效,那么后端系统无论是重写还是移植都不会给另一端发生影响。

二、服务版本化

  门面需要将所有可能的客户端应用版本组合到兼容性桶当中,然后为每个桶分配正确的API版本供其使用。为了简化未来的开发,请求高于门面所知道的最大版本号的客户端版本选择好的默认值,通常是最近用的API版本。

三、服务定位器

  服务定位器是一个帮助应用动态探测远程源API端点的工具,它可以解决应用硬编码的无效或不存在的端点问题。开发者还可以通过服务定位器将之前发布的应用重新制定可用的新服务。

  实现了服务定位器模式的任何客户端的第一个动作通常都是加载并解析文件。由于所有的网络调用都需要端点,而端点只位于文件中,因此在任何其它的网络动作发生之前必须要解析该文件。当应用返回到前台以确保端点和数据最新时,定位器文件也应该进行更新。应用可以停留在后台状态中一段时间,他之前可能加载了一个服务定位器文件。通常情况下,当服务定位器加载时,应用会显示启动画面。从而不影响用户体验。

总结:

  灵活的服务架构需要在应用的第一个版本发布之前经过精心的规划与实现,这样能获得最大的收益。如果某个版本采用了硬编码的端点或者业务逻辑,那么可以有效的支持该配置,即便业务发生了巨大变化也是如此。通过远程门面、API版本化与服务定位器的融合,可以从用多种方式来改变已发布应用的业务逻辑与API设置。现在,产品代码做细微的修改,以及在新版本中增加主要的新特性而无须破坏之前的应用版本已经变的很容易了。之前的服务器基础设施的开发代价来也能没有必要,不过随着应用的逐渐变大,就会带来收益。

时间: 2024-08-09 20:08:44

关于网络设计服务结构的一些理解的相关文章

ISCSI网络存储服务

ISCSI网络存储服务 一.理论部分 iSCSI的概念 iSCSI,即internetSCSI,是IETF制订的一项标准,用于将SCSI数据块映射为以太网数据包.从根本上说,它是一种基于IP Storage理论的新型存储技术,该技术将存储行业广泛应用的SCSI接口技术与IP网络技术相结合,可以在IP网络上构建SAN.简单地说,iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术.iSCSI技术最初由Cisco和IBM两家开发,并且得到了广大IP存储技术爱好者的大力支持,这几年得到迅速的发

架构设计中服务层的简单理解

如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 在ddd设计中我们经常会提到服务层,服务层是什么?职责是什么?有什么好处?. 先看简单的层次图(注:这里并没有考虑其他多余的领域逻辑数据层存储,或者UOW这些细节) 我的理解是服务层是处于我的应用程序业务层和表现层之间的应用程序边界,边界可能是很薄的一层类设计或者是分布式服务网络跃点.它是一个与技术无关的名词.由表现层直接调用,契约,执行命令(修改状态(CUD))或者是查询返回dto(数据迁

CSS基础(1) - 设计代码结构

本章内容: 设计代码结构 有意义的文档的重要性 命名约定 什么时候使用ID和类名 微格式 HTML CSS的不同版本 文档类型 DOCTYPE切换和浏览器模式 1.类名区分大小写 2.类名的过度依赖 3.DIV和SPAN DIV是有语义的代表division.他可以将文档分为几个有意义的区域. SPAN 可以将行内元素分组 4.微格式 概念:源自网络 微格式按照某种已有的被广泛应用的标准,通过对内容块的语义标记,可以让外部应用程序.聚合程序和搜索引擎能够做以 下事情: 在爬取Web内容时,能够更

Cloud Foundry中warden的网络设计实现——iptable规则配置

在Cloud Foundry v2版本中,该平台使用warden技术来实现用户应用实例运行的资源控制与隔离. 简要的介绍下warden,就是dea_ng如果需要运行用户应用实例(本文暂不考虑warden container提供staging打包环境),则发送相应请求给warden server,由warden server来创建warden container,并在warden container内部运行应用实例,而warden container的具体实现中使用cgroups等内核虚拟化技术,

抓包简单分析英雄联盟的网络设计

我抓包肤浅的分析了下LOL的网络设计. 先说观察到的一些现象: A)协议基于UDP B)采用纯C/S模型(无C2C过程), C)99% 包大小length小于576bytes,最大1038bytes.(100%小于1500bytes) D)发包的频率是平均0.017s 然后一一的分析: A)协议基于UDP不用多说 B)对MOBA这类强调微操作的游戏来讲,对英雄角色之间的影响巨大,对同步的要求高,玩家任何操作的不一致性都会带来很差的体验. 但网络的延迟是绝对的,对这里的同步我的理解是只要在在玩家反

centos 6.5环境利用iscsi搭建SAN网络存储服务及服务端target和客户端initiator配置详解

一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网

基于网络文件共享服务的双机数据同步方法

前几年我开发过一个软件系统,为使用者提供7×24小时不间断的服务.为了确保服务质量,采用了双机热备的形式.双机系统能够正常工作的关键技术之一,就是主备机之间的数据同步.下面介绍的数据同步方法是以网络文件共享服务为基础实现的,简单易行,安全可靠,在当时时间紧.任务重.投资有限的情况下,应用效果比较理想. Windows网络文件共享服务 在Windows系统环境中,一台计算机可以作为服务器向局域网中的其它计算机(客户机)提供“文件共享服务”.通过这项服务,客户机用户能够像访问本地文件一样通过网络对服

集群,分布式,微服务概念和区别理解

集群,分布式,微服务概念和区别理解 2018年02月04日 01:19:12 竹上 阅读数:18684 概念: 集群是个物理形态,分布式是个工作方式. 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 1:分布式是指将不同的业务分布在不同的地方.而集群指的是将几台服务器集中在一起,实现同一业务. 分布式中的每一个节点,都可以做集群.而集群并不一定就是分布式的. 举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同

ZOJ1372 POJ 1287 Networking 网络设计 Kruskal算法

题目链接:ZOJ1372 POJ 1287 Networking 网络设计 Networking Time Limit: 2 Seconds      Memory Limit: 65536 KB You are assigned to design network connections between certain points in a wide area. You are given a set of points in the area, and a set of possible