金蝶奉繼承:云計(jì)算概念不新穎 本質(zhì)是融合
金蝶中間件有限公司總經(jīng)理奉繼承(騰訊科技攝)
(婁池)2010年12月10日消息,中國(guó)軟件技術(shù)大會(huì)第八屆今日在北京國(guó)家會(huì)議中心隆重召開,金蝶中間件有限公司總經(jīng)理奉繼承現(xiàn)場(chǎng)表示,云計(jì)算沒有什么新的東西,從技術(shù)來講它就是一種分布式技術(shù)計(jì)算,是多種應(yīng)用的融合。
奉繼承表示,云計(jì)算沒有什么新的東西,它的本質(zhì)來自于融合,包括使用方式就是SaaS的方式。從技術(shù)來講它就是一種分布式技術(shù)計(jì)算。
他認(rèn)為,云計(jì)算本身是利用互聯(lián)網(wǎng)遠(yuǎn)程管理數(shù)據(jù)應(yīng)用和IT資源的技術(shù),是多種應(yīng)用的整合或者融合。在軟件技術(shù)和軟件工程方面云計(jì)算最大的影響還是體現(xiàn)在融合上。
以下為奉繼承現(xiàn)場(chǎng)發(fā)言實(shí)錄:
我的報(bào)告內(nèi)容主要分三個(gè)部分。第一個(gè)部分從我的角度看云計(jì)算怎么理解?特別是從一個(gè)從業(yè)人員或者軟件企業(yè)怎么理解?第二,所有的軟件技術(shù)都是兩方面,一個(gè)是它一定是要需求于大眾,沒有需求大眾科學(xué)家想出來的東西都是沒有太多的用。第二個(gè)它一定是發(fā)展到一定產(chǎn)業(yè)階段了,一方面我們軟件的使用、我們的成本、應(yīng)用都碰到了很多問題。這幾年軟件技術(shù)在互聯(lián)網(wǎng)的推動(dòng)下,中間件、虛擬化、網(wǎng)各、云計(jì)算等等都是云計(jì)算的出成誕生到現(xiàn)在,現(xiàn)在每一家軟件公司沒有不談云計(jì)算的,但是我每一家說法都不一樣。
我們?cè)趺纯丛朴?jì)算呢?第一從應(yīng)用角度來看。第一個(gè)是用戶的公眾性,以前網(wǎng)格計(jì)算是科學(xué)家在做的,現(xiàn)在云計(jì)算即不是科學(xué)家談的,也不是每個(gè)人玩兒的游戲,它是非常公眾的。第二個(gè)就是多樣性。云計(jì)算某種程度上跟互聯(lián)網(wǎng)時(shí)聯(lián)系在一起的。第三個(gè)就是服務(wù)模式,有的專家說以后的計(jì)算機(jī)像用電用水一樣,當(dāng)然這是一個(gè)理想的狀態(tài),但是現(xiàn)在還沒有到這個(gè)程度。
我們?cè)诓渴鹕嫌泄性坪退接性疲覀兗纯梢韵騁oogle、中國(guó)移動(dòng)一樣提供公共的服務(wù),從產(chǎn)業(yè)角度來說在這里做這個(gè)行業(yè)無非就是三類,一類是做應(yīng)用軟件的,通過SaaS的方式提供。我們金蝶的友商網(wǎng)做的也是這個(gè)事。還有一種是把技術(shù)當(dāng)作云的平臺(tái)或者云的產(chǎn)品。云,無論是公有云還是私有云就像電信運(yùn)營(yíng)商一樣,有中國(guó)移動(dòng),有中國(guó)聯(lián)通,但是手機(jī)、交換機(jī)、光纖通信設(shè)備這是華為做的。中國(guó)電信并不生產(chǎn)任何一塊交換機(jī),云計(jì)算也是一樣,有云計(jì)算運(yùn)營(yíng)企業(yè)就一定有生產(chǎn)云計(jì)算產(chǎn)品的企業(yè)?,F(xiàn)在我們看傳統(tǒng)的軟件公司包括金蝶中間件、IBM、微軟干的就是這個(gè)事。當(dāng)然還有把云計(jì)算當(dāng)做商業(yè)模式運(yùn)營(yíng)服務(wù)的這些基礎(chǔ)設(shè)施廠商。包括以前的IDC發(fā)展的互聯(lián)網(wǎng)計(jì)算中心。
但是從技術(shù)角度看云計(jì)算,我個(gè)人理解云計(jì)算沒有什么新的東西,它的本質(zhì)來自于融合,包括使用方式就是SaaS的方式,這都不是什么新的概念。從技術(shù)來講它就是一種分布式技術(shù)計(jì)算,我們的網(wǎng)格計(jì)算和SV發(fā)展底層就是SV加網(wǎng)格計(jì)算,實(shí)現(xiàn)分布應(yīng)用。它的基礎(chǔ)設(shè)施現(xiàn)在很人多把云計(jì)算當(dāng)成虛擬化,虛擬化只是基礎(chǔ)設(shè)施部署方式,虛擬化也不是什么新的東西。虛擬化就是把多臺(tái)計(jì)算機(jī)虛擬成一態(tài)目的是提高計(jì)算能力。這種情況就是以前我們的集成計(jì)算,這也是很成熟的。
還有一種是把一臺(tái)機(jī)器虛擬成多臺(tái),這在十幾年前、二十年前就有了就是分區(qū)計(jì)算。虛擬化無非就是就把這兩個(gè)合在一起。計(jì)算機(jī)可以變成小數(shù)位,虛擬化就是把原來整數(shù)位的計(jì)算機(jī)變成小數(shù)位了。
所以我認(rèn)為云計(jì)算本身是利用互聯(lián)網(wǎng)遠(yuǎn)程管理數(shù)據(jù)應(yīng)用和IT資源的技術(shù)。它是多種應(yīng)用的整合或者融合。它在軟件技術(shù)和軟件工程方面我認(rèn)為它的影響還是體現(xiàn)在融合上。
我們講軟件工程,我一直講任何一種軟件技術(shù)從軟件發(fā)展到今天,軟件技術(shù)很多,涌現(xiàn)了很多新的技術(shù),有些技術(shù)很快曇花一現(xiàn),有些技術(shù)影響非常深遠(yuǎn)。什么技術(shù)會(huì)影響深遠(yuǎn)呢?我想一種軟件技術(shù)有兩點(diǎn)是非常重要的,第一它是否促進(jìn)了軟件工程的發(fā)展,它是否影響了商業(yè)模式?比如說網(wǎng)格計(jì)算是一個(gè)很好的技術(shù),科學(xué)家們搞出來的,但是它對(duì)軟件工程和商業(yè)模式帶來的影響并不大,所以它并沒有產(chǎn)生很大的社會(huì)影響。從最早搞燃燒高級(jí)語(yǔ)言,它的軟件工程上有很大的意義,使得軟件脫離了硬件,同時(shí)使得軟件工程成為可能,它在商業(yè)模式上形成了獨(dú)立軟件開發(fā)商的存在。在這之前沒有軟件公司,只有硬件公司生產(chǎn)硬件的同時(shí)附帶上面有一些軟件。因?yàn)楦呒?jí)語(yǔ)言的發(fā)明使得軟件脫離了硬件。
我認(rèn)為在軟件技術(shù)發(fā)展里面影響第二個(gè)深遠(yuǎn)的就是面向?qū)ο蟮募夹g(shù)。這個(gè)技術(shù)產(chǎn)生了面向?qū)ο蟮墓こ?,包括面向?qū)ο蟮脑O(shè)計(jì)和開發(fā),形成了到現(xiàn)在為止的軟件工程主體。它在商業(yè)模式上使得軟件和信息服務(wù)相互結(jié)合,成為我們現(xiàn)在的軟件。
云計(jì)算軟件基礎(chǔ)就是面向服務(wù)的架構(gòu),是面向工程的軟件體系。在商業(yè)模式上云計(jì)算使得軟件的軟服務(wù)和軟件脫離了出來,云計(jì)算是一種架構(gòu)。
技術(shù)工程的影響:軟件是一種技術(shù),軟件是一種藝術(shù),我們編程的對(duì)象是代碼,軟件工程把個(gè)體活動(dòng)變成一個(gè)產(chǎn)業(yè),我們編程對(duì)象主要是對(duì)象,對(duì)象是組件。我們的開發(fā)過程是分析、設(shè)計(jì)和開發(fā)。在云計(jì)算時(shí)代有幾個(gè)特點(diǎn)會(huì)發(fā)生變化:
第一從團(tuán)隊(duì)化變成社會(huì)化。編程不再是一個(gè)開發(fā)團(tuán)隊(duì)可能很多組件很多服務(wù)來自互聯(lián)網(wǎng),來自你不認(rèn)識(shí)的人,來自于你看不見的地方。
我們的工程化是服務(wù)化,所有的系統(tǒng)都是服務(wù)的,編程的對(duì)象、系統(tǒng)的對(duì)象不僅僅是一個(gè)對(duì)象而是一個(gè)服務(wù)。我們的編程方法也改變了,編程方法通過建模封長(zhǎng)編排而成,更多的是所有業(yè)務(wù)流程業(yè)務(wù)對(duì)象都是裝配而成的,不是開發(fā)而成。
以我對(duì)軟件的理解,軟件工程發(fā)展跟硬件是走相反的路,原來所有軟件都是在一個(gè)芯片上,不斷的把它分拆出來。比如說70年代、80年代的程序就是把業(yè)務(wù)邏輯分離出來,遠(yuǎn)程過程調(diào)用把交換截出來。消失對(duì)象就是把同步的變成異步的。云計(jì)算是在SOA基礎(chǔ)上進(jìn)一把軟件的環(huán)境進(jìn)一步耦合。軟件架構(gòu)一直在不斷的結(jié)耦,為什么這么做呢?本身是要解決一個(gè)更大的靈活性、更快速的變化來滿足IT業(yè)務(wù)的創(chuàng)新。如果軟件不變化的話,實(shí)際上長(zhǎng)在一個(gè)黑箱子里面是最好的,但是軟件最大的特點(diǎn),包括軟件工程、軟件技術(shù)發(fā)展幾十年來結(jié)果一個(gè)核心問題就是變化的問題,需求的變化、架構(gòu)的變化、部署的變化、用戶數(shù)的變化,從設(shè)計(jì)到最終使用到產(chǎn)品周期它一直在變化。軟件所有的技術(shù)架構(gòu)都是解決一個(gè)變化的問題。為了不讓它千一發(fā)而動(dòng)全身所以我們要結(jié)耦。在這個(gè)過程中我們逐漸分化軟件體系架構(gòu)。[!--empirenews.page--]
軟件工程過程里面我們感覺到最大的問題就是沒有統(tǒng)一的語(yǔ)言,業(yè)務(wù)人員和編程人員使用的不是同一個(gè)語(yǔ)言。我認(rèn)為云計(jì)算特別是SOA方式把所有的業(yè)務(wù)進(jìn)行建模,然后模型的開發(fā),系統(tǒng)的開發(fā)是由模型組裝而成。這就解決了統(tǒng)一語(yǔ)言的問題,這也是我們軟件工程面臨的一個(gè)非常重要的新的課題。那么云計(jì)算所解決的問題,我們金蝶也做了一些工作,我現(xiàn)在給各位匯報(bào)一下。
我們現(xiàn)在對(duì)云計(jì)算基本的策略是,我們希望自主創(chuàng)新,打造一個(gè)自主知識(shí)產(chǎn)權(quán)云計(jì)算的平臺(tái)和產(chǎn)品。因?yàn)槲矣X得云計(jì)算發(fā)展在中國(guó)必須要解決兩個(gè)問題。第一個(gè)應(yīng)用問題的,第二個(gè)基本技術(shù)問題。我們目前主要是聚焦于為大型企業(yè)提供私有云的解決方案。我個(gè)人認(rèn)為公有云在國(guó)內(nèi)大規(guī)模應(yīng)用還為時(shí)尚早。我們采取的策略是跟國(guó)內(nèi)主要的高校和國(guó)際廠商合作,采取開放的標(biāo)準(zhǔn)。包括跟北京大學(xué)的合作,我們?cè)谟⑻貭栃酒椭袊?guó)龍芯的芯片上希望把我們的云計(jì)算平臺(tái)直接做到與芯片結(jié)合,這樣可以擺脫操作系統(tǒng)對(duì)我們的影響。針對(duì)行業(yè)我們重點(diǎn)解決電子商務(wù)行業(yè)應(yīng)用云計(jì)算的應(yīng)用問題,主要解決三個(gè)方面云計(jì)算的問題。
第一個(gè)解決運(yùn)行期的問題,第二解決開發(fā)期的問題,第三解決系統(tǒng)管理問題。在運(yùn)行平臺(tái)上核心解決資源虛擬化平臺(tái)和計(jì)算服務(wù)化的問題,開發(fā)的部件化、管理的智能化。我們構(gòu)建一個(gè)完整的云計(jì)算開發(fā)方案,是基于金蝶虛擬化中間件平臺(tái)和在上面構(gòu)建化的界面交流。驅(qū)動(dòng)業(yè)務(wù)流程管理,使得我們的云計(jì)算它是可以很快速的開發(fā)和構(gòu)建出來的。我們是基于SOA是虛擬化的軟件工程,這個(gè)工程從建模開始,到軟件開發(fā)和封裝,到服務(wù)的開發(fā)和封裝以及到虛擬化部署和管理,這和傳統(tǒng)的軟件編程、設(shè)計(jì)、開發(fā)、調(diào)試是有一些區(qū)別的。包括服務(wù)件我們通過企業(yè)的業(yè)務(wù)標(biāo)準(zhǔn)把數(shù)據(jù)、業(yè)務(wù)走向、業(yè)務(wù)對(duì)象、服務(wù)的組件傳統(tǒng)的應(yīng)用怎么通過封裝來加入到這樣的一個(gè)標(biāo)準(zhǔn)體系里面。我們也建立了一個(gè)服務(wù)和封裝方案的設(shè)計(jì),在具體過程里面怎么解決一個(gè)服務(wù)封裝的問題,這也是SOA在實(shí)際應(yīng)用中需要解決的問題。
我們有很好的服務(wù),基于SOA的軟件在建模流程和業(yè)務(wù)流程進(jìn)行結(jié)耦,包括流程的規(guī)則都是通過運(yùn)行組裝,解決個(gè)性化和靈活布局的問題。也就是說,我們軟件開發(fā)不再是開發(fā)一個(gè)整體的軟件,而是開發(fā)一個(gè)通過服務(wù)結(jié)耦的部件。這些部件是服務(wù)化進(jìn)行封裝。比如說所有的服務(wù)最后都通過SOA這個(gè)技術(shù)注冊(cè)在服務(wù)總線上。
界面也是通過組裝而成。我可以說我們的軟件開發(fā)和軟件的使用進(jìn)行了結(jié)耦,開發(fā)的時(shí)候有很多不同的服務(wù)和界面和不同的分工。但是使用的時(shí)候我們的布局、我們的風(fēng)格以及界面之間的相互關(guān)系,它們之間的連接都是通過運(yùn)行、通過最終用戶組裝編排而成,不是開發(fā)人員去定的。這也是無論是云計(jì)算還是SOA,它都是一個(gè)核心的理念,就是這個(gè),包括我們的服務(wù)組裝、流程也是組裝而成。這樣的話有一個(gè)好處,通過流程和組件服務(wù)的封裝可以現(xiàn)有的不管是什么平臺(tái),不管是哪個(gè)開發(fā)商開發(fā)的,不管部署在哪個(gè)服務(wù)器都可以組合成我們新的業(yè)務(wù)體系。我們不用管服務(wù)提供者后臺(tái)的架構(gòu)和技術(shù)實(shí)現(xiàn)的方式,企業(yè)的業(yè)務(wù)流程也是這樣。甚至包括數(shù)據(jù)也是這樣。數(shù)據(jù)的交換、數(shù)據(jù)的管理、都是可以通過規(guī)則通過定義,通過自動(dòng)化的過程可以解決異構(gòu),不同平臺(tái)上不同企業(yè)之間數(shù)據(jù)之間的交換問題。
金蝶云計(jì)算分了四個(gè)層次:
第一個(gè)是硬件層面,第二個(gè)是虛擬化的平臺(tái),這個(gè)平臺(tái)包括虛擬化、操作系統(tǒng),虛擬化應(yīng)用服務(wù)的計(jì)算平臺(tái)和虛擬化應(yīng)用。我們部署所有的應(yīng)用和系統(tǒng)都可以通過虛擬化的平臺(tái)進(jìn)行部署。我們通過一個(gè)一個(gè)的虛擬結(jié)點(diǎn),通過平臺(tái)的虛擬可以組成一個(gè)一個(gè)的計(jì)算單元,這就是我們最終用戶的計(jì)算環(huán)境,每一個(gè)計(jì)算環(huán)境上可以部署一個(gè)應(yīng)用,變成一個(gè)應(yīng)用的虛擬環(huán)境。我們從硬件開始到最終的SaaS應(yīng)用完全虛擬化。我們的計(jì)算結(jié)點(diǎn)可以實(shí)現(xiàn)動(dòng)態(tài)分配,實(shí)現(xiàn)彈性的技術(shù)。這樣的話可以根據(jù)應(yīng)用來管理虛擬化資源,而且這個(gè)管理的過程是根據(jù)我們的用戶數(shù),我們的CPU和數(shù)量量進(jìn)行動(dòng)態(tài)分配。云計(jì)算平臺(tái)運(yùn)行的話必須要有一個(gè)非常智能化的管理工具,包括我們虛擬化的資源配置、安全的隔離、負(fù)載的均衡以及自我恢復(fù)的功能。這也是我們跟傳統(tǒng)應(yīng)用軟件IT系統(tǒng)管理有很大的不同。
因?yàn)槲覀冊(cè)谠朴?jì)算中心里,同一個(gè)應(yīng)用可能有多個(gè)實(shí)例,可能不同的應(yīng)用提供不同的服務(wù)。虛擬化做好以后如果不能實(shí)現(xiàn)動(dòng)態(tài)和系統(tǒng)的管理的話,那么這個(gè)動(dòng)態(tài)和原有的動(dòng)態(tài)是沒有區(qū)別的。所以我們實(shí)現(xiàn)統(tǒng)一管理和IT間狀況的實(shí)時(shí)監(jiān)控。根據(jù)應(yīng)用的特點(diǎn),經(jīng)過服務(wù)組件的情況自動(dòng)進(jìn)行調(diào)整自我進(jìn)行優(yōu)化。對(duì)發(fā)現(xiàn)問題的這些系統(tǒng)進(jìn)行自動(dòng)的恢復(fù)。包括應(yīng)用的崩潰、中間件的崩潰的問題、操作系統(tǒng)崩潰自我恢復(fù)等等。這樣一個(gè)大型的云計(jì)算無論是私有云還是公有云都可以進(jìn)行自我的管理和自我的恢復(fù)。
總結(jié)一下:云計(jì)算概念眾所紛紜,云計(jì)算是一個(gè)新的模式,我認(rèn)為在中國(guó)大規(guī)模應(yīng)用主要是要解決SaaS應(yīng)用的問題。目前企業(yè)計(jì)算還很不成熟,目前中小企業(yè)云計(jì)算服務(wù)取得一點(diǎn)成績(jī),但是解決SaaS應(yīng)用問題必須解決運(yùn)行環(huán)境和開發(fā)工具的問題,也就是軟件工程的問題這是我們基礎(chǔ)的工作。現(xiàn)在和未來企業(yè)計(jì)算都是基于中間件平臺(tái),它將有效評(píng)比操作系統(tǒng)和軟件的差異性。中國(guó)用戶有自己的特點(diǎn)和需求,目前全球都是趨于同一個(gè)起跑線上,我們通過技術(shù)創(chuàng)新可以尋求一個(gè)中國(guó)特色云計(jì)算的商業(yè)模式,我們不一定要學(xué)國(guó)外。我們金蝶的目標(biāo)是希望能夠通過這幾年的積累打造一個(gè)自主知識(shí)產(chǎn)權(quán)云計(jì)算平臺(tái)的技術(shù)解決方案。包為中國(guó)的云計(jì)算和軟件技術(shù)發(fā)展做一份我們的力量。我的報(bào)告到這里,謝謝大家!
(function(){document.domain=qq.com;var c=function(d){var e=this;e.body=document.body;e.title=d.title;e.width=d.width;e.height=d.height;e.src=d.src;e.layerbg;e.main;e.layerTitle;e.con;e.close;e.iframe;e.isDrag=false;e.isIE=document.all?true:false;e.getMX=function(a){return e.isIE?a.clientXMath.max(document.body.scrollLeft,document.documentElement.scrollLeft):a.pageX};e.getMY=function(a){return e.isIE?a.clientYMath.max(document.body.scrollTop,document.documentElement.scrollTop):a.pageY};e.setEvent=function(f){if(f.setCapture){f.setCapture()}if(window.captureEvents){window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP)}};e.releaseEvent=function(f){if(f.releaseCapture){f.releaseCapture()}if(window.releaseEvents){window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP)}};e.creatDom=function(j,f){function i(m,n){function p(q,s,r){if(!q||typeof r!=string){return}s=s?s:;r=r?r:;q.style『s』=r;return q}if(!n){return}if(typeof n==string){var l=/\s?(『a-z\-』*)\:\s?(『^;』*);?/gi,o;while((o=l.exec(n))!=null){p(m,o『1』,o『2』)}}else{if(typeof n==object){for(var k in n){p(m,k,n『k』)}}}}var h=document.createElement(j.tag||div),g=h.setAttribute?true:false;for(var a in j){if(a==tag||a==children||a==cn||a==html||a==style||typeof j『a』==function){continue}if(a==cls){h.className=j.cls}else{if(g){h.setAttribute(a,j『a』)}else{h『a』=j『a』}}}if(j.html){h.innerHTML=j.html}i(h,j.style);if(f){f.appendChild(h)}return h};e.getObjPosition=function(g){var f={};f.x=g.offsetLeft,f.y=g.offsetTop;while(g=g.offsetParent){f.x=g.offsetLeft;f.y=g.offsetTop}return f};e.getWindowSize=function(){var f={};if(window.self&&self.innerWidth){f.width=self.innerWidth;f.height=self.innerHeight;return f}if(document.documentElement&&document.documentElement.clientHeight){f.width=document.documentElement.clientWidth;f.height=document.documentElement.clientHeight;return f}f.width=document.body.clientWidth;f.height=document.body.clientHeight;return f};e.keyDownListener=function(a){a=a?a:window.event;if(a.keyCode==27){e.closePopup()}};e.keyDownAddListener=function(f){if(e.isIE){document.attachEvent(onkeydown,e.keyDownListener)}else{document.addEventListener(keydown,e.keyDownListener,false)}};e.keyDownRemoveListener=function(){if(e.isIE){document.detachEvent(onkeydown,e.keyDownListener)}else{document.removeEventListener(keydown,e.keyDownListener,false)}};e.createInfoWindow=function(f){e.layerbg=e.creatDom({cls:share_layer});e.main=e.creatDom({cls:share_layer_main});e.layerTitle=e.creatDom({cls:share_layer_title});var h=e.creatDom({tag:h3,html:e.title});e.close=e.creatDom({tag:a,title:\u5173\u95ed,cls:del_fri,href:javascript:void(0),html:X});e.close.onmousedown=function(a){e.releaseEvent(e.layerTitle);e.closePopup()};e.layerTitle.appendChild(h);e.layerTitle.appendChild(e.close);e.main.appendChild(e.layerTitle);e.con=e.creatDom({cls:share_layer_cont});e.iframe=e.creatDom({tag:iframe});e.iframe.setAttribute(frameBorder,0,0);e.iframe.setAttribute(marginheight,0);e.iframe.setAttribute(marginwidth,0);e.iframe.setAttribute(scrolling,no);e.iframe.style.width=e.widthpx;e.iframe.style.height=e.heightpx;e.iframe.style.display=block;e.con.appendChild(e.iframe);window.setTimeout(function(){e.iframe.setAttribute(src,e.src,0)},5);e.main.appendChild(e.con);var g=e.creatDom({cls:bg});e.layerbg.appendChild(e.main);e.layerbg.appendChild(g);e.body.appendChild(e.layerbg);e.floatPopup(f);e.dragPopup(e.layerTitle,e.layerbg)};e.floatPopup=function(g){var h=document.body.scrollLeft||document.documentElement.scrollLeft;var f=document.body.scrollTop||document.documentElement.scrollTop;var i={width:he.getWindowSize().width,height:fe.getWindowSize().height};var j=e.getObjPosition(g);if((j.ye.height)>i.height){j.y=j.y-g.offsetHeight-e.height-e.layerTitle.offsetHeight-30}else{j.y=j.yg.offsetHeight5}j.x=j.x-g.offsetWidth/2;e.layerbg.style.width=e.width2px;e.layerbg.style.left=j.xpx;e.layerbg.style.top=j.ypx};e.dragPopup=function(f,a){f.onmousedown=function(g){a.style.position=absolute;e.isDrag=true;var i=document;if(!g){g=window.event}x=g.layerX?g.layerX:g.offsetX;y=g.layerY?g.layerY:g.offsetY;e.setEvent(f);var h;i.onmousemove=function(l){if(!e.isDrag){return}if(!l){l=window.event}var n=e.getMX(l);var m=e.getMY(l);if(!l.pageX){l.pageX=n}if(!l.pageY){l.pageY=m}var k=l.pageX-x;var j=l.pageY-y;a.style.left=k-(e.isIE?10:7)px;a.style.top=j-(e.isIE?10:7)px};i.onmouseup=function(j){e.isDrag=false;e.releaseEvent(f);i.onmousemove=null;i.onmouseup=null;i.onselectstart=null};i.onselectstart=function(){return false}}};e.resizePopup=function(f){if(f.width){e.iframe.style.width=f.widthpx}if(f.height){e.iframe.style.height=f.heightpx}};e.showPopup=function(f){if(e.layerbg){e.closePopup()}e.createInfoWindow(f);e.keyDownAddListener()};e.closePopup=function(){e.layerbg.style.display=none;e.layerbg.parentNode.removeChild(e.layerbg);e.iframe.src=;e.iframe.parentNode.removeChild(e.iframe);e.layerbg=null;e.keyDownRemoveListener()};e.dataCenter={}};var b={title:\u5206\u4eab\u5230QQ\u7a7a\u95f4,width:396,height:185,src:http://imgcache.qq.com/qzone/app/qzshare/news_share.html#url=window.location.href};window.share2qzone=new c(b);window.share2qzone_ptlogin2resize=function(d,a){share2qzone.resizePopup({height:a})};window._addPtlogin2_onResizeFunc=function(d){var a=window.ptlogin2_onResize;if(typeof a!=function){window.ptlogin2_onResize=d}else{window.ptlogin2_onResize=function(g,f){try{a(g,f)}catch(h){}try{d(g,f)}catch(h){}}}}})();|xGv00|33c1a6c0a7c7ca10c3fa105c89296b4a [!--empirenews.page--]