国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

無狀態(tài)Enterprise JavaBeans的觀點(diǎn)

2019-11-18 15:42:58
字體:
供稿:網(wǎng)友

  在Component-Base和N-Tier潮流下,無狀態(tài)(stateless)物件扮演著重要的角色。stateless物件是 OO 和Transaction Service兩項(xiàng)技術(shù)結(jié)合的產(chǎn)物。
OO 技術(shù)強(qiáng)調(diào)的是彈性(felxibility)、重用性(reusability)和分散性(distribution),Transaction Service技術(shù)強(qiáng)調(diào)的是效率(performance)和延展性(scalability)。 Stateless物件是這兩項(xiàng)技術(shù)結(jié)合的重要支柱。

  傳統(tǒng)的OO技術(shù)大多著重于 Stateful 物件,然而在今天的MiddleWare(如EJB和 COM+/MTS)里面,Stateless物件的地位卻遠(yuǎn)遠(yuǎn)高于Stateful物件。尤其是在EJB的架構(gòu)里,Stateless有著非常重要的用途。例如Stateless的session物件不需要長(zhǎng)期保存自身的狀態(tài)值,也不專屬于特定的用戶(client),所以占用的服務(wù)器資源非常之少,也由于不隸屬于特定的用戶,所以許多EJB物件可以共用少數(shù)的Stateless物件。

  Stateless物件的特性

  就Client而言,在意的是server物件的外在行為,而行為又和物件的狀態(tài)無關(guān)。所以client物件不必在意物件狀態(tài)的變化,而不是此 種物件真的沒有狀態(tài)。比如說stateless的限制并不意味著stateless的session beans不能擁有屬性變量,所以,這些session beans一樣會(huì)擁有自己的內(nèi)部狀態(tài),然而重要的是,client不會(huì)看到這些內(nèi)部狀態(tài)。

  在Internet時(shí)代里,資訊系統(tǒng)的擴(kuò)展性(scalability)顯得無比重要,而高度擴(kuò)展性的前提是必須有效運(yùn)用Server的資源,而無狀態(tài)的物件的資源共用性極大地減少了服務(wù)器的負(fù)載,因此,在開發(fā)N-Tier系統(tǒng)的時(shí)候,活用Stateless物件是系統(tǒng)開發(fā)人員必須具有的技能之一。

  使用Stateless支持交易

  當(dāng)企業(yè)資訊系統(tǒng)的Client數(shù)目大幅度增加的時(shí)候,每個(gè)Client能夠享有的共用資源(shared resources)自然會(huì)更加稀少。面對(duì)這個(gè)問題,除了投入更多的資源之外,好好協(xié)調(diào)以避免資源的浪費(fèi),達(dá)到充分共享,也是重要的解決之道。

  其中,數(shù)據(jù)庫是最典型的稀有共享資源,交易是協(xié)調(diào)這項(xiàng)共享資源的可靠技術(shù),假如加上Stateless物件,交易就會(huì)更加具有威力--更有效運(yùn)用數(shù)據(jù)庫的connection,并能跨越不同的數(shù)據(jù)庫(即分布式交易)。

  交易是商業(yè)往來或異動(dòng)的事件(event) 。事件一旦發(fā)生,企業(yè)資訊系統(tǒng)就會(huì)參與進(jìn)行一連串的作業(yè)過程(PRocess),在這個(gè)過程中,會(huì)導(dǎo)致共享資源(比如數(shù)據(jù)庫的資料)的一連串異動(dòng)。為了確保在異動(dòng)過程中,不受到別的交易的干擾,也為了確保異動(dòng)過程中的例外處理(比如roll back),“交易”就成為用來治理和協(xié)調(diào)共用資源的工具。

  在交易過程中,需要數(shù)據(jù)庫提供服務(wù)(即資源),以便能夠異動(dòng)數(shù)據(jù)庫里面的資料,完畢后就把資源釋放,供彼得交易使用。在像EJB等系統(tǒng)的交易服務(wù)(transaction service)里 ,都必須具備有ACID(atomic,consistency,isolation,duration)四個(gè)特性,來做到上述的資源治理功能。

  一般來說,必須先取得和數(shù)據(jù)庫的溝通管道(connection) ,才能獲得數(shù)據(jù)庫的服務(wù),而數(shù)據(jù)庫的connection又很有限,所以協(xié)調(diào)connection成為治理數(shù)據(jù)庫資源的重心。讓每個(gè)client能盡快釋放connection成為重要的治理工作。

  在交易的進(jìn)行過程中,會(huì)取得所需的數(shù)據(jù)庫連接,一直到交易結(jié)束才會(huì)釋放掉,所以充分運(yùn)用連接一定要注重兩點(diǎn),一是交易的時(shí)間越短越好,交易越短就能越快速地釋放被占用的connection。二是交易所需要的connection越少越好,這樣就有更多的共享機(jī)會(huì)了。

  在component-based環(huán)境中,一個(gè)交易通常由一群物件所共同合作,每個(gè)物件可能由不同人所設(shè)計(jì)開發(fā),每個(gè)物件也都可能向數(shù)據(jù)庫索取connection。假如一個(gè)交易的參與物件越多,而且每個(gè)物件占用的connection時(shí)間越長(zhǎng),則這個(gè)交易就需要足夠多的connection才能完成任務(wù)。

  因此,“讓物件迅速釋放connection” 是提升數(shù)據(jù)庫資源運(yùn)用效率的重要策略,stateless物件則是實(shí)現(xiàn)這個(gè)策略的重要技術(shù)。進(jìn)入討論組討論。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 元朗区| 苗栗市| 余庆县| 晋州市| 邻水| 武冈市| 漳平市| 苍山县| 巴东县| 新郑市| 邵阳市| 湖南省| 揭西县| 元谋县| 资源县| 福建省| 木里| 天门市| 睢宁县| 崇左市| 隆尧县| 石狮市| 正安县| 两当县| 亳州市| 获嘉县| 即墨市| 新丰县| 自贡市| 红原县| 旬邑县| 大方县| 洞口县| 福清市| 苗栗市| 景德镇市| 苏尼特左旗| 合川市| 什邡市| 若羌县| 南靖县|