资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,网络编程语言,沈卫平,2008,编程语言走势解盘,Java,类语言:,Java,似乎会逐渐走下坡。,J2ME,会受到,Google Android,、,Adobe Flash,Lite,、,.NET Compact Framework,的影响;,J2SE,的对手则是,.NET,和,AIR,;,J2EE,在中小型网站受到,PHP,、,Ruby-on-Rails,(,RoR,),很大的冲击。幸好,目前大型企业好像还是买,J2EE,的帐。,在,J2ME,和,J2SE,方面,未来似乎可以用,JavaFX,奋力一搏;在,J2EE,方面,也有,Groovy/Grails,可以抵挡,RoR,。尤其目前大家怀疑,PHP,和,RoR,只适合用在中小型网站,大型企业网站似乎还是用,J2EE,比较安心,,Groovy/Grails,可以保障大家在,J2EE,上既有的投资。,如果你是,Java,爱好者,最近有点想改用,RoR,,那么你可以去看看,Grails,,或许你会因此想继续留在,Java,阵营。,2008,编程语言走势解盘,PHP,语言:因为,PHP,对初学者相当友善,所以过去这几年使用者数量增加快速,但是似乎已经到达瓶颈,这可能是,RoR,造成的。随着,RoR,推出新版,,PHP,会受到更大的挑战。连开发工具厂商,CodeGear,都在,2007,年推出,Ruby,和,PHP,的开发工具,显见这两个语言似乎都会逐渐走入企业市场。,Python,语言:,Python,早就移植到,.NET,和,Java,,,2008,年会持续推出修订版本,而且也会推出全新的,Python 3000,。,Python 3000,不以相容于,2.x,版为目的,而是要运用过去培养出来的经验,彻底翻新,Python,。目前,Python,编程员的需求也已经超越,Perl,。,2008,编程语言走势解盘,Perl,语言:目标远大是一件好事,但目标远大却没有足够的资源可以完成目标,就会陷入绝境。,Perl 6,就是这样的例子,它比,.NET,更早提出,但这几年下来,,.NET,已经从,1.0,进入到,3.5,,,Perl 6,却连,1.0,都还没诞生。,Perl,擅长文字数据处理,但是在大部分语言都支持,Regular Expression,,加上文字数据大量,XML,化之后,,Perl,的优势已经消失大半。,Ruby,语言:,Ruby,可能会在,2008,年推出,2.0,,加上,2007,年底已经推出的,RoR,2.0,,,Ruby,整个就是一股挡不住的气势。可能在,2008,年底之前,,Ruby,在,TIOBE,的排行榜上就会超越,Perl,,只剩下,Python,和,PHP,这两个对手了。,2008,编程语言走势解盘,JavaScript,语言:,Web,应用蔚为主流,而,JavaScript,又是浏览器的标准语言,所以这几年来相当受到重视。,在,Adobe,推出,AIR,,,Mozilla,推出,Prism,之后,,JavaScript,可以开发出某些种类的桌面应用,,JavaScript,的用途变得更广。,而,JavaScript,的兄弟,ActionScript,,随着,AIR,的推出又会更受欢迎一些,但是,Silverlight,的推出,又会抵销,ActionScript,成长力道。,2008,编程语言走势解盘,C,语言:系统语言语言方面,,C,语言的地位还是一样重要,,C+,则会慢慢走下坡;,D,语言崛起,将会接收相当多原来,C+,的使用者,而,Delphi,则是一蹶不振,当年,Delphi/,Kylix,跨,Windows/Linux,的美梦已然消失。,D,语言:多年来,,D,语言平均一个月推出两个版本,改版速度相当快,在,2007,年,1,月推出,1.0,版后,不出几个月,又推出,2.0,版。,1.0,版持续做,bug,修订,尽量不加新特色,,2.0,版则继续进行实验性的翻修。虽然,D,语言,1.0,才正式推出,1,年,但已经成为相当受欢迎的系统语言,可惜至今仍然没有很好用的,IDE,。,2008,编程语言走势解盘,Lua,、,PowerShell,、,Erlang,语言:可说是未来几年窜升力道最强的潜力之星,但都还不至于成为主流语言。,Lua,是相当小的语言,适合嵌入其他的环境中,和其他语言一同使用,根据,TIOBE,开发语言排行榜数据显示,这几年,Lua,越来越受到重视,尤其,2007,年,Lua,更是往上猛窜二十几个名次,由此可见,Lua,的需求大增。,随着,Windows Vista,系统的出货,未来几年,PowerShell,会成为相当重要的系统管理语言。,目前的多核心环境、网络分布式计算、容错的需求,则让,Erlang,持续受到重视。,2008,编程语言走势解盘,在,2007,年第三季,,Apple,iPhone,在美国的,Smartphone,市场占有率已经到达,27%,,超过,Windows Mobile,。,继美洲和欧洲之后,,2008,年,iPhone,会在亚洲开始贩卖,并推出第二代机种,也预计在,2008,年推出,SDK,(软件开发工具包),让我们可以为,iPhone,写原生(,Native,)程序。,所以,如果你需要为,Smartphone,开发应用,除了考虑,Windows Mobile,之外,你也必须思考是否要用,Objective-C,语言开发的,MacOS,应用了(,iPhone,使用精简版的,MacOS,X,)。,2008,编程语言走势解盘,转换语言的成本通常很高,所以一年之内,各个语言通常不会有太大的兴衰变化,,这里是描述以,2008,为中心,前后数年期间各类编程语言的整体状况;把时间拉长,发展态势会比较明显,不受到短期震荡的影响,预测未来就不至于太过离谱,让大家当作未来选择语言的参考。,WEB2.0,互联网下一步,是要让所有的人都忙起来,全民织网,然后用软件,机器的力量使这些信息更容易被需要的人找到和浏览。如果说,WEB1.0,是以数据为核心的网,那,WEB2.0,是以人为出发点的互联网。我们看一看最近的一些,WEB2.0,产品,就可以理解以上观点。,Blog,: 用户织网,发表新知识,和其他用户内容链接,进而非常自然的组织这些内容。,RSS,: 用户产生内容自动分发,定阅,Podcasting,: 个人视频,/,声频的发布,/,定阅,SNS,:,blog,+,人和人之间的链接,WIKI,: 用户共同建设一个大百科全书,WEB2.0,从知识生产的角度看,,WEB1.0,的任务,是将以前没有放在网上的人类知识,通过商业的力量,放到网上去。,WEB2.0,的任务是,将这些知识,通过每个用户的浏览求知的力量,协作工作,把知识有机的组织起来,在这个过程中继续将知识深化,并产生新的思想火花; 从内容产生者角度看,,WEB1.0,是商业公司为主体把内容往网上搬,而,WEB2.0,则是以用户为主,以简便随意方式,通过,blog/podcasting,方式把新内容往网上搬; 从交互性看,,WEB1.0,是网站对用户为主;,WEB2.0,是以,P2P,为主。 从技术上看,,WEB,客户端化,工作效率越来越高。比如像,Ajax,技术,GoogleMAP/Gmail,里面用得出神入化。 我们看到,用户在互联网上的作用越来越大;他们贡献内容,传播内容,而且提供了这些内容之间的链接关系和浏览路径。在,SNS,里面,内容是以用户为核心来组织的。,WEB2.0,是以用户为核心的互联网。,REST(Representational State Transfer),REST,软件架构,是由,Roy Thomas Fielding,博士在,2000,年首次提出的。他为我们描绘了开发基于互联网的,网络软件,的蓝图。,REST,软件架构是一个抽象的概念,是一种为了实现这一互联网的超媒体分布式系统的,行动指南,。利用任何的技术都可以实现这种理念。而实现这一软件架构最著名的就是,HTTP,协议,。通常我们把,REST,也写作为,REST/HTTP,,在实际中往往把,REST,理解为基于,HTTP,的,REST,软件架构,或者更进一步把,REST,和,HTTP,看作为等同的概念。,今天,,HTTP,是互联网上应用最广泛的计算机协议。,HTTP,不是一个简单的运载数据的协议,而是一个具有丰富内涵的,网络软件,的协议。它不仅仅能够对于互联网,资源,进行,唯一定位,,而且还能告诉我们对于该资源进行怎样,运作,。这也是,REST,软件架构当中最重要的,两个理念,。而,REST,软件架构理念是真正理解,HTTP,协议而形成的。有了,REST,软件架构理念出现,才使得软件业避免了对,HTTP,协议的片面理解。只有正确的理论指导,才能避免在软件开发的实际工作过程中少走弯路。,REST,与,URI,(资源定位),REST,软件架构之所以是一个超媒体系统,是因为它可以把网络上所有资源进行唯一的定位,不管你的文件是,图片,、文件,Word,还是,视频,文件,也不管你的文件是,txt,文件格式、,xml,文件格式还是其它文本文件格式。它利用支持,HTTP,的,TCP/IP,协议,来确定互联网上的资源。,REST,与,CRUD,原则,REST,软件架构遵循了,CRUD,原则,该原则告诉我们对于资源(包括网络资源)只需要四种行为:创建(,Create,)、获取(,Read,)、更新(,Update,)和销毁(,DELETE,)就可以完成对其操作和处理了。其实世界万物都是遵循这一规律:生、见、变、灭。所以计算机世界也不例外。这个原则是源自于我们对于数据库表的数据操作:,insert,(生)、,select,(见)、,update,(变)和,delete,(灭),所以有时候,CRUD,也写作为,RUDI,,其中的,I,就是,insert,。这四个操作是一种原子操作,即一种无法再分的操作,通过它们可以构造复杂的操作过程,正如数学上四则运算是数字的最基本的运算一样。,REST,与网络服务,尽管在,Java,语言世界中网络服务目前是以,SOAP,技术为主,但是,REST,将是网络服务的另一选择,并且是真正意义上的网络服务。基于,REST,思想的网络服务不久的将来也会成为是网络服务的主流技术。,REST,不仅仅把,HTTP,作为自己的,数据运输,协议,而且也作为直接进行,数据处理,的工具。而当前的网络服务技术都需要使用其它手段来完成数据处理工作,它们完全独立于,HTTP,协议来进行的,这样增加了大量的复杂软件架构设计工作。,REST,的思想充分利用了现有的,HTTP,技术的网络能力。在德国电视台上曾经出现过一个这样的五十万欧元智力题:如何实现网络服务才能充分利用现有的,HTTP,协议?该问题给出了四个答案:去问微软;,WSDL2.0/SOAP1.2,;,WS-Transfer,;根本没有。这个问题告诉我们,HTTP,并不是一个简单的数据传来传去的协议,而是一个聪明的会表现自己的协议,这也许是,REST = Representational State Transfer,的真正含义。,实际上目前很多大公司已经采用了,REST,技术作为网络服务,如,Google,、,Amazon,等。在,Java,语言中重要的两个以,SOAP,技术开始的网络服务框架,XFire,和,Axis,也把,REST,作为自己的另一种选择。它们的新的项目分别是,Apache CXF,和,Axis2,。,Java,语言也制定关于,REST,网络服务规范:,JAX-RS: Java API for,RESTful,Web Services (JSR 311),。相信还会出现更多与,REST,相关的激动人心的信息。,REST,与,AJAX,技术,尽管,AJAX,技术的出现才不到两年时间,但是,AJAX,技术遵循了,REST,的一些重要原则。,AJAX,技术充分利用了,HTTP,来获取网络资源并且实现了,HTTP,没有的对于异步数据进行传输的功能。,AJAX,技术还使得软件更好地实现分布性功能,在一个企业内只要一个人下载了,AJAX,引擎,其它企业内部的人员,就可以共享该资源了。,AJAX,技术遵守,REST,准则的应用程序中简单和可伸缩的架构,凡是采用,AJAX,技术的页面简洁而又丰富,一个页面表现了丰富多彩的形态。,AJAX,技术还使用了一种不同于,XML,格式的,JSON,文件格式,这个意义在哪里呢?在,REST,软件架构下我们不能对于,XML,文件进行序列化处理,这样程序员必须要使用自己的,XML,绑定框架。而以序列化的,JavaScript,对象为基础的,JSON,已经获得了广泛认可,它被认为能以远比,XML,更好的方式来序列化和传输简单数据结构,而且它更简洁。这对,REST,是一个极大贡献和补充。,当前的网络应用软件还违背了,REST,的“无状态服务器”约束。,REST,服务器只知道自己的状态。,REST,不关心客户端的状态,客户端的状态自己来管理,这是,AJAX,技术的应用之地。通过,AJAX,技术,可以发挥有状态网络客户机的优势。而,REST,的服务器关心的是从所有网络客户端发送到服务器操作的顺序。这样使得互联网这样一个巨大的网络得到有序的管理。,REST,与,Rails,框架,Ruby on Rails,框架(简称,Rails,或者,Rails,框架)是一个基于,Ruby,语言的越来越流行的网络应用软件开发框架。它提供了关于,REST,最好的支持,也是当今应用,REST,最成功的一个软件开发框架。,Rails,框架(从版本,1.2.x,起)成为了第一个引入,REST,作为核心思想的主流网络软件开发框架。在,Rails,框架的充分利用了,REST,软件架构之后,人们更加坚信,REST,的重要性和必要性。,Rails,利用,REST,软件架构思想对网络服务也提供了一流的支持。从最直观的角度看待,REST,,它是网络服务最理想的手段,但是,Rails,框架把,REST,带到了网络应用软件开发框架。这是一次飞跃,让,REST,的思想从网络服务的应用提升到了网络应用软件开发。利用,REST,思想的,simply_restful,插件已经成为了,Rails,框架的核心内容。,REST,安全性,我们把现有基于,SOAP,的网络服务和基于,REST/HTTP,网络服务作个比喻,前者是一种传统的,寄信,方式,而后者是现代网络的,电子邮件,方式。要是是寄信和电子邮件都有病毒存在的话,传统的寄信被送到对方就很危险,而电子邮件是开发的,电子邮件供应商比如,Google,为我们检查了电子邮件是否有病毒。这里并不是说明,SOAP,网络服务消息包含义病毒,而是说明,HTTP,是无法处理,SOAP,信息包究竟好不好,需要额外的软件工具解决这一问题,包括防火墙也用不上和管不了。,REST/HTTP,网络服务的信息包可以被防火墙理解和控制。你可以按照操作和链接进行过滤信息包,如你可以规定从外部来的只能读取(,GET,操作)自己服务器的资源。这样对于系统管理员而言使得软件管理更为简单。,REST,的安全性还可以利用传输安全协议,SSL/TLS,、基本和摘要式认证(,Basic und Digest Authentication,)。除了这些,REST,自身的安全性功能外,还可以利用像基于信息的,Web Services Security,(,JSR 155,)作为,REST,不错的补充。,参考文献,中文参考文献, Thomas Fielding,博士论文中文版本, Thomas Fielding,博士论文英文版本,http:/,www.ics.uci.edu/fielding/pubs/dissertation/top.htm,RSS,RSS,是在线共享内容的一种简易方式(也叫聚合内容,,Really Simple Syndication,)。通常在时效性比较强的内容上使用,RSS,订阅能更快速获取信息,网站提供,RSS,输出,有利于让用户获取网站内容的最新更新。网络用户可以在客户端借助于支持,RSS,的聚合工具软件(例如,SharpReader,NewzCrawler,、,FeedDemon,),在不打开网站内容页面的情况下阅读支持,RSS,输出的网站内容。,说得更加简单一点,,RSS,就是一种用来分发和汇集网页内容的,XML,格式!如果你还是不太明白,没有关系,,RSS,是什么其实并不重要,重要的是,RSS,可以做什么,下面我们就来了解一下,,RSS,能给我们带来什么?,RSS,可以干什么,1.,订阅,BLOG(,你可以订阅你工作中所需的技术文章;也可以订阅与你有共同爱好的作者的,Blog,,总之,你对什么感兴趣你就可以订什么,)2.,订阅新闻,(,无论是奇闻怪事、明星消息、体坛风云,只要你想知道的,都可以订阅,),你再也不用一个网站一个网站,一个网页一个网页去逛了。只要这将你需要的内容订阅在一个,RSS,阅读器中,这些内容就会自动出现你的阅读器里,你也不必为了一个急切想知道的消息而不断的刷新网页,因为一旦有了更新,,RSS,阅读器就会自己通知你!,RSS,阅读器,目前,,RSS,阅读器,基本可以分为两类。第一类大多数阅读器是运行在计算机桌面上的应用程序,通过所订阅网站的新闻供应,可自动、定时地更新新闻标题。在该类阅读器中,有,Awasu,、,FeedDemon,和,RSSReader,这三款流行的阅读器,都提供免费试用版和付费高级版。国内最近也推出了几款,RSS,阅读器:周博通,看天下,博阅。另外,开源社区也推出了很多优秀的阅读器,,RSSOWl,(,完全,java,开发,点击下载,),它不仅是完全支持中文界面,而且还是完全的免费软件!,(,后面我们就将以开源软件周博通和,rssowl,为例,为大家介绍怎样来使用,RSS,阅读器,-,周伯通,怎样使用,RSS,阅读器,-,rssowl,),),第二类新闻阅读器通常是内嵌于已在计算机中运行的应用程序中。例如,,NewsGator,内嵌在微软的,Outlook,中,所订阅的新闻标题位于,Outlook,的收件箱文件夹中。另外,,Pluck,内嵌在,Internet Explorer,浏览器中!另外,,FireFox,浏览器内置对,RSS,支持,可以使用,Firefox,订阅,RSS,哦。,RSS,的联合(,Syndication,)和聚合(,Aggregation,),发布一个,RSS,文件(,RSS Feed,)后,这个,RSS Feed,中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的,XML,格式,所以也能在其他的终端和服务中使用,如,PDA,、,手机,、邮件列表等。而且一个网站联盟(比如专门讨论旅游的网站系列)也能通过互相调用彼此的,RSS Feed,,自动的显示网站联盟中其他站点上的最新信息,这就叫着,RSS,的联合。这种联合就导致一个站点的内容更新越及时、,RSS Feed,被调用的越多,该站点的,知名度,就会越高,从而形成一种良性循环。而所谓,RSS,聚合,就是通过软件工具的方法从网络上搜集各种,RSS Feed,并在一个界面中提供给读者进行阅读。这些软件可以是在线的,WEB,工具,如,http:/,,,http:/,,,http:/,,,http:/,,,http:/, News Reader/,Podcaster,http:/,/software,onelurv,http:/,/,BOKEE,GreatNews,http:/,/,HEXUN RSS READER,和讯博揽,iSpace,Desktop,Liferea,NewsFire,NetNewsWire,Plazoo,RSS Bandit,RSSOwl,http:/,www.rssowl.org,/,RSS Reader,SharpReader,Straw Vienna,http:/vienna-,/,百博,http:/,新浪点点通阅读器,参考文献,1,、,RSS 0.9 Specification,http:/www.purplepages.ie/RSS/netscape/rss0.90.html,2,、,RSS 1.0 Specification,http:/web.resource.org/rss/1.0/spec,3,、,RSS 2.0 Specification,http:/http:/192.168.18.100:6666/view/list.exl,ATOM,ATOM,是一种订阅网志的格式。它与,RSS,相比来讲,有更大的弹性。,atom,是一种基于,XML,的文档格式以及基于,HTTP,的协议,它被站点和客户工具等用来聚合网络内容,包括,weblog,和新闻标题等,它借鉴了各种版本,RSS,的使用经验,Atom,正走在通往,IETF,标准的路上,在这之前,,Atom,的最后一个版本是,Atom 0.3,,并且已经被相当广泛的聚合工具使用在发布和使用,(consuming),上。值得一提的是,Blogger,和,Gmail,这两个由,Google,提供的服务正在使用,Atom.,开放,API,以前的开放,API,(应用程序接口)主要指桌面应用软件,希望通过开放,API,融合更多的应用。在,WEB1.0,时代只有少数网站,比如,EBAY,亚马逊公司(,Amazon,)、雅虎公司、,Google,公司等,在设计之初就遵循各种工业化标准,进而开放,API,接口,正是由于这些开放的,API,,他们获得 了不少有趣、有意思的应用。但大多数公司当时还没有这种意识,不过在,Web 2.0,时代,开放,API,已经成为不可忽视的趋势。 对于公司来说,技术领域的竞争已经演化为标准之争,标准的形成在于有多少人在使用,因此开放,API,就意味更多的人采用,也就意味着标准。,Google,公司 显然深谙此道。它所推出的诸多产品都是基于开放的,API,标准。最典型的例子就是,Google map,,开放,Google Map,的,API,后,,Google,公司无需花费力气做更多的市场推广,其他公司就会主动地整合它的应用。如前文我们提到的美国房地产交易地图网就是在其网站 中主动整合,Google Map,。正是看到开放后的巨大前景,微软、雅虎、,Skype,也纷纷加入其中。,AJAX,AJAX,的全称是,Asynchronous JavaScript and XML,,它不是一种技术而是数种技术的组合。,AJAX,采用远程脚本调用技术,通过,JavaScript,语言与,XML Http Request,对象来实现数据请求,将处理由服务器转移到客户端,减少了服务器的资源占用,加快了数据处理的速度。采用,AJAX,开发的软件能让你在使用网络应用软件时感觉就象在本机上一样。 目前,AJAX,技术已经广泛应用于网络应用软件开发中,,Google,也许是,AJAX,技术开发投入最大收获最多的公司,,AJAX,已经成功应用于,GMail,、,Google Suggest,和,Google Maps,等网络应用软件中。 除了,Google,以外还有更多的公司在采用,AJAX,。在,AJAX,的帮助下,Zimbra,公司开发的电子邮件中,比,GMail,和,HotMail,更加互动。,M,公司也在即时通讯软件中采用,AJAX,技术,以创造更好的用户体验。即使微软也不能阻挡,AJAX,的魅力,微软声称将在下一代,HotMail,中加入,AJAX,工具条。,Ajax,工具和技术综述,Ajax (Asynchronous JavaScript + XML),编程技术正逐渐主导,Web,应用程序开发领域。每天都有新的开发人员步入,Ajax,开发的殿堂,他们拥有不同的开发背景。本系列的第,1,部分将提供来自,IBM Ajax,开发人员专家组的,Ajax,开发资源备忘单。作者根据他们自己的,ramp-up,经验为您提供了一些实用的信息,这些信息可以帮助您快速进入高效,Ajax,开发的轨道。,Ajax,是一种,Web,应用程序客户机技术,它结合了,JavaScript,、层叠样式表(,Cascading Style Sheets,,,CSS,)、,HTML,、,XMLHttpRequest,对象和文档对象模型(,Document Object Model,,,DOM,),关于各种标准的更多信息,请参阅,参考资料,。运行在浏览器上的,Ajax,应用程序以一种异步的方式与,Web,服务器通信,并且只更新页面的一部分。通过利用,Ajax,技术,可以提供丰富的、基于浏览器的用户体验。,在开始,Ajax,之旅以前,需要熟悉很多不同的语言、标准、工具和库。一开始就要在不同选项之间做出选择并组合出一个开发环境来可能有些勉为其难。作者将根据他们自己的,ramp-up,(项目初始阶段的准备工作)经验帮助您在旅途中避免可能遇到的一些比较常见的、令人厌烦的问题。,Ajax,工具和技术综述,Ajax,将改变用户在网站上的体验,之前的单击,-,显示页面式的体验将变成具有交互性、灵活性的桌面应用程序体验。用户可以避免页面重新加载,避免等待下一部分内容的呈现。您可能在想,这一切听起来是不错,但是如何才能做得到呢?为了回答这个问题,先来看看,Ajax,技术背后的一些幕后故事。,Ajax,是以下,Web,技术和标准的集合,它允许使用客户端的机器在背后运行应用程序逻辑的重要部分,而不仅仅是呈现应用程序的输出:,超文本标记语言(,Hypertext Markup Language,,,HTML,):定义最终呈现给用户的内容。,层叠样式表(,Cascading Style Sheets,,,CSS,):定义所呈现内容的样式(或装饰)。,文档对象模型(,Document Object Model,,,DOM,):一种,API,,浏览器使用它将被呈现内容公开给,JavaScript,脚本。然后,脚本可以使用,DOM,在用户看到内容之前动态地修改内容。,XmlHttpRequest,对象:为浏览器与服务器之间的交互提供便利,通过,JavaScript,脚本调用。,JavaScript,:在浏览器中执行的一种编程语言,将所有其他的,Ajax,组成部分黏合在一起。脚本可以侦听浏览器中发生的事件(例如单击一个按钮),并使用,XmlHttpRequests,回调服务器以对事件作出反应,然后根据返回的结果修改,DOM,树。,所有这些技术都在用户的,Web,浏览器中执行,用户的,Web,浏览器充当执行,Ajax,程序的平台。,Ajax,工具和技术综述,如果要使用,Ajax,,那么有一点值得格外注意:组成它的技术虽然是基于标准的,但又是特定于浏览器的。换句话说,同一个应用程序在不同的浏览器上可能表现出不同的行为。然而,由于既不可能限制用户使用特定的浏览器,又不可能忽略客户机的浏览器可能不支持,CSS,或,DOM,这一事实,因此,作为应用程序的创建者,您需要理解各种不同浏览器之间的差异。,要成为一名高效的,Ajax,开发人员,需要:,了解形成,Ajax,开发基础的技术。,理解可用的运行时平台和,Web,浏览器。,开发,Ajax,应用程序时使用支持各种语言的,IDE,。,拥有用于各种环境和语言的调试器和应用程序测试工具。,信息源,developerWorks,上由,Brett McLaughlin,撰写的,掌握,Ajax,系列是最好的,Ajax,教程之一。该系列不要求预先知道多少,Ajax,编程知识,并且描述了各种与,Ajax,相关的技术。如果您想更好地理解,Web,架构,那么可能需要对,Representational State Transfer (REST),有所熟悉。“,How to Create a REST Protocol”,(请参阅,参考资料,)这篇文章可以作为这一方面很好的入门资料。,阅读完,掌握,Ajax,系列,并且亲自开始一些开发之后,您还将需要一些其他的参考信息。,W3Schools,(请参阅,参考资料,)提供了核心,Ajax,技术(,JavaScript,、,CSS,、,HTML,、,DOM,、,XML,等)的在线参考信息。,如果您使用的是,Mozilla,Firefox,浏览器,那么应该使用,DevEdge,侧栏(请参阅,参考资料,)。这些侧栏包含各种,Ajax,技术标准的索引,您可以使用它们作为参考指南。,最后,如果您想到,Ajax,社区去感受一下,那么应该订阅,Ajaxian,博客(请参阅,参考资料,)。,浏览器作为运行时环境,Web,浏览器不仅是,Ajax,部署环境,同时还是调试环境。大多数浏览器都可以添加调试辅助工具,例如,DOM,树查看器或调试器。文章下节将对以下各种流行的浏览器作一个概述:,Microsoft Internet Explorer (IE),Firefox,Safari,Internet Explorer,IE,一直是大多数用户的选择。,IE6,是一款成熟的浏览器,具有非常深的市场底蕴。很多,CSS,和,DOM,特性在,IE6,中不受支持,或者以一种专用的形式提供。使用,IE6,的开发人员可能会遇到以下一些问题:,缓慢的,JavaScript,解释器和不一致的标准实现。,缺少透明的,PNG,支持。,DOM,事件:一个事件可能在,Firefox,中使用一个名称,而在,IE,中又使用另一个名称。有些事件的调用顺序不一样,在,IE,中和在,Firefox,中相同的事件对象可能具有不同的属性。有关这一问题的更多信息,请阅读 “把应用程序从,Internet Explorer,迁移到,Mozilla,”,(请参阅,参考资料,)。,未实现的,CSS,属性,例如,minimum/maximum height,、,selectors,等等。,尽管存在这些问题,您还是应该相信大多数用户都是使用这个浏览器。也可以试着使用各种不同的库从而在一定程度上填补,IE6,的不足,例如,/IE7/,(请参阅,参考资料,)。,IE7,在,IE6,的基础上有了很多明显的改进,例如对标签的支持。对于开发人员而言,隐藏的改进更为重要。,IE7,提供了一个性能更佳的,JavaScript,解释器,并修复了,IE6,中的很多缺陷(例如,CSS,),使得最遵从标准的,Ajax,应用程序只需要少量的修改便可以在该浏览器上运行。,IE,调试辅助工具,可以使用以下工具在,IE,中调试应用程序:,IE Developer Toolbar,:允许更好地控制,IE,环境(缓存,,cookie,),浏览,DOM,树,以及浏览和操纵元素的样式。在分析由应用程序生成的页面时,这是非常有用的工具。(,IE Developer Toolbar,可以从,Microsoft,下载。,参考资料,中提供了下载链接。),Microsoft Script Debugger:,随,Microsoft Office,(可以从,Microsoft,下载,请参阅,参考资料,)一起发布,通过它可以在,JavaScript,代码中设置断点,观察变量,还可以执行常规的调试例程。注意,在调试时,建议在每个调试会话之前通过,IE Developer Toolbar,禁用缓存,否则后面会调试缓存版本的代码。,IE,调试辅助工具,IE,相关浏览器,可以使用,Trident,(,IE,浏览器引擎)创建 “新” 的浏览器,例如,Maxthon,。这里新字打上了引号,因为从开发人员的角度来看,浏览器的关键特(例如对,Ajax,的支持)仍然相同。(请参阅,参考资料,了解更多关于,Trident,的知识。),Mozilla,Firefox,虽然,Firefox,已经出来好几个版本,但是这里只讨论,Firefox,2.0,。开发人员和超级用户常常使用,Firefox,,它是,UNIX-,类操作系统的首选,而且是开放源码的,除了,IE,之外,它是最流行的浏览器。,Firefox,有一个速度很快的,JavaScript,解释器,并且具有各种,Web,标准的优异的实现。由于它的,Ajax,友好性,我们强烈建议将,Firefox,用于大多数,Ajax,开发。通常,很多,Ajax,开发人员都是在,Firefox,上开始应用程序开发的,然后才转而使用其它浏览器。,Firefox,调试辅助工具,Firefox,具有一个强大的、开放的扩展机制,它的社区借助这种机制创建了大量的,Web,开发辅助工具。然而,到目前为止,,Firebug,(请参阅,参考资料,)是其中最为流行的。(要了解关于,Firebug,功能的更多细节,请参阅 “,Ajax Debugging with Firebug,”,)。,Firebug,是一个集成的扩展,通过它可以:,使用断点、变量查看和逐步方式来调试,JavaScript,代码。,查看网络状况。,查看和优化各种不同元素的,DOM,树和,CSS,。,Firebug 1.0,的强大性和灵活性为,Ajax,开发树立了里程碑,也是使用,Firefox,作为首选开发浏览器的有力的理由。,Firefox,相关的浏览器,一些浏览器,例如,Camino,,使用了,Firefox,的布局引擎,Mozilla,Gecko,(请参阅,参考资料,)。这些浏览器通过一个匹配的,Gecko,版本能够提供与,Firefox,相同的功能。,Safari,Safari,是随,MacOSX,一起发布的浏览器(从第,3,版开始,也在,Windows,上运行。),Safari,虽然比,Firefox,和,IE7,快很多,但是缺少对标准的支持(不过最新的,WebKit,构建有了一些改进;文章下节将会更详细地介绍,WebKit,)。还应注意,,Safari,开发人员社区规模远远小于,Firefox,和,IE,的开发人员社区。因此,网上关于,Safari,的信息较少,而且很多库都没有在,Safari,上经过良好的测试。,Safari,调试辅助工具,Safari,浏览器引擎是在一个名为,WebKit,的开放源码项目(请参阅,参考资料,)中开发的。为了在,Safari,中调试应用程序,建议使用一个,WebKit,构建。该构建包括:,经过定制的带有,CSS,和,DOM,查看器的浏览器。,Drosera,:,一个,JavaScript,调试器。,Drosera,可用于调试应用程序,但是与,Firebug,相比其特性比较有限。,如果您坚持在,Safari,中测试应用程序,那么可以打开,Safari Debug,菜单,通过该菜单可以查看,DOM,树、,CSS,和缓存等。,Safari,相关的浏览器,WebKit,应用于很多浏览器,其中最引入注目的是,OmniWeb,。,Ajax IDE,和工具,在开发新的,Ajax,应用程序时,如果所使用的,IDE,支持所有,Ajax,相关技术并且提供快捷、友好的开发环境和,UI,将会使您如虎添翼。在选择一款,Ajax IDE,时,需要考虑以下一些特性:,具有自动完成、颜色突出显示、错误提示等功能的语法制导编辑功能(用于,HTML,、,CSS,、,JavaScript,和,DOM,),各种技术的相关文档,集成的,JavaScript,调试器,网络监控功能,DOM,内省,框架集成,虽然您可能会考虑购买一个,IDE,,但其实,Eclipse,和它的相关插件就提供了一个功能完善的、基于开放源码的,Ajax IDE,,这个,IDE,可以免费下载。本节将讨论以下这些基于,Eclipse,的、包括插件的,Ajax IDE,:,含,Web,工具箱(,toolkit,)的,Eclipse,Eclipse ATF,Aptana,含有,Web,工具箱的,Eclipse,如果您是一名,Java,开发人员,负责服务器端的,Java,开发,那么使用,Eclipse Web,工具箱也是开始基本,Ajax,开发的简单易行的方法。通过添加,Eclipse,的,Web,工具(请参阅,参考资料,),可以获得一个可用于开发,Web,工件的基本环境,还可以获得可编辑,HTML,、,CSS,和,JavaScript,文件的编辑器和编辑工具。,注意,,Eclipse Web,工具环境不限于,Ajax,开发,它还支持侧重于服务器端的,Web,应用程序开发。因此,它提供了诸如语法突出显示和基本代码完成之类的核心功能。它并未提供特定于,Ajax,开发任务的调试功能或,DOM,操纵功能。,Eclipse ATF,您可以安装,Eclipse Ajax Toolkit Framework (ATF),环境(请参阅,参考资料,),并将其与,Eclipse Web,工具箱相结合,从而产生一个强大的、支持,Ajax,开发需求所有方面的环境。,ATF,提供了以下特性:,一个,DOM,浏览器和,CSS,运行时编辑器,一个,JavaScript,调试器(通过利用,Mozilla,XUL,运行程序),网络流量监控,通过库配置文件实现常用库的简单库集成,与,JSLint,(请参阅,参考资料,)的集成,以执行,JavaScript,验证,该工具箱中一个非常有价值的特性是在集成的,XUL,运行程序中运行、测试和检查应用程序。,SOA and Web services,面向服务的体系结构(,Service-Oriented Architecture,,,SOA,)是一种,IT,体系结构风格,支持将您的业务转换为一组相互链接的服务或可重复业务任务,可在需要时通过网络访问这些服务和任务。这个网络可以是本地网络、,Internet,,也可以分散于各地且采用不同的技术,通过对来自纽约、伦敦和中国香港的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。可以对这些服务进行结合,以完成特定的业务任务,从而让您的业务快速适应不断变化的客观条件和需求。,当在战略业务目标的引导下进行,SOA,实现工作时,可确保对业务进行积极转换,并能够实现,SOA,的好处,具体如下:,IT,与业务的一致性,IT,资产的最大化重用,这些有助于确保在耗资巨大的,IT,项目中的投资能够给业务带来长远的价值。,那么,该如何步入,SOA,的领地,它又会如何影响您的业务呢?,IBM,确定了五个切入点,可确保所进行的每个基于,SOA,的解决方案都能提供真正的业务价值。每个切入点都提供了相应的场景或已定义的方法,以帮助实现相应的技术,从而实现每个切入点所定义的业务价值。,SOA,切入点,IBM,定义的五个切入点(均基于实际的客户经验确定)能帮助您和您的业务实现预定义的,SOA,解决方案,从而从中获益。这些切入点同时受到业务需求(人员、流程和信息切入点)和,IT,需求(连接性和重用切入点)的驱动。以下是五个切入点的一般描述信息:,人员,:,SOA,的这个切入点关注用户体验,以帮助生成调用和实现更好的协作,从而获得一致的人员与流程交互,提高业务效率。例如,通过使用,SOA,,可以创建基于服务的,Portlet,来提高此协作。,流程,:流程切入点可帮助企业了解其业务中发生的情况,从而支持其对现有业务模型进行改进。通过使用,SOA,,可以将业务流程转换为可重用且具有灵活性的服务,从而改进和优化这些新流程。,信息,:通过使用,SOA,的这个切入点,能以一致而可见的方式利用公司中的信息。通过在所有业务领域提供这个一致而受信任的信息,可促进企业各个领域的创新工作,从而更为有效地进行竞争。通过使用,SOA,,可以更好地控制信息,而且通过信息与业务流程的结合,可以发现很多有意义的新关系。,连接性,:利用连接性切入点,可以有效地连接基础设施,从而将企业中的所有人员、流程和信息整合到一起。通过在服务间和整个环境中实现灵活的,SOA,连接,可以获取现有业务流程并在不需要太多工作的情况下通过其他业务通道提供此流程。甚至还能以安全的方式连接防火墙外的外部合作伙伴。,重用,:通过,SOA,重用服务,可以充分利用企业中已经存在的服务。通过对现有资源进行构建,可以简化业务流程,在整个企业内确保一致性并缩短开发时间。所有这些将能帮助您节约大量的时间和资金。另外,还能减少服务中的功能重复,并能获得使用企业中为大家所熟悉的经过验证的核心应用程序的好处。,SOA,场景,之所以定义切入点,是为了帮助客户了解如何认识,SOA,。不过,还需要进一步的实现细节来帮助客户的业务和,IT,团队开始,SOA,之旅。而这正是需要更为具体的场景的原因。,同样,,IBM,技术专家在参考实际的客户经验和多年的积累的情况下,认识到业务部门在设计和实现,SOA,解决方案的过程中经常会遵循多个常见的场景。通过定义这些场景,,IBM,为您提供了预定义的真实方法,帮助实现,SOA,解决方案。每个场景都提供了经过测试和集成的产品或实现,用于实现此场景。因此,可以将这些场景映射到您公司具体的目标和需求,从而很好地确定自己如何实现这些好处。,SOA,场景,服务创建,:创建灵活的基于服务的业务应用程序。新的面向服务的应用程序将业务行为作为服务公开,同时还能重用作为服务公开的业务逻辑。,服务连接性,:无论何时何地使用何种工具,都能使用中间层服务网关或总线让各种应用程序访问核心服务集,从而通过无缝的消息和信息流将企业中的人员、流程和信息连接起来。,交互与协作服务,:必须通过多种设备(如浏览器、,PC,和移动设备)向人类用户提供一个或一组服务。交互与协作服务还可通过将这些服务聚合为视图,以交付信息并在业务流程的上下文进行交互,从而提高人员工作效率。,SOA,所支持的业务流程管理,:业务流程管理是将软件功能和业务专业知识相结合来加速流程改进和促进业务创新的学科。,作为服务的信息,:“作为服务的信息”可在企业内作为可重用服务访问复杂的异类数据源。,SOA,设计,:通过一组角色、方法和构件保持业务设计建模和,IT,解决方案设计的一致,以提供一组供优化的显式业务流程和用于组合及集成的服务。,SOA,治理,:建立并执行,SOA,开发与运行时流程。定义策略、流程和工具来监视服务的归属、使用人、使用方式及提供时间。,SOA,安全性和管理,:作为,IT,服务管理(,IT Service Management,,,ITSM,)服务一部分的发现、监视、保护、供应、更改和生命周期管理工作。,SOA,场景,之前讨论的五个,SOA,切入点直接映射到(即具有一对一关系)本列表中的前五个场景。(例如,重用直接映射到服务创建,而连接性直接映射到服务连接性。)我们还将讨论其他,SOA,场景,这些场景均以上面的五个切入点为基础。即,SOA,设计、,SOA,治理与,SOA,安全性以及管理。,让我们花一点时间给出一个实际的切入点、场景及其实现。在,图,1,中,可以看到重用切入点如何直接映射到服务创建场景,而后者包含四个实现,其中一个名为“从头创建新服务”,(create new services from scratch),。因此,将这些加以结合,在此示例中,您将通过重用切入点进入,SOA,,此切入点可帮助您对公司的现有服务加以充分利用。如果随后发现缺少主要,SOA,服务,“从头创建新服务”实现详细说明了如何创建,SOA,服务。,SOA,切入点和场景,您现在应该已经对五个,SOA,切入点和八个场景很熟悉,而且也应该知道了每个场景如何通过多个实现帮助您实现,SOA,解决方案。,图,1,给出了一个示例,说明了可以如何将这些部分进行混合和匹配,以提供任何企业都能够利用的各种,SOA,方法。为了进一步说明这些方法,在本文剩下的部分,我们将了解,JK Enterprises,如何在整个企业实现,SOA,所带来的很多好处。,SAAS,SaaS,是,Software-as-a-service,(软件即服务)的简称,它是一种通过,Internet,提供软件的模式,用户不用再购买软件,而改用向提供商租用基于,Web,的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,对于许多小型企业来说,,SaaS,是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要,近年来,,SaaS,的兴起已经给传统套装软件厂商带来真实的压力。,SaaS,服务提供模式,SaaS,服务提供商为,中小企业,搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招聘,IT,人员,只需前期支付一次性的项目实施费和定期的软件租赁服务费,即可通过互联网享用信息系统。服务提供商通过有效的技术措施,可以保证每家企业数据的安全性和保密性。企业采用,SaaS,服务模式在效果上与企业自建信息系统基本没有区别,但节省了大量用于购买,IT,产品、技术和维护运行的资金,且像打开自来水龙头就能用水一样,方便地利用信息化系统,从而大幅度降低了中小企业信息化的门槛与风险。,SaaS,服务的优势,对企业来说,,SaaS,的优点在于:,从技术方面来看:企业无需再配备,IT,方面的专业技术人员,同时又能得到最新的技术应用,满足企业对信息管理的需求。,从投资方面来看:企业只以相对低廉的“月费”方式投资,不用一次性投资到位,不占用过多的营运资金,从而缓解企业资金不足的压力;不用考虑成本折旧问题,并能及时获得最新硬件平台及最佳解决方案。,从维护和管理方面来看:由于企业采取租用的方式来进行物流业务管理,不需要专门的维护和管理人员,也不需要为维护和管理人员支付额外费用。很大程度上缓解企业在人力、财力上的压力,使其能够集中资金对核心业务进行有效的运营。,计算环境的根本性变革,虚拟化技术,虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。,CPU,的虚拟化技术可以单,CPU,模拟多,CPU,并行,允许一个平台同时运行多个操作系统,并且应用程
展开阅读全文