欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

我的20天項目經歷--至今令我難忘的技術難題

系統 1672 0

原創(chuàng)于2007年06月19日,2009年10月16日遷移至此。


時間轉眼過去一年多了 , 我離開 H 公司也已經一年多了 . 往事不堪回首 , 世事也總是以成敗論英雄的 , 因為我知道前面的一個接口項目先后導致 3 個人離職 ,2 個人被處罰 ; 而這個項目只有我一個人 , 在項目割接的當天我總算不辱使命完成了 ; 我既是成功者 , 也是失敗者 ; 我證明了自己是可以笑著離開 H 公司的 . 其實我一直不太想寫出來 , 畢竟申請離職也不是一件很光彩的事情 .

2006 年是全國號碼百事通風起云涌的一年 , Z 電信公司正是第一個勇于吃螃蟹的人且率業(yè)界之先的公司 ; 我就是 2006 年初被派到 電信公司跟著另外一個項目經理討論接口需求的 ( 原因很簡單 , 為了避免壟斷 ,Z 電信公司把省中心業(yè)務給了 Q 公司 , 12 各地市給了 H 公司 所以在省中心和地市之間需要通過 Web Service 接口進行互連 ), 其實在這之前的一年內我是做 BI 和數據庫優(yōu)化的 , 對于所謂的接口和 114 是一竅不通的 . 估計看出了點苗頭 , 項目經理當了甩手掌柜 , 只好由我一個人來負責此事了 . Z ,

2 8 , 春節(jié)還沒過完 , 我便來到了 H , 經過反復的討論和調研 , 其實我做的工作只是號碼百事通業(yè)務的一部分 , 即實現對現有知識庫的智能訪問 , 當然訪問是需要通過接口來完成的 , 此外還要實現一定的功能 , 例如發(fā)送短信 , 來電轉接 , 記錄計費信息 , 當然也是通過接口來實現 .


其實我很早就已經有了初步的想法 , 最簡單的就是我自動生成存儲過程和自動生成 html 網頁 ( 其實基本上已經實現了 ), 但是了解到存儲過程需要在友商的數據庫中創(chuàng)建 , 以及考慮到相關的風險和雙方的劍拔弩張的氣氛 , 這顯然是不可能實現的任務 . 現在只能自己另辟蹊徑建一個獨立的 Web Server 服務器 , 通過正在流行的 Web Service 接口來實現這一切功能了 .

上述的圖片顯示的框架源于我對 BI 和數據庫的理解 , 只要有一個開放的數據字典 , 基本上就可以實現任何的自定義查詢和自定義組合 如果復雜一點的話 , 甚至可以實現一套簡單的報表系統 . 正是基于這樣的想法和相關數據結構開始和 Q 公司談相關的接口 . 但是有幾個問題一直纏繞著我 : ;

1. 采用什么樣的 WEB 服務器 ,Tomcat 還是 Resin

2. 采用什么樣的編程工具 ,Jbuilder 還是 Eclipse?

3. Web Service 接口到底是什么 , 如何完成發(fā)布和調用

4. 采用什么樣的 Java 框架 (Struct 還是 Spring 還是純粹的 JSP)

5. Ajax 技術

6. 關于樹型目錄的實現 ( 需要高效 , 無延遲 )

7. 最難纏的還是和 Q 公司的談判和交流 ( 要面對對方 5,6 人的輪番轟炸 )

也許對于 java 高手而言這根本不算什么 , 可對于我而言 , 那簡直是一場噩夢 , 我的 Java 水平和 HTML 水平僅限于寫一些簡單的 JSP 頁面和 JavaBean 完成簡單的封裝 , 我自認為自己水平最高的還是 HTML javascript 水平 , 不管多么復雜的頁面和 frame 我都可以整理出一個頭緒出來 . 我從來不是一個唯工具論者 , 我相信任何工具都只是手段 , 而條條馬路都可以通向羅馬的 . 可惜給我留的時間太短了 , 只有 3 周的時間 . 說真的 , 那時候天天對著西湖的美景 , 沒有一絲絲觀看的心情 , 真的想撲通一聲跳下去 , 一了百了 .

