MIS系統(tǒng)中細(xì)粒度實(shí)體bean問題解決方案的研究_第1頁
MIS系統(tǒng)中細(xì)粒度實(shí)體bean問題解決方案的研究_第2頁
MIS系統(tǒng)中細(xì)粒度實(shí)體bean問題解決方案的研究_第3頁
MIS系統(tǒng)中細(xì)粒度實(shí)體bean問題解決方案的研究_第4頁
MIS系統(tǒng)中細(xì)粒度實(shí)體bean問題解決方案的研究_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MIS系統(tǒng)中細(xì)粒度實(shí)體bean問題解決方案的研究 摘 要 設(shè)計(jì)企業(yè)bean應(yīng)用時(shí),實(shí)體bean的目的不是代表對(duì)象模型中的每個(gè)持久性對(duì)象。實(shí)體bean更適合于粗粒度的持久性業(yè)務(wù)對(duì)象,使用復(fù)合實(shí)體模式可以設(shè)計(jì)粗粒度的持久性業(yè)務(wù)對(duì)象。本文介紹了目前流行的MIS系統(tǒng)整體架構(gòu)設(shè)計(jì),分析了某學(xué)院MIS系統(tǒng)B端學(xué)生信息管理模塊中的數(shù)據(jù)庫模型,接著說明將復(fù)雜的對(duì)象模型直接映射到實(shí)體bean模型時(shí)產(chǎn)生的細(xì)粒度實(shí)體bean問題。給出了在MIS系統(tǒng)中細(xì)粒度實(shí)體bean問題的解決方案復(fù)合實(shí)體設(shè)計(jì)模式及相關(guān)的會(huì)話外觀和值對(duì)象設(shè)計(jì)模式。 關(guān)鍵詞 粗粒度實(shí)體bean;細(xì)粒度實(shí)體bean;設(shè)計(jì)模式;復(fù)合實(shí)體;會(huì)話外觀;值對(duì)象

2、1 引言 J2EE(Java 2 Platform,Enterprise Edition)是SUN公司定義的一個(gè)開發(fā)分布式企業(yè)級(jí)應(yīng)用的規(guī)范。它提供了一個(gè)多層次的分布式應(yīng)用模型和一系列開發(fā)技術(shù)規(guī)范。J2EE技術(shù)之所以贏得廣泛重視的原因之一就是EJB(Enterprise JavaBean)。它們提供了一個(gè)框架來開發(fā)和實(shí)施分布式商務(wù)邏輯,每個(gè)EJB是按功能邏輯劃分的,開發(fā)時(shí)不必關(guān)注系統(tǒng)底層細(xì)節(jié)問題,只關(guān)注具體的事務(wù)分析。EJB有三種類型:會(huì)話Bean(SessionBean)、實(shí)體Bean(Entity Bean)和消息驅(qū)動(dòng)Bean(MessageDriven Bean)。實(shí)體Bean代表數(shù)據(jù)庫或

3、另外一個(gè)企業(yè)應(yīng)用系統(tǒng)中的數(shù)據(jù)對(duì)象。如代表數(shù)據(jù)庫的一行記錄。實(shí)體Bean不包括商務(wù)邏輯,它們只是數(shù)據(jù)模型。因此,在EJB中設(shè)計(jì)一個(gè)實(shí)體bean時(shí),需要考慮的重要選擇之一就是:你是設(shè)計(jì)一個(gè)粗粒度(coarse-grained)的實(shí)體bean,還是一個(gè)細(xì)粒度(fine-grained)的實(shí)體bean。粗粒度一般表示類別級(jí)(the type of object),即僅考慮對(duì)象的類別,不考慮對(duì)象的某個(gè)特定實(shí)例。比如,用戶管理中,創(chuàng)建、刪除對(duì)所有的用戶都一視同仁,并不區(qū)分操作的具體對(duì)象實(shí)例。細(xì)粒度表示實(shí)例級(jí),即需要考慮具體對(duì)象的實(shí)例(the instance of object),當(dāng)然,細(xì)粒度是在考慮粗粒

