成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

OSGI是什么

本篇內(nèi)容介紹了“OSGI是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。

初識 OSGI

背景

當(dāng)前product是以solution的方式進(jìn)行售賣,但是隨著公司業(yè)務(wù)規(guī)模的快速夸張,隨之而來的是新客戶的產(chǎn)品開發(fā),老客戶的產(chǎn)品維護(hù),升級以及修改bug,團(tuán)隊的效能明顯下降,為了解決此類問題,必須站在公司戰(zhàn)略的統(tǒng)一高度來重構(gòu)系統(tǒng)。

榮幸的是,本人在此時加入團(tuán)隊并負(fù)責(zé)系統(tǒng)架構(gòu)的升級與重構(gòu)工作。因為公司在全世界都有客戶,而且客戶又來自于各行各業(yè),帶來的問題就是如何抽離公共業(yè)務(wù)的同時,又能不影響客戶的定制化需求開發(fā)?產(chǎn)品團(tuán)隊專注于系統(tǒng)的核心邏輯開發(fā),而一些定制化需求交付給global team 去開發(fā)?

選型

技術(shù)沒有銀彈,目前沒有完全確定要使用OSGI的方式來實現(xiàn),因為本人之前使用Spring Cloud & Spring Cloud Alibaba各實現(xiàn)了一種demo, 當(dāng)然也可以實現(xiàn)我們的服務(wù)化,高可用以及動態(tài)擴(kuò)展。但是在解決插件定制化這塊,相對來說還是不太熟悉,然后OSGI進(jìn)入眼簾了。

OSGI 簡介

OSGI 是 <u>O</u>pen <u>S</u>ervice <u>G</u>ateway <u>I</u>nitiative(開發(fā)服務(wù)網(wǎng)關(guān)協(xié)議)。

  • 指維護(hù)OSGI規(guī)范的官方聯(lián)盟

    > OSGi Alliance是一個由Sun Microsystems、IBM、愛立信等于1999年3月成立的開放的標(biāo)準(zhǔn)化組織,最初名為Connected Alliance。

  • 官方聯(lián)盟維護(hù)的基于JAVA語言的服務(wù)規(guī)范

    > 該規(guī)范和核心部分是一個框架,其中定義了應(yīng)用程序的生命周期模式和服務(wù)注冊?;谶@個框架定義了大量的OSGi服務(wù):日志、配置管理、偏好,HTTP(運(yùn)行servlet)、XML分析、設(shè)備訪問、軟件包管理、許可管理、星級、用戶管理、IO連接、連線管理、Jini和UPnP。

osgi.org 官方描述:

> The Dynamic Module System for JAVA

通俗講:使用OSGI實現(xiàn)的程序(Bundle)就是一個插件,可以動態(tài)的安裝,卸載,啟動,停止等等而不需要啟動容器。

目前使用最廣的兩款OSGI 框架:

  • Apache Felix

    > Apache Felix是Apache旗下的一個OSGi框架,項目本身非常成熟,已經(jīng)被用到了很多其他的項目中,例如Apache Servicemix。它本身提供的服務(wù)也是最全的,幾乎涵蓋了全部的OSGi 4.2的標(biāo)準(zhǔn)。除此之外還提供了一些非標(biāo)準(zhǔn)的功能,例如iPOJO??蚣鼙旧矸浅>o湊,你只需要3個包加一個shell就可以運(yùn)行了,無論是開發(fā)還是Debug都非常簡便。除了Felix,還有兩個項目是和OSGi相關(guān)的。一個是Apache Felix Karaf,它本身是Felix的一個子項目,但他其實是封裝了Felix提供更高一層的Runtime,例如提供了JAAS。另一個是Apache Aries,目前還處于起步階段,它作為Felix的補(bǔ)充,提供OSGi企業(yè)級規(guī)范,包括JPA、JDBC、JTA、JNDI等等。

  • Equinox

    > Equinox是Eclipse旗下的OSGi框架,本身也被Eclipse采用,是Eclipse注明的PDE開發(fā)環(huán)境的底層。Equinox本身也是相當(dāng)?shù)娜娴目蚣?,提供的功能不比Felix少多少。但是它功能的分類就稍顯混亂,文檔和Sample也組織的不是很好。事實上相當(dāng)Equinox還是被當(dāng)做開發(fā)Eclipse Plugin的應(yīng)用較多,如果你要開發(fā)一個Web程序,你就會感到它本身的功能和文檔不夠全面。Equinox最大的優(yōu)勢在于它和Eclipse結(jié)合緊密,只要你安裝了PDE,你就已經(jīng)有了Equinox,可以方便的在Eclipse里設(shè)置你開發(fā)的Bundle,啟動、部署等操作也異常簡單,而且有專門的Debug界面,你還能要求什么呢? > > 如果你想基于Eclipse開發(fā),Equinox無疑是好選擇。但對于新手而言,有時候會搞混Eclipse Plugin與OSGi的關(guān)系。