言規(guī)正傳首先需要確定系統大體的架構 ,Tomcat Eclipse 都是開源的架構 , 不涉及到版權和費用 , 從網上 down Tomcat, 呵呵 , 如果 Z 電信公司知道了非要氣個半死不可 . 按照從網上搜索的資料把 Tomcat Eclipse 環(huán)境配置完畢 , 然后按照公司的 java 高手指點 , 配置 框架 . Spring


關于 Spring 框架的配置

Spring 是一個開源框架,是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的。框架的主要優(yōu)勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為 J2EE 應用程序開發(fā)提供集成的框架。

其實在這樣的小型系統里 , 它提供了一個便于調試和控制的開關 ; 至少在本文中 , 是為了解決無法使用接口環(huán)境進行調試的時候 , 改用數據庫接口方式 .

<!-- ======= 如果是和 soap 接口連接,請去掉該 bean 的注釋 ===========-->

<bean id="QueryData" class="com.xxx.yyy.inf.SoapInterface">

<property name="endpoint">

<value>http://192.168.1.2/Forxxx/ForQuery.asmx</value>

</property>

<property name="nameSpace">

<value>http://tempuri.org/</value>

</property>

</bean>

<!-- =========== 如果是和 db 接口連接測試 , 請去掉該 bean 的注釋 =====-->

<!--

<bean id="QueryData" class="com.xxx.yyy.inf.DBInterface">

<property name="dataSource">

<ref local="DataSource"/>

</property>

</bean>

-->


關于樹型目錄的框架

嚴格說來寫一個樹型目錄的架構是一項非常復雜的工作 , 樹型目錄的實現有兩種方式 : 全部畫出所有的樹節(jié)點和當觸發(fā)時實時畫出下一層節(jié)點。前一種的實現相對簡單一些 , 但是當節(jié)點數量超過 1000 之后 , 采用遞歸算法會導致頁面首次顯示時出奇的緩慢 , 我曾經做過對 js 腳本和相應的存儲過程做過調優(yōu) , 但是效果還是不甚理想 ; 觸發(fā)時才實時畫出下一層節(jié)點技術難度很高 , 還好公司有比較現成的框架 , java 類和接口就有 10 幾個 , 完全閱讀并理解顯然是不現實的 , 只能通過摸索把先有的業(yè)務和原來的接口進行不斷的測試 , 花費了一天時間才得以完成 .


關于 Web Service

Web Service 是一種可以接收從 Internet 或者 Intranet 上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。總得來講它能夠突破平臺限制 , 穿越企業(yè)防火墻 , 通過開放的接口和認證實現信息的共享和傳遞 .

WSDL

對于商業(yè)用戶來說,要找到一個自己需要使用的服務,他必須知道如何來調用。 WSDL (Web Services Description Language) 規(guī)范是一個描述接口,語義以及 Web 服務為了響應請求需要經常處理的工作的 XML 文檔。這將使簡單地服務方便,快速地被描述和記錄。

對于 .Net WSDL 調用來說是很簡單的 , 例如一個簡單的 VBS 腳本

Dim obj

set obj=createobject("MSSOAP.SoapClient30")

obj.MSSoapInit "QueryService.wsdl"

MsgBox obj.getPhoneByName("0578", "XXX 單位 ",10)

但是對于 java 而言調用一個 .Net 產生的 WSDL 簡直被折磨了半死 ,Q 公司又不肯提供技術支持 , 不斷的進行調試跟蹤最后才發(fā)現是一個 setEncodingStyle 參數設置的問題 .

public class CpSpInterface {

protected Log logger = LogFactory.getLog(this.getClass());

private String endpoint = "http://192.168.1.2/Service1.asmx";

private String nameSpace = "GetSPInfo";

public String callGetIndexByType(String strTypeID, String strParaList,String strResultType)

{

String ret = "<?xml version="1.0" encoding="gb2312" ?><root status="1" lines="0"></root>";

try {

String methodName = "GetIndexByType";

Service service = new Service();

Call call = (Call) service.createCall();

call.setTimeout(new Integer(120000));

call.setTargetEndpointAddress(new java.net.URL(endpoint));

call.setUseSOAPAction(true);

call.setSOAPActionURI(nameSpace + "/GetIndexByType");

call.setOperationStyle(org.apache.axis.constants.Style.WRAPPED);

call.setEncodingStyle("literal");

call.setOperationName(new QName(nameSpace, methodName));

StringHolder holder = new StringHolder("0");

// Set Call Parameter

call.addParameter(new QName(nameSpace, "strTypeID"),

Constants.XSD_STRING, ParameterMode.IN);

…………

//Set back Parameter

call.setReturnType(Constants.XSD_STRING);

ret = (String) call.invoke(new Object[] { strTypeID, strParaList,

strResultType });

ret = ret.replaceAll("utf-8","gb2312");

logger.debug("ret = "+ret);

logger.info("return errorcode = " + holder.value);

} catch (Exception e) {

logger.error("Error " + e);

}

return ret;

}

}