4、度的對(duì)象類別之后才再考慮特定實(shí)例。通常,決定到底該采用粗粒度還是細(xì)粒度是很難的。這最好通過統(tǒng)一建模語言(Unified Modeling Language,UML)模型中的模型化關(guān)系來決定。方案范文無法思考和涵蓋全面,最好仔細(xì)瀏覽后下載使用。2 信息化管理系統(tǒng)(MIS)整體架構(gòu)設(shè)計(jì)圖1MIS系統(tǒng)整體架構(gòu)設(shè)計(jì)(BS和CS混合結(jié)構(gòu)) 目前,大多數(shù)院校開發(fā)的信息化管理系統(tǒng)在整體上采用B/S(Brower/Server)和C/S(Client/Server)混合結(jié)構(gòu)。其中B(Brower/Server)端,即Web應(yīng)用部分一般采用基于J2EE(Java 2 Platform Enterprise Ed

5、ition)的三層架構(gòu),即將表現(xiàn)層、中間層和數(shù)據(jù)層分開,將所有的商業(yè)邏輯和工作流放入服務(wù)器端。在中間應(yīng)用層中,采用以EJB(Enterprise JavaBeans)為中心、Servlets做控制、JSP(Java Server Pages)負(fù)責(zé)呈現(xiàn)邏輯的MVC(Model-View-Control)結(jié)構(gòu),即模型視圖控制器結(jié)構(gòu)(如圖1所示)。MVC結(jié)構(gòu)把功能模塊、顯示模塊和控制模塊分離,使各部分之間協(xié)調(diào)工作、耦合性較小。EJB負(fù)責(zé)業(yè)務(wù)邏輯部分。為了使系統(tǒng)開發(fā)與維護(hù)更具有可操作性,使系統(tǒng)的體系結(jié)構(gòu)更清晰,軟件開發(fā)中將業(yè)務(wù)邏輯劃分為應(yīng)用邏輯和商業(yè)邏輯兩個(gè)部分,其中應(yīng)用邏輯部分負(fù)責(zé)用戶的請(qǐng)求,商業(yè)邏

6、輯部分負(fù)責(zé)與數(shù)據(jù)庫服務(wù)器的操作。應(yīng)用邏輯以應(yīng)用的需求條件調(diào)用商業(yè)邏輯,商業(yè)邏輯將相應(yīng)結(jié)果再返回給應(yīng)用邏輯。業(yè)務(wù)邏輯功能的劃分使EJB的處理更加自如,縮短開發(fā)周期,提高開發(fā)質(zhì)量。同時(shí)也提高了系統(tǒng)的可復(fù)用性。方案范文無法思考和涵蓋全面,最好仔細(xì)瀏覽后下載使用。3MIS系統(tǒng)中數(shù)據(jù)模型的分析3.1模型分析 設(shè)計(jì)EJB層,首先必須了解它的數(shù)據(jù)模型。如某學(xué)院MIS系統(tǒng)B端共有用戶登錄、課程查詢、培養(yǎng)方案查詢、學(xué)生信息管理、教師信息管理、學(xué)生選課管理等6個(gè)功能模塊。其中學(xué)生信息模塊學(xué)生信息繁多,關(guān)系復(fù)雜。該學(xué)院學(xué)生有三類:本科自招生US(Undergraduate Student)、本科轉(zhuǎn)專業(yè)學(xué)生CSUS(

7、Change Specialty Undergraduate Student)、碩士研究生GS(Graduate Student),每類學(xué)生包含六大類信息:基本信息(Basic Information)、獎(jiǎng)罰信息(Rewards Punishment Record)、學(xué)籍變動(dòng)信息(Status Change Record)、課程成績(jī)信息(Course)、班級(jí)(Class)、研究方向和專業(yè)(Study Direction and Specialty )。每大類信息包括各種類型學(xué)生對(duì)應(yīng)的詳細(xì)分類信息。方案范文無法思考和涵蓋全面,最好仔細(xì)瀏覽后下載使用。 各實(shí)體、視圖之間的整體關(guān)系如圖2所示。圖2

