现代 Java 企业应用程序的实现
1. 通信行为的一致性
在企业应用开发中,通信的同步或异步行为应根据业务需求保持一致。通常,应避免混合使用同步和异步行为。例如,以同步方式包装包含异步逻辑的服务是不合理的,因为调用者会被阻塞直到异步过程完成,这会影响整个功能的扩展性。
不过,在某些情况下,使用异步通信来封装长时间运行的同步过程是有意义的,比如与无法更改的外部系统或遗留应用程序进行交互。客户端组件会在单独的线程中连接到系统,使调用线程能够立即继续执行。客户端线程可以选择阻塞直到同步过程完成,或者使用轮询机制。
目前有许多通信协议和格式可供选择,其中 HTTP 是应用最广泛的通信协议。它易于理解,并且有很好的工具支持。
2. 同步 HTTP 通信
企业系统内的大多数同步通信是通过 HTTP 实现的。企业应用会暴露 HTTP 端点供客户端访问,这些端点通常以 Web 服务或基于 HTTP 的 HTML 前端形式存在。
Web 服务的设计和规范有多种方式。最简单的形式是通过网络调用另一个系统的函数,需要指定输入和输出值。在 J2EE 时代,这种远程过程调用(RPC)通常通过 HTTP 实现,使用 XML 格式指定参数,例如 SOAP 协议(基于 JAX - WS 标准实现)。但 SOAP 协议及其 XML 格式使用起来比较繁琐,并且除了 Java 和 .NET 外,其他语言对其支持不佳。
如今,REST 架构风格及其概念和约束被更广泛地使用。
2.1 表征状态转移(REST)
REST 由 Roy T. Fielding 提出,它为 Web 服务提供了一种架构
超级会员免费看
订阅专栏 解锁全文
13万+

被折叠的 条评论
为什么被折叠?



