版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、wap標(biāo)準(zhǔn)定義了一種應(yīng)用環(huán)境,讓設(shè)計(jì)人員能夠開發(fā)獨(dú)立于設(shè)備的用戶界面,然后使用 wmlscript(wml腳本)的wap編程語言,把可執(zhí)行的邏輯嵌入到移動(dòng)終端中。這樣,在移動(dòng) 終端上實(shí)際運(yùn)行了一種微型瀏覽器,非常像pc機(jī)上使用的ie或netscape瀏覽器。1.2.5 wap的技術(shù)特點(diǎn)過去,無線internet接入一直受到手機(jī)設(shè)備和無線網(wǎng)絡(luò)的限制。wap充分利用了諸如 xml, udp和ip等internet標(biāo)準(zhǔn),它的許多規(guī)程建立在http和tls等internet標(biāo)準(zhǔn)之上, 但進(jìn)行了優(yōu)化,克服了原無線環(huán)境下低帶寬、高延遲和連接穩(wěn)定性差的弊病。原來的internet標(biāo)準(zhǔn)諸如html, http
2、, tls和tcp用于移動(dòng)網(wǎng)絡(luò)是遠(yuǎn)遠(yuǎn)不能滿足要求 的,因?yàn)闃O大的文本數(shù)據(jù)信息需要傳送。標(biāo)準(zhǔn)的html內(nèi)容已不可能有效地顯示在袖珍手機(jī) 和尋呼機(jī)狹小的屏幕上。wap采用二進(jìn)制傳輸以更大地壓縮數(shù)據(jù),同時(shí)它的優(yōu)化功能適于更長的等待時(shí)間(long latency)和低帶寬。wap的會(huì)話系統(tǒng)可以處理間歇覆蓋(intermittent coverage),同時(shí) 可在無線傳輸?shù)母鞣N變化條件下進(jìn)行操作。wml和wml script用于制作wap內(nèi)容,這樣可最大限度地利用小屏幕顯示。wap的內(nèi)容 可從一個(gè)最新式的智能電話或其它逋信器的兩行文字的屏幕上顯示出來,也可以轉(zhuǎn)變?yōu)橐粋€(gè) 全圖像屏幕顯示。輕巧的wap規(guī)程棧
3、式存儲器的設(shè)計(jì)可使需要的帶寬達(dá)到最小化,同吋使能提供wap內(nèi)容 的無線網(wǎng)絡(luò)類型達(dá)到最多。它適用于多種網(wǎng)絡(luò),諸如全球移動(dòng)通信系統(tǒng)gsm900, gsm1800 和gsm1900;過渡性標(biāo)準(zhǔn)(is) -136;歐洲制式dect;時(shí)分多址接入;個(gè)人通信業(yè)務(wù),高 速尋呼(flex)和碼分多址等。同時(shí)它也支持所有的網(wǎng)絡(luò)技術(shù)和承載業(yè)務(wù),包括短消息業(yè)務(wù) (sms)、非結(jié)構(gòu)式輔助業(yè)務(wù)數(shù)據(jù)(ussd)、電路交換蜂窩移動(dòng)數(shù)據(jù)(csd-circuit switched data)、蜂窩移動(dòng)數(shù)字分組數(shù)據(jù)(cdpd)和通用分組無線業(yè)務(wù)(gprs)。由于wap建立在可升 級的分層結(jié)構(gòu)基礎(chǔ)上,每一個(gè)分層可獨(dú)立于其它分層而發(fā)
4、展。這就使得在不需要對其它分層 改變的情況下就可以引進(jìn)其它承載業(yè)務(wù)或使用新的傳輸規(guī)程。wap使得那些持有小型無線設(shè)備諸如可瀏覽internet的移動(dòng)電話和pda等的用戶也能 實(shí)現(xiàn)移動(dòng)上網(wǎng)以獲取信息。wap顧及到了那些設(shè)備所受的限制并考慮到了這些用戶對于靈活 性的要求。手持式wap設(shè)備的局限性wap設(shè)備與pc相比:低分辨率的小顯示屏,輸入裝置 容量有限,重要的是沒有捉供定點(diǎn)裝置,低功率cpu,內(nèi)存較少及能量較不穩(wěn)定,網(wǎng)絡(luò)帶寬 較窄且連接較不穩(wěn)定。wap帶來的靈活性與htmlc相比,wap標(biāo)準(zhǔn)沒有規(guī)定wap設(shè)備應(yīng)為何 種形態(tài)。這對設(shè)備制造商極為有利,可使其能夠生產(chǎn)出各種不同類型的設(shè)備以滿足不同需要
5、。 在不久的將來,市場對wap設(shè)備的要求會(huì)以瀏覽器的顯示屏尺寸、輸入裝置及內(nèi)存大小等不 同為根據(jù),從而促使wap設(shè)備在新技術(shù)及解決方案上得以發(fā)展進(jìn)步。通過使用移動(dòng)電話連上互聯(lián)網(wǎng)不久將成為一種標(biāo)準(zhǔn),而wap就是實(shí)現(xiàn)這一標(biāo)準(zhǔn)的技術(shù)工 具。如今,移動(dòng)電話上網(wǎng)數(shù)量的增長速度要比pc上網(wǎng)數(shù)量的增長速度更快。這也就意味著 不久以后,大多數(shù)新的移動(dòng)電話都將配有wap瀏覽器。持有wap設(shè)備的無線用戶可得到通過 互聯(lián)網(wǎng)提供的相關(guān)服務(wù),網(wǎng)絡(luò)頁血的編制采用html格式。屆吋對許多甚而是絕大多數(shù)用戶 而言,wap設(shè)備將成為其獲収這些服務(wù)的常用工具。wap的服務(wù)可簡單分成五大領(lǐng)域即:wap入口網(wǎng)站、咨詢服務(wù)、電子商務(wù)、
6、客戶服務(wù)、 企業(yè)內(nèi)部網(wǎng)附加服務(wù)和改善與增加現(xiàn)有移動(dòng)電話服務(wù)。1.2.6 wap發(fā)展總體趨勢就全球范圍內(nèi)來說,社會(huì)交友網(wǎng)絡(luò)占了 40%的流量,在有些國家,例如美國、南非、印 尼,份額甚至超過了 60%。web瀏覽量高于wap瀏覽量。前者占了總瀏覽量的77%,后者23%。 搜索引繁,尤其是google,占據(jù)了很大的份額,基本上都在每個(gè)國家瀏覽最多網(wǎng)站的前10 名。這也印證了搜索引擎越來越重要的論斷。當(dāng)然,opera這份數(shù)據(jù)也有局限性的,首先主要體現(xiàn)在數(shù)據(jù)是來源于opera mini,由于 手機(jī)瀏覽器種類很多,不同瀏覽器用戶可能有不同的瀏覽習(xí)慣。其次郵箱服務(wù)在中國占瀏覽 器很低有可能是很多人使用手機(jī)
7、pop方式接收郵件,也有可能安裝手機(jī)gmail之類的客戶端。1.3主要研究工作和論文組織結(jié)構(gòu)用軟件來完成的移動(dòng)證券系統(tǒng)是在wap和j2me兩種技術(shù)的基礎(chǔ)上提出的一種移動(dòng)電子 商務(wù),論文屮所作的主要工作如下:(1) 論文首先介紹wap的概念與特點(diǎn),介紹研究移動(dòng)證券系統(tǒng)的意義所在。(2) 詳細(xì)地?cái)⑹鲆苿?dòng)證券系統(tǒng)的具體實(shí)現(xiàn)過程。(3) 介紹實(shí)現(xiàn)移動(dòng)證券所需的技術(shù)支持。(4) 介紹移動(dòng)證券系統(tǒng)中具體j2me代碼設(shè)計(jì)。(5) 最后,作者采用了一系列的實(shí)驗(yàn)測試數(shù)據(jù)來說明移動(dòng)證券系統(tǒng)的可行性以及所能達(dá) 到的效果。本論文共分6章,其內(nèi)容如下:第一章 引入wap技術(shù)的概念,簡單介紹移動(dòng)證券系統(tǒng)的設(shè)計(jì)目標(biāo),同時(shí)闡
8、述本論文研 究的目的和意義。第二章詳細(xì)介紹j2me技術(shù)。第三章 分析研究j2me實(shí)現(xiàn)移動(dòng)數(shù)據(jù)的原理。第四章 提出移動(dòng)證券系統(tǒng)設(shè)計(jì)策略,并詳細(xì)說明該系統(tǒng)的優(yōu)勢所在。第五章移動(dòng)證券系統(tǒng)的具體代碼設(shè)計(jì)和核心技術(shù)實(shí)現(xiàn)。第六章測試和總結(jié)移動(dòng)證券系統(tǒng)的應(yīng)用效果。第二章j2me技術(shù)j2me(java 2 micro edition)是 java 2 的一個(gè)組成部分,它與 j2se、j2ee 并稱。根據(jù) sun的定義:j2me是一種高度優(yōu)化的java運(yùn)行壞境,主要針對消費(fèi)類電子設(shè)備的,例如蜂 窩電話和可視電話、數(shù)字機(jī)頂盒、汽車導(dǎo)航系統(tǒng)等等。j2me技術(shù)在1999年的javaone developer conf
9、erence大會(huì)上正式推出,它將java語言的與平臺無關(guān)的特性移植到小型電 子設(shè)備上,允許移動(dòng)無線設(shè)備之間共享應(yīng)用程序。1.2.7 j2me的基本概念1.4常見的關(guān)鍵詞j2me(java2 platform, micro edition)cldc(connected, limited device configuration)midp(mobile information device profile)kvm(the k virtual machine)1.5 j2me技術(shù)背景隨著無線應(yīng)用與嵌入式系統(tǒng)的愈來愈受到人們的重視,sun也推出了 j2me來迎合這一趨 勢。(實(shí)際上道也不能算是新推出,
10、熟悉java歷史的人都知道,java原先本是為了開發(fā)消費(fèi) 性電子產(chǎn)品而研制的.誰都沒有想到,因在網(wǎng)絡(luò)應(yīng)用上的出色表現(xiàn)而流行,以致現(xiàn)在的j2ee、 ejb等等,發(fā)展地越來越龐大。)sun認(rèn)為,未來的信息設(shè)備將比我們今天的更c(diǎn)ustomizable 和personalo這一點(diǎn)已經(jīng)可以從手機(jī)和pda的流行程度看出。所以為了開發(fā)面向這些設(shè)備 的 applicationso sun 推出了 j2me(java2 platform, micro edition)01.6 j2me的基本結(jié)構(gòu)j2me把設(shè)備分為兩類,一種是聯(lián)接設(shè)備(connected device),-種是有限聯(lián)接設(shè)備 (connected,
11、 limited device) 0前一種對應(yīng)于那些有電源的,電力充裕,較大的設(shè)備。例 如:電視機(jī),冰箱等,后一種對應(yīng)于主要使用電池,小型的設(shè)備,例如:手機(jī),pda等。這 里我只涉及第二種,有限聯(lián)接設(shè)備(connected, limited device) osun 把 j2me 分為兩個(gè)部分:configuration 和 profileconfiguration 包括虛擬機(jī)(virtual machine),核心的類庫與 api。configuration 層定義一個(gè)java 擬機(jī)的特性與java類庫的最小子集。也就是說,configuration層提供 了開發(fā)人員一個(gè)最基礎(chǔ),最核心的ja
12、va平臺。就像我前文捉到的,j2me把設(shè)備分為兩類, 一種是聯(lián)接設(shè)備(connected device), 一種是有限聯(lián)接設(shè)備(connected,limited device)。 對應(yīng)這兩種設(shè)備就有了兩種j2me configurationo分別為cdc (connected device con-figuration)和 cldc(connected,limited device configuration)o 這里,cdc 使用經(jīng) 典的 javavm,而 cldc 使用的是 kvm(the k virtual machine)。其中kvm是sun為使用16/32位risc/cisc微處理
13、器或控制器,并其可用內(nèi)存為160kb 512kb的設(shè)備而開發(fā)的。profile層也包含一組api,主要針對于特定的某一族系的設(shè)備而定義。profile層在 特定的configuration層上實(shí)現(xiàn),而程序員則負(fù)責(zé)在特定的profile上編寫應(yīng)用程序。對丁 手機(jī),pda 等 connected,limited device。它們的 profile 層稱為 midp(mobile information device profile)o于是midp與cldc合在一起就構(gòu)成了一個(gè)完整的j2me架構(gòu)。對于midp上的應(yīng)用程序sun也有獨(dú)特的叫法,它們被稱為midieto3dsmsswingpdajdb
14、cmidptlie pei sonal profileother profilescldccdckvmoshardware圖 2.1 j2me 的 cldc&midp 架構(gòu)1.2.8 cldccldc的目的為小型的,且資源有限,connected limited的設(shè)備定義一個(gè)標(biāo)準(zhǔn)的java平 臺。允許動(dòng)態(tài)的向這些設(shè)備發(fā)布內(nèi)容與應(yīng)用程序。方便第三方軟件廠商與開發(fā)者向這些設(shè)備移植內(nèi)容與應(yīng)用程序。cldc的范圍java語言與虛擬機(jī)的特性核心 java 類庫(如 java.lang.*,java.util.*)輸入/輸出對網(wǎng)絡(luò)的支持對安全性的支持對國際化的支持1.7 j2me 平臺2000年當(dāng)
15、j2me平臺同的cldc發(fā)布的時(shí)候,所有的java開發(fā)者都為之興奮不已。sun 也不負(fù)眾望在兩個(gè)月后發(fā)布了基于cldc的midp,給開發(fā)者提供了開發(fā)交互式應(yīng)用程序的平 臺?,F(xiàn)在國內(nèi)應(yīng)該主要是基于cldc/midp在開發(fā)應(yīng)用。j2me平臺的另一個(gè)規(guī)范cdc在大概 10個(gè)月后才發(fā)布,同時(shí)發(fā)布的還有foundation profile。但是由于他們都沒有給開發(fā)者提 供開發(fā)可交互應(yīng)用程序的api,因此他們發(fā)布的影響遠(yuǎn)遠(yuǎn)小于cldc/midp的發(fā)布。大概在2003 年 sun 發(fā)布了基于 cdc 的 personal basic profile 和 personal profile他們的組合替代 了以前
16、的personaljava平臺。j2me平臺是本著configuration和profile結(jié)合來設(shè)計(jì)的。configuration是提供支持最大范圍設(shè)備的最小的平臺。profile是針對特定的設(shè)備捉供相應(yīng)的開發(fā)包集合。在j2me 的兩個(gè)基本配置cdc和cldc是按照如下的標(biāo)準(zhǔn)進(jìn)行區(qū)分的。cldc: 512kb以下內(nèi)存有限能源供應(yīng)(通常使用電池)有限或非持續(xù)網(wǎng)絡(luò)連接簡單的用戶界面16位或者32位的處理器cdc: 2m以上內(nèi)存具有網(wǎng)絡(luò)連接能力,通常為無線網(wǎng)絡(luò)需要實(shí)現(xiàn)java虛擬機(jī)規(guī)范的全部功能32位或者64位的處理器從上述的要求屮不難看岀cldc主要針對那些資源非常受限的設(shè)備比如手機(jī)、pda、雙
17、工 尋呼機(jī)等。而cdc主要面對那些家電產(chǎn)品,比如機(jī)頂盒、汽車導(dǎo)航系統(tǒng)等。j2me平臺的結(jié)構(gòu)如圖2.2所示:optional packagesconfigurationsjava virtual machineshost operating system圖2.2 j2me平臺的結(jié)構(gòu)圖j2me的核心是configuration,在它里面定義了 java的虛擬機(jī),通過它來和底層的hostos打交道。profile提供了訪問設(shè)備的i0或者圖形界面的能力,這樣configuration和profile共同構(gòu)成了 j2me的運(yùn)行環(huán)境。比如clcd/midp可以提供開發(fā)手機(jī)程序的環(huán)境°在 prof
18、ile之上針對不同的設(shè)備還可以提供不同的可選開發(fā)包?;赾dc的設(shè)備可以支持全部的java2語言規(guī)范和java艱擬機(jī)規(guī)范,它是cldc的超集 并且遠(yuǎn)大于cldc,因此基于cldc的程序是可以無修改的移植到基于cdc的設(shè)備的。foundation profile是對cdc進(jìn)行擴(kuò)展的profile,但是他并沒有提供gui的開發(fā)包,gui 是在personal basic profile d*進(jìn)行定義的,它提供了 awt的一個(gè)子集給開發(fā)人員。它還 提供了 xlet 應(yīng)用程序模式針對 java tv。personal profile 是 personal basci profile的超集。他提供了對a
19、pplet的支持,豐富了 awt的組件,添加了 java.awt.datatransfer 包。基于cdc的j2me系統(tǒng)構(gòu)架如圖2.3所示:optional packagesfoundation profilehost operating system圖2.3 j2me平臺的系統(tǒng)圖1.2.9 j2me 與 j2ee 的區(qū)別與j2se和j2ee相比,j2me總體的的運(yùn)行環(huán)境和目標(biāo)更加多樣化,但其中每一種產(chǎn)品 的用途卻更為單一,而且資源限制也更加嚴(yán)格問【2嘰為了在達(dá)到標(biāo)準(zhǔn)化和兼容性的同時(shí)盡 量滿足不同方面的需求,j2me的架構(gòu)分為configurations profile和0ptional pa
20、ckages (可選包)。它們的組合取舍形成了具體的運(yùn)行環(huán)境。configuration主要是對設(shè)備縱向的分類,分類依據(jù)包括存儲和處理能力,其中定義了 虛擬機(jī)特性和基本的類庫。已經(jīng)標(biāo)準(zhǔn)化的configuration有connected limited device configuration (cldc)和 connected device configuration(cdc)oprofile建立在configuration基礎(chǔ)之上,一起構(gòu)成了完整的運(yùn)行環(huán)境。它對設(shè)備橫向 分類,針對特定領(lǐng)域細(xì)分市場,內(nèi)容主要包括特定用途的類庫和apl cldc上己經(jīng)標(biāo)準(zhǔn)化的 profile 有 mobile
21、information device profile (midp)和 information module profile(imp),而 cdc ±標(biāo)準(zhǔn)化的 profile 有 foundation profile(fp)、personal basis profile(pbp)和 personal profile(pp)??蛇x包獨(dú)立于前面兩者提供附加的、模塊化的和更為多樣化的功能。目前標(biāo)準(zhǔn)化的可選 包包插數(shù)據(jù)庫訪問、多媒體、藍(lán)牙等等。第三章j2me實(shí)現(xiàn)移動(dòng)數(shù)據(jù)的原理在當(dāng)今電子商務(wù)應(yīng)用中,j2ee以其可擴(kuò)展性,靈活性已經(jīng)成為服務(wù)端事實(shí)上的開發(fā)標(biāo) 準(zhǔn)。j2me與j2ee的結(jié)合使建設(shè)一個(gè)無
22、線接入的企業(yè)網(wǎng)絡(luò)成為對能,任何時(shí)間,任何地點(diǎn)的 自由訪問不僅擴(kuò)大了企業(yè)市場影響力,提高客戶服務(wù)水平,而且降低了企業(yè)it運(yùn)行的成本。 j2me與j2ee結(jié)合實(shí)現(xiàn)移動(dòng)數(shù)據(jù)應(yīng)用的原理如圖3.1所示,j2me手機(jī)客八端通過無線網(wǎng)絡(luò)發(fā) 送請求,j2ee服務(wù)器根據(jù)請求類型從數(shù)據(jù)庫提取信息,并返回到j(luò)2me客八端,用戶就像隨 身帶著一個(gè)移動(dòng)數(shù)據(jù)庫一樣。intranet圖3.1移動(dòng)數(shù)據(jù)通信原理圖服務(wù)端設(shè)計(jì)j2ee為企業(yè)開發(fā)提供了豐富的技術(shù)組件。ejb (enterprise java bean)封 裝業(yè)務(wù)邏輯,并將它們應(yīng)用于后端的企業(yè)信息系統(tǒng),jsp, servlet提供web層與用戶的信 息交流,協(xié)調(diào)用戶和
23、ejbz間的交互。這些組件相互關(guān)聯(lián)構(gòu)成了服務(wù)端j2ee的應(yīng)用??蛻?端設(shè)計(jì)在客戶端設(shè)計(jì)中,需要解決的關(guān)鍵主要包括網(wǎng)絡(luò)連接和信息的安全。網(wǎng)絡(luò)連接:http協(xié)議在midp框架和j2ee平臺搭建了傳輸?shù)臉蛄?。servlet通過http 建立起與客戶端基于主求與回應(yīng)的動(dòng)態(tài)模式。midp支持http1.1,使用get和post與網(wǎng)絡(luò) 層進(jìn)行通信,產(chǎn)生http報(bào)頭和數(shù)據(jù)。為了使報(bào)文清晰,在http請求是應(yīng)包含content-type 屬性,某些網(wǎng)關(guān)不接收未定義或非標(biāo)準(zhǔn)content-type的報(bào)文。無線傳輸?shù)拇罅繒r(shí)間耗時(shí)在 連接的建立過稈中,所以客戶端設(shè)訃應(yīng)避免頻繁的發(fā)送消息,將需要發(fā)送的消息積累起來,
24、減少發(fā)送的次數(shù)將極大提高客戶端的運(yùn)行效率。在某些情況下,客戶端與服務(wù)端傳輸一些較 大的數(shù)據(jù)流是不對避免的,然而無線傳輸會(huì)受到各種因素的影響產(chǎn)生不對預(yù)測的網(wǎng)絡(luò)延遲, 設(shè)計(jì)一個(gè)可視的傳輸指示器會(huì)提高客戶端的易用性。1.2.10移動(dòng)數(shù)據(jù)庫和j2mei具探討在不可靠的無線網(wǎng)絡(luò)中應(yīng)用程序可靠性己經(jīng)成為關(guān)系移動(dòng)商業(yè)成功的一個(gè)中心話題。 j2me (java 2平臺微型版)是支持離線模式智能移動(dòng)客戶端的完美平臺。整合了移動(dòng)關(guān)系 數(shù)據(jù)庫的企業(yè)j2me客戶端能夠管理在設(shè)備上的復(fù)雜數(shù)據(jù)并能在需要時(shí)和后臺服務(wù)器同步。目前的無線網(wǎng)絡(luò)是極不可靠的。不可靠的應(yīng)用程序毀壞了移動(dòng)商業(yè)的核心價(jià)值,而它又 許諾無論何吋何地都可以
25、訪問到信息。實(shí)際上,總是保持連接的需求正是基于無線應(yīng)用協(xié)議 (wap)的瘦客戶移動(dòng)商業(yè)失敗的主要原因。移動(dòng)商業(yè)筒要智能的移用客戶端,它能夠操縱 當(dāng)?shù)氐膽?yīng)用程序并且甚至在網(wǎng)絡(luò)出現(xiàn)臨時(shí)的不可靠時(shí)可以持續(xù)的工作(例如,離線操作)“偶 然連接”移動(dòng)應(yīng)用程序筒要高級的移動(dòng)數(shù)據(jù)儲存和管理工具。這樣的工具在j2me上是容易 得到的。1.2.11設(shè)備上的數(shù)據(jù)存儲和管理對離線操作的首要需求是存儲和管理設(shè)備自身的應(yīng)用數(shù)據(jù)。標(biāo)準(zhǔn)的j2me僅僅提供有限 的數(shù)據(jù)存儲和管理能力。在低端的midp (移動(dòng)信息設(shè)備描述)電話上,我們僅靠記錄管理 系統(tǒng)record management system (rms)得到線性的記錄儲
26、存;在基礎(chǔ)描述里(或personal java)我們有簡單的隨機(jī)文件。應(yīng)用程序開發(fā)者們必須用那些一般工具來組織數(shù)據(jù),這些工 具會(huì)對大應(yīng)用程序?qū)е路ξ丁⒌托屎湾e(cuò)誤的傾向。在j2se (java2平臺標(biāo)準(zhǔn)版)和j2ee (java2平臺企業(yè)版)的世界中,關(guān)系數(shù)據(jù)庫代表 著數(shù)據(jù)管理的關(guān)鍵技術(shù)。大多數(shù)開發(fā)人員己經(jīng)非常熟悉通過如jdbc (java數(shù)據(jù)庫連接)的 api訪問普通數(shù)據(jù)庫。因此輕量級關(guān)系數(shù)據(jù)庫是我們對移動(dòng)數(shù)據(jù)管理自然的選擇。除了提供離線操作模式外,設(shè)備上數(shù)據(jù)庫on-device databases還有其他的重要好處:(1) 能管理用戶參數(shù)。極度的個(gè)性化已經(jīng)作為移動(dòng)商業(yè)的一個(gè)主要優(yōu)點(diǎn)。(2)
27、 能提供一個(gè)性能高速緩存器performance cache來減少網(wǎng)絡(luò)往返回調(diào)。這樣就能大 大的增強(qiáng)在目前低速和反應(yīng)慢的無線網(wǎng)絡(luò)中應(yīng)用程序的性能。1.2.12 jdbc 可選包標(biāo)準(zhǔn)jdbc api對高端java移動(dòng)設(shè)備已經(jīng)是可以選擇利用的了。personaljava運(yùn)行時(shí) 常常和可選的jdbc1.xapi捆綁在一起。personaljava的繼承物,j2me基礎(chǔ)/個(gè)性化的描述 foundation/personal profile (fp/pp),它沒有委托 jdbc 來訪問數(shù)據(jù)庫。相反,fp/pp 設(shè) 備通過j2me jdbc可選包(jdbc op)使用jdbc 3.x api的一個(gè)富子集。
28、jsr java specification request (java規(guī)范需求)169正在發(fā)展這個(gè)可選包的規(guī)范。jdbc op除了 以下兒個(gè)特點(diǎn)外支持大多數(shù)用于jdbc的公共特性:(1) 連接池(2) parametermetadata 接口(3) 在callablestatement interface里為己經(jīng)存儲的程序通過名稱來設(shè)置參數(shù)(4) sql 99 的類型(女 struct, array, ref, sqldata, sqlinput,和 sqloutput 接口)(5) 自定義類型映射(如settypemap()和gettypemap()方法)1.2.13數(shù)據(jù)同步“偶然連接”應(yīng)
29、用程序范例的另一個(gè)重要特性是數(shù)據(jù)同步。獨(dú)立的移動(dòng)數(shù)據(jù)庫被數(shù)據(jù)包 所隔開。當(dāng)我們用強(qiáng)大的后臺服務(wù)器連接那些“孤島”時(shí)移動(dòng)應(yīng)用程序非常有用。已連接上 的移動(dòng)數(shù)據(jù)庫有如下優(yōu)點(diǎn):(1) 移動(dòng)客戶端常常需要訪問企業(yè)的基礎(chǔ)設(shè)施。例如,移動(dòng)銷售應(yīng)用程序需要更新庫存 數(shù)據(jù)。(2) 后端應(yīng)用程序需要上卷數(shù)據(jù)和聚集數(shù)據(jù)來制定智能商業(yè)決策或生成正確的報(bào)表。例 如,供應(yīng)鏈應(yīng)用程序在決定它應(yīng)該從供應(yīng)商那里定購多少貨物z前需要得到移動(dòng)銷售人員的 聚集數(shù)據(jù)。(3) 后臺能共亨每個(gè)移動(dòng)終端信息。因此智能客戶端不但應(yīng)該提供離線設(shè)備數(shù)據(jù)管理,而且應(yīng)該當(dāng)網(wǎng)絡(luò)可用時(shí)提供后臺數(shù)據(jù) 庫的數(shù)據(jù)同步。后臺數(shù)據(jù)庫當(dāng)作簡單移動(dòng)設(shè)備管理的一個(gè)內(nèi)容
30、儲存庫是同步解決方案的額外 收益。理論上應(yīng)用程序開發(fā)者能操縱整個(gè)同步邏輯,然而開發(fā)一個(gè)優(yōu)化的,安全的和可擴(kuò)展的 同步解決方案需要非常專業(yè)的技能。移動(dòng)數(shù)據(jù)庫產(chǎn)品同其附帶的同步工具和api 起趕走了 開發(fā)人員的痛苦。1.2.14設(shè)備上的數(shù)據(jù)訪問類dbmanager是一個(gè)單獨(dú)的類,它提供從應(yīng)用程序單點(diǎn)訪問數(shù)據(jù)。這個(gè)單獨(dú)模式避免了 嵌入式數(shù)據(jù)庫的線程復(fù)雜性。下面的代碼片斷顯示了 dbmanager的構(gòu)造器和初始化的代碼。 它連接數(shù)據(jù)庫,定義表,將測試數(shù)據(jù)導(dǎo)入表中,創(chuàng)建為以后時(shí)候的sql狀態(tài)模版(preparedstatement),這里用到的都是標(biāo)準(zhǔn)jdbc。在dbmanager中的其他方法通過簡單j
31、dbc api調(diào)用進(jìn)行訪問數(shù)據(jù)庫。如下的代碼片斷 展示了搜索和操縱名稱卡片記錄的方法。這些方法使用了我們之前定義的sql模版。數(shù)據(jù)訪問方法spring提供的jdbc抽象框架由core, datasource, object和support四個(gè)不同的包 組成。og.springframework.jdbc.coe包里定義了提供核心功能的類。其中有各種 sqlexceptiontranslator 和 datafieldmaxvaluelncrementer 的實(shí)現(xiàn)以及一 個(gè)用于jdbctemplate的dao基礎(chǔ)類。org.springframework.jdbc.datasource包里有一個(gè)
32、用以簡化數(shù)據(jù)源訪問的工具類,以 及各種數(shù)據(jù)源的簡單實(shí)現(xiàn),以被用來在j2ee容器之外不經(jīng)修改地測試jdbc代碼。這個(gè)工具 類提供了從jndi獲得連接和可能用到的關(guān)閉連接的靜態(tài)方法。它支持綁定線程的連接, org.springframework.jdbc.object包里是把關(guān)系數(shù)據(jù)庫的查詢,更新和存儲過程封裝為線 程安全并可重用對彖的類。這中方式模擬了 jdo,盡管查詢返回的對彖理所當(dāng)然的“脫離” 了數(shù)據(jù)庫連接。這個(gè)jdbc的高層抽象依賴于org.springframework.jdbc.core包中所實(shí)現(xiàn) 的底層抽象。最后在org.springframework.jdbc.support包中你
33、可以找到sqlexception的轉(zhuǎn)換功能和一些工具類。在jdbc調(diào)用中被拋出的異常會(huì)被轉(zhuǎn)換成在定義org.springframework.dao包中的異常。 這意味著使用spring jdbc抽象層的代碼不需要實(shí)現(xiàn)jdbc或者rdbms特定的錯(cuò)誤處理。所 有的轉(zhuǎn)換后的異常都是unchecked,它允許你捕捉那些你可以恢復(fù)的界常,并將其余的異常 傳遞給調(diào)用者。1.2.15與后臺數(shù)據(jù)庫同步類dbmanager也允許應(yīng)用程序開發(fā)者用pointbase專有unisync引擎與后臺數(shù)據(jù)庫同步 移動(dòng)數(shù)據(jù)。不同的廠商使用不同的同步引擎,但他們的概念都是相類似的。同步過程按照如 下這些步驟進(jìn)行:(1) 在后
34、臺服務(wù)器和移動(dòng)設(shè)備上創(chuàng)建相應(yīng)的數(shù)據(jù)庫和表;(2) 在同步服務(wù)器上創(chuàng)建一個(gè)hub。這個(gè)hub包含發(fā)布信息。它指定和標(biāo)識用于同步(發(fā) 布)的后臺表(或部分表);(3) 使用hub來創(chuàng)建spokeo spoke是在同步服務(wù)器上表示移動(dòng)設(shè)備的對彖。每個(gè)spoke 都有一個(gè)id。它能通過在同一個(gè)hub里的訂閱對象來訂閱發(fā)布。通過使用一個(gè)spokeld,移 動(dòng)設(shè)備匹配spoke并對訂閱的后臺表進(jìn)行同步;(4) 啟動(dòng)同步服務(wù)器?;旧贤ㄟ^com.pointbase.me.sync.server類的main()方法來 執(zhí)行。這個(gè)服務(wù)器類用于pointbase發(fā)布包。還有其他幾個(gè)方法在不同環(huán)境中運(yùn)行服務(wù)器。 默
35、認(rèn)情況下,服務(wù)器監(jiān)聽端口 8124;(5) 使用一個(gè)spokeld和在移動(dòng)設(shè)備上的類spoke stub來初始化同步過程。圖3.2 unisync同步服務(wù)器框架圖解resetserver顯示了在unisync服務(wù)器上如何創(chuàng)建hub和spoke:安裝同步服務(wù)器man ager=s yn cmanager.getl nstan ce(caturl,catdriver,catuser,catpassword);string dsname;dsn ame=s yn cdatasource.default;string hubnameihub”;hub hub=manager.createhub(hub
36、name);publication pub;string pub name;spokeconfig spoke;subscription sub;string sub name二"subnamecarct;string tablename="namecard,'stringq tables=new stringtablename;/ publish the complete name-card table pub name=”pubnamecarct;pub=hub. newpublicati on (pub name,ds name,tables);hub.pub
37、lish(pub);/ create two spokes and subscribe to this publicationfor(int i=1;i<=2;i+) string name=,'spokef,+i;spoke=hub.createspokeconfig(name);spoke.savepassword(npassh+i);sub=spoke.newsubscriptio n(sub name,s yn cdatasource.default,pubname); spoke.subscribe(sub);/ publish the name-card table
38、without the picture columnpubname=,pubnamecardnopicturen;pub=hub.newpublicati on (pub name,ds name,tables);synctable table=pub.getsynctable(tablename);table.dropsynccolumns(new string"picture");hub.publish(pub);/ create two spokes and subscribe to this publicationfor(int i=3;i<=4;i+) st
39、ring name=f,spokeh+i;spoke=hub.createspokeconfig(name);spoke.savepassword(,fpassh+i);sub=spoke.newsubscription(subname,s yn cdatasource.default,pub name); spoke.subscribe(sub);man ager.close();下面的dbmanager代碼片斷說明了如何獲得spoke stub和如何在設(shè)備上處理同步。代碼屮的注釋解釋了應(yīng)用程序的同步和獨(dú)立版本的不同。通過同步服務(wù)器訪問數(shù)據(jù)分為六個(gè)步驟,方法與代碼片段如下:(1)首先要對jd
40、bc連接變量與同步變量進(jìn)行定義,private spoke spoke;private string spoke name;private int spoke_id;private int spoke_range_start,spoke_range_end;final static int rows_per_spoke=1 «16;private string syncurl;private string syncpassword;private dbmanager() (2) 然后獲取數(shù)據(jù)庫連接參數(shù)syncurl =properties.getpropertycsyncurr*,
41、"http:/localhost:8124*');string spokeid =properties.getproperty(nspokeid,f,spokename =properties.getproperty(,spoke, hspokem+spokeid); syncpassword =properties.getproperty(hsyncpasswordh, hpassh+spokeid);url =properties.getpropertyurl11,hjdbc:poi ntbase:micro:pbdemo”+spokeid);con ne ct();(3
42、) 連接的方式是釆用同步服務(wù)器完成連接private void connect() try system.out.println(hcorrnecting to the database.h);class.forname(driver);/ if the database doesn't exist, create a new databaseconnection 二 drivermanager.getconnection(ul, user, password); statement = conn ectio n.createstateme nt();/ check sync meta
43、data and create tables loadmeta();/ create prepared statements createstatement(); catch (exception e) e.printstacktrace();system.exit(1);(4)使用同步服務(wù)器獲取新id private int getnewld() try resultset rs = statement.executequery("select max(id)+1 from namecard where ”+"id>=,+spoke_range_start+u an
44、d id<"+spoke_range_end); rs.next();int id=rs.getlnt(1);if(rs.wasnull() return spoke_range_start; else return id; catch (exception e) e.printstacktrace();return 0;(5) 創(chuàng)建表和負(fù)載數(shù)據(jù)的同步中心void loadmeta() try syncmanager manager=syncmanager.getlnstance(connection); spoke=ma nager.getspoke(spoke name);
45、if(spoke=二null) system.out.println(,loading metadata from url h+syncurl+11 for spoke h+spokename+h using password h+syncpassword);spoke=ma nager.createspoke(spokename);spoke.savepassword(s yn cpassword);spoke.savehuburl(s yn curl);spoke.loadc on fig();spoke.gets napshot();spokejd = spoke.getspokeld(
46、);system.out.println(hspokeld is ,f+spokejd);spoke_range_start = rows_per_spoke * spokejd; spoke_range_end = spoke_range_start + rows_per_spoke 1; catch (syncexception e) e.printstacktrace();(6) 讓后端數(shù)據(jù)庫和移動(dòng)數(shù)據(jù)庫同步void sync() try spoke.s ync(); catch (syncexception e) e.printstacktrace();完成以上六個(gè)步驟后,可以實(shí)現(xiàn)通過
47、同步服務(wù)器對數(shù)據(jù)庫進(jìn)行訪問1.2.16 j2me移動(dòng)數(shù)據(jù)庫的選擇當(dāng)然pointbase并不是j2me移動(dòng)數(shù)據(jù)庫產(chǎn)品的唯一選擇。在本文的后面部分將比較和 討論幾種主流的移動(dòng)數(shù)據(jù)庫。1.8高端設(shè)備上的jdbc數(shù)據(jù)庫對丁運(yùn)行personaljava或personal profile的高端設(shè)備,數(shù)據(jù)庫能夠通過jdbc api 訪問。jdbc數(shù)據(jù)庫對于程序來說是最容易的數(shù)據(jù)庫類型。所有的廠商已經(jīng)至少有一個(gè)這種 種類的產(chǎn)品。最大的挑戰(zhàn)是如何平衡這些功能。我們想要最小而且最快的數(shù)據(jù)庫。它能夠支 持應(yīng)用程序所需功能的準(zhǔn)確集合。1.9 midp設(shè)備上的輕量級數(shù)據(jù)cldc (有限連接設(shè)備配置 connected
48、limited device configuration) /midp 并不支持 jdbc接口。在midp設(shè)備上支持復(fù)雜數(shù)據(jù)管理的兩個(gè)通用方法是:(1) 執(zhí)行非常輕量的數(shù)據(jù)庫和rms上的類似jdbc的訪問apl這個(gè)方法很耗費(fèi)資源,但 根據(jù)開發(fā)者開發(fā)能力和性能支持證明是最好的。(2) 直接擴(kuò)展rms類并在擴(kuò)展的類上執(zhí)行簡單的行序列化,數(shù)據(jù)訪問,索引/搜索和同步 方法。這個(gè)擴(kuò)展類是rms上的一個(gè)細(xì)小的層次。它能模擬關(guān)系表的行為。1.2.17同步服務(wù)器眾所周知,同步是移動(dòng)數(shù)據(jù)庫的一個(gè)關(guān)鍵性能。大多數(shù)數(shù)據(jù)庫廠商有他們自己專有的同 步服務(wù)器。這些服務(wù)器提供許多附加功能來優(yōu)化在移動(dòng)環(huán)境下的同步過程。同步服
49、務(wù)器的重 要性能包括如下幾點(diǎn):智能沖突的解決方案(2)減少帶寬占用端到端的編密碼(4) 后臺引擎的性能調(diào)整(5) 異步和可擴(kuò)展更新能力1.2.18檢查和比較幾種主流廠商的產(chǎn)品1.10 hsql廿放源碼的數(shù)據(jù)庫引擎-hsql是基于thomas mueller的hypersonic sql項(xiàng)目。它完 全是由java是編寫的同時(shí)也是一種廣泛用于嵌入式的數(shù)據(jù)庫。它被包含在許多j2ee應(yīng)用服 務(wù)器中。在移動(dòng)設(shè)備上,hsql運(yùn)行在personaljava和fp/pp平臺上。而且hsql是完全免 費(fèi)的。設(shè)計(jì)人員能自由地將它重新部署到應(yīng)用程序中,這種功能對移動(dòng)應(yīng)用程序來說是容易 的。hsql提供一個(gè)支持95j
50、dbc接口和所有jdbc數(shù)據(jù)類型的jdbc驅(qū)程。它支持事務(wù),外 鍵其至java存儲過程。在hsql屮的表能寄存在內(nèi)存屮和保存在磁盤文件屮。hsql只有少 于160-kb的存儲器足跡footprinto它也為personaljava設(shè)備發(fā)布了一個(gè)數(shù)據(jù)庫管理控制 臺。(經(jīng)過sharp zaurus ±的測試)然而,hsql缺少一些商業(yè)移動(dòng)數(shù)據(jù)庫上所需的高級性能和安全功能。更重要的是,hsql 不能提供任何同步解決方案。它也缺少一個(gè)為midp設(shè)備的解決方案。1.11 pointbasepointbase是一個(gè)純java嵌入式數(shù)據(jù)庫方面的主流廠商。pointbase micro數(shù)據(jù)庫能運(yùn) 行
51、在 fp/pp/personaljava 和 midp 平臺上。在fp/pp/personaljava平臺上pointbase micro數(shù)據(jù)庫僅用91kb存儲器足跡就能支持 大多數(shù)jdbc和sql功能。它也支持例如數(shù)據(jù)庫編密碼這樣的高級功能。它不支持存儲過程 和接口 callablestatemento因此midp不支持jdbc, pointbase為midp提供它口己的輕量 級類似jdbc的api。pointbase micro數(shù)據(jù)庫的midp版本提供了一個(gè)用瀏覽器打開的midiet 數(shù)據(jù)庫控制臺。pointbase micro數(shù)據(jù)庫通過unisync同步服務(wù)器能容易地同服務(wù)器端point
52、base嵌入 式數(shù)據(jù)庫和oracle數(shù)據(jù)庫同步。1 12 sybase ianywhere在膝上型電腦上的輕量級數(shù)據(jù)庫ianywhere的sql anywhere studio已經(jīng)擁有巨大的市 場份額。在普遍設(shè)備上的移動(dòng)數(shù)據(jù)庫市場它也有一個(gè)強(qiáng)大的份額。anywhere sql studio的 自定義數(shù)據(jù)庫生成器是它一個(gè)關(guān)鍵創(chuàng)新。它讓用戶而不是數(shù)據(jù)庫廠商決定如何平衡數(shù)據(jù)庫存 儲器足跡和它所支持的功能。在anywhere sql studio中用戶能指定將在應(yīng)用程序中調(diào)用的sql狀態(tài)sql statement0 它根據(jù)用戶對根本性質(zhì)和事務(wù)功能的選擇生成一個(gè)自定義數(shù)據(jù)庫。所生成的數(shù)據(jù)庫是一個(gè)純 ja
53、va類以及伴隨的一系列用戶應(yīng)用程序能調(diào)用的api。使用ianywhere mobilink同步服務(wù) 器的數(shù)據(jù)同步api也能加入到自定義數(shù)據(jù)庫中去。除了自定義數(shù)據(jù)庫生成器,ianywhere也提供大存儲器足跡和移動(dòng)數(shù)據(jù)庫的一般用途。 它包括支持java儲存過程java stored procedure在內(nèi)的許多安全,優(yōu)化和可用性方面的 功能。這些數(shù)據(jù)庫為了達(dá)到更好的性能天生就運(yùn)行在流行的移動(dòng)平臺上。sybase ianywhere sql studio現(xiàn)在仍然不能支持midp數(shù)據(jù)庫的自動(dòng)生成。1.2.19 ibm db2 everyplaceibm db2 everyplace是ibm在移動(dòng)數(shù)據(jù)
54、庫的禮物。對于ibm的客戶來說,db2 everyplace 非常好地整合了其他ibm企業(yè)組件(例如,db2 universal database和websphere mq everyplace)和 ibm 開發(fā)工具(例如,ibm websphere studio device developer)。db2 everyplace木身運(yùn)行在包括palm os, symbian os, pocket pc, qnx軟件系統(tǒng)和嵌入式linux 在內(nèi)的許多平臺上。db2 everyplace支持加密數(shù)據(jù)域和表存儲優(yōu)化功能。在midp平臺上,db2 everyplace有一個(gè)叫fastrecordsto
55、re的產(chǎn)品。它仿效在midp rms 記錄存儲之上的可索引和可搜索的關(guān)系表。db2 everyplace數(shù)據(jù)庫和fastrecordstore通過ibm同步引擎與后臺數(shù)據(jù)庫同步。db2 everyplace也附帶一個(gè)叫mobile application builder的工具,它允許開發(fā)者可視化地創(chuàng) 建db2 everyplace應(yīng)用程序。1.2.20 oracle9i liteoracle9i lite是oracle在移動(dòng)數(shù)據(jù)庫上的產(chǎn)品。它可運(yùn)行在plam os, pocket pc, symbian os和win32等平臺上。win32這個(gè)版本是為了能運(yùn)行在膝上電腦上并支持jdbc, 多用
56、戶模式以及java存儲過程。oracle9i lite的pocket pc和symbian os版本支持jdbc. 而palm os版本僅支持oracle自身專用的okapi (對彖核心api object kernel api)和 odbc (開放數(shù)據(jù)庫連接 open database connectivitiy)。oracle9i lite suite 包括一個(gè)移 動(dòng)開發(fā)工具mobile development kit,它能夠根據(jù)用戶自定義需求自動(dòng)生成和打包移動(dòng)數(shù) 據(jù)庫應(yīng)用程序。目前它只能生成本身客戶端應(yīng)用程序。oracle9i移動(dòng)數(shù)據(jù)庫通過oracle移動(dòng)服務(wù)器和后臺oracle數(shù)據(jù)庫服
57、務(wù)器同步。如果 我們使用oracle9i lite移動(dòng)開發(fā)工具來創(chuàng)建應(yīng)用程序則移動(dòng)服務(wù)器會(huì)自動(dòng)為這個(gè)應(yīng)用程序 生成同步邏輯。oracle9ilite支持任何基于tcp/ip的網(wǎng)絡(luò)上的同步,包括http, cdpd (單 元數(shù)字包數(shù)據(jù)cellular digital packet data) , 802.11b無線局域網(wǎng)。通過使用移動(dòng)服務(wù) 器的開放傳輸api open transport apis,我們也能增加新的傳輸。另外oracle移動(dòng)服務(wù) 器支持非同時(shí)的同步。在高峰期每個(gè)設(shè)備只是把同步內(nèi)容提交到一個(gè)隊(duì)列中然后退出。異步 操作是可擴(kuò)展解決方案的關(guān)鍵。在midp平臺上oracle提供soda (簡單對彖數(shù)據(jù)庫訪問simple object database access), 這個(gè)產(chǎn)品是基于rms的。soda實(shí)際上是一個(gè)支持midp設(shè)備的面向?qū)ο髷?shù)據(jù)庫。它允許存儲, 搜索和恢復(fù)類似javabean的數(shù)據(jù)對象。1.13選擇正確的移動(dòng)數(shù)據(jù)庫選擇正確的移動(dòng)數(shù)據(jù)庫產(chǎn)品是個(gè)復(fù)雜的商業(yè)決策問題。由于移動(dòng)數(shù)據(jù)庫嵌入在客戶端應(yīng) 用程序中,就需要為所開發(fā)的每個(gè)產(chǎn)品支付版稅。為減少總開銷而簽訂一個(gè)好的合同是非常 重要的。由于同步解決方案所特有的性質(zhì)每個(gè)產(chǎn)品都在某種程度上鎖定了廠商。因此開發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游產(chǎn)品的創(chuàng)新開發(fā)
- 二零二五年度綠色能源項(xiàng)目9%股權(quán)置換協(xié)議2篇
- 科技魔力:農(nóng)業(yè)4.0
- 2025版廠房拆除工程環(huán)境保護(hù)及補(bǔ)償協(xié)議4篇
- 專業(yè)設(shè)備銷售協(xié)議樣例版B版
- 2025年度拆遷建筑工程居間服務(wù)委托合同4篇
- 2025年度工業(yè)自動(dòng)化設(shè)備租賃合同參考范文4篇
- 2025年廠房設(shè)備租賃與數(shù)字化管理合同范本3篇
- 二零二五版養(yǎng)老地產(chǎn)租賃合同樣本3篇
- 2025年度體育場館租賃合同保證金與押金支付及退還方案3篇
- 公司沒繳社保勞動(dòng)仲裁申請書
- 重慶育才中學(xué)2025屆化學(xué)九上期末教學(xué)質(zhì)量檢測試題含解析
- 成都市2022級(2025屆)高中畢業(yè)班摸底測試(零診)數(shù)學(xué)試卷(含答案)
- 【云南省中藥材出口現(xiàn)狀、問題及對策11000字(論文)】
- 服裝板房管理制度
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質(zhì)環(huán)境保護(hù)與治理恢復(fù)方案
- 第七章力與運(yùn)動(dòng)第八章壓強(qiáng)第九章浮力綜合檢測題(一)-2023-2024學(xué)年滬科版物理八年級下學(xué)期
- 醫(yī)療機(jī)構(gòu)診療科目名錄(2022含注釋)
- 微視頻基地策劃方案
- 光伏項(xiàng)目質(zhì)量評估報(bào)告
- 八年級一本·現(xiàn)代文閱讀訓(xùn)練100篇
評論
0/150
提交評論