《网络编程语言》PPT课件.ppt
网络编程语言,沈卫平,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框架(从版本起)成为了第一个引入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不错的补充。,参考文献,中文参考文献/Roy Thomas Fielding博士论文中文版本 Roy 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:/等,当然,可以使用我们以上提到的客户端工具。,RSS的未来发展,随着越来越多的站点对RSS的支持,RSS已经成为目前最成功的XML应用。RSS搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。相信很快我们就会看到大量基于RSS的专业门户、聚合站点和更精确的搜索引擎。,常见RSS订阅工具,BitsCast RSS News Reader/Podcaster http:/softwareonelurv http:/GreatNewshttp:/HEXUN RSS READER 和讯博揽 iSpace Desktop LifereaNewsFireNetNewsWirePlazoo RSS Bandit RSSOwl http:/RSS Reader SharpReader Straw Vienna/百博 http:/新浪点点通阅读器,参考文献,1、RSS 0.9 Specification 2、RSS 1.0 Specification 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 解