<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ZT文萃

    本博不原創(chuàng),轉(zhuǎn)帖自己感興趣那些事人物,什么入眼貼什么,隨心所欲。
    posts - 93, comments - 5, trackbacks - 0, articles - 0
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    電腦入門(mén)配置
    如果平時(shí)只看看股票、上上網(wǎng)、看電影、玩玩普通的網(wǎng)絡(luò)游戲,這套配置完全可以勝任。
    CPU: INTEL-G1610  ¥260
    主板:技嘉B75M-D3V  ¥460
    內(nèi)存:金士頓DDR3-1333 4G  ¥280
    硬盤(pán):西部數(shù)據(jù)Caviar Blue 500GB  ¥320
    電源:安鈦克VP350P  ¥200(備選海韻S12II330W  ¥270)
    機(jī)箱:酷冷毀滅者經(jīng)典U3版  ¥200
    顯示器:三年質(zhì)保的大品牌19寸顯示器,16:9或16:10自行選擇

    網(wǎng)游入門(mén)配置
    大型3D網(wǎng)絡(luò)游戲入門(mén)配置,需要游戲關(guān)閉SSAO、低陰影、中等特效
    CPU: INTEL-G2120  ¥410
    主板:技嘉B75M-D3V  ¥460
    內(nèi)存:金士頓DDR3-1600 4G  ¥270
    顯卡:微星7750-1G  ¥620(備選迪蘭恒進(jìn)7750恒金2代  ¥600)
    硬盤(pán):西部數(shù)據(jù)Caviar Blue 500GB  ¥320
    機(jī)箱:酷冷毀滅者經(jīng)典U3版  ¥200
    電源:安鈦克VP350  ¥200(備選海韻S12II330W  ¥270)
    顯示器:三年質(zhì)保的大品牌19寸顯示器,16:9或16:10自行選擇

    網(wǎng)游爽玩配置
    基本可以爽玩目前的大型3D網(wǎng)絡(luò)游戲了,前提是不能雙開(kāi)或多開(kāi)
    CPU: I5-3470  ¥1200(也可選擇I5-3470散片+九州風(fēng)神玄冰400散熱)
    主板:技嘉B75M-D3V  ¥460(拉4倍頻備選華擎Z77-PRO4    ¥600)
    內(nèi)存:金士頓DDR3-1600 4GX2  ¥560
    顯卡:華碩或微星7750-1G  ¥620(N卡可考慮650)
    硬盤(pán):西部數(shù)據(jù)Caviar Blue 1TB  ¥410
    機(jī)箱:酷冷毀滅者經(jīng)典U3版  ¥200
    電源:海韻S12II430  ¥310(備選安鈦克ECO-400  ¥360)
    顯示器:三年質(zhì)保的大品牌22寸顯示器,16:9或16:10自行選擇

    單機(jī)入門(mén)配置
    CPU: I5-3470  ¥1200(也可選擇I5-3470散片+九州風(fēng)神玄冰400散熱)
    主板:技嘉Z77-DS3H  ¥700(不超頻選擇技嘉B75M-D3H  ¥500)
    內(nèi)存:金士頓DDR3-1600 4GX2  ¥560
    顯卡:華碩或微星7770-1G  ¥800(N卡可考慮技嘉650TI  ¥1070)
    硬盤(pán):西部數(shù)據(jù)Caviar Blue 1TB  ¥410
    機(jī)箱:恩杰H230  ¥360
    電源:海韻S12II430  ¥310(備選安鈦克ECO-400  ¥360)
    顯示器:三年質(zhì)保的大品牌22、23、24寸顯示器,16:9或16:10自行選擇

    單機(jī)爽玩配置
    CPU: I5-3570K
    散熱:九州風(fēng)神霜塔(備選采融B81)
    主板:技嘉Z77X-D3H
    內(nèi)存:金士頓DDR3-1600 4GX2
    顯卡:華碩或HIS 270X(N卡可考慮華碩760)
    硬盤(pán):西部數(shù)據(jù)Caviar Blue 1TB
    機(jī)箱:恩杰H2
    電源:海韻S12II430(備選安鈦克ECO-400需自購(gòu)顯卡6PIN轉(zhuǎn)接線)
    顯示器:三年質(zhì)保的大品牌22、23、24寸顯示器,16:9或16:10自行選擇

    高帥富配置
    CPU: I5-3570K  ¥1610
    散熱:九州風(fēng)神霜塔  ¥200(備選采融B81)
    主板:技嘉Z77X-UD3H  ¥1490
    內(nèi)存:芝奇RipjawsX DDR3-2133 4GX2  ¥570
    顯卡:華碩或HIS 270X  ¥1500(N卡可考慮華碩760  ¥2200)
    硬盤(pán):希捷2TB  ¥580(SSD自行添加)
    機(jī)箱:杰恩小幻影或H2  ¥480
    電源:海韻S12II520  ¥440(備選安鈦克ECO520需自購(gòu)顯卡6PIN轉(zhuǎn)接線  ¥460)
    鼠標(biāo):Razer煉獄蝰蛇  ¥300(備選羅技G400  ¥230)
    鍵盤(pán):機(jī)械鍵盤(pán)自行研究
    顯示器:Dell-2412M  ¥1500

    土豪級(jí)配置
    CPU: I5-3570K  ¥1610
    散熱:九州風(fēng)神霜塔  ¥200(備選采融B81)
    主板:技嘉Z77X-UD3H  ¥1490
    內(nèi)存:芝奇RipjawsX DDR3-2133 4GX2  ¥570
    顯卡:技嘉GTX770  ¥3000(受挖坑影響,A卡中高端普遍無(wú)貨)
    硬盤(pán):希捷2TB  ¥580(SSD自行添加)
    機(jī)箱:銀欣FT02  ¥1700
    電源:海韻X650  ¥800(備選安鈦克TPN550  ¥660)
    鼠標(biāo):羅技G9X  ¥600
    鍵盤(pán):機(jī)械鍵盤(pán)自行研究
    顯示器:Dell-2412M  ¥1500



    CPU
    AMD 目前不給力,新裝機(jī)器建議直接上Intel的CPU。但I(xiàn)ntel的4系列CPU(G3220、I3/I5/I7-4XXX)haswell發(fā)熱量還是比 較大,大家還是買(mǎi)3系列的CPU吧。CPU盒裝與散片的差別在于是否是正規(guī)質(zhì)保,原盒是3年質(zhì)保,而散片大多是店鋪質(zhì)保1年。為什么選I5不選I7:
    1. 在所有的大型網(wǎng)游里,建筑和NPC的建模、游戲AI運(yùn)算、游戲內(nèi)各種數(shù)據(jù)計(jì)算、游戲插件計(jì)算等等這些工作都需要CPU來(lái)做,顯卡只負(fù)責(zé)特效部分,但顯卡特 效是可以根據(jù)實(shí)際情況調(diào)整的。越是滿地NPC、各種建筑、密密麻麻的花花草草、各種飄數(shù)字的地方,CPU的壓力就越大,CPU的整體性能決定了大型網(wǎng)游里 高負(fù)荷場(chǎng)景下的最低幀數(shù)水平。
    2.對(duì)CPU的要求無(wú)非就是:同頻率的CPU更依賴架構(gòu)效率也就是核心效能;同架構(gòu)效率下更依賴CPU主頻;大量AI運(yùn)算需要大容量低延遲高命中率的共享緩存。
      奔騰:雙核、高頻、無(wú)睿頻、3MB三級(jí)共享緩存;
      i5:    四核、高頻、有睿頻、6MB三級(jí)共享緩存。
    對(duì)于大型網(wǎng)游,i5相比奔騰多出來(lái)的倆物理核心不是最重要的,更重要的是更高CPU主頻、睿頻以及容量翻倍的三級(jí)緩存,在高負(fù)荷場(chǎng)景下最低幀數(shù)表現(xiàn)會(huì)更好。
    3.絕大多數(shù)的日常程序和游戲并不支持HT,也不能有效支持多核心。日常如果不使用能支持HT超線程軟件的話,也不需要選擇E3和I7。

    主板
    低端用B75M-D3V最佳,中端小超頻用二線做工一般的Z77即可,中高端用3570K搭配二線做工好的Z77,一線Z77高端直接上一線的Z77。
    特別注意:Intel的4系列的CPU和4系列的主板(H81、B85、Z87)目前不支持XP系統(tǒng),請(qǐng)純辦公或者還想用XP的注意下。

    內(nèi)存
    不超頻就直接網(wǎng)上商城買(mǎi)金士頓,實(shí)體店千萬(wàn)別買(mǎi)金士頓,現(xiàn)在假貨連金士頓自己都不能分辨,可選擇宇瞻或者金邦。

    顯卡
    N卡低端買(mǎi)650,700-1000買(mǎi)650TI,1000-1500買(mǎi)660,1500-2000買(mǎi)760,高端直接770。切記210、220……630、640等絕對(duì)是核顯都不如的垃圾,買(mǎi)顯卡直接650起。
    A卡低端買(mǎi)600元左右買(mǎi)7750,中端買(mǎi)7770或260X,高端買(mǎi)R270X,土豪直接R280X。切記54XX、55XX、64XX、65XX等絕對(duì)是核顯都不如的垃圾,買(mǎi)顯卡直接R260X起。

    硬盤(pán)
    500G和1TB價(jià)差很小,最好直接上單碟1TB的,希捷、西數(shù)都看臉,隨便選吧。SSD只提升文件的讀取速度,對(duì)幀數(shù)基本沒(méi)影響,請(qǐng)大家自行研究

    機(jī)箱
    機(jī)箱是更新?lián)Q代用得最久的,好的機(jī)箱對(duì)減少共振、散熱風(fēng)道處理還是比較好的。

    電源
    如果有條件盡量不要用航嘉、長(zhǎng)城之流的電源,首選臺(tái)系或臺(tái)系代工的電源。低端電源已被黑翔!(自行百度“紅星炸彈之歌”)
    推薦安鈦克的VP350、ECO400、ECO520、TPN550和海韻的S12系列,注意VP450是坑爹貨,BP系列也不再做推薦了,因?yàn)楹虴CO400差價(jià)太少。

    顯示器
    為了大家的眼睛,請(qǐng)不要選擇20、21.5這幾個(gè)尺寸的顯示器,點(diǎn)距太小了!尺寸看個(gè)人喜好:想買(mǎi)16:9的就買(mǎi)23或者27的;想買(mǎi)16:10就買(mǎi)22或24的,再大尺寸就看個(gè)人喜歡了。但是一般顯示器尺寸越大,標(biāo)準(zhǔn)分辨率就越高,對(duì)機(jī)器的配置的需求也越高。

    光驅(qū)
    現(xiàn)在光驅(qū)對(duì)于大部分人來(lái)說(shuō)基本沒(méi)什么用,如果要的話推薦先鋒DVR-221CHV,覺(jué)得沒(méi)必要用到刻錄的可以選擇先鋒232D,當(dāng)然LG和建興的都可以。

    鼠標(biāo)
    如果對(duì)實(shí)體店裝機(jī)送的不喜歡,個(gè)人推薦力勝L7(帶側(cè)鍵支持,小手用15、中手用55、大手用95)。往上建議直接蝰蛇和羅技,各有千秋。再往上就是G9X。

    鍵盤(pán)
    自行選擇,當(dāng)然,土豪的話都會(huì)選擇機(jī)械鍵盤(pán)。

    音箱
    你是需要一個(gè)帶Mic的耳機(jī)還是一個(gè)外置音箱,好明顯這看個(gè)人需求,音箱的話個(gè)人推薦漫步者R101T06。至于其它的本人也不懂,就不要在這里獻(xiàn)丑了。

    外設(shè)
    各有所愛(ài),希望大家去實(shí)體店體驗(yàn)再?zèng)Q定購(gòu)買(mǎi),實(shí)體店價(jià)格坑爹的話試好手感走網(wǎng)上商城。

    posted @ 2014-01-28 23:28 ZT文萃 閱讀(186) | 評(píng)論 (0)編輯 收藏

    http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1303_qiuxl_liberty/1303_qiuxl_liberty.html

    介紹

    WebSphere Liberty Profile Server 介紹

    Liberty 是一款全新的輕量級(jí)應(yīng)用服務(wù)器, 具有以下幾個(gè)方面的特點(diǎn):

    1. 高 模塊化——該功能允許用戶根據(jù)自己應(yīng)用程序的需求啟用或者禁用相關(guān)的 feature(所謂 feature,在這里指的是運(yùn)行應(yīng)用程序所需要的各種資源的支持。比如,應(yīng)用程序用到了 JSP,我們就需要啟動(dòng) JSP 這個(gè) feature,如果不在需要此 feature,就可以將其禁用。通過(guò)這種模塊化的控制,我們可以按需啟動(dòng)不同的 feature,包括 JSP, Servlet, JPA 等等,這種控制是實(shí)現(xiàn)輕量級(jí)應(yīng)用服務(wù)器的基礎(chǔ))。
    2. 輕量級(jí)—— Liberty 采用了多種技術(shù)進(jìn)行瘦身和優(yōu)化(主要是 OSGi 的應(yīng)用),與傳統(tǒng)的 WAS 相比,極大的減少了運(yùn)行時(shí)的內(nèi)存消耗。
    3. 高動(dòng)態(tài)性——由于采用了 OSGi 的架構(gòu),程序員在開(kāi)發(fā)的時(shí)候,可以動(dòng)態(tài)修改配置文件,應(yīng)用程序以及服務(wù)器的運(yùn)行時(shí)信息,這些修改都是實(shí)時(shí)生效的,不需要重啟服務(wù)器。
    4. 快速——由于采用了高模塊化的設(shè)計(jì),Liberty 應(yīng)用服務(wù)器會(huì)“按需啟動(dòng)”,自身消耗的系統(tǒng)資源很少,對(duì)執(zhí)行任務(wù)的反應(yīng)時(shí)間也非常短,例如,一般來(lái)說(shuō) Liberty 的啟動(dòng)時(shí)間小于 5 秒。
    5. 配置簡(jiǎn)單——在整個(gè)開(kāi)發(fā)過(guò)程中,用戶只需要和一個(gè)配置文件(server.xml)打交道,而且配置的使用也非常靈活。

    WebSphere eXtreme Scale 介紹

    WebSphere eXtreme Scale 以內(nèi)存網(wǎng)格的方式運(yùn)行,動(dòng)態(tài)處理、分區(qū)、復(fù)制和管理數(shù)以萬(wàn)計(jì)服務(wù)器上的應(yīng)用程序數(shù)據(jù)和業(yè)務(wù)邏輯。提供事務(wù)完整性和透明的故障恢復(fù)功能,從而確保高可用性、 高可靠性和一致的響應(yīng)時(shí)間。它可以監(jiān)控和管理自己,支持?jǐn)U大和縮小,可以自動(dòng)從故障恢復(fù)。極大的擴(kuò)大了應(yīng)用程序可以支持的用戶數(shù)量。用更少的時(shí)間服務(wù)更多 的用戶,或者在規(guī)定的、可接受的響應(yīng)時(shí)間內(nèi)為更多的用戶提供服務(wù)。

    回頁(yè)首

    前提

    • 安裝 Oracle 或者 IBM JDK,并配置好環(huán)境變量。
    • 如果使用 Eclipse,請(qǐng)安裝 WebSphere Application Server V8.5 Liberty Profile Developer Tools

    回頁(yè)首

    安裝配置

    安裝 IBM HTTP 服務(wù)器及插件

    本文將使用 IBM 安裝管理器來(lái)在測(cè)試機(jī) A 中安裝 IBM HTTP 服務(wù)器以及插件。

    • 下載并安裝 IBM Installation Manager 1.5.2 或以上版本
    • 下載添加安裝路徑到 IBM 安裝管理器
    • 選中 IBM HTTP 服務(wù)器以及插件
    圖 1. 安裝成功界面
    圖 1. 安裝成功界面

    安裝 Liberty

    Liberty 支持兩種安裝方式:運(yùn)行 JAR 文件、使用安裝管理器安裝。本文將介紹如何使用運(yùn)行 JAR 文件安裝 Liberty 服務(wù)器。在此例中,將會(huì)在測(cè)試機(jī) A、B 和 C 上安裝 Liberty 服務(wù)器。

    1. 下載 wlp-developers-8.5.0.0.jar 文件到本地機(jī)器。
    2. 打開(kāi)命令行,找到下載的 jar 文件,例如 C:\Liberty。
    3. 執(zhí)行 java -jar wlp-developers-8.5.0.0.jar。
    4. 設(shè)定安裝路徑完成安裝。
    圖 2. Liberty 安裝界面
    圖 2. Liberty 安裝界面

    安裝 WebSphere eXtreme Scale

    WebSphere eXtreme Scale 支持兩種安裝方式:運(yùn)行 JAR 文件、使用安裝管理器安裝。本文將介紹如何使用運(yùn)行 JAR 文件安裝 WebSphere eXtreme Scale 插件。在此例中,將會(huì)在測(cè)試機(jī) A 上安裝 WebSphere eXtreme Scale 插件。

    1. 下載 wxs-wlp_850.jar 文件到本地機(jī)器。
    2. 打開(kāi)命令行,找到下載的 jar 文件,例如 C:\Liberty。
    3. 執(zhí)行 java -jar wlp-developers-8.5.0.0.jar。
    4. 設(shè)定安裝路徑完成安裝。
    圖 3. WebSphere eXtreme Scale 安裝界面
    圖 3. WebSphere eXtreme Scale 安裝界面

    創(chuàng)建 Liberty 服務(wù)器

    1. 進(jìn)入 Liberty 安裝目錄下的 bin 文件夾
    2. 執(zhí)行服務(wù)器創(chuàng)建命令 server create 服務(wù)器名稱(chēng)(例如:Test001)

    在本文中將會(huì)在測(cè)試機(jī) A、B 和 C 上創(chuàng)建三個(gè) Liberty 服務(wù)器實(shí)例,分別命名為 Test001,Test002 和 Test003.

    圖 4. Liberty 服務(wù)器創(chuàng)建界面
    圖 4. Liberty 服務(wù)器創(chuàng)建界面

    在 wlp_home/usr/servers 目錄下看到以服務(wù)器命名的文件夾則表示創(chuàng)建成功。

    圖 5. 服務(wù)器創(chuàng)建成功界面
    圖 5. 服務(wù)器創(chuàng)建成功界面

    配置 Liberty 服務(wù)器

    為每個(gè) Liberty 服務(wù)器添加兩個(gè)新功能(在 Liberty 中運(yùn)行嵌入式 XS 服務(wù)器,使用 XS 存儲(chǔ) HTTP 會(huì)話)到 server.xml。添加代碼如下:

    清單 1. Feature 添加示例
        <!-- Enable features -->      <featureManager>          <feature>jsp-2.2</feature>          <feature>localConnector-1.0</feature>          <feature>eXtremeScale.web-1.0</feature>          <feature>eXtremeScale.server-1.0</feature>      </featureManager>

    更改 server.xml 中 HTTP 默認(rèn)端口,可以在 Test002 中使用 9080 端口,在 Test003 中使用 9081 端口。因?yàn)椴煌姆?wù)器在不同的測(cè)試機(jī)上,此處我們使用默認(rèn)端口 9080 不會(huì)產(chǎn)生沖突。添加代碼如下:

    清單 2. HTTP 端口修改示例
     <httpEndpoint host="*"                httpPort="9080"                httpsPort="9443"                id="defaultHttpEndpoint">

    添加 WXS 配置文件到 Liberty 服務(wù)器,并將 Test001 作為 Catalog 服務(wù)器。Test002 和 Test003 不需要作為 Catalog 服務(wù)器,所以 <xsServer> 標(biāo)簽的 isCatalog 屬性設(shè)定為“false”。添加代碼如下:

    清單 3. XS Server 配置示例
        <!-- Configuration for XS Server -->      <xsServer isCatalog="true"                listenerPort="2809"                serverName="Server1"/>      <!-- Configuration for XS HTTP Session data storage -->   <xsWebApp catalogHostPort="localhost:2809"            objectGridType="REMOTE"            replicationInterval="0"            reuseSessionId="true"            securityEnabled="true"            sessionTableSize="0"/>

    在 Test001 服務(wù)器目錄下創(chuàng)建“grids”文件夾,導(dǎo)入 XML 配置文件 deployment.xml 和 objectgrid.xml

    deployment.xml 文件代碼如下:

    清單 4. deployment.xml 示例
     <?xml version="1.0" encoding="UTF-8"?>   <deploymentPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://ibm.com/ws/objectgrid/   deploymentPolicy ../deploymentPolicy.xsd" 	 xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">   <objectgridDeployment objectgridName="session">   <mapSet name="sessionMapSet"              numberOfPartitions="47"              minSyncReplicas="0"              maxSyncReplicas="0"              maxAsyncReplicas="1"              developmentMode="false"              placementStrategy="FIXED_PARTITIONS">          <map ref="objectgridSessionMetadata"/>          <map ref="objectgridSessionAttribute.*"/>          <map ref="objectgridSessionTTL.*"/>      </mapSet>   </objectgridDeployment>   </deploymentPolicy>
    清單 5. objectgrid.xml 示例
     <?xml version="1.0" encoding="UTF-8"?>   <objectGridConfig xmlns:xsi="http://www.w3.org/2001/   XMLSchema-instance" xsi:schemaLocation="http://ibm.com/ws/   objectgrid/config ../objectGrid.xsd" xmlns="http://ibm.com/ws/objectgrid/config">   <objectGrids>      <objectGrid name="session" txTimeout="30">          <bean id="ObjectGridEventListener"                className="com.ibm.ws.xs.   sessionmanager.SessionHandleManager"/>          <backingMap name="objectgridSessionMetadata"                      pluginCollectionRef="objectgridSessionMetadata"                      readOnly="false"                      lockStrategy="PESSIMISTIC"                      ttlEvictorType="LAST_ACCESS_TIME"                      timeToLive="3600"                      copyMode="COPY_TO_BYTES"/>          <backingMap name="objectgridSessionAttribute.*"                      template="true"                      readOnly="false"                      lockStrategy="PESSIMISTIC"                      ttlEvictorType="NONE"                      copyMode="COPY_TO_BYTES"/>          <backingMap name="objectgridSessionTTL.*"                      template="true"                      readOnly="false"                      lockStrategy="PESSIMISTIC"                      ttlEvictorType="LAST_ACCESS_TIME"                      timeToLive="3600"                      copyMode="COPY_TO_BYTES"/>      </objectGrid>   </objectGrids>   <backingMapPluginCollections>      <backingMapPluginCollection id="objectgridSessionMetadata">   <bean id="MapEventListener"        className="com.ibm.ws.xs.sessionmanager.MetadataMapListener"/>      </backingMapPluginCollection>   </backingMapPluginCollections>   </objectGridConfig>

    在三個(gè) Liberty 服務(wù)器中添加 <httpSession> 標(biāo)簽,使 Liberty 的會(huì)話管理器使用相同的會(huì)話 ID,添加代碼如下:

    清單 6. httpSession 重用設(shè)定示例
     <! — Configuration for httpSession resuse -->   <httpSession idReuse="true"/>

    Test002 和 Test003 不需要配置 XS 服務(wù)器,將設(shè)定 isCatalog 為"false", 同時(shí) Test002 和 Test003 不需要?jiǎng)?chuàng)建“grids”文件夾。

    為方便起見(jiàn),在此我們將 Test001、Test002 和 Test003 導(dǎo)入到 Eclipse(Indigo Service Release 2)。

    圖 6. Liberty 服務(wù)器導(dǎo)入界面
    圖 6. Liberty 服務(wù)器導(dǎo)入界面

    創(chuàng)建部署測(cè)試程序

    新建 Web Project,命名為 testApp

    在 WebContent 文件夾下創(chuàng)建 index.jsp 文件,文件代碼如下:

    清單 7. Index.jsp 頁(yè)面代碼示例
     <%@page contentType="text/html" pageEncoding="UTF-8"%>   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">     <html>   <head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   <title> 在 Liberty 集群中共享內(nèi)存網(wǎng)格數(shù)據(jù) </title>   </head>   <body>   <h1> 在 Liberty 集群中共享內(nèi)存網(wǎng)格數(shù)據(jù)測(cè)試頁(yè)面 !</h1>   <%   Integer count;   Object obj_Count = session.getAttribute("COUNT");   if (obj_Count != null) {   count = (Integer) obj_Count;   count = count + 1;   } else {   count = 1;   }   session.setAttribute("COUNT", count);   %>   <h3> 計(jì)數(shù)器會(huì)在每次頁(yè)面加載時(shí)加 1</h3>   <h3><font color="#FF0000"> 計(jì)數(shù)器  = <%=count%></font></h3>   <h4><font color="#FF0000"><b> 頁(yè)面服務(wù)器 :   <%= System.getProperty("wlp.server.name") %></b></font></h4>   <br/>  頁(yè)面生成時(shí)間 = <%=new java.util.Date().toString()%><br/>   <br/>   </body>   </html>

    將 testApp 分別部署到 Test002 和 Test003,

    圖 7. 測(cè)試程序部署界面
    圖 7. 測(cè)試程序部署界面

    啟動(dòng) Test001 ,Test002 和 Test003 服務(wù)器

    可 以使用命令行啟停 Liberty 服務(wù)器。例如在 Liberty 的安裝目錄的 bin 文件夾下執(zhí)行 server start Test001 來(lái)啟動(dòng) Test001 服務(wù)器。將測(cè)試程序直接拷貝應(yīng)用程序(例如 war 文件)到 dropins 目錄,當(dāng) Liberty 啟動(dòng)的時(shí)候,就會(huì)自動(dòng)掃描,然后啟動(dòng)文件夾內(nèi)的應(yīng)用程序。前提是在啟動(dòng)前要配置好 server.xml 中關(guān)于應(yīng)用程序的相關(guān)信息,代碼如下:

    清單 8. 應(yīng)用程序部署示例
     <application id="testApp"               location="testApp.war"               name="testApp"               type="war"/>

    配置 HTTP 服務(wù)器

    為 Test002 和 Test003 生成 plugin-cfg.xml 配置文件。在此使用 JAVA 的 jconsole 生成配置文件

    在 JAVA 的安裝目錄的 bin 文件夾下運(yùn)行 jconsole。

    圖 8. Jconsole 啟動(dòng)命令界面
    圖 8. Jconsole 啟動(dòng)命令界面
    圖 9. Jconsole 啟動(dòng)界面
    圖 9. Jconsole 啟動(dòng)界面

    選擇之前創(chuàng)建的 Liberty 服務(wù)器,連接

    在 MBeans 標(biāo)簽下點(diǎn)擊 generateDefaultPluginConfig 方法生成配置文件 .

    圖 10. 配置文件生成界面
    圖 10. 配置文件生成界面

    合并 Test002 和 Test003 的 plugin-cfg.xml 配置文件。文件代碼如下,其中的 IP 分別為測(cè)試機(jī) B 和 C 的 IP。

    清單 9. plugin-cfg.xml 代碼示例
     <?xml version="1.0" encoding="UTF-8"?>   <!-- This config file was generated by plugin's merge tool v1.0.0.2 on 2012.10.16 at   16:03:42 CST -->   <Config ASDisableNagle="false"          AcceptAllContent="false"         AppServerPortPreference="HostHeader"          ChunkedResponse="false"         FIPSEnable="false"          IISDisableNagle="false"          IISPluginPriority="High"         IgnoreDNSFailures="false"          RefreshInterval="60"         ResponseChunkSize="64"          SSLConsolidate="false"         SSLPKCSDriver="REPLACE"          SSLPKCSPassword="REPLACE"         TrustedProxyEnable="false"          VHostMatchingCompat="false">      <Log LogLevel="Error" Name=".\logs\defaultServer\http_plugin.log"/>      <Property Name="ESIEnable" Value="true"/>      <Property Name="ESIMaxCacheSize" Value="1024"/>      <Property Name="ESIInvalidationMonitor" Value="false"/>      <Property Name="ESIEnableToPassCookies" Value="false"/>      <Property Name="PluginInstallRoot" Value="."/>      <!-- Server Clusters -->      <ServerCluster CloneSeparatorChange="false"                     GetDWLMTable="false"                    IgnoreAffinityRequests="true"                     LoadBalance="Round Robin"                    Name="Shared_2_Cluster_0"                     PostBufferSize="64"                     PostSizeLimit="-1"                    RemoveSpecialHeaders="true"                     RetryInterval="60">          <Server CloneID="Server3CloneID"             ConnectTimeout="0" ExtendedHandshake="false"             MaxConnections="-1" Name="Server3"             ServerIOTimeout="900" WaitForContinue="false">            <Transport Hostname="9.115.75.85"                       Port="9081"                       Protocol="http"/>          </Server>          <Server CloneID="Server2CloneID"                 ConnectTimeout="0"                  ExtendedHandshake="false"                 MaxConnections="-1"                  Name="Server2"                 ServerIOTimeout="900"                  WaitForContinue="false">                <Transport Hostname="9.111.97.74"                           Port="9081"                           Protocol="http"/>           </Server>           <PrimaryServers>               <Server Name="Server3"/>               <Server Name="Server2"/>           </PrimaryServers>      </ServerCluster>      <!-- Virtual Host Groups -->      <VirtualHostGroup Name="/cell/sharedCell_2/vHostGroup/shared_host_0">          <VirtualHost Name="*:443"/>          <VirtualHost Name="*:80"/>          <VirtualHost Name="*:9080"/>          <VirtualHost Name="*:9081"/>      </VirtualHostGroup>      <!-- URI Groups -->      <UriGroup Name="/cell/sharedCell_2/application/   default_host_defaultServer_default_node_Cluster_URIs">          <Uri AffinityCookie="JSESSIONID"              AffinityURLIdentifier="jsessionid"               Name="/test/*"/>      </UriGroup>      <!-- Routes -->      <Route ServerCluster="Shared_2_Cluster_0"            UriGroup="/cell/sharedCell_2/application/   default_host_defaultServer_default_node_Cluster_URIs"              VirtualHostGroup="/cell/sharedCell_2/vHostGroup/shared_host_0"/>   </Config>

    將合并后的 plugin-cfg.xml 配置文件拷貝到 IBM HTTP 服務(wù)器上。

    下邊所示代碼到 http.conf 文件使 plugin-cfg.xml 配置文件生效

    清單 10. plugin-cfg.xml 生效示例
     LoadModule was_ap22_module "path\to\mod_was_ap22_http.dll"  WebSpherePluginConfig "path\to\plugin-cfg.xml"

    回頁(yè)首

    測(cè)試

    訪問(wèn)測(cè)試程序

    啟動(dòng) HTTP 服務(wù)器以及 Test001、Test002 和 Test003。在測(cè)試機(jī) A 上打開(kāi)瀏覽器,訪問(wèn) http://localhost/testApp/ 可以看到 Test002 訪問(wèn)界面或者 Test003 訪問(wèn)界面。這依賴于 HTTP 服務(wù)器將請(qǐng)求發(fā)送到 Test002 還是 Test003。

    圖 11. Test002 訪問(wèn)界面
    圖 11. Test002 訪問(wèn)界面
    圖 12. Test003 訪問(wèn)界面
    圖 12. Test003 訪問(wèn)界面

    以第一次訪問(wèn) Test002 為例,此時(shí)如果 Test002 發(fā)生故障停機(jī)了(在此手動(dòng)停掉 Test002),當(dāng)再次訪問(wèn) http://localhost/testApp/ 時(shí),HTTP 服務(wù)器會(huì)將請(qǐng)求發(fā)送到 Test003,如圖 13 所示。但此時(shí)計(jì)數(shù)器并沒(méi)有還原,由于兩個(gè)服務(wù)器共享內(nèi)存網(wǎng)格數(shù)據(jù),所以計(jì)數(shù)器在首次訪問(wèn) Test003 的時(shí)候已經(jīng)在 Test002 的基礎(chǔ)上加了一。

    圖 13. Test003 計(jì)數(shù)器增加界面
    圖 13. Test003 計(jì)數(shù)器增加界面

    參考資料

    posted @ 2014-01-20 12:59 ZT文萃 閱讀(303) | 評(píng)論 (0)編輯 收藏

    這篇文章主要是參考了http://blog.csdn.net/jiangkai_nju/article/details/7338177這個(gè)博客,要看詳細(xì)的內(nèi)容可以參考這個(gè)博客進(jìn)行學(xué)習(xí)研究,但是我覺(jué)得在以下的一些基本可以滿足我們的文件傳輸要求了。

    scp是linux中功能最強(qiáng)大的文件傳輸命令,可以實(shí)現(xiàn)從本地到遠(yuǎn)程以及遠(yuǎn)程到本地的輕松文件傳輸操作。下面簡(jiǎn)單的講解一些關(guān)于scp命令的操作,給有用的人一些參考:

    首先是本地到遠(yuǎn)程的操作:操作的格式如下

    scp local_file remote_username@remote_ip:remote_folder

    或者

    scp local_file remote_username@remote_ip:remote_file

    或者

    scp local_file remote_ip:remote_folder

    或者

    scp local_file remote_ip:remote_file

    第1,2個(gè)指定了用戶名,命令執(zhí)行后需要再輸入密碼,第1個(gè)僅指定了遠(yuǎn)程的目錄,文件名字不變,第2個(gè)指定了文件名;

    第3,4個(gè)沒(méi)有指定用戶名,命令執(zhí)行后需要輸入用戶名和密碼,第3個(gè)僅指定了遠(yuǎn)程的目錄,文件名字不變,第4個(gè)指定了文件名;

    * 例子:

    scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music

    scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3

    scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music

    scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3

    * 復(fù)制目錄:

    * 命令格式:

    scp -r local_folder remote_username@remote_ip:remote_folder

    或者

    scp -r local_folder remote_ip:remote_folder

    第1個(gè)指定了用戶名,命令執(zhí)行后需要再輸入密碼;

    第2個(gè)沒(méi)有指定用戶名,命令執(zhí)行后需要輸入用戶名和密碼;

    * 例子:

    scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/

    scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

    上面 命令 將 本地 music 目錄 復(fù)制 到 遠(yuǎn)程 others 目錄下,即復(fù)制后有 遠(yuǎn)程 有 ../others/music

    2、是實(shí)現(xiàn)從遠(yuǎn)程到本地的文件傳輸操作:

    從 遠(yuǎn)程 復(fù)制到 本地,只要將 從 本地 復(fù)制到 遠(yuǎn)程 的命令 的 后2個(gè)參數(shù) 調(diào)換順序 即可;

    例如:

    scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3

    scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

    最簡(jiǎn)單的應(yīng)用如下 :

    scp 本地用戶名 @IP 地址 : 文件名 1 遠(yuǎn)程用戶名 @IP 地址 : 文件名 2

    [ 本地用戶名 @IP 地址 :] 可以不輸入 , 可能需要輸入遠(yuǎn)程用戶名所對(duì)應(yīng)的密碼 .

    可能有用的幾個(gè)參數(shù) :

    -v 和大多數(shù) linux 命令中的 -v 意思一樣 , 用來(lái)顯示進(jìn)度 . 可以用來(lái)查看連接 , 認(rèn)證 , 或是配置錯(cuò)誤 .

    -C 使能壓縮選項(xiàng) .

    -P 選擇端口 . 注意 -p 已經(jīng)被 rcp 使用 .

    -4 強(qiáng)行使用 IPV4 地址 .

    -6 強(qiáng)行使用 IPV6 地址 .

    Linux scp命令的使用方法應(yīng)該可以滿足大家對(duì)Linux文件和目錄的復(fù)制使用了。

    posted @ 2014-01-20 12:57 ZT文萃 閱讀(195) | 評(píng)論 (0)編輯 收藏

    websphere liberty 安裝 部署

    websphere application server liberty  部署

     

    下載地址

    http://www.ibm.com/developerworks/cn/downloads/ws/wasdevelopers/

     

    1.IBM WebSphere Application Server Liberty for Developers

       was.repo.8550.liberty.developers.ilan.zip  (112M)

     

    2.Installation Manager 1.6.2 for Windows 64-bit ---看實(shí)際情況下載

    agent.installer.win32.win32.x86_64_1.6.2000.20130301_2248.zip  (135M)

     

    完成下載后,先安裝 IBM Installation Manager,安裝后讓重啟 IBM Installation Manager,點(diǎn)擊“存儲(chǔ)庫(kù)”選擇

    was.repo.8550.liberty.developers.ilan.zip解壓后的文件repository.config

    然后就開(kāi)始安裝了...

     

    安裝好后。

    啟動(dòng)websphere   liberty :

    C:\Users\xxx>"C:\Program Files\IBM\WebSphere\Liberty\bin\server.bat" start    正在啟動(dòng)服務(wù)器 defaultServer。    服務(wù)器 defaultServer 已啟動(dòng)。

     App部署和卸載 

     myserver目錄即C:\Program Files\IBM\WebSphere\Liberty\usr\servers\defaultServer\

    部署和卸載行為可以在兩個(gè)地方發(fā)生,一個(gè)是server.xml配置文件中,另一個(gè)是dropins目錄.
    (1) 在myserver目錄下找到server.xml文件并打開(kāi),加入”<application id="hello-app" location="hello-app.war" name="hello-app" type="war"/>”即可完成部署,刪除這句話即可完成卸載,即便myserver處于運(yùn)行狀態(tài)也可以這樣操作,因?yàn)閟erver.xml是 可以即時(shí)更新的,所做的修改能夠馬上生效。相對(duì)于tomcat這是Liberty profile的一個(gè)優(yōu)勢(shì),當(dāng)tomcat的server.xml內(nèi)容被修改修改時(shí)必須重啟才能生效。這種部署方式適用于開(kāi)發(fā)階段。
    (2) 直接將war包扔進(jìn)myserver目錄下的dropins文件夾中即可完成部署,刪除此war包機(jī)完成卸載,這種部署適用于實(shí)施階段。
    (3)訪問(wèn)App
    在瀏覽器中鍵入http://localhost:9080/hello-app/index.jsp,頁(yè)面顯示hello world,說(shuō)明App部署成功,運(yùn)行正常。

     

    參考:

    http://blog.csdn.net/qiaoyupeng/article/details/7226303

    posted @ 2014-01-17 14:19 ZT文萃 閱讀(1421) | 評(píng)論 (0)編輯 收藏

    http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1207_zhuxl_liberty/1207_zhuxl_liberty.html

    2012 年 6 月 15 日,IBM 正式發(fā)布了 WebSphere Application Server V8.5 版本(簡(jiǎn)稱(chēng) WAS V8.5)。WebSphere Liberty Profile Server(簡(jiǎn)稱(chēng) Liberty)是 WAS V8.5 中最主要的新特性,它是一個(gè)基于 OSGi 內(nèi)核,高模塊化,高動(dòng)態(tài)性的輕量級(jí) WebSphere 應(yīng)用服務(wù)器,其安裝極為簡(jiǎn)單(解壓即可)、啟動(dòng)非常快、占用很少的磁盤(pán)和內(nèi)存空間,支持 Web、mobile 和 OSGi 應(yīng)用的開(kāi)發(fā),旨在提高開(kāi)發(fā)人員的生產(chǎn)效率。

    在本文中,我們將詳細(xì)介紹什么是 Liberty 以及如何使用 Liberty 快速的開(kāi)發(fā)和部署應(yīng)用,使讀者迅速的掌握這一全新的輕量級(jí)應(yīng)用服務(wù)器。

    0 評(píng)論:

    朱 修磊, 軟件工程師, IBM

    2012 年 7 月 19 日

    • +內(nèi)容

    什么是 WebSphere Liberty Profile Server ?

    Liberty 是一款全新的輕量級(jí)應(yīng)用服務(wù)器,它將用戶的良好開(kāi)發(fā)體驗(yàn)作為最主要的出發(fā)點(diǎn)。其主要特點(diǎn)和內(nèi)容包括:

    • 高 模塊化——該功能允許用戶根據(jù)自己應(yīng)用程序的需求啟用或者禁用相關(guān)的 feature(所謂 feature,在這里指的是運(yùn)行應(yīng)用程序所需要的各種資源的支持。比如,應(yīng)用程序用到了 JSP,我們就需要啟動(dòng) JSP 這個(gè) feature,如果不在需要此 feature,就可以將其禁用。通過(guò)這種模塊化的控制,我們可以按需啟動(dòng)不同的 feature,包括 JSP, Servlet, JPA 等等,這種控制是實(shí)現(xiàn)輕量級(jí)應(yīng)用服務(wù)器的基礎(chǔ))。
    • 輕量級(jí)—— Liberty 采用了多種技術(shù)進(jìn)行瘦身和優(yōu)化(主要是 OSGi 的應(yīng)用),與傳統(tǒng)的 WAS 相比,極大的減少了運(yùn)行時(shí)的內(nèi)存消耗。
    • 高動(dòng)態(tài)性——由于采用了 OSGi 的架構(gòu),程序員在開(kāi)發(fā)的時(shí)候,可以動(dòng)態(tài)修改配置文件,應(yīng)用程序以及服務(wù)器的運(yùn)行時(shí)信息,這些修改都是實(shí)時(shí)生效的,不需要重啟服務(wù)器。
    • 快速——由于采用了高模塊化的設(shè)計(jì),Liberty 應(yīng)用服務(wù)器會(huì)“按需啟動(dòng)”,自身消耗的系統(tǒng)資源很少,對(duì)執(zhí)行任務(wù)的反應(yīng)時(shí)間也非常短,例如,一般來(lái)說(shuō) Liberty 的啟動(dòng)時(shí)間小于 5 秒。
    • 配置簡(jiǎn)單——在整個(gè)開(kāi)發(fā)過(guò)程中,用戶只需要和一個(gè)配置文件(server.xml)打交道,而且配置的使用也非常靈活。

    盡 管 Liberty 與傳統(tǒng) WAS 相比只是一個(gè)“小塊頭”,但是在 Web 和 OSGi 應(yīng)用程序的開(kāi)發(fā)上,Liberty 與傳統(tǒng) WAS 完全保持一致,在 Liberty 上開(kāi)發(fā)的程序,可以直接移植到傳統(tǒng) WAS 上,不需要做任何的改變。相比傳統(tǒng) WAS 的龐大,Liberty 在為用戶提供良好的開(kāi)發(fā)體驗(yàn)上遙遙領(lǐng)先。

    作為應(yīng)用服務(wù)器,Liberty 支持與多種開(kāi)發(fā)工具的結(jié)合:

    • 支持在 Rational Application Developer 中使用 Liberty,推薦在企業(yè)級(jí)應(yīng)用開(kāi)發(fā)中使用這種方式,因?yàn)檫@種方式支持最大范圍的編程模型以及 Cloud。
    • 支 持在 Eclipse 3.6(Helios) 或者 3.7(Indigo) 中使用 Liberty, 需要從 Eclipse Marketplace 安裝 WebSphere Application Server V8.5 Developer Tools for Eclipse 或者 WebSphere Application Server V8.5 Liberty Profile Developer Tools for Eclipse。在 Eclipse 中使用 Liberty 是完全免費(fèi)的,當(dāng)然,如果你需要得到 IBM 工程師的支持,則需要支付額外的費(fèi)用。

    同時(shí),Liberty 服務(wù)器也支持多種主流的操作系統(tǒng)平臺(tái),包括 Windows、Linux、Unix、z/OS 以及 Mac OS 等。Liberty 既可以用在開(kāi)發(fā)環(huán)境中,也可以用于產(chǎn)品環(huán)境(Mac OS 除外)。Liberty 同時(shí)支持 Oracle 和 IBM JDK,支持的最低版本分別是:Oracle Java™ 6 update 26 和 IBM Java 6.0 (J9 2.6) SR 1。

    回頁(yè)首

    初探 WebSphere Liberty Profile Server

    快速安裝

    在 本文中我們主要介紹 Eclipse 與 Liberty 的結(jié)合使用,在開(kāi)始搭建 Liberty 的開(kāi)發(fā)環(huán)境前,讀者需要自行下載和安裝 Oracle 或者 IBM JDK,并配置好環(huán)境變量,這是 Liberty 能正常運(yùn)行的必要條件。如果是以開(kāi)發(fā)為目的,那么使用 Liberty 以及 Liberty 工具是完全免費(fèi)的,并且沒(méi)有時(shí)間限制。

    在線安裝 Liberty 開(kāi)發(fā)工具

    打開(kāi) Eclipse,依次點(diǎn)擊 Help > Eclipse MarketPlace,在出現(xiàn)的頁(yè)面搜索欄里輸入 websphere,并點(diǎn)擊搜索。

    圖 1. 安裝 Liberty 開(kāi)發(fā)工具
    圖 1. 安裝 Liberty 開(kāi)發(fā)工具

    在 搜索結(jié)果中會(huì)看到如上紅色方框標(biāo)注的工具,其中 WebSphere Application Server V8.5 Liberty Profile Developer Tools 是 WebSphere Application Server V8.5 Developer Tools 的子集,對(duì)于搭建 Liberty 開(kāi)發(fā)環(huán)境,直接安裝前者就可以,如果讀者還需要將 Eclipse 與傳統(tǒng)的 WAS 結(jié)合使用,那么就需要安裝后一個(gè)工具。在本文中,我們直接安裝 WebSphere Application Server V8.5 Liberty Profile Developer Tools。在安裝過(guò)程結(jié)束后,需要重啟 Eclipse。待 Eclipse 重啟后,選擇 Servers 視圖,右擊新建一個(gè)服務(wù)器,出現(xiàn)如下圖所示,則表明 Liberty 開(kāi)發(fā)工具已經(jīng)成功安裝

    圖 2. 驗(yàn)證 Liberty 開(kāi)發(fā)工具安裝成功
    圖 2. 驗(yàn)證 Liberty 開(kāi)發(fā)工具安裝成功

    創(chuàng)建 Liberty 服務(wù)器

    在安裝好 Liberty 開(kāi)發(fā)工具后,我們需要在 Eclipse 中創(chuàng)建 Liberty 服務(wù)器,接著圖 2 所示,選擇 WebSphere Application Server V8.5 Liberty Profile,點(diǎn)擊 Next

    圖 3. 選擇 Liberty 的安裝位置
    圖 3. 選擇 Liberty 的安裝位置

    在 上圖中,我們需要指定 Liberty 服務(wù)器的安裝位置,對(duì)于如何下載 Liberty 服務(wù)器,有兩種選擇:1. 訪問(wèn) wasdev.net 站點(diǎn),下載 Liberty 的安裝文件,Liberty 安裝文件只有不到 50M,下載成功后只需要解壓該文件到磁盤(pán)的任何一個(gè)位置即可完成 Liberty 的安裝,“解壓即安裝”,安裝 Liberty 就是如此簡(jiǎn)單。然后,點(diǎn)擊 Browser 選擇 Liberty 的安裝位置,即可繼續(xù)創(chuàng)建 Liberty 服務(wù)器;2. 直擊點(diǎn)擊上圖的 Download or install,安裝提示進(jìn)行操作,只需要幾分鐘就可以在線下載并安裝一個(gè)全新的 Liberty 服務(wù)器。在這里我們需要指出的是,您也可以選擇直接使用 Liberty 服務(wù)器,而不是將其與 Eclipse 搭配起來(lái)使用,直接解壓下載的 Liberty 到任意目錄,就可以使用了。點(diǎn)擊 Next,因?yàn)?Liberty 默認(rèn)是沒(méi)有創(chuàng)建服務(wù)器的,所以可以得到下圖

    圖 4. 空白的 Liberty 服務(wù)器
    圖 4. 空白的 Liberty 服務(wù)器

    點(diǎn)擊 New,創(chuàng)建你的第一個(gè) Liberty 服務(wù)器

    圖 5. 創(chuàng)建 Liberty 服務(wù)器
    圖 5. 創(chuàng)建 Liberty 服務(wù)器

    為你的 Liberty 任意指定一個(gè)名字,點(diǎn)擊 Finish 完成創(chuàng)建。在 Servers 視圖中,我們將看到創(chuàng)建好的 DemoServer。

    圖 6. Liberty 服務(wù)器概覽
    圖 6. Liberty 服務(wù)器概覽

    從上圖中我們可以看到 DemoServer 是停止?fàn)顟B(tài),右鍵 DemoServer,選擇 Start 啟動(dòng) Liberty 服務(wù)器,在 Console 視圖中檢查 log,可以看到 Liberty 已經(jīng)正常啟動(dòng)。

    清單 1. Liberty 啟動(dòng)日志
     Launching DemoServer (wlp-1.0.0.20120428-1251/websphere-kernel_1.0.0)   on Java HotSpot(TM) Client VM, version 1.7.0_01-b08 (en_US)   [AUDIT   ] CWWKE0001I: The server DemoServer has been launched.   [AUDIT   ] CWWKZ0058I: Monitoring dropins for applications.   [AUDIT   ] CWWKF0011I: The server DemoServer is ready to run a smarter planet.

    在上圖中,雙擊 Server Configuration,可以看到如下配置文件(server.xml)。

    清單 2. 初始的 server.xml 文件
     <server description="new server">       <!-- Enable features -->      <featureManager>          <feature>jsp-2.2</feature>      </featureManager>       <httpEndpoint id="defaultHttpEndpoint"                   host="localhost"                   httpPort="9080"                   httpsPort="9443" />    </server>

    這個(gè) server.xml 就是 Liberty 服務(wù)器中唯一的配置文件,我們?cè)陂_(kāi)發(fā)過(guò)程中對(duì)應(yīng)用程序或者 Liberty 運(yùn)行時(shí)的配置都是在這個(gè)文件中完成。在默認(rèn)情況下,Liberty 已經(jīng)啟用了 JSP 功能,我們可以動(dòng)態(tài)的根據(jù)應(yīng)用的需求為 Liberty 增加各種功能支持,方法如下:

    在 server.xml 編輯窗口下方,選擇 Design 模式,

    圖 7. 圖形化編輯配置文件
    圖 7. 圖形化編輯配置文件

    選擇左側(cè) Feature Manager,然后選擇右側(cè) Add,出現(xiàn)下圖列表,根據(jù)需要添加相應(yīng)的功能支持。

    圖 8. Features 列表
    圖 8. Features 列表

    當(dāng) 然,讀者也可以直接手工編輯 server.xml,手動(dòng)添加需要的 Feature,但是要注意遵循 Liberty 配置文件的編寫(xiě)規(guī)范。到此,我們已經(jīng)成功的安裝了 Liberty 服務(wù)器,并搭建好了 Liberty 服務(wù)器的開(kāi)發(fā)環(huán)境。開(kāi)始我們的例子程序之前,下文首先向讀者更深層次的介紹 Liberty 的功能特性。

    簡(jiǎn)化服務(wù)器配置

    在 Liberty 中,和用戶打交道的只有一個(gè)配置文件 server.xml。關(guān)于應(yīng)用程序或者服務(wù)器運(yùn)行時(shí)的所有配置都是在這一個(gè)文件中完成的,簡(jiǎn)化了服務(wù)器的配置,也減輕了程序員的負(fù)擔(dān)。我們可以在 Eclipse 中直接編輯該文件,修改內(nèi)容會(huì)實(shí)時(shí)生效。這個(gè)配置文件是可以被導(dǎo)出,也可以被不同的服務(wù)器共享。

    靈活的服務(wù)器配置

    圖 9. 靈活配置
    圖 9. 靈活配置

    對(duì) 于配置文件的使用是非常靈活的,例如:如果有很多個(gè) Liberty 都需要用到同一個(gè)配置文件,那么可以將該文件單獨(dú)導(dǎo)出,存放在一個(gè)共享的位置,單個(gè)的 Liberty 服務(wù)器可以利用 <incluse /> 屬性導(dǎo)入共享的配置文件;又比如配置文件的內(nèi)容非常多而且繁雜,我們就可以將其中的內(nèi)容分別寫(xiě)在不同的配置文件中(稱(chēng)為不同的配置文件片段),同樣利用 <include /> 將這些片段文件導(dǎo)入到主配置文件中,運(yùn)行時(shí)會(huì)負(fù)責(zé)去實(shí)時(shí)的解析這些片段文件。

    應(yīng)用部署

    在 Liberty 中部署應(yīng)用也是非常簡(jiǎn)單的事情,打開(kāi)你的 Liberty 安裝目錄 <Liberty_Install_dir>\usr\servers\server_name ,可以看到如下目錄結(jié)構(gòu) :

    圖 10. 應(yīng)用部署目錄
    圖 10. 應(yīng)用部署目錄

    在 上圖中 apps 和 dropins 是兩個(gè)存放安裝的應(yīng)用的文件夾,我們可以通過(guò) Eclipse 部署應(yīng)用到 Liberty,應(yīng)用文件將被放在 apps 下面(這個(gè)是應(yīng)用部署的默認(rèn)目錄,也可以通過(guò)配置,將應(yīng)用文件部署到其他任何位置)。我們也可以直接拷貝應(yīng)用程序(例如 war 文件)到 dropins 目錄,當(dāng) Liberty 啟動(dòng)的時(shí)候,就會(huì)自動(dòng)掃描上面的兩個(gè)文件夾,然后啟動(dòng)文件夾內(nèi)的應(yīng)用程序。當(dāng)然,啟動(dòng)應(yīng)用前,要確保已經(jīng)配置好 server.xml 里的相關(guān)信息。

    動(dòng)態(tài)加載模塊

    圖 11. 動(dòng)態(tài)化加載
    圖 11. 動(dòng)態(tài)化加載

    與 傳統(tǒng) WAS 不同的是,Liberty 并不是一個(gè)靜態(tài)的服務(wù)器,它是動(dòng)態(tài)的,可以根據(jù)應(yīng)用程序的需要?jiǎng)討B(tài)加載相應(yīng)的模塊。這些模塊是以“feature”來(lái)定義的,比如 JSP, Servlet 等,都是不同的 feature。可以將 feature 看作是一個(gè)獨(dú)立的模塊,它由一到多個(gè) OSGi bundle 組成,共同來(lái)完成某一個(gè)特定的任務(wù)。這些 feature 可是隨時(shí)被添加和移除,而不需要重啟服務(wù)器,正是得益于這樣的動(dòng)態(tài)化設(shè)計(jì),Liberty 無(wú)論在啟動(dòng)時(shí)間還是反應(yīng)時(shí)間上都更勝一籌,為程序員帶來(lái)了快速的開(kāi)發(fā)體驗(yàn)。

    運(yùn)行時(shí)動(dòng)態(tài)更新

    圖 12. 動(dòng)態(tài)更新
    圖 12. 動(dòng)態(tài)更新

    Liberty 為我們提供了一個(gè)可以動(dòng)態(tài)實(shí)時(shí)更新的運(yùn)行時(shí),無(wú)論你是修改了應(yīng)用程序,還是修改配置文件都會(huì)實(shí)時(shí)的被 Liberty 檢測(cè)到,并立即更新運(yùn)行時(shí)到最新?tīng)顟B(tài),無(wú)需重啟 Liberty 服務(wù)器。新的 feature 可以被隨時(shí)的添加到 server.xml 中,運(yùn)行時(shí)為負(fù)責(zé)實(shí)時(shí)啟動(dòng)相應(yīng)的功能模塊,這一切都與程序員來(lái)說(shuō)都是透明的。例如:我們首先啟動(dòng) Liberty 服務(wù)器,然后將一個(gè) JSP 應(yīng)用放到 dropins 目錄里,如果你沒(méi)有在 server.xml 中啟動(dòng) JSP 功能,那么該應(yīng)用就不會(huì)被啟動(dòng)。你將會(huì)得到一個(gè)警告信息,提示你應(yīng)該首先啟用 JSP 功能,然后該應(yīng)用才會(huì)被實(shí)時(shí)的啟動(dòng)。同樣,如果你將 JSP 功能從 server.xml 中移除,該應(yīng)用也會(huì)被立刻停止。

    新型的軟件部署方式

    圖 13. 集中管理 Liberty 服務(wù)器
    圖 13. 集中管理 Liberty 服務(wù)器

    當(dāng) 我們使用 Liberty 開(kāi)發(fā)完應(yīng)用程序后,Liberty 為我們提供了一個(gè)全新的軟件部署方式,我們可以將 Liberty 服務(wù)器和應(yīng)用程序一起打包為 ZIP 文件,然后將這個(gè) ZIP 傳輸?shù)叫枰渴疖浖姆?wù)器上直接解壓即可。為了支持適合云端和大規(guī)模應(yīng)用的部署,WebSpere(傳統(tǒng) WAS)還提供了集中管理部署的功能(需要安裝 WAS ND 版本),使用該功能可以將我們事先打好的 ZIP 包遠(yuǎn)程的傳輸?shù)蕉鄠€(gè)服務(wù)器上,在傳送完成后,WAS 還會(huì)負(fù)責(zé)解壓和安裝。另外,WAS 的集中管理功能還提供了遠(yuǎn)程啟動(dòng)、停止和卸載 Liberty 服務(wù)器的功能。

    Liberty 之于開(kāi)發(fā)人員

    對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),Liberty 的出現(xiàn)是一個(gè)十分振奮人心的消息。首先,Liberty 作為一個(gè)輕量級(jí)的應(yīng)用服務(wù)器,和 Eclipse 可以完美的結(jié)合,其最重要的特性就是關(guān)注程序員的開(kāi)發(fā)體驗(yàn),包括快速的下載、安裝和環(huán)境搭建,在開(kāi)發(fā)過(guò)程中,實(shí)時(shí)的應(yīng)用更新而無(wú)需重啟服務(wù)器,這些都會(huì)極 大的提高程序員的開(kāi)發(fā)效率;其次,在開(kāi)發(fā),測(cè)試和部署應(yīng)用的過(guò)程中,Liberty 都極其友好和方便,其與傳統(tǒng) WAS 的完全兼容,也為應(yīng)用程序的遷移提供了有力的保障。

    回頁(yè)首

    與主流 WEB 容器的對(duì)比

    從某種程度上來(lái)講,目前,Liberty 與 Tomcat 處在同一個(gè)產(chǎn)品層次上,我們從功能特性、使用體驗(yàn)以及標(biāo)準(zhǔn)支持上對(duì)這兩個(gè)服務(wù)器進(jìn)行了對(duì)比,從中,我們可以看出 Liberty 在輕量級(jí)服務(wù)器中所具有的獨(dú)特優(yōu)勢(shì):

    表 1. Liberty VS Tomcat
    對(duì)比項(xiàng)TomcatLiberty
    大小<30M<50M
    啟動(dòng)速度<5s<5s
    Java EE 標(biāo)準(zhǔn)支持JSP 2.2, Servlet 3.0, JSTL 1.2 用戶需要添加相關(guān)的 jar 包來(lái)實(shí)現(xiàn)對(duì)其它標(biāo)準(zhǔn)的支持JSP 2.2, Servlet 3.0, JSF 2.0, JSTL 1.2, JPA 2.0, JDBC 4.0, JAX-RS 1.0, JNDI 1.0, Bean Validation 1.0, SSL 1.0, Security 1.0, Web Security 1.0, JMX 1.0 可動(dòng)態(tài)加載或卸載對(duì)應(yīng)的 feature
    OSGi 編程模型是,支持 Blue Print 1.0, WAB 1.0
    開(kāi)發(fā)工具支持 Eclipse支持 eclipse, IBM Rational Application Developer
    支持的操作系統(tǒng)Linux, WindowsLinux, Windows, AIX, Mac, HP-UX, Solaris, iSeries, zSeries
    性能一般與傳統(tǒng) WAS 具有相同的核心代碼,性能好
    應(yīng)用程序熱部署支持支持
    配置文件多個(gè)配置文件,更新后需重啟服務(wù)器一個(gè)配置文件,更新后及時(shí)生效,無(wú)需重啟
    可移植性您可以利用 IBM Application Migration Toolkit 將 Tomcat 上開(kāi)發(fā)的應(yīng)用快速移植到 WebSphere 應(yīng)用服務(wù)器。反之,則不然。Liberty 和傳統(tǒng) WAS 對(duì)編程模型和標(biāo)準(zhǔn)的支持一致。在 Liberty 上開(kāi)發(fā)的應(yīng)用可以直接運(yùn)行在傳統(tǒng) WAS 之上
    文檔官方文檔涵蓋內(nèi)容有限,但網(wǎng)絡(luò)上相關(guān)內(nèi)容(包括:blog,技術(shù)文章等)廣泛。http://wasdev.net 上提供下載地址、文檔、視頻、音頻、樣本引用等。還有 WAS 的信息中心也有大量文檔可供參考閱讀。
    社區(qū)http://tomcat.apache.org 有 dev 和 user mailing list,沒(méi)有官方支持,有時(shí)回復(fù)不夠及時(shí)。http://wasdev.net,可以與開(kāi)發(fā)人員直接交流
    長(zhǎng)期戰(zhàn)略優(yōu)勢(shì)一般用于開(kāi)發(fā)環(huán)境,生產(chǎn)環(huán)產(chǎn)能用的比較少。支持的并發(fā)度不高,可擴(kuò)展性不強(qiáng)。 Liberty 與傳統(tǒng) WAS 共享同一代碼,天生具有其高效穩(wěn)定的特點(diǎn)。開(kāi)發(fā) - 測(cè)試 - 生產(chǎn)切換零代價(jià)。可擴(kuò)展性高,支持多個(gè) server 間的負(fù)載均衡和故障恢復(fù)。

    回頁(yè)首

    Demo:使用 Eclipse 和 Liberty 開(kāi)發(fā) Web 應(yīng)用

    通 過(guò)上面的介紹,相信大家對(duì) Liberty 已經(jīng)有了一個(gè)大概的認(rèn)識(shí),接下來(lái)我們通過(guò)一個(gè) Demo 來(lái)向大家展示如何使用 Liberty 和 Eclipse 開(kāi)發(fā) Web 應(yīng)用。開(kāi)始 Demo 之前,請(qǐng)大家根據(jù)上文的介紹,搭建自己的 Liberty 開(kāi)發(fā)環(huán)境,并安裝好 JDK 并且配置好環(huán)境變量。

    Demo 程序很簡(jiǎn)單,包含一個(gè) Servlet,實(shí)現(xiàn)打印當(dāng)前時(shí)間的功能。步驟如下:

    1. 打開(kāi) Eclipse,選擇 File > New > Web>Dynamic Web Project
    2. 設(shè)置如下屬性值:
      1. Project name: Demo
      2. Target runtime: WebSphere Application Server V8.5 Liberty Profile
      圖 14. 創(chuàng)建動(dòng)態(tài) Web 工程
      圖 14. 創(chuàng)建動(dòng)態(tài) Web 工程
    3. 點(diǎn)擊 Next 兩次,然后點(diǎn)擊 Finish,完成工程的創(chuàng)建。

      此時(shí),你可以在左側(cè)的資源導(dǎo)航頁(yè)面看到剛剛創(chuàng)建完成的 Demo 工程,展開(kāi)工程就可以看到一些默認(rèn)創(chuàng)建的資源。

    4. 右擊 Src 目錄,選擇 New > Class
    5. 設(shè)置如下屬性值:
      1. Package: com.date.demo
      2. Name: DateProvider
      圖 15. 創(chuàng)建 java 文件
      圖 15. 創(chuàng)建 java 文件
    6. 點(diǎn)擊 Finish
    7. 編輯如下代碼到 DateProvider.java
      清單 3. DateProvider.java
       package com.date.demo;    import java.util.Date;    public class DateProvider {    public String getDate() {   // TODO Auto-generated method stub   return new Date().toString();   }   }

      該文件只包含一個(gè)方法,getDate() 用來(lái)獲得當(dāng)前時(shí)間。

    8. 右擊 Src,選擇 New > Servlet
    9. 設(shè)置如下屬性值
      1. Java package: com.date.demo
      2. Class name: DatePrintServlet
      圖 16. 創(chuàng)建 Servlet 文件
      圖 16. 創(chuàng)建 Servlet 文件
    10. 點(diǎn)擊 Finish,完成創(chuàng)建。
    11. 編輯如下內(nèi)容到 DatePrintServlet.java
      清單 4. DatePrintServlet.java
       package com.date.demo;    import java.io.IOException;   import javax.servlet.ServletException;   import javax.servlet.annotation.WebServlet;   import javax.servlet.http.HttpServlet;   import javax.servlet.http.HttpServletRequest;   import javax.servlet.http.HttpServletResponse;    /**   * Servlet implementation class DatePrintServlet   */   @WebServlet("/DatePrintServlet")   public class DatePrintServlet extends HttpServlet {   private static final long serialVersionUID = 1L;            /**       * @see HttpServlet#HttpServlet()       */      public DatePrintServlet() {          super();          // TODO Auto-generated constructor stub      }   /**   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)   */   protected void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {   // TODO Auto-generated method stub   DateProvider dateProvider=new DateProvider();   response.getWriter().println(dateProvider.getDate());   }    /**   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)   */   protected void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {   // TODO Auto-generated method stub   }    }
    12. 在左側(cè)導(dǎo)航欄選擇 DatePrintServlet,點(diǎn)擊右鍵 Run As > Run on Server , 如下圖:
      圖 17. 選擇 Liberty 服務(wù)器
      圖 17. 選擇 Liberty 服務(wù)器
    13. 點(diǎn)擊 Finish,Liberty 開(kāi)發(fā)工具將會(huì)為我們部署上面的 Demo 程序,并啟動(dòng) Liberty 服務(wù)器。從 console 的日志里我們可以看到如下描述:

    [AUDIT ] CWWKZ0001I: Application Demo started in 1.235 seconds.

    表明 Demo 應(yīng)用已經(jīng)成功部署了,同時(shí),在 Eclipse 自帶的瀏覽器里可以看到如下頁(yè)面信息:

    圖 18. Demo 運(yùn)行頁(yè)面
    圖 18. Demo 運(yùn)行頁(yè)面

    讓我們回過(guò)頭來(lái)看看 server.xml 里面的內(nèi)容:

    清單 5. server.xml
     <server description="new server">       <!-- Enable features -->      <featureManager>          <feature>jsp-2.2</feature>          <feature>localConnector-1.0</feature>       </featureManager>       <httpEndpoint host="localhost" httpPort="9080" httpsPort="9443"      id="defaultHttpEndpoint"/>       <applicationMonitor updateTrigger="mbean"/>       <application id="Demo" location="Demo.war" name="Demo" type="war"/>   </server>

    其中:

    <feature /> 包含了應(yīng)用程序中所用到的功能包,如果你啟用了 jsp-2.2,那么 Liberty 默認(rèn)支持對(duì) Servlet 3.0。

    <httpEndpoint /> 指定了 HTTP 訪問(wèn)的端口,我們可以在這里改變默認(rèn)的端口。

    <applicationMonitor /> 用來(lái)配置對(duì)應(yīng)用程序的監(jiān)控模式,updateTrigger 屬性是用來(lái)控制動(dòng)態(tài)更新的,通過(guò) Liberty 工具部署應(yīng)用時(shí) updateTrigger 的值設(shè)置為 mbean,當(dāng)我們直接把應(yīng)用程序拖進(jìn) dropins 時(shí),需要將 updateTrigger 設(shè)為 polled,當(dāng)然,如果我們不需要應(yīng)用的動(dòng)態(tài)更新功能,可以將這個(gè)值設(shè)為 disabled.

    <application /> 用來(lái)指定和應(yīng)用本身相關(guān)的屬性,id 和 name 是應(yīng)用的唯一標(biāo)識(shí),type 指定了應(yīng)用的類(lèi)型,location 指定應(yīng)用所在的位置,默認(rèn)是在 apps 目錄里面,我們可以通過(guò)配置修改這個(gè)默認(rèn)設(shè)置。

    回頁(yè)首

    總結(jié)

    通 過(guò)上面的介紹,相信讀者已經(jīng)對(duì) WAS V8.5 最重要的特性 Liberty 有了一個(gè)全面的認(rèn)識(shí),作為新一代輕量級(jí)應(yīng)用服務(wù)器,Liberty 采用了和傳統(tǒng) WAS 相同的代碼,繼承了傳統(tǒng) WAS 的優(yōu)點(diǎn),無(wú)論在性能上還是在穩(wěn)定性上都優(yōu)越于其他同類(lèi)產(chǎn)品。Liberty 無(wú)論是在開(kāi)發(fā)環(huán)境中還是在產(chǎn)品環(huán)境中,都具有其他產(chǎn)品不可比擬的優(yōu)勢(shì)。我們有理由相信,在追求開(kāi)發(fā)效率和軟件質(zhì)量的今天,每一個(gè)程序員都會(huì)很快的接受這個(gè) WAS 家族的“小塊頭”。

    參考資料

    學(xué)習(xí)

    獲得產(chǎn)品和技術(shù)

    討論

    posted @ 2014-01-13 11:11 ZT文萃 閱讀(955) | 評(píng)論 (0)編輯 收藏

    IBM邀請(qǐng)我們公司試用websphere application server v8.5 liberty profile,因此經(jīng)理讓我下載下來(lái)安裝,測(cè)試一下,正好我正對(duì)這個(gè)新東西也挺感興趣的,所以在此把過(guò)程記錄下來(lái).

    一、簡(jiǎn)介
    Liberty profile是WAS V8.5的一個(gè)新特性,它代表WAS服務(wù)器上的App正常運(yùn)行必須的一組運(yùn)行時(shí)環(huán)境集合,這個(gè)環(huán)境是可以動(dòng)態(tài)配置的。簡(jiǎn)單說(shuō)Liberty profile就是WAS8.5的精簡(jiǎn)版,具有占用空間少、啟動(dòng)速度快、調(diào)試方便、完全支持JavaEE、App無(wú)縫移植到WAS8.5等特性,特別適合 開(kāi)發(fā)測(cè)試階段使用。


    二、安裝,部署


    1.前提:
    確保計(jì)算機(jī)上正確安裝了JDK1.6或以上版本,Eclipse3.7或以上版本(可選)。
    2.安裝Liberty profile
    將下載得到的Zip包was4d-20111202-0614.zip,解 壓到磁盤(pán)任意目錄下,無(wú)誤后安裝完畢。可以參照根目錄下的readme.txt文件,掌握Liberty profile的基本配置管理。在這里假設(shè)Liberty profile的安裝目錄為<install.dir>。
    3.創(chuàng)建server實(shí)例
    Liberty profile繼承了WAS的profile特性,即運(yùn)行時(shí)環(huán)境可以以實(shí)例的形式單獨(dú)動(dòng)態(tài)配置,實(shí)例之間互不影響。因此,進(jìn)入cmd模式下 cd bin ,然后was4d.bat create myserver,這樣就創(chuàng)建了一個(gè)名稱(chēng)為myserver的運(yùn)行時(shí)環(huán)境實(shí)例,其磁盤(pán)路徑為<install.dir>\usr \servers\myserver,我們開(kāi)發(fā)的App可以部署到myserver目錄下的dropins文件夾中運(yùn)行,供外界訪問(wèn)。
    4.安裝Liberty profile Eclipse開(kāi)發(fā)插件
    在Eclipse Marketplace中鍵入websphere,在隨后的結(jié)果列表中找到websphere application server v8.5 liberty profile beta一項(xiàng),點(diǎn)擊install安裝,完畢后重啟Eclipse。
    5.在Eclipse中引用myserver實(shí)例
    在Eclipse 中的Server視圖中右擊 New-Server,在彈出框中選擇IBM- websphere application server v8.5 liberty profile beta,然后根據(jù)提示選擇myserver實(shí)例即可,無(wú)誤完畢后會(huì)在Server視圖中出現(xiàn)websphere application server v8.5 liberty profile beta at localhost 一項(xiàng),右擊websphere application server v8.5 liberty profile beta at localhost選擇start,此時(shí)Console視圖會(huì)出現(xiàn)myserver啟動(dòng)日志,“The feature update is complete after …”表示啟動(dòng)成功。
    6.開(kāi)發(fā)App
    在Eclipse中新建一個(gè)簡(jiǎn)單的Java Web App 命名為hello-app,在其index.jsp頁(yè)面中輸入hello world即可。
    7.App部署和卸載 
    部署和卸載行為可以在兩個(gè)地方發(fā)生,一個(gè)是server.xml配置文件中,另一個(gè)是dropins目錄.
    (1) 在 myserver目錄下找到server.xml文件并打開(kāi),加入”<application id="hello-app" location="hello-app.war" name="hello-app" type="war"/>”即可完成部署,刪除這句話即可完成卸載,即便myserver處于運(yùn)行狀態(tài)也可以這樣操作,因?yàn)閟erver.xml是 可以即時(shí)更新的,所做的修改能夠馬上生效。相對(duì)于tomcat這是Liberty profile的一個(gè)優(yōu)勢(shì),當(dāng)tomcat的server.xml內(nèi)容被修改修改時(shí)必須重啟才能生效。這種部署方式適用于開(kāi)發(fā)階段。
    (2) 直接將war包扔進(jìn)myserver目錄下的dropins文件夾中即可完成部署,刪除此war包機(jī)完成卸載,這種部署適用于實(shí)施階段。
    8.訪問(wèn)App 
    在瀏覽器中鍵入http://localhost:9080/hello-app/index.jsp,頁(yè)面顯示hello world,說(shuō)明App部署成功,運(yùn)行正常。


    三、Liberty,Tomcat6,was比較
    Tomcat 和was的比較很簡(jiǎn)單,一個(gè)開(kāi)源一個(gè)商用,開(kāi)源的Tomcat小巧,靈活適合做開(kāi)發(fā)測(cè)試,商用的was它提供了一個(gè)平臺(tái),你可以基于各種增值功能、使用 Process Server、MQ等等更先進(jìn)而穩(wěn)定的架構(gòu)來(lái)構(gòu)建應(yīng)用.對(duì)于并發(fā),高性能訪問(wèn)的處理能力會(huì)更強(qiáng).
    由于Liberty profile 是 was 的簡(jiǎn)易版本,所以Liberty profile只適合開(kāi)發(fā)相對(duì)比較簡(jiǎn)單的App,而這個(gè)App可以無(wú)縫移植到WAS上.

    Tomcat6 與 Liberty profile的比較,紅色為各自的優(yōu)勢(shì)

    Tomcat6 Liberty profile 

    占用空間 27MB 56MB

    啟動(dòng)時(shí)間 996ms 1600ms

    配置復(fù)雜度 較復(fù)雜,配置文件較多 很簡(jiǎn)單,可以無(wú)配置文件

    Server.xml
    即時(shí)更新 不支持,需重啟生效支持,即時(shí)生效

    運(yùn)行環(huán)境
    多實(shí)例 不支持,靈活性較差支持,靈活性較高

    Java EE
    規(guī)范支持 不支持serverlet3.0支持serverlet3.0
    支持jpa2.0 支持jpa2.0
    不支持EJB 不支持EJB

    四、總結(jié)
    之前開(kāi)發(fā)WAS應(yīng)用時(shí),如果這個(gè)App不依賴于容器,我們通常的做法是在Tomcat中開(kāi)發(fā)測(cè)試,在WAS中部署運(yùn)行,而部署時(shí)App的配置文件必定要做相應(yīng)的修改,比如JNDI。
    現(xiàn)在不用了,我們有了Liberty profile----WAS的一組運(yùn)行時(shí)環(huán)境,它與Tomcat一樣免費(fèi),輕巧,快速,靈活,而且開(kāi)發(fā)的應(yīng)用不做任何修改就能移植到WAS上。
    相對(duì)于與Tomcat6,Liberty profile支持最新的JavaEE規(guī)范,增加了很多功能更加強(qiáng)大,使用非常方便的特性,所以Liberty profile比Tomcat更優(yōu)秀,即便App不是基于WAS也可以使用Liberty profile進(jìn)行開(kāi)發(fā)測(cè)試。

    posted @ 2014-01-10 18:36 ZT文萃 閱讀(1675) | 評(píng)論 (1)編輯 收藏

    http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1207_zhuxl_liberty/1207_zhuxl_liberty.html

    2012 年 6 月 15 日,IBM 正式發(fā)布了 WebSphere Application Server V8.5 版本(簡(jiǎn)稱(chēng) WAS V8.5)。WebSphere Liberty Profile Server(簡(jiǎn)稱(chēng) Liberty)是 WAS V8.5 中最主要的新特性,它是一個(gè)基于 OSGi 內(nèi)核,高模塊化,高動(dòng)態(tài)性的輕量級(jí) WebSphere 應(yīng)用服務(wù)器,其安裝極為簡(jiǎn)單(解壓即可)、啟動(dòng)非常快、占用很少的磁盤(pán)和內(nèi)存空間,支持 Web、mobile 和 OSGi 應(yīng)用的開(kāi)發(fā),旨在提高開(kāi)發(fā)人員的生產(chǎn)效率。

    在本文中,我們將詳細(xì)介紹什么是 Liberty 以及如何使用 Liberty 快速的開(kāi)發(fā)和部署應(yīng)用,使讀者迅速的掌握這一全新的輕量級(jí)應(yīng)用服務(wù)器。

    0 評(píng)論:

    朱 修磊, 軟件工程師, IBM

    2012 年 7 月 19 日

    • +內(nèi)容

    什么是 WebSphere Liberty Profile Server ?

    Liberty 是一款全新的輕量級(jí)應(yīng)用服務(wù)器,它將用戶的良好開(kāi)發(fā)體驗(yàn)作為最主要的出發(fā)點(diǎn)。其主要特點(diǎn)和內(nèi)容包括:

    • 高 模塊化——該功能允許用戶根據(jù)自己應(yīng)用程序的需求啟用或者禁用相關(guān)的 feature(所謂 feature,在這里指的是運(yùn)行應(yīng)用程序所需要的各種資源的支持。比如,應(yīng)用程序用到了 JSP,我們就需要啟動(dòng) JSP 這個(gè) feature,如果不在需要此 feature,就可以將其禁用。通過(guò)這種模塊化的控制,我們可以按需啟動(dòng)不同的 feature,包括 JSP, Servlet, JPA 等等,這種控制是實(shí)現(xiàn)輕量級(jí)應(yīng)用服務(wù)器的基礎(chǔ))。
    • 輕量級(jí)—— Liberty 采用了多種技術(shù)進(jìn)行瘦身和優(yōu)化(主要是 OSGi 的應(yīng)用),與傳統(tǒng)的 WAS 相比,極大的減少了運(yùn)行時(shí)的內(nèi)存消耗。
    • 高動(dòng)態(tài)性——由于采用了 OSGi 的架構(gòu),程序員在開(kāi)發(fā)的時(shí)候,可以動(dòng)態(tài)修改配置文件,應(yīng)用程序以及服務(wù)器的運(yùn)行時(shí)信息,這些修改都是實(shí)時(shí)生效的,不需要重啟服務(wù)器。
    • 快速——由于采用了高模塊化的設(shè)計(jì),Liberty 應(yīng)用服務(wù)器會(huì)“按需啟動(dòng)”,自身消耗的系統(tǒng)資源很少,對(duì)執(zhí)行任務(wù)的反應(yīng)時(shí)間也非常短,例如,一般來(lái)說(shuō) Liberty 的啟動(dòng)時(shí)間小于 5 秒。
    • 配置簡(jiǎn)單——在整個(gè)開(kāi)發(fā)過(guò)程中,用戶只需要和一個(gè)配置文件(server.xml)打交道,而且配置的使用也非常靈活。

    盡 管 Liberty 與傳統(tǒng) WAS 相比只是一個(gè)“小塊頭”,但是在 Web 和 OSGi 應(yīng)用程序的開(kāi)發(fā)上,Liberty 與傳統(tǒng) WAS 完全保持一致,在 Liberty 上開(kāi)發(fā)的程序,可以直接移植到傳統(tǒng) WAS 上,不需要做任何的改變。相比傳統(tǒng) WAS 的龐大,Liberty 在為用戶提供良好的開(kāi)發(fā)體驗(yàn)上遙遙領(lǐng)先。

    作為應(yīng)用服務(wù)器,Liberty 支持與多種開(kāi)發(fā)工具的結(jié)合:

    • 支持在 Rational Application Developer 中使用 Liberty,推薦在企業(yè)級(jí)應(yīng)用開(kāi)發(fā)中使用這種方式,因?yàn)檫@種方式支持最大范圍的編程模型以及 Cloud。
    • 支 持在 Eclipse 3.6(Helios) 或者 3.7(Indigo) 中使用 Liberty, 需要從 Eclipse Marketplace 安裝 WebSphere Application Server V8.5 Developer Tools for Eclipse 或者 WebSphere Application Server V8.5 Liberty Profile Developer Tools for Eclipse。在 Eclipse 中使用 Liberty 是完全免費(fèi)的,當(dāng)然,如果你需要得到 IBM 工程師的支持,則需要支付額外的費(fèi)用。

    同時(shí),Liberty 服務(wù)器也支持多種主流的操作系統(tǒng)平臺(tái),包括 Windows、Linux、Unix、z/OS 以及 Mac OS 等。Liberty 既可以用在開(kāi)發(fā)環(huán)境中,也可以用于產(chǎn)品環(huán)境(Mac OS 除外)。Liberty 同時(shí)支持 Oracle 和 IBM JDK,支持的最低版本分別是:Oracle Java™ 6 update 26 和 IBM Java 6.0 (J9 2.6) SR 1。

    回頁(yè)首

    初探 WebSphere Liberty Profile Server

    快速安裝

    在 本文中我們主要介紹 Eclipse 與 Liberty 的結(jié)合使用,在開(kāi)始搭建 Liberty 的開(kāi)發(fā)環(huán)境前,讀者需要自行下載和安裝 Oracle 或者 IBM JDK,并配置好環(huán)境變量,這是 Liberty 能正常運(yùn)行的必要條件。如果是以開(kāi)發(fā)為目的,那么使用 Liberty 以及 Liberty 工具是完全免費(fèi)的,并且沒(méi)有時(shí)間限制。

    在線安裝 Liberty 開(kāi)發(fā)工具

    打開(kāi) Eclipse,依次點(diǎn)擊 Help > Eclipse MarketPlace,在出現(xiàn)的頁(yè)面搜索欄里輸入 websphere,并點(diǎn)擊搜索。

    圖 1. 安裝 Liberty 開(kāi)發(fā)工具
    圖 1. 安裝 Liberty 開(kāi)發(fā)工具

    在 搜索結(jié)果中會(huì)看到如上紅色方框標(biāo)注的工具,其中 WebSphere Application Server V8.5 Liberty Profile Developer Tools 是 WebSphere Application Server V8.5 Developer Tools 的子集,對(duì)于搭建 Liberty 開(kāi)發(fā)環(huán)境,直接安裝前者就可以,如果讀者還需要將 Eclipse 與傳統(tǒng)的 WAS 結(jié)合使用,那么就需要安裝后一個(gè)工具。在本文中,我們直接安裝 WebSphere Application Server V8.5 Liberty Profile Developer Tools。在安裝過(guò)程結(jié)束后,需要重啟 Eclipse。待 Eclipse 重啟后,選擇 Servers 視圖,右擊新建一個(gè)服務(wù)器,出現(xiàn)如下圖所示,則表明 Liberty 開(kāi)發(fā)工具已經(jīng)成功安裝

    圖 2. 驗(yàn)證 Liberty 開(kāi)發(fā)工具安裝成功
    圖 2. 驗(yàn)證 Liberty 開(kāi)發(fā)工具安裝成功

    創(chuàng)建 Liberty 服務(wù)器

    在安裝好 Liberty 開(kāi)發(fā)工具后,我們需要在 Eclipse 中創(chuàng)建 Liberty 服務(wù)器,接著圖 2 所示,選擇 WebSphere Application Server V8.5 Liberty Profile,點(diǎn)擊 Next

    圖 3. 選擇 Liberty 的安裝位置
    圖 3. 選擇 Liberty 的安裝位置

    在 上圖中,我們需要指定 Liberty 服務(wù)器的安裝位置,對(duì)于如何下載 Liberty 服務(wù)器,有兩種選擇:1. 訪問(wèn) wasdev.net 站點(diǎn),下載 Liberty 的安裝文件,Liberty 安裝文件只有不到 50M,下載成功后只需要解壓該文件到磁盤(pán)的任何一個(gè)位置即可完成 Liberty 的安裝,“解壓即安裝”,安裝 Liberty 就是如此簡(jiǎn)單。然后,點(diǎn)擊 Browser 選擇 Liberty 的安裝位置,即可繼續(xù)創(chuàng)建 Liberty 服務(wù)器;2. 直擊點(diǎn)擊上圖的 Download or install,安裝提示進(jìn)行操作,只需要幾分鐘就可以在線下載并安裝一個(gè)全新的 Liberty 服務(wù)器。在這里我們需要指出的是,您也可以選擇直接使用 Liberty 服務(wù)器,而不是將其與 Eclipse 搭配起來(lái)使用,直接解壓下載的 Liberty 到任意目錄,就可以使用了。點(diǎn)擊 Next,因?yàn)?Liberty 默認(rèn)是沒(méi)有創(chuàng)建服務(wù)器的,所以可以得到下圖

    圖 4. 空白的 Liberty 服務(wù)器
    圖 4. 空白的 Liberty 服務(wù)器

    點(diǎn)擊 New,創(chuàng)建你的第一個(gè) Liberty 服務(wù)器

    圖 5. 創(chuàng)建 Liberty 服務(wù)器
    圖 5. 創(chuàng)建 Liberty 服務(wù)器

    為你的 Liberty 任意指定一個(gè)名字,點(diǎn)擊 Finish 完成創(chuàng)建。在 Servers 視圖中,我們將看到創(chuàng)建好的 DemoServer。

    圖 6. Liberty 服務(wù)器概覽
    圖 6. Liberty 服務(wù)器概覽

    從上圖中我們可以看到 DemoServer 是停止?fàn)顟B(tài),右鍵 DemoServer,選擇 Start 啟動(dòng) Liberty 服務(wù)器,在 Console 視圖中檢查 log,可以看到 Liberty 已經(jīng)正常啟動(dòng)。

    清單 1. Liberty 啟動(dòng)日志
     Launching DemoServer (wlp-1.0.0.20120428-1251/websphere-kernel_1.0.0)   on Java HotSpot(TM) Client VM, version 1.7.0_01-b08 (en_US)   [AUDIT   ] CWWKE0001I: The server DemoServer has been launched.   [AUDIT   ] CWWKZ0058I: Monitoring dropins for applications.   [AUDIT   ] CWWKF0011I: The server DemoServer is ready to run a smarter planet.

    在上圖中,雙擊 Server Configuration,可以看到如下配置文件(server.xml)。

    清單 2. 初始的 server.xml 文件
     <server description="new server">       <!-- Enable features -->      <featureManager>          <feature>jsp-2.2</feature>      </featureManager>       <httpEndpoint id="defaultHttpEndpoint"                   host="localhost"                   httpPort="9080"                   httpsPort="9443" />    </server>

    這個(gè) server.xml 就是 Liberty 服務(wù)器中唯一的配置文件,我們?cè)陂_(kāi)發(fā)過(guò)程中對(duì)應(yīng)用程序或者 Liberty 運(yùn)行時(shí)的配置都是在這個(gè)文件中完成。在默認(rèn)情況下,Liberty 已經(jīng)啟用了 JSP 功能,我們可以動(dòng)態(tài)的根據(jù)應(yīng)用的需求為 Liberty 增加各種功能支持,方法如下:

    在 server.xml 編輯窗口下方,選擇 Design 模式,

    圖 7. 圖形化編輯配置文件
    圖 7. 圖形化編輯配置文件

    選擇左側(cè) Feature Manager,然后選擇右側(cè) Add,出現(xiàn)下圖列表,根據(jù)需要添加相應(yīng)的功能支持。

    圖 8. Features 列表
    圖 8. Features 列表

    當(dāng) 然,讀者也可以直接手工編輯 server.xml,手動(dòng)添加需要的 Feature,但是要注意遵循 Liberty 配置文件的編寫(xiě)規(guī)范。到此,我們已經(jīng)成功的安裝了 Liberty 服務(wù)器,并搭建好了 Liberty 服務(wù)器的開(kāi)發(fā)環(huán)境。開(kāi)始我們的例子程序之前,下文首先向讀者更深層次的介紹 Liberty 的功能特性。

    簡(jiǎn)化服務(wù)器配置

    在 Liberty 中,和用戶打交道的只有一個(gè)配置文件 server.xml。關(guān)于應(yīng)用程序或者服務(wù)器運(yùn)行時(shí)的所有配置都是在這一個(gè)文件中完成的,簡(jiǎn)化了服務(wù)器的配置,也減輕了程序員的負(fù)擔(dān)。我們可以在 Eclipse 中直接編輯該文件,修改內(nèi)容會(huì)實(shí)時(shí)生效。這個(gè)配置文件是可以被導(dǎo)出,也可以被不同的服務(wù)器共享。

    靈活的服務(wù)器配置

    圖 9. 靈活配置
    圖 9. 靈活配置

    對(duì) 于配置文件的使用是非常靈活的,例如:如果有很多個(gè) Liberty 都需要用到同一個(gè)配置文件,那么可以將該文件單獨(dú)導(dǎo)出,存放在一個(gè)共享的位置,單個(gè)的 Liberty 服務(wù)器可以利用 <incluse /> 屬性導(dǎo)入共享的配置文件;又比如配置文件的內(nèi)容非常多而且繁雜,我們就可以將其中的內(nèi)容分別寫(xiě)在不同的配置文件中(稱(chēng)為不同的配置文件片段),同樣利用 <include /> 將這些片段文件導(dǎo)入到主配置文件中,運(yùn)行時(shí)會(huì)負(fù)責(zé)去實(shí)時(shí)的解析這些片段文件。

    應(yīng)用部署

    在 Liberty 中部署應(yīng)用也是非常簡(jiǎn)單的事情,打開(kāi)你的 Liberty 安裝目錄 <Liberty_Install_dir>\usr\servers\server_name ,可以看到如下目錄結(jié)構(gòu) :

    圖 10. 應(yīng)用部署目錄
    圖 10. 應(yīng)用部署目錄

    在 上圖中 apps 和 dropins 是兩個(gè)存放安裝的應(yīng)用的文件夾,我們可以通過(guò) Eclipse 部署應(yīng)用到 Liberty,應(yīng)用文件將被放在 apps 下面(這個(gè)是應(yīng)用部署的默認(rèn)目錄,也可以通過(guò)配置,將應(yīng)用文件部署到其他任何位置)。我們也可以直接拷貝應(yīng)用程序(例如 war 文件)到 dropins 目錄,當(dāng) Liberty 啟動(dòng)的時(shí)候,就會(huì)自動(dòng)掃描上面的兩個(gè)文件夾,然后啟動(dòng)文件夾內(nèi)的應(yīng)用程序。當(dāng)然,啟動(dòng)應(yīng)用前,要確保已經(jīng)配置好 server.xml 里的相關(guān)信息。

    動(dòng)態(tài)加載模塊

    圖 11. 動(dòng)態(tài)化加載
    圖 11. 動(dòng)態(tài)化加載

    與 傳統(tǒng) WAS 不同的是,Liberty 并不是一個(gè)靜態(tài)的服務(wù)器,它是動(dòng)態(tài)的,可以根據(jù)應(yīng)用程序的需要?jiǎng)討B(tài)加載相應(yīng)的模塊。這些模塊是以“feature”來(lái)定義的,比如 JSP, Servlet 等,都是不同的 feature。可以將 feature 看作是一個(gè)獨(dú)立的模塊,它由一到多個(gè) OSGi bundle 組成,共同來(lái)完成某一個(gè)特定的任務(wù)。這些 feature 可是隨時(shí)被添加和移除,而不需要重啟服務(wù)器,正是得益于這樣的動(dòng)態(tài)化設(shè)計(jì),Liberty 無(wú)論在啟動(dòng)時(shí)間還是反應(yīng)時(shí)間上都更勝一籌,為程序員帶來(lái)了快速的開(kāi)發(fā)體驗(yàn)。

    運(yùn)行時(shí)動(dòng)態(tài)更新

    圖 12. 動(dòng)態(tài)更新
    圖 12. 動(dòng)態(tài)更新

    Liberty 為我們提供了一個(gè)可以動(dòng)態(tài)實(shí)時(shí)更新的運(yùn)行時(shí),無(wú)論你是修改了應(yīng)用程序,還是修改配置文件都會(huì)實(shí)時(shí)的被 Liberty 檢測(cè)到,并立即更新運(yùn)行時(shí)到最新?tīng)顟B(tài),無(wú)需重啟 Liberty 服務(wù)器。新的 feature 可以被隨時(shí)的添加到 server.xml 中,運(yùn)行時(shí)為負(fù)責(zé)實(shí)時(shí)啟動(dòng)相應(yīng)的功能模塊,這一切都與程序員來(lái)說(shuō)都是透明的。例如:我們首先啟動(dòng) Liberty 服務(wù)器,然后將一個(gè) JSP 應(yīng)用放到 dropins 目錄里,如果你沒(méi)有在 server.xml 中啟動(dòng) JSP 功能,那么該應(yīng)用就不會(huì)被啟動(dòng)。你將會(huì)得到一個(gè)警告信息,提示你應(yīng)該首先啟用 JSP 功能,然后該應(yīng)用才會(huì)被實(shí)時(shí)的啟動(dòng)。同樣,如果你將 JSP 功能從 server.xml 中移除,該應(yīng)用也會(huì)被立刻停止。

    新型的軟件部署方式

    圖 13. 集中管理 Liberty 服務(wù)器
    圖 13. 集中管理 Liberty 服務(wù)器

    當(dāng) 我們使用 Liberty 開(kāi)發(fā)完應(yīng)用程序后,Liberty 為我們提供了一個(gè)全新的軟件部署方式,我們可以將 Liberty 服務(wù)器和應(yīng)用程序一起打包為 ZIP 文件,然后將這個(gè) ZIP 傳輸?shù)叫枰渴疖浖姆?wù)器上直接解壓即可。為了支持適合云端和大規(guī)模應(yīng)用的部署,WebSpere(傳統(tǒng) WAS)還提供了集中管理部署的功能(需要安裝 WAS ND 版本),使用該功能可以將我們事先打好的 ZIP 包遠(yuǎn)程的傳輸?shù)蕉鄠€(gè)服務(wù)器上,在傳送完成后,WAS 還會(huì)負(fù)責(zé)解壓和安裝。另外,WAS 的集中管理功能還提供了遠(yuǎn)程啟動(dòng)、停止和卸載 Liberty 服務(wù)器的功能。

    Liberty 之于開(kāi)發(fā)人員

    對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),Liberty 的出現(xiàn)是一個(gè)十分振奮人心的消息。首先,Liberty 作為一個(gè)輕量級(jí)的應(yīng)用服務(wù)器,和 Eclipse 可以完美的結(jié)合,其最重要的特性就是關(guān)注程序員的開(kāi)發(fā)體驗(yàn),包括快速的下載、安裝和環(huán)境搭建,在開(kāi)發(fā)過(guò)程中,實(shí)時(shí)的應(yīng)用更新而無(wú)需重啟服務(wù)器,這些都會(huì)極 大的提高程序員的開(kāi)發(fā)效率;其次,在開(kāi)發(fā),測(cè)試和部署應(yīng)用的過(guò)程中,Liberty 都極其友好和方便,其與傳統(tǒng) WAS 的完全兼容,也為應(yīng)用程序的遷移提供了有力的保障。

    回頁(yè)首

    與主流 WEB 容器的對(duì)比

    從某種程度上來(lái)講,目前,Liberty 與 Tomcat 處在同一個(gè)產(chǎn)品層次上,我們從功能特性、使用體驗(yàn)以及標(biāo)準(zhǔn)支持上對(duì)這兩個(gè)服務(wù)器進(jìn)行了對(duì)比,從中,我們可以看出 Liberty 在輕量級(jí)服務(wù)器中所具有的獨(dú)特優(yōu)勢(shì):

    表 1. Liberty VS Tomcat
    對(duì)比項(xiàng)TomcatLiberty
    大小<30M<50M
    啟動(dòng)速度<5s<5s
    Java EE 標(biāo)準(zhǔn)支持JSP 2.2, Servlet 3.0, JSTL 1.2 用戶需要添加相關(guān)的 jar 包來(lái)實(shí)現(xiàn)對(duì)其它標(biāo)準(zhǔn)的支持JSP 2.2, Servlet 3.0, JSF 2.0, JSTL 1.2, JPA 2.0, JDBC 4.0, JAX-RS 1.0, JNDI 1.0, Bean Validation 1.0, SSL 1.0, Security 1.0, Web Security 1.0, JMX 1.0 可動(dòng)態(tài)加載或卸載對(duì)應(yīng)的 feature
    OSGi 編程模型是,支持 Blue Print 1.0, WAB 1.0
    開(kāi)發(fā)工具支持 Eclipse支持 eclipse, IBM Rational Application Developer
    支持的操作系統(tǒng)Linux, WindowsLinux, Windows, AIX, Mac, HP-UX, Solaris, iSeries, zSeries
    性能一般與傳統(tǒng) WAS 具有相同的核心代碼,性能好
    應(yīng)用程序熱部署支持支持
    配置文件多個(gè)配置文件,更新后需重啟服務(wù)器一個(gè)配置文件,更新后及時(shí)生效,無(wú)需重啟
    可移植性您可以利用 IBM Application Migration Toolkit 將 Tomcat 上開(kāi)發(fā)的應(yīng)用快速移植到 WebSphere 應(yīng)用服務(wù)器。反之,則不然。Liberty 和傳統(tǒng) WAS 對(duì)編程模型和標(biāo)準(zhǔn)的支持一致。在 Liberty 上開(kāi)發(fā)的應(yīng)用可以直接運(yùn)行在傳統(tǒng) WAS 之上
    文檔官方文檔涵蓋內(nèi)容有限,但網(wǎng)絡(luò)上相關(guān)內(nèi)容(包括:blog,技術(shù)文章等)廣泛。http://wasdev.net 上提供下載地址、文檔、視頻、音頻、樣本引用等。還有 WAS 的信息中心也有大量文檔可供參考閱讀。
    社區(qū)http://tomcat.apache.org 有 dev 和 user mailing list,沒(méi)有官方支持,有時(shí)回復(fù)不夠及時(shí)。http://wasdev.net,可以與開(kāi)發(fā)人員直接交流
    長(zhǎng)期戰(zhàn)略優(yōu)勢(shì)一般用于開(kāi)發(fā)環(huán)境,生產(chǎn)環(huán)產(chǎn)能用的比較少。支持的并發(fā)度不高,可擴(kuò)展性不強(qiáng)。 Liberty 與傳統(tǒng) WAS 共享同一代碼,天生具有其高效穩(wěn)定的特點(diǎn)。開(kāi)發(fā) - 測(cè)試 - 生產(chǎn)切換零代價(jià)。可擴(kuò)展性高,支持多個(gè) server 間的負(fù)載均衡和故障恢復(fù)。

    回頁(yè)首

    Demo:使用 Eclipse 和 Liberty 開(kāi)發(fā) Web 應(yīng)用

    通 過(guò)上面的介紹,相信大家對(duì) Liberty 已經(jīng)有了一個(gè)大概的認(rèn)識(shí),接下來(lái)我們通過(guò)一個(gè) Demo 來(lái)向大家展示如何使用 Liberty 和 Eclipse 開(kāi)發(fā) Web 應(yīng)用。開(kāi)始 Demo 之前,請(qǐng)大家根據(jù)上文的介紹,搭建自己的 Liberty 開(kāi)發(fā)環(huán)境,并安裝好 JDK 并且配置好環(huán)境變量。

    Demo 程序很簡(jiǎn)單,包含一個(gè) Servlet,實(shí)現(xiàn)打印當(dāng)前時(shí)間的功能。步驟如下:

    1. 打開(kāi) Eclipse,選擇 File > New > Web>Dynamic Web Project
    2. 設(shè)置如下屬性值:
      1. Project name: Demo
      2. Target runtime: WebSphere Application Server V8.5 Liberty Profile
      圖 14. 創(chuàng)建動(dòng)態(tài) Web 工程
      圖 14. 創(chuàng)建動(dòng)態(tài) Web 工程
    3. 點(diǎn)擊 Next 兩次,然后點(diǎn)擊 Finish,完成工程的創(chuàng)建。

      此時(shí),你可以在左側(cè)的資源導(dǎo)航頁(yè)面看到剛剛創(chuàng)建完成的 Demo 工程,展開(kāi)工程就可以看到一些默認(rèn)創(chuàng)建的資源。

    4. 右擊 Src 目錄,選擇 New > Class
    5. 設(shè)置如下屬性值:
      1. Package: com.date.demo
      2. Name: DateProvider
      圖 15. 創(chuàng)建 java 文件
      圖 15. 創(chuàng)建 java 文件
    6. 點(diǎn)擊 Finish
    7. 編輯如下代碼到 DateProvider.java
      清單 3. DateProvider.java
       package com.date.demo;    import java.util.Date;    public class DateProvider {    public String getDate() {   // TODO Auto-generated method stub   return new Date().toString();   }   }

      該文件只包含一個(gè)方法,getDate() 用來(lái)獲得當(dāng)前時(shí)間。

    8. 右擊 Src,選擇 New > Servlet
    9. 設(shè)置如下屬性值
      1. Java package: com.date.demo
      2. Class name: DatePrintServlet
      圖 16. 創(chuàng)建 Servlet 文件
      圖 16. 創(chuàng)建 Servlet 文件
    10. 點(diǎn)擊 Finish,完成創(chuàng)建。
    11. 編輯如下內(nèi)容到 DatePrintServlet.java
      清單 4. DatePrintServlet.java
       package com.date.demo;    import java.io.IOException;   import javax.servlet.ServletException;   import javax.servlet.annotation.WebServlet;   import javax.servlet.http.HttpServlet;   import javax.servlet.http.HttpServletRequest;   import javax.servlet.http.HttpServletResponse;    /**   * Servlet implementation class DatePrintServlet   */   @WebServlet("/DatePrintServlet")   public class DatePrintServlet extends HttpServlet {   private static final long serialVersionUID = 1L;            /**       * @see HttpServlet#HttpServlet()       */      public DatePrintServlet() {          super();          // TODO Auto-generated constructor stub      }   /**   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)   */   protected void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {   // TODO Auto-generated method stub   DateProvider dateProvider=new DateProvider();   response.getWriter().println(dateProvider.getDate());   }    /**   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)   */   protected void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {   // TODO Auto-generated method stub   }    }
    12. 在左側(cè)導(dǎo)航欄選擇 DatePrintServlet,點(diǎn)擊右鍵 Run As > Run on Server , 如下圖:
      圖 17. 選擇 Liberty 服務(wù)器
      圖 17. 選擇 Liberty 服務(wù)器
    13. 點(diǎn)擊 Finish,Liberty 開(kāi)發(fā)工具將會(huì)為我們部署上面的 Demo 程序,并啟動(dòng) Liberty 服務(wù)器。從 console 的日志里我們可以看到如下描述:

    [AUDIT ] CWWKZ0001I: Application Demo started in 1.235 seconds.

    表明 Demo 應(yīng)用已經(jīng)成功部署了,同時(shí),在 Eclipse 自帶的瀏覽器里可以看到如下頁(yè)面信息:

    圖 18. Demo 運(yùn)行頁(yè)面
    圖 18. Demo 運(yùn)行頁(yè)面

    讓我們回過(guò)頭來(lái)看看 server.xml 里面的內(nèi)容:

    清單 5. server.xml
     <server description="new server">       <!-- Enable features -->      <featureManager>          <feature>jsp-2.2</feature>          <feature>localConnector-1.0</feature>       </featureManager>       <httpEndpoint host="localhost" httpPort="9080" httpsPort="9443"      id="defaultHttpEndpoint"/>       <applicationMonitor updateTrigger="mbean"/>       <application id="Demo" location="Demo.war" name="Demo" type="war"/>   </server>

    其中:

    <feature /> 包含了應(yīng)用程序中所用到的功能包,如果你啟用了 jsp-2.2,那么 Liberty 默認(rèn)支持對(duì) Servlet 3.0。

    <httpEndpoint /> 指定了 HTTP 訪問(wèn)的端口,我們可以在這里改變默認(rèn)的端口。

    <applicationMonitor /> 用來(lái)配置對(duì)應(yīng)用程序的監(jiān)控模式,updateTrigger 屬性是用來(lái)控制動(dòng)態(tài)更新的,通過(guò) Liberty 工具部署應(yīng)用時(shí) updateTrigger 的值設(shè)置為 mbean,當(dāng)我們直接把應(yīng)用程序拖進(jìn) dropins 時(shí),需要將 updateTrigger 設(shè)為 polled,當(dāng)然,如果我們不需要應(yīng)用的動(dòng)態(tài)更新功能,可以將這個(gè)值設(shè)為 disabled.

    <application /> 用來(lái)指定和應(yīng)用本身相關(guān)的屬性,id 和 name 是應(yīng)用的唯一標(biāo)識(shí),type 指定了應(yīng)用的類(lèi)型,location 指定應(yīng)用所在的位置,默認(rèn)是在 apps 目錄里面,我們可以通過(guò)配置修改這個(gè)默認(rèn)設(shè)置。

    回頁(yè)首

    總結(jié)

    通 過(guò)上面的介紹,相信讀者已經(jīng)對(duì) WAS V8.5 最重要的特性 Liberty 有了一個(gè)全面的認(rèn)識(shí),作為新一代輕量級(jí)應(yīng)用服務(wù)器,Liberty 采用了和傳統(tǒng) WAS 相同的代碼,繼承了傳統(tǒng) WAS 的優(yōu)點(diǎn),無(wú)論在性能上還是在穩(wěn)定性上都優(yōu)越于其他同類(lèi)產(chǎn)品。Liberty 無(wú)論是在開(kāi)發(fā)環(huán)境中還是在產(chǎn)品環(huán)境中,都具有其他產(chǎn)品不可比擬的優(yōu)勢(shì)。我們有理由相信,在追求開(kāi)發(fā)效率和軟件質(zhì)量的今天,每一個(gè)程序員都會(huì)很快的接受這個(gè) WAS 家族的“小塊頭”。

    參考資料

    學(xué)習(xí)

    獲得產(chǎn)品和技術(shù)

    posted @ 2014-01-10 18:31 ZT文萃 閱讀(286) | 評(píng)論 (0)編輯 收藏

    每逢春運(yùn),鐵路系統(tǒng)唯一的官方購(gòu)票網(wǎng)站12306就會(huì)成為眾矢之的,今年也不例外。今年12306并未出現(xiàn)大面積 崩潰問(wèn)題,但這并不妨礙它再次被淹沒(méi)在一片埋怨聲中。1月5日,有網(wǎng)友在問(wèn)答網(wǎng)站“知乎”上提問(wèn),如果把12306外包給IBM或者阿里巴巴來(lái)做的話,能 不能比現(xiàn)在做得好?我們來(lái)看看獲得5千余名網(wǎng)友“點(diǎn)贊”的知乎用戶王強(qiáng)的解答吧。


    官方訂票網(wǎng)站12306崩潰時(shí)的頁(yè)面(資料圖)
    以下是王強(qiáng)的回復(fù)(有刪節(jié)):

    12306首秀被罵的狗血噴頭后鐵道部找來(lái)IBM、阿里巴巴等大企業(yè)要解決方案,給出的條件是資金管夠但是問(wèn)題得解決。幾大企業(yè)最后都拒絕了。
    12306 開(kāi)始自己嘗試解決問(wèn)題。他們發(fā)現(xiàn)市面上可以買(mǎi)到的成套解決方案都不足以應(yīng)付春運(yùn)購(gòu)票負(fù)載,所以只能自己改進(jìn)已有的數(shù)據(jù)庫(kù)以前12306用的是小型機(jī),發(fā)現(xiàn) 性能?chē)?yán)重不足,遂改用x86系統(tǒng)+linux平臺(tái)(原平臺(tái)為HP Superdome小型機(jī),UNIX系統(tǒng),Sybase ASE數(shù)據(jù)庫(kù))。最后他們的核心系統(tǒng)用了十幾個(gè)節(jié)點(diǎn)(現(xiàn)在應(yīng)該是17節(jié)點(diǎn))的多路Xeon E7(具體幾路待考),每個(gè)節(jié)點(diǎn)配1TB內(nèi)存,數(shù)據(jù)庫(kù)全部在內(nèi)存中運(yùn)行。2013年春運(yùn),12306系統(tǒng)峰值負(fù)載11萬(wàn)tps,與2012年淘寶雙11活 動(dòng)峰值負(fù)載相當(dāng),新的系統(tǒng)基本經(jīng)受住了考驗(yàn)。

    補(bǔ)充:以上內(nèi)容是我在2013年7月得知的信息,彼時(shí)沒(méi)有任何公開(kāi)來(lái)源提到過(guò)12306新系 統(tǒng)的技術(shù)細(xì)節(jié)。甚至,當(dāng)時(shí)局外人沒(méi)人知道12306已經(jīng)在2012年開(kāi)始做了技術(shù)改造。直到數(shù)日之前,鐵總首次向媒體公開(kāi)了技術(shù)改造的詳情:分布式集群內(nèi) 存數(shù)據(jù)技術(shù)引領(lǐng)12306技術(shù)革命。這篇文章給出的細(xì)節(jié),與我之前看到的內(nèi)容完全一致。由此我可以確信信息來(lái)源是此次技術(shù)升級(jí)的核心人士。

    另 外,關(guān)于第三方合作對(duì)方給出的信息是IBM、Oracle、Sybase全部不能滿足要求,主要是這些廠商的方案部署以后,要升級(jí)時(shí)不能做到不停機(jī)靈活擴(kuò) 展。也就是說(shuō),IBM沒(méi)有做到是他們技術(shù)不足“搞不定”。阿里巴巴參與了改造,負(fù)責(zé)了排隊(duì)系統(tǒng)。此外,雖然后端經(jīng)受住了壓力,前端卻如大家所看到的那樣還 是頻頻卡死。到底卡死的原因是前端水平太低還是訪問(wèn)壓力太大,暫時(shí)沒(méi)有可靠的信息供判斷。

    淘寶的問(wèn)題是其系統(tǒng)架構(gòu)是分散度較高的,各個(gè)訂 單之間關(guān)聯(lián)度不大;而12306每出一張票都要對(duì)全線路做數(shù)據(jù)更新(因?yàn)橐粭l線路存在多個(gè)站點(diǎn)),因此系統(tǒng)負(fù)載相較淘寶來(lái)說(shuō)集中很多,直接搬淘寶的方案也 無(wú)法解決問(wèn)題。淘寶的應(yīng)用類(lèi)型決定了阿里巴巴可以通過(guò)部署大量的服務(wù)器來(lái)分散壓力,但12306就不行。其實(shí)他們的核心系統(tǒng)的硬件成本不過(guò)數(shù)百萬(wàn),不是他 們不想采購(gòu)更多服務(wù)器,而是買(mǎi)更多的服務(wù)器也沒(méi)什么用途。最后,在經(jīng)過(guò)軟件層面的優(yōu)化之后,12306的瓶頸其實(shí)是核心節(jié)點(diǎn)的CPU、內(nèi)存性能。但是這個(gè) 性能的提升不是朝夕的事情,而是受限于摩爾定律,基本上每?jī)赡瓴拍芊槐抖嘈#ㄟ@段話是我自己的分析,不過(guò)現(xiàn)在12306的后端數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)付現(xiàn)有需求 已經(jīng)夠用了)
    補(bǔ)充:關(guān)于座位實(shí)時(shí)復(fù)用,我看到的信息明確表明12306出票時(shí),每出一張區(qū)間票都要實(shí)時(shí)調(diào)整該線路其他受影響區(qū)間段的余票數(shù)量,且這是很大的壓力來(lái)源;另外,對(duì)方表示所使用的GemFire數(shù)據(jù)庫(kù)與簡(jiǎn)單的memcache/redis數(shù)據(jù)緩沖不同,有著本質(zhì)區(qū)別。

    然后我說(shuō)點(diǎn)對(duì)鐵路系統(tǒng)購(gòu)票困難現(xiàn)象的看法:
    一種商品只要出現(xiàn)供不應(yīng)求現(xiàn)象,那么結(jié)果只有兩種:大家排隊(duì)購(gòu)買(mǎi);出現(xiàn)黑市,變相提高商品的流通價(jià)格并抑制需求。
    12306 這個(gè)事情,就是標(biāo)準(zhǔn)的限價(jià)商品供不應(yīng)求之后出現(xiàn)排隊(duì)與黑市現(xiàn)象的例子。因?yàn)楣┎粦?yīng)求,所以有了黃牛、搶票軟件與秒殺。如果供應(yīng)充足,一個(gè)車(chē)次直到發(fā)車(chē)前都 有一兩張余票,那么黃牛、搶票就毫無(wú)存在價(jià)值,旅客也用不著守在電腦前和其他人比拼手速和網(wǎng)速以及電腦性能網(wǎng)絡(luò)性能了。
    現(xiàn)在供應(yīng)不足的前提 下,12306就算把系統(tǒng)做的性能再高,也只是會(huì)加快熱門(mén)車(chē)次票務(wù)秒殺的速度而已——而這更會(huì)刺激搶票軟件,大家為了在更短的時(shí)間里成功搶到隊(duì)列名額就會(huì) 不斷提升自己的搶票性能。打個(gè)比方說(shuō)就是一個(gè)店門(mén)前排隊(duì),消費(fèi)者為了增加買(mǎi)到商品的概率去雇人代排,每個(gè)消費(fèi)者都雇了好多人,造成店門(mén)口的通道擁擠不堪。 為了減緩擁堵,商家不斷拓寬通道,但每次一拓寬消費(fèi)者們就會(huì)增加雇傭的排隊(duì)勞力把新增的通道空間占滿,形成惡性循環(huán)。這樣下去,只要還存在供不應(yīng)求的現(xiàn) 象,這種循環(huán)就不會(huì)有終止的時(shí)候。也就是說(shuō),12306的問(wèn)題主要不是出在網(wǎng)站本身。

    12306這個(gè)事情,網(wǎng)上有多少網(wǎng)友從一開(kāi)始就獻(xiàn)計(jì) 獻(xiàn)策了,也有不少網(wǎng)友提供了很不錯(cuò)的建議。但不得不說(shuō),很多網(wǎng)友在提建議時(shí)完全就是一種居高臨下、自以為是的態(tài)度,上來(lái)就先認(rèn)定需求簡(jiǎn)單可以輕松應(yīng)付,隨 便有點(diǎn)經(jīng)驗(yàn)的工程師就能搞定,12306出問(wèn)題全怪體制太爛,國(guó)企效率低下,一幫人光拿錢(qián)不做事,技術(shù)水平太低……

    淘寶2013年雙11 活動(dòng),峰值流量是一秒鐘完成1.3萬(wàn)筆訂單。12306在2014年1月6日全天網(wǎng)絡(luò)出票400萬(wàn)張。看起來(lái)雙11流量完爆12306是吧?等等!別忘了 12306這400萬(wàn)張票可不是全天悠悠閑閑平均地賣(mài)出去的,而是分成10個(gè)時(shí)段集中被搶走的。每個(gè)時(shí)段開(kāi)始放票后數(shù)分鐘之內(nèi)大部分票就已經(jīng)被搶光了。以 每個(gè)時(shí)段40萬(wàn)票,峰值持續(xù)三分鐘估算,高峰期一分鐘出票在10萬(wàn)張以上毫不夸張。誠(chéng)然,一分鐘10萬(wàn)訂單還比不上淘寶2013雙11,但別忘了一年以前 阿里巴巴也只是達(dá)到了一分鐘15萬(wàn)訂單的水平而已(并且在高峰期一樣卡爆)。而且一分鐘10萬(wàn)出票還滿足不了需求的,以旅客購(gòu)票的熱情來(lái)看,達(dá)到一分鐘 50萬(wàn)票都不一定能讓所有旅客滿意。

    淘寶在2012年雙11時(shí)已經(jīng)是業(yè)界頂尖水平了,其軟硬件技術(shù)皆為自主研發(fā),既便如此面對(duì)一分鐘十幾 萬(wàn)的訂單量都會(huì)卡死。請(qǐng)問(wèn),覺(jué)得12306“需求簡(jiǎn)單,問(wèn)題可以輕松解決”的,是不是水平已經(jīng)高到了阿里巴巴都要請(qǐng)你們?nèi)ヮI(lǐng)導(dǎo)整個(gè)技術(shù)團(tuán)隊(duì)的級(jí)別呢?是不 是你們的方案可以輕松應(yīng)付每分鐘數(shù)十萬(wàn)筆訂單,達(dá)到全球一流水平了?

    淘寶面臨的需求是業(yè)界從未有過(guò)的,所以淘寶的路很艱難。12306面 臨的需求是其他人遇到過(guò)的么?全世界哪個(gè)國(guó)家、哪種客運(yùn)票務(wù)系統(tǒng)敢說(shuō)自己的負(fù)載達(dá)到12306三分之一的水平?面對(duì)空前龐大的壓力,諸位“技術(shù)高手”只是 憑著自己一點(diǎn)程序員的經(jīng)驗(yàn),在電腦前一個(gè)人思考上一會(huì)兒就給出個(gè)“簡(jiǎn)單、實(shí)用、省錢(qián)、輕松應(yīng)付”的解決方案——你們知不知道“自大”這兩個(gè)字怎么寫(xiě)啊?

    還 有一些人,看說(shuō)IBM沒(méi)做就一口認(rèn)定是12306故意排擠IBM,認(rèn)定IBM解決這問(wèn)題肯定沒(méi)壓力。好嘛,IBM什么時(shí)候做過(guò)如此規(guī)模的票務(wù)系統(tǒng)了?你細(xì) 節(jié)什么都不知就預(yù)設(shè)結(jié)論了?為啥淘寶當(dāng)年沒(méi)選擇IBM作為方案提供商而是自主研發(fā)?IBM的大數(shù)據(jù)業(yè)務(wù)主要集中在金融領(lǐng)域,這不代表它在其他領(lǐng)域就樣樣精 通好不好?它能拿出的方案無(wú)非是Power7小型機(jī)平臺(tái),Power7在數(shù)據(jù)庫(kù)性能上又比Xeon E7強(qiáng)多點(diǎn)?然后Power7系統(tǒng)賣(mài)多少錢(qián)了解么?后續(xù)維護(hù)難度多大了解么?把適合銀行金融行業(yè)的平臺(tái)放到12306來(lái)真的合適么?說(shuō)起來(lái),不就是因?yàn)?“12306”和“IBM”這倆名字放一起,諸位內(nèi)心里首先就給前者打了負(fù)分對(duì)后者仰視么?要是把“12306”換成“nasdaq”,那結(jié)論就又是一回 事兒了——哦正好nasdaq沒(méi)用IBM方案,可見(jiàn)nasdaq是排擠IBM內(nèi)部人賺黑心錢(qián)是吧?不過(guò)2013年工商銀行系統(tǒng)升級(jí)故障,應(yīng)該是和方案提供 商IBM無(wú)關(guān)的,肯定是國(guó)企的體制問(wèn)題無(wú)誤!

    最后呢?12306還是做到了全球最強(qiáng)的客運(yùn)票務(wù)系統(tǒng)。一貫被認(rèn)為是因循守舊的國(guó)企,在選擇 技術(shù)方案時(shí)放棄沿用多年的小型機(jī)/UNIX平臺(tái)去擁抱業(yè)界還是新鮮事物的基于x86/linux的大規(guī)模分布內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng),承受住了堪比2012年淘寶 雙11的壓力。在這個(gè)領(lǐng)域,12306可以自豪地說(shuō)自己是做的最好的案例。它還在卡,還是偶爾崩潰,頁(yè)面還是難看,可是這些遲早會(huì)改進(jìn)。這個(gè)過(guò)程中也還是 會(huì)有冷嘲熱諷,還是會(huì)有所謂的大牛指點(diǎn)江山,但最終解決春運(yùn)高峰期一天數(shù)百萬(wàn)張秒殺售票的,還是12306自己。所以,走自己的路,讓別人去說(shuō)吧。

    原文鏈接:12306 外包給阿里巴巴、IBM 等大企業(yè)做是否可行

    posted @ 2014-01-10 12:07 ZT文萃 閱讀(174) | 評(píng)論 (0)編輯 收藏

    WebSphere Application Server V8.5 的最重要的新特性是新的 Liberty Profile 以及智能管理。本 FAQ 為您匯集了關(guān)于 WAS V8.5 的問(wèn)題集錦,從智能管理、 Liberty Profile、性能等方面幫助您解答您使用過(guò)程中可能遇到的問(wèn)題。

    Liberty 和 tWAS是兩個(gè)產(chǎn)品嗎?目前 tWAS和 Liberty 所支持的功能有什么不同?

    Liberty 作為 WAS V8.5 發(fā)布的一部分,和 tWAS 作為兩個(gè)單獨(dú)的介質(zhì)供用戶使用。在功能上 Liberty 是 tWAS 的一個(gè)子集。tWAS 是一個(gè)完整的 J2EE 服務(wù)器,支持 J2EE 規(guī)范,而 liberty 目前只支持 Web, OSGi 和 Mobile 應(yīng)用的開(kāi)發(fā)。

    Liberty 是如何提供給用戶的?是以插件的形式嗎?

    Liberty 是以一個(gè)單獨(dú)的運(yùn)行時(shí)環(huán)境提供給用戶的。用戶下載 Liberty 的安裝介質(zhì)后解壓縮即可作為運(yùn)行時(shí)環(huán)境部署應(yīng)用。同時(shí) Liberty 可以很好的跟開(kāi)發(fā)工具如 Eclipse、RAD 等結(jié)合使用,有很好的開(kāi)發(fā)者體驗(yàn)。

    Liberty 有哪些優(yōu)點(diǎn)?

    1. 簡(jiǎn)單安裝(可以通過(guò) IM 進(jìn)行安裝,或者直接下載免安裝版本)
    2. 快速啟動(dòng)
    3. 靈活的配置(只需要在 server.xml 文件里面進(jìn)行配置即可)
    4. 實(shí)時(shí)更新(采用 OSGi 架構(gòu),server 不需重啟,更改即可生效)
    5. 動(dòng)態(tài)加載,Liberty 對(duì)所支持的功能特性實(shí)施動(dòng)態(tài)加載的機(jī)制,即當(dāng)使用某些特性的時(shí)候才將該特性相關(guān)的類(lèi)加載的運(yùn)行時(shí)當(dāng)中。

    Liberty 是否支持文件夾形式的 bundle 應(yīng)用?

    Liberty 目前不支持文件夾形式的 bundle 應(yīng)用,但是支持將 EBA 格式的 OSGi 應(yīng)用解壓安裝,應(yīng)用名稱(chēng)的格式應(yīng)為 xxx.eba。

    Liberty 采用動(dòng)態(tài)加載的方式,那么當(dāng)新添加特性時(shí),Liberty 服務(wù)器是否會(huì)重啟?

    當(dāng)添加新的功能特性時(shí),功能特性動(dòng)態(tài)生效,Liberty 服務(wù)器不會(huì)被自動(dòng)重啟。

    在 Liberty 上開(kāi)發(fā)的應(yīng)用能直接遷移到 tWAS 上進(jìn)行使用嗎?需要做什么修改嗎?

    用 Liberty 開(kāi)發(fā)的應(yīng)用可以無(wú)縫地遷移到 tWAS 上面,不需要對(duì)應(yīng)用進(jìn)行修改,只需要在 tWAS 對(duì)數(shù)據(jù)源等應(yīng)用所需要的資源做相應(yīng)的設(shè)置即可。

    Liberty 上部署應(yīng)用有兩種方式,即 Monitored Directory 和 Configuration,兩種方式有什么不同?

    通過(guò) Monitored Directory 的方式,用戶只需把應(yīng)用放在特定目錄下面,Liberty 會(huì)自動(dòng)去檢查到該應(yīng)用,然后自動(dòng)幫助用戶進(jìn)行安裝。

    而通過(guò) Configuration 的方式,Liberty 不會(huì)自動(dòng)去進(jìn)行安裝,用戶需要手動(dòng)去進(jìn)行安裝,比如通過(guò)命令行或者 Eclipse 開(kāi)發(fā)平臺(tái)。

    相比較與 Tomcat,開(kāi)發(fā)者選擇 Liberty 的原因?qū)?huì)是什么? Liberty 會(huì)帶來(lái)哪些新體驗(yàn) ?

    內(nèi)容
    對(duì)比項(xiàng)TomcatLiberty
    Java EE 標(biāo)準(zhǔn)支持JSP 2.2, Servlet 3.0, JSTL 1.2
    用戶需要添加相關(guān)的 jar 包來(lái)實(shí)現(xiàn)對(duì)其它標(biāo)準(zhǔn)的支持
    JSP 2.2, Servlet 3.0, JSF 2.0, JSTL 1.2, JPA 2.0, JDBC 4.0, JAX-RS 1.0, JNDI 1.0, Bean Validation 1.0, SSL 1.0, Security 1.0, Web Security 1.0, JMX 1.0
    可動(dòng)態(tài)加載或卸載對(duì)應(yīng)的特性包
    OSGi 編程模型支持是,支持 Blue Print 1.0, WAB 1.0
    開(kāi)發(fā)工具支持 Eclipse支持 Eclipse, IBM Rational Application Developer
    性能一般與傳統(tǒng) WAS 具有相同的核心代碼,性能好
    支持的操作系統(tǒng)Linux, WindowsLinux, Windows, AIX, Mac, HP-UX, Solaris, iSeries, zSeries
    配置文件多個(gè)配置文件,更新后需重啟服務(wù)器一個(gè)配置文件,更新后及時(shí)生效,無(wú)需重啟
    可移植性您可以利用 IBM Application Migration Toolkit 將 Tomcat 上開(kāi)發(fā)的應(yīng)用快速移植到 WebSphere 應(yīng)用服務(wù)器。反之,則不然。Liberty 和傳統(tǒng) WAS 對(duì)編程模型和標(biāo)準(zhǔn)的支持一致。在 Liberty 上開(kāi)發(fā)的應(yīng)用可以直接運(yùn)行在傳統(tǒng) WAS 之上。
    社區(qū)http://tomcat.apache.org
    有開(kāi)發(fā)人員和用戶的郵件列表,沒(méi)有官方支持,有時(shí)回復(fù)不夠及時(shí)。
    http://wasdev.net,可以與開(kāi)發(fā)人員直接交流
    文檔官方文檔涵蓋內(nèi)容有限,但網(wǎng)絡(luò)上相關(guān)內(nèi)容(包括:blog,技術(shù)文章等)廣泛。http://wasdev.net 上提供下載地址、文檔、視頻、音頻、樣本引用等。
    長(zhǎng)期戰(zhàn)略優(yōu)勢(shì)一般用于開(kāi)發(fā)環(huán)境,生產(chǎn)環(huán)產(chǎn)應(yīng)用的比較少。
    支持的并發(fā)度不高,可擴(kuò)展性不強(qiáng)。
    Liberty 與傳統(tǒng) WAS 共享同一代碼,天生具有其高效穩(wěn)定的特點(diǎn)。開(kāi)發(fā) - 測(cè)試 - 生產(chǎn)切換零代價(jià)。
    可擴(kuò)展性高,支持多個(gè) server 間的負(fù)載均衡和故障恢復(fù)。

    Liberty 高速緩沖可以由 eXtreme Scale 提供嗎?

    可以,Liberty 可以和 eXtreme Scale 進(jìn)行集成帶來(lái)高速緩存的特性。

    Liberty 支持 IBM iSeries 嗎?

    支持,在 IBM iSeries 上的使用和在其他平臺(tái)上相同。

    用戶可以在 Eclipse 中管理 Liberty 嗎?比如啟動(dòng)和停止?

    可以,在 Eclipse 控制臺(tái)的 Servers 標(biāo)簽中,展開(kāi)您的 Liberty 下拉列表,會(huì)顯示出當(dāng)前部署在該應(yīng)用服務(wù)器上的全部應(yīng)用,右擊某一應(yīng)用,可以進(jìn)行相關(guān)的啟 / 停 / 移除操作,參見(jiàn)截圖

    圖 1 . Servers 控制

    但是在運(yùn)行時(shí)環(huán)境里面,暫時(shí)不支持啟動(dòng)和停止某一個(gè)特定的應(yīng)用。

    Liberty 能在 mobile 的設(shè)備上做開(kāi)發(fā)(比如 ipad)嗎?

    目前不支持這樣做,但是 Liberty 支持在 MAC 系統(tǒng)上進(jìn)行開(kāi)發(fā)。

    Liberty 是如何自動(dòng)添加所需的功能特性的?

    在開(kāi)發(fā)環(huán)境,即 Eclipse+WDT+Liberty runtime 時(shí),Liberty 可以自動(dòng)為應(yīng)用添加所需的特性。此功能是 WDT 來(lái)實(shí)現(xiàn)的,其會(huì)自動(dòng)掃描應(yīng)用,判斷應(yīng)用所采用的編程模型,然后為應(yīng)用添加相應(yīng)的功能支持。

    如果直接使用 Liberty runtime 部署應(yīng)用,Liberty 是不會(huì)自動(dòng)為應(yīng)用添加所需的特性的。

    Liberty 如何處理不同的應(yīng)用 /server 的端口沖突?

    通過(guò)在 Liberty 的運(yùn)行時(shí)環(huán)境下面的 bootstrap.properties 和 server.xml 兩個(gè)文件進(jìn)行相應(yīng)的配置,該項(xiàng)配置需要重啟 Liberty。參考 信息中心進(jìn)行配置。

    除了 Liberty 之外,還有其他產(chǎn)品是基于 OSGi 架構(gòu)的?

    Liberty 是完全基于 OSGi 的產(chǎn)品,其在構(gòu)建中完全遵循了 OSGi 的編程模型規(guī)范。在應(yīng)用服務(wù)器領(lǐng)域暫時(shí)還沒(méi)有發(fā)現(xiàn)其他的產(chǎn)品也完全采用 OSGi 的編程模型進(jìn)行構(gòu)建。

    當(dāng)啟用某個(gè) Liberty 的特性時(shí),Liberty 是及時(shí)動(dòng)態(tài)的加載屬于該特性的 JAR 包,還是在 Liberty 啟動(dòng)的時(shí)候就已經(jīng)加載,只是此時(shí)才開(kāi)始使用?

    一般來(lái)說(shuō),根據(jù) bundle 的 Bundle-ActivationPolicy 值來(lái)確定是立刻啟動(dòng) bundle 還是按需啟動(dòng) bundle(lazy)。但是在 Liberty 中,大多數(shù) bundle 都沒(méi)有設(shè)定這個(gè)值,默認(rèn)的行為就是當(dāng) Liberty 啟動(dòng)的時(shí)候 bundle 會(huì)被立即啟動(dòng),但是,我們需要說(shuō)明的是:

    1. liberty 中對(duì)于 bundle 的使用采用的 DS 的方式(聲明服務(wù)),bundle 與 bundle 之間是通過(guò)服務(wù)的調(diào)用來(lái)實(shí)現(xiàn)的,只有當(dāng)去主動(dòng)請(qǐng)求一個(gè)服務(wù)時(shí),該服務(wù)的 bundle 提供者才會(huì)被加載,所以,當(dāng)采用服務(wù)的管理模式后,我們并不需要特別在意 bundle 的加載方式。
    2. 在 liberty 中,只有很少的 bundle 設(shè)定了 Bundle-ActivationPolicy 值,此刻,這些 bundle 會(huì)根據(jù)值的設(shè)定選擇立刻或者按需啟動(dòng)。

    posted @ 2014-01-10 11:31 ZT文萃 閱讀(1633) | 評(píng)論 (0)編輯 收藏

    1、復(fù)利會(huì)讓你富有,但變富得花時(shí)間
          
           巴菲特是了不起,可他像這樣當(dāng)上數(shù)一數(shù)二的巨富是因?yàn)樗?0多年都是了不起的投資者。
          
           他現(xiàn)在600億美元的資產(chǎn)凈值里,有597億美元是在過(guò)了50歲生日以后得到的。更確切地說(shuō),在60歲以后,巴菲特才擁有其中570億美元。
          
           他的秘訣就是時(shí)間。
          
           大多數(shù)人在退休前一二十年才開(kāi)始未雨綢繆,實(shí)際上,盡早開(kāi)始儲(chǔ)蓄是很重要的。
          
    2、影響回報(bào)的一個(gè)最大變量是估值,你根本不曉得估值會(huì)怎樣
          
           未來(lái)的市場(chǎng)回報(bào)等于股息率+收益增長(zhǎng)+/-市盈率(估值)變化。
          
           股息率目前2%,估計(jì)每年收益增長(zhǎng)的合理水平是5%,可市盈率就完全是未知數(shù)。
          
           市盈率體現(xiàn)人們的預(yù)感,誰(shuí)都沒(méi)辦法知道今后大家怎么看待未來(lái)。
          
           如果有人說(shuō)“我認(rèn)為大多數(shù)人2023年會(huì)比現(xiàn)在心情好10%”,大家可能說(shuō)這人有妄想癥。
          
           但如果有人這么預(yù)計(jì)10年內(nèi)的市場(chǎng)回報(bào),我們管這人叫分析師。
          
    3、簡(jiǎn)單通常比聰明更要緊
          
           如果有人2003年買(mǎi)了低成本的標(biāo)普500指數(shù)基金,到2012年年底,可以收獲97%的回報(bào)。
          
           而道瓊斯瑞信對(duì)沖基金指標(biāo)的數(shù)據(jù)顯示,那些高端大氣的中性股市對(duì)沖基金同期平均市值還縮水了4.7%。
          
           投資不像電腦,簡(jiǎn)單基本的方法可能比那些復(fù)雜高端的更有威力。
          
           投資也不是打高爾夫,投機(jī)者很有可能用出色的成績(jī)羞辱某些專(zhuān)家、老手。
          
    4、股市大起大落的幾率是100%
          
           大多數(shù)投資者理解股票可以產(chǎn)生更高的長(zhǎng)期回報(bào),但代價(jià)是波動(dòng)性更大。
          
           1900年以來(lái),標(biāo)普500年均回報(bào)率約6%,最高和最低的年底收盤(pán)價(jià)之間平均差距達(dá)到23%。
          
           所以,下次要有誰(shuí)費(fèi)勁解釋為什么市場(chǎng)漲跌幾個(gè)百分點(diǎn),那基本上就是在解釋為什么春天過(guò)了是夏天。
          
           有人還問(wèn)過(guò)老摩根市場(chǎng)今后會(huì)怎樣,據(jù)說(shuō)他當(dāng)時(shí)回答:
          
           它會(huì)波動(dòng)。
          
           乍聽(tīng)起來(lái),這樣的回答是在轉(zhuǎn)移重點(diǎn),事實(shí)上絕非虛言。
          
    5、金融圈大多都是怪人、騙子和推銷(xiāo)員。
          
           大多數(shù)推銷(xiāo)金融產(chǎn)品的人只對(duì)你的錢(qián)財(cái)感興趣,因?yàn)樗麄兛梢越璐耸召M(fèi)。
          
           要做理想論壇的權(quán)威,根本不需要經(jīng)驗(yàn)、證書(shū)甚至常識(shí)。
          
           可惜,往往某位權(quán)威叫喚得越響亮、越語(yǔ)出驚人,得到的關(guān)注就越多,即便這樣一來(lái)他更有可能出錯(cuò),也是如此。股

    posted @ 2013-12-13 11:25 ZT文萃 閱讀(521) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共8頁(yè): 上一頁(yè) 1 2 3 4 5 6 7 8 下一頁(yè) 
    主站蜘蛛池模板: 欧洲精品免费一区二区三区| 亚洲欧洲∨国产一区二区三区| 久久久久久亚洲精品| 成人婷婷网色偷偷亚洲男人的天堂| 无码精品一区二区三区免费视频 | 97se亚洲国产综合自在线| 一级做a爰性色毛片免费| 在线免费观看一级片| 亚洲天天做日日做天天欢毛片| 免费国产在线精品一区| 好先生在线观看免费播放| 亚洲欧洲日韩不卡| eeuss影院免费直达入口| 老司机永久免费网站在线观看| 亚洲精品网站在线观看你懂的| 中文字幕版免费电影网站| 国产无遮挡色视频免费视频| 亚洲国产夜色在线观看| 久久免费精品视频| 久久久久亚洲AV成人网人人软件| 亚洲国产成人精品无码区花野真一 | 国产一二三四区乱码免费| 免费乱理伦在线播放| 456亚洲人成影院在线观| 久久久久久毛片免费播放 | 亚洲动漫精品无码av天堂| av片在线观看永久免费| 四虎永久免费地址在线网站| 亚洲一区二区三区免费视频| 99久久免费看国产精品| 亚洲大尺度无码无码专区| 岛国岛国免费V片在线观看 | 免费一级毛片在线播放视频免费观看永久| 影音先锋在线免费观看| 亚洲国产成人久久精品app| 久久国产色AV免费看| 99亚洲精品高清一二区| 免费高清国产视频| 亚洲av无码国产精品色午夜字幕| 久久精品无码免费不卡| 久久亚洲精品无码播放|