希望某个人能天天开开心心的~~送祝福
广而告之:点击这里可以抢夺VPN免费使用账号
MicrosoftVBscript运行时错误(完整版)共121个
MicrosoftVBscript运行时错误(完整版)共121个
MicrosoftVBscript运行时错误(0x000A0005) 无效的过程调用或参数
MicrosoftVBscript运行时错误(0x000A0005) 无效的过程调用或参数
MicrosoftVBscript运行时错误(0x000A0006) 溢出
MicrosoftVBscript运行时错误(0x000A0007) 内存不够
MicrosoftVBscript运行时错误(0x000A0009) 下标越界
MicrosoftVBscript运行时错误(0x000A000A) 该数组为定长的或临时被锁定
MicrosoftVBscript运行时错误(0x000A000B) 被零除
MicrosoftVBscript运行时错误(0x000A000D) 类型不匹配
MicrosoftVBscript运行时错误(0x000A000E) 字符串空间不够
MicrosoftVBscript运行时错误(0x000A0011) 不能执行所需的操作
MicrosoftVBscript运行时错误(0x000A001C) 堆栈溢出
MicrosoftVBscript运行时错误(0x000A0023) 未定义过程或函数
MicrosoftVBscript运行时错误(0x000A0030) 加载 DLL 时出错
MicrosoftVBscript运行时错误(0x000A0033) 内部错误
MicrosoftVBscript运行时错误(0x000A0034) 错误的文件名或号码
MicrosoftVBscript运行时错误(0x000A0035) 文件未找到
MicrosoftVBscript运行时错误(0x000A0036) 错误的文件模式
MicrosoftVBscript运行时错误(0x000A0037) 文件已经打开
MicrosoftVBscript运行时错误(0x000A0039) 设备 I/O 错误
MicrosoftVBscript运行时错误(0x000A003A) 文件已存在
MicrosoftVBscript运行时错误(0x000A003D) 磁盘已满
MicrosoftVBscript运行时错误(0x000A003E) 输入超出了文件尾
MicrosoftVBscript运行时错误(0x000A0043) 文件过多
MicrosoftVBscript运行时错误(0x000A0044) 设备不可用
MicrosoftVBscript运行时错误(0x000A0046) 没有权限
MicrosoftVBscript运行时错误(0x000A0047) 磁盘没有准备好
MicrosoftVBscript运行时错误(0x000A004A) 重命名时不能带有其他驱动器符号
MicrosoftVBscript运行时错误(0x000A004B) 路径/文件访问错误
MicrosoftVBscript运行时错误(0x000A004C) 路径未找到
MicrosoftVBscript运行时错误(0x000A005B) 对象变量未设置
MicrosoftVBscript运行时错误(0x000A005C) For 循环未初始化
MicrosoftVBscript运行时错误(0x000A005E) 无效使用 Null
MicrosoftVBscript运行时错误(0x000A0142) 不能创建必要的临时文件
MicrosoftVBscript运行时错误(0x000A01A8) 缺少对象
MicrosoftVBscript运行时错误(0x000A01AD) ActiveX 部件不能创建对象
MicrosoftVBscript运行时错误(0x000A01AE) 类不支持 Automation 操作
MicrosoftVBscript运行时错误(0x000A01B0) Automation 操作中文件名或类名未找到
MicrosoftVBscript运行时错误(0x000A01B6) 对象不支持此属性或方法
MicrosoftVBscript运行时错误(0x000A01B8) Automation 操作错误
MicrosoftVBscript运行时错误(0x000A01BD) 对象不支持此操作
MicrosoftVBscript运行时错误(0x000A01BE) 对象不支持已命名参数
MicrosoftVBscript运行时错误(0x000A01BF) 对象不支持当前区域设置选项
MicrosoftVBscript运行时错误(0x000A01C0) 未找到已命名参数
MicrosoftVBscript运行时错误(0x000A01C1) 参数是必选项
MicrosoftVBscript运行时错误(0x000A01C2) 错误的参数个数或无效的参数属性值
MicrosoftVBscript运行时错误(0x000A01C3) 对象不是一个集合
MicrosoftVBscript运行时错误(0x000A01C5) 未找到指定的 DLL 函数
MicrosoftVBscript运行时错误(0x000A01C7) 代码资源锁定错误
MicrosoftVBscript运行时错误(0x000A01C9) 此键已与该集合的一个元素关联
MicrosoftVBscript运行时错误(0x000A01CA) 变量使用了一个 VBScript 中不支持的 Automation 类型
MicrosoftVBscript运行时错误(0x000A01CE) 远程服务器不存在或不可用
MicrosoftVBscript运行时错误(0x000A01E1) 无效图片
MicrosoftVBscript运行时错误(0x000A01F4) 变量未定义
MicrosoftVBscript运行时错误(0x000A01F5) 非法赋值
MicrosoftVBscript运行时错误(0x000A01F6) 对象不能安全用 Script 编程
MicrosoftVBscript运行时错误(0x000A01F7) 对象不能安全初始化
MicrosoftVBscript运行时错误(0x000A01F8) 对象不能安全创建
MicrosoftVBscript运行时错误(0x000A01F9) 无效的或无资格的引用
MicrosoftVBscript运行时错误(0x000A01FA) 类没有被定义
MicrosoftVBscript运行时错误(0x000A01FB) 出现一个意外错误
MicrosoftVBscript运行时错误(0x000A03E9) 内存不够
MicrosoftVBscript运行时错误(0x000A03EA) 语法错误
MicrosoftVBscript运行时错误(0x000A03EB) 缺少 :
MicrosoftVBscript运行时错误(0x000A03ED) 缺少 (
MicrosoftVBscript运行时错误(0x000A03EE) 缺少 )
MicrosoftVBscript运行时错误(0x000A03EF) 缺少 ]
MicrosoftVBscript运行时错误(0x000A03F2) 缺少标识符
MicrosoftVBscript运行时错误(0x000A03F3) 缺少 =
MicrosoftVBscript运行时错误(0x000A03F4) 缺少 If
MicrosoftVBscript运行时错误(0x000A03F5) 缺少 To
MicrosoftVBscript运行时错误(0x000A03F6) 缺少 End
MicrosoftVBscript运行时错误(0x000A03F7) 缺少 Function
MicrosoftVBscript运行时错误(0x000A03F8) 缺少 Sub
MicrosoftVBscript运行时错误(0x000A03F9) 缺少 Then
MicrosoftVBscript运行时错误(0x000A03FA) 缺少 Wend
MicrosoftVBscript运行时错误(0x000A03FB) 缺少 Loop
MicrosoftVBscript运行时错误(0x000A03FC) 缺少 Next
MicrosoftVBscript运行时错误(0x000A03FD) 缺少 Case
MicrosoftVBscript运行时错误(0x000A03FE) 缺少 Select
MicrosoftVBscript运行时错误(0x000A03FF) 缺少表达式
MicrosoftVBscript运行时错误(0x000A0400) 缺少语句
MicrosoftVBscript运行时错误(0x000A0401) 语句未结束
MicrosoftVBscript运行时错误(0x000A0402) 缺少整型常数
MicrosoftVBscript运行时错误(0x000A0403) 缺少 While 或 Until
MicrosoftVBscript运行时错误(0x000A0404) 缺少 While 和 Until或语句未结束
MicrosoftVBscript运行时错误(0x000A0405) 缺少 With
MicrosoftVBscript运行时错误(0x000A0406) 标识符过长
MicrosoftVBscript运行时错误(0x000A0407) 无效数字
MicrosoftVBscript运行时错误(0x000A0408) 无效字符
MicrosoftVBscript运行时错误(0x000A0409) 未结束的字符串常量
MicrosoftVBscript运行时错误(0x000A040A) 注释未结束
MicrosoftVBscript运行时错误(0x000A040D) 无效使用 Me 关键字
MicrosoftVBscript运行时错误(0x000A040E) loop 语句缺少 do
MicrosoftVBscript运行时错误(0x000A040F) 无效的 exit 语句
MicrosoftVBscript运行时错误(0x000A0410) 循环控制变量 for 无效
MicrosoftVBscript运行时错误(0x000A0411) 名称重定义
MicrosoftVBscript运行时错误(0x000A0412) 必须是行中的第一个语句
MicrosoftVBscript运行时错误(0x000A0413) 不能为 non-ByVal 参数赋值
MicrosoftVBscript运行时错误(0x000A0414) 调用子程序时不能使用括号
MicrosoftVBscript运行时错误(0x000A0415) 缺少文字常数
MicrosoftVBscript运行时错误(0x000A0416) 缺少 In
MicrosoftVBscript运行时错误(0x000A0417) 缺少 Class
MicrosoftVBscript运行时错误(0x000A0418) 必须在一个类的内部定义
MicrosoftVBscript运行时错误(0x000A0419) 在属性声明中缺少 Let , Set 或 Get
MicrosoftVBscript运行时错误(0x000A041A) 缺少 Property
MicrosoftVBscript运行时错误(0x000A041B) 在所有属性的规范中,变量的数目必须一致
MicrosoftVBscript运行时错误(0x000A041C) 在一个类中不允许有多个缺省的属性/方法
MicrosoftVBscript运行时错误(0x000A041D) 类的初始化或终止程序没有变量
MicrosoftVBscript运行时错误(0x000A041E) 属性的 set 或 let 必须至少有一个变量
MicrosoftVBscript运行时错误(0x000A041F) 错误的 Next
MicrosoftVBscript运行时错误(0x000A0420) Default 只能在 Property , Function 或 Sub 中指定
MicrosoftVBscript运行时错误(0x000A0421) 指定 Default 时必须同时指定 Public
MicrosoftVBscript运行时错误(0x000A0422) 只能在 Property Get 中指定 Default
MicrosoftVBscript运行时错误(0x000A1000) Microsoft VBScript 编译器错误
MicrosoftVBscript运行时错误(0x000A1001) Microsoft VBScript 运行时错误
MicrosoftVBscript运行时错误(0x000A1398) 缺少正则表达式对象
MicrosoftVBscript运行时错误(0x000A1399) 正则表达式语法错误
MicrosoftVBscript运行时错误(0x000A139A) 错误的数量词
MicrosoftVBscript运行时错误(0x000A139B) 正则表达式中缺少 ]
MicrosoftVBscript运行时错误(0x000A139C) 正则表达式中缺少 )
MicrosoftVBscript运行时错误(0x000A139D) 字符集越界
移动数据库基本原理及其前景
数据库技术一直随着计算的发展而不断进步,随着移动计算时代的到来,嵌入型操作系统对移动数据库系统的需求为数据库技术开辟了新的发展空间。
随身携带的数据库
移动计算使得计算机或其他信息设备在没有与固定的物理连接设备相连的情况下能够传输数据。所谓移动数据库是指支持移动计算环境的分布式数据库,通常应用在诸如掌上电脑、PDA、车载设备、移动电话等嵌入型设备中。
移动计算环境比传统的计算环境更为复杂和灵活。计算平台的移动性、连接的频繁断接性、网络条件的多样性、网络通信的非对称性、系统的高伸缩性和低可靠性以及电源能力的有限性等因素对移动数据库的性能提出了相当高的要求。移动技术的发展必将对移动数据库的发展起强大的推动作用,同时移动数据库的发展也能促进移动计算的广泛应用。
关键问题
移动数据库在实际应用中必须解决好数据的一致性(复制性)、高效的事务处理、数据的安全性等问题。
● 数据的一致性
移动数据库的一个显著特点是移动终端之间以及与服务器之间的连接是一种弱连接,即低带宽、长延迟、不稳定和经常性的断开。为了支持用户在弱环境下对数据库的操作,现在普遍采用乐观复制方法(Optimistic replication 或Lazy replication)允许用户对本地缓存上的数据副本进行操作。待网络重新连接后再与数据库服务器或其他终端交换数据修改信息,并通过冲突检测和协调来恢复数据的一致性。
● 高效的事务处理
移动事务处理要解决在移动环境中频繁的、可预见的拆连情况下的事务处理。为了保证活动事务的顺利完成,必须设计和实现新的事务管理策略和算法。
1)根据网络连接情况来确定事务处理的优先级,网络连接速度高的事务请求优先处理。
2)根据操作时间来确定事务是否迁移,即长时间的事务操作将全部迁移到服务器上执行,无需保证网络的一直畅通。
3) 根据数据量的大小来确定事务是上载执行还是下载数据副本执行后上载。
4)事务处理过程中,网络断接处理时采用服务器发现机制还是采用客户端声明机制。
5)事务移动(如:位置相关查询)过程中的用户位置属性的实时更新。
6)完善的日志记录策略
● 数据的安全性
许多应用领域的嵌入型设备是系统中数据管理或处理的关键设备,因此嵌入型设备上的数据库系统对访问权限的控制较严格。同时,许多嵌入型设备具有较高的移动性、便携性和非固定的工作环境,也带来潜在的不安全因素。同时某些数据的个人隐私性又很高,因此在防止碰撞、磁场干扰、遗失、盗窃等对个人数据安全的威胁上需要提供充分的安全性保证。保证数据安全的主要措施是:第一,对移动终端进行认证,防止非法终端的欺骗性接入;第二,对无线通信进行加密,防止数据信息泄漏;第三,对下载的数据副本加密存储,以防移动终端物理丢失后的数据泄密。
主要特性
移动数据库的计算环境是传统分布式数据库的扩展,它可以看作客户端与固定服务器节点动态连接的分布式系统。因此移动计算环境中的数据库管理系统是一种动态分布式数据库管理系统。由于移动数据库在移动计算的环境下应用在嵌入型操作系统之上,所以它有自己的特点和功能需求。
微小内核结构
考虑到嵌入型设备的资源有限,移动数据库应采用微型化技术实现,在满足应用的前提下紧缩其系统结构以满足嵌入型应用的需求。
对标准SQL的支持
移动数据库应能提供对标准SQL的支持。支持SQL92标准的子集,支持数据查询(连接查询、子查询、排序、分组等)、插入、更新、删除多种标准的SQL语句,充分满足嵌入型应用开发的需求。
事务管理功能
移动数据库应具有事务处理功能,自动维护事务的完整性、原子性等;支持实体完整性和引用完整性。
完善的数据同步机制
数据同步是移动数据库最重要的特点。通过数据复制,可以将移动数据库或主数据库的变化情况应用到对方,保证了数据的一致性。移动数据库管理系统应具有以下的特点:
1)提供多种数据同步方式。具有上载同步、下载同步和完全同步三种同步方式。
2)具有完善的冲突检测机制和灵活的冲突解决方案,具有冲突日志记录功能。
3)支持快速同步。系统同步时,只传递变化的数据,节省了大量的同步时间。
4)支持表的水平分割和垂直分割复制,最大限度地降低了移动数据库的大小。
5) 支持异构数据源连接同步。可以用支持ODBC的异构数据源作为主数据库和嵌入型设备上的数据库进行数据同步。
6)具有主动同步的功能。允许用户对系统提供的同步事件自定义过程实现,提供了最大灵活度的同步过程。
支持多种连接协议
移动数据库应支持多种通信连接协议。可以通过串行通信、TCP/IP、红外传输、蓝牙等多种连接方式实现与嵌入型设备和数据库服务器的连接。
完备的数据库管理功能
移动数据库应具有自动恢复功能,基本无需人工干预进行移动数据库管理并能够提供数据的备份和恢复,保证用户数据的安全可靠。
支持多种嵌入型操作系统
移动数据库应能支持Windows CE、Palm OS等多种目前流行的嵌入型操作系统,这样才能使它不受移动终端的限制。
另外,一种理想的状态是用户只用一台移动终端(如手机)就能对与他相关的所有移动数据库进行数据操作和管理,这就要求前端系统具有通用性,而且要求移动数据库的接口有统一、规范的标准。前端管理系统在进行数据处理时自动生成统一的事务处理命令,提交当前所连接的数据服务器执行。这样就有效增强了移动数据库的通用性,扩大了它的应用范围。
总之,在移动数据库中还需要考虑诸多传统计算环境下不需要考虑的问题,如对断接操作的支持、对跨区长事务的支持、对位置相关查询的支持、对查询优化的特殊考虑以及对提高有限资源的利用率和对系统效率的考虑等等。为了有效地解决上述问题,诸如复制与缓存技术、移动事务处理、数据广播技术、移动查询处理与查询优化、位置相关的数据处理及查询技术、移动信息发布技术、移动Agent等技术仍在不断的发展和完善,他们会进一步促进移动数据库技术的发展。
小结
对于移动和嵌入式数据库市场来说,包括IBM DB2 、微软SQL Server、Oracle以及Sybase都有相应的产品。而随着便携式计算机和智能设备中软件应用的不断增长,全球移动数据库市场的销售将急剧增长。移动数据库技术配合GPS技术,可以用于智能交通管理、大宗货物运输管理和消防现场作业等,除此以外,它还在零售业、制造业、金融业、医疗卫生等领域展现了广阔的应用前景。
RIA
什么是RIA?
RIA(Rich Interface Applications)富界面应用,俗称胖客户端.
RIA的优势
RIA 具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。RIA具有的Web应用程序的特点包括如:立即部署、跨平台、采用逐步下载来检索内容和数据以及可以充分利用被广泛采纳的互联网标准。RIA具有通信的特点则包括实时互动的声音和图像。
客户机在RIA中的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、传送和检索数据、显示集成的用户界面和综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行。
对于企业来说,部署RIA的好处在于:
1)RIA可以继续使用现有的应用程序模型(包括J2EE和.NET),因而无需大规模替换现有的Web应用程序。通过Rich Client技术,可以轻松构建更为直观、易于使用、反应更迅速并且可以脱机使用的应用程序。
2)RIA可以帮助企业提供多元化的重要业务效益,包括产提高销量、提高品牌忠诚度、延长网站逗留时间、较频繁的重复访问、减少带宽成本、减少支持求助以及增强客户关系等。
4. RIA目前的发展态势
在过去的两到三年中,Web开发人员一直是想构建一种比传统HTML更丰富的客户端:这是一个用户接口,它比用HTML能实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。RIA技术的出现允许我们在因特网上以一种像使用Web一样简单的方式来部署富客户端程序。无论将来RIA是否能够如人们所猜测的那样完全代替HTML应用系统,对于那些采用C/S架构的胖客户端技术运行复杂应用系统的机构和采用基于B/S架构的瘦客户端技术部署Web应用系统地机构来说,RIA确实提供了一种廉价的选择。下面介绍一下目前出现的几种比较有实力或者有特点的RIA客户端开发技术:
1) Macromedia Flash/Flex
Flash 从6.0开始Flash就逐步具备建立窗体风格的应用程序的功能。据Macromedia称已经有98%以上的桌面系统的浏览器都安装了 Macromedia Flash Player。这使得以Macromedia Flash Player为客户端的RIA可以支持种类广泛的平台和设备。
Flex是为满足希望开发 RIA的企业级程序员的需求而推出的表示服务器和应用程序框架,它可以运行于J2EE和.NET平台。Flex表示服务器提供基于标准的、声明性的编程方法和流程,并提供运行时服务,用于开发和部署丰富客户端应用程序的表示层。Flex开发者使用直观的基于XML的MXML来定义丰富的用户界面。该语言由 Flex服务器翻译成SWF格式的客户端应用程序,在Flash Player中运行。
2) Laszlo
Laszlo 是一个开源的RIA开发环境。使用Laszlo平台时,开发者只需编写名为LZX的描述语言(其中整合了XML和Javascript),运行在J2EE 应用服务器上的Laszlo平台会将其编译成SWF格式的文件并传输给客户端展示。从这点上来说,Laszlo的本质和Flex是一样的。Flash是任何浏览器都支持的展示形式,从而一举解决了浏览器之间的移植问题。而且,在未来的计划中,Laszlo还可以将LZX编译成Java或.NET本地代码,从而大大提高运行效率。
3) Avalon
Microsoft的Avalon是下一版本的 Windows(代号"Longhorn")的一部分,是一个图形和展示引擎,主要由新加到.NET框架中的一组类集合而成。Avalon定义了一个在 Longhorn中使用的新标记语言,其代号为"XAML"(可扩展应用程序标记语言)。可以使用XAML来定义文本、图像和控件的布局,程序代码可以直接嵌入到XAML中,也可以将它保留在一个单独的文件内。这与Flex中的MXML或者Laszlo中的LZX非常相似。不同的是:基于 Avalon的应用程序必须运行在Longhorn环境中,而Flex和Laszlo是不依赖于平台的,仅仅需要装有Flash播放器的浏览器即可。
4) Java SWT
Java 已经出现几年了,并且完全支持创建基于窗体的用户界面。除了Java基础类(JFC/Swing)中的用户界面组件之外,开发人员还可以使用来自于 Eclipse Project的SWT工具箱和许多第三方工具箱进行开发。对于图形来说,可以采用Java 2D API:一个非常完整且非常复杂的图形API。你可以通过一个Web浏览器使用Java插件软件,或使用Java运行时环境中较新的Java Web Start技术来部署应用程序。使用Java建立Rich Client的主要缺陷是它的复杂性(即使对简单的窗体和图形也要求编写非常烦琐的代码)和Java浏览器插件的低市场占有率。
5) XUL
XUL (念作"zool")是一种基于XML的用户界面语言,它来自于Mozilla的开放源码项目。它可用于建立窗体应用程序,这些应用程序不但可以在 Mozilla浏览器上运行,而且也可以运行在其他描述引擎上,如Zulu(一个Flash MX组件)和Thinleys(一个Java实现)。XUL描述引擎都非常小(100K以下),它可以使用XML数据也可以生成XML数据。XUL的一个主要缺点在于它目前还没有获得一个主要商业实体的支持。XUL最大的优点在于它与Gecko引擎的集成(打开了通向大量Web标准的大门),以及与大多数其它XML用户界面描述语言相比它是一种非常具有表达力和简洁的语言。
6) Bindows
Bindow 是用Javascript和DHTML开发的Web窗体框架。Javascript用于客户端界面的显示和处理,XMLHTTP用于客户端与服务器的信息传输。Javascript在客户端的表现力不容置疑,利用Javascript几乎可以实现Windows应用程序所能干的大部分事情,XMLHTTP 一直以来常被用于实现"无刷新"的Web页面,它和 Javascript配合,可以完成数据从服务器和客户端的传输。Bindows的一个主要的缺点是它采用一次全部载入的方式来实现脚本库,在窗口的加载期,需要一个漫长的等待过程,甚至浏览器的进程会产生无响应的情况。这点Bindows根本没有遵循"用多少去多少"的准则。另外,内部大量利用了IE6 的技术,没有考虑到非IE的浏览器,限制了Bindows的流行。
5. RIA未来的发展预测
就目前RIA的使用情况来说,离"RIA时代"还有很远的一段距离。今后几年时间内传统的Web应用程序和RIA将会共存。笔者认为真正具有实力担当起普及丰富客户端应用重任的只有基于Flash Player的Flash/Flex应用程序和Microsoft的基于Avalon的应用程序。短期时间内(估计2-3年时间)可能是 Flash/Flex应用程序在新兴的网络应用程序市场上占有主导地位。随着时间的推移,Flash/Flex应用程序的市场占有率可能会慢慢被基于 Avalon的应用程序所蚕食。当然,Flash Player和Flex以后也会不断推出新版本,相对于升级操作系统或安装Avalon运行环境,人们肯定更愿意升级Flash Player。Flash/Flex应用程序也有其本身固有的软肋,Flash Player的执行效率和对本地资源的操作限制是无法和Avalon相比的,相对于浏览器中的插件而言,Avalon的应用程序拥有更加广阔的可操作空间和更高的执行效率。
目前Microsoft还在推广一种叫做Smart Client(智能客户端)的客户端程序技术,Microsoft称Smart Client是比Rich Client更优秀的客户端,因而采用Smart Client的应用程序算不算RIA目前我个人还无法作答。这里我们之所以提及Smart Client,是因为Smart Client的特性跟我们谈的Rich Client有太多的相似之处。Smart Client拥有自动更新、离线状态下的数据处理和可以使用本地资源等特征,其中的可使用本地资源这一项无疑是一大卖点,因为浏览器中的 Flash/Flex应用程序目前还无法操作本地的一些资源,比如Flash/Flex应用程序无法将网上的文件保存到本地或者修改本地文件。虽然 Macromedia的Central1.5已经可以对本地文件进行简单的操作,并且flex1.5开发的RIA也能够运行于Central上,但是如何使Central能够得到大范围推广还是个问题。相对于轻量级的Rich Client,Smart Client更接近C/S架构中的客户端程序。Rich Client和Smart Client的定位还是有所区别的:Rich Client更适合作为轻量级的基于浏览器的网络应用程序客户端;Smart Client更适合作为Windows桌面应用程序的智能客户端。
不管我们今天称之为的RIA今后会不会成为主流应用程序,人们对开发具有高度互动性、丰富用户体验以及功能强大的客户端的追求是不变的。有理由相信,拥有成熟技术和极高市场占有率的Flash客户端将会在RIA道路上越走越远。Microsoft未来的重量级武器:Avalon和Smart Client能否后来者居上让我们拭目以待。
silverlight
微软SilverLight是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA,Rich Interface Application)的网络交互程序。

