`

JSF+AJAX企业级开发之路——来自Sun的高级工程师Ed Burns的精彩演讲【一】

 
阅读更多

JSF+AJAX企业级开发之路——来自Sun的高级工程师Ed Burns的精彩演讲【一】关键字: enterprise grade ajax and jsf 序这是一篇很长很长的技术性演讲,但你无法从中得到一行代码。原文:http://www.theserverside.com/tt/knowledgecenter-is/knowledgecenter-is.tss?l=PodcastEdBurns 本周我推荐来自Sun高级工程师Ed Burns在TTS(TheServerSide)上关于JSF整合AJAX的精彩演讲.Ed Burns 作为 Sun Microsystems 的高级工程师,自从 1994 年以来,Ed 参加了各种客户端和服务器端 Web 技术的工作,包括 NCSA Mosaic、 Mozilla、Sun Java Plugin、Jakarta Tomcat 以及最新的 JavaServer Faces。Ed 现在是 JavaServer Faces 的联合带头人。因此Ed与先前我介绍的denny不同,前者来自于官方是规范的制定者,后者来自于“民间”,是规范的实现者,由此可见Ed才是真正直接影响JSF的关键性人物. 现在我简单介绍一下本次演讲的一些背景:自从第一个web应用程序Struts于2001年6月发布开始,Java世界至今开始了长达7年的框架大战.JSF作为其中web 框架家族的一员,脱颖而出,被JCP青睐,荣登官方web标准.(JSF的主要架构师有Struts作者Craig R.McClanahan).仍然JSF一直发展的很不顺,Struts长期牢牢占据着市场份额,成为现实中的工业标准;而EJB2.0的没落,Spring,Hibernate的兴起更是让所谓的官方标准长期备受冷落.当Java开发者们为SSH整合而乐此不疲的时候,Sun带着它的JavaEE5又重新杀了回来,EJB3.0+JSF1.2(或EJB3.0+Seam)作为官方推荐的超级组合仍然没有从根本上撼动强大的开源社区,SSH仍然是Java企业级开发的第一选择. 但是!!!技术总是在不断向前发展的,我是一个Struts2的忠实拥护着,但最近也对Struts2感到有些不安,原因是Struts2是在Webwork的基础衍化而来,但你如果使用过Struts2的话,你会发现它其实与Webwork几乎没有什么区别,也就是说Struts2相对于Webwork没有根本的突破,最重要的是Struts2最近发布越来越慢,到今天为止Struts2.0.11版本已经发布大半了,仍然没有半点声响.而JSF最近却动作频频,MyFace新版本的发布,ICESoft无比强大的JSF组件的发布,以及Seam2.0中的Web框架就是JSF证明Sun这一次绝对是玩真的了.在我翻译的文章中《[翻译] Rod Johnson 为什么没有公司大到足够去拒绝开发人员他们所想得到的东西》,表明Sun越来越看重社区的力量,活跃的社区才代表你的技术真正被人接受认可,而并非几个少数寡头专家躲在“象牙塔”里研究那些过于复杂笨重的高深技术,所以Sun力挺JSF的真正原因还是想吸引大量的开发人员来壮大其社区,实际上Sun除了Java语言本身外,没有什么特别成功的东西:我们开发最常用的是Eclipse,技术是SSH,应用程序器开源的是Tomcat,商业的是Weblogic或Webshpere.但不要以为Sun真会傻到看不这些缺点,Soralar10, Netbeans6.0的推出,EJB3.1规范(草案快要出来了)的简洁,应用服务器GlassFish的支持,还有刚刚购买的MySQL,你会发现Sun这一条开发产品线非常齐全,而且比先前的有更明显的优势,所以Sun现在缺少的不再是技术,而是“天时,地利,人和”中的人和,如果挽回当年的EJB2.*之痛,还是需要时间的. 在我的另一篇文章《从职位中预测2008年Java框架之争》里,JSF如今已经有所起色了,相对于EJB3.0,JSF似乎更容易得到推广.JSF除可与EJB整合外,还可以与目前最流行的应用程序框架Spring进行整合,并且无论是从组件数量,还是供应商的支持来说,JSF都是最有优势的.因此本次演讲的作者Ed Burns以Sun的身份,不遗余力的借助于近年来最火爆的AJAX技术,向开发者们推广JSF.因此JSF作为Sun大举进攻开源社区的一个切入点,如果还能再加上EJB3.1 Lite(EJB3.1子集,可直接布署在Servlet容器上)的话,无疑会对当前的主流技术造成很大的冲击.但无论如何,作为Java Web开发人员,也许你根本对JSF毫无兴趣,或者觉得这只是一个官方的炒作,但了解技术的趋势总是需要的.那么我们开始正文吧。正文我本次演讲的目的旨在AJAX和JSF的整合。不管你选择什么版本的JSF,与AJAX的整合对于构建企业级应用程序来说是一个不错的选择。我会给大家展示这两种技术结合的方法,并且为了此次演讲,我特意增加了一些新内容——因为在这之前,已经有了AJAX+JSF的实际测试方法,但这种测试方法出现并不只局限于与JSF整合的AJAX应用,任何AJAX应用程序都可以使用.最后,我还会陈述一下如何评价AJAX+JSF的解决方案.现在,我发现JSF与最初的2001年所处的情况惊人的相似——那个时就已经有许许多多的web框架,真可谓是百家争鸣,而JSF在其中脱颖而出,以绝对优势成为JCP标准.但现在,这种局面再次出现了.在过去的六年,我们始终紧跟时代的步伐,但仍然还有大量的web框架鏖战在我们周围,但是根据从采用JSF技术的网站数据以及供应商为之提供的工具和组件数量来看,JSF还是在不断增长且在市场上仍有一席之地,因此许多供应商也相继推出了JSF+AJAX整合方案.在今天下午2:30的小组讨论中,我和来自ICEsoft的Steve Maryka会一同出席,大家也许已经知道Steve已经推出一套相当漂亮的JSF+AJAX整合方案.届时我会以Sun代表身份出现,当然除Steve外,还有很多知名人士,我会将他们的姓名列在幻灯片上.但不管怎样,本次演讲我只想给你们提供一些信息,以便当你看完这些不同的解决方案后,扪心自问:哪一个方案是最佳的?它有什么特性?这些特性可以满足我的企业要求吗?“企业级”已经是一个被过度滥用的术语了.那么按照我自己的理解,企业级指的是健壮,可伸缩,易于测试以及被业界证明可用性(industry proven)等.它需要被开发人员证明切实可行!JSF满足上述要求,因为刚才我所讲的大量的站点和大量的供应商支持足以证明这一点.另一个关于“企业级”的说法是:易于使用,易于开发,当然也包括易于测试.TDD(测试驱动开发)我的确喜欢,当我在领导团队开发一个JSF实现时,我们所做的一切都采用了TDD,并且效果显著.当然,“企业级的工具”也需要同时能够满足开发人员的需求.这一切往往在职场上扮演重要角色:你会雇用什么样的人才?他们所掌握的技能能够胜任这个开发工具吗?现存的开发工具是否又能满足他们的要求呢?并且最后一点我要强调的是:良好的可扩展性观念.当你所遇到的问题越来越多时,你所依赖的解决方案也要不断的提供抽象来解决这些不断增长的问题,此时JSF作为一个基于组件和多个扩展的解决方案,支持抽象和组件化满足了可扩展性.这就是我所定义的“企业级”概念. 那么我所指的AJAX,也在这里告诉给大家吧:web应用程序通过使用异步机制与服务端进行交互,并且动态更新浏览器所显示页面的外观和行为.这么来定义AJAX我觉得还是有稍稍有点生硬.如果你与ICEsoft接触过,你会发现他们已经有了AJAX的“推”模式,使用了大量技术可以异步的将内容通过浏览器发送出去.大家熟知的Comet就是这种编程模式的一种实践,它在与AJAX整合时非常有用,不过今天我没有在幻灯片上提供任何关于它的信息,但是可以很明确地的说:Comet就是为与AJAX整合,当然也包括与JSF的整合. 好了,说完了本次演讲的目的后,正式开始我们今天的议程吧.为什么JSF要与AJAX整合?为什么我会强调AJAX对于web应用程序来说是必须的?JSF和AJAX的整合方法有很多.其中JSF本身的设计和特性就使得它适合协同AJAX进行开发.下面是我们调查到的一些问题和解决方案. 一个解决这些问题的方案来自于Project Dynamic Faces(JSF的一个AJAX扩展)和MCP(Mozilla Control Program,使用JUnit或TestNG来自动测试web应用程序的一个包).这是一个很早就有的解决方案,当时我还在www.mozilla.org工作时已经有些Alpha级的技术来自动测试AJAX程序.现在我手头上有一些关于它的demo,今天我们就在TheServerSide的大屏幕来测试一下.(然后作者在屏幕前,当场使用demo来测试所提到的Project Dynamic Faces和MCP). 所有的web应用程序必须经过下列过程.为确保万无一失(motherhood applepie:美国黑话或政治家惯用的说语),你需要进行数据转换和数据验证,需要一种机制来指定页面流程(page flow),需要整合数据库.当然,你也许还会用持久层技术,比直接就可用的JAP和Hiberante.你还需要alphabet soup,国际化,本地化,以及易于访问.而这说到的最后一点,自AJAX它诞生以来,就一直是开发人员的痛.AJAX的反对者们大声嚷嚷:“好啊,你别想向政府部门卖出任何AJAX应用程序,因为有Section 508法案(请看注1).”的确,有大量的实事摆在了面前,但不管怎么样,web应用程序必须是易于访问的.即使当你在制作页面的时候,你也需要考虑到对多语言的支持,以及基于CSS的样式设计.同样,它还需要保证,不管在单元测试还是系统测试级别上都要求是可测试的.最后一点就是用户体验了,所有这一切来来回回最终还是从开发人员到测试人员然后再到达最终用户. 现在,(列在屏幕上)各种不同整合JSF和AJAX的方法都是为了降低复杂度。我现在为这些解决方案亮起了红灯。(这些解决方案都)有很多的赞成和反对的声音,但亮起的红灯表明反对占了上风。那么我要说的第一个整合JSF的方式就是直接使用Naked AJAX(未经过任何封装的AJAX),你打算一切靠自己,什么都打算自己写! Frank Zammetti写了一本书,他发明了“Naked AJAX”这个术语,指的是你不使用任何AJAX框架,全部由自己亲自来完成。如果你这么做,你会深入的理解AJAX底层的技术,因此很可能你在职业上炙手可热并且这也一切也确实是你想要得到的话,那么我不得不说你太有才了。你必须亲自处理所有的使用XMLHttpRequest的交互请求,这就要求你有扎实的JavaScript基本功,使用SetTimeout函数等以及一系列常人所不愿意使用的技术。到时候,你还不得不去解决跨浏览器之痛,而这种痛苦对于web开发人员来说已经持续多年,最后为了与它有一个了断,你还是陷入了开发自己框架的沼泽之中。第二个解决方案显得更高级些,因为你使用了JavaScript框架。现在已经有大量可用的JS框架充斥在我们周围,比如Dojo,DWR,Prototype等,这些框架也是今天要讨论的内容。但使用这些JS框架的话,你仍然需要去为你的web应用程序编写代码,而且一旦在JSF中使用了某个JS框架(比如说Dojo)的话,你又要去编写那些侵入性代码了。 未完待续........ 注1: Section 508是美国政府基于互联网协会的网页内容无障碍指导原则所制定的强制性法案,它规定了所有由联邦政府发展、取得、维持或使用的电子和信息技术都必须保证对残疾人群的无障碍。

分享到:
评论

相关推荐

    JavaServer Faces 2.0 The Complete Reference.pdf

    - **Ed Burns**:Sun Microsystems的高级员工工程师,自1994年以来一直从事客户端和服务端Web技术的研发工作。他曾参与过多个知名项目,包括NCSA Mosaic、Mozilla、Sun Java Plugin等。目前,他是JavaServer Faces...

    Java Server Faces2.0指南英文版

    - **Ed Burns** 是 Sun Microsystems 的高级员工工程师。自 1994 年以来,他一直在客户端和服务端 Web 技术领域工作,包括 NCSA Mosaic、Mozilla、Sun Java Plugin、Jakarta Tomcat 和 JavaServer Faces。他是 Java...

    sblim-gather-provider-2.2.8-9.el7.x64-86.rpm.tar.gz

    1、文件内容:sblim-gather-provider-2.2.8-9.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/sblim-gather-provider-2.2.8-9.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    基于pringboot框架的图书进销存管理系统的设计与实现(Java项目编程实战+完整源码+毕设文档+sql文件+学习练手好项目).zip

    本图书进销存管理系统管理员功能有个人中心,用户管理,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理,我的收藏管理。 用户功能有个人中心,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得图书进销存管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高图书进销存管理系统管理效率。 关键词:图书进销存管理系统;Spring Boot框架;MYSQL数据库

    2024中国在人工智能领域的创新能力如何研究报告.pdf

    2024中国在人工智能领域的创新能力如何研究报告.pdf

    安全生产_人脸识别_移动目标跟踪_智能管控平台技术实现与应用_1741777778.zip

    人脸识别项目实战

    人脸识别_TF2_Facenet_训练预测应用仓库_1741778670.zip

    人脸识别项目实战

    安全人脸识别_对抗攻击_多模型集成_减少扰动_竞赛方案_Ne_1741779504.zip

    人脸识别项目实战

    Python实现基于CEEMDAN完全自适应噪声集合经验模态分解时间序列信号分解的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了基于CEEMDAN(完全自适应噪声集合经验模态分解)的方法实现时间序列信号分解的具体项目。文中涵盖项目背景介绍、主要目标、面临的挑战及解决方案、技术创新点、应用领域等多方面内容。项目通过多阶段流程(数据准备、模型设计与构建、性能评估、UI设计),并融入多项关键技术手段(自适应噪声引入、并行计算、机器学习优化等)以提高非线性非平稳信号的分析质量。同时,该文档包含详细的模型架构描述和丰富的代码样例(Python代码),有助于开发者直接参考与复用。 适合人群:具有时间序列分析基础的科研工作者、高校教师与研究生,从事信号处理工作的工程技术人员,或致力于数据科学研究的从业人员。 使用场景及目标:此项目可供那些面临时间序列数据中噪声问题的人群使用,尤其适用于需从含有随机噪音的真实世界信号里提取有意义成分的研究者。具体场景包括但不限于金融市场趋势预测、设备故障预警、医疗健康监控以及环境质量变动跟踪等,旨在提供一种高效的信号分离和分析工具,辅助专业人士进行精准判断和支持决策。 其他说明:本文档不仅限于理论讲解和技术演示,更着眼于实际工程项目落地应用,强调软硬件资源配置、系统稳定性测试等方面的细节考量。通过完善的代码实现说明以及GUI界面设计指南,使读者能够全面理解整个项目的开发流程,同时也鼓励后续研究者基于已有成果继续创新拓展,探索更多的改进空间与发展机遇。此外,针对未来可能遇到的各种情况,提出了诸如模型自我调整、多模态数据融合等发展方向,为长期发展提供了思路指导。

    监护人,小孩和玩具数据集 4647张原始图片 监护人 食物 孩子 玩具 精确率可达85.4% pasical voc xml格式

    监护人,小孩和玩具数据集 4647张原始图片 监护人 食物 孩子 玩具 精确率可达85.4% pasical voc xml格式

    根据提供的内容可以构建以下_1741777949.zip

    人脸识别项目实战

    `计算机视觉_人脸识别_Python_OpenCV_树莓派毕业设计`.zip

    人脸识别项目实战

    智慧生产企业园区解决方案PPT(54页).pptx

    在智慧园区建设的浪潮中,一个集高效、安全、便捷于一体的综合解决方案正逐步成为现代园区管理的标配。这一方案旨在解决传统园区面临的智能化水平低、信息孤岛、管理手段落后等痛点,通过信息化平台与智能硬件的深度融合,为园区带来前所未有的变革。 首先,智慧园区综合解决方案以提升园区整体智能化水平为核心,打破了信息孤岛现象。通过构建统一的智能运营中心(IOC),采用1+N模式,即一个智能运营中心集成多个应用系统,实现了园区内各系统的互联互通与数据共享。IOC运营中心如同园区的“智慧大脑”,利用大数据可视化技术,将园区安防、机电设备运行、车辆通行、人员流动、能源能耗等关键信息实时呈现在拼接巨屏上,管理者可直观掌握园区运行状态,实现科学决策。这种“万物互联”的能力不仅消除了系统间的壁垒,还大幅提升了管理效率,让园区管理更加精细化、智能化。 更令人兴奋的是,该方案融入了诸多前沿科技,让智慧园区充满了未来感。例如,利用AI视频分析技术,智慧园区实现了对人脸、车辆、行为的智能识别与追踪,不仅极大提升了安防水平,还能为园区提供精准的人流分析、车辆管理等增值服务。同时,无人机巡查、巡逻机器人等智能设备的加入,让园区安全无死角,管理更轻松。特别是巡逻机器人,不仅能进行360度地面全天候巡检,还能自主绕障、充电,甚至具备火灾预警、空气质量检测等环境感知能力,成为了园区管理的得力助手。此外,通过构建高精度数字孪生系统,将园区现实场景与数字世界完美融合,管理者可借助VR/AR技术进行远程巡检、设备维护等操作,仿佛置身于一个虚拟与现实交织的智慧世界。 最值得关注的是,智慧园区综合解决方案还带来了显著的经济与社会效益。通过优化园区管理流程,实现降本增效。例如,智能库存管理、及时响应采购需求等举措,大幅减少了库存积压与浪费;而设备自动化与远程监控则降低了维修与人力成本。同时,借助大数据分析技术,园区可精准把握产业趋势,优化招商策略,提高入驻企业满意度与营收水平。此外,智慧园区的低碳节能设计,通过能源分析与精细化管理,实现了能耗的显著降低,为园区可持续发展奠定了坚实基础。总之,这一综合解决方案不仅让园区管理变得更加智慧、高效,更为入驻企业与员工带来了更加舒适、便捷的工作与生活环境,是未来园区建设的必然趋势。

    第八届全国大学生创新创业年会-创新创业展示项目集

    本届年会的主题是“青春梦想创新创业”。通过学术论文报告、创新创业项目展示、创业项目推介、工作研讨、联谊活动、大会报告等活动,全面展示大学生最新的创新创业成果。年会共收到491所高校推荐的学术论文756篇、创新创业展示项目721项、创业推介项目156项,合计1633项,为历届年会数量最高。经过36所“985”高校相关学科专家的初评以及国家级大学生创新创业训练计划专家组的复选,最终遴选出可参加本次年会的学术论文180篇,创新创业展示项目150个,创业推介项目45项,共计375项,涉及30个省市的236所高校。年会还收到了来自澳门特别行政区、俄罗斯的13项学术论文及参展项目。这些材料集中反映了各高校最新的创新创业教育成果,也直接体现了当代大学生的创新思维和实践能力。

    人脸识别_实时_ArcFace_多路识别技术_JavaScr_1741771263.zip

    人脸识别项目实战

    6ES7215-1AG40-0XB0-V04.04.01固件4.5

    6ES7215-1AG40-0XB0_V04.04.01固件4.5

    在无人机上部署SchurVins的yaml配置文件

    在无人机上部署SchurVins的yaml配置文件

    uniapp实战商城类app和小程序源码​​​​​​.rar

    uniapp实战商城类app和小程序源码,包含后端API源码和交互完整源码。

    基于MobileNet轻量级网络实现的常见30多种食物分类

    基于MobileNet轻量级网络实现的常见30多种食物分类,包含数据集、训练脚本、验证脚本、推理脚本等等。 数据集总共20k左右,推理的形式是本地的网页推理

    2024年央国企RPA市场研究报.pdf

    2024年央国企RPA市场研究报.pdf

Global site tag (gtag.js) - Google Analytics