手机站:/m

用云服务器-Delphix会话协议

时间:2021-01-08 23:17编辑:淘客樊里来源:淘客樊里当前位置:主页 > 云主机 >

问题陈述在低级抽象(如socket)上编写玩具应用程序很简单;编写一个具有容错性、快速性、可伸缩性和安全性的企业级分布式应用程序则绝非易事。造成复杂性的核心是网络固有的各种故障模式,无论是连接丢失、客户端和/或服务器重启、静默数据损坏或安全攻击等等。应用程序开发人员不能只关注"业务逻辑",而是不得不花费不成比例的精力来解决应用程序协议设计本身的"网络问题"。即使对经验丰富的协议设计者来说,这通常也是一个缓慢而反复的过程。NFSv4.1和iSCSI就是很好的例子,在组合协议规范中有超过1000页,其中相当一部分专门讨论与文件或块访问没有直接关系的问题。例如,必须在客户机和服务器应用程序之间建立会话,以便发出远程操作。会话管理是一项复杂的任务,涉及端点识别、身份验证、可选参数协商、连接和会话恢复、优雅终止等等。这通常是在具有复杂状态机的特定协议的上下文中解决的,这些状态机既晦涩又难以正确(参见RFC 3720,第5-7节)。另一个例子涉及取消未完成的远程操作的功能。对于那些希望在长时间运行的操作过程中保持控制或在出现长时间网络中断时保持响应的应用程序来说,这是至关重要的。不幸的是,这通常是协议设计中的事后考虑,如果不是完全忽略的话。当加入到协议中时,由于它与数据路径的交互作用,它很可能很复杂并且容易出错。与其一次又一次地为每个应用程序解决相同的问题,不如在较低的级别上一劳永逸地解决这些问题,不是很好吗?这种共同的基质将"驯服"网络,使问题在它们甚至冒出之前就得到解决。这就是Delphix会话协议的用武之地。。。概述Delphix Session Protocol,简称DSP,是一种在OSI模型中的会话和表示层运行的通信协议。DSP在互联网分配号码管理局正式注册,服务名称为dlpx sp,端口号为8415。在该协议之上是一个基于java的服务框架,具有以下特性。全双工远程操作执行和端到端取消支持基于连接中继和有序交付的高级连接模型具有自动连接和会话恢复功能的故障恢复能力,只需一次语义,以及可选的数据摘要具有并发执行、会话流控制、可选数据压缩和带宽调节的高性能内置安全支持,支持可插拔的SASL身份验证机制和可选的TLS加密会话管理和远程操作的异步模型上面的大多数特性对于分布式应用程序的正确操作是必不可少的,但是实现起来却很重要。通过在框架中提供它们,我们可以显著简化企业级分布式应用程序的开发。关键概念DSP的基础是建立在一些关键抽象之上的,即交换、任务、Nexus和服务。对于DSP如何工作以及它提供的特性的概述,让我们从这些抽象开始。交换是指应用程序定义的协议数据单元,它可以是请求或响应。DSP支持请求-响应模式进行通信。对于发送的每个请求,都有一个相应的响应,该响应描述执行的结果。应用协议由一组交换组成。nexus(又称session)是指客户端和服务器应用程序之间的逻辑管道。相反,传输连接(又称连接)指的是"物理"链路。nexus有一个独立于连接的命名方案,这使得它可以独立于物理基础设施而被唯一持久地标识。nexus的生命周期与连接不同。它首先建立在一个主要的连接上。在它出现之后,可以添加新的连接,删除现有的连接。它必须至少有一个连接才能继续工作,但即使在所有连接丢失后也可以继续工作。Nexus生命周期管理操作(如创建、恢复和销毁)始终由客户端启动,服务器保持被动状态。nexus有双通道,即前通道和后通道。前向通道用于从客户端向服务器发起的请求;后向通道用于从服务器到客户端的请求。从请求执行的角度来看,nexus是全双工的,信道在功能上是相同的,对每个信道可以独立协商的操作参数进行模块化。通道支持许多用于请求处理的特性,例如有序传递、并发执行、远程取消、仅一次语义和吞吐量调节。服务是指由应用协议中定义的所有交换(包括请求和相应的响应)组成的契约。考虑到DSP中请求执行的全双工性质,一部分服务由服务器完成,其余部分由客户端完成,客户端和服务器从nexus管理的角度来看是这样的。任务实现的工作流通常涉及在nexus上以任意一个或两个方向执行的多个请求。任务是一个自包含的构建块,以可共享模块的形式提供,包括协议交换和实现,可以很容易地集成到其他应用协议中。任务库可以使分布式应用程序开发更像是一种组装体验,从而大大简化分布式应用程序开发。下面是一个图表,它说明了关键的抽象以及它们是如何相互关联的。应用在DSP上编写应用程序是一个相当简单的过程。虽然最好用一个例子来说明,但我想把它推迟到将来的博客文章中。取而代之的是,我将在这里概述几个主要步骤。首先,我们将从应用程序协议设计开始。应用协议定义了客户机和服务器应用程序之间的交互顺序,并由一组交换组成。每个交换都是一个包含属性列表的java类。交换的内容及其发送顺序是特定于应用程序的。从一组交换中,一个将派生出两个java接口,一个用于客户机,另一个用于服务器,每个接口都有一组远程操作。这两个协议接口共同构成了分布式应用程序实现的服务契约。接下来,将提供服务合同的实现。具体来说,客户端实现协议客户端接口;服务器实现协议服务器接口。这就是应用程序的"业务逻辑"所在。最后,我们将在DSP上支持应用服务。在服务器端,可以创建一个具有唯一服务类型的应用服务器实例,并将其注册到DSP运行时。在客户端,可以创建一个具有唯一客户机ID的应用程序连接器实例,并将其注册到DSP运行时。这些样板类充当应用程序和DSP运行时之间的代理。它们的尺寸很小,但在所需的协议特性方面高度可定制。摘要总之,DSP旨在通过将应用程序的"业务逻辑"与底层的"网络问题"分离,简化分布式应用程序的开发。它在框架中解决了框架中的大多数"网络问题",从而使应用程序开发人员只需关注"业务逻辑"。这是向将本地应用程序开发经验引入分布式环境的重要一步。

上一篇大数据与应用-勒索软件在一致性方面与之匹配

下一篇武汉大数据-10,9,8,7….快照任务!

养花知识本月排行

养花知识精选