Talk is cheap, Show me the code.

環(huán)境安裝

Eclipse 版本

> 因本人好幾年沒使用Eclipse, 因此帶上安裝再熟悉一下哈。。。

  • 訪問:https://www.eclipse.org/downloads/ 下載客戶端 OSGI是什么

選擇企業(yè)版之后,下一步 OSGI是什么

點擊INSTALL,等待安裝完成。

創(chuàng)建項目
  • File => New => Project OSGI是什么

  • 選擇Plug-in Development => Plug-in Project OSGI是什么

  • 填寫項目屬性(OSGI framework 選擇 standard)

OSGI是什么

  • 點擊Next(關(guān)注Activator,這個會處理OSGI的start() 和 stop()時調(diào)用,相當(dāng)于我們的main函數(shù)) OSGI是什么

  • 點擊Next(選擇Hello OSGI) OSGI是什么

  • 點擊 Finish

    OSGI是什么

配置環(huán)境
  • 選擇 Run => Run Configurations OSGI是什么

  • 選擇OSGI Framework,右鍵點擊New Configration

    OSGI是什么

  • 選擇Bundles(因為默認(rèn)創(chuàng)建會選擇全部Target Platform,在Eclipse IDE 2019?09版本下,直接啟動會報錯。所以取消所有的選項,只勾選以下就個必須的bundle就足夠。)

    OSGI是什么

  • 點擊Validate Bundles 驗證我們的配置項是否正確。

    OSGI是什么

    如果顯示如上消息,恭喜你,可以點擊Run啟動OSGI console 啦?。?!

OSGI Console 啟動

OSGI是什么

IDEA 版本

IDEA也帶有OSGI 開發(fā)工具包,let's do it.

配置Framework

這里我選擇的是Eclipse Equinox 4.13,download傳送門 ,點擊下載[equinox-SDK-4.13.zip],下載完成之后開始配置。

  • IDEA(version: ULTIMATE 2019.2) => File => Settings (搜索OSGI,如下圖)

    OSGI是什么

  • 點擊 + 添加,選中上一步下載的SDK解壓目錄

    OSGI是什么

  • 添加成功后,選擇OSGI 標(biāo)簽,選擇OSGI framework 為我們配置的Equinox.

    OSGI是什么

    > import Bnd/Bndtools projects automatically 指的是將普通的jar包 打包 為OSGI 可用的jar.

創(chuàng)建項目
  • 點擊File => New => Project, 選擇Java標(biāo)簽下的OSGI

    OSGI是什么

  • 選擇Use Library,點擊Create

    OSGI是什么

    找到org.eclipse.osgi_3.15.0.v20190830-1434.jar,選中,效果如下,點擊下一步。

    OSGI是什么

  • 填寫項目屬性

    OSGI是什么

    點擊Finish。

    OSGI是什么

    如上圖所示,IDEA 創(chuàng)建的不會幫助我們生成Activator以及Manifest.mf文件。

OSGI Console 啟動
  • 點擊Run => Edit Configurations

    OSGI是什么

  • 點擊 + ,選擇OSGI Bundles,添加核心bundles

    OSGI是什么

  • 運(yùn)行(ss 為查看OSGI運(yùn)行狀態(tài)命令)

    OSGI是什么

Eclipse與IDEA開發(fā)OSGI,主要是manifast文件的生成過程存在比較大的差異。

“OSGI是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站標(biāo)題:OSGI是什么
鏈接地址:http://jinyejixie.com/article0/gdpdio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、定制開發(fā)、品牌網(wǎng)站建設(shè)、服務(wù)器托管、手機(jī)網(wǎng)站建設(shè)網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
宽城| 平顶山市| 蒙阴县| 惠东县| 龙山县| 临猗县| 望谟县| 嘉义县| 卫辉市| 都安| 石首市| 鸡泽县| 东台市| 永昌县| 依兰县| 胶南市| 莒南县| 遂昌县| 依兰县| 甘德县| 全州县| 安图县| 勐海县| 如东县| 阿勒泰市| 伊金霍洛旗| 屏南县| 马龙县| 桓台县| 安塞县| 宁都县| 夹江县| 勃利县| 赫章县| 历史| 方城县| 华蓥市| 晋宁县| 察隅县| 常熟市| 鱼台县|