因为SilverLight提供了一个强大的平台,能够开发出具有专业图形、音频和视频的Web应用程序,增强了用户体验,所以SilverLight吸引了设计人员和开发人员的眼球。同时,SilverLight还提供了强大的工具来提高他们的工作效率。
SilverLight能创建一种具有很高艺术性的应用程序,具有以下的特点:
◆一种跨浏览器、跨平台的技术。可以在所有流行的浏览器中运行,包括Microsoft Interner Explorer、Mozilla Firefox, Apple Safari, 和Opera,同样可以运行于Microsoft Windows和Apple Mac OS X。
◆无论在哪运行,都能提供一致的用户体验。
◆需要下载很小的文件来安装以支持,只需几秒。
◆它的视频和音频流,视频质量无论从移动设备还是桌面浏览器都是720p HDTV video模式。
◆用户可在浏览器中直接对其进行控制,可以拖动、翻转、放大的图片。
◆它读取数据并且更新外观,但不会通过刷新整体页面来打断用户操作。
SilverLight将多种技术结合到一个开发平台,可以在其中选择符合需求的合适的工具和编程语言。SilverLight提供了如下的特性:
◆WPF和XAML。SilverLight包含了Windows Presentation Foundation(WPF)技术,这个技术在创建用户界面时极大的扩展了浏览器元素。WPF可以创建融合图形、动画、媒体和其他的富客户端特性,扩展了基于浏览器的用户界面,超越了HTML所提供的。可扩展应用程序标记语言(XAML)提供了创建WPF元素的声明性标记。
◆对于JavaScript的扩展。SilverLight提供了对于全球浏览器脚本语言的扩展,从而为浏览器用户界面提供更加强大的控件,包括与WPF元素工作的能力。
◆跨浏览器,跨平台的支持。SilverLight在所有的流行浏览器(任何平台)运行一致。设计和开发应用程序不需要担心你的用户是什么平台什么浏览器。
◆与现存应用程序的集成。SilverLight可以与已经存在的JavaScript和ASP.NET AJAX代码无缝集成,不会使已经创建的功能缺失。
◆可访问.NET Framework编程模型和相关工具。可以使用托管的Jscrit和IronPython或者C#和VB这样的动态语言来创建基于SilverLight的应用程序。可以使用Visual Studio这样的开发工具来创建基于SilverLight的应用程序。
◆LINQ。SilverLight包含集成查询(LINQ)语言。
◆如果已经使用ASP.NET,可以将SilverLight集成到熟悉的ASP.NET服务器和客户端功能。可以在ASP.NET中创建基于服务器的资源,使用ASP.NET的AJAX特性与服务器端资源交互而不会打断用户。
开发工具:
可以使用已经具有的技能和熟悉的工具来创建基于Silverlight的应用程序,在Web页面中,既可以使用HTML,也可以使用Silverlight的WPF元素,和HTML一样,在Web应用程序中XAML同样可以使用声明的标记来创建用户界面,不同的是,XAML提供了更强大的元素。
可以使用强大的Visual Studio 2008 创建Silverlight应用。(Silverlight在Visual Studio 2008 的IDE中作为一个插件而得到支持。)同样Visual Studio为Silverlight提供了开发工具,比如.NET Framework中已经为创建应用程序提供的强大的编辑器、项目管理、调试等等。
设计人员可以轻松的拥有使用Expression Studio进行设计、编译和发布Silverlight应用程序。Expression Studio有创建图像、媒体,设计交互和产生体验需要的一切能力。Expression Blend能够生成XAML进行输出,这样使用Visual Studio的程序员和使用Expression Blend的设计人员可以共享同样的文件。
Silverlight 的核心是浏览器增强模块,其作用是呈现 XAML 并在浏览器界面上绘制生成的图形。它的下载体积较小(不到 2 MB),可以在用户点击包含 Silverlight 内容的站点时进行安装。该模块向 JavaScript 开发人员公开 XAML 页面的底层框架,以便实现页面级的内容交互,这样,开发人员就可以进行自己的工作,例如编写事件处理程序或使用 JavaScript 代码来处理 XAML 页面内容。
在此,可以表明微软的Silverlight将会更加灵活和交互,并且具有超高的失量方式,可以对图像进行无限制的伸缩,对flash MX地位发起了挑战。
2008年6月底,微软发布silverlight2.0 beta,在2008北京奥运会时,NBC网站将使用silverlight2.0来进行奥运的网上全程直播和点播。
flex
1.Flex 是 Macromedia(现已被Adobe公司收购)发布的presentation server(展现服务),它是java web container或者.net server的一个应用,根据.mxml文件(纯粹的xml描述文件和actionscript)产生相应的.swf文件,传送到客户端,由客户端的flash player或者shockwave player解释执行,给用户以丰富的客户体验。现在Flex最新版本为Flex 3.0.
的Macromedia Flash是强大的矢量动画编辑工具,在做动画起家之后,Flash一直在谋求rich internet application(ria富客户端)的霸主地位,最有影响的是,已经推出了面向对象的编程脚本actionscript2.0,并且建立起类似于java swing的类库和相应component(组件)。Flex是通过java或者.net等非Flash途径,解释.mxml文件组织components,并生成相应得.swf文件。Flex的component和flash的component很相似,但是有所改进增强。
运用Flash是完全可以做到flex的效果的,为什么还需要flex呢?这里面有两个原因:1:为了迎合更多的developers(开发者)。Flash天生是为了designer(设计者)设计的,界面还有flash的动画概念和程序开发人员格格不入,为了吸引更多的jsp/asp/php等程序员,Macromedia推出了Flex,用非常简单的.mxml来描述界面给jsp/asp/php程序人员使用.(x/d)html非常相似,而且mxml更加规范化、标准化。
2,为了一个标准。大家一定听说过微软下一代系统longhorn,在longhorn推出的同时微软也会推出新的语言xaml,一种界面描述语言,与之相应的就是smart client和flex非常相似的东西。Mxml和Xaml的也很相似… …这是人机交互技术的进步的重要体现,即内部逻辑与外部界面交互相分离。
Flex和j2ee/.net其实没什么关系,Macromedia用java做出来个应用把flash的技术融合到J2EE里面,再用.net的技术做出来个.net应用把flash技术融合到.net里面去;应该说flex解决了J2EE里面和.net里面最繁琐的问题那就是web 客户端的问题。微软比较卑鄙,在ie里面built-in(事先安装好了)很多控件,可以被.net调用比如datagrid(gridview),java就没有办法啦,只能用最原始的html一个tag一个tag地print,真是头疼,还有客户端的javascript是最难调试的,不论java还是.net都束手无策。
3、与FLEX学习相关
[相关链接]
Adobe公司Flex主页:http://www.adobe.com/cn/products/flex/
ACAA教育(Adobe官方高级Flex & AIR富互联网应用开发培训):http://www.acaa.cn/
中文FlexExamples(上百个包含代码的Flex例子):http://blog.minidx.com
Flex中文社区:http://www.flexcoders.cn/
蓝色理想网站的Flex入门教程:http://www.blueidea.com/tech/multimedia/2004/2130.asp
一个不错的英文Flex资源列表收集站点:http://ntt.cc
关于Flex的Blog:http://www.k-zone.cn/zblog/
《Flex 3.0 RIA开发详解:基于ActionScript3.0实现》 黄曦 电子工业出版社 2008
《Flex与ActionScript编程》. 王睿. 机械工业出版社. 2008
什么是用RIA?
传统网络程序的开发是基于页面的、服务器端数据传递的模式,把网络程序的表现层建立于HTML页面之上,而HTML是适合于文本的,传统的基于页面的系统已经渐渐不能满足网络浏览者的更高的、全方位的体验要求了。而富互联网应用(Rich Internet Applications,缩写为RIA)的出现就是为了解决这个问题。
富互联网应用程序是下一代的将桌面应用程序的交互式用户体验与传统的WEB应用的部署灵活性和成本分析结合起来的网络应用程序。富互联网应用程序中的富客户技术通过提供可承载已编译客户端应用程序(以文件形式,用HTTP传递)的运行环境,客户端应用程序使用异步客户/服务器架构连接现有的后端应用服务器,这是一种安全、可升级、具有良好适应性的新的面向服务模型,这种模型由采用的WEB服务所驱动。结合了声音、视频和实时对话的综合通信技术,使富互联网应用程序(RIA)具有前所未有的网上用户体验。
Adobe RIA技术封装让现有的WEB技术得到了极大的保留,核心价值在于大大提高了产品设计师和开发工程师的“开发体验”,强化了设计端和开发端的整合。设计师和开发工程师们可以方便地将自己的代码平移到新的平台上,并且发布、部署的方式比之前的任何一款开发工具都方便得多,从而使RIA应用有更广大的开发者基础。
Adobe RIA技术也将带来新的桌面革命——“Desktop 2.0”,内容从Flash, HTML/CSS/JS,到PDF,几乎涵盖了时下最流行的WEB内容载体。此外,“可离线”应用模式能让用户更加安全、舒适地进行工作和娱乐。用户们不必再抱怨因网络故障而造成的信息损失,而且也可以借助本地资源更好地节省网络资源。因此,Adobe RIA技术可以让用户将WEB 2.0应用带回桌面,创造的商业应用价值和用户体验价值将超过以往任何技术。
采用Adobe Flex & AIR技术的经典应用
eBay(http://desktop.ebay.com)
eBay桌面是构建于Adobe AIR上的一个应用程序,程序创建了与eBay客户的持久连接。eBay桌面实时地直接将产品供货通知和拍卖更新发布给买主,这样用户不需要打开浏览器进入eBay网站就可以获取最新信息。
纳斯达克股票市场公司(https://data.nasdaq.com/mr.aspx)
NASDAQ Market Replay使用Adobe Flex和Adobe AIR在桌面上发布一个RIA,让金融专业人士能够重放任何时间点市场活动的详情。
纽约时报公司(http://shifd.com)
纽约时报公司正在开始ShifD,一个新的RIA,允许使用者在计算机和移动设备之间切换内容。ShifD工作在Web网站和移动设备之上以及两者之间,通过一个可下载的AIR应用程序提供给人们一种欣赏移动媒体的方式。
关于ACAA教育
Flex – 词法分析器生成器
flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C语言 写成。
Flex 手册里对 Flex 描述如下:
“flex 是一个生成扫描器的工具,能够识别文本中的词法模式。flex 读入给定的输入文件,如果没有给定文件名的话,则从标准输入读取,从而获得一个关于需要生成的扫描器的描述。此描述叫做 规则,由正则表达式和 C 代码对组成。flex 的输出是一个 C 代码文件——lex.yy.c——其中定义了 yylex() 函数。编译输出文件并且和 -lfl 库链接生成一个可执行文件。当运行可执行文件的时候,它分析输入文件,为每一个正则表达式寻找匹配。当发现一个匹配时,它执行与此正则表达式相关的 C 代码。”
一个相似的,用 C++语言 的词法分析器生成器是 flex++,包含在 flex 软件包里。
Flex 不是 GNU 工程,但是 GNU 为 Flex 写了手册。
官方网页:http://flex.sourceforge.net/
相关书籍:
O'Reilly, John Levine, Tony Mason, Doug Brown: lex & yacc, Second Edition, October 1992
SOA
面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。

这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。
虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于 SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与 SOA 相似。
然而,现在的 SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于 XML 的语言(称为 Web 服务描述语言(Web Services Definition Language,WSDL))来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言(Interface Definition Language,IDL)可比了。
Web 服务并不是实现 SOA 的惟一方式。前面刚讲的 CORBA 是另一种方式,这样就有了面向消息的中间件(Message-Oriented Middleware)系统,比如 IBM 的 MQseries。但是为了建立体系结构模型,您所需要的并不只是服务描述。您需要定义整个应用程序如何在服务之间执行其工作流。您尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA 应该能够将业务的商业流程与它们的技术流程联系起来,并且映射这两者之间的关系。例如,给供应商付款的操作是商业流程,而更新您的零件数据库,以包括进新供应的货物却是技术流程。因而,工作流还可以在 SOA 的设计中扮演重要的角色。
此外,动态业务的工作流不仅可以包括部门之间的操作,甚至还可以包括与不为您控制的外部合作伙伴进行的操作。因此,为了提高效率,您需要定义应该如何得知服务之间的关系的策略,这种策略常常采用服务级协定和操作策略的形式。
最后,所有这些都必须处于一个信任和可靠的环境之中,以同预期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何 SOA 中都起着重要的作用。
我可以用面向服务的体系结构做什么?
对 SOA 的需要来源于需要使业务 IT 系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT 系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。
下面举一个具体的例子。一个服装零售组织拥有 500 家国际连锁店,它们常常需要更改设计来赶上时尚的潮流。这可能意味着不仅需要更改样式和颜色,甚至还可能需要更换布料、制造商和可交付的产品。如果零售商和制造商之间的系统不兼容,那么从一个供应商到另一个供应商的更换可能就是一个非常复杂的软件流程。通过利用 WSDL 接口在操作方面的灵活性,每个公司都可以将它们的现有系统保持现状,而仅仅匹配 WSDL 接口并制订新的服务级协定,这样就不必完全重构它们的软件系统了。这是业务的水平改变,也就是说,它们改变的是合作伙伴,而所有的业务操作基本上都保持不变。这里,业务接口可以作少许改变,而内部操作却不需要改变,之所以这样做,仅仅是为了能够与外部合作伙伴一起工作。
另一种形式是内部改变,在这种改变中,零售组织现在决定它还将把连锁零售商店内的一些地方出租给专卖流行衣服的小商店,这可以看作是采用店中店(store-in-store)的业务模型。这里,虽然公司的大多数业务操作都保持不变,但是它们现在需要新的内部软件来处理这样的出租安排。尽管在内部软件系统可以承受全面的检修,但是它们需要在这样做的同时不会对与现有的供应商系统的交互产生大的影响。在这种情况下,SOA 模型保持原封不动,而内部实现却发生了变化。虽然可以将新的方面添加到 SOA 模型中来加入新的出租安排的职责,但是正常的零售管理系统继续如往常一样。
为了延续内部改变的观念,IT 经理可能会发现,软件的新配置还可以以另外的一种方式加以使用,比如出租粘贴海报的地方以供广告之用。这里,新的业务提议是通过在新的设计中重用灵活的 SOA 模型得出的。这是来自 SOA 模型的新成果,并且还是一个新的机会,而这样的新机会在以前可能是不会有的。
垂直改变也是可能的,在这种改变中,零售商从销售他们自己的服装完全转变到专门通过店中店模型出租地方。如果垂直改变完全从最底层开始的话,就会带来 SOA 模型结构的显著改变,与之一起改变的还可能有新的系统、软件、流程以及关系。在这种情况下,SOA 模型的好处是它从业务操作和流程的角度考虑问题而不是从应用程序和程序的角度考虑问题,这使得业务管理可以根据业务的操作清楚地确定什么需要添加、修改或删除。然后可以将软件系统构造为适合业务处理的方式,而不是在许多现有的软件平台上常常看到的其他方式。
正如您可以看到的,在这里,改变和 SOA 系统适应改变的能力是最重要的部分。对于开发人员来说,这样的改变无论是在他们工作的范围之内还是在他们工作的范围之外都有可能发生,这取决于是否有改变需要知道接口是如何定义的以及它们相互之间如何进行交互。与开发人员不同的是,架构师的作用就是引起对 SOA 模型大的改变。这种分工,就是让开发人员集中精力于创建作为服务定义的功能单元,而让架构师和建模人员集中精力于如何将这些单元适当地组织在一起,它已经有十多年的历史了,通常用统一建模语言(Universal Modeling Language,UML),并且描述成模型驱动的体系结构(Model-Driven Architecture,MDA)。
对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(business logic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用。NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。
SOA有以下特性
SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。
SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。
在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI, Universal Description, Definition, and Integration)是服务登记的标准。
每项SOA服务都有一个与之相关的服务品质(QoS, quality of service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(译注:可靠消息是指,确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。
为什么选择SOA?
不同种类的操作系统,应用软件,系统软件和应用基础结构(application infrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(business processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(application infrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organic business)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。
如图1的例子所示,一个使用SOA的企业,可以使用一组现有的应用来创建一个供应链复合应用(supply chain composite application),这些现有的应用通过标准接口来提供功能。
服务架构
为了实现SOA,企业需要一个服务架构,图2显示了一个例子:
在图2中, 服务消费者(service consumer)可以通过发送消息来调用服务。这些消息由一个服务总线(service bus)转换后发送给适当的服务实现。这种服务架构可以提供一个业务规则引擎(business rules engine),该引擎容许业务规则被合并在一个服务里或多个服务里。这种架构也提供了一个服务管理基础(service management infrastructure),用来管理服务,类似审核,列表(billing),日志等功能。此外,该架构给企业提供了灵活的业务流程,更好地处理控制请求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影响其他服务的情况下更改某项服务。
SOA基础结构
要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。图3所示的是一个典型的SOA基础结构。
SOAP, WSDL, UDDI
WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
WS-I Basic Profile
WS-I Basic Profile,由Web服务互用性组织(Web Services Interoperability organization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用Basic Profile测试程序来测试服务在不同平台和技术上的互用性。
J2EE 和 .Net
尽管J2EE和。NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如 JAXB(Java API for XML Binding),用于将XML文档定位到Java类;JAXR(Java API for XML Registry)用来规范对UDDI注册表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如。NET)的服务互用。
服务品质
在企业中,关键任务系统(mission-critical system,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性,可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,quality of services)。与QoS相关的众多规范已经由一些标准化组织(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the organization for the Advancement of Structured Information Standards)。下面的部分将会讨论一些QoS服务和相关标准。
安全
Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换, 消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(as Security Assertion Markup Language)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。
可靠
在典型的SOA 环境中,服务消费者和服务提供者之间会有几种不同的文档在进行交换。具有诸如“仅且仅仅传送一次”( once-and-only-once delivery),“最多传送一次”( at-most-once delivery),“重复消息过滤”(duplicate message elimination),“保证消息传送”(guaranteed message delivery)等特性消息的发送和确认,在关键任务系统(mission-critical systems)中变得十分重要。WS-Reliability 和 WS-ReliableMessaging是两个用来解决此类问题的标准。这些标准现在都由OASIS负责。
策略
服务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要求被定义为策略断言(policy assertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。
控制
当企业着手于服务架构时,服务可以用来整合数据仓库(silos of data),应用程序,以及组件。整合应用意味着例如异步通信,并行处理,数据转换,以及校正等进程请求必须被标准化。在SOA中,进程是使用一组离散的服务创建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用来控制这些服务的语言。WSBPEL目前也由OASIS负责。
管理
随着企业服务的增长,所使用的服务和业务进程的数量也随之增加,一个用来让系统管理员管理所有运行在多相环境下的服务的管理系统就显得尤为重要。WSDM(Web Services for Distributed Management)规定了任何根据WSDM实现的服务都可以由一个WSDM适应(WSDM-compliant)的管理方案来管理。
其它的qos特性,比如合作方之间的沟通和通讯,多个服务之间的事务处理,都在WS-Coordination 和 WS-Transaction 标准中描述, 这些都是OASIS 的工作。
SOA 不是Web服务
在理解SOA和Web服务的关系上,经常发生混淆。根据2003年4月的Gartner报道,Yefim V. Natis就这个问题是这样解释的:“Web服务是技术规范,而SOA是设计原则。特别是Web服务中的WSDL,是一个SOA配套的接口定义标准:这是Web服务和SOA的根本联系。”从本质上来说,SOA是一种架构模式,而Web服务是利用一组标准实现的服务。Web服务是实现SOA的方式之一。用Web服务来实现SOA的好处是你可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的Web服务规范,你会取得更好的通用性。
SOA的优势
SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。
SOA发展出来的效益
A. 平衡最初的旧系统投资(Leverage initial investment):
组织过去所投资的系统、软硬体,如果能再利用等於赋予其新的价值,这也替组织降低成本并增加竞争力。
B. 基础建设的便利性(Infrastructure Commoditization):
让所有的应用程式能相互沟通(互通性)。
C. 快速的接近市场(Faster time-to-market):
服务的重复使用(再利用),来缩短过去的组织流程,更快速的提供服务来接近市场。
D. 减少支出(Reduce Cost):
服务的重复使用,可降低开发成本。因为开发新系统的成本,大部份比更新旧有系统来的花费大。
E. 减低风险(Risk mitigation):
开发新系统的风险远大於更新旧系统。
F. 持续改善商业流程的循环(Continuous improvement cycle for business process)
G. 中心流程处理(Process-centric processing)
具有人工智能机器宠物恐龙PLEO的详细资料

Pleo是一只可能会引起世界各国注意的电子宠物,Pleo不是由机器人大国日本所制造的,Pleo既不是猫也不是狗,而是只可爱的小恐龙。为什么Pleo能引起世界的注意呢? 原因有很多,但简单的说,Pleo是一只更像宠物的电子宠物…,能随着跟主人的互动而学到更多东西。
《时代》杂志形容,Pleo是「有生命形态(Life form)的宠物」。只要主人回到家,Pleo会对主人摇头摆尾,顺着它的毛摸,它会高兴得摇尾巴,会打喷嚏、打哈欠,搔它的背,它还会一百八十度回过头来,看是谁在跟它玩。因为内建八个处理器,让这只电子宠物有灵敏的触觉、视觉与听觉。 (引述自商业周刊第 995 期)
Pleo会对语调反应,遇主人大声喝斥,它会委屈的低头垂尾;如以温柔轻抚,Pleo会高兴摇尾;如把手放向Pleo嘴巴,它会轻轻咬住。累的时候, Pleo会困得张不开眼皮;睡觉时,牠会闭上眼、肩膀放松,表情还像在做梦。如果让两头 pleo 碰面,就要留意对方有否感冒,小心被传染。Ugobe的公司网站说,Pleo具学习能力,能随「生活」变化建立独特个性,它会表现出高兴、伤心、生气、害怕等情绪,已并非一般的「机械宠物」,而是新的「生命」(Life Form)。 (引述自太阳报-宠物恐龙「活出个性」 懂喜怒哀乐 台港夺生产权)
Pleo的行动相当灵活,四只脚可以弯曲后退。而且这只小恐龙也有脊椎,所以可以绕圈圈、可以用两只脚做平衡,向后退的时候遇到墙壁还会将后腿伸起,顶住墙壁,就像真的动物会作出的反应一样。还会对声音做出──哼哼的反应,并且会用后腿下跪,做出摇头摆尾等撒娇的动作。(引述自Intelligent Times-台湾跨入Pleo时代)
Pleo里面有什么?
一只Pleo里面要有七百个零件。(引述自商业周刊-商周杂志995期-用热情做好细节 实现不可能)此外,Pleo内有8个电脑芯片,运算速度高达6千万次/秒,且内含38个感测器,用来侦测光线、动作、触摸与声音,用以将周遭环境的讯息搜集起来,回传到中央微处理器系统。最后,Pleo目前装配14个马达以让动作更流畅。 (引述自Intelligent Times-第一个未来宠物—pleo、Robotic dinosaur wows crowd at Demo ‘06)
Pleo的身体上装备了视觉、听觉和触觉传感器。它在探究周围环境时会增长见识,并将对感官刺激表现出真实的反映。每个Pleo都带着某些倾向性开始生活,但是与周围环境的接触对它们的行为有着微妙的影响。最终,每个Pleo都显示出独特的个性。
Pleo能够用表情来表达自己。它可以感受到喜悦和悲伤、生气和烦恼。Pleo在疲劳时会打瞌睡、进入睡眠状态、甚至做梦。两个或多个Pleo还会彼此认识并相互发送信号。Pleo还会打呵欠、叹息、抽鼻子、打酣、咳嗽、打嗝和打喷嚏。
Pleo想要探究周围的环境。当它走向桌子边缘时会变得小心翼翼。当它害怕时可能会哭喊。当它刚醒来时会舒展自己。当它饥饿时会跺脚。Pleo基本上是受人欢迎的电子玩具Furby的继承者。创造出Furby之后,Caleb Chung继续同别人合作创造了Ugobe,并进一步开发了实现情绪上互动的机器人技术。Pleo的研制始于2005年,预计直到2007年3月才会投放市场。
你也许没有听说过Ugobe,但你一定记得大约十年前出现的一只长得像猫头鹰的Furby娃娃。这个最初只会像婴儿一样哼唧两声,但会学习和成长的精灵娃娃正是Ugobe公司的作品,在全球大卖5000万只,是史上最成功的交互式电子宠物玩具,美国一些政府机构甚至禁止员工携带它上班以防止泄密。有过如此显赫的成绩,Ugobe此番再献惊人之作也不足为奇。
小恐龙Pleo未经上市,就有即将掀起腥风血雨之势,至少已经搞得台湾电子代工IC设计公司股票上上下下。然而,从照片上看,Pleo也就是个长着讨人喜欢的大眼睛的绿色圆顶龙幼仔,确切说,是有着小恐龙外形、猫那样大小的机器人。
资料显示,Pleo可以通过对周围环境的学习实现成长,全身装载多达14个有力量反馈功能的自动修正装置,还内置了包括触摸传感、光亮、倾斜、立体声等40个传感器,能自动避开障碍物、不会从桌子边缘掉下,有下巴感应器(那里似乎经测试证实是特别讨人喜欢的部位)、富于感情的扬声器、皮肤下触感很妙的类似肌肉的组织……
然而,这不是和Furby及其它电子宠物差不多吗?充其量不过是更复杂更逼真而已。在看到YouTube上关于Pleo的视频录像后,不得不承认,哪怕仅仅是“更复杂更逼真”也令人叹服。Pleo皮肤之柔软、动作之灵活、神态变化之微妙,只有在它动起来之后才能有所领略。它与人交流,或独自玩耍,看上去就像是一个活物。
但这些与Pleo的内部的秘密在相比,根本算不上什么。因为它不止“看上去像个活物”,而就是一个活物
PLEO跟是一具复杂的生命形式,具备感受与知觉;发掘Pleo的感官能力,
让他看见、听见并感受抚摸与动作。
抚摸:
轻拍、拥抱并抚摸Pleo。抚摸Pleo头部、下巴、背部与四肢时,您将会发
现Pleo的逗趣反应。
视力:
Pleo可侦测其路径中的物体,并追踪某些彩色物体的动向。看看在近距
离内,他能够跟上的慢速物体有哪些。
声音:
Pleo能够在安静的环境中听到左右两边的声音。请注意不要惊吓Pleo
–他可能会对过大音量产生反应。
感觉:
Pleo知道自己是在地上、被抱着或不慎摔倒。试试看他怕不怕痒。
探索:
Pleo能够搜寻所在环境中的物体以及其他生命形式。
互动:
了解你的Pleo对其他Pleo的反应为何。
施虐:
Pleo能够侦测到自己是否遭到任何形式的虐待或伤害。请将Pleo视为
生命对待,并用心呵护。 Pleo会记得受虐或受伤的情况,这可能会对他
的个性产生影响。饲育Pleo时,请随时看护照料。
人总是对现实世界不满,因此我们沉湎于昨日的美好回忆,憧憬在对明天无限的遐想中。这也是可以理解的,现实生活在工业化和机械化侵蚀下以变得越来越无趣,大人们都已经快受不了,更不用说喜欢新鲜的小孩子了。当今电影行业的收入排行榜被大批魔幻电影占据半壁江山,根本原因之一正是如此。
恐龙之所以不仅仅能够成为研究室的宠物或生物学家的研究对象,也是全球小孩子最喜欢的动物,很大一部分原因在于它们生存年代的久远,这久远的距离带来的神秘感让霸王龙们也能成为小朋友们最希望拥有的“宠物”。这也就难怪斯皮尔博格喜欢接二连三的让恐龙跑到现实世界中扰乱人间太平了。
不知道有多少小朋友希望恐龙能够重新出现在这个无趣的世界上,它们可不在乎霸王龙有多凶残,翼龙有多贪婪,当他们早已对恐龙园里空洞的恐龙骨架失去兴趣,家里成堆的恐龙模型也早被扔尽墙角,父母们该怎么办。美国UGOBE(玩具生产商)的设计者和工程师们对侏罗纪后便绝技的一种恐龙——圆顶龙(Camarasaurus)作了充分而全面的研究后开发出了Pleo “UGOBE生命体”。这些研究学者在研究恐龙化石后再造了Pleo的生理机能,它的身高和体重与出生一个月大的小恐龙一致,惟妙惟肖。
机器恐龙Pleo可以说是一个“由设计师设计的物种”,这并不是说Pleo是虚构出来的物种,只是说它是长不大的,当然是一个新物种。Pleo拥有几乎所有独立生命体的显著特征,此外它的特别设计赋予它更强的模拟生命形态和对拥有者的针对性——每个不同的拥有者可以根据自己的喜好调整。
Pleo不仅拥有内置的触摸、感光、听觉系统,还能够随着环境的改变随时“学习”,适应新环境。对于感官上的刺激,Pleo会立即做出真实的反映。每一个机器恐龙的“生命”诞生时都带有一定的特性,并随着环境的改变行为发生细微的变化。最终不同机器恐龙会展现出不同的特性。
Pleo同样善于表达,喜怒哀乐,皆形于色。当他感到疲劳时,它会昏昏欲睡渐渐入睡,甚至会做梦——这可是机器人过去想也不敢想的。更令人惊叹的是它们还能识别同类!但是你得当心了,因为感冒也会在它们之间传播!对了,差点忘了,它们甚至还会有见到强光就喷嚏连天的Achoo综合症。
漂亮的大眼睛:当然并不只是一颗珠子,里面有光传感器,据说可以识别人脸!
为什么Pleo能引起世界的注意呢?因为Pleo是一只具有生命特征的电子宠物,它能透过内建的感应器,可以与环境互动,也具备「学习」的能力,能通过与主人的互动学到更多东西。有趣的是,这只电子宠物还有喜怒哀乐等拟人化的情绪,能随「生活」变化建立独特个性,它会表现出高兴、伤心、生气、害怕等情绪,已不只是一般的「机械宠物」,而是有「生命」的个体。
PLEO可以说是来到中国的首款消费型宠物类机器人,在国内的行货总代理是神州数码。国内上市时间是2007年年底,上市价格未定,据说价格不会超过一台笔记本电脑——这可比著名的索尼机器狗爱宝AIBO便宜多了!比起爱宝,PLEO还有全国联保的售后服务。PLEO所体现的令人惊奇的人工智能和设计理念,也许正标志着一个新的电子时代的开启!