lbom

          小江西

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            18 隨筆 :: 21 文章 :: 69 評(píng)論 :: 0 Trackbacks

          2009年2月21日 #

          昨日年終總結(jié)會(huì),公司總裁給出IT產(chǎn)業(yè)未來發(fā)展的幾個(gè)新趨勢(shì),值得我們這些從事軟件工作的人員沉思,現(xiàn)對(duì)他的發(fā)言摘錄如下:
          1)管理虛擬化:有形的組織型管理和虛擬的IT流程管理相結(jié)合管理模式;
          2)制造虛擬化:由生產(chǎn)線工人和由程序控制的機(jī)器人相結(jié)合的生產(chǎn)模式;
          3)渠道虛擬化:由實(shí)體銷售店和虛擬的網(wǎng)上銷售相結(jié)合的渠道管理模式;
          4)服務(wù)虛擬化:實(shí)體保養(yǎng)維修和遠(yuǎn)程診斷,軟件更新相結(jié)合的服務(wù)模式;
          5)組織虛擬化:垂直的組織機(jī)構(gòu)和橫向的項(xiàng)目型組織機(jī)構(gòu)相結(jié)合的企業(yè)組織模式。
          posted @ 2014-01-24 22:28 lbom 閱讀(286) | 評(píng)論 (0)編輯 收藏

          今天,花費(fèi)1個(gè)小時(shí),研究了一下在Windows下,使用Telent登錄至UNIX的腳本,現(xiàn)將其貼下,以供下次使用(tt.bat)

           

           

          @echo off
          echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs

          echo WScript.Sleep 3000 >>telnet_tmp.vbs
          rem ----------------UNIX IPAddress
          echo sh.SendKeys "open 10.0.18.100{ENTER}" >>telnet_tmp.vbs

          echo WScript.Sleep 3000 >>telnet_tmp.vbs
          rem ----------------userID
          echo sh.SendKeys "root{ENTER}" >>telnet_tmp.vbs

          echo WScript.Sleep 3000 >>telnet_tmp.vbs
          rem ----------------password
          echo sh.SendKeys "root{ENTER}" >>telnet_tmp.vbs

          echo WScript.Sleep 3000 >>telnet_tmp.vbs

          echo sh.SendKeys "ls {ENTER}">>telnet_tmp.vbs

          start telnet

          cscript //nologo telnet_tmp.vbs

          rem del telnet_tmp.vbs

           

          posted @ 2011-10-10 16:02 lbom 閱讀(4030) | 評(píng)論 (1)編輯 收藏

          1)啟動(dòng)LiveWriter客戶端

          2)添加Blog帳戶:

          image image

          3)設(shè)置日志類型:

          image

          4)連接測(cè)試

          posted @ 2010-09-25 18:02 lbom 閱讀(314) | 評(píng)論 (0)編輯 收藏

          很久沒有動(dòng)手寫WebService了,這次,借項(xiàng)目間隙,對(duì)系統(tǒng)進(jìn)行一個(gè)小改造,將一部分功能使用WS進(jìn)行封裝,為下一步異構(gòu)系統(tǒng)集成打下基礎(chǔ)。

          但在WS化時(shí),由于日久生疏,一個(gè)小小的WS化變動(dòng),卻花了整整好幾天時(shí)間!為此,狠下以來,將其過程進(jìn)行記錄,以便下次參考。

           

          WS整體流程:

          clip_image001

          以下分別介紹:

          1、設(shè)計(jì)和實(shí)現(xiàn)WebService服務(wù)端功能組件,用于統(tǒng)一處理針對(duì)本應(yīng)用系統(tǒng)所需進(jìn)行WebService化的邏輯實(shí)現(xiàn)。并將系統(tǒng)邏輯處理中的對(duì)象轉(zhuǎn)成序列化后的String對(duì)象,以符合WebService交互標(biāo)準(zhǔn)。

          clip_image002

          2、根據(jù)SBPApi.java,生成WSDL等:通過Eclipse右鍵菜單中的WebService-->Create Web Service項(xiàng)。完成后,會(huì)在web目錄下建立wsdl目錄和SBPApi.wsdl,在WEB-INF目錄下建立(改寫)server-config.wsdd等文件,并完成對(duì)web.xml的修改。其操作流程示如下:

          clip_image003

          3、根據(jù)SBPApi.wsdl,生成WebService客戶端開發(fā)包和部署文件:

          1)為不影響已有項(xiàng)目,可另建java Web項(xiàng)目;

          2)將wsdl目錄復(fù)制至新項(xiàng)目對(duì)應(yīng)的web目錄下;

          3)通過eclipse已提供的webService插件(右鍵)功能,生成客戶端開發(fā)包所各文件。此時(shí),所生成的文件與服務(wù)端對(duì)象文件結(jié)構(gòu)一至。

          clip_image004

          4)調(diào)整關(guān)聯(lián)引用文件,將其調(diào)整至客戶端開發(fā)包,從而避免與服務(wù)器端的引用路徑重復(fù)而引發(fā)不便,并將服務(wù)器SDK中已有文件刪除。

          clip_image005

          5)建立客戶端的快速使用代理SBPClient.java,對(duì)WebService服務(wù)端交互工作的SBPApiSoapBindingStub.java進(jìn)行客戶端封裝,并根據(jù)服務(wù)端中交互對(duì)象進(jìn)行反向工程,其示例結(jié)構(gòu)如下:

          clip_image006

          6)將clientApi下的所有文件打包后,加入測(cè)試項(xiàng)目進(jìn)行測(cè)試。此時(shí),因客戶端所使用的服務(wù)端對(duì)象未包含在WebService客戶端開發(fā)包中,因此需要將服務(wù)端對(duì)象也一同打包。

          7)測(cè)試。

          4、開發(fā)環(huán)境:Eclipse3.3.1.1 + JDK1.5.06 + Apache Axis version: 1.4

          posted @ 2010-04-02 15:45 lbom 閱讀(2169) | 評(píng)論 (4)編輯 收藏

          在一次基于多線程的編碼測(cè)試中,發(fā)現(xiàn)繼承Runnable接口的線程實(shí)現(xiàn)類在運(yùn)行時(shí)并未按預(yù)計(jì)啟動(dòng)多線程,經(jīng)分析和比較后,找出問題所現(xiàn),現(xiàn)將其記錄下來,以供分享。

          Java中,多線程編程中的線程編寫,有兩種方式,即擴(kuò)展Thread基類或繼承Runnable接口;例如:

          public class T extends Thread {

          public void run() {

          ……

          }

          }

          public class R implements Runnable {

          public void run() {

          ……

          }

          }

          對(duì)于擴(kuò)展Thread的實(shí)現(xiàn)類T,可以使用T.start()來啟動(dòng)此線程;如

          public static void main(String[] args) {

          Thread t = new T();

          t.start();

          }

          但對(duì)于繼承Runnable接口的實(shí)現(xiàn)類R,因接口中并沒有提供直接啟動(dòng)線程的start()方法,只有一個(gè)線程主邏輯運(yùn)行的run()方法。此時(shí),如執(zhí)行run(),會(huì)因?yàn)镽.run()只是作為此線程實(shí)現(xiàn)類的一個(gè)方法,并未在主線程之外,啟動(dòng)另一個(gè)線程,從而導(dǎo)致R.run()阻斷主線程繼續(xù)向下執(zhí)行;并未達(dá)到多線程運(yùn)行的目的。

          錯(cuò)誤啟動(dòng)代碼如下:

          public static void main(String[] args) {

          R r = new R();

          r.run();

          }

          那么,如何使用另外線程來啟動(dòng)繼承Runnable接口的實(shí)現(xiàn)類呢?以下就是它的正確的使用方式:

          public static void main(String[] args) {

          R r = new R();

          Thread t = new Thread(r);

          t.start();

          }

          此時(shí),需注意,在主線程執(zhí)行時(shí),需等待子線程執(zhí)行,否則,當(dāng)主線程結(jié)束后,子線程也將結(jié)束。

          posted @ 2010-03-10 16:48 lbom 閱讀(1583) | 評(píng)論 (2)編輯 收藏

          需求:

          系統(tǒng)A與系統(tǒng)B分別部署在不同域的兩臺(tái)服務(wù)器中,但它們的身份都統(tǒng)一在身份認(rèn)證服務(wù)器中;身份認(rèn)證信息以Session方式存貯于各自系統(tǒng)中,并輔以cookie進(jìn)行使用。

          當(dāng)用戶在A系統(tǒng)登錄后,訪問B系統(tǒng)時(shí),由于是跨域訪問,導(dǎo)致身份信息不能正確的傳遞到B系統(tǒng)中,從而致使用戶需在B系統(tǒng)中重新登錄。

          clip_image001[6]

          解決方案:

          處理這類跨域訪問時(shí),我們最先使用從B系統(tǒng)向C通過HttpRequest(類AJAX請(qǐng)求)的方式獲取身份信息,此方式好處是同步處理,方便用使用;但其限制諸多,如需設(shè)置信任站點(diǎn)、用戶訪問確認(rèn)等,甚至,在對(duì)應(yīng)用服務(wù)器作了一次安全升級(jí)后,根本無法訪問了。因此,需另行開辟途徑,于是,在同事建議下,我們使用IFrame內(nèi)嵌跨域驗(yàn)證網(wǎng)頁,來解決此問題。

          1、原理設(shè)計(jì):用戶在訪問B系統(tǒng)時(shí),先使用一內(nèi)置的iframe,并將iframe的src指向身份認(rèn)證服務(wù)器系統(tǒng)代理驗(yàn)證接口;如果用戶已經(jīng)在A系統(tǒng)中進(jìn)行過登錄,即A域了中已存在著身份認(rèn)證信息后,身份認(rèn)證服務(wù)器中也將具有其身份信息將其附帶著身份認(rèn)證信息后重定向訪問B系統(tǒng)代理接口;B系統(tǒng)代理驗(yàn)證接口在接收到由A系統(tǒng)傳遞而來的身份認(rèn)證信息后,通過身份認(rèn)證服務(wù)器驗(yàn)證后,在B系統(tǒng)所在域重建身份認(rèn)證信息。

          2、實(shí)現(xiàn)邏輯貼碼:

          1)B系統(tǒng)代理驗(yàn)證接口:

          (1)IFrame邏輯貼碼:

          clip_image002[6]

          (2)JS檢測(cè)是否通過認(rèn)證邏輯貼碼:

          clip_image003[6]

          2)身份認(rèn)證服務(wù)器端接口(JSP):

          clip_image004[6]

          3、注意事項(xiàng):

          1)由于身份認(rèn)證中心使用cookie作為身份標(biāo)識(shí),因此,需要用戶在瀏覽器中允許使用cookie的設(shè)置;

          2)由于在iframe中進(jìn)行跨域重定向,因此需在IE安全中的跨域?yàn)g覽子框架項(xiàng)設(shè)為啟用:

          clip_image005[6]

          4、源碼文件:

          ……

          posted @ 2010-02-08 17:55 lbom 閱讀(3500) | 評(píng)論 (3)編輯 收藏

          在windows下進(jìn)行j2ee項(xiàng)目開發(fā)和部署時(shí),常需要對(duì)系統(tǒng)存在問題進(jìn)行更深入的分析。由此,實(shí)時(shí)的javacore就是分析的最佳方式之一。但如何以最方便直接的方式產(chǎn)生javacore文件,就是這項(xiàng)工作必需做的準(zhǔn)備工作了。

          1、通過dos窗口,進(jìn)入至jdk安裝目錄下的bin目錄中;

          2、運(yùn)行jconsole.exe,并設(shè)置信息輸出的目標(biāo)文件,以便于分析,否則將直接輸出至屏幕上;

          image

          3、連接正在運(yùn)行的目標(biāo)jvm;

          image

          4、連接后的jconsole如下:

          image

          5、通過通過Ctrl+Break組合鍵,產(chǎn)生javacore至指定文件中。

          6、下一步就是對(duì)所產(chǎn)生的javacore文件進(jìn)行具體的分析和使用了。

          posted @ 2009-12-10 15:00 lbom 閱讀(2358) | 評(píng)論 (2)編輯 收藏

          某日,公司進(jìn)行年度一次的體檢!

          在連續(xù)查出10個(gè)脂肪肝后,醫(yī)生對(duì)第11個(gè)進(jìn)來檢查的人說:“等會(huì),我們的B超機(jī)好像出問題了,等檢修后再進(jìn)行”

          這是一個(gè)真實(shí)的事件,我們這些IT行業(yè)的從業(yè)人員,多坐少動(dòng),壓力大,時(shí)間長(zhǎng),導(dǎo)致體質(zhì)差的邊醫(yī)生都懷疑機(jī)器了!

          唉!

          posted @ 2009-10-29 15:32 lbom 閱讀(333) | 評(píng)論 (0)編輯 收藏

          一、項(xiàng)目建立及應(yīng)用實(shí)現(xiàn)

          1、建立J2ME項(xiàng)目

          clip_image001

          2、在完成開發(fā)后,進(jìn)入Application Descriptor編輯界面

          clip_image002

          3、因默認(rèn)情況下,Application Descriptor文件中未定義MIDlet啟動(dòng)對(duì)象,因此需使用EditPlus或記事本等文本編輯器,編輯Application Descriptor文件(位于項(xiàng)目根目錄下),并添加以下項(xiàng)目,如:

          clip_image003

          4、運(yùn)行Application Descriptor編輯界面中的Lanuch as enumlated Java ME JAD,進(jìn)行測(cè)試

          clip_image004

          5、在步驟4之后,會(huì)在項(xiàng)目根目錄下的.mtj.tmp中生成LaunchFromJAD子目錄,其中的worm.jad和worm.jar即是手機(jī)程序的安裝文件

          clip_image005

          6、將worm.jad和worm.jar復(fù)制至手機(jī)中,運(yùn)行worm.jad進(jìn)行安裝后,即可使用

          二、問題分析:

          1、如報(bào)【文件不完整】錯(cuò)誤,則檢查worm.jad中的項(xiàng)目是否完整。在Eclipse中使用Lanuch as enumlated Java ME JAD測(cè)試通過,并自動(dòng)生成的此文件,一般都是完整的,不需作任何修改。

          2、如報(bào)【版本錯(cuò)誤】,則檢查您在Eclipse中使用的的模擬器版本是否是您手機(jī)所支持的,出現(xiàn)此錯(cuò)誤后,將模擬器版本調(diào)低試試。其位置如下

          clip_image006

          三、開發(fā)環(huán)境:

          1、java JDK1.6.0_10;

          2、EclipseV3.3.1.1;

          3、sun公司J2ME-WTK開發(fā)包:sun_java_wireless_toolkit-2_5_2-ml-windows.exe

          4、Eclipse移動(dòng)應(yīng)用開發(fā)包:eclipseme.feature_1.7.9_site.zip

          posted @ 2009-10-15 17:50 lbom 閱讀(1477) | 評(píng)論 (0)編輯 收藏

           

           

          消息中心產(chǎn)品簡(jiǎn)介

          產(chǎn)品簡(jiǎn)介

          XXX產(chǎn)品框架中,我們根據(jù)產(chǎn)品發(fā)展規(guī)劃和業(yè)務(wù)領(lǐng)域需要,使用基于JMS技術(shù),通過應(yīng)用WEBService,開發(fā)了消息中心中間件(簡(jiǎn)稱MC)。通過消息中間件,我們可以實(shí)現(xiàn)各系統(tǒng)間的異步數(shù)據(jù)交換和事務(wù)處理、執(zhí)行不需前臺(tái)使用人員干預(yù)的如后臺(tái)業(yè)務(wù)和數(shù)據(jù)同步工作,也可用來處理一些受到安全和其它一些因素制約,導(dǎo)致無法直接通過數(shù)據(jù)庫或應(yīng)用系統(tǒng)進(jìn)行處理的受限業(yè)務(wù)。

          消息中心中間件,包括消息總線和消息客戶端兩部分:消息客戶端負(fù)責(zé)業(yè)務(wù)類消息實(shí)例的產(chǎn)生、發(fā)送消息實(shí)例到消息總線、接收從消息總線轉(zhuǎn)發(fā)而來的消息實(shí)例、將收到的消息實(shí)例交由其載體應(yīng)用系統(tǒng)進(jìn)行與之對(duì)應(yīng)的業(yè)務(wù)處理等活動(dòng);消息總線負(fù)責(zé)接收從消息客戶端產(chǎn)生并發(fā)送而來的消息實(shí)例、消息重建、根據(jù)消息配置進(jìn)行消息實(shí)例重建,將重建后的消息實(shí)例轉(zhuǎn)發(fā)至對(duì)應(yīng)的消息客戶端等活動(dòng)。

          消息客戶端與XXX各應(yīng)用系統(tǒng)集成在一起,并通過應(yīng)用系統(tǒng)開放WEBService端口進(jìn)行消息的發(fā)送和接收等,從而避免單獨(dú)部署和發(fā)布所帶來的困難和額外資源消耗。消息總線可單獨(dú)部署,也可和消息客戶端一樣,與XXX應(yīng)用系統(tǒng)集成部署,在XXX產(chǎn)品框架下,有且只需要一套消息總線即可滿足需要。消息配置中心,其作用包括配置和管理消息中心各組成部分的部署方式和訪問信息,以此將消息中心各部有機(jī)的聯(lián)系起來;同時(shí),各消息業(yè)務(wù)應(yīng)用,也使用配置文件進(jìn)行配置化管理,并與消息中心各組成部分進(jìn)行關(guān)聯(lián)配置,從而形成一個(gè)統(tǒng)一且開放的整體;其它的如性能優(yōu)化處理、日志記錄等也在配置中心進(jìn)行配置和管理。

          應(yīng)用現(xiàn)狀

          在消息中間件V1.0版本開發(fā)完成后,我們即將其投入實(shí)用。在XXX各分子系統(tǒng)這近一年時(shí)間的運(yùn)行和使用過程中,消息中心很好的完成了預(yù)定任務(wù),其可靠性、可擴(kuò)展性和適用性得到很好的驗(yàn)證。以此為據(jù),通過使用消息中心,開發(fā)出基于消息中心的客戶化應(yīng)用和業(yè)務(wù)活動(dòng)也在持續(xù)的增加中,到現(xiàn)在為止,已經(jīng)有包括網(wǎng)絡(luò)檢測(cè)、信息同步、配置更新、電子目錄樹更新、權(quán)限同步等諸多應(yīng)用是基于消息中心應(yīng)用開發(fā),并很好的使用在XXX各分子系統(tǒng)的測(cè)試和內(nèi)網(wǎng)正式環(huán)境中。

          問題出現(xiàn)、描述、分析與處理記錄

          問題出現(xiàn)

          在XXX系統(tǒng)正式接入外網(wǎng)后,通過對(duì)業(yè)務(wù)進(jìn)行跟蹤,發(fā)現(xiàn)外網(wǎng)用戶(系統(tǒng))所產(chǎn)生的消息實(shí)例無法正常的到達(dá)指定的消息總線及消息客戶端。最主要的體現(xiàn)是權(quán)限同步消息應(yīng)用無法正常完成的問題,導(dǎo)致外網(wǎng)用戶權(quán)限未得到及時(shí)更新。對(duì)此過程中消息中心所涉及部分進(jìn)行分析發(fā)現(xiàn):所有的權(quán)限同步消息實(shí)例在產(chǎn)生后,不能正常的將此消息實(shí)例發(fā)送至消息總線,分析失敗原因,只有一種,那就是”connect time out”。從此信息可看出,應(yīng)該是外網(wǎng)系統(tǒng)所發(fā)出的消息無法通過WEBService送達(dá)指定的消息總線接收端所至。但從內(nèi)網(wǎng)發(fā)出的同一類消息,其發(fā)送和接收卻又都是正常的。

          分析過程記錄

          1、先分析我們系統(tǒng)的整體部署方式,如下圖所示:

          根據(jù)外網(wǎng)用戶可正常登錄和訪問系統(tǒng),并可通過系統(tǒng)準(zhǔn)確及時(shí)的發(fā)出執(zhí)行指令操作,完成其所需的業(yè)務(wù)活動(dòng)來看,網(wǎng)絡(luò)方面和系統(tǒng)和硬件方面都不存在問題。

          2、在外網(wǎng)環(huán)境下,直接進(jìn)行各消息客戶端和消息總線的服務(wù)的檢測(cè),所發(fā)請(qǐng)求都能夠正確的到達(dá)指定目標(biāo),WEBService的響應(yīng)也正常且正確,也就是說,各應(yīng)用系統(tǒng)加載的消息服務(wù)運(yùn)行也正常。

          3、根據(jù)本次檢測(cè)需要,另行開發(fā)消息中心專用檢測(cè)工具,為本次和今后的行的消息中心檢測(cè)和問題分析,作好更充分的準(zhǔn)備。

          4、通過檢測(cè)工具,發(fā)現(xiàn),外網(wǎng)環(huán)境下,消息客戶端和消息總線之間不能夠聯(lián)通,從而找到問題所出:即不知是何原因,導(dǎo)致外網(wǎng)消息與外網(wǎng)的消息總線間聯(lián)絡(luò)不通!

          5、對(duì)外網(wǎng)用戶消息產(chǎn)生和發(fā)送的過程和邏輯實(shí)現(xiàn)進(jìn)行分析:我們發(fā)現(xiàn),為了滿足應(yīng)用系統(tǒng)外網(wǎng)訪問的需要,我們對(duì)消息系統(tǒng)配置信息中服務(wù)地址的ServerName進(jìn)行了偽處理,即在運(yùn)行時(shí),根據(jù)用戶瀏覽器的請(qǐng)求頭來判斷用戶使用的是哪一個(gè)WEB服務(wù)器地址,并將此地址動(dòng)態(tài)的代替消息配置中的各ServerName信息,從而保證各使用用戶只能夠訪問其指定的WEB服務(wù)器,從而避免因WEB服務(wù)器的不匹配而影響其訪問速度、處理效率等故障的發(fā)生。此方式已在我部門多套同時(shí)服務(wù)于內(nèi)外網(wǎng)絡(luò)的系統(tǒng)中得到可靠的驗(yàn)證。

          那么,會(huì)不會(huì)因?yàn)?/span>ServerName在動(dòng)態(tài)解釋過程中,因多并發(fā)情況下,因后訪問者將前訪問者的ServerName改寫而導(dǎo)致錯(cuò)誤的解釋,即將不同網(wǎng)絡(luò)用戶的消息地址進(jìn)行張冠李戴而導(dǎo)致消息無法正常發(fā)送呢?

          分析消息中心各部分WEBService生成和使用機(jī)制:因系統(tǒng)的并發(fā)性要求較高,在高峰期其在線用戶可達(dá)3000人,并發(fā)用戶在300以上,且系統(tǒng)穩(wěn)定性要求極高。為提高系統(tǒng)的性能和穩(wěn)定性,在系統(tǒng)啟動(dòng)時(shí)即將消息中心各部的WEBService連接進(jìn)行創(chuàng)建和緩存,以提升消息中心資源利用率,并提升其訪問性能。

          當(dāng)存在多網(wǎng)絡(luò)用戶訪問時(shí),可能因消息中心存貯的WEBService連接并不是其用戶所使用的那個(gè)網(wǎng)絡(luò)的WEBService服務(wù)地址,此時(shí),消息肯定是無法送達(dá)至此用戶所需要的目標(biāo)的。因此,報(bào)”connect time out”錯(cuò)誤就成必然的了。

          既然已找到問題的可能原因,我們立即進(jìn)行著手分析和解決:根據(jù)部署要求,我們對(duì)對(duì)消息服務(wù)連接服務(wù)進(jìn)行了升級(jí),即將服務(wù)請(qǐng)求進(jìn)行分類處理和實(shí)現(xiàn),并在消息配置中對(duì)所使用的部署方式、代理實(shí)現(xiàn)后,交由測(cè)試人員進(jìn)行部署和測(cè)試。

          測(cè)試結(jié)果:令人失望的是,此問題依然存在!在通過外網(wǎng)WEB服務(wù)器訪問的系統(tǒng),其消息還是無法發(fā)送至消息總線。由此得知,此種分析方向是錯(cuò)誤的!

          至此,好像已經(jīng)走入了死區(qū),能想到的方式都已經(jīng)想到了,但問題到底出在哪呢?

          問題解決

          在一次與同事聊天的過程中,忽然想到一個(gè)問題,那就是:我們的消息的產(chǎn)生和應(yīng)用都是由應(yīng)用系統(tǒng)和與之集成在一起的消息客戶端自動(dòng)產(chǎn)生和處理的,此過程中完全不受人工干預(yù)和影響。而應(yīng)用系統(tǒng)是部署在應(yīng)用服務(wù)器中,WEB服務(wù)器僅是用來處理用戶的HTTP請(qǐng)求à將此請(qǐng)求轉(zhuǎn)發(fā)至對(duì)應(yīng)的應(yīng)用服務(wù)器后à將應(yīng)用服務(wù)器的響應(yīng)返回給用戶。

          在此過程中WEB服務(wù)器并未對(duì)用戶業(yè)的http請(qǐng)求進(jìn)行過任何業(yè)務(wù)上的處理!那么,問題會(huì)不會(huì)出在WEB服務(wù)器端呢?檢查一下消息中心的配置不管是使用ServerName還是寫死IP和域名,我們的消息中心配置的地址都是指向WEB服務(wù)器。而在應(yīng)用系統(tǒng)發(fā)現(xiàn)消息時(shí),其所在位置是應(yīng)用服務(wù)器。而應(yīng)用服務(wù)器是無法直接訪問部署于外網(wǎng)IP中的WEB服務(wù)器的,當(dāng)然,消息無法發(fā)送至目標(biāo)就成為必然了。

          既然已經(jīng)找到問題,那就動(dòng)手,將消息中心的配置信息指向應(yīng)用服務(wù)器后,重啟應(yīng)用系統(tǒng)后測(cè)試,問題果然解決!

          通過應(yīng)用服務(wù)器進(jìn)行后臺(tái)自動(dòng)處理的,進(jìn)行HTTPWEBService活動(dòng),其目標(biāo)必需是它能夠訪問的有效地址!這個(gè)問題在以前也曾經(jīng)碰到過,只是由于時(shí)間隔得太久,且這些場(chǎng)景應(yīng)用出現(xiàn)太少,而導(dǎo)致再次發(fā)生。

          補(bǔ)充與心得

          1、    基于應(yīng)用系統(tǒng)或后臺(tái)自動(dòng)觸發(fā)的一些業(yè)務(wù)邏輯,如其中存在著系統(tǒng)間相互訪問或遠(yuǎn)程調(diào)用等,必需以應(yīng)用系統(tǒng)自身為根,進(jìn)行連接測(cè)試;通過外層包裝或其它代理,進(jìn)行訪問時(shí),必需先剝離過外層包裝或其它代理后,再進(jìn)行連接測(cè)試,并以測(cè)試結(jié)果,作為決策的依據(jù)!此舉適用于各類系統(tǒng)的架構(gòu)設(shè)計(jì)和邏輯實(shí)現(xiàn)過程中。

          2、    基于中間件產(chǎn)品應(yīng)用,及時(shí)開發(fā)與之配套的檢測(cè)和使用工具,是一件必不可少的工作,此舉將為后期的實(shí)施和問題分析節(jié)省大量的工作量。

          posted @ 2009-10-07 17:06 lbom 閱讀(1493) | 評(píng)論 (0)編輯 收藏

              幾天前,偶爾和鄰居聊天,她說要去買頂蚊帳過夏,不由的也動(dòng)了心。是啊,在小時(shí)候,那家不是用蚊帳來保證漫長(zhǎng)夏的良好睡眠呢!現(xiàn)在隨著科技發(fā)達(dá),家家戶戶,特別是城市住戶都已經(jīng)將蚊帳扔掉而改用蚊香或蚊片了。
              于是等夫人下班回家,和其商量,卻是死活不同意,理由如下:1)影響臥室美觀;2)擠占空間;3)拆洗不便。。。。。。
              沒辦法,為了達(dá)到目的,我只得絞盡腦汁,想出各種理由,以期望能夠說服夫人:
              1)身體牌:我對(duì)蚊香有過敏,因此,在夏天,我們是不能點(diǎn)蚊香的;再說,各種滅蚊產(chǎn)品其主要成份都有毒性,不管其含量多少,都對(duì)身體無益。
              2)經(jīng)濟(jì)牌:在重慶,一年有6個(gè)月的夏天,以每晚一片滅蚊片計(jì)算,一年下來,加上電熱滅蚊器最少需要投入120元以上才能保證夏季無憂,三四年下來,就可以買個(gè)較好的蚊帳了;再說,滅蚊片用久后,還得防止蚊子產(chǎn)生的抗藥性;但使用蚊帳卻不需要用電,一年下來,其電費(fèi)也能節(jié)約不少,還可防止可能因電熱滅蚊器散熱不良而導(dǎo)致的用電風(fēng)險(xiǎn)的發(fā)生;
              3)環(huán)保牌:在臥室支個(gè)蚊帳,即溫馨又浪漫,還無滅蚊產(chǎn)品的各類化學(xué)合成的氣味,最環(huán)保不過了;
              4)衛(wèi)生牌:在床上支個(gè)蚊帳,將有效的減少灰塵降落,也免了蜘蛛等小蟲在晚間不意間打擾我們的安眠,多好的一件事!
              。。。。。。
              啰啰嗦嗦,直說的口干舌燥,并許下一堆好處之后,終于換來老婆的點(diǎn)頭。于是二話不說,拉上夫人,直奔商場(chǎng),在東挑西比之后,買下一款合意的落地式蚊帳。
              至此,我的環(huán)保蚊帳計(jì)劃就此實(shí)現(xiàn)!
           
              所以,回歸和懷舊,并不都是倒退!
          posted @ 2009-05-26 09:43 lbom 閱讀(294) | 評(píng)論 (0)編輯 收藏

                  在一周前,項(xiàng)目組碰到一個(gè)大問題:NTKO Office Activex控件在上傳文件及提交頁面信息時(shí),其提交的頁面元素輸入中文值變成了無法識(shí)別的、也不屬于已知編碼中的任何一種編碼格式的亂碼;但在NTKO Office Activex控件包裝項(xiàng)目組提供的的測(cè)試項(xiàng)目中,此問題并未出現(xiàn),因此判斷是項(xiàng)目兼容性所導(dǎo)致。
                 在項(xiàng)目組功能開發(fā)員和控件包裝組成員進(jìn)行近一周的努力后,也未解決此問題。最后,此問題交由我來做最后分析和處理。
                 經(jīng)過三天時(shí)間對(duì)問題項(xiàng)目的分拆、組裝、分析、測(cè)試后,終于找到問題所出,現(xiàn)將此過程進(jìn)行記錄,以備參考:
                  1)以控件包裝組測(cè)試項(xiàng)目為基準(zhǔn),建立項(xiàng)目級(jí)測(cè)試項(xiàng)目,并保證在此測(cè)試項(xiàng)目中不存在兼容性問題;
                  2)檢測(cè)web.xml:將問題項(xiàng)目的web.xml代替測(cè)試項(xiàng)目中的web.xml,未出現(xiàn)兼容性問題,從而排除因web.xml的差異而導(dǎo)致的兼容性;
                  3)測(cè)試問題項(xiàng)目中的項(xiàng)目依賴:將問題項(xiàng)目的項(xiàng)目依賴關(guān)系復(fù)制至測(cè)試項(xiàng)目中,發(fā)現(xiàn)兼容性問題未出現(xiàn),從而排除項(xiàng)目依賴導(dǎo)致的兼容性;
                  4)檢測(cè)支持包:將問題項(xiàng)目中的支持包(各jar)代替測(cè)試項(xiàng)目中的支持包,未出現(xiàn)兼容性問題,從而排除因支持包的差異導(dǎo)致的兼容性,也就排除了各servers,servlet,listener等導(dǎo)致的兼容性問題;
                  5)檢測(cè)js支撐:將問題項(xiàng)目中的所有相關(guān)js文件取出,代替測(cè)試項(xiàng)目中的相關(guān)js文件,未出現(xiàn)兼容性問題,從而排除因js支持文件的差異導(dǎo)致的兼容性;
                  6)檢測(cè)css支撐:將問題項(xiàng)目中的所有相關(guān)css文件取出,代替測(cè)試項(xiàng)目中的相關(guān)js文件,未出現(xiàn)兼容性問題,從而排除因css支持文件的差異導(dǎo)致的兼容性;
                  7)檢測(cè)tld,xml文件:將問題項(xiàng)目中的tld,xml文件取出,代替測(cè)試項(xiàng)目中的tld,xml文件,未出現(xiàn)兼容性問題,從而排除因tld,xml的差異導(dǎo)致的兼容性;
                  8)至此,正常解決的兼容性措施都已用完,還是未找到問題所出!如何辦?
                  9)開始使用非正常手段進(jìn)行排查:
                      <1>對(duì)比檢查.project和.classes未發(fā)現(xiàn)異常,從而排除基本項(xiàng)目配置導(dǎo)致的兼容性;
                      <2>將問題項(xiàng)目的web項(xiàng)目設(shè)置文件(.settings)代替測(cè)試項(xiàng)目的web項(xiàng)目設(shè)置文件(.settings),問題出現(xiàn)了!繼續(xù)排隊(duì)分析,發(fā)現(xiàn)問題出現(xiàn)在文件org.eclipse.wst.common.component中,
          問題項(xiàng)目的設(shè)置為:
                                              <?xml version="1.0" encoding="UTF-8"?>
                                              <project-modules id="moduleCoreId" project-version="1.5.0">
                                                 <wb-module deploy-name="XXX_IC">
                                                 <wb-resource deploy-path="/" source-path="/web"/>
                                                 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
                                                 <wb-resource deploy-path="/WEB-INF/classes" source-path="/test"/>
                                                 <property name="java-output-path" value="build/classes"/>
                                                 <property name="context-root" value="XXX_IC"/>
                                             </wb-module>
                                             </project-modules>
          測(cè)試項(xiàng)目設(shè)置為:
                                              <?xml version="1.0" encoding="UTF-8"?>
                                              <project-modules id="moduleCoreId" project-version="1.5.0">
                                                 <wb-module deploy-name="test">
                                                 <wb-resource deploy-path="/" source-path="/web"/>
                                                 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
                                                 <wb-resource deploy-path="/WEB-INF/classes" source-path="/test"/>
                                                 <property name="java-output-path" value="build/classes"/>
                                                 <property name="context-root" value="test"/>
                                             </wb-module>
                                             </project-modules>
          且無論如何修改"XXX_IC",都會(huì)導(dǎo)致兼容性出現(xiàn),最后沒辦法,將下劃線"_"去掉,奇跡出現(xiàn)了。
                  原來NTKO Office Activex控件在提交數(shù)據(jù)時(shí),是通過scoket模擬Http進(jìn)行文件和頁面元素的提供,如提交的頁URL完整路徑中包含了"_"等字符時(shí),將導(dǎo)致無法識(shí)別,從而導(dǎo)致兼容性的產(chǎn)生。
          posted @ 2009-05-15 22:13 lbom 閱讀(1509) | 評(píng)論 (2)編輯 收藏

           

          從小到大,椰子已經(jīng)吃過很多次了,但在這些吃椰子有經(jīng)歷中,我只知道一種吃法:開孔à插吸管à喝椰汁à丟椰殼à完事!

                 但在今天,事情有了些變化,于是產(chǎn)生的椰子的第二種吃法。

          我和夫人在散步時(shí),順便準(zhǔn)備到超市買點(diǎn)水果,看到水果區(qū)的椰子又大又好且正在打特價(jià)。心中一動(dòng),就挑了個(gè)大的,買回家準(zhǔn)備細(xì)細(xì)品嘗一番。在按通常吃法吸光椰子中的水汁后,突然想起,我們平時(shí)很喜歡吃超市中的一種叫椰角小吃的,又甜又韌很有嚼勁,但椰角是長(zhǎng)大哪的呢?不會(huì)是椰子樹上的另一種產(chǎn)品吧!看著椰子開口的硬殼下面的白色軟組織,我們就突發(fā)奇想,這白色軟組織會(huì)不會(huì)就是那椰角呢?

          說動(dòng)就動(dòng),先用刀將空椰子殼砍開,發(fā)現(xiàn)其內(nèi)層確實(shí)是一層約0.8cm厚的白色果肉。小心的切下一小塊嘗一嘗,味道淡淡的,很有韌勁,確實(shí)就是那椰角的源料。這就是我發(fā)現(xiàn)的椰子的第二種吃法了。

          在生活中有很多事:你沒經(jīng)歷,就不會(huì)想到;當(dāng)你想不到時(shí),美好的事情就可能錯(cuò)過!
              這就是生活。

                                                                                              2009/5/5

          posted @ 2009-05-05 22:31 lbom 閱讀(2373) | 評(píng)論 (2)編輯 收藏

           

          在我們公司的軟件研發(fā)體系中,存在著三種截然不同的軟件開發(fā)方式。而我,作為公司最老同事之一,也是這三種開發(fā)模式的親歷者,曾不只一次的被公司同事問過我關(guān)于這三類方式之間的異同點(diǎn)。于是利用空閑時(shí)間,對(duì)其進(jìn)行一番整理、分析和對(duì)比。

          1、全能型

          部門經(jīng)理在接到項(xiàng)目之后,將此項(xiàng)目交給部門內(nèi)的熟練程序員后,此程序員就自動(dòng)被委任其為項(xiàng)目經(jīng)理。從此開始,程序員將根據(jù)項(xiàng)目售前方案和銷售合同內(nèi)容,在項(xiàng)目進(jìn)行過程中分別擔(dān)當(dāng)起項(xiàng)目經(jīng)理、功能設(shè)計(jì)師、數(shù)據(jù)存貯設(shè)計(jì)師、程序員、測(cè)試員和項(xiàng)目實(shí)施人員等諸多角色。并在項(xiàng)目進(jìn)行的過程中,帶領(lǐng)少量其它程序員和輔助資源來完成此項(xiàng)目的所有工作。

          此類項(xiàng)目其功能單一且不復(fù)雜,只是為了幫助用戶提升某一項(xiàng)工作的工作效率或解決客戶在其工作中的一些問題,如工作日志信息的采集和分析業(yè)務(wù)項(xiàng)目、辦公用品的申請(qǐng)和領(lǐng)用等。它們因?yàn)槠渖婕胺秶?,使用人員不多,從而具有項(xiàng)目總費(fèi)用少、開發(fā)和實(shí)施周期短、對(duì)性能要求不高的特點(diǎn)。

          在此類開發(fā)模式中,程序員由于其工作的全面性,使他們?cè)谶M(jìn)入項(xiàng)目組后,能夠得到很快且全面的提升,并會(huì)在與客戶交往的過程中,建立起良好的客戶關(guān)系處理經(jīng)驗(yàn),為其今后的成長(zhǎng)和發(fā)展打開良好的基礎(chǔ)。

          由于項(xiàng)目需要,程序員需要掌握全面技能,容易造成其在項(xiàng)目開發(fā)過程中需要全面的接觸項(xiàng)目管理及人際關(guān)系、需求分析、數(shù)據(jù)庫及對(duì)象設(shè)計(jì)、人機(jī)交互和用戶體驗(yàn)設(shè)計(jì)、系統(tǒng)設(shè)計(jì)和開發(fā)、測(cè)試和系統(tǒng)提升、應(yīng)用實(shí)施和售后維護(hù)等諸多截然不同的領(lǐng)域范圍;所以,作為此類程序員,其工作壓力之大,事務(wù)之復(fù)雜、綜合素質(zhì)要求之高,是其它模式的程序員所無法對(duì)比的,這也是造成此類項(xiàng)目按時(shí)完成率極低、尾款回收困難、項(xiàng)目售后工作難做、用戶滿意度差、二次項(xiàng)目獲取困難的根本原因。

          同時(shí),由于程序員被大量的非開發(fā)性事務(wù)所干擾,造成他們無法專心致力于專業(yè)技能的學(xué)習(xí)和提升,也就無法造就一支高效率、高穩(wěn)定性、配合默契的開發(fā)隊(duì)伍,這也是造成公司內(nèi)此類人才大量流失的重要原因。

          2、英雄型

                 部門經(jīng)理在接到此類項(xiàng)目后,按項(xiàng)目所涉及的領(lǐng)域范疇,將其按領(lǐng)域進(jìn)行分工。以企業(yè)信息協(xié)同系統(tǒng)為例,我們將進(jìn)行如下分工:門戶信息的獲取、聚合、交互和展現(xiàn)工作交給專職于門戶開發(fā)的程序員;內(nèi)部郵件系統(tǒng)的分析、設(shè)計(jì)、和實(shí)現(xiàn)將給郵件開發(fā)程序員;日程和事務(wù)的設(shè)計(jì)交給日程開發(fā)程序員;工作流應(yīng)用工作交由工作流客戶化開發(fā)程序員等等。

                 在此類型的開發(fā)模式中,程序員將會(huì)是某一領(lǐng)域內(nèi)的英雄式人物!由于他長(zhǎng)期且相對(duì)穩(wěn)定的負(fù)責(zé)著這個(gè)有限領(lǐng)域范圍內(nèi)的一切事務(wù),可以幫助他在一定時(shí)期內(nèi)進(jìn)行系統(tǒng)而穩(wěn)定的業(yè)務(wù)研究和分析工作,進(jìn)而成長(zhǎng)為此領(lǐng)域內(nèi)的業(yè)務(wù)專家。而且,通過持續(xù)的對(duì)其工作進(jìn)行迭代式開發(fā)、升級(jí)和完善,可使此產(chǎn)品在產(chǎn)品品質(zhì)、適用性和用戶體驗(yàn)等方面得到穩(wěn)定的提升,進(jìn)而提升了整個(gè)產(chǎn)品的品質(zhì)。

                 如果此領(lǐng)域內(nèi)的工作產(chǎn)品能夠得到合理的規(guī)劃和實(shí)現(xiàn),進(jìn)而將其進(jìn)行單獨(dú)的封裝、應(yīng)用集成和推廣,就有可能形成一個(gè)具有相當(dāng)競(jìng)爭(zhēng)力的產(chǎn)品,從而為公司獲取新的銷售機(jī)會(huì)和利潤(rùn)點(diǎn)。

                 但是,此類開發(fā)模式中的分工也容易造成程序員涉及業(yè)務(wù)領(lǐng)域單一和適應(yīng)性窄的缺陷:由于其長(zhǎng)期面對(duì)和研究著單一業(yè)務(wù)領(lǐng)域內(nèi)的業(yè)務(wù)活動(dòng),而無法更多的接收和參考來自于用戶、企業(yè)和其它行業(yè)內(nèi)的非它業(yè)務(wù)發(fā)展需要和趨勢(shì),從而對(duì)其在產(chǎn)品領(lǐng)域內(nèi)的發(fā)展產(chǎn)生限制,并造成其產(chǎn)品方向上的不準(zhǔn)確或錯(cuò)誤定位;由于其長(zhǎng)期的在單一領(lǐng)域內(nèi)工作,并在此領(lǐng)域內(nèi)獲得了公司內(nèi)的認(rèn)可,這也將限制他在領(lǐng)域間的流動(dòng)性。當(dāng)公司或部門的產(chǎn)品方向和需要調(diào)整和改變時(shí),此類程序員就需要被迫改變甚至放棄其在原領(lǐng)域內(nèi)的所有積累而重新開始,從而造成巨大的浪費(fèi)。

          3、專業(yè)型

                 項(xiàng)目經(jīng)理在接到項(xiàng)目之后,根據(jù)項(xiàng)目組成員的能力、特長(zhǎng)職業(yè)規(guī)劃,對(duì)他們進(jìn)行適當(dāng)且專業(yè)化分工:由業(yè)務(wù)規(guī)劃人員負(fù)責(zé)項(xiàng)目的需求收集、業(yè)務(wù)規(guī)劃和需求分析;由系統(tǒng)架構(gòu)師對(duì)系統(tǒng)的進(jìn)行技術(shù)構(gòu)架和支撐性技術(shù)的規(guī)劃和引進(jìn);由數(shù)據(jù)庫專員負(fù)責(zé)數(shù)據(jù)庫對(duì)象的設(shè)計(jì)和性能調(diào)優(yōu);由功能分析員在人機(jī)交互人員輔助下負(fù)責(zé)功能設(shè)計(jì)和人機(jī)交互模式;由業(yè)務(wù)邏輯實(shí)現(xiàn)專員根據(jù)功能設(shè)計(jì)進(jìn)行高性能的業(yè)務(wù)邏輯處理實(shí)現(xiàn)和外部接口的設(shè)計(jì)和實(shí)現(xiàn);由頁面開發(fā)人員負(fù)責(zé)實(shí)現(xiàn)人機(jī)交互;測(cè)試人員負(fù)責(zé)對(duì)系統(tǒng)進(jìn)行全過程的測(cè)試和質(zhì)量監(jiān)督;專業(yè)化實(shí)施人員可快速高效的進(jìn)行系統(tǒng)實(shí)施和在線維護(hù),售后服務(wù)工作也將由專人負(fù)責(zé);

                 通過恰當(dāng)和合理的分工,將軟件研發(fā)過程中的各個(gè)環(huán)節(jié)進(jìn)行拆分,從而將復(fù)雜的軟件工程分解成一個(gè)個(gè)相對(duì)獨(dú)立且又緊密關(guān)聯(lián)的工作項(xiàng),從而有效的降低了軟件開發(fā)過程中的困難度和風(fēng)險(xiǎn)性;項(xiàng)目經(jīng)理把分解后的工作項(xiàng)交給項(xiàng)目組中的合適項(xiàng)目成員,并根據(jù)項(xiàng)目組成員的能力、工作難度和工作量,制定出科學(xué)的項(xiàng)目計(jì)劃;同時(shí),項(xiàng)目組成員在項(xiàng)目經(jīng)理的協(xié)調(diào)和管理下進(jìn)行密切的分工合作,此舉即能調(diào)動(dòng)項(xiàng)目組成員的其工作積極性,又能使他們將工作、興趣和個(gè)人職業(yè)成長(zhǎng)規(guī)劃進(jìn)行有效的結(jié)合,從而使其在技能、收入和社會(huì)認(rèn)可度等諸多方面得到快速成長(zhǎng),達(dá)到人盡其材,材盡其用的目的。通過使用專業(yè)的人做專業(yè)的事,公司將在人員分工、資源使用和業(yè)務(wù)拓展等領(lǐng)域走向?qū)I(yè)化、規(guī)?;?,最終成為專業(yè)且強(qiáng)大的產(chǎn)業(yè)實(shí)體。

                 但此開發(fā)模式也具有相當(dāng)?shù)木窒扌?!其一,如何合理的利用?xiàng)目組資源?項(xiàng)目組成員因其性格、能力和興趣各有不同,如何能將他們按項(xiàng)目分工和角色組成需要,進(jìn)行專業(yè)化訓(xùn)練和培養(yǎng);其二,因項(xiàng)目組成員長(zhǎng)期單一職能的工作,與其它環(huán)節(jié)的交叉和交流都受到限制,對(duì)其未來的全面發(fā)展和綜合成長(zhǎng)都很不利;其三、各角色之間的分工、合作與工業(yè)化生產(chǎn)中的生產(chǎn)線相似,那么,建立與之相適應(yīng)的質(zhì)量保證體系,保證各工序之間生產(chǎn)產(chǎn)品的質(zhì)量,從而從事實(shí)上提升軟件產(chǎn)品的整體質(zhì)量?

                 通過對(duì)這三類開發(fā)模式的分析,我們可以看出,它們各有合理性,也又具有的相當(dāng)?shù)木窒扌浴?/span>

                 全能型開發(fā)模式是早期的CS類項(xiàng)目開發(fā)的主要模式,其適用于哪些規(guī)模小,程序員少的小規(guī)模IT開發(fā)企業(yè)進(jìn)行小型項(xiàng)目的開發(fā)中。但對(duì)于那些工期較長(zhǎng)、業(yè)務(wù)范疇廣、復(fù)雜度較大的項(xiàng)目,此種開發(fā)模板將采用將導(dǎo)致風(fēng)險(xiǎn)最大化,失敗幾乎是其唯一的結(jié)局。

                 英雄型開發(fā)模式,因項(xiàng)目組成員領(lǐng)域化的分工和合作,使它在通用型復(fù)合類產(chǎn)品開發(fā)中具有優(yōu)勢(shì)。通過對(duì)產(chǎn)品的各組成部份進(jìn)行持續(xù)的改進(jìn)和迭代性開發(fā),使產(chǎn)品在功能、性能、用戶體驗(yàn)等方面得到持續(xù)的改善和提升,從而有利于產(chǎn)品拓展并在此過程中做大做強(qiáng),最終取得競(jìng)爭(zhēng)優(yōu)勢(shì)。但此開發(fā)模式也將導(dǎo)致項(xiàng)目組成員之間的工作協(xié)調(diào)、技術(shù)互用等方面存在諸多不便;另外,因領(lǐng)域的專業(yè)性和不可替換性,也就限制了公司在處理關(guān)健人員的流動(dòng)性方面存在諸多困難,并在核心競(jìng)爭(zhēng)力的保證方面存在著很大風(fēng)險(xiǎn)。

                 專業(yè)型開發(fā)模式,通過對(duì)人員進(jìn)行專業(yè)化分工,從而在軟件開發(fā)過程中最大的利用了人力資源,提升軟件的生產(chǎn)效率,并降低了軟件的從業(yè)門檻。此方式在新形式下的項(xiàng)目開發(fā)和產(chǎn)品研發(fā)中都具有相當(dāng)?shù)母?jìng)爭(zhēng)力,也易有利于保證公司的核心競(jìng)爭(zhēng)力。但采用此種開發(fā)模式時(shí),需要完善內(nèi)部的人員激勵(lì)機(jī)制,保證各角色的從業(yè)人員都有與之適應(yīng)的職位規(guī)劃和發(fā)展模式,并能根據(jù)項(xiàng)目組成員所處階段的需要,提供相應(yīng)的技能培訓(xùn)和交流機(jī)會(huì),從而促進(jìn)其成長(zhǎng),激勵(lì)其上進(jìn)。

                 總之,采取何種開發(fā)模式,要根據(jù)公司的實(shí)際業(yè)務(wù)情況,發(fā)展規(guī)劃和人員構(gòu)成,進(jìn)行科學(xué)的分析之后,再采取行動(dòng)、從而得到具有延續(xù)性和競(jìng)爭(zhēng)性,并與自身相匹配的軟件開發(fā)模式。

                                                                         2009/4/20

          posted @ 2009-04-21 21:52 lbom 閱讀(1881) | 評(píng)論 (2)編輯 收藏

                   

          今天,在陪夫人逛街回來的路上,看到一幕慘劇的發(fā)生:一位中年男子,從家中跳樓而下,墜落于堅(jiān)硬的水泥地面上,當(dāng)場(chǎng)身亡!

          人生為何?為已?為親?還是為他?

          人生為已,就應(yīng)該珍惜自己的生命,為自己這短暫的一生中,充實(shí)、幸福和快樂的活著,而不能因?yàn)闀簳r(shí)的挫折、失敗而絕望和放棄;人生漫漫而無現(xiàn)存路,需要自己去探索和開拓,在此過程中,必然會(huì)經(jīng)歷曲折和無法避免的挫折。但是,不經(jīng)歷風(fēng)雨,如何能見彩虹!挫折過后,往往就伴隨著一段平坦的直道;人生艱難,生活、事業(yè)、家庭、社會(huì)各種矛盾在我這會(huì)聚,理不清也扯不斷!既然如此,何不干脆看開,將不可調(diào)和的矛盾進(jìn)行暫時(shí)地休眠,讓時(shí)間這個(gè)解決矛盾的最好的潤(rùn)滑劑來慢慢解決它。

          人生為親,為父母:他們含辛茹苦的將你從無到有、從幼養(yǎng)成,而你卻要在他們需要照顧和看護(hù)的年齡離他們而去!你忍心嗎!為妻:相汝以沫幾十年、同床共枕伴一生!鍋碗瓢盆一屋住,酸甜苦辣是生活。你就忍心在她人生路中間,正需你堅(jiān)強(qiáng)的肩膀作支撐時(shí),卻拋下她一人孤苦的走在這漫長(zhǎng)的人生路上,你安心嗎?人生為子:父親是兒女的榜樣和偶像,他們需要借助你那成熟的智慧來打開事業(yè)的大門,也需要你那豐富的閱歷來開拓自己的人生路,更需要你成功的經(jīng)驗(yàn)來保護(hù)雛鳥并解決初飛時(shí)所遇到的種種風(fēng)險(xiǎn)!在這種關(guān)鍵的時(shí)候,你卻拋棄了他,你放心嗎?

          人生為他,為朋友兄弟:有多少美好時(shí)光值得回憶,有多少美妙經(jīng)歷值得回味,又有多少坎坷擔(dān)當(dāng)值得珍惜!你就此離開,從此兄弟聚首少一人,朋友舉杯缺一環(huán)!為事業(yè):你正值人生當(dāng)年,恰逢事業(yè)當(dāng)期,失敗你經(jīng)歷,成功應(yīng)有你,酸甜苦辣都嘗遍,還有什么過不去?為社會(huì):當(dāng)今社會(huì)多少不平事,何必事事放我心!不必為人先,也不全落后;比上我不足,哪我就比下,實(shí)在比不過,阿Q一把也不錯(cuò)!

          生命如此脆弱,稍有不慎就將墜落:走在路上被車撞死,走下樓下被東西砸死,乘車墜橋而死,去醫(yī)院被錯(cuò)藥藥死,上班被累死,下班被煩死,既然如此,何必再來一個(gè)自己尋死呢!

          請(qǐng)珍惜生命,愛護(hù)自己!

           

          20090330于家中

          posted @ 2009-04-13 15:51 lbom 閱讀(138) | 評(píng)論 (0)編輯 收藏

                  項(xiàng)目組使用潤(rùn)乾報(bào)表已一年多了,說實(shí)話,潤(rùn)乾報(bào)表在國(guó)內(nèi)同類產(chǎn)品中屬于非常不錯(cuò)的最好的報(bào)表開發(fā)和應(yīng)用產(chǎn)品。相應(yīng)的支持也比較到位,使用人員及交流社區(qū)也開展的很合適。在這先給它們作個(gè)廣告?。?!
                  在項(xiàng)目中使用潤(rùn)乾報(bào)表,對(duì)數(shù)據(jù)進(jìn)行專業(yè)的報(bào)表應(yīng)用和開發(fā),我對(duì)其作簡(jiǎn)單總結(jié):
                  1)對(duì)其服務(wù)器運(yùn)行系統(tǒng)進(jìn)行項(xiàng)目性客戶化開發(fā),從而利用項(xiàng)目中的權(quán)限管理和模塊,實(shí)現(xiàn)對(duì)報(bào)表進(jìn)行訪問控制。否則,這對(duì)企業(yè)級(jí)應(yīng)用將是一個(gè)非常大的考驗(yàn)。
                  2)潤(rùn)乾報(bào)表自帶的參數(shù)生成模塊、報(bào)表運(yùn)行載體的樣式、風(fēng)格都極其簡(jiǎn)陋,與項(xiàng)目的實(shí)際風(fēng)格可能存在很大的差距。因此必需對(duì)其進(jìn)行深入的擴(kuò)展和開發(fā)。我們項(xiàng)目組的經(jīng)驗(yàn)就是單獨(dú)開發(fā)參數(shù)生成模塊和潤(rùn)乾報(bào)表載體,如此才保證了報(bào)表中心與項(xiàng)目的用戶體驗(yàn)和交互性的一致性。
                  3)為了更好的利用項(xiàng)目組資源,我們將潤(rùn)乾報(bào)表開發(fā)人員獨(dú)立出來,形成專門的報(bào)表開發(fā)團(tuán)隊(duì)。此團(tuán)隊(duì)負(fù)責(zé)根據(jù)業(yè)務(wù)的需要,利用潤(rùn)乾報(bào)表開發(fā)工具進(jìn)行報(bào)表開發(fā),即開發(fā).raq報(bào)表文件。此部份人員可從項(xiàng)目組的普通成員和新進(jìn)人員中進(jìn)行培養(yǎng),而無需占用大量的項(xiàng)目組中中高級(jí)開發(fā)人員資源,從而節(jié)約了項(xiàng)目組的資源。
                  4)潤(rùn)乾報(bào)表對(duì)過JSP標(biāo)簽包含在jsp頁面中進(jìn)行加裁我運(yùn)行。我們稱此jsp頁面為潤(rùn)乾報(bào)表運(yùn)行載體。我們根據(jù)潤(rùn)乾報(bào)表的運(yùn)行載體進(jìn)行了科學(xué)的分類,并根據(jù)分類開發(fā)出統(tǒng)一的報(bào)表運(yùn)行載體頁面(jsp)。從而避免針對(duì)每個(gè)報(bào)表文件而開發(fā)與之對(duì)應(yīng)的運(yùn)行載體。此舉也大為減少了項(xiàng)目組的JSP開發(fā)人員的工作量。
                  5)建立潤(rùn)乾報(bào)表運(yùn)行專用配置文件,將報(bào)表參數(shù)生成模塊、運(yùn)行載體及潤(rùn)乾報(bào)表三者之間的關(guān)系進(jìn)行配置化管理,并以此為紐帶,將潤(rùn)乾報(bào)表開發(fā)人員、JSP開發(fā)人員(開發(fā)報(bào)表運(yùn)行載體和報(bào)表參數(shù)生成功能)聯(lián)系起來。

                   在開發(fā)過程中,我們碰到并解決了如下問題:
                   1)填報(bào)類潤(rùn)乾報(bào)表在進(jìn)行數(shù)據(jù)驗(yàn)證時(shí),其提示信息(以js的alert("...")方式提示用戶)成亂碼顯示:此問題是由于潤(rùn)乾報(bào)表在V4.1以后,統(tǒng)一使用UTF-8作編譯編碼。因此,要解決此問題,需要將項(xiàng)目的編碼也改成UTF-8
                   2)在潤(rùn)乾報(bào)表的參數(shù)賦值需按序依次進(jìn)行賦值,而不能采用參數(shù)名進(jìn)行統(tǒng)一賦值。因?yàn)椋绻跐?rùn)乾報(bào)表的SQL中使用了重復(fù)的參數(shù)進(jìn)行賦值時(shí),會(huì)報(bào)參數(shù)找不至的錯(cuò)誤。
                   3)在參數(shù)生成模塊中將中文參數(shù)值傳遞給潤(rùn)乾報(bào)表時(shí),會(huì)導(dǎo)致少量的參數(shù)值在傳遞過程中發(fā)生改變,如“機(jī)油”變成了“箕油”。此問題是由于在urlEncode和urlDecode的bug導(dǎo)致,請(qǐng)?jiān)陂_發(fā)時(shí)需特別注意。我們是通過自己對(duì)信息進(jìn)行加碼和解碼來解決此bug。
                   4)潤(rùn)乾報(bào)表的運(yùn)行環(huán)境與應(yīng)用服務(wù)器的編碼方式有關(guān):我們項(xiàng)目和報(bào)表中心的編碼方式為UTF-8,但運(yùn)用服務(wù)器(WAS6.1)的編碼方式為GBK時(shí),通過參數(shù)生成功能將中文參數(shù)傳遞給潤(rùn)乾報(bào)表時(shí),會(huì)出現(xiàn)亂碼問題。在將WAS的輸出和運(yùn)行編碼改成UTF-8后,才解決此問題。


          posted @ 2009-03-05 23:08 lbom 閱讀(8015) | 評(píng)論 (24)編輯 收藏

                  前段時(shí)間,項(xiàng)目組安排同事進(jìn)行項(xiàng)目移植,并考慮在其過程中進(jìn)行技術(shù)預(yù)研等相關(guān)工作,以對(duì)項(xiàng)目進(jìn)行優(yōu)化;
                  在此過程中,有同事誤解面向?qū)ο蠡_發(fā)的精髓,在匆匆了了解JavaScript面向?qū)ο蟮姆椒ê褪纠?,?duì)項(xiàng)目中的公共門戶頭以對(duì)象的方式進(jìn)行重寫。結(jié)果,將原30行的單一文件代碼變成了400多行,并分布于多個(gè)文件了。
                  在拿到此結(jié)果之后,我是哭笑不得,于是得出了:“新技術(shù)的引入必需能夠提高生產(chǎn)效率或降低工作難度,否則,沒有引入的必要”這句話。

          posted @ 2009-02-21 20:52 lbom 閱讀(1323) | 評(píng)論 (3)編輯 收藏

          主站蜘蛛池模板: 大关县| 阿巴嘎旗| 潼关县| 钟山县| 青州市| 九龙县| 濉溪县| 外汇| 沙田区| 海南省| 塔城市| 潞城市| 霍州市| 饶河县| 赣榆县| 易门县| 遂川县| 搜索| 西和县| 兴国县| 兴城市| 香港| 新巴尔虎左旗| 石景山区| 巫溪县| 吉隆县| 灵丘县| 都匀市| 邯郸市| 长沙市| 宕昌县| 西城区| 南和县| 洮南市| 盐池县| 台南县| 迭部县| 宾阳县| 烟台市| 康平县| 西畴县|