① 如何使用 Maven 開發OSGI web bundle
你好。
根悶敬據你的描述:
web bundle 我的實現方法是在OSGi中加入一個jetty bundle,其岩罩族他bundle引用這個HttpService,並把粗弊自己加入到這個HttpService中。
② GlassFish是什麼基於OSGi的Web伺服器
GlassFish 是一個輕量級的Web2.0開發和部署平台,建立在基於OSGi的模塊化架構上。開發者可以從這個支持動態擴展和可嵌入式的平台上獲益,此平台還支持現存的Java Web技術,以及JRuby和Groovy。GlassFish包括哪些功能?GlassFish提供了一個基於OSGi的輕量級可擴展的核心。與GlassFish的更新中心結合,開發人員可以獲得Java Web技術,動態語言支持,容易使用的管理和命令行界面。GlassFish社團正在開發一個免費,開源的Java應用伺服器。這個伺服器實現了Java平台中的最新特性。Java平台包括一些技術的最新版本如:◆Enterprise JavaBeans (EJB) 3.0, ◆JavaServer Faces (JSF) 1.2, ◆Servlet 2.5, ◆JavaServer Pages (JSP) 2.1, ◆Java API for Web Services (JAX-WS) 2.0, ◆Java Architecture for XML Binding (JAXB) 2.0, ◆Java Persistence 1.0, ◆Common Annotations 1.0, ◆Streaming API for XML (StAX) 1.0和其它一些新的技術。目前最新版的GlassFish技術預覽版已經發布,具有高度模塊化特點,擴展方便,支持java,
③ osgi web應用 怎樣部署
從Equinox下載完整的eclipse-equinox-<buildno>.zip 二進制文件框架。本文中的示例代碼在版本3.3下進行測試。
解壓縮下載的文件,保存到你的計算機上。本示例將使用目錄 C:\software。
在你的計算機上建立一個目錄,命名為 C:\equinox (或對於你的操作系統等同的目錄)。
從 C:\software 將下面的JAR文件復制到 C:\equinox:
org.eclipse.osgi_<version>.jar
④ Virgo的Java 應用伺服器
2007年末作為「SpringSource Application Platform」啟動,很快改名為「SpringSource dm Server」。
SpringSource dm Server的三個基本目標:
· 提供一個更好的OSGi平台 · 支持Java EE應用向OSGi的平滑過渡(簡化遷移) · 自身是晌芹模塊化和可擴展的
2008年末dm Server1.0發布;
2009年末dm Server2.0發布,引入了獨立的kernel;
2010年1月Springsource將dm Server貢獻給Eclipse基金會,改名為Vrigo;
之後Virgo經歷了2.1版本和3.0版本,其中3.0開始支持Jetty和snaps框架;
2012年3月,發布首散Virgo 3.5版本,引入了p2,以及從kernel中分離出了「Nano」。 · Web管理控制台:還記得OSGi生命周期管理的API嗎?基於這些API你可以自己實現一個控制台,Virgo給你提供了一個Web界面,你點點滑鼠就可以部署和管理bundle了。當然,Virgo的控制台還提供了其他一些額外的信息,比如診斷性的mps,這對於調試是非常有幫助的。
· Gogo shell :這是apche felix項目下的一個子項目,Virgo給集成過來了,也是用於部署和管理bundle的,這回不是Web界面了,而是通過SSH或者telnet。
· Plans - 這是Virgo在bundle基礎上引入的一個概念,你可以看成是多個bundle的一個集合,這些bundle構成一個整體,因此也引入了作用域,和其他的bundle隔離開來了。 · 供應(Provisioning) - 自動從本地或者遠程的倉庫中提供系統所依賴的bundle、plan、pars和配置。這些都是Virgo中的製品模型,後面會有介紹。
· Web伺服器 - 實現了OSGi Web Container規范,還記得OSGi企業規范宴芹畢吧,這是其中的一部分。支持原始的WAR格式,當然更支持WAB格式了。這樣一個伺服器對於將OSGi應用到Web開發中來實在是太有用了。如果你有基於OSGi HttpService來開發過Web應用的經歷你就更有體會了。
· 用戶空間(User region)- Virgo引入這一概念用來將用戶安裝的應用和Virgo的內核隔離開來。這使得開發者只需關注於應用本身的製品和依賴,不需要關注內核中的東西。 此外Virgo還集成Spring 3,提供了強大的日誌功能、JMX管理功能以及Web應用的熱部署功能。
⑤ 如何將OSGI的Bundle發布為WebService
貌似使用 cxf可以將osgi服務發布為一個webservice, 見:以 OSGi 包的形式開發和部署 Web 服務
⑥ 數據可視化的web前端開發採用什麼樣的架構比較合適
web前端分為網頁設計師、網頁美工、web前端開發工程師
首先網頁設計師是對網頁的架構、色彩以及網站的整體頁面代碼負責
網頁美工只針對UI這塊兒的東西,比如網站是否做的漂亮
web前端開發工程師是負責交互設計的,需要和程序猿進行交互設計的配合。
web前端需要掌握的有腳本技術javascript DIV+CSS現下最流行的頁面搭建技術,ajax和jquery以及簡單的後端程序等。 後端的話可供開發的語言有 asp、php、jsp、.NET 這些後端開發語言的話搭建環境都不一樣,具體如果自己想學的話看是想從事前端部分還是後端程序部分。後端開發如果有一定的條件的話可以轉為軟體開發。不過要有一定的語言基礎,類似java語言。C#等。關鍵是看自己的興趣愛好。。
這個到後期不會區分這么細,做前端到後期也會懂一些後端的技術,反之,後端也是。
在實際的開發過程中,當前這樣定位前端、後端開發人員。
1)前端開發人員:精通JS,能熟練應用JQuery,懂CSS,能熟練運用這些知識,進行交互效果的開發。
2)後端開發人員:會寫Java代碼,會寫sql語句,能做簡單的資料庫設計,會Spring和iBatis,懂一些設計模式等。
現在來看,對前後端的要求還是蠻低的,尤其是後端,新員工經過培訓之後都是可以參與到後端開發的,沒有太高的技術門檻,唯一需要做的就是先變成熟練工種,這個階段沒有涉及到設計模式、架構、效率等一些列問題。
還是先google一下,看看網上對Web前端開發、Web後端開發分別是什麼?
Web前端: 顧名思義是來做Web的前端的。這里所說的前端泛指Web前端,也就是在Web應用中用戶可以看得見碰得著的東西。包括Web頁面的結構、Web的外觀視覺表現以及Web層面的交互實現。
Web後端:後端更多的是與資料庫進行交互以處理相應的業務邏輯。需要考慮的是如何實現功能、數據的存取、平台的穩定性與性能等。
再來看看大公司對前後端人員招聘的要求,通過這個角度看看前端、後端的技術要求:
Web前端:
1)精通HTML,能夠書寫語義合理,結構清晰,易維護的HTML結構。
2)精通CSS,能夠還原視覺設計,並兼容業界承認的主流瀏覽器。
3)熟悉JavaScript,了解ECMAScript基礎內容,掌握1~2種js框架,如JQuery
4)對常見的瀏覽器兼容問題有清晰的理解,並有可靠的解決方案。
5)對性能有一定的要求,了解yahoo的性能優化建議,並可以在項目中有效實施。
6)......
Web後端:
1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex開發,或者對相關的工具、類庫以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,對Web開發的模式有較深的理解
2)練使用oracle、sqlserver、mysql等常用的資料庫系統,對資料庫有較強的設計能力
3)熟悉maven項目配置管理工具,熟悉tomcat、jboss等應用伺服器,同時對在高並發處理情況下的負載調優有相關經驗者優先考慮
4)精通面向對象分析和設計技術,包括設計模式、UML建模等
5)熟悉網路編程,具有設計和開發對外API介面經驗和能力,同時具備跨平台的API規范設計以及API高效調用設計能力
6)......
從幾個公司的招聘要求可以看到,做Web開發,對前端和後端的要求是各自所不同的。而目前的實際情況,也和這個差不多,但是,自己無論在知識的掌握程度上,還是知識掌握的寬度上,都是不夠的。
首先,自己在前端缺乏積累,沒有沉澱,專業的前端技術的積累是從去年才開始的,同時,在前端也缺乏支撐與高手,所以,走起來比較困難。同時,前端人員培養的較少,一個原因是對前端了解太少,另外一個原因就是對前端與後端的工作比例估計不足。所幸,在這一年也在前端有了很快的進步,培養了幾個優秀的開發人員,有意識的解決了前端的用戶體驗,這都是可喜的。今年,需要更進一步,專業化。
其次,在後端發展的不夠寬,後端的知識體系已經比較完善,但是,很多應用點都沒有涉及到。同時,對現有技術框架的理解都不夠深入,太浮躁。目前的設計團隊在解決互聯網高並發、大數據量的存取上經驗與能力都還不足,需要正視這些問題。後端技術的發展需要更加的精進,以解決實際存在的問題為主。
最後,在前端、後端都缺乏熟練工,這會影響到開發的速度,同時,也不利於後期技術的研究。
⑦ 如何將OSGI的Bundle發布為WebService
OSGI 相互調用服務滲拍是不合 里的設叢搭羨置,所有出現相互調 用枝源的設計都可以通過第三 個bundle的中介進行避免
⑧ WEB開發工程師和前端開發有什麼區別 前端開發還分很多種類別的嗎
所謂web開發,是基於web平台進行的所有開發活動,比如用java、c++、c#等進行web應用組件的開發、數據業務邏輯等,和其它的開發活動沒有太大差別。
而web前端開發,主要是指面向用戶的界面或表現層開發,一般說web前端開發,絕大部分情況下都是指javascript、flash、silverlight、css、html、flex等的開發設計活動,有時候也包含php、asp.net等進行的動態網頁開發。
-Web前端:
1)精通HTML,能夠書寫語義合理,結構清晰,易維護的HTML結構。
2)精通CSS,能夠還原視覺設計,並兼容業界承認的主流瀏覽器。
3)熟悉JavaScript,了解ECMAScript基礎內容,掌握1~2種js框架,如JQuery
4)對常見的瀏覽器兼容問題有清晰的理解,並有可靠的解決方案。
5)對性能有一定的要求,了解yahoo的性能優化建議,並可以在項目中有效實施。
6)......
-Web後端:
1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex開發,或者對相關的工具、類庫以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,對Web開發的模式有較深的理解
2)練使用oracle、sqlserver、mysql等常用的資料庫系統,對資料庫有較強的設計能力
3)熟悉maven項目配置管理工具,熟悉tomcat、jboss等應用伺服器,同時對在高並發處理情況下的負載調優有相關經驗者優先考慮
4)精通面向對象分析和設計技術,包括設計模式、UML建模等
5)熟悉網路編程,具有設計和開發對外API介面經驗和能力,同時具備跨平台的API規范設計以及API高效調用設計能力
⑨ 怎樣在web頁面控制osgi插件工程的開啟,停止,下載和上傳功能(是用sts工具開發的spring dm的插件工程)
boudle啟停應該是由後台腳本控制,web頁面要做控制可以往後台發送命令的形式,具體技術java調用shell命令。
⑩ 如何在 WebSphere Application Server V8 中部署和管理 OSGi 應用
Blog 應用程序包里共有 5 個 bundle,但是只需要其中的四個就可以運行這個程序,因為第五個 bundle 是持久化 bundle 的更新版本,主要是用來演示如何去動態更新 OSGi bundle 的。另外,要想使 Blog 應用正常運行,還有兩個與日誌相關的 bundle,這兩個 bundle 需要事先導入到 WAS 的內部 bundle 存儲庫里。以上所提到的所有資源被放在 blogSample.zip 文件中的 installableApps 文件夾里。這些 bundle 是按功能劃分的:
com.ibm.samples.websphere.osgi.blog.persistence, 包含了和持久化相關的代碼,同時也提供了一些介面,可以被主程序用來執行博客更新和查詢功能。
com.ibm.samples.websphere.osgi.blog_1.0.0,是 Blog 應用的主程序,包含了主要的業務邏輯代碼,並負責和前端 web 層與後端持久化層的交互。
com.ibm.samples.websphere.osgi.blog.web,藉助 html、css 等完成前端顯示的功能。
com.ibm.samples.websphere.osgi.blog.api,包含 Blog 應用所需要的 API。
com.ibm.samples.websphere.osgi.blog.persistence_1.1.0,是持久化 bundle 的更新版本,新增了對博客文章的評論服務。
Blog 提供了兩種部署方式,一種是利用腳本進行完整的部署,另一種是先用腳本做一些初始的配置,如數據源的配置,然後再用 WAS 管理控制台或命令行方式去安裝 Blog 應用。在部署成功以後,我們還可以對應用進行使用、維護、拆卸以及更新操作。在本文中,我們使用第二種方式來部署 Blog 應用。
在 WAS V8 中配置 Blog 應用所需資源
安裝 Blog 應用包含兩個部分,一部分是配置 Blog 應用所需的資源,例如建立資料庫、配置數據源等;另一部分是利用 WAS 管理控制台或者命令行工具安裝 Blog 應用到 WAS 上。在這里我們先介紹第一部分,第二部分穿插在後續的 WAS 對 OSGi 應用部署和管理功能介紹的篇章中。
我們使用腳本配置 Blog 應用所需的資源,這些腳本存放在 blogSample.zip 中的 scripts 目錄里。其中,createBlogDb.sql 用來創建所需的 Derby 資料庫和相關資料庫表,blogSampleInstall.py 包含了一些 Jython 命令用來創建數據源,以及以默認的方式安裝 Blog 應用。
使用腳本配置 Blog 應用
使用如下命令創建和配置 Derby 資料庫(BLOGDB)以及相關資料庫表
對於 Unix 系統
app_server_root/derby/bin/embedded/ij.sh scripts/createBlogDb.sql
對於 Windows 系統
app_server_root\derby\bin\embedded\ij.bat scripts\createBlogDb.sql
使用如下命令創建數據源
對於 Unix 系統
app_server_root/profiles/profileName/bin/wsadmin.sh
-f scripts/blogSampleInstall.py setupOnly serverName nodeName
對於 Windows 系統
app_server_root\profiles\profileName\bin\wsadmin.bat
-f scripts\blogSampleInstall.py setupOnly serverName nodeName
運行完上述命令後,可以登錄到 WAS 控制台查看剛剛創建的數據源。導航到 Resources > JDBC > Data sources 面板:
部署你的 OSGi 應用
管理 bundle 存儲庫
在上文我們提到 com.ibm.samples.websphere.osgi.logging.api.jar 和 com.ibm.samples.websphere.osgi.logging.impl.jar 這兩個 bundle 是 Blog 應用正常運行所不可或缺的,在安裝 Blog 應用之前,需要先將這兩個 bundle 導入到 WAS 的 bundle 存儲庫中。在這一節我們就介紹如何去管理 WAS 的 bundle 存儲庫。
不同的 OSGi 應用之間可以共享很多通用的 bundle,為了簡化對共享 bundle 管理工作以及避免每一個 OSGi 應用都單獨的去維護這些 bundle,WAS 提出了 bundle 存儲庫的概念。共享的 bundle 或者組合 bundle 以及第三方類庫的 bundle 都可以事先導入到 bundle 存儲庫中,每一個 OSGi 應用只需聲明對這些 bundle 的引用就可以很方便的使用 bundle 存儲庫里的 bundle。WAS 的 bundle 存儲庫包括內部存儲庫和外部存儲庫,前者是將共享的 bundle 保存在本地,而後者則可以通過添加鏈接(名字和 URL)使用外部的 bundle。
管理內部 bundle 存儲庫
使用 WAS 管理控制台管理內部 bundle 存儲庫
管理員可以使用 WAS 管理控制台查看已導入的 bundle 以及 bundle 的詳細信息,還能通過管理控制台向存儲庫添加和從存儲庫刪除 bundle。
啟動 WAS 管理控制台
導航到 Environment > OSGi bundle repositories > Internal bundle repository 頁面在頁面中顯示的列表就是已經導入到 bundle 存儲庫里的 bundle,如果是第一次使用,則會顯示如下空白頁面:
在 bundle 存儲庫頁面可以添加、刪除 bundle 或者顯示 bundle 詳細信息
添加單一 bundle 或者合成 bundle 到存儲庫
點擊 New,將顯示上傳 bundle 的頁面
在對話框里輸入 bundle 或者合成 bundle 所在的路徑
點擊 OK,所指定 bundle 或者合成 bundle 就會被上傳到 bundle 存儲庫
對於 Blog 應用:重復上面的操作,添加 com.ibm.samples.websphere.osgi.logging.api.jar 和 Com.ibm.samples.websphere.osgi.logging.impl.jar 到存儲庫中。如下圖所示:
刪除存儲庫里的 bundle,首先選中需要刪除的 bundle,然後點擊 Delete 即可完成操作
查看 bundle 的詳細信息,點擊 bundle 的名字就可以進入到 bundle 的詳細信息頁面
圖 5. Bundle 詳細信息
在完成添加和刪除操作以後,需要保存修改到主配置文件中。
使用命令行管理內部 bundle 存儲庫
使用 wsadmin 命令行工具可以實現 bundle 的添加、刪除、列表以及顯示詳細信息操作。由於 wsadmin 默認使用的腳本語言是 jacl,而我們使用的都是 jython 腳本或者命令,所以我們首先要將 wsadmin 的默認腳本語言修改為 jython,方法是編輯如下文件:<profile_root>\<profile_name>\properties\wsadmin.properties,修改"com.ibm.ws.scripting.defaultLang=jython"
導航到 <profile_root>\<profile_name>\bin 目錄,啟動 wsadmin 命令行工具:
添加單一 bundle 或合成 bundle 到內部存儲庫
使用 addLocalRepositoryBundle 命令添加 bundle 到存儲庫,命令格式如下:
AdminTask.addLocalRepositoryBundle('-file path')
該命令中只有一個參數 file,用來指定你要添加的 bundle 的路徑,對於 Blog 應用,我們用如下命令依次添加上文提到的兩個和 log 相關的 bundle:
AdminTask.addLocalRepositoryBundle('[-file "C:\\blogSample_v8\\blogSample\\installableApps
\\com.ibm.samples.websphere.osgi.logging.impl.jar"]')
AdminTask.addLocalRepositoryBundle('[-file "C:\\blogSample_v8\\blogSample\\installableApps\
\com.ibm.samples.websphere.osgi.logging.api.jar"]')
AdminConfig.save()
添加完以後,登錄 WAS 管理控制台,導航至 Internal bundle repository 頁面,您將看到兩個 bundle 已經被成功添加,如圖 4 所示。
顯示已添加到存儲庫里的 bundle 列表
使用 listLocalRepositoryBundles 命令來顯示已經添加成功的 bundle 列表,命令格式如下:
AdminTask.listLocalRepositoryBundles()
顯示 bundle 的詳細信息
使用 showLocalRepositoryBundle 命令來顯示 bundle 信息,命令格式如下 :
AdminTask.showLocalRepositoryBundle( 』 -symbolicName bundle_symbolic_name
-version bundle_version 』 )
兩個參數分別是要顯示 bundle 的名字和版本信息。
將 bundle 從存儲庫刪除
使用 removeLocalRepositoryBundle 或則 removeLocalRepositoryBundles 命令刪除一個或多個 bundle,命令格式如下:
AdminTask.removeLocalRepositoryBundle( 』 -symbolicName bundle_symbolic_name
-version bundle_version 』 )
AdminTask.removeLocalRepositoryBundles([
』
bundle1_symbolic_name;bundle1_version
bundle2_symbolic_name;bundle2_version
bundle3_symbolic_name;bundle3_version 』
])
管理外部 bundle 存儲庫
對於外部 bundle 存儲庫,WAS 同樣提供了管理控制台和命令行兩種管理方式,並且對於外部庫的控制和內部庫的控制類似。在這里我們就不多加介紹,有興趣的讀者可以閱讀本文末參考資料了解更多詳細信息。