在接下来的blog里,我将会写一系列项目总结的文章,里面很多内容是我们Cactus团队成员一起完成的,最主要的目的是把我们的想法说出来,跟大家探讨,欢迎大家提出宝贵意见。
1.1 Web服务出现的意义
Web 服务是一种想把全世界的Internet/Intranet变成一个虚拟计算环境的观念和技术。在由Web Service组成的虚拟环境中使用者可以任何的客户端软件,例如浏览器,一般的Window或是Java应用程序或是手机等,来调用Web服务提供的服务。而Web服务本身则可以由任何的技术来编写,例如开发者可以使用Delphi,Java,C/C++或是C#等语言和工具来开发。因为Web服务视作Web上的组件编程,从理论上讲,开发人员可通过调用Web应用编程接口(API)(就像调用本地服务一样),将Web服务集成到应用程序中,不同的是Web API调用可通过互联网发送给位于远程系统中的某一服务。
1.2发现和利用现有Web服务是个问题
但是,目前来说,在如何发现和充分利用现有Web服务上仍然是个问题。当前的搜索引擎只能支持搜索Web 页面,它们只是搜索到网站的链接,用户执行某个操作需要点击链接进入后,面对很多五花八门的无用的页面信息,然后经过了复杂的查找,操作后才能找到您真正想要的某种服务的正确位置来执行。这种方式并不能发现网络上大量可用的Web服务,所以为了发现和利用互联网上存在的大量优秀的Web服务,需要一个Web服务发现和执行引擎。
1.3拥有Web服务发现和执行引擎的必要性
在信息化大潮的推动下,未来人们的许多活动都将会在网上执行,有了这样的Web服务发现和执行引擎可以有效发现用户所需的Web服务,并且提供一个执行机制,用户搜索到某个具体的可执行组件,而不管其是什么平台,选定后在网页中输入执行此操作所需的输入数据后,远程的可执行组件再将返回结果交给系统最后呈现给用户。这样,未来会出现这样的情况,用户想要完成银行转账操作,不必去银行主页,而在引擎中输入“银行转账”几个字,搜出一批结果,点击某个进入后,输入数据,即可执行,完成了想要的服务,十分方便。
1.4企业做信息整合时需要的
互联网正在发生很多变化。它已经成了Web服务推动器,而不再仅仅是一个信息仓库。很多组织都将它们的核心业务以Web服务的形式放到互联网上,并在互联网上找到其他所需Web服务,从而构建出新的增值服务。因此,需要一个类似当前广泛使用的搜索引擎的工具,以有效发现所需Web服务,并及时执行,从而可以测试发现服务的可用性、可靠性和正确性,为实现整合提供支持并保障整合的有效性。
而ebXML,XML/EDI体系结构里的注册表也是属于一种资源库,但是它存放的是一种具有协作关系的Web服务,即它们是贸易伙伴。我想目前来说,跟Web服务搜索有关能扯上关系的,说得最多的应该算是UDDI了吧,
2.1 UDDI
UDDI,统一描述、发现和集成协议,它的数据结构是无限制的,只规定了很少的信息,而且结构所基于的分类数据(categorizationdata)也不是被广泛认同的——这样的数据结构造成了极多问题。UDDI 曾被定位为企业内部的技术,也就是在这方面UDDI取得了一些成功,但是UDDI在这方面的标准工作做得仍不够。最主要的一个不足是,使用一个XML文档来描述企业及其提供的Web服务,对于那些服务消费者他们从UDDI资源库里只能找到以下三种信息:1.服务提供商的地址,联系方法,和已知的企业标识。2.基于标准分类法的行业类别。3.关于该企业所提供的Web服务的技术信息,其形式可能是一些指向文件或是URL的指针,而这些文件或URL是为服务发现机制服务的。而有了这些信息也还不能去执行一个特定的Web服务,服务消费者自己还必须做很多额外的工作才能使那些搜索到的Web服务给自己有效利用。
2.2 ebXML,XML/EDI
20多年前,电子商务的想法诞生,通过链接在一起的计算机系统,数据能从一个系统传送到其他系统,从而不再使用纸介质文件来交换商业数据。这个概念就是70年代中期产生的EDI(Electronic Data Interchange,电子数据交换)的原型。EDI的出现大大提高了商业运作效率,但虽然全世界的前10000家公司中98%以上都在使用EDI,但全世界其他公司中却仅有5%是EDI的用户,因为EDI虽然很有效,但启动费用很高。当时人们一直在寻找EDI的替代方案,希望能够找到一种使全球不同规模的公司都能受益的简单、便宜的交换标准商务文档的方法。在这样的背景下ebXML应运而生了。ebXML的技术体系结构里的注册表(registry),企业通过注册表登记CPP(collaboration protocol profile,合作草案档案),列出它们的电子商务服务能力供潜在的贸易伙伴检索,也可以通过注册表搜索合适的贸易伙伴。知识库(repository)则是用于存储这些内容的。
ebXML和Web服务所具有的共同特点是:基于松散耦合的应用交互。松散耦合的特性意味着企业可以自由地选择供应厂商、硬件平台、软件框架等电子商务的组成部分,只要这些供应厂商在相应的硬件平台上提供了支持ebXML规范或Web服务规范的软件框架就能够构建可用于交易的电子商务系统。ebXML的注册系统(repository)提供一整套分布式服务,使得彼此有意愿进行商务流程集成的企业可以通过共同遵循ebXML规范来达到共享信息以及应用集成的目的。但是通过ebXML的注册系统(repository)搜索到的只是合适的贸易伙伴,关注点并不是具体到某种详细的Web服务。
基于1.1项目背景意义跟1.2国内外研究现状,我们Cactus团队实现了这样的解决方案:基于XML和Web Service技术,开发了一个Web服务动态搜索与执行引擎。
3.1本项目完成的功能
首先是Web服务的搜索功能,用户可以像百度等典型搜索引擎那样输入Web服务名关键字,然后系统的搜索模块可以返回当前在我们系统的服务资源库里注册的所有带有用户输入的关键名的Web服务列表,服务消费者可以选择他所想要的Web服务,查看有关此Web服务的所有详细信息,如提供商的信息,Web服务的信息等。更重要的是Web服务的执行功能:对于想要执行Web服务的某种操作的消费者来说,我们的系统为消费者屏蔽掉了执行远程Web服务的复杂过程,所以无论远程的Web服务是基于何种平台开发出来的,在服务消费者看来都是做这几个简单的操作:当服务消费者搜索到他所想要的Web服务后,进入到了Web服务详细信息页面,此页面列出了这个Web服务的所有可执行操作列表,消费者可以选择想要的操作,然后填写执行此操作所需的某些数据后传到系统,然后系统以用户的输入作为有效负载远程调用此可执行组件,再将返回结果交给系统进行解析,最后呈现给用户。
那些在不同的平台下已经开发好web服务的个人或公司,只要提供一个开发好的Web服务的描述文件WSDL文档的URL,可以不受异构平台的影响把他们的Web服务注册到我们系统的服务资源库中,我们的系统将会做为一个”传媒中介机构”向服务的消费者们展示服务提供者所提供的web服务的有关信息。
3.2本项目的创新点。
3.2.1 Web服务的调用技术
传统的WEB服务调用方的构建是在服务的调用方人为的对WEB服务了解的情况下进行的,不能实现一个针对任何服务都能使用的公用客户端,面对我们的需求,需要反复的重写代码,根本不可取。
我们运用WSDL4J与SAAJ技术自行构建SOAP消息,构建出了一个公共的客户端应用,很好的解决了我们的需求。
备注:WSDL4J与SAAJ经常是为供应商底层实现标准API所用(如传统方式客户端代理程序的构建底层就运用了以上两种技术),我们利用此技术属于深度挖掘,从底层实现。
3.2.2 基于Lucene的Web服务搜索
本地服务资源库是一个存放有关远程web服务的索引数据库,如果通过SQL直接查询数据库速度将会难以忍受。为了提高检索效率,需要建立索引,按照倒排文件的格式存放。用户输入搜索条件后搜索程序将通过索引数据库Lucene,进行检索然后把符合查询要求的数据库按照一定的策略进行分级排列并且返回给用户。
3.2.3 J2ME手机客户端开发技术
用户除了可以使用游览器,通过Internet,HTTP协议以及手机游览器通过WAP协议访问外,我们还使用SUN公司的J2ME技术,给用户提供了一个手机客户端应用,手机用户可以通过GPRS连接系统的服务器进行方便的操作。
附Cactus团队成员合照:
分享到:
相关推荐
工程硕士学位论文 基于Android+HTML5的...免去目前市场业务中企业用户需要实地地并频繁地与检测机构沟通,从而提出自己的委托乃至下委托单、等待检测报告等,设计并研发了市场上首款提供质检服务的移动端app,即“认...
1. **搜索引擎优化(SEO)问题**: 传统的AJAX应用程序通常不友好于搜索引擎抓取,因为它们依赖于JavaScript动态生成内容。 2. **浏览器兼容性**: 不同浏览器对AJAX的支持程度不同,可能导致用户体验差异。 3. **安全性...
为解决这一问题,WMO提出构建一个通用、综合的信息服务平台——WMO信息系统(WMO Information System, WIS),旨在促进不同计划及组织间的气象数据交换与共享。 **需求分析:** - **系统异构性**:涉及多种不同类型...
本研究提出了一种改进版的PageRank算法——**话题敏感PageRank**(Topic-Sensitive PageRank),旨在提高搜索引擎返回结果的准确性。原始的PageRank算法通过计算一个单一的向量来评估网页的重要性,这一向量基于网页...
- **脚本执行引擎**:集成脚本执行引擎与切片模块,使得网络爬虫能够理解和执行JavaScript脚本,进而正确地解析和抓取AJAX框架中的动态内容。 #### 实际应用与意义 - **提高搜索引擎性能**:通过解决AJAX框架中URL...
鉴于此背景,《基于SOA的业务规则代理研究》一文提出了一种基于服务导向架构(SOA)的业务规则引擎代理设计,旨在解决上述问题。 #### SOA与业务规则引擎代理 面向服务体系结构(SOA)是一种设计思想,它强调将...
#### 一、书籍概览与背景介绍 《提升WEB设计的101种方式》是由世界著名的WEB设计大师Susan Sweeney撰写的一部经典著作。自首次出版以来,这本书经过多次修订再版,最新版为英文第七版。作为一本久经考验的网络营销...
同年,Google CEO Eric Schmidt在一次搜索引擎大会中首次提出了“云计算”这一概念。随后几年里,Google和Amazon分别推出了自己的云计算平台和服务,标志着云计算时代的真正开启。 #### 二、云计算的定义及特征 **...
在学习过程中,要遵循“三多”原则——多记、多动、多练,避免“三不”——不要轻视Web技术的重要性、不要偷懒、不要忽视实践的重要性。希望以上内容能够帮助大家更好地理解和掌握Web基础技术。
1. **建立统一的门户平台**:通过ALUI构建统一的门户,提供员工、领导、外部合作伙伴的个性化访问入口,整合门户应用、流程Portlets、业务处理Portlets等,实现信息与服务的集中展示和管理。 2. **工作流引擎与业务...
CGSP-DAI的系统架构是可扩展、灵活且面向服务的,包含五大功能模块:底层物理数据资源、OGSA-DAI核心平台、CGSP-DAI执行引擎、用户接口模块和数据传输模块。该架构依赖于中国教育科研网格支撑平台,能够集成来自高校...
- SEO问题:搜索引擎爬虫可能无法正确解析Ajax加载的内容。 - 浏览器兼容性:不同的浏览器对于`XMLHttpRequest`的支持程度不同,可能导致兼容性问题。 #### 九、Ajax与其他技术的结合 - **与JavaScript库的集成*...
本文探讨了一种改进的PageRank算法——智能冲浪者(The Intelligent Surfer),该方法通过结合网页的链接结构和内容信息来提高搜索引擎结果的质量。PageRank是谷歌搜索引擎的核心算法之一,它通过分析网页间的链接...
为此,本文提出了一种更为灵活和高效的方法——基于工作流技术的动态GIS服务链,旨在解决这一难题。 #### 核心技术与方法 1. **抽象GIS服务与服务链构建**: - **抽象服务**:抽象GIS服务是一种高层次的服务描述...
在这种背景下,开发一种高效的数据采集工具——网络爬虫,成为了必然选择。 ##### 1.2 研究现状及发展前景 ###### 1.2.1 网络爬虫的研究现状 目前,几乎所有支持网络通信的编程语言都可以编写网络爬虫。其中,...
随着互联网技术的发展与数据交换需求的增长,XML(可扩展标记语言)作为一种高效、灵活的数据表示标准,在Web领域迅速崛起。XML以其独特的自描述特性,允许程序根据其内容对数据进行解析、过滤和重组等操作,极大地...
本篇文章将从四个方面——移动应用程序框架、移动应用程序设计、移动应用程序测试与移动应用程序发布,详细介绍移动应用开发的关键技术和实践方法。 #### 一、移动应用程序框架 移动应用程序框架是指在移动设备上...