(计算机科学与技术专业论文)gbo4ajax—ajax全球化界面组件库.pdf_第1页
(计算机科学与技术专业论文)gbo4ajax—ajax全球化界面组件库.pdf_第2页
(计算机科学与技术专业论文)gbo4ajax—ajax全球化界面组件库.pdf_第3页
(计算机科学与技术专业论文)gbo4ajax—ajax全球化界面组件库.pdf_第4页
(计算机科学与技术专业论文)gbo4ajax—ajax全球化界面组件库.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

燮型型苎望! ;墨萎堡塑型壁 摘要: g b 0 4 a j 双一a j a x 全球化界面组件库 随着互联网的发展和普及,全球化成为商业软件获得成功的关键因素。随 着软件业的发展,软件全球化的支持也在不断得到加强。出现了各种辅助应用软 件进行全球化开发的标准和类库。g b o ( g 1 0 b a lb u s i n e s so b j e d ) 是i b m 研发的用于 辅助j 2 e ew e b 应用程序界面全球化的组件库。作为背景,本文探讨了g b o 的设 计思想,架构以及价值。 近年来被称为r n ( 丰富互联网应用程序) 的新一代w e b 应用程序兴起,使 用新的编程模型极大的提升了用户体验。a j a 】【技术是目前r n 实现技术中最为热 门的一种,出现了大量的应用程序编程框架和组件库。但是这些框架和类库却都 没有解决针对a i 缸应用程序进行的界面全球化。而传统的全球化类库( 包括g b o ) 仅仅工作在服务器端,无法支持r 认客户端应用程序。本文提出通过重用g b o 的 底层类库,构建一个分布在客户端和服务器端的a j a 】【全球化界面组件库 g b 0 4 a j a 】【。它利用现有的g b o 在服务器端的能力帮助a ja 】【应用程序实现界面的 全球化组件。g b 0 4 a j a 】【一方面填补了在a j a x 技术平台上尚无全球化界面组件类 库的空白,另一方面将g b o 的应用扩展到a 汹【平台,展示了将服务器端现有类库 的功能延伸到r n 应用中的方法。 关键宇: 软件全球化,国际化,用户界面全球化,g b o ,丰富互联网应用程序,a j a x , 全球化界面组件 2 鞭江大学硬学糖论文 a b s t r a c t : 6 8 0 4 犯一岗群垒球豫界垂组件库 a s 壤ed 氇w 娃o f i n e r n 嘛磐曲a l 泌t i o n 如s b e c o m ea 船y 矗c | 髓o f s 证e s s , s o f t w a r eg l o b a l j z a t i o ni sa l w a y si 加p m v i n gb yt h et i m e m a n ys u p p o n m ga n dh e l p f i l l 露曲建i z a 圭主鳓s 耗m 如穗s 囊蜷奄l 艇耋sa 辑v e l 印。d + g 嚣o ( g 差o b 斑b 醛秘姻s 蹦e 班 d e v e l o p 酣b y 糟mi ss u c ha 翊曲越i z a t i o nl i 酶a r y ,w h i c ha i m c da tp 砌v i d i n gf e n s a 懿e 甜o b a l i z a t i o nu lw i d g e t sf o rj 2 e ew c bt i ea p p l i c a t i o n n ed e s 蜘a r c h j t e c t u r eo f g b 0 舞丽e 蠡yd e s e r 蚤斑i 熟魄趣p 攀程8 s 鑫凇势髓文 w e b 淞h i l o l o 舀e sh a v ed e v e l o p e dl 研d e c a d e s ,n o w 箍牡e wg e n e 糟圣j o 懿o f w e b t l l n o l o g y ,w h i c i li sn 锄e da sr i a ( r i c hi n t e m e ta p p l i c a t i o n ) ,l l s e sa n e w a p 窭 糍i 黻越o d e | 聿。鄹汝m 驻建k 挂e f 娃s 龆蛙p 商o n s 篾鑫x 蠢鞠e 髓攮e 强。鞋 p o p u l a fr 弧i m p l e m e n t 面gt e c h n i q u e s 弧e r ea f ed o z e n so fl i b f 捌e sp 尊州话抽ga j a x s u p p o r t ;h o w e v e r t h e 掣o b a l 娩a t i o no fa j 凇a p p l i c a t i o no s p e c i a l l yt l l e 斟0 b a l i z a l i o no f u l 趣麓秘a 辨l i 龆蛹珏运l a 馥穗溉羹e 糕i s 娃珏g 謇受a | i z 越豫l 涤臻疽嚣( s 娃醢鹅i c 毽 j a v ak e 硒a t a l i z a t i 潍解ka n dg b o ) 瓣d e s i g n e d 屯0s u p p 碱s e r v e rs 池 p r 0 簪卸衄1 i n gm o d e l ,t h e r ei sn oo n e ,w h i c hc o u l db eu t i l 姚e dj i ld i e n ts i d ea j a x a 麟撼i 强。b 建s e d 躲氆搴端曲s e 撇鞋懿s ,w ep f 印o s ea 聃尊we 珏e 基鑫 矗eu w 键辞 l i b r 雏yg b o 壕a j 糕珏l e v e r a 壮st h ec a p a b i l i t yo fs e e fs d eg b o a n dp r o v i d i n g 刚o b a l i z a t i o nw i d g e t sf o ra j a xa p p l i c a t i o n ,g b 0 4 a j a 】【a d m e s s e st l l ep r o b l a mo f l a c 戤鹅g l 痰斌主z 矗| 量潍u l 诵d 窖e tl 蚤黯f y 强蠲鑫暮。f 璐嚣臻雌磅强t e 秘d i 猎瀣 印p l j c a 曲no fg b 0 t oa j 积p l a t f o 皿,g b 0 4 a j a xa l s od e m o n s t m l c st h 母m e l h o d0 f u t i l i z i n gf u n c t i o n a l i t i c so fe x i s t i n gs e n r c r - s i d el i b r a r i e st 0h e l pd i e n t - s i d ea j a x ( 强d 翎臻r 爨萄邓 p l 鸯a 妇s t k e y w o r d # s o 脚目瓣 3 l o b a 珏z 娟o n ,如t 啪a t o n a l l z 黼o n ,6 b 瓯r 蛤ra j a x ,g l o b a l i z a t i o n u s c ri n t e r f a c ew i d g c t 3 浙江大学硕士学位论文g b 0 4 蛳a x a j a x 全球化界面组件库 第1 章绪论 1 1软件的全球化和本地化 软件的全球化( 又称国际化) 是指通过设计合理的结构使得软件能够支持并 处理各种语言( 支持多种字符) ,文化( 例如,文本的排序,日期格式,数字格 式等) 。随着互联网对世界经济影响的日益增长,今天的企业必须面对着全球化 的机遇和挑战。本地化是与全球化相关联的概念。 软件的本地化是指将一个软件通过翻译或者添加具有本地特征的一些额外 功能从而将其变为一个专门针对某个特定市场的软件的过程。经过本地化的最终 产品将拥有符合目标市场所在地区的语言和文化特征,从而能被本地用户所接收 和喜爱。比如一个w i n d o w s 操作系统,在最早推出英文版之后,为了能够打开非 英语国家地区的用户,又将其界面做翻译后推出了简体中文,日文版等本地版本。 软件的本地化不能简单的看成是对软件用户界面以及软件文档的翻译,它 还包括许多更为深入和复杂的问题。我们在下一节将简单的介绍软件的本地化和 全球化涉及的主要问题。 同样软件的全球化也不是一种单一的技术,而是一种体系,必须在软件设 计的早期就纳入考虑。举例来说,在较早时期的软件设计时并没有考虑到软件将 会在非英语国家使用,仅仅使用单字节字符集,而在软件开发出来之后再花很多 开发力量,为每个地区推出一个独立的本地化版本常常会产生很多问题。首先这 样需要维护一个版本软件的多个不同本地化版本,成本非常高。其次本地化版本 通常都比原始版本要晚推出,这样会使企业丧失几个月甚至更长的市场。而且如 果软件设计时没有考虑到将会处理多种语言字符,以及文化习惯,这个软件在本 地化过程中甚至会出现困难。 1 2为什么需要全球化? 对企业而言,在今天成功的全球化和本地化就意味着利润。互联网的迅速 7 游汪大学联士学位埝文g b 泓a j n 一岗# 全球纯捧瑟缝嫠瘁 笈震使褥鹰鼗跨越了番家移途壤瓣隈裁。蠢谖查驻示,三分之二瓣蔓联瓣爝户亲 自美国以外的地区。当一个公司的业务向全球扩展的时候,它的商务应用平台也 藏必须遥行全球仡。对予疆终静客户来说, 龟销疆然更翻愿意逶j 遘个本堍亿的 电子商务网站去购买产晶。对于一些规模较大的跨国公司丽言,企球化还意味着 能否满足公司内部不同瑰区的员工进行充分合作和沟通的需求。 1 3 软件全球化渗及的闻遂 软件全球他涉及许多问题,零节我稻简要的介绍冀中比较主要腑几个问题。 1 3 1用户界面 这一部分俄含了出错信怠、帮助信怠、菜肇、提示、用户莽溢上的闰形等。 举例来说,在一个英文的界面中,文本傣息的长度通常套比中文或者日文要短。 因此如果一个下拉菜单的宽度按照英文的菜单项来设定,那么当这个软件进行同 遥本媲化后,这个菜单磺上豹内容可能鼹示不全。 1 3 ,2 字符的分类 不弼语言中字母表是不同的,例如英文中的字母表黉5 2 个( a - z 翻a 。z ) , 而在西珊牙语中,还有诸如c h 和u 的字母。这种字母浅的差别常常引起问题。 键翔在熬 淳薅,穗簿在c 之嚣。热栗采爨英文字舔表豹黪净,曲鑫棱当域涎令字 母,从而造成错误的排j i 葶。 1 3 _ 3数字袭示 在不同的语言或者地区中数字的表示是各不相同的 浙江大学硕士学位论文g b 0 4 a j a x a j 肛全球化界面组件库 1 3 4日期格式 法国 54 3 4 2 5 其他欧洲国家5 4 3 4 2 5 表1 不同国家的数字格式【l 】 各国的日期表达方式也各不相同。甚至美国一地就有不同的使用习惯。 1 3 5日历 国家日期格式 美国5 1 2 5 9 一月日年 美国官方格式5 9 5 1 2 一年月日 英国1 2 5 5 9 一日月年 瑞典1 9 5 9 0 5 1 2 4 位年月日 表2 不同国家的日期格式【1 】 各国都使用不同的日历,但是软件开发者常常忽视这一点。在一个软件中 使用某个特定的日历,这给软件的使用者带来很大的困惑。因为有些日历之间相 差非常大。西方国家使用的是j u l i a n 日历,中东国家使用的是h n a r 日历,以色列 使用的是g r e 9 0 r i a _ i la n dh c b r e w 日历,而阿拉伯国家使用g r e g o r i a na i l di s l a m i c c a l e n d a r s 。 1 3 6时间格式 各国在表示时间上也采用不同的格式。下表列出了常用的几种格式。 f 国家时间格式i l 美国 8 :3 2 p m 9 濑江大学硬士学位论文 1 3 7图标 g b 0 4 a i “一硝垒球他男瑟组件库 i 加拿大2 0 :3 2 瑞士 2 0 ,3 2 ,0 0 德国2 0 3 2 u 五f 挪威 2 0 3 2 袋3 不国善家瓣鞋簿鼗式【l 】 圈标是一种有效的向弼户传达倍患的赛西元素,偿是不同建蔽鞠文亿的靥 户对于同一个圈标可能有不同的理解。例如,在苹果电脑的回收站阔标,本意是 个垃圾桶的形炊,但是对予英国用户来说这个圈标甏像是一个馈麓嚣不是一个 垃圾橘。这缀西能导致英国掰户跌为这个糊标是表示发送电子邮传瀚功能造成用 户误操作,丢失数据。对图标的不当使用,还会有更严重的后果。肖些图标在某 魑文诧中有蓉禁忌或者宗教靛特定含义,较传使用图拣应该考虑到务遮用户的文 化。霞此在软佟发布之前,定要经过严格的检溅,否蹙| j 可能孳| 起嘏严重的后采。 1 3 8文本方向 在希伯荣和阿拉伯语中,文本是从衣向左的,而矮中的其他语言例如英文 却又是自左向右的。因此这类语言被称为双向语言( b i d i f e c t i o n a l g i i a g e ) 。 全璩凭豹软臀豢统必须蹙爝这类语言耱攥户皴好难备。蔽来谨,巍这些建区送 行本地化的软件界面是一般软件的镜像。 l o 塑莲查兰璧主堂毽堕茎笾幽! 二舆坚苎塑垒篓垂笙堑蹩 第2 章较件全球纯的标准瑷及工舆 软件的仝球化技术已经发展了许多年,进入比较成熟的阶段。由全球化带 来的挑战和其中的巨大商业利益使得务大软件厂商都投入了大嫩财力对全球化 进行研靛。秘麓在各种主瀛软件戚用平台上已经商许多全球化标准以及帮助软件 实现全球化的工具包和类库。在途一章中我们对目前比较流行的全球化标准以及 软件工舆包和类麾傲一个简单的综述。 2 1戮珏l d e 糖壤 探讨软件的全球他,就不得不提列u n i c o d e 标准。软棒全球佬磁蓟的第一个 黧大障磷就怒编码系统的不统一。【2 】 本质上,计算祝系统掰处理的内容怒数字。霞而任何字母躐其他的字符程 诗算氍中酃楚热一个数字编码表示靛。在v 髓i d e 密璐之魏,荛了支持多荦孛语言, 在计算槐墨存在鬻数香稗编婚系统。缓楚没有一令编弱系统可戳鞫隧容缡所有靛 字镣:恻妇,单攀欧州裁霪凄好凡耱不瓣魏编码系绞袋毫捶其掰奇嬲语袁。假设 我们震熨在张列页上越时基嚣中文裁鼹挝馆嚣,这在u 越c o 波现之翦,会非 常滩以实现。众多编码系统之阅常会发生渖突,就是说,楣同朗一个编码在不同 系统中代表不同的字符,或者是使用不同的编码代表同一个字符。台计算机( 特 剐是服务器) 酃需要支耨许多不磷豹编码,但是,当数据在这些不同的编码系统 之间进彳予传递时就很容易被损坏。而u n j c o d e 给每个字符提供了个唯一的编码, 无论是仟么系统平台,茏论是什么程序语言,无论怒什么语言。u n i c o d e 标准b 经被软络韭器的蒜大厂菇蕊广泛采弱。铡魏:a p 辩e , h p ,臻m , j u s t s 轴t e 硪, m i c f o s o f l ,0 f a c l e ,s a p ,s u n ,s y b a s e ,u n i s y s 和箕它许多公司砉加入了m i e o d e 联攫。 基魏u 强l c e d o 楚软终垒球纯技术最簦爨也是爨基奉豹檬准。咒乎获鸯毅赘技 术标准郡声骥支持u n i e 傩e ,捌如x m l j a v a ,e c 凇s c f i p 0 a v a s 翻p t ) ,l i ) a p , c o r b a 3 0 ,w m l 等等。现在的主流操作系统,所有最新的浏览器和其他软件 浙江大学硕上学位论文g b 0 4 a j 缸一a j 缸全球化界面组件库 产品都支持它。因此在w e b 应用程序( 不仅仅是j 2 e e 应用程序,也包括其他平台, 例如n e t ,p h p ,) 中使用u n i c o d e 会比使用传统字符集节省费用。使用u n i c o d e 能够使软件产品跨越平台,语言和国家,确保数据在许多不同的系统中安全的传 输。 2 2c o m m o nl o c a l ed a t ar e p o s i t o r y ( c l d i up r 哪e c t 要支持使用不同语言的用户,软件系统不仅需要使用经过翻译的文本,而 且需要根据本地的文化习惯进行调整。例如:数字,日期,货币格式,度量衡系 统,字符的排序,周末的界定,等等。在计算机系统中,用一个标识来指定上述 一系列文化习惯,用以服务于符合这些习惯的用户群体。这个标识就是所谓的 “i d c a l e ”。 目前大多数操作系统和应用程序都维护了它们自己的l o c a l e 数据,用来支持 不同地区和文化的用户。但是这些数据常常是不完善和不一致的。在互联网环境 中,当这些软件和系统协作时,就会因为这些l o c a l e 数据的不一致而产生问题。 c l d r 项目的出现就是为解决这一问题。c l _ d r 项目的目标是提供一套通用的 基于订l 的l o c a l e 数据交换标准,可以被应用于软件系统开发,c u ) r 项目负责 收集存储以及发布这些特定格式的l d c a l e 数据。软件系统使用c l d r 的l 0 c a l e 数 据,可以避免对l d c a l e 理解不一致造成的错误。【3 】 2 3 现有全球化类库简介 2 3 1i c u ( t h ei n t e r n a t i o n a lc o 加p o n e n tf o ru n i c o d e ) i c u 是一个成熟的,被广泛应用的c c + + 和j a v a 用户u n i c o d e 支持以及国际化 和全球化类库。实际上早期的j d k l 1 中的全球化a p i 就来自于i c u 4 j a v a 。此后 i c u 继续开发,目标是做最好的u n i c o d e 和全球化支持软件工具包。i c u 具有很好 的可移植性,它确保用户的应用程序在所有的平台( 包括使用j a v a 和c c + + 平台) 上的应用程序都有相同的行为和运行结果。i c u 始终同步的支持最新版本的 u n i c o d e 标准,包括了用于支持g b l 8 0 3 0 ,h k s c s 和j i sx 0 2 1 3 的标准补充u n i c o d e 1 2 浙江丈学硕士学位论文o b 0 4 捌娃一a j 躯垒:球他界面组件席 字符集( s u p p l e m e n t a r yu n i c o d ec h 舡a t e r s ) ,它提供的飙体功能包括: 文本:u l l 油d e 文本处理,字符集转换; 努耩:u 嫡c o d e 正嚣表达式;字符,擎游帮厅逮要; 比较:语言相关的字符串排序和查找; 转换:文本的规范化,太小写字符转换; 王胱越e :丰富斡【胱蘸e 数摇窝资源爨结梅; 复杂文本布局:阿拉伯,希伯来,印度,泰语等支持; 格式化与解析:多种翻历格式、时区、日期、时阕、数字、货币和信息的 穗式亿与输入解携。【4 】 2 3 2 j a v a 国际化( 1 1 8 n ) a p i j a v a2 平台提供了一系列用于开发全球化应用的a p l 。 这些a p i 基于 u l l i c o d c 标准,用于处理文本,数字日期,货币以及用户自定义对簸的全球化。 文本表拳 j a v a 语裔纂于u n i c o d e 字符集,而鼠j a v a 中的一蠛瘁实现了u n i c o d e 标准。 j a v a 中的c h a r 数据类型就表示一个u t f 。1 6 的编码单元。无论j a v a 程序的源代码是 翅侍么编码夔潮妇a s e 露,差s o 岛8 5 9 一1 ) 簸磊帮会霰转羧戏u 霹二i 6 绩疆霉送牙楚 联。 基于l o 黼i e 模型的本地化 在j a v 8 警套上,一个孙蕊裁是一令谗言蠢这区豹特定缝合熬辍谈。王艘a l o 本身并不包禽其体的相关信息,而是每个对l o c a i e 敏感的类来维护自已的相关信 息。接受c a l e 参数的对魏自己决定如何处理l d c a l e 信息。当它没有找到跟要 求瓣王艟越e 稳薮瑟麴数据瓣,哥殴采露嚣遮戆疆裁寒毽耀与要求戆至黼越e 最接近 的l d c a i e 。例如,一个f r - e a ( 表示一个语亩为法语,地区为加拿大) 的h c a l e 被传 入c a l e n d a r 对教,但是如果c a i e n d a r 对象没有为这个l 0 c a l e 做本地化,则它可能回 邀至l 疆这令b 翻e 上去。 本地化资源 所有i _ d c a l e 相关的类都需要访问针对l o c a l e 的本地化资源。将这些资源按照 浙江大学硕士学位论文 g b 0 4 a j 疆一脚缸全球化界面组件库 l d c a l e 分类并和程序的业务逻辑分离可以使设计更加清晰,程序更易维护。在j a v a 中这些资源就被抽取成为一个个资源包( r e s o u r c eb u n d l e ) 。资源包包含l d c a l e 相 关的数据,当程序需要一个l d c a l e 相关的资源时就会从相应的资源包中装载。例 如,当程序界面需要显示一个字符串时,代码中使用一个k c y 值,程序运行时就 会根据当前用户的l d c a l e 从相应的资源包当中读取与此k e y 值相对的本地化字符 串再显示在界面上。这样一来,程序代码就可以独立于当前用户的l o c a l e ,不用 将本地化字符串硬编码在代码中。通过这种方式,j a v a 程序可以更加容易进行本 地化,同时处理多个l 0 c a l e ,也更易于维护( 例如当需要将应用程序进行其他语言 的本地化时,只需要添加相应l 0 c a l e 的资源包) 。【6 】 2 3 - 3o r a c l eg d k o r a c l eg d k 是一套由o r a c l e 提供的一套j a v aa p i ,它为应用程序开发人员 提供了框架来开发全球化互联网应用程序。g d k 对j a v a 中的现有全球化功能 进行了补充;它使中间层j a v a 应用程序与o r a d e 数据库服务器之间的本地化 信息行为得以同步。【7 】 o d k 为j a v a 提供的功能可以归为两类: 用于j 2 e e 的g d k 应用程序框架提供了创建基于j 2 e e 的互联网应用程 序的全球化框架。该框架封装了全球化编程的复杂部分,如确定用户本地化信息、 维护本地化信息的存储及处理本地化信息。它由一组j a v a 类组成,应用程序可 以通过这些类访问该框架。这些关联的j a v a 类使应用程序能够基于该框架来进 行编码,从而可以通过声明的方式扩展全球化行为。 g d kj a v aa _ p i 提供了j a v a 应用程序开发支持,并与o r a d e 数据库服务 器提供一致的全球化操作。a p i 具有可访问性并独立于g d k 框架,从而使非 基于g d k 框架的独立j a v a 应用程序和j 2 e e 应用程序能够访问j a v aa p i 提供的独特功能。j a v aa p i 提供的功能包括数据和数字格式化、排序,并且其 处理字符集的方式与0 r a d e 数据库相同。此外,还可以通过g d k j a v a a p i 实 现语言和字符集检测技术。g d k 已经在运行j d k1 - 3 版或更高版本的0 r a d e 9 i 和o r a d e l o g 数据库中进行了认证。 1 4 浙江大学硕士学位论文g b 0 4 脚a x a j a x 全球化界面组件库 2 3 4w e b 应用全球化 本节介绍一些有关w e b 应用程序全球化的实践,以j 2 e e 平台上的w e b 应用 为背景。 1 探测功c a l e 和编码 判断客户端发送来的请求的i d c a l e 和编码格式。在j 2 e e 平台上l o c a l e 的含义 比j 2 s e 的单机应用程序要复杂。例如w e b 应用的默认l 0 c a l e 是由其运行的w e b 容 器的默认l o c a l e 决定的。但在一个分布式环境中,这个默认l 0 c a l e 可能在不同的 容器间都不一致,从而使用这个系统默认l d c a l e 不是一个好的全球化编程实践。 2 使用j 2 s e 的全球化a _ p i ,这些a p i 包括,资源包的使用,消息格式化工具, 以及日期和日历相关的工具类等。 3 错误信息和日志信息的全球化。错误信息向系统管理员和终端用户提供 了出错的情况的描述。对这类信息进行本地化是w c b 应用的本地化的一个重要部 分。因而也是设计应用程序的出错机制时必须考虑的问题。w e b 应用程序作为 j 2 e e 应用的体系架构中跟最终用户接触的表现层,需要向用户提供经过本地化的 信息。在j 2 e e 的层次之间使用j a v a 1 姐g e x c c p t i o n 的子类来传递错误信息。异常对 象中不应该包含具体的本地化的信息,而是应该包含错误的详细信息。w e b 应用 程序得到该异常对象之后再根据这些信息来生成合适的本地化的信息显示给用 户。例如,假设当用户创建新帐户失败( 因为此帐户已经存在) 的信息。可以使 用一个j s p 页面来根据用户的l o c a l e 来显示这个出错信息,而异常对象中只需要 包含出错的用户帐户即可,不需要包含具体的出错描述信息。【8 】 2 3 5w e b 应用界面的全球化 w e b 应用界面的全球化是整个w e b 应用程序全球化方案中的最重要部分。 在设计应用界面元素的时候必须考虑这些元素的全球化问题,这些界面相关的元 素包括:j s p 页面,辅助用户界面显示的j a v a b e 卸s 以及用户自定义的t a g 。在设 计这些元素时,需要充分考虑到它们的外观和行为在不同的i d c a l e 中的区别。例 如,一个用于对数据进行排序的自定义t a g ,需要根据当前的功c a l e 使用恰当的字 浙江大学硕士学位论文 g b ( ) 4 j a x a j 职全球化界面组件库 符串排序函数对数据进行排序;又如,j s p 页面中显示的数字,日期,货币等信 息必须根据当前的l o c a l e 进行恰当的格式化。通过使用j 2 s e 的国际化a p i ,或者 i c u 4 j 的全球化类库,可以辅助这些组件的全球化。 作为j 2 e e 平台的主要显示技术j s p 页面的全球化通常有两种策略:一种使用 本地化资源包根据不同用户的l o c a l e 对j s p 页面进行本地化;另一种是针对不同 的l d c a l e 编写和维护不同的j s p 页面。为不同的l o c a l e 编写单独的j s p 页面更适用 于在不同的l o c a l e 下,页面的结构和显示完全不同的情况。而使用本地化资源包 的方法常见于用于显示出错或者提示信息,或者是在不同的l 0 c a l e 下仅仅是显示 内容不同而页面结构保持不变的情况。目前看来,大多数应用都采用了前一策略, 为不同的l o c a l e 做完全的定制页面,成本过高,更新和同步应用程序的代价很大。 尽管已经有一些已经建立的开发全球化的w e b 应用实践,但是长久以来一 直缺乏一个可以提供可以直接使用的w e b 界面组件库来简化w e b 应用的全球化 开发。下一节,我们就介绍由i b m 开发的用户界面组件库g l o b a lb u s i n e s s0 b i e c t 。 1 6 堂坚查兰堡圭堂垡婆苎璺型竺二垒婪塞鹜些墨查望壁璧 第3 章q b o 一全球纯w e bu l 组件库 3 1什么遐g b o 在前文叙述的j a v a1 1 8 na p l ,i c u ,o f a c l eg d k 等全球 艺类鼯孛都有相互 懑叠又有相互区别的功能。总体上说它们提供了一必底层a p i ,可以辅助开发人 爨更鳄豹进行全球位开发,但是都没有解决w 西开发孛热户器蕊的念球纯。 用户界麟的全球他通常是一个应用程序自己来究成的,因为殿用程序的界 酾是高度个性化的。但虽然每个软件的界面都不相同,我们仍然可以发现用户界 灏孛有许多可以提取重用戆笼素。相当多懿痘震程穿酃骞公有的趱户界嚣组 譬, 例如w e b 应用程序中常常融现的用户注掰界面、e l 期时间的选择组件、时区和孱 祭、地区选择组件等。g b o 就是这样一套可以重用的垒球化用户界嘲组件库,它 豹强标是逶j 建提供可敬壹羧使矮豹全球能缝 孛,提瘸开发全球纯w e b 废蠲缒效 率。g b o 将全球亿的信息经过收集,验诚包含在其组件当中,使得w e b 应用的开 发者不必再去收集整理这然通用的全球化信息( 比如国家,地区列袋,时区,日 期格式) 。秘予一敷豹开发卷来说这项强务超出了德翻豹能力范强,既耗费穗力 又容易出错。通过重用g b o 的界面组伟席,将可以便开发人员将更多的精力放在 业务逻辑以及和应用相关的特定信息的本地化上。 3 。2 g b o 髓够解决瀚润蓬 g b o 并不是一个旨在解决所有全球化问题的类艨,它定位于摁供解决w e b 藏爝孛魏垒球琵赛覆缝僚采麓健全球纯开发。下嚣我翻其俸夯绥具体楚哪些拳矮 的界面组件可以被抽取成可重用的全球化组件: 日期和时间选择:在w 曲应用中缀多地方都需瑟用户选择日期謦时间。而 不鬻逮区不鞫语言帮文纯辩予辩闻兹穆蔑,是不霜的。 c a i 蛳d a n 日历:在鬻求用户输入e j 期时,另种常见的输入方式是使用 一个弹出式的翻历。但是绝大多数的现旃的弹出式目绣都没有做全球化,无论用 1 7 浙江大学硒士学位论文 g b 0 4 蔫扛一筠最x 垒球化界面组件席 户是否设定了他的l 0 c a l e ,稽到的都是样的日历。假是实际上日历信息在不同 的文化中是不问的。在有的翻家,一周以阁臼为开始,瓶有的国家魁周一为一周 懿开始。不网语言耱星鬟凡,胃份静翻译氆各不相同。不同国家傻溺的霾期穰式 也不一样。 地址的输入和显示:输入地址是一项在w 曲应用中常月的功熊。在不同的 文亿中,遣羲瓣格式,包含瓣条霹都是不淘的。重家列表鲍名称需臻翻译,鼓及 每个国家的行政地区层级都是不同的( 例如中国主要行政区划分为省市,而有的 豳家没有省这层的概念) 。棘这些信息通常都是独立于应用的商般逻辑之外较 洚独立懿功麓,因此可戳接象成为一个燎缝输a 组停。 姓名的输入和显示:不同的文化中的姓名和称谓是各不同的,例如中国人 躺名字是由娥釉名组成豹,姓在前面名谯后;在英文中又是由名,巾阊名,以及 簸组成的。不闽莺家对入豹尊称氇是不阕黥,皖魏程审园,逶鬻簿称久秀先生, 女士,或者小姐,而在英豳又可能加上d r 。涉及的数据包括姓名错字段在不同 谗言中的翻译,姓名各字段在不同文化中的蹶痔,不醚文壬匕中尊称的内容以及翻 译。姓名的输入鬻觅予w e b 斑用中震户信息的登记。特潮是电子赢务瓣站,铜熟 定购图书机隳等应用。而她名的显示则谯许多w e b 应用的管理界面会用到。 时区_ 帮熊艰的选择:巍然这一选择完全依赖于不阉的i 联:a l e 。这一功镌涉及 的数据程摇,赞币穰表,嚣雩送两表在不阏语言中的翻译。【9 】 上述这蟪功能都独立于应用程序的商业逻辑,国于抽离。因此g b 0 为这些 功能都提供了相应的界面缀件支持。 3 3g b 0 所支持的w e b 界面技术 g b o 要支簿圭滚j 2 e 蠢平台上戆w 曲成蠲程亭,玄魏必须支持j 2 嚣基孛戆主流 w e b 界面应用技术。目前g b 0 提供了j s p 和j s f 两种版本。下面我们对j s p 和j s f 做一个简单的介绍: 3 3 1j 8 v as e r v e rp a g e s 在j 2 e ew e b 应用孛最常用也是最藜零的赛匿技术就是j s p 。j s p 允许w e b 开 1 8 遂鋈茎兰篓兰兰垒垫塞望剿坚二受壁鍪垄蠢鲞望整塞 发帮设诗者抉遮群发和缎护动态鹃溺夏。强英 懿a v a 技术一祥,l 辖是平鸯无关 的。它将用户界面和内容生成逻辑分开,从而使页面设计者在修改页面布局的时 候可戬绦持动态内容生成的彳弋码不变。 j s p 同时支捧通过囱定义t a 鬈类库的方法来扩展其功能。通过使用j s p 的标准 标记库以及表达式语言j s p 的开发越来越简单。j s p 使用紫似于x m l 的标记语言 寒生成输出页嚣。但是本质上j 印技术是橡建在j a v a s e 捌l e t 技术之上的,j s p 靛标 记语言会被编译成s e r v l e t 。j s p 和s e l e t 一起组成了j 2 e e 平台上的w e b 部分。 然鬻,j 印在缛至l 警逮应震鹣藤霹凌毒荚运蘧。j s p 貔够在酣鹾王蕊辽孛嵌 入j a v a 代码的功能使得编写s e r v l e t 更加简单。但怒直接将商业逻辑写在j s p 页面 中,使褥瓣页设计者稻稷滓开发蠢都要修浚同一令文件,这往往造成了瀛蘸( u l 的设计师通常不w 能懂得j a v 玳码) 。同时将大避的复杂j a v a 嵌猩蛳m l 页面中 也使得燹面交得混乱和难以阅读、维护。因此入们开始使用j a v a b e a n 来封漩商监 逻辑,从瓤将原来直接雩在j s p 巾的j 弋码转移到妇v a b e a n 中。两聪来,m v c 模式 逐步被多数w c b 应用程序采用,j s p 在这种模型中,属于视图部分( v i e w ) ,主 黉负责数据魏要示。 在燃v e 摸妓下,囊一令s e 摊l e 充豢控划嚣,请求救提交到 控制器并运行商业逻辑,然后生成数据模型交给j s p 显示。 逶避使羯m v c 模式黪瘫塌穰架聂发豹w 两疯麓程疼,褥,s 嚣蘑骰为筏图表 现层部分,用于数据的鼹示。但是由于j s p 技术的仅仅实现了动态瑚m l 内容的 生成,它没有程筒支持巅级用户弊西的熊力。霞院弼采将j s p 技术和萁传集面系 统中的盥示层技术( 例如j a v a 的s w 如晷s 、w 1 ,w i n d o w s 的桌面系统类库m f c ) 糟眈,使用j s p 技术写出的w e b 应用界面的用户体验是不髓的。以j s p 为蒸础,要 笃出高级的用户界瑟仍然嚣要丈攫的复杂编程王雅。例如器瑟上缎 孛的生愈周期 管理,组件和后臼数据的绑定等等复杂操作,这些都需裂开发者自己完成。 3 3 2j a v as e r v e rf a c e s 针对上一节中提出的j s p 技术在高级用户界两上的不足,j 2 e e 平台又以j s p 为基磁,提出了i 辩as e w e f s 。 j a v as e r v e rf a c e s ( j s f ) 是为j a v aw e b 应用而设计的枢架。它的设计目标是为 1 9 渐淡大学硕士学位论文 g b 0 4 坞a ) 【一a j 积全球亿嚣蕊组释库 了篱纯开发运嚣在i a v a 艘瘸羧务器上豹w 西应焉以及辘爨应用稷廖将图形爨嚣 更躲到熙标嚣户端。j s f 的易用性体现在如下几个方嚣: 提供一系列可重塌缝件简纯图形界磷开发 筒纯了虚用程序数据到隧形界面的传递 麓让了w e b 应用程垮图形组传状态的维护 提供了一个易用的模型能够将客户端事件绑定4 服务器端代码 竞诲矮户构建及囊胡鑫翱豹爨覆握搏 j s f 的核心体系是独立于特定协议以及标避浯畜豹,然丽在实繇应用中它主 要的且的是解决 r r m l 客户端和使用j s p 、s e r v l c i 技术舶w e b 应用程序面临的一系 列廊题。这类应用程序蛉特点就是基于表单的,用户交互由多个h 喇l 页越来完 成。j s f 解决了这袋w e b 应用所需要面对的些问题: 跨请求的陶形界面组件的状态维护,霞为基予寝单的应用程序多个页面之间由h t t 口 请求分割,组件辩要簌跨越多个请求的页垂交苴中维护一致的状态棚当困难。 封装了溯览器客户端标记语害的医剐,便应用程序翁于支持多种浏览器 支持麓杂的表攀簸瑗( 多页瓣表肇,夏嚣蠹多表攀等) 提供了对客户端攀件:i i 行响应的服务器端事件模型 支持将请求数据( 字符串类型) 秘黻务器端数据对象( 标准j a v a 辩象) 之阉盼转羧 通过对组件事件的响应完成疆蘑跳转导靛 3 3 3 g b o 对j s p 和j s f 的支持 为了与现有驰j 2 e e w 。b 应用程穿茏缝集成,g b o 馒建了j s p 豹叁定义掘g 簿 的方式嵌入到j s p 和j s f 豹页面当中。 3 。霹 g b 0 的设计絮稗 为了让娥件痒具裔更好的熏用性,它采取丁层次化媳设计理念用寒分隰本 地化数攒,用户数据以及与程序无关的界聪风格和布髑。下图撼述了g b o 的屡次 终构: 浙江夫学鹾士学证论文 g 珏粕镯瑟一筠馘全球纯葬藩缀舞瘴 藤懑瓣瓣鬻黥麟淤瀚灞瓣蕊懑鬃瓣麟黪努 w 曲成用程序 镤,;蒸乙。 蕴箨袭现屡 翟l 潞。懿层次铯设计缝擒 上图中g b o 被分为三层结构,包括: 3 4 1本地化数据层 本地化数据层封装了上层缀件使用的数据,比如国家、地区列表的翻译, 熬名格式,薅区翔表黧译,各穗爱萃褥譬等等。 g b o 的全球化数据来源主袋来自前文所说的u n i c o d e 联盟的c u ) r 项目,同 时包括g 黔o 鑫己收集并遴过了l b m 分布猩邀赛各地静2 3 个豁译牵心迸幸亍瓣灏译 测试以保证这些数据的准确性和权威性。 c i m r 项目的数据懋以x m t 格式存储的,为了提升访问数据的速度稀减少 不必要的数据冗余,g b o 垮最终鼹要的数据都夺救在j a v a 类中。因此c r 的 x m l 数据先通过x s u l 的转换为o 所需要的数据,再根据这些数据产生g b o 运 行鞋掰餐蠲豹l 科a 类。 3 。4 2逻辑处理层 逻辑处理屡淘上提供了一些基本豹缡程接霹寒访添举地纯数据共生成与趸 户界面无关的中间结果。逻辑处理层的接口为铷a v a 实现,不依赖于具体界面实 渐进灾学碳士学位论文曲0 4 蹦“一a j “垒球化羿器缎髂麾 现技术。逻辍处理搿嫩存在德得g b o 姻数据处理能力霸组 譬熨现分帮,鼯低了棱 心数舞楚理瓣缮俘安现瑟的鹅合度。正蹩交予这静实瑗,在亨包发毒时,逻辑处 理艨和数据屡被打猩一个包中,可以独立于缎件表现层使用。这使褥用户可以熏 用g 酚。酾数据以及逻辑处理藤来构建鸯已的应用稷黪,也楚本文中我们重用 g b o 的本地他数据开发g b 0 4 a j a x 的组件痒缒基础。 3 。4 。3缎件表现层 缀传表现层透过不阉爨蘧实瑗技术将逻辑处理艨的中鲻结果遴道一个蹙 索4 模扳最终生成目貅输出。g b o 组彳擎库可以支持多莘申不弼用户界面技术平台,达 到数据最大程度豹煮超。比皴镑对寮疆应廷程黪可以提供鏊予s 辨,s w i 盎鐾器嚣 技术的鳃件朦,而对于w e b 皮用则埘以提供旗子j s p 釉j s f 的缌4 孛。 强蔫g 韵鼢筵供了支持l s 争帮舔秘鬟蘩的旋耀程序豹组 孛。下罄震示了建予支 持逸两种不同平台的6 国0 组件表现滕的设计。 皑、。o j 蛩i ,”j 1 罐曩。等i ,一托一i :髯t 冀嶷瓣瓣蔓j “、。u i 强囊蒜裂矗。籀。;* j j 强、。 a p 掰b a l j o n 鬻”嗍霪黔蠖嚣蠼劳= i ! 静 。;氍鬻嚣蠢鬻懋辩弹一戳女蠛霸黼戮瓣鹾: ,女薹;| l 鳞麓誊登x 毫+ 。强 s f “缸l 蠢内蘸0 8 p t 潞 。澜辫霪鼯测鳓潮瓣蠹銎黪绺“ j l s p t 姆 蘧黪黑歹霪熊絮黼罗i 聃d d e l q 窭 蕊壤辩瓣箍自黪 黼拈a 惦 ? _ m 螋堍蜘 “一“。1 4 。 篇女燃蕊鏊搿l 然鬻粼勰渊粼然燃溅燃嚣粼粼渊燃辫燃瓣爨;棼辫7 灏姻鹾蜊妇婶蛹 圈2g b o 用于支持j 鼎髑j s f 静组件表现瞪设计檠鞫 获这张强中霹激看爨,藤子支持j s p 帮l s f 靛缀传表瑷瀑帮霪瑙糯霹黪楼板 季一 浙娃大学颟士学位论文 g i 0 4 棚一两“垒球纯界蕊组件蓐 极涮秘数据攘墼。其是程嵌入弱寂楚程黪露分别必j 瓣豹哭嚣秘,s f 懿夏霆提供了 翅斑豹编程接口。这样的设计使绳使用途鼹静平螽上的应用程序使用g b o 的方式 保持最大程凌的致,纛g b o 组件所表现出来的行炎也能够保持一致。使得当 个使用j s p 开发的应用穰序希望移植到j s f 框架内时,跟g b o 关的代弼,将几乎不 用改动。 当然,e 捂于j s p 本痨不瑟备对于界雠缀件的生命掰期管理等翡髓,g b o 提供 额外的工具炎来帮助处耀包含g b o 组件的请求。 3 。5g b o 的布局横嘏极制 图形界颇组件的一个煎要需求就熄它最终要融含到用户的应用的界面当中 去。w e b 应麓程寄和传统惑蠲程穿酶个溪夫不瓣就是,w e b 寂震稽序静赛面没 脊统一的风格。每个w e b 应用的为了遮到荧蕊,突出裔己的特饿,界面风格都会 怒方设法独树辍。这氇就楚g 嚣o 新戳蔷漆的勇个难题,露餐使缀律静赛蟊风 掩敷毒鼹糍够其蠢蹇度珂定鞠瞧扶恧霹戳被不瓣爨嚣越掇魏w e b 应羯镬弼。进 g b 0 缀转移w 曲纛震巾瓣其健彝藤元蘩蠢缝集残。 为此g b o 为不l 司类型的组件定义了多釉布妫摸扳。一个模板就是一个包禽 斟m l 标记诿害翻g b o 国定义的占位移艇缒成敢文 牛。通过这个模扳,g b o 的组 件可以使用不同的布局与界面风格,同时因为模板的定义符合标准的胛m i 标 记,w e b 应用可以自定义模板从而定制g b 0 组件的外观和布局,使g b o 组件更加 符合w e b 应用特裔酶布箱和风格黉求。 下面通楚姓名组件的例子介绍g b o 的模板实现: 简单的说,o n a m e 的模税就楚一浚包含g b o 蠢位符的联糯缎薷。可蔽 毽含任黎豹联粼t 栈羁,c s s 襻式表鼙等蠹容。鼬0 缝终毽含一个模疆撼经可以 攒定该缝 串鬻要使用瓣模缀。( 国o 蔻每个搜焉哥戳篌耀搂摄静缀锋提供了一系列 预定义救楼板。一f 殛熬代码段裁敷自g b o 姓名缀件蟾预定义模叛n 羽l 。 可以看到这个摸投实鼯上就是一个惫会两剿的联r m k 瑟遗个袭捺中包会 了些诸如b o n 触旺王翩腿l o 和g b o 懒e b 姻u t :o 的譬符串,这魑字符串就 是g b o 占位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论