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

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

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

    vulcan

    低頭做事,抬頭看路

       :: 首頁 :: 聯系 :: 聚合  :: 管理
      41 Posts :: 7 Stories :: 28 Comments :: 0 Trackbacks

    #

    由于項目需要,需要同事的DotNet實現的客戶端用我用Java寫的API,以前都沒有用過webservice,而是用進程控制的方法,先在DotNet開一個cmd.exe,然后向cmd.exe的輸入流寫如命令,進而啟動java程序。方法是很簡單,但是這樣的集成,卻穩定性不高,經常有java進程死的情況,檢查了了n編程序,但是卻一直沒有發現同事的程序有什么問題。一直想用C#重新實現底層的通信API,不過一直沒有時間;雖然這樣集成有問題,但是也運行了大半年,只是維護工作量增大了,但是不知道最近為什么,數據的下載越來越不穩定,程序一天死幾次。決定用webservice重新實現C#和java的互通,而不是格外找時間來用C#重寫API。
    使用webservice,其實過多的準備工作也不要,推薦兩個IDE,集成了WTP的Eclipse和Netbeans6.用這兩個工具,我從一個對webservice完全生疏的人,兩天之內完成了系統的集成工作。Netbeans是基于JDK6的JWS實現,主要是靠Annotation,這點很類似DotNet中webservice的實現方法,并且根據我的理解在JWS中實際的WSDL可以是不存在的,而是在runtime時生成的,用Netbeans非常方便。不過,我們現在的所有的Java環境全部是JDK5,不想貿貿然引入新的環境,因此JDK6的JWS是不能用了。看看Eclipse。Eclipse在這個方面也不錯,下載jee版的Eclipse3.3就內置了WTP,新建一個動態網站,然后就可以由兩種方法方便的生成webservice了。第一種,先有類,生成wsdl;第二種,先設計wsdl,類似于java接口的設計,這里eclipse是可以有個圖形化界面設計wsdl的,然后由此wsdl生成java類。不過我習慣第一種,先寫好java類,測試完畢之后,然后直接發布成web service,axis是非常方便部署web service的,它內置的Servlet就可以把你實現的類當作一個bean來使用。還能根據webservice來生成自動的測試頁面,不過不要太相信該測試頁面,下面我就會說到原因。

    由于系統的需要,我的這個webservice是需要維護狀態的,因為它實際上是顯示了一個通信API的web service,所以有一個會話的概念。在網上查了很久,但是都沒有我的這種例子:Axis的服務端,DotNet的客戶端,同時還要使用會話。不過看來一些資料還有Axis的Servlet的源代碼之后,慢慢清晰起來,實際上Servlet就是把HttpServletRequest和HttpServletResponse存到了MessageContext中,對于每個客戶可以用MessageContext.getCurrentContext()并且從中獲取與當前會話相關的request和response,這之后的操作就方便了,這是Servlet API的內容了;而在DotNet客戶端,由web引用生成代理類之后,只要給該代理類指定一個CookieContainer就可以維護狀態了,記住一定要指定CookieContainer,否則每次連接到web service都會是一個新的sessionId,達不到我們要求維護狀態的效果。

    為什么我說不要相信Eclipse生成的Axis的測試頁面呢?看看它的jsp源碼就知道了,它把你的類當作一個bean來用,也就是該類并不是在實際的通過遠程的web請求來使用了,也就是說它的MessageContext為null,自然也就無法維護狀態了,我就是之前沒有專門寫客戶端來測試,而是用它自動生成的測試頁面來測試session吃了虧,大概卡了一個下午的殼吧,怎么弄MessageContext都是null。

    順便說個小tip,使用在我的這個web service接口中,希望也可以對其他人有用:如果要支持一個多用戶,那么把每一個客戶關聯的對象:比如數據庫的操作類(需要事務時)或者我這里的終端通信API,它的指令執行是有Context的,所以必然注定了要關聯到每個用戶。把該對象存入到session是可行的方案,但是如果你需要一個pool自動維護這些對象的life span時,實現一個連接池肯定比session有優勢,但是怎么讓它關聯到每個用戶了。看到網上有人在dotnet中實現的方案是生成該對象的GUID,該對象初始化后(比如在連接時)返回該GUID,然后每一個操作(方法)中都帶上這個GUID參數,不過稍微想一下就知道,這種方案的弊端,時間上該GUID僅在服務端是用意義的,在服務端客戶端之間傳來傳去,給每個方法都多了一個實際上并沒有多大用處的參數。我們可以用sessionId來關聯到該這一唯一用戶。用Axis的可以在MessageContext中得到Session,這個session即是上是Axis對HttpSession的封裝,但是從這個session已經得不到sessionId了。我們需要從MessageContext中的HttpServletRequest下手:
            MessageContext mc = MessageContext.getCurrentContext();
        HttpServleteRequest    req 
    = (HttpServletRequest) 
                        mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
    通過這個req可以有兩種方法得到sessionId,一種是request.getSession().getId();一種是request.getRequestedSessionId(),分別得到了本次的sessionId還有上一次連接的的sessionId,第二個方法非常有用,如果是新連接,那么getRequestedSessionId()得到的是null值,而request.getSession().getId()每次都會返回本次連接的sessionid。所以我們的思路就明晰起來:通過判斷request.getRequestedSessionId()是否為null決定是否初始化一個對象,并且把該對象用request.getSession().getId()獲取的sessionId作為key存入到pool中。以后每次來了連接都取request.getRequestedSessionId(),并且從pool中取出該sessionId對應的對象,執行該對象相應的方法。這樣就達到了web service的狀態維護了。其實很簡單,只要在DotNet客戶端制定CookiesContainer就可以了。如:
    System.Net.CookiesContainer cc = new System.Net.CookiesContainer();
    MyService service 
    = new MyService();
    service.CookiesContainer 
    = cc;


    posted @ 2007-12-26 19:11 vulcan 閱讀(1245) | 評論 (0)編輯 收藏

    用aptitude裝上Tomcat5之后是不能用的。因為默認的JDK沒有包含sun的jdk1.5,tomcat可能都無法啟動起來。需要在/etc/init.d/tomcat5中的jdk路徑中加上新裝的JDK1.5的路徑。并且如果應用程序中有基于XML DOM的程序,那么還有可能出錯。在/usr/share/tomcat5/common/endosed下面兩個Jar包和Sun JDK1.5中的類沖突,把這兩個Jar移出該文件夾就好了。另外,貌似現在Apache和tomcat的整合方便了許多,用JkMount,比幾年前方便了很多。
    下面是最簡單的一種配置方法,不要自己去處理什么work.properties等等,也不用額外去處理安全設置。注意不要把Apache和Tomcat之間Alias到同一個目錄。否則可能引發安全性問題,比如別人用*.jsP等非法文件名可以得到jsp源文件的。并且,如果你是一個混合了php等的多語言應用程序集成環境,從tomcat的8080端口也是可以下載php的源代碼的。不過網上的這種漏洞百出的集成jsp和php的apache和tomcat整合方法,比比皆是。
    #加入到httpd.conf的Virtual Host節或者全局設置
    JkAutoAlias 
    /var/lib/tomcat5/webapps/ROOT
    JkMount 
    *.jsp ajp13
    JkMount 
    *.action ajp13
    JkMount 
    /webwork/* ajp13
    JkMount /
    */servlet/ ajp13


    posted @ 2007-12-21 14:46 vulcan 閱讀(183) | 評論 (0)編輯 收藏

    我基本上沒有用過KDE~我從5年前最開始用的RedHat開始,一種都是用Gnome,而用Gentoo的時候,由于機器配置不行用的FVWM+rox。偶然在網上一個人的Blog里面看到KDE4還有20天發布的消息,并且說是KDE4的很多新特性,穩定性和性能都會有很大的提高,所以在現在的Ubuntu上面裝了一個KDE base,試用了一下。
    總的評價來說,KDE很好了,不是傳說中的KDE很容易Crash,也不是傳說中KDE因為過于華麗而速度慢的問題,反而我的體驗是兩者沒有明顯的差別,并且KDE要顯得稍微快一點,不過是不是新鮮感造成的偏愛我就不知道了:)。
    通過進一步的Google,我了解到了現在并行KDE和Gnome程序,似乎都可以運用對方的風格,所以在KDE中運行Gnome的程序,其風格也是一致的。我記得以前用fvwm時,如果要使用GTK的程序,配置一個gtkrc,指定字體,圖標,風格等,不過這些工作是不是Ubuntu發行版幫忙做好的,我就不想再去考證了,不過確實舒服。
    對于其版權,我們作為使用者其實沒有必要去追究,Linux下的QT也是GPL的。雖然開源需要一種精神,但是靈活處理也是一種很好的方法,比如我是個開源的愛好者,我作的開發工作很多都是與開源軟件有關,并且不遺余力的在公司推廣開源軟件(不光是Linux),但是我在筆記本上就用Windows,本本自帶的正版XP操作系統,裝了一個Cygwin,足夠應付我的學習工作還有娛樂了,其實XP也挺好的,至少,我現在還是覺得XP的圖形界面整體性能還是比Linux下用Xwindows+Gnome(KDE)要略微好一些。并且可以免去一些配置問題,還有與其他的Windows兼容性問題解決,這樣挺好的。所以我對于KDE的態度也是這樣,QT是一個卓越的圖形庫解決方案,我們沒有必要去苛責它是否完全自由。不過不得不提一下,由于版權問題,如果做閉源的行業專用軟件,如果要在QT和GTK+庫中間選,還是選擇GTK+比較好。

    posted @ 2007-12-20 14:38 vulcan 閱讀(116) | 評論 (0)編輯 收藏

    Eclipse Europa 3.3超級不穩定,經常會莫名奇妙的加載不了插件,以前用基于Eclipse 3.2的JbossIDE2.0Beta時有時有死的情況,但是沒有現在的這么頻繁,真不知道是新版本Eclipse還是我的新機器或者是JDK的問題。但是反倒NetBeans進入到6.0版本之后,已經比較對我的胃口了。6.0之前編輯和Eclipse沒得比,連自動糾錯都不行,自動Import都不行。也沒有那么容易Crash。另外默認基于Ant構建,這樣即使不開IDE也可以編譯。雖然用Eclipse也可以建立基于Ant的構建,但是一直懶,不愿意寫Build.xml,用Eclipse的工程就好了。但是構建起來,NetBeans有點嫌慢,Eclipse的增量編譯體驗還是不錯的。不過說實話,Netbeans用得少,不知道是否真正用得多了也有其他的問題。但是這個Eclipse,總是要重新啟動機器,甚至多啟動幾次才好,著實煩躁。
    posted @ 2007-12-19 15:04 vulcan 閱讀(123) | 評論 (0)編輯 收藏

    昨天一個下午的時間,包括晚上加班,都沒有把OpenVPN的問題搞定,從網上查的資料也都講得不太明確,openVPN的HowTo讀了N遍,也沒有達到我的目的。昨晚躺在床上,突然想起,是不是防火墻的問題呢?早上來了,把Forward默認策略改為ACCEPT,搞定了,迅速調整了防火墻策略,搞定。
    我要實現的目標很簡單:在外網,可以用Openvpn登陸進來,并且可以訪問內網內的所有服務器,并且VPN Server不是網關,而VPN Server有兩塊網卡,一塊連接公網,一塊連接公司內網。
    各方資料顯示只要做一個SNAT就可以了,不過怎么搞都是只能聯通OpenVPN Server而不能聯通VPN Server所在內網網段的其他服務器!
    我設置的VPN的網絡段是172.31.0.0/24,服務起來之后,在服務端路由表里面顯示服務器tun的IP為172.31.0.1,網關為172.31.0.2;而在
    客戶端獲得了一個172.31.0.6的地址,路由表里面顯示網關為172.31.0.5.但是卻無法ping通172.31.0.2還有172.31.0.5,之前從來沒有用過OpenVPN,但是根據以前對路由表的理解,覺得這個網關怪怪的,所以晚上找資料就是找網關的問題。
    晚上把思路理了一下,覺得是不是這兩個是個openVPN的虛擬的網關?這么一想,那么就把注意力放到了防火墻的設置上。下面把防火墻關于VPN的設置總結一下:

    #eth0 -- internet connection
    #
    eth1 -- intranet connection
    #
    turnoff all the connection first
    iptables -P INPUT DROP
    iptables 
    -P OUTPUT DROP
    iptables 
    -P FORWARD DROP
    #open udp port for the openvpn
    #
    allow client connect to the openvpn server
    iptables -A INPUT -i eth0 -p udp --dport openvpn -j ACCEPT
    iptables 
    -A OUTPUT -o eth0 -p udp --sport openvpn -j ACCEPT
    #allow tun in and out
    iptables -A INPUT -i tun+ -j ACCEPT
    iptables 
    -A OUTPUT -o tun+ -j ACCEPT
    #allow vpn to the intranet
    iptables -A FORWARD -i tun+ -o eth1 -j ACCEPT
    #the following one is very important
    #
    if you miss this one, you will not connection
    #
    to the servers in you intranet
    iptables -A FORWARD -i eth1 -o tun+ -j ACCEPT
    #DO NAT
    iptables -t nat -A POSTROUTING -172.31.0.0/24 -o eth1 -j MASQUERADE
    posted @ 2007-12-19 11:30 vulcan 閱讀(5393) | 評論 (6)編輯 收藏

    不是內核bug也不是iptables的原因,問題出在了新內核的配置上。在2.6.20之后的內核,在netfilter的配置以前在ipv4 netfilter configuration中的相當一部分移到了core netfilter configuration中,在core netfilter configuration中配置了state的match之后,另外必須在ip: netfilter configuration中的conntract也選上,否則就會出現本文標題中的invalid argument錯誤。這個問題,困擾了我很久,最終在國外的一個maillist上找到了原因。這個問題多出現在內核升級之后,對于很多發行版本,由于把所有的feature都編譯成了模塊,所以不會出現此問題。希望可以幫到大家。
    posted @ 2007-12-16 19:28 vulcan 閱讀(2341) | 評論 (1)編輯 收藏

    自以為是個Gentoo老手,可惜用了幾年的Gentoo都是在我從學生時代帶來的老機器,毒龍1.2,256Ram,IDE硬盤上面,昨天在一臺Sata硬盤的電腦上裝Gentoo遇到了不少問題,現在寫下來,給其他同學做下參考;
    (1) LiveCD支持是沒有問題的,安裝都順利
    (2) 內核編譯支持Sata。在這個問題上,我被困擾了很久,通過lspci我知道sata芯片類型,編譯了,在grub中配置root=/dev/sda3,啟動不了,后來嘗試性的改為hda才引導了,但是取到了最后檢查磁盤的時候不成功了,提示Unable to open file or directory /dev/sda3。提示輸入root密碼進行維護,輸入進去,才發現udev沒有生成/dev/sda*!但是卻有hda*存在,于是改fstab中所有的sda到hda,于是系統啟動成功。我以為可以了,于是回去了。今天來上班,總覺得心里不爽,并且也發現了,磁盤的DMA打不開。所以繼續google,發現有人和我問題一樣,不過都沒有解決方法,搜了好久,有個人寫了一個關于gentoo在一個dell機器上安裝的心得,說是要禁用內核中的generic/default IDE support,否則sata硬盤會被認成hda.于是重新編譯了內核 ,改了fstab和grub配置,系統啟動成功,這個時候/dev/sda*生成了。測試了一下,磁盤IO增加了10倍!
    (3) hdparm對sata設備的支持有限,可以查看信息,測試,但是卻不能設置DMA等參數,所以在gentoo的/etc/conf.d/hdparm中sata_all_args=""


    posted @ 2007-12-13 14:33 vulcan 閱讀(339) | 評論 (1)編輯 收藏

    造成人與人之間命運懸殊的,往往不只是因為誰比誰更賣命或誰比誰聰明,重要的是因為誰有目標及誰的目標更清晰。

      既然如此,現在不妨讓我們先花上幾分鐘思考一下:

      我有沒有目標?

      我忙嗎?

      我在忙些什么?

      我是在為了自己的目標而忙嗎?

      我忙得來不及思考自己的目標嗎?

    -----

    將工作分類。

    將相似的零散事務集中處理。

    創造和利用“整塊”時間。

    盡量不要將時間浪費在等待中。

    充分利用等待的時間,安排好隨時可進行的備用任務。

    一次專心做一件事,并且用最快的速度完成。完成一項工作后,立刻進入下一項工作。

    養成第一次就把事情做對并做到位的工作習慣。

    每個人的時間都是有限的,但是每個人的工作效率卻是不同的,關鍵就在于我們是否能對時間進行合理安排和運用。合理運用以上方法,我們就能成為時間的主人。

    posted @ 2007-12-12 09:13 vulcan 閱讀(128) | 評論 (0)編輯 收藏

    公司的服務器都是用的Ubuntu LTS,原因很簡單,在我們這里沒有哪個發行版有Ubuntu這么好的源,用cn99的源,速度很快,速度到M級,并且我作為主要的維護人員,我自己桌面操作系統上用的就是Ubuntu,這樣維護起來比較方便。之前引入Linux系統時,也選擇過,最終結合各種因素選擇了Ubuntu。其實Debian也挺不錯的,在cn99也有源,但是我之前沒有使用過也就算了。對于Redhat系列的東西,最早使用的Linux,但是對RPM沒有好感,出了yum之后,在這邊也苦于沒有合適的源,其實CentOS應該是很不錯的,人家RHEL靠Linux實現了盈利了,Redhat在企業服務器這里肯定是有經驗。
    這次是要做個防火墻兼反向代理服務器,ubuntu說實在的,可定制性太少,即便是裝完命令行最小系統之后,還是有好多不需要的東西,所以對于防火墻不想使用ubuntu了,但是如果時間不允許,那么還是會考慮用Ubuntu,畢竟維護也有統一性。于是把目標轉向了幾個定制性比較高的系統上面。Gentoo,使用時間最長的一個系統,但是在這邊同樣源不太好,想當初在學校教育網內用tsinghua的源,那叫一個爽字。一般來說用Gentoo做服務器還是有風險的,(1)裝系統編譯費時間;(2)升級(主要是為了安全性)會經常的有很多包更新,本來可以只是更新安全公告里面出現的軟件包,但是以前用Gentoo養成的習慣,看不慣有沒有升級的包。不過如果做一個單一行的服務器,上面要裝的軟件比較少的,所以更新和編譯應該不成問題,所以還要努力找找合適的源。ArchLinux,使用過幾天,當初在新電腦上死也裝不上Ubuntu的時候用過,但是后來發現它也在我的新電腦上不能生存,于是卸掉了。不過看源,似乎國內的源都是個人網友愛好者架設的,不太牢靠。另外據說作為服務器來講還是不太穩定,這是LinuxSir上一個架ArchLinux源的哥們說的。另外,從網上找ArchLinux的SeLinux資料也沒有,只看到了一個抱怨裝不上的帖子。再加上我對ArchLinux不熟,所以也就不堅持了。接下來考慮了BSD系統,FreeBSD和OpenBSD,OpenBSD號稱世界上最安全的操作系統,但是它的光盤沒有,要用網絡安裝,看來網絡依賴太大,所以不考慮了;FreeBSD,從N年起一直對它躍躍欲試,但是卻還沒有真的往自己系統上裝過。不過它是以穩定的網絡操作系統為賣點的,并且Gentoo的Portage機制也是師從于它,所以對它真的向往,不過國內的源是否滿足要求還是要考察,也許裝裝試試就知道了。現在把選擇范圍縮小到Ubuntu,Gentoo和FreeBSD。傾向于gentoo,不過選擇依然很難。另外要做為服務器操作系統,系統管理的文檔必須要齊全,在這點上Debian,ubuntu,gentoo,freebsd都非常的棒。

    原來想,無所謂了,沒有誰比誰絕對優秀,并且在防火墻的應用領域都還不錯,誰的源快就選擇誰吧,不過還是決定多看看資料,不能那么隨便。
    最終選擇Gentoo:
    (1). 一個老外關于Mysql在Linux或者FreeBSD運行的總結:If you don't have a preference, use Linux. You'll be happier. Trust me.
    (2). 可以使用SeLinux提高系統安全性,它的Hardened kernel是專為服務器優化的,這個方面不吃虧
    (3). 我有Gentoo Linux幾年的使用經驗;雖然使用FreeBSD又是一個學習的機會,但是在生產環境中還是不能太自信
    (4). 又突然想起Gentoo以前的領導者是從FreeBSD轉過去的,他之前好像也是FreeBSD的活躍開發者,這些在gentoo的歷史里面可以看到
    另外,FreeBSD要到7.0才會支持Sata硬盤,現在雖然是在一臺廉價PC機上實行,但是新進來的高性能PC很可能就是Sata硬盤。不過可以肯定的是FreeBSD在快速演化,還是值得期待的。之前考慮FreeBSD主要是因為網上宣稱的在高負載條件下的性能還有TCP/IP協議棧,這對于反向代理服務器和防火墻應用非常重要;但是卻好像只是和Linux2.4內核的比較的,但是2.6內核都已經穩定好幾年了。不管Linux是否真的現在已經優越了,畢竟我已經有Linux多年的經驗了,而我也不是要做防火墻產品,所以也不擔心GPL協議的問題。還是對FreeBSD存在著向往,但是時間有限,如果真要用到FreeBSD的時候再學習吧,學了不用也會忘。
    ------12日更新------
    不知道我為什么下意識的把Ubuntu排除在外,因為它是二進制發行包,其實所謂可定制性,我只是希望系統上只有我需要開啟的服務,而其他的不該有的東西都不要開,這其實也是可以定制的,把那些服務關掉就可以了,而裝上了就裝上了,現在的電腦也沒有到節省到那些軟件也不能多裝的地步,做系統管理有潔癖可不行,會給自己太多的麻煩。并且所有的服務器用統一的版本便于維護,服務器多起來了之后,甚至可以維護一個本地源,供這些機器使用。開始準備實施Gentoo時,突然有了上面的想法。一年多來,Gentoo世界已經發生了很多的變化,在stage里面已經正式出現了hardened stage了,于是在網上查了下它的資料,因為如果是服務器,那就一次性的全部配好,為安全打好基礎。但是從國內外論壇上得到的消息,似乎hardened stage比較容易出問題,突出體現在glibc的問題上。根據之前用Gentoo的經驗,在gentoo的維護中偶爾還是要出點小狀況的,而解決這些狀況很多時候就需要重新編譯,這可能會導致不必要的down機時間。而glsa似乎用起來也不是怎么爽,而在ubuntu中,可以配置自動更新security軟件倉庫中的軟件包,達到自動更新的效果。開始有點畏首畏尾Gentoo的安裝和維護了。在一個企業里面引入多個linux發行版不是太明智的行為,不是每個人對系統管理都有著執著的熱情,引入復雜度太大的Linux,不便于后續的人員接手和培訓。這不是大學里面了,沒有那么多時間去研究,這對于我和別人都一樣,追求時效性才是準則。之前剛剛用Ubuntu好像是被鐵鏈困住了雙腳,沒有用Gentoo那么自由,而且出了問題也不知道怎么解決,不向Gentoo用個LiveCD啟動機器就什么都解決了。后來用了Ubuntu的rescue盤之后,其實也就大同小異。啟動機器,掛載,chroot到根分區就可以了。ubuntu有現成可用的debian的文檔資源,這些都是一些增強系統管理自信心的東西。現在是沒有太多時間花在操作系統本身的配置上,如果真的有必要了,再換也不遲嗎,所以就也先ubuntu吧。
    ------13日更新----
    跑到機房去開始裝機器,還是忍不住想裝Gentoo,這畢竟是個用于防火墻和VPN服務器的機器,我想用我熟悉的發行版本。從網上找到的mirror.pacific.net.au鏡像網站速度還可以,下載平均速度有500k/s,如果再開上parallel-fetch,幾乎就沒有等待下載的情況了。而從stage3裝起,裝服務器,其實也沒有多少東西需要編譯,很快就完成了。用gentoo,久違的感受,colorful的字符界面,配置文件的vim加亮顯示,很是舒服。不過我仍然傾向于用gentoo的命令行界面,或者像fvwm,flubox等輕型圖形界面環境,如果要編譯其他的大型軟件,我倒是真的不太愿意。盡管發現了一個比較快的鏡像,但是在辦公室還是愿意使用Ubuntu,它讓我可以花更多的時間專注在軟件開發本身而不是開發環境上,并且發行版本之間的差別對于我的影響,現在很小了。不過在筆記本上,還是想裝個gentoo,因為不想讓ubuntu破壞我的MBR,上面有個正版XP的自動恢復呢,據說破壞了MBR就無法用F11鍵激活了,我裝gentoo可以改用個grubfordos啟動起來,這是我要的效果。雖然cygwin基本上可以替代Linux的開發環境,不過它始終是一個port過來的運行在windows內核之上unix環境,涉及到linux內核,防火墻等等東西就沒有辦法用了,還有就是really miss gentoo了。gentoo這兩年的變化真是太大了,今天看到的分布式編譯,cccache,并行下載等等特性著實讓我感到落伍了。

    posted @ 2007-12-11 15:28 vulcan 閱讀(348) | 評論 (0)編輯 收藏

    這兩天參加了Amadeus在我們總部的一個關于新一代旅客服務系統的Presentation,感覺還不錯,不過我想國內航空公司要脫離TravelSky而轉而用一個國外公司的產品,并且從座控,訂座,離港全部切換終究有點冒險。這個系統相對于現在TravelSky的Unisys系統,主要的改進是利用現在的新技術和能力,把系統遷移到了開放系統(Linux, Unix),并且用戶界面從老的TPF(命令行)方式編成了圖形化的界面。這個系統據說投資了3億美元進行研發,并且現在有兩個大型航空公司已經使用了這個系統,與幾大航空聯盟的談判也在進行中。其實我倒是希望航信能做得更好吧,我支持民族企業。不過Amadeus的Altea系統的架構比較有意思:現在仍然是關系數據庫和Unisys數據庫兼容的模式,但是未來的架構是這樣的:底層數據庫是用的Unix(Solaris和Hp unix)系統運行著Oracle(那邊的專家解釋說現在Linux對Oracle的支持還不及Unix),應用層面全部都是Linux,而在用戶界面的程序全部基于Windows開發,把現在三大系統全部用上了。所以他們形容自己的系統為Open System,看來,應用Unix和Linux是一個賣點,不過用Linux也是必須的,主機是IBM設計的,有1000個cpu core,2TB 內存。其他的一些系統參數都是驚人。這種機器看來還只有Linux能在上面運行吧。我還具體問了一下接口的問題,說是提供了WebService方式公布API,這一點對于我們開發人員就比較好了,現在航信的數據提供給我們,我們要采取PNR文本分析的形式轉存到數據庫中,我是做過這個工作,我開發了分析程序,為了盡可能智能化,采用了基于正則表達式的方法,不過有些
    PNR的格式還不是特別規整,有點時候就會出錯,雖然情況比較少,不過還是一件比較郁悶的事情。
    posted @ 2007-11-27 19:13 vulcan 閱讀(233) | 評論 (0)編輯 收藏

    僅列出標題
    共5頁: 上一頁 1 2 3 4 5 下一頁 
    主站蜘蛛池模板: 国产精品亚洲片在线花蝴蝶| 激情内射亚洲一区二区三区爱妻| 亚洲av无码专区在线电影 | 亚洲真人无码永久在线| 精品国产亚洲一区二区三区在线观看| 欧美大尺寸SUV免费| 亚洲一卡2卡3卡4卡国产网站| 色猫咪免费人成网站在线观看| 亚洲狠狠综合久久| xxxx日本免费| 亚洲国产系列一区二区三区| 免费可以在线看A∨网站| 亚洲一卡2卡3卡4卡5卡6卡| 成人免费a级毛片无码网站入口 | 夜夜亚洲天天久久| 免费观看大片毛片| 国产91免费视频| 免费视频成人手机在线观看网址| 一级中文字幕免费乱码专区| 国产成人va亚洲电影| 亚洲欧美国产国产综合一区| 亚洲第一男人天堂| 亚洲AV无码乱码在线观看代蜜桃 | a在线视频免费观看在线视频三区| 亚洲色偷偷色噜噜狠狠99网| 亚洲H在线播放在线观看H| 亚洲国产精品综合福利专区| 亚洲精品美女视频| 亚洲综合色丁香麻豆| 亚洲第一福利网站| 亚洲男人天堂2017| 亚洲视频在线视频| 亚洲视频在线观看免费| 亚洲人成在线电影| 久久久久亚洲精品日久生情| 亚洲美女在线观看播放| 亚洲国产精品综合久久2007| 亚洲码在线中文在线观看| 精品亚洲AV无码一区二区| 亚洲中文字幕无码爆乳app| 亚洲高清乱码午夜电影网|