珠宝首饰网站模板,做一款小说网站,网站系统维护要多久,wordpress微信号订阅布线问题分支限界法java您是否曾经想过#xff0c;为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务#xff1f; 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 #xff08;跳至第32分钟#xff09;#xff0c;这使我在云平台的背景下… 布线问题分支限界法java 您是否曾经想过为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 跳至第32分钟这使我在云平台的背景下思考了这个问题。 主题演讲是关于Pivtol如何在新兴的云平台市场中定位的出色且经过深思熟虑的陈述。 他最有趣的观点之一是随着移动和互连设备通常称为物联网 的激增我们看到了一种新的应用程序类别可以吸收处理和分发大量数据。 Maritz用一些有用的轶事证据突出了他的讲话一次跨大西洋飞行产生了将近30TB的数据需要通过新型应用程序进行记录处理和分析。 云织物 这些类型的应用程序不能有效地建立在传统的Java EE应用程序服务器体系结构上。 取而代之的是它们将在高度适应性强的动态互连基础架构云结构上运行。 云结构的动态性质对现有Java框架和容器提出了新要求。 例如可以创建或迁移VM实例以满足不断增长的需求。 在此设置中计算机以及服务端点的地址可能会更改。 这使得通常与Java EE应用程序服务器集群和消息代理相关联的静态体系结构难以管理和扩展 云结构基于硬件虚拟化构建其中物理计算资源通过软件抽象。 需要将虚拟化扩展到Java编程模型的堆栈以便可以更高效地运行应用程序。 Spring服务虚拟化先驱 Spring是这方面的早期先驱。 它通过替换容器API来通过依赖关系注入来获取本地服务引用JNDI从而虚拟化了Java EE应用服务器的许多部分。 这样就可以在Java EE容器之外运行Spring应用程序代码例如在单元测试中。 随着云结构的普及我们将看到有必要将Spring的接线功能扩展到大型分布式服务-接线。 正如应用程序不需要容器API来获取对本地服务的引用一样它们也不需要API来调用远程服务或向端点发送消息。 如果将远程服务连接到应用程序代码则架构基础结构可以在迁移或创建VM时透明地传播端点地址更改以响应不断变化的工作负载 大型布线的另一个好处是通信 虚拟化。 应用程序代码不再依赖特定于传输的API发送消息或调用远程服务。 云结构负责将代码与管理通信的代理一起注入 这将使云结构能够采用和调整最合适的消息传递技术而无需更改代码级。 除了大大简化代码外通信虚拟化还使生产更多可移植的云应用成为可能。 在实践中进行大接线 那么大型布线在实际中是什么样的呢 好消息是它的许多概念早于现代云计算的出现。 OASIS SCA标准为我们提供了一种简单且熟悉的方式来连接非常适合云架构的远程服务 composite nameLoanComposite ...component nameClientimplementation.java classorg.fabric3.sample.client.ClientImpl/reference nameservice targetService/ /componentcomponent nameServiceimplementation.java classorg.fabric3.sample.service.ServiceImpl//component/composite 可以通过JMSZeroMQAMQPMQTT或某些其他通信技术连接上述服务-取决于SCA运行时或部署配置来选择一种。 应用程序代码将相同 public class ClientImpl implements Client {Referenceprotected Service service;public void doSomething() {Message message ...service.send(message); }} Fabric3运行时一致的SCA实现以我们上面讨论的方式提供了透明的动态端点传播。 下一步是什么 目前Fabric3对大型布线的支持要求将应用程序部署到Fabric3容器中。 Fabric3社区正在努力消除这一限制以便可以从任何JVM或Java运行时以无所不在的方式访问云服务。 这是一个例子 Fabric fabric Bootstrap.initialize();
fabric.start();Domain domain fabric.getDomain();Service service domain.getService(Service.class);
Message message ...
service.send(message);fabric.stop(); 该API可以集成到诸如Spring和Guice之类的框架中以提供透明的远程服务注入。 基本上应用程序代码将不再需要处理特定的传输API或者对于Spring则不再需要处理模板。 **** 回到Maritz的大规模消费处理和分发数据的下一代应用程序的画面大型布线有望起到与本地依赖注入在公司数据中心中对Java EE所做的现代化作用。 如果您想进一步了解可能的技术请查看Fabric3 。 参考 大型接线我们的JCG合作伙伴 Jim Marino在服务机器博客上提供的Java云应用程序缺少的技术 。 翻译自: https://www.javacodegeeks.com/2013/12/wiring-in-the-large-the-missing-technology-for-java-cloud-applications.html布线问题分支限界法java