關于 Ajax

單純從 Ajax 本身來說,其最主要不過就是解決在網頁上一個無刷新獲取數據的問題,再加上減少了數據的傳輸量,將數據解析的工作推到了客戶端,的確能解決很多傳統的問題,很方便的實現一些動態(tài)效果。 Ajax 的應用本來是為了增強用戶體驗 , 于是就有了一個新的名詞 WEB2.0.

其實在該系統的應用很簡單即獲取到 COM 組件傳過來的主叫號碼和被叫號碼 , 記錄到 Session , 具體的 JSP 頁面是一個非常簡單的頁面 , 就不必再寫了 , 呵呵

Xh = new ActiveXObject(“Microsoft.XMLHTTP");

var link = "./beginSession.do?callID="+callid+"&callerNo="+callerno+"&calleeNo="+calleeno;


關于交流

其實整個系統過程中 , 最頭疼的問題還是和 Q 公司的交流 ,Q 公司是一家新型的在電信領域剛剛展露頭腳的公司 , 面對這樣一個揚名立萬的機會 , 當然不會錯過了 , 于是派了 40 個現場人員進行現場開發(fā) , 真不知道他們的項目成本控制是怎么做的 ; 而我方總計也只有 3 個人 , 參與接口的討論最多也只有 2 個人 ; 每次都要面對對方嗡嗡的一群人的輪番轟炸 ; 最后不得已拉著 Z 電信公司一起參與討論 . 還好對方也有很多的軟肋 ( 雙方都要提供一些接口 ), 才不至于被折磨的太慘 .


2006 2 28 , 是個特殊的日子 , 當天下午 Q 公司終于把接口調試完畢 , 當天晚上我也把相應的功能完善起來 , 終于到了一個 milestone. 彷佛經歷了一場噩夢 . 連續(xù) 3 周的時間 , 每天從早 9 點到晚上 3 點不停的寫代碼 , 調試代碼 , 查詢資料 , 討論需求 ; 極度厭煩了這樣的生活 , 最后終于借口身體不好 , 倉惶逃離了這個地方 , 把工作交接給一位新來的同事 , 他又繼續(xù)維護了 6 個月 . 我回去后休整了 1 個多月 , 身體仍然比較虛弱 , 再過了一個月就黯然離職了


補記 : 時年 6 月份便發(fā)生了一幕慘劇 , 一位同事因過勞而死 不知道我再呆上幾個月 , 輪到的是不是我

我的20天項目經歷--至今令我難忘的技術難題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 婷婷久久无码欧美人妻 | 亚洲欧美日韩中文综合在线不卡 | 美女扒开内裤让男人桶 | 精品欧美乱码久久久久久 | 青青草在线免费视频 | 成人激情四射 | 99影视| 天天干夜夜夜操 | 久久中文字幕一区二区三区 | 日本高清在线精品一区二区三区 | 国产精品一区av | 午夜影院福利社 | 91久色视频 | 国产chinese视频在线观看 | 一二区 | 在线国产视频 | 免费在线一级毛片 | 欧美电影大全 | 日韩精品久久久久 | 日韩一区二区三区在线视频 | 欧美国产精品一区二区免费 | 美女午夜色视频在线观看 | 波多野一区二区三区在线 | 就去色成人网 | 欧美经典成人在观看线视频 | 午夜寂寞少妇aaa片毛片 | 成年网站免费观看 | 欧美一级毛片欧美毛片视频 | 国产精品久久久久久久久久免费 | av片免费 | 91p在线 | 美腿丝袜亚洲综合 | 在线免费观看网址 | 亚洲激情视频在线观看 | 超级碰在线视频 | 91精品啪在线观看国产91九色 | 天天艹久久 | 国产亚洲成在线播放va | 日本香蕉一区二区三区 | 91在线 | 欧美 | 成av在线|