课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
响应式网页的出现主要是因为用户访问网络的终端设备越来越多样化,而今天我们就一起来了解一下,响应式应用程序都有哪些特点。
响应性
响应式应用程序必须像用户界面的功能需求一样具备响应性。这些功能需求包括实时用户界面的功能需求,实时用户界面允许多个用户同时执行重叠的编辑操作。而且,即使出现故障,响应性也必须仍然存在。通过被观察者和观察者模型可以实现响应性;被观察者和观察者模型是指当系统发生改变时,系统有能力通知对该改变感兴趣的一方或多方。该模型需要使用能够根据用户消耗资源的数量进行调整的事件流和可视化模型,而不是使用根据业务操作调整的系统模型。
韧性
应用程序拥有故障恢复的能力。响应式应用程序通过监督较低层级的响应式组件来预测故障情况。这种模式拥有异步操作边界,而且能够将故障具体化为消息,并通过重要的专用消息通道发送[Read-Write]。监督者会被赋予对被监督组件的故障做出回应的能力。正确的回应可能是彻底停止故障组件,也可能是重新启动故障组件,还可能是通过忽略故障原因来命令故障组件继续运行。监督者甚至可以选择使本身失效,从而使它的监督者能够选择上述恢复操作之一。
这种方式倾向于将故障隔离在它们出现的应用程序区域中,从而使程序员能够以对症下药的方式处理它们。同时这还能够保护应用程序的其他组成部分,避免故障以连锁反应的方式影响一个或多个不相关的应用程序区域。
灵活性
每当我们思考可伸缩性时,总是会横向或纵向扩展思考范围。纵向可伸缩性可以通过添加拥有更多中央处理器(CPU)的高性能计算机实现,每台计算机都拥有多核处理器(如IntelXeonPhi处理器)和大量的内存。横向可伸缩性可以通过添加多台提供日常服务的服务器实现,每台服务器都应拥有中等性能的CPU(如一块或两块Inteli7QuadCore4700HQ处理器)。
当然,为了满足特定的可伸缩性需求,也可以同时使用这两种扩展方式。但从实践的观点看,灵活性比可伸缩性更为重要,因为灵活性还意味着通过调整满足当前应用程序的需求。也就是说,可能需要在非高峰时间通过调整使用较少的计算资源。不论增加计算资源还是减少计算资源,你编写的软件都应该全天候提供与预期相符的响应性。灵活性能够提供这项支持,因为灵活性意味着根据需求进行调整,这种调整方式是响应性的核心。
响应式组件的消息驱动特性和它们的位置透明性都为根据需求调整应用程序提供了帮助,即实现了应用程序的灵活性。
消息驱动
系统组件仅会在收到消息时做出回应,所以系统能够使用可用线程运行应用程序中必须立刻对消息做出回应,当前没有正在对消息做出回应的组件不会占用宝贵的CPU资源。消息的类型包括命令消息、文档消息和事件消息。响应式应用程序中的组件会通过异步消息传递模式,接收其他组件发送的消息,所以能够自然而然地降低各种组件之间的接口和时间耦合性。响应式组件能够选择以独立方式对每条消息做出回应的方式,所以它们能够做好接收预期内消息的准备工作。这就进一步降低了发送消息组件和接收消息组件接口的耦合性,因为客户端无须知道发送消息的次序。响应式组件本身是小型的类似原子的单元,而且它们在同一时刻仅会对一条异步消息做出回应,所以它们能够排除所有锁策略。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。