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