8、某MIS系統(tǒng)學(xué)生信息管理模塊實(shí)體關(guān)系圖3.2細(xì)粒度實(shí)體bean問題 在EJB應(yīng)用時(shí)的一個(gè)常用經(jīng)驗(yàn)是把對(duì)象模型直接映射到實(shí)體bean,也就是說,對(duì)象模型中的每個(gè)類被直接轉(zhuǎn)換成一個(gè)實(shí)體bean。隨著企業(yè)bean數(shù)目的增加,容器和網(wǎng)絡(luò)負(fù)載也會(huì)同步增加。這類映射也把表間關(guān)系(又稱主關(guān)鍵字/外部關(guān)鍵字)實(shí)現(xiàn)為實(shí)體bean到實(shí)體bean的關(guān)系。這將會(huì)對(duì)應(yīng)用的性能產(chǎn)生負(fù)面的影響。 對(duì)象模型直接映射到實(shí)體bean的設(shè)計(jì)方法對(duì)于實(shí)體關(guān)系比較簡(jiǎn)單的模塊(如前述系統(tǒng)B端中的用戶登錄模塊、教師信息模塊、培養(yǎng)方案查詢、課程查詢等)的設(shè)計(jì)實(shí)現(xiàn)是最佳的。因此這些模塊開發(fā)時(shí)使用了容器管理持久化CMP(Container Ma

9、naged Persistence)實(shí)體bean技術(shù)對(duì)所用到的表進(jìn)行了映射,原因是這些數(shù)據(jù)結(jié)構(gòu)相對(duì)簡(jiǎn)單,數(shù)據(jù)單純,不需要進(jìn)行非常復(fù)雜、多樣的查詢,系統(tǒng)對(duì)數(shù)據(jù)表的操作不頻繁,通常情況下對(duì)性能不敏感,故采用了CMP實(shí)體bean技術(shù)。CMP中只提供最基本的查詢方法,所有的程序邏輯都封裝在對(duì)應(yīng)的會(huì)話Bean中,會(huì)話Bean和CMP一同部署,故可以采用本地接口訪問實(shí)體Bean,提高效率。客戶端僅僅與會(huì)話Bean進(jìn)行交互(會(huì)話外觀設(shè)計(jì)模式)。該設(shè)計(jì)的好處是隱藏了數(shù)據(jù)邏輯,MVC的結(jié)構(gòu)非常清楚,后期的數(shù)據(jù)維護(hù)也比較簡(jiǎn)單。方案范文無法思考和涵蓋全面,最好仔細(xì)瀏覽后下載使用。 但是對(duì)于像學(xué)生信息管理模塊和學(xué)生選

10、課管理這樣實(shí)體關(guān)系復(fù)雜,對(duì)象數(shù)目眾多的模塊來說,將導(dǎo)致大量的細(xì)粒度實(shí)體bean。將嚴(yán)重影響應(yīng)用的可擴(kuò)展性,故使用bean管理的持久性BMP(Bean Managed Persistence)實(shí)體bean技術(shù),但需要開發(fā)人員編寫持久性代碼而容器只是確定何時(shí)執(zhí)行該代碼。 在學(xué)生信息模塊中(如圖2所示),三種基本信息表(GSBaInf,USBaInf,CSUSBaInf)與其對(duì)應(yīng)的家庭成員社會(huì)關(guān)系(GSFamSoRel,USFamSoRel,CSUSFamSoRel)、學(xué)習(xí)工作經(jīng)歷(GSLeWoExp,USLeWoExp,CSUSLeWoExp)、獎(jiǎng)懲記錄(GSRePuRec,USRePuRec,C

11、SUSRePuRec)、學(xué)籍變動(dòng)記錄(GSStaChgRec,USStaChgRec,CSUSStaChgRec)、班級(jí)(Cla)、研究方向(StudDir)之間的表關(guān)系如果直接映射到實(shí)體bean時(shí),會(huì)產(chǎn)生很多問題,也就是說細(xì)粒度實(shí)體bean會(huì)影響許多領(lǐng)域:一是影響實(shí)體關(guān)系,把對(duì)象模型直接映射到實(shí)體bean,會(huì)將對(duì)象間的關(guān)系轉(zhuǎn)換為實(shí)體bean之間的關(guān)系。結(jié)果是一個(gè)實(shí)體bean往往包含或持有對(duì)其它實(shí)體bean的遠(yuǎn)程應(yīng)用。這樣在增加代碼的復(fù)雜性之外,它還會(huì)降低系統(tǒng)的靈活性;二是影響可管理性,細(xì)粒度實(shí)體bean會(huì)導(dǎo)致系統(tǒng)中存在大量的實(shí)體bean。容器會(huì)創(chuàng)建大量對(duì)象來支持每個(gè)實(shí)體bean實(shí)例。大量的實(shí)

