大型布线:Java云应用程序缺少的技术

您是否曾经想过,为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务?

我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 (跳至第32分钟),这使我在云平台的背景下思考了这个问题。 主题演讲是关于Pivtol如何在新兴云平台市场中定位的极好的,深思熟虑的陈述。 他最有趣的观点之一是,随着移动和互连设备(通常称为物联网 )的激增,我们看到了一种新的应用程序类别,可以吸收,处理和分发大量数据。

幻灯片1

Maritz通过一些有用的轶事证据来突出他的讲话:一次跨大西洋飞行会产生将近30TB的数据,需要通过新型应用程序进行记录,处理和分析。

云织物

这些类型的应用程序不能有效地建立在传统的Java EE应用程序服务器体系结构上。 取而代之的是,它们将在高度适应性强的动态互连基础架构云结构上运行。

幻灯片2

云结构的动态性质对现有Java框架和容器提出了新要求。 例如,可以创建或迁移VM实例以满足不断增长的需求。 在此设置中,计算机(以及服务端点)的地址可能会更改。 这使得通常与Java EE应用程序服务器集群和消息代理相关联的静态体系结构难以管理和扩展

云结构基于硬件虚拟化构建,其中物理计算资源通过软件抽象。 需要将虚拟化扩展到Java编程模型的堆栈,以便可以更有效地运行应用程序。

Spring:服务虚拟化先驱

在这方面,Spring是早期的先驱。 它通过替换容器API来通过依赖关系注入来获取本地服务引用(JNDI),从而虚拟化了Java EE应用服务器的许多部分。 这样就可以在Java EE容器之外运行Spring应用程序代码,例如在单元测试中。

幻灯片3

随着云结构的普及,我们将看到有必要将Spring的接线功能扩展到大型分布式服务-接线。 正如应用程序不需要容器API来获取对本地服务的引用一样,它们也不需要API来调用远程服务或向端点发送消息。 如果将远程服务连接到应用程序代码,则结构基础架构可以在迁移或创建VM时透明地传播端点地址更改,以响应不断变化的工作负载:

幻灯片4

大型布线的另一个好处是通信 虚拟化。 应用程序代码不再依赖特定于传输的API发送消息或调用远程服务。 云结构负责将代码与管理通信的代理一起注入:

幻灯片5

这将允许云结构采用和调整最合适的消息传递技术,而无需更改代码级。 除了大大简化代码外,通信虚拟化还使生产更多可移植的云应用成为可能。

在实践中进行大接线

那么,大型布线在实际中是什么样的呢? 好消息是它的许多概念早于现代云计算的出现。 OASIS SCA标准为我们提供了一种简单而熟悉的方式来连接非常适合云结构的远程服务:

<composite name="LoanComposite" ...><component name="Client"><implementation.java class="org.fabric3.sample.client.ClientImpl"/><reference name="service" target="Service"/> </component><component name="Service"><implementation.java class="org.fabric3.sample.service.ServiceImpl"/></component></composite>

可以通过JMS,ZeroMQ,AMQP,MQTT或其他某种通信技术连接上述服务-取决于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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java cpu过高排查_涨薪秘籍:JAVA项目排查cpu负载过高

背景我负责的其中一个项目在空负载的情况下&#xff0c;CPU占用率依然保持着100%左右&#xff0c;线上、测试、开发的服务都一样&#xff1b;是什么导致的呢&#xff1f;在开发环境我查看了请求流量&#xff0c;这个流量可以忽略但CPU占用率一直在60%-100%之间浮动。分析问题流…

巧用css的border属性完成对图片编辑功能的性能优化

一、需求场景&#xff1a; 最近闲来无事&#xff0c;boss提出了一个要求&#xff0c;研究相关代码并完成一个关于编辑图片功能的性能优化&#xff0c;该功能的主要界面展示如下&#xff1a; 通过了几分钟的短暂试用&#xff0c;发现就是一个简单的裁剪并保存用户选择并上传的图…

求数的绝对值一定是正数_人教版初中数学七年级上册绝对值公开课优质课课件教案视频...

绝对值&#xff08;习题课&#xff09;导学案&#xff08;教师版&#xff09;【教学目标】1、能利用绝对值的性质求值。 2、通过复习绝对值&#xff0c;让学生对绝对值的理解更加深透。 3、通过复习&#xff0c;让学生掌握利用绝对值的代数和几何意义&#xff0c;并学会灵活运用…

使用Java EE安全性和JBoss AS 7.x保护JSF应用程序的安全

企业应用程序的常见要求是在登录页面后面保护所有JSF页面。 有时&#xff0c;您甚至希望在应用程序内部具有保护区&#xff0c;只有拥有特定角色的用户才能访问这些保护区。 Java EE标准附带实现受某些安全性约束保护的Web应用程序所需的所有方法。 在此博客文章中&#xff0c;…

java 十六进制转十进制_JAVA知识-分析JAVA中的重点和难点

Java中有很多内容在开发项目的过程中并不常用&#xff0c;但是却是很重要的部分&#xff0c;为了避免忘记&#xff0c;今天重新温习了一遍Java中的重点和难点&#xff0c;借此机会记录一下方便以后查找。本文主要分为以下几个部分&#xff1a;1.进制的相互转换2.Java中位运算符…

java运算符知识整理

赋值运算符: int a 0;a 2;System.out.println("a0"""".."a);int b 0;b2;System.out.println("b0""b2"".."b);int c 0;c-2;System.out.println("c0""c-2"".."c);int d 1;d*2;S…

开放才能进步!Angular和Wijmo一起走过的日子

Angular 已成为广受欢迎的前端框架。去年9月份&#xff0c;期待已久的 Angular2 的正式版发布之后&#xff0c;Angular 又迎来了新一轮热潮。伴随着 Angular 这一路走来&#xff0c;Wijmo 一直都是第一个全面支持各种版本 Angular 的JS控件库&#xff0c;为 Angular 用户提供着…

windows 检查cuda安装_Windows云主机GPU驱动-CUDA安装使用

IE安全相关配置如果打开浏览器无法正常下载&#xff0c;则需要设置Internet Explorer增强的安全配置。设置如下&#xff1a;打开"服务器管理器";点击"本地服务器"&#xff1b;"IE增强的安全配置"&#xff1b;选择"关闭"&#xff1b; 之…

镜像镜像–使用反射在运行时查看JVM内部

开发人员&#xff1a;Takipi会告诉您何时新代码在生产中中断– 了解更多 我们都习惯于在我们的日常工作中直接或通过利用反射的框架来运用反射。 它是Java和Scala编程的主要方面&#xff0c;它使我们使用的库可以与我们的代码进行交互&#xff0c;而无需对其进行硬编码的知识。…

UnicodeMath数学公式编码_翻译(Unicode Nearly Plain - Text Encoding of Mathematics Version 3)

目录 完整目录1. 简介2. 编码简单数学表达式2.1 分数2.2 上标和下标2.3 空白&#xff08;空格&#xff09;字符使用3. 编码其他数学表达式3.1 分隔符强烈推荐本文简明版UnicodeMath编码教程 本文为UnicodeMath官方文档的翻译&#xff0c;原文看这。翻译如有不准还请谅解&#x…

antd 表格树如何展开_如何分析工作,找出规律,使用excel大幅度提高工作效率...

在职场中&#xff0c;掌握一定的excel知识&#xff0c;有时候可以极大的提高工作效率&#xff0c;减少加班次数。但是有的人可能不知道如何去做&#xff0c;下面我使用一个我前几天遇到的工作场景&#xff0c;一步一步的来给大家展示一下&#xff0c;如何使用excel提高工作效率…

Wijmo 更优美的jQuery UI部件集:复合图表(CompositeChart)

Wijmo的CompositeChart控件允许您使用一个Chart来分析和展现复杂的数据。相同的数据可以使用不同的可视化效果&#xff0c;不同的图表类型展现在一个图表内&#xff0c;使得用户可以从不同的角度&#xff0c;了解分析这组数据所表达的内容 。 本文将介绍如何使用Wijmo的Composi…

广联达2018模板算量步骤_广联达gtj2021实操案例,新增6大板块,快速提高算量效率...

对于从事造价行业的朋友来说&#xff0c;广联达软件是我们最经常用到的软件&#xff0c;不仅是因为广联达软件能够在提高工作效率&#xff0c;主要还是现在大数据下&#xff0c;广联达软件可以做到更精准、零失误广联达软件更新的也比较快&#xff0c;广联达GTJ2021版已经更新出…

WPF中元素拖拽的两个实例

WPF中元素拖拽的两个实例 原文:WPF中元素拖拽的两个实例今天结合之前做过的一些拖拽的例子来对这个方面进行一些总结&#xff0c;这里主要用两个例子来说明在WPF中如何使用拖拽进行操作&#xff0c;元素拖拽是一个常见的操作&#xff0c;第一个拖拽的例子是将ListBox中的子元素…

使用vert.x 2.0,RxJava和mongoDB创建simpe RESTful服务

中断了将近半年后发表了一篇新文章。 在本文中&#xff0c;我们将快速了解如何开始使用vert.x&#xff0c;更有趣的是&#xff0c;如何使用RxJava简化异步系统的编程。 我们将涵盖以下主题&#xff1a; 使用Maven创建一个空的vert.x项目 导入IntelliJ并创建一个简单的HTTP服务…

搭建react native所遇到的坑

一、所遇问题 在搭建react native环境中,遇到执行react native run-android命令出现如下问题 1 Could not resolve all dependencies for configuration :classpath. 2 > Could not resolve com.github.dcendents:android-maven-gradle-plugin:3.1.4 3 Required b…

sqlalchemy mysql_使用SQLAlchemy操作MySQL

SQLAlchemy是Python编程语言下的一款开源软件&#xff0c;提供了SQL工具包及对象关系映射(ORM)工具&#xff0c;使用MIT许可证发行。SQLAlchemy首次发行于2006年2月&#xff0c;并迅速地在Python社区中最广泛使用的ORM工具之一&#xff0c;不亚于Django的ORM框架。本文将介绍如…

使用phpstorm+wamp实现php代码实时调试审计

转载自&#xff1a;https://www.bugbank.cn/q/article/5853afaffc0bf4f010ee6ac3.html php调试有N多好用的工具&#xff0c;最近研究到phpstorm配合wamp实现php实时断点调试相当不错&#xff0c;推荐给大家&#xff0c;网上有各种配置版本&#xff0c;但没有一个能好使的。本文…

如何使用Play框架为https配置SSL证书

我花了数小时试图使它起作用&#xff0c;最后&#xff0c;问题是我自己没有使用keytool生成CSR&#xff08;证书请求&#xff09;。 尝试通过https访问Play时&#xff0c;我一直收到此错误&#xff1a; javax.net.ssl.SSLPeerUnverifiedException&#xff1a;对等方未通过身份…

js页面加载前执行_做一名合格的前端开发工程师:Javascript加载执行问题探索

做前端开发少不了各种利器。比如我习惯用的还是Google浏览器和重型武器Fiddller。一&#xff1a;原始情况 首先大家看看如下的代码&#xff1a;估计90%的程序员都会把js文件放在head中&#xff0c;但是大家有没有深究过呢&#xff1f;很多浏览器都会使用单一的线程来做“界面UI…