《PHP精粹:编写高效PHP代码》——3.2节面向服务的架构

简介:

本节书摘来自华章社区《PHP精粹:编写高效PHP代码》一书中的第3章,第3.2节面向服务的架构,作者:(美)  Davey Shafik,更多章节内容可以访问云栖社区“华章社区”公众号查看

3.2 面向服务的架构
SOA(Service-Oriented Architecture,面向服务的架构)是在各种PHP应用程序中日益得到普及的方法。它是基于一个服务层的系统,提供系统需要的所有功能,但这个服务提供的是应用层,并未链接到表现层。这样,多种系统就可以使用这个相同模块化、可重复使用的功能了。
例如,你可以写一个服务层,接着website和几个移动设备应用程序都来使用服务层,同时我们允许第三方对它集成。
这个系统架构可能最终看起来如图3.1所示。


117da946a637f12caa42637c8bc307e6d5645462

SOA方法允许我们使用、测试,以及强化(harden)应用服务层的代码,并且轻松地在其他地方使用它。当代码被强化,即表明代码已经使用了一段时间,因此我们对它的性能和稳定性拥有足够的信心。既然有了整齐、模块化的健壮性服务层,我们便可将代码用于应用程序的基础,而且人们日益视之为最优方法。
你到底如何构造系统有待探讨,还有SOA方法的大量完美实现,同样值得探讨。通常,MVC方法应用于服务层,我们也看到本章的一些示例中使用了这种方式。顶层的项目将使用不同构建方式,这样工作使我们可以轻易在不同的平台上构建各种不同的独立元素。
也许SOA方法的最大优势在于它是模块化的方法,它非常适合我们正在构建的庞大而复杂的系统。以这种方式构建的系统易于缩放,你可以在系统的不同部分根据系统的负荷以不同的比率缩放它们。当我们发展应用平台到云操作系统时,SOA理所当然在今后的应用中帮助我们。
现在我们继续向前看看使用Web服务的一些技术细节。

相关文章
|
5天前
|
存储 前端开发 关系型数据库
在服务的数据驱动中使用三层架构
【6月更文挑战第17天】 三层架构是软件设计中的一种经典模式,将应用分为表示层(UI)、应用层(BLL)和数据层(DAL)。相比于双层架构,三层架构提供了更好的模块化和安全性。多层架构虽少见,但三层架构在现代云原生技术中依然重要,常与微服务结合使用。
22 2
在服务的数据驱动中使用三层架构
|
9天前
|
存储 数据处理 数据库
理解在服务架构中的事件驱动
【6月更文挑战第14天】网络架构和软件设计常基于ISO七层模型和三层应用架构,强调数据处理的重要性。事件驱动架构(EDA)以事件为中心,改变传统设计方式,解决系统问题。事件是触发通知或状态变化的操作,如用户下单。EDA适用于微服务通信、工作流程自动化、SaaS集成和基础设施自动化等场景,提高系统敏捷性和可扩展性。然而,EDA并非万能,需根据需求选择合适的设计方案。
64 1
理解在服务架构中的事件驱动
|
10天前
|
监控 安全 自动驾驶
基于java+单体服务 + 硬件(UWB定位基站、卡牌)技术架构开发的UWB室内定位系统源码 UWB定位技术 超宽带定位 高精度定位系统源码
基于java+单体服务 + 硬件(UWB定位基站、卡牌)技术架构开发的UWB室内定位系统源码 UWB定位技术 超宽带定位 高精度定位系统源码
25 3
|
11天前
|
前端开发 JavaScript 安全
微前端架构采用 TypeScript 提升开发效率和代码可靠性
【6月更文挑战第12天】微前端架构采用 TypeScript 提升开发效率和代码可靠性。TypeScript 的类型安全防止了微前端间的类型错误,智能提示与自动补全加速开发,重构支持简化代码更新。通过定义公共接口和使用 TypeScript 编写微前端,确保通信一致性与代码质量。在构建流程中集成 TypeScript,保证构建正确性。总之,TypeScript 在微前端架构中扮演关键角色,推荐用于大型前端项目。
39 4
|
9天前
|
数据库 SQL 存储
使用合理的架构保障服务的韧性
【6月更文挑战第14天】 该文介绍了软件韧性的概念和目标,强调了主从模式在确保业务连续性中的作用。主从模式通过全同步、半同步和异步技术保证数据一致性和系统可用性。这种模式常用于读写分离,缓解数据库负载,是保障业务韧性的常见策略。
70 0
使用合理的架构保障服务的韧性
|
11天前
|
消息中间件 运维 监控
微服务架构中的服务通信与数据一致性挑战
在微服务架构的海洋中,服务之间的通信和数据一致性问题犹如潜藏的暗礁和漩涡,随时可能威胁到整个应用的健康运行。本文将深入探讨微服务间通信机制的选择、数据一致性维护的策略,以及面对网络延迟和分区容忍性时如何保持系统的灵活性和健壮性。通过分析常见的模式和最佳实践,旨在为开发者提供一套应对这些挑战的航海图。
|
16天前
|
缓存 网络协议 算法
微服务架构之从类库到服务之服务发现
服务发现是分布式系统中的核心技术,其实现需要在可用性和一致性之间进行权衡。通过合理设计服务注册中心的架构,并采用有效的健康检查和缓存机制,可以提高系统的可靠性和可用性。不同的服务发现框架各有优缺点,选择适合的框架需要根据具体需求进行权衡和取舍。总之,服务发现的有效实现对于构建可靠的大型分布式系统至关重要。
14 3
|
23天前
|
Cloud Native 算法 程序员
代码与禅意:编程中的哲学思考构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第30天】 在数字世界的繁花似锦之下,编程不仅仅是一种技能,更是一场关于逻辑、美学和哲学的深刻对话。本文将探讨编程过程中所体现出的哲学理念,从禅宗的角度出发,揭示代码背后蕴含的深层次意义。我们将一同走进程序员的内心世界,体会在面对复杂问题时,如何通过冥想般的编码实践,达到问题解决的顿悟。
|
27天前
|
PHP 数据库 开发者
PHP中的异常处理:提升代码稳定性的关键
【5月更文挑战第27天】在软件开发中,异常处理是一种重要的错误管理技术。它允许开发者优雅地处理运行时出现的错误,而不是让程序崩溃。本文将深入探讨PHP中的异常处理机制,包括异常的基本概念,如何抛出和捕获异常,以及如何使用自定义异常类。通过理解和应用这些概念,开发者可以编写出更健壮、更稳定的代码。
|
13天前
|
消息中间件 存储 监控
通过将大型应用拆分成一系列小型、独立的服务,微服务架构为后端开发带来了更高的灵活性、可扩展性和可维护性
【6月更文挑战第10天】本文探讨了构建高效微服务架构的后端开发最佳实践。微服务的核心原则是服务独立、去中心化、自治和轻量级通信,优势在于可扩展性、独立性、技术灵活性和团队协作。实践中,应注意服务的拆分粒度,选择合适的通信协议(如RESTful、RPC、消息队列),处理数据一致性与分布式事务,实施服务治理和监控,以及确保安全性与权限控制。未来,微服务将结合服务网格、容器化和云原生技术,持续发展和优化。
20 0