网络编程语言_第1页
网络编程语言_第2页
网络编程语言_第3页
网络编程语言_第4页
网络编程语言_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

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

文档简介

网络编程语言 沈卫平 2008编程语言走势解盘 Java类语言 Java似乎会逐渐走下坡 J2ME会受到GoogleAndroid AdobeFlashLite NETCompactFramework的影响 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年会持续推出修订版本 而且也会推出全新的Python3000 Python3000不以相容于2 x版为目的 而是要运用过去培养出来的经验 彻底翻新Python 目前Python编程员的需求也已经超越Perl 2008编程语言走势解盘 Perl语言 目标远大是一件好事 但目标远大却没有足够的资源可以完成目标 就会陷入绝境 Perl6就是这样的例子 它比 NET更早提出 但这几年下来 NET已经从1 0进入到3 5 Perl6却连1 0都还没诞生 Perl擅长文字数据处理 但是在大部分语言都支持RegularExpression 加上文字数据大量XML化之后 Perl的优势已经消失大半 Ruby语言 Ruby可能会在2008年推出2 0 加上2007年底已经推出的RoR2 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的需求大增 随着WindowsVista系统的出货 未来几年PowerShell会成为相当重要的系统管理语言 目前的多核心环境 网络分布式计算 容错的需求 则让Erlang持续受到重视 2008编程语言走势解盘 在2007年第三季 AppleiPhone在美国的Smartphone市场占有率已经到达27 超过WindowsMobile 继美洲和欧洲之后 2008年iPhone会在亚洲开始贩卖 并推出第二代机种 也预计在2008年推出SDK 软件开发工具包 让我们可以为iPhone写原生 Native 程序 所以 如果你需要为Smartphone开发应用 除了考虑WindowsMobile之外 你也必须思考是否要用Objective C语言开发的MacOS应用了 iPhone使用精简版的MacOSX 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 RepresentationalStateTransfer REST软件架构是由RoyThomasFielding博士在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 RepresentationalStateTransfer的真正含义 实际上目前很多大公司已经采用了REST技术作为网络服务 如Google Amazon等 在Java语言中重要的两个以SOAP技术开始的网络服务框架XFire和Axis也把REST作为自己的另一种选择 它们的新的项目分别是ApacheCXF和Axis2 Java语言也制定关于REST网络服务规范 JAX RS JavaAPIforRESTfulWebServices JSR311 相信还会出现更多与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框架 RubyonRails框架 简称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 基本和摘要式认证 BasicundDigestAuthentication 除了这些REST自身的安全性功能外 还可以利用像基于信息的WebServicesSecurity JSR155 作为REST不错的补充 参考文献 中文参考文献 RSS RSS是在线共享内容的一种简易方式 也叫聚合内容 ReallySimpleSyndication 通常在时效性比较强的内容上使用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内嵌在InternetExplorer浏览器中 另外 FireFox浏览器内置对RSS支持 可以使用Firefox订阅RSS哦 RSS的联合 Syndication 和聚合 Aggregation 发布一个RSS文件 RSSFeed 后 这个RSSFeed中包含的信息就能直接被其他站点调用 而且由于这些数据都是标准的XML格式 所以也能在其他的终端和服务中使用 如PDA 手机 邮件列表等 而且一个网站联盟 比如专门讨论旅游的网站系列 也能通过互相调用彼此的RSSFeed 自动的显示网站联盟中其他站点上的最新信息 这就叫着RSS的联合 这种联合就导致一个站点的内容更新越及时 RSSFeed被调用的越多 该站点的知名度就会越高 从而形成一种良性循环 而所谓RSS聚合 就是通过软件工具的方法从网络上搜集各种RSSFeed并在一个界面中提供给读者进行阅读 这些软件可以是在线的WEB工具 如 RSS的未来发展 随着越来越多的站点对RSS的支持 RSS已经成为目前最成功的XML应用 RSS搭建了信息迅速传播的一个技术平台 使得每个人都成为潜在的信息提供者 相信很快我们就会看到大量基于RSS的专业门户 聚合站点和更精确的搜索引擎 常见RSS订阅工具 BitsCastRSSNewsReader PodcasteronelurvBOKEEGreatNewsHEXUNRSSREADER和讯博揽iSpaceDesktopLifereaNewsFireNetNewsWirePlazooRSSBanditRSSOwlhttp www rssowl org RSSReaderSharpReaderStrawViennahttp vienna 百博新浪点点通阅读器 参考文献 1 RSS0 9Specificationhttp www purplepages ie RSS netscape rss0 90 html2 RSS1 0Specificationhttp web resource org rss 1 0 spec3 RSS2 0Specificationhttp http 192 168 18 100 6666 view list exl ATOM ATOM是一种订阅网志的格式 它与RSS相比来讲 有更大的弹性 atom是一种基于XML的文档格式以及基于HTTP的协议 它被站点和客户工具等用来聚合网络内容 包括weblog和新闻标题等 它借鉴了各种版本RSS的使用经验Atom正走在通往IETF标准的路上 在这之前 Atom的最后一个版本是 Atom0 3 并且已经被相当广泛的聚合工具使用在发布和使用 consuming 上 值得一提的是 Blogger和Gmail这两个由Google提供的服务正在使用Atom 开放API 以前的开放API 应用程序接口 主要指桌面应用软件 希望通过开放API融合更多的应用 在WEB1 0时代只有少数网站 比如EBAY 亚马逊公司 Amazon 雅虎公司 Google公司等 在设计之初就遵循各种工业化标准 进而开放API接口 正是由于这些开放的API 他们获得了不少有趣 有意思的应用 但大多数公司当时还没有这种意识 不过在Web2 0时代 开放API已经成为不可忽视的趋势 对于公司来说 技术领域的竞争已经演化为标准之争 标准的形成在于有多少人在使用 因此开放API就意味更多的人采用 也就意味着标准 Google公司显然深谙此道 它所推出的诸多产品都是基于开放的API标准 最典型的例子就是Googlemap 开放GoogleMap的API后 Google公司无需花费力气做更多的市场推广 其他公司就会主动地整合它的应用 如前文我们提到的美国房地产交易地图网就是在其网站中主动整合GoogleMap 正是看到开放后的巨大前景 微软 雅虎 Skype也纷纷加入其中 AJAX AJAX的全称是AsynchronousJavaScriptandXML 它不是一种技术而是数种技术的组合 AJAX采用远程脚本调用技术 通过JavaScript语言与XMLHttpRequest对象来实现数据请求 将处理由服务器转移到客户端 减少了服务器的资源占用 加快了数据处理的速度 采用AJAX开发的软件能让你在使用网络应用软件时感觉就象在本机上一样 目前AJAX技术已经广泛应用于网络应用软件开发中 Google也许是AJAX技术开发投入最大收获最多的公司 AJAX已经成功应用于GMail GoogleSuggest和GoogleMaps等网络应用软件中 除了Google以外还有更多的公司在采用AJAX 在AJAX的帮助下Zimbra公司开发的电子邮件中 比GMail和HotMail更加互动 M公司也在即时通讯软件中采用AJAX技术 以创造更好的用户体验 即使微软也不能阻挡AJAX的魅力 微软声称将在下一代HotMail中加入AJAX工具条 Ajax工具和技术综述 Ajax AsynchronousJavaScript XML 编程技术正逐渐主导Web应用程序开发领域 每天都有新的开发人员步入Ajax开发的殿堂 他们拥有不同的开发背景 本系列的第1部分将提供来自IBM Ajax开发人员专家组的Ajax开发资源备忘单 作者根据他们自己的ramp up经验为您提供了一些实用的信息 这些信息可以帮助您快速进入高效Ajax开发的轨道 Ajax是一种Web应用程序客户机技术 它结合了JavaScript 层叠样式表 CascadingStyleSheets CSS HTML XMLHttpRequest对象和文档对象模型 DocumentObjectModel DOM 关于各种标准的更多信息 请参阅参考资料 运行在浏览器上的Ajax应用程序以一种异步的方式与Web服务器通信 并且只更新页面的一部分 通过利用Ajax技术 可以提供丰富的 基于浏览器的用户体验 在开始Ajax之旅以前 需要熟悉很多不同的语言 标准 工具和库 一开始就要在不同选项之间做出选择并组合出一个开发环境来可能有些勉为其难 作者将根据他们自己的ramp up 项目初始阶段的准备工作 经验帮助您在旅途中避免可能遇到的一些比较常见的 令人厌烦的问题 Ajax工具和技术综述 Ajax将改变用户在网站上的体验 之前的单击 显示页面式的体验将变成具有交互性 灵活性的桌面应用程序体验 用户可以避免页面重新加载 避免等待下一部分内容的呈现 您可能在想 这一切听起来是不错 但是如何才能做得到呢 为了回答这个问题 先来看看Ajax技术背后的一些幕后故事 Ajax是以下Web技术和标准的集合 它允许使用客户端的机器在背后运行应用程序逻辑的重要部分 而不仅仅是呈现应用程序的输出 超文本标记语言 HypertextMarkupLanguage HTML 定义最终呈现给用户的内容 层叠样式表 CascadingStyleSheets CSS 定义所呈现内容的样式 或装饰 文档对象模型 DocumentObjectModel DOM 一种API 浏览器使用它将被呈现内容公开给JavaScript脚本 然后 脚本可以使用DOM在用户看到内容之前动态地修改内容 XmlHttpRequest对象 为浏览器与服务器之间的交互提供便利 通过JavaScript脚本调用 JavaScript 在浏览器中执行的一种编程语言 将所有其他的Ajax组成部分黏合在一起 脚本可以侦听浏览器中发生的事件 例如单击一个按钮 并使用XmlHttpRequests回调服务器以对事件作出反应 然后根据返回的结果修改DOM树 所有这些技术都在用户的Web浏览器中执行 用户的Web浏览器充当执行Ajax程序的平台 Ajax工具和技术综述 如果要使用Ajax 那么有一点值得格外注意 组成它的技术虽然是基于标准的 但又是特定于浏览器的 换句话说 同一个应用程序在不同的浏览器上可能表现出不同的行为 然而 由于既不可能限制用户使用特定的浏览器 又不可能忽略客户机的浏览器可能不支持CSS或DOM这一事实 因此 作为应用程序的创建者 您需要理解各种不同浏览器之间的差异 要成为一名高效的Ajax开发人员 需要 了解形成Ajax开发基础的技术 理解可用的运行时平台和Web浏览器 开发Ajax应用程序时使用支持各种语言的IDE 拥有用于各种环境和语言的调试器和应用程序测试工具 信息源 developerWorks上由BrettMcLaughlin撰写的掌握Ajax系列是最好的Ajax教程之一 该系列不要求预先知道多少Ajax编程知识 并且描述了各种与Ajax相关的技术 如果您想更好地理解Web架构 那么可能需要对RepresentationalStateTransfer REST 有所熟悉 HowtoCreateaRESTProtocol 请参阅参考资料 这篇文章可以作为这一方面很好的入门资料 阅读完掌握Ajax系列 并且亲自开始一些开发之后 您还将需要一些其他的参考信息 W3Schools 请参阅参考资料 提供了核心Ajax技术 JavaScript CSS HTML DOM XML等 的在线参考信息 如果您使用的是MozillaFirefox浏览器 那么应该使用DevEdge侧栏 请参阅参考资料 这些侧栏包含各种Ajax技术标准的索引 您可以使用它们作为参考指南 最后 如果您想到Ajax社区去感受一下 那么应该订阅Ajaxian博客 请参阅参考资料 浏览器作为运行时环境 Web浏览器不仅是Ajax部署环境 同时还是调试环境 大多数浏览器都可以添加调试辅助工具 例如DOM树查看器或调试器 文章下节将对以下各种流行的浏览器作一个概述 Microsoft InternetExplorer IE FirefoxSafari InternetExplorer IE一直是大多数用户的选择 IE6是一款成熟的浏览器 具有非常深的市场底蕴 很多CSS和DOM特性在IE6中不受支持 或者以一种专用的形式提供 使用IE6的开发人员可能会遇到以下一些问题 缓慢的JavaScript解释器和不一致的标准实现 缺少透明的PNG支持 DOM事件 一个事件可能在Firefox中使用一个名称 而在IE中又使用另一个名称 有些事件的调用顺序不一样 在IE中和在Firefox中相同的事件对象可能具有不同的属性 有关这一问题的更多信息 请阅读 把应用程序从InternetExplorer迁移到Mozilla 请参阅参考资料 未实现的CSS属性 例如minimum maximumheight selectors等等 尽管存在这些问题 您还是应该相信大多数用户都是使用这个浏览器 也可以试着使用各种不同的库从而在一定程度上填补IE6的不足 例如 IE7 请参阅参考资料 IE7在IE6的基础上有了很多明显的改进 例如对标签的支持 对于开发人员而言 隐藏的改进更为重要 IE7提供了一个性能更佳的JavaScript解释器 并修复了IE6中的很多缺陷 例如CSS 使得最遵从标准的Ajax应用程序只需要少量的修改便可以在该浏览器上运行 IE调试辅助工具 可以使用以下工具在IE中调试应用程序 IEDeveloperToolbar 允许更好地控制IE环境 缓存 cookie 浏览DOM树 以及浏览和操纵元素的样式 在分析由应用程序生成的页面时 这是非常有用的工具 IEDeveloperToolbar可以从Microsoft下载 参考资料中提供了下载链接 MicrosoftScriptDebugger 随MicrosoftOffice 可以从Microsoft下载 请参阅参考资料 一起发布 通过它可以在JavaScript代码中设置断点 观察变量 还可以执行常规的调试例程 注意 在调试时 建议在每个调试会话之前通过IEDeveloperToolbar禁用缓存 否则后面会调试缓存版本的代码 IE调试辅助工具 IE相关浏览器可以使用Trident IE浏览器引擎 创建 新 的浏览器 例如Maxthon 这里新字打上了引号 因为从开发人员的角度来看 浏览器的关键特 例如对Ajax的支持 仍然相同 请参阅参考资料了解更多关于Trident的知识 MozillaFirefox 虽然Firefox已经出来好几个版本 但是这里只讨论Firefox2 0 开发人员和超级用户常常使用Firefox 它是UNIX 类操作系统的首选 而且是开放源码的 除了IE之外 它是最流行的浏览器 Firefox有一个速度很快的JavaScript解释器 并且具有各种Web标准的优异的实现 由于它的Ajax友好性 我们强烈建议将Firefox用于大多数Ajax开发 通常 很多Ajax开发人员都是在Firefox上开始应用程序开发的 然后才转而使用其它浏览器 Firefox调试辅助工具 Firefox具有一个强大的 开放的扩展机制 它的社区借助这种机制创建了大量的Web开发辅助工具 然而 到目前为止 Firebug 请参阅参考资料 是其中最为流行的 要了解关于Firebug功能的更多细节 请参阅 AjaxDebuggingwithFirebug Firebug是一个集成的扩展 通过它可以 使用断点 变量查看和逐步方式来调试JavaScript代码 查看网络状况 查看和优化各种不同元素的DOM树和CSS Firebug1 0的强大性和灵活性为Ajax开发树立了里程碑 也是使用Firefox作为首选开发浏览器的有力的理由 Firefox相关的浏览器一些浏览器 例如Camino 使用了Firefox的布局引擎MozillaGecko 请参阅参考资料 这些浏览器通过一个匹配的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中测试应用程序 那么可以打开SafariDebug菜单 通过该菜单可以查看DOM树 CSS和缓存等 Safari相关的浏览器 WebKit应用于很多浏览器 其中最引入注目的是OmniWeb AjaxIDE和工具在开发新的Ajax应用程序时 如果所使用的IDE支持所有Ajax相关技术并且提供快捷 友好的开发环境和UI将会使您如虎添翼 在选择一款AjaxIDE时 需要考虑以下一些特性 具有自动完成 颜色突出显示 错误提示等功能的语法制导编辑功能 用于HTML CSS JavaScript和DOM 各种技术的相关文档集成的JavaScript调试器网络监控功能DOM内省框架集成虽然您可能会考虑购买一个IDE 但其实Eclipse和它的相关插件就提供了一个功能完善的 基于开放源码的AjaxIDE 这个IDE可以免费下载 本节将讨论以下这些基于Eclipse的 包括插件的AjaxIDE 含Web工具箱 toolkit 的EclipseEclipseATFAptana 含有Web工具箱的Eclipse 如果您是一名Java 开发人员 负责服务器端的Java开发 那么使用EclipseWeb工具箱也是开始基本Ajax开发的简单易行的方法 通过添加Eclipse的Web工具 请参阅参考资料 可以获得一个可用于开发Web工件的基本环境 还可以获得可编辑HTML CSS和JavaScript文件的编辑器和编辑工具 注意 EclipseWeb工具环境不限于Ajax开发 它还支持侧重于服务器端的Web应用程序开发 因此 它提供了诸如语法突出显示和基本代码完成之类的核心功能 它并未提供特定于Ajax开发任务的调试功能或DOM操纵功能 EclipseATF 您可以安装EclipseAjaxToolkitFramework ATF 环境 请参阅参考资料 并将其与EclipseWeb工具箱相结合 从而产生一个强大的 支持Ajax开发需求所有方面的环境 ATF提供了以下特性 一个DOM浏览器和CSS运行时编辑器一个JavaScript调试器 通过利用MozillaXUL运行程序 网络流量监控通过库配置文件实现常用库的简单库集成与JSLint 请参阅参考资料 的集成 以执行JavaScript验证该工具箱中一个非常有价值的特性是在集成的XUL运行程序中运行 测试和检查应用程序 SOAandWebservices 面向服务的体系结构 Service OrientedArchitecture 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服务管理 ITServiceManagement ITSM 服务一部分的发现 监视 保护 供应 更改和生命周期管理工作 SOA场景 之前讨论的五个SOA切入点直接映射到 即具有一对一关系 本列表中的前五个场景 例如 重用直接映射到服务创建 而连接性直接映射到服务连接性 我们还将讨论其他SOA场景 这些场景均以上面的五个切入点为基础 即SOA设计 SOA治理与SOA安全性以及管理 让我们花一点时间给出一个实际的切入点 场景及其实现 在图1中 可以看到重用切入点如何直接映射到服务创建场景 而后者包含四个实现 其中一个名为 从头创建新服务 createnewservicesfromscratch 因此 将这些加以结合 在此示例中 您将通过重用切入点进入SOA 此切入点可帮助您对公司的现有服务加以充分利用 如果随后发现缺少主要SOA服务 从头创建新服务 实现详细说明了如何创建SOA服务 SOA切入点和场景 您现在应该已经对五个SOA切入点和八个场景很熟悉 而且也应该知道了每个场景如何通过多个实现帮助您实现SOA解决方案 图1给出了一个示例 说明了可以如何将这些部分进行混合和匹配 以提供任何企业都能够利用的各种SOA方法 为了进一步说明这些方法 在本文剩下的部分 我们将了解JKEnterprises如何在整个企业实现SOA所带来的很多好处 SAAS SaaS是Software as a service 软件即服务 的简称 它是一种通过Internet提供软件的模式 用户不用再购买软件 而改用向提供商租用基于Web的软件 来管理企业经营活动 且无需对软件进行维护 服务提供商会全权管理和维护软件 对于许多小型企业来说 SaaS是采用先进技术的最好途径 它消除了企业购买 构建和维护基础设施和应用程序的需要 近年来 SaaS的兴起已经给传统套装软件厂商带来真实的压力 SaaS服务提供模式 SaaS服务提供商为中小企业搭建信息化所需要的所有网络基础设施及软件 硬件运作平台 并负责所有前期的实施 后期的维护等一系列服务 企业无需购买软硬件 建设机房 招聘IT人员 只需前期支付一次性的项目实施费和定期的软件租赁服务费 即可通过互联网享用信息系统 服务提供商通过有效的技术措施 可以保证每家企业数据的安全性和保密性 企业采用SaaS服务模式在效果上与企业自建信息系统基本没有区别 但节省了大量用于购买IT产品 技术和维护运行的资金 且像打开自来水龙头就能用水一样 方便地利用信息化系统 从而大幅度降低了中小企业信息化的门槛与风险 SaaS服务的优势 对企业来说 SaaS的优点在于 从技术方面来看 企业无需再配备IT方面的专业技术人员 同时又能得到最新的技术应用 满足企业对信息管理的需求 从投资方面来看 企业只以相对低廉的 月费 方式投资 不用一次性投资到位 不占用过多的营运资金 从而缓解企业资金不足的压力 不用考虑成本折旧问题 并能及时获得最新硬件平台及最佳解决方案 从维护和管理方面来看 由于企业采取租用的方式来进行物流业务管理 不需要专门的维护和管理人员 也不需要为维护和管理人员支付额外费用 很大程度上缓解企业在人力 财力上的压力 使其能够集中资金对核心业务进行有效的运营 计算环境的根本性变革 虚拟化技术虚拟化是一个广义的术语 在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行 虚拟化技术可以扩大硬件的容量 简化软件的重新配置过程 CPU的虚拟化技术可以单CPU模拟多CPU并行 允许一个平台同时运行多个操作系统 并且应用程序都可以在相互独立的空间内运行而互不影响 从而显著提高计算机的工作效率 虚拟化技术 虚拟化技术与多任务以及超线程技术是完全不同的 多任务是指在一个操作系统中多个程序同时并行运行 而在虚拟化技术中 则可以同时运行多个操作系统 而且每一个操作系统中都有多个程序运行 每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上 而超线程技术只是单CPU模拟双CPU来平衡程序运行性能 这两个模拟出来的CPU是不能分离的 只能协同工作 虚拟化技术也与目前VMwareWorkstation等同样能达到虚拟效果的软件不同 是一个巨大的技术进步 具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面 虚拟化技术 纯软件虚拟化解决方案存在很多限制 客户 操作系统很多情况下是通过VMM VirtualMachineMonitor 虚拟机监视器 来与硬件进行通信 由VMM来决定其对系统上所有虚拟机的访问 注意 大多数处理器和内存访问独立于VMM 只在发生特定事件时才会涉及VMM 如页面错误 在纯软件虚拟化解决方案中 VMM在软件套件中的位置是传统意义上操作系统所处的位置 而操作系统的位置是传统意义上应用程序所处的位置 这一额外的通信层需要进行二进制转换 以通过提供到物理资源 如处理器 内存 存储 显卡和网卡等 的接口 模拟硬件环境 这种转换必然会增加系统的复杂性 此外 客户操作系统的支持受到虚拟机环境的能力限制 这会阻碍特定技术的部署 如64位客户操作系统 在纯软件解决方案中 软件堆栈增加的复杂性意味着 这些环境难于管理 因而会加大确保系统可靠性和安全性的困难 虚拟化技术 而CPU的虚拟化技术是一种硬件方案 支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程 通过这些指令集 VMM会很容易提高性能 相比软件的虚拟实现方式会很大程度上提高性能 虚拟化技术可提供基于芯片的功能 借助兼容VMM软件能够改进纯软件解决方案 由于虚拟化硬件可提供全新的架构 支持操作系统直接在上面运行 从而无需进行二进制转换

温馨提示

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

评论

0/150

提交评论