12、體bean會(huì)產(chǎn)生更多需要維護(hù)的代碼和類。這樣會(huì)對(duì)應(yīng)用程序的性能產(chǎn)生負(fù)面影響;三是影響網(wǎng)絡(luò)性能,細(xì)粒度實(shí)體bean潛在地有更多的實(shí)體bean之間的關(guān)系,關(guān)系數(shù)的增加肯定會(huì)導(dǎo)致遠(yuǎn)程調(diào)用的增加,結(jié)果是由于網(wǎng)絡(luò)負(fù)載而降低系統(tǒng)的可擴(kuò)展性;四是影響數(shù)據(jù)庫模式依賴,當(dāng)實(shí)體bean是細(xì)粒度時(shí),每個(gè)實(shí)體bean實(shí)例通常都被看作數(shù)據(jù)庫中的一行,客戶端使用這些細(xì)粒度實(shí)體bean時(shí),它們實(shí)際上操作在數(shù)據(jù)庫中的行層次,則客戶端就變得對(duì)數(shù)據(jù)庫模式很依賴。方案范文無法思考和涵蓋全面,最好仔細(xì)瀏覽后下載使用。4在MIS系統(tǒng)中的解決方案4.1把實(shí)體bean設(shè)計(jì)并實(shí)現(xiàn)成具有根和依賴對(duì)象的粗粒度對(duì)象復(fù)合實(shí)體4.1.1復(fù)合實(shí)體及其相

13、關(guān)概念 如果把學(xué)生信息模塊的對(duì)象模型直接映射到實(shí)體bean,將導(dǎo)致大量的細(xì)粒度實(shí)體bean。從而帶來網(wǎng)絡(luò)負(fù)載、數(shù)據(jù)庫模式依賴及管理復(fù)雜等問題。 為解決細(xì)粒度實(shí)體bean問題,在學(xué)生信息模塊EJB的設(shè)計(jì)中采用復(fù)合實(shí)體的設(shè)計(jì)模式。 復(fù)合實(shí)體(Composite Entity)表示、模擬和管理一組相互管理的持久性對(duì)象。持久性對(duì)象是保存在某種類型數(shù)據(jù)存儲(chǔ)中的對(duì)象。多個(gè)客戶端通常共享持久性對(duì)象。持久性對(duì)象可以分成兩類:粗粒度對(duì)象和依賴對(duì)象。使用“復(fù)合實(shí)體”對(duì)于一組相互聯(lián)系的持久性對(duì)象進(jìn)行建模、表示和管理,而不是按照個(gè)別細(xì)粒度實(shí)體 Bean 表示它們。復(fù)合實(shí)體 Bean 代表一個(gè)由一組對(duì)象構(gòu)成的圖。通過復(fù)

14、合實(shí)體模式,可以減少數(shù)據(jù)庫模型的依賴性、提高網(wǎng)絡(luò)性能、消除實(shí)體間的依賴性。 復(fù)合實(shí)體模式的角色有:復(fù)合實(shí)體、粗粒度對(duì)象和依賴對(duì)象三種。其中復(fù)合實(shí)體通常是粗粒度對(duì)象或者持久粗粒度對(duì)象的引用。粗粒度對(duì)象擁有自己的生命期,管理與其它對(duì)象的關(guān)系。它可以被包含在復(fù)合實(shí)體里,同時(shí)復(fù)合實(shí)體本身可能就是粗粒度對(duì)象。依賴對(duì)象是依賴于粗粒度對(duì)象的對(duì)象,其生命期由粗粒度對(duì)象管理。方案范文無法思考和涵蓋全面,最好仔細(xì)瀏覽后下載使用。 學(xué)生信息模塊中復(fù)合實(shí)體的業(yè)務(wù)對(duì)象類圖如圖3所示。圖3 學(xué)生信息模塊復(fù)合實(shí)體類圖4.1.2實(shí)現(xiàn)復(fù)合實(shí)體的不同策略。 實(shí)現(xiàn)復(fù)合實(shí)體模式時(shí)存在許多策略。根據(jù)學(xué)生信息模塊特點(diǎn),在設(shè)計(jì)復(fù)合實(shí)體時(shí)采

15、用了復(fù)合實(shí)體包含粗粒度對(duì)象策略和復(fù)合值對(duì)象策略和滯后加載(惰性加載)策略等三種策略。 在學(xué)生信息模塊復(fù)合實(shí)體的開發(fā)中應(yīng)用了復(fù)合實(shí)體包含粗粒度對(duì)象策略,在該策略中,復(fù)合實(shí)體(StudInfEntity)包含三個(gè)粗粒度對(duì)象(GSBaInf,USBaInf,CSUSBaInf)。粗粒度對(duì)象繼續(xù)保持與其它依賴對(duì)象(GSFamSoRel等)之間的關(guān)系如圖3所示。 值對(duì)象是任意的可串行化Java對(duì)象。在學(xué)生信息模塊復(fù)合實(shí)體中通過應(yīng)用值對(duì)象策略(如圖4所示),可以創(chuàng)建必需的值對(duì)象(GSBaInf)。對(duì)于復(fù)合實(shí)體(StudInfEntity),客戶端可以只用一個(gè)遠(yuǎn)程調(diào)用getGSBInf()來獲取全部所需的信

16、息。根據(jù)客戶端請(qǐng)求數(shù)據(jù)的不同,值對(duì)象既可以是一個(gè)簡(jiǎn)單的對(duì)象,也可以是擁有子對(duì)象的復(fù)合對(duì)象。值對(duì)象被串行化,并且按照值順序傳遞給客戶端。值對(duì)象只充當(dāng)一個(gè)數(shù)據(jù)傳輸對(duì)象;它不負(fù)責(zé)安全、事務(wù)、和業(yè)務(wù)邏輯。值對(duì)象把所有信息打包進(jìn)一個(gè)對(duì)象,使用一個(gè)遠(yuǎn)程調(diào)用來獲取信息,而不使用多個(gè)遠(yuǎn)程調(diào)用。一旦客戶端接收到該值對(duì)象,則來自客戶端的對(duì)值對(duì)象的進(jìn)一步調(diào)用相對(duì)該客戶端來說都是在本地執(zhí)行的。方案范文無法思考和涵蓋全面,最好仔細(xì)瀏覽后下載使用。 一個(gè)復(fù)合對(duì)象可以由其對(duì)象樹中的多個(gè)層次的依賴對(duì)象組成。當(dāng)EJB容器調(diào)用復(fù)合實(shí)體的ejbLoad()方法時(shí)所有的依賴對(duì)象都需要加載,這個(gè)過程會(huì)花費(fèi)大量的時(shí)間和資源。一種優(yōu)化策略

17、是通過使用滯后加載策略來加載依賴對(duì)象。當(dāng)ejbLoad()方法被調(diào)用時(shí),首先只加載那些對(duì)復(fù)合實(shí)體客戶端最關(guān)鍵的依賴對(duì)象。接著,當(dāng)客戶端訪問尚沒有從數(shù)據(jù)庫中加載的某依賴對(duì)象時(shí),該復(fù)合實(shí)體就執(zhí)行一個(gè)即時(shí)加載。EJB2.0提供滯后加載策略。4.2 會(huì)話外觀 從實(shí)體bean中抽取和移動(dòng)操作其他實(shí)體的業(yè)務(wù)邏輯,并集成到一個(gè)會(huì)話bean會(huì)話外觀。4.2.1會(huì)話外觀模式 通過把實(shí)體bean和會(huì)話bean結(jié)合在一起,能夠減少網(wǎng)絡(luò)調(diào)用等開銷,會(huì)話bean替遠(yuǎn)程客戶端執(zhí)行大批CRUD(創(chuàng)建、讀取、更新、刪除)操作。會(huì)話bean也作為一個(gè)事務(wù)的外觀進(jìn)行服務(wù),強(qiáng)制事務(wù)在服務(wù)器上執(zhí)行,而不是牽涉到一個(gè)遠(yuǎn)程客戶端。這就把

18、實(shí)體bean嵌入到會(huì)話bean的具體實(shí)現(xiàn)中去了。外部的客戶端永遠(yuǎn)注意不到實(shí)體bean。這種方法的最終好處是使實(shí)體bean具有高的重使用率。方案范文無法思考和涵蓋全面,最好仔細(xì)瀏覽后下載使用。 采用會(huì)話外觀的設(shè)計(jì)模式把應(yīng)用邏輯(業(yè)務(wù)對(duì)象)實(shí)現(xiàn)為會(huì)話bean,商業(yè)邏輯被實(shí)現(xiàn)為實(shí)體bean。從實(shí)體bean中抽取和移動(dòng)操作其他實(shí)體的業(yè)務(wù)邏輯,并集成到一個(gè)會(huì)話bean,如圖4所示。 在學(xué)生信息模塊中。與實(shí)體bean相關(guān)的工作流被封裝在BUserSession會(huì)話bean中。會(huì)話外觀是一個(gè)粗粒度對(duì)象,其中該對(duì)象通過管理業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)服務(wù)對(duì)象交互以允許對(duì)工作流進(jìn)行封裝(如圖4所示)。圖4 MIS系統(tǒng)學(xué)生信息

19、管理模塊復(fù)合實(shí)體順序圖4.2.2總結(jié)會(huì)話外觀模式優(yōu)點(diǎn) 會(huì)話外觀是在MIS系統(tǒng)中使用的最多的一種EJB設(shè)計(jì)模式。即將實(shí)體bean層包裝在一個(gè)稱為會(huì)話外觀的會(huì)話bean層中,客戶端只能訪問會(huì)話bean而不是實(shí)體bean??蛻舳撕头?wù)器之間的邊界被一個(gè)會(huì)話bean層分開,它的方法將映射為應(yīng)用中的所有用例,并且包含了這些用例的業(yè)務(wù)邏輯。采用會(huì)話外觀可以隱藏業(yè)務(wù)組件之間所有的復(fù)雜交互活動(dòng),向客戶端提供一個(gè)更簡(jiǎn)單的接口。通過網(wǎng)絡(luò)跨越服務(wù)層而被直接暴露給客戶端的業(yè)務(wù)對(duì)象的數(shù)目也會(huì)減少,避免把低層業(yè)務(wù)對(duì)象直接暴露給客戶端,使兩個(gè)層之間的緊密耦合最小。采用會(huì)話外觀還可以提供統(tǒng)一的粗粒度服務(wù)層,以分離業(yè)務(wù)對(duì)象實(shí)現(xiàn)和業(yè)務(wù)對(duì)象抽象。向客戶端隱藏業(yè)務(wù)組件之間的低層交互和相互依

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論