慕沐林林
AxisApache Axis 是Apache WebService项目中的子项目,其最初起源于IBM的"SOAP4J",应该属于最早的一批用于构造基于SOAP应用的Framework。 目前Apache Axis已经发展到了第三代,其核心是一个SOAP处理器,用于开发包括客户端,服务器端,SOAP Gateway等各种应用。事实上Apache Axis在了1.0版后,其发行版本还包括了完整的J2EE服务器插件, WSDL支持和生成,TCP/IP监视器等组件,从这个意义上来说Apahce Axis已不仅仅是个SOAP框架了,它包含了除了UDDI外对整个Web Service协议栈(Protocol Stack)的支持。更多Axis信息UDDI4Juddi4j是一个JAVA类库,提供了一个API来与web服务UDDI注册中心相结合。UDDI4J得到了HP, IBM和SAP的支持。UDDI是统一描述、发现和集成(Universal Description, Discovery, and Integration的缩写。更多UDDI4J信息WSIL4JWSIL4J是Java类库,简化了对Web服务注册中心、描述和检查文档的处理。更多WSIL4J信息WSIFWSIF是apache的web服务项目的一个子项目,目前版本是2.0,实际上是WSIF被提交给ASF后的第一次发布版本,命名为2.0是和以前非Apache发布的1.x版本相区别。 WSIF提供了一组简单的API来调用web服务而不需要了解该web服务的实现方式,更深入的说,WSIF是一组基于WSDL文件的API,他调用可以用WSDL文件描述的任何服务。 WSIF中提供的API允许编程者通过WSDL描述内容和web服务调用的抽象层打交道,而不是直接使用SOAP来调用web服务。编程者使用WSIF后就可以使用统一的编程模型来调用web服务而不需要了解该web服务是如何实现和被访问的。 WSIF 2.0中里面提供了下列内容的支持: SOAP(可以使用apache SOAP或者axis实现)、本地java类、EJBs、JMS services和其它可以通过java connector访问的应用。WSIF规定了特别的WSDL扩展使这些资源可以被当成WSDL描述的服务访问。 WSIF允许通过运行时分析web服务描述的元数据来实现无stub或者动态的调用一个web服务。他允许在运行时将更新的绑定实现插入到WSIF中,他允许调用的服务在运行时之前选择自己的绑定实现。 WSIF具有以下几个主要特征: 1,以WSDL为中心和服务的抽象定义(portType)打交道,隐藏实现细节(协议绑定和服务位置) 2,可插入式允许增加心得提供者使应用可以通过修改WSDL就可以应用新的web服务而不需要修改应用的代码 3,可扩展很容易使用新的WSDL扩展进行试验 4,灵活性很容易定制很容易和JNDI结合使用是服务被提供的位置更加透明更多WSIF信息Caucho BurlapBurlap是一个轻量级的XML RPC协议.利用Burlap Web服务协议使用Web服务不需要大型的框架也不用学习其它协议。更多Caucho Burlap信息XfireXFire是与Axis 2并列的新一代WebService框架。具有如下:支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等 ;使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现;Easily Create Services from POJOs;易于与Spring框架结合;灵活的Binding机制,包括默认的Aegis,xmlbeans,jaxb2,castor更多Xfire信息SOAP UDDISOAP UDDI是一个符合UDDI 2.0的Web服务UDDI注册中心(registry).利用这个UDDI注册中心,Web服务开发者可以发布和测试他们的程序在一个安全的,不公开的环境中.更多SOAP UDDI信息Caucho HessianHessian也是一个轻量级的,自定义描述的二进制RPC协议.因为它是一个二进制协议,所以它很适合于发送二进制数据而需要使用其它附件来扩展这个协议.更多Caucho Hessian信息IvoryIvory为Java classes,Avalon服务,和Axis这三者之间相互结合提供了一种简单的方式.它允许开发soap服务不需要进行Axis通常所要求的WSDD配置,同样也可以让Avalon服务使用标准WSDD配置变得简单.更多Ivory信息Crispy利用Crispy提供的一个统一接口,你可以调用RMI,WebService,REST,XML-RPC,EJB,Burlap,Hessian等其它服务.你不需要知道这些服务是怎样工作的,要调用的服务类型可在properties文件中定义.远程调用就像简单Java对象调用一样,你可以把Crispy集成到一个SOA(Service Oriented Architecture)或RCP(Rich Client Platform)中.更多Crispy信息XINSXINS是一项规范技术用于定义,创建和调用远程APIs。当API规范在XML文档中定义好之后,XINS将会把它们转换成包括客户端与服务端的HTML文档与Java代码.XINS将与复杂的SOAP技术竞争,因为它被设计得具有简单性,可扩缩性与可测试性。简要地说就是:SOA+Java+XML+ 代码生成-复杂性 => XINS。更多XINS信息RestletRestlet这个开源项目为那些要采用REST结构体系(Web Service标准:基于直接在HTTP上交换原始XML文档的思想)来构建应用程序的Java开发者提供了一个具体的解决方案。它由两部分组成:1.Restlet API:支持所有REST概念(资源,表示法,数据,连接器,组件等)。适合于client与server REST应用程序。用先进模式匹配的特性来支持URIs as UI的思想。用Chainlets filter来实现像日记,认证与压缩等功能。支持阻塞与非阻塞NIO模式。2.Noelios Restlet Engine (NRE):用Noelios Consulting提供的核心包来实现Restlet API。利用HTTP (通过Jetty连接器)来提供服务器连接器。利用HTTP, JDBC,SMTP (通过JavaMail)来提供客户端连接器。支持logging (LogChainlet), authentication (GuardChainlet)与cool URIs重写(RedirectRestlet)。采用FreeMarker模板来展示JSP页面等其它功能。更多Restlet信息GombaGomba是一组Java servlets集合,它能够帮助开发者快速构建RESTful Web services。Gomba在内部使用JDBC API同时是关系型数据库与Web之间的一个接口。Gomba可作为一个动态Web站点的中间层甚至可以作为一个数据库的报表工具。它的特点:使用http与XML来读取与写入数据到一个RDBMS。把SQL结果集表示成XML。使用XSLT来定制XML输出。使用JSTL+EL来构建动态SQL。支持BLOB与CLOB SQL数据类型。支持Multipart form请求处理。使用XML responses进RESTful错误处理。更多Gomba信息jSoapServerjSoapServer这个Java类包可以集成到Java应用程序中为外部程序提供一个SOAP接口。jSoapServer是一个独立的SOAP服务器,因此不需要让Java程序运行在像Tomcat这样的容器中。它具有的特性包括:*多线程SOAP服务器,*使用线程池,*支持对gzip内容进行编码,*支持对压缩内容进行编码,*支持持久连接(persistent connections:http keep-alive),*支持SOAP1.1/1.2,*支持生成WSDL,*支持生成servlice列表,*支持SOAP附件(DIME,MIME)。更多jSoapServer信息JBossWSJBossWS实现了一个新的符合JAX-RPC1.1标准的SOAP stack,可用于替代先前的WS4EE和JBoss.NET。它能够更好的与整个JBoss架构体系相集成。更多JBossWS信息soapuisoapui提供一个工具通过soap/http来检查,调用,实现web service和web service的功能/负载/符合性测试。该工具既可作为一个桌面应用软件使用,也可利用插件集成到Eclipse,maven2.X,netbeans和intellij中使用。更多soapui信息kSOAP2kSOAP2是一个SOAP web service客户端包。主要用于资源受限制的Java环境如Applets或J2ME应用程序(CLDC/ CDC/MIDP)。更多kSOAP2信息Apache CXFApache CXF一个开源的Service框架,它实现了JCP与Web Service中一些重要标准。CXF简化了构造,集成,面 向服务架构(SOA)业务组件与技术的灵活复用。在CXF中,Service使用WSDL标准定义并能够使用各种不同的消息 格式(或binding)和网络协议(transports)包括SOAP、XML(通过HTTP或JMS)进行访问。CXF同样支持多种model 如:JAX-WS,JBI,SCA和CORBA service。CXF设计成可灵活部署到各种容器中包括Spring-based,JBI,SCA, Servlet和J2EE容器。更多Apache CXF信息JerseyJersey是JAX-RS(JSR311)开源参考实现用于构建RESTful Web service。此外Jersey还提供一些额外的API和扩展机制,所以开发人员能够按照自己的需要对Jersey进行扩展。更多Jersey信息RESTClientRESTClient是一个用于测试RESTful Web services的Java客户端。更多RESTClient信息OpenUDDIOpenUDDI提供一个高性能,易于使用,遵循UDDI v3规范的服务器与客户端类库。服务器使用Hibernate作为存储引擎,因此支持大部分SQL数据库,同时支持还LDAP作为数据存储。更多OpenUDDI信息jrest4guice一个轻量级的基于Google Guice的Restful服务框架,支持JPA、JAAS、分布式资源对象,对OSGI的支持也在计划中。基于Google guice零配置,服务的自动扫描注册非侵入式,用户不需要实现特定的接口来实现Restful服务支持Post. Get. Put. Delete操作灵活的注入(支持上下文环境request/response/session以及参数的自动注入)根据客户端要求返回不同类型的数据(xml/json/html)支持Velocity、Freemarker和Spry模板引擎(当返回类型是text/html时才有效,参见@ViewTemplate)支持JPA,通过增强的BaseEntityManager实现实体的CRUD支持事务,通过@Transactional注解声明事务的类型支持JAAS,通过@RolesAllowed注解声明操作所需要的角色支持分布式资源对象,实现业务逻辑的分布式部署更多jrest4guice信息kSOAPkSOAP是一个SOAP web service客户端类库,适用于那些资源受限制的Java环境比如:Applets,J2ME应用程序(CLDC/CDC/MIDP)。更多kSOAP信息MetroMetro是一个高性能,可扩展,易于使用的web service stack/framework。它提供一个一站式解决方案来满足你所有web service需求。从最简单的hello world web service到可靠,安全和涉及与.NET服务交互的事务处理web service。更多Metro信息sqlRESTsqlREST能够将关系型数据库发布为REST风格的Web Service。为任何能够通过JDBC访问的数据库提供Web Service访问接口,使用HTTP方法GET、POST、PUT和DELETE就能够查询,创建,修改和删除数据库中的数据记录。更多sqlREST信息GWT-RESTGWT-REST是一个用于GWT应用程序的异步RESTful客户端实现。GWT-REST可以与GWT-RPC一起使用或者代替它。更多GWT-REST信息Redstone XML-RPC LibraryRedstone是XML-RPC规范的一个Java实现,支持任意Java对象的动态代理与序化(Serialization)。 Redstone提供一个XML-RPC客户端用于访问XML-RPC服务,和一个XML-RPC servlet用于在web服务器中将普通的Java对象发布作为XML-RPC服务。Redstone还提供一组序化器(serializer)用于生成可以代替XML-RPC信息的JSON信息,以便从JavaScript也可以访问XML-RPC服务。更多Redstone XML-RPC Library信息PHPRPCPHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。目前已有以下几种语言的实现:ASP、ActionScript、Delphi/Kylix、Java、JavaScript、.NET:(支持 .NET 框架下所有的语言(如 C#、VB.NET、VC.NET、Delphi.NET 等)、PHP、Python、Ruby等。更多PHPRPC信息JetS3tJetS3t是一个用于与Amazon S3和CloudFront交互的Java开源工具箱。它为开发人员提供强大、易于使用的API和工具来与S3交互,管理数据存储。JetS3t主要由5个应用程序组成:Cockpit:一个GUI工具用于传输文件,查看和管理 Amazon S3账号中的内容。Synchronize:用于同步用户计算机上的目录和Amazon S3帐户的命令行工具,最适合于在不同的计算机之间同步文件与备份。Gatekeeper:一个Servlet可以作为访问Amazon S3帐户的中介,其它没有S3帐户的客户端可以利用这个Servlet实现上传,下传,删除等操作。CockpitLite:Cockpit的简约版本,它通过中介Gatekeeper服务实现所有操作。Uploader:一个GUI应用程序提一个通过Gatekeeper服务实现上传文件至S3帐户中的简单向导。更多JetS3t信息jUDDIjUDDI是Web Services UDDI(Universal Description、Discovery、Integration)规范的一个Java实现。可以部署在支持Servlet2.3的任何Java应用服务器上包括:Jakarta Tomcat、JOnAS、WebSphere、WebLogic、Borland Enterprise Server、JRun等。可以与支持ANSI标准SQL的关系型数据库(MySQL、DB2、Sybase、JDataStore、HSQLDB等)相结合使用。 易于与现有的验证系统相集成。