日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2023/12/3 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大型布线: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 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

總結

以上是生活随笔為你收集整理的大型布线:Java云应用程序缺少的技术的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。