Thursday, June 26, 2008

常见Java开源JMS消息中间件及特性简介

JMS开源消息中间件有很多,本文对常见的几种进行了列举和简单比较,希望对MOM选型的个人和企业有所帮助

mom4j
mom4j是一个完全实现JMS1.1规范的消息中间件并且向下兼容JMS1.0与1.02.它提供了自己的消息处理存储使它独立于关系数据与语言,所以它的客户端可以用任何语言开发.

OpenJMS
OpenJMS是一个开源的Java Message Service API 1.0.2 规范的实现,它包含有以下特性:
*. 它既支持点到点(point-to-point)(PTP)模型和发布/订阅(Pub/Sub)模型。
*. 支持同步与异步消息发送
*. JDBC持久性管理使用数据库表来存储消息
*. 可视化管理界面。
*. Applet支持。
*. 能够与Jakarta Tomcat这样的Servlet容器结合。
*. 支持RMI, TCP, HTTP 与SSL协议。
*. 客户端验证
*. 提供可靠消息传输、事务和消息过滤

UberMQ
UberMQ完全实现了Java Message Service 规范。UberMQ是因为现有的许多JMS提供商已经违背了分布式计算的核心原则:快速与简单而开发的。

Hermes JMS 利用它提供的Swing UI可以很好的实现监控JMS providers。

ActiveMQ
ActiveMQ是一个开放源码基于Apache 2.0 licenced 发布并实现了JMS 1.1。它能够与Geronimo,轻量级容器和任Java应用程序无缝的给合。

Somnifugi
Somnifugi使得工作在同一个java虚拟机中的线程能实现消息互发。

MantaRay MantaRay基于peer-2-peer 技术。它具有以下特性:
1.它既支持点对点(point-to-point)的域,又支持发布/订阅(publish/subscribe)类型的域。
2.并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。
3.消息过滤体制。
4.能与WebLogic and WebSphere 给合。
5.支持TCP, UDP 与 HTTP传输协。 Presumo Presumo也是一个实现Java Message Service API的JMS消息中间件。 JORAM JORAM一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。 JMS4Sdivad JMS4Sdivad是一个消息系统.它部分地实现了Java消息服务(JMS) API.

单实例模式数据库连接池+log4j

http://www.mldn.cn/articleview/2007-4-8/article_view_1955.htm

Thursday, May 8, 2008

英文翻译词典工具软件与在线翻译全搜罗

无论是我们平时浏览网页还是阅读文献都会或多或少遇到几个难懂的英文词汇,这时我们就不免要翻词典了。网上的词典工具大概可以分为两种:离线词典,就是 可以不用联网,只要下载安装并运行就可以方便取词翻译;另外一种是在线词典,它需要我们访问一个网站,而后输入要查找的词汇等。现在我们就来总结一下线上 线下比较优秀的英汉词典。

一、在线词典

1、金山爱词霸http://www.iciba.com/
这是目前最好的线上词典工具之一。词汇量涵盖了150余本词典辞书,70余个专业领域,28种常备资料,中、日、英网际大辞海,提供在线及时更新,第一时 间掌握流行词汇表达并为每个词汇都提供了真人发音和相关词汇释意。同时网站的界面也采用了简、繁、英、日等语言编写,便于不同的人群使用。
同时,爱词霸还提供了多种扩展功能,如QQ、MSN机器人、Firefox插件等,使你可以随时随地地翻译词汇。具体可以查看http://web.iciba.com/partner/ ,找到更多实用工具

不过,受词霸已经被谷歌(Google)收购,据传谷歌将于5月8日推出新版的词霸,名字可能定为谷歌金山词霸,除了词霸原有功能外,还增加了网络翻译、图片解释等。

2、海词在线词典http://www.dict.cn/
海词在线词典由在美国印第安纳大学的中国留学生范剑淼创建。正式使用于2003年11月27日(美国的感恩节)。 虽然它的词汇量没有爱词霸庞大,但是它提供了大量例句并佩有真人发音,可以帮助矫正发音问题。
海词也提供了大量的小工具,你可以把它们添加到你的博客或者个人网站上来增加更多丰富多彩的功能。具体可以查看http://www.dict.cn/tools.html

3、译典通http://www.dreye.com.cn/
网站的所有者为英业达(上海)有限公司。译曲通提供了较大量的词汇并配有真人发音,同时可以查询同义词/反义词,词形变化等。另外还可以查询日语词汇,并配有日语、英语学堂。

4、雅虎字典http://zidian.cn.yahoo.com/
和爱词霸一样,具有词汇提示功能,比如你输入reci就会提示以其开头的所有单词,方便输入。雅虎字典一个最大的好处就是他能翻译网络词汇,在互联时代, 像汉字一样,很多旧词有了新解,这时候你就可以通过网络词汇来查找它的亲含意了。不过,雅虎的单词翻译是由译典通提供的。

5、有道词典http://dict.yodao.com/
有道是网易自主研发的搜索引擎,并提供词典功能。有道词典的释义也是来自译典通,但又有很多创新,比如英英翻译、网络解释、例句查询、同义词、反义词等,还可以创建自己的单词本。

6、百度词典http://dict.baidu.com/
百度词典的释义来自译典通,并且没有太大改进。类似于Handbook一类的工具书。

此外,在线词典还有很多,比如林语堂《当代汉英大词典》韦氏在线词典英语多功能词典等。

7、星际译王http://www.stardict.cn/
提供了大量的词汇翻译,支持多语言翻译。不过你要使用他的全部功能必须注册成为会员,还好,注册会员是免费的。星际译王还提供了Firefox插件,如果你使用的Firefox浏览器,不妨试试看,插件下载:http://www.stardict.cn/browserplugin.php

8、沪江小d(http://dict.hjenglish.com/
解释详细,并且带有大量的例句解释和参考网页。界面清新,并提供了大量的语言工具链接

二、线下词典、翻译软件

1、金山词霸http://cp.iciba.com/index.shtml
相信金山词霸是目前使用最为广泛的汉英双语工具。他不仅词汇量,而且能够桌面即时取词使用也相当方便,还可以查询多学科词汇,可以说是做的相当成功的一款词汇软件(难怪谷查检和百度都盯上他了)。下载地址:http://cp.iciba.com/index.shtml (收费软件)。

P.S. 谷歌(Google)发布的新版词霸将是一款全免费软件。

2、灵格斯词霸http://www.lingoes.cn/
也是词霸哦,不过他是灵格斯,他是一款全免费可在线更新词库的词典工具。它的安装文件非常小,目前最新版也只有2.8M。使用者可以根据自己的需要下载不 同的词典库,如牛津高阶英语词典 (第6版)、朗文当代英语词典 (第4版) 、柯林斯高阶英语词典 (第4版) 等等。灵格斯只是一个外壳,你安装什么样的词典就能翻译什么样的词汇,所以你安装了法语、日语、甚至是爱斯基摩语词典,只要安装他就能翻译。其取词也比较 人性化,只有当同时按下Ctrl键时才会取词,也就是在你想用的时候才会用。
词霸下载:http://www.lingoes.cn/zh/translator/index.html
词库下载:http://www.lingoes.cn/zh/dictionary/index.html

3、有道桌面词典http://cidian.yodao.com/
和有道线上词典配套的工具。当前版本为1.1,大小为2.7M精简版只有1.16M。可以在线翻译、网络释义、海量例句、屏幕取词等。是一款轻量级的词典工具。

4、星际译王http://stardict.sourceforge.net/
一款开源且免费的翻译工具。支持全文翻译、网络词汇、鼠标取词等。它是一个跨平台的国际化的词典软件,有选中区取词,通配符匹配,模糊查询等强大功能。目 前已有两百多个词典,支持几十种语言,其中中文词汇有100多万。跨平台的国际词典软件!它功能强大,实用性强,“ 通配符匹配”,“鼠标查词”,“模糊查询”等功能倍受青睐!
下载:http://stardict.sourceforge.net/

5、babylon词典(http://www.babylon.com/
来自以色列最强大的英文翻译软件 - Babylon Pro,在全球已有超过 70 个国家 2 千 2 百万人使用。Babylon-Pro 提供最专业英文翻译,有别于一般的翻译软件,Babylon 最迷人的是可外加其它语言字典,提供让您翻译一次可同时得到其它语言的翻译。例如您的字典清单中有英英、英中、英德、英日、英韩的字典时。当您查询一个英 文单字时,她便同时一次给您所有英中德日韩文的翻译。有付费和免费服务两种。

[b]6、雅虎乐译(http://soft.cn.yahoo.com/ly/

安装包小于1M,同时还有乐译绿色版无需安装、免除卸载,解压缩即可立即使用。集成了网络词汇、鼠标取词、中英文双语解释等。

7、沪江小d桌面词典(http://dict.hjenglish.com/client/)
是沪江小d的离线工具,海量词汇,支持剪贴板取词。

三、在线翻译
再简单总结一下常用的在线翻译网站:

1、Google在线翻译:
谷歌的语言工具提供多种语言互译,同时还提供了全站翻译等,翻译还算比较准确。访问:http://www.google.cn/language_tools?hl=zh-CN

2、Yahoo!在线翻译
和谷歌相似,提供多种语言的全文翻译,翻译准确率较高。http://fanyi.cn.yahoo.com/

3、百度在线翻译
提供了比较简单的翻译功能,并可以使用Google的翻译工具。http://site.baidu.com/list/104fy.htm

4、爱词霸在线翻译
提供了金山快译的部分功能,同样提供多各语言的互译。每次最多可以翻译500字,不过翻译结果也是来自Google。网址:http://fy.iciba.com/

5、微软Windows Live翻译
这是软件专门用于提供翻译服务的网站,微软的翻译还是相当准确的,每次最多翻译500字,同时也提供网站全站翻译,支持多种语言。具体网址:http://www.windowslivetranslator.com/Default.aspx

6、华译网在线翻译
这是一家专业的翻译公司提供的在线翻译服务。http://www.readworld.com/

7、金桥翻译中心
这是比较老牌的线上翻译服务公司,提供免费服务,本科毕业的时候在上面翻译过论文。http://www.netat.net/

8、联通华建
曾经用过,所以还记得网址,大家不妨试试:http://www.165net.com/

9、国外的一个免费翻译网站freetranslation.com
也是以前用过的,网址也很好记,感觉这个的翻译结果还是比较令人满意的,翻译的时候你可以选择“人工翻译”和“自动翻译”,“人工翻译”是收费服务:http://www.freetranslation.com/

网上的英语免费资源工具资源应该还有很多,以上只是总结了本人使用过或者是比较熟悉的,希望大家多补充 :-)。

本文转载自Dudo

Sunday, May 4, 2008

security specifications

  • WS-Security

  • WS-SecurityPolicy

  • WS-Trust

  • WS-SecureConversation

  • WS-Federation

  • Extensible Access Control Markup Language (XACML)

  • Extensible Rights Markup Language (XrML)

  • XML Key Management (XKMS)

  • XML-Signature

  • XML-Encryption

  • Security Assertion Markup Language (SAML)

  • .NET Passport

  • Secure Sockets Layer (SSL)

  • WS-I Basic Security Profile

Web Services Standards Bodies and Communities

Web Services Standards Bodies and Communities

Here are some Web Services standards bodies and communities that support Web Services implementation.

ebPML. http://www.ebpml.org/

OASIS. http://www.oasis-open.org/

W3C. http://www.w3.org/2002/ws/

WS-I. http://www.ws-i.org/


SOAP-Specific

Here is a list of SOAP-specific resources.

Apach SOAP. http://xml.apache.org

DevelopMentor. http://www.develop.com/soap/

SOAPClient. http://www.soapclient.com/

SOAPLite. http://www.soaplite.com/

SOAPWeblog. http://soap.weblogs.com/


UDDI-Specific

Some UDDI-specific resources. UDDI has some good technical white papers on best practices.

UDDI.org. http://www.uddi.org/ (Now under OASIS. Refer to http://www.oasis-open.org/committees/uddi-spec/)

jUDDI.org. http://www.juddi.org/

Web Services Security

There are an increasing number of Web Services security resources. More references can be found in the Web Services security chapter.

OASIS Web Services Security TC. http://www.oasis-open.org/committees/wss/

RSA. http://www.rsasecurity.com/

Web Services Security Forum. RSA. http://www.rsasecurity.com/

XML Trust Center. http://www.xmltrustcenter.org/index.htm

Miscellaneous

These URLs contain some other categories, including security (such as XML Trust Center) and Web Services developer tools (such as Eclipse).

BPEL4WS. http://www.ebpml.org/bpel4ws.htm

SOAP-WRC/James Snell. http://www.soap-wrc.com/webservices/

TechMetrix. http://www.techmetrix.com/trendmarkers/topics/tmktopic.php?topic=asp

Web Services Security Forum. http://www.xwss.org/index.jsp

XML Trust Center. http://www.xmltrustcenter.org/index.htm


Vendor-Specific Web Services Sites

These are vendor-specific Web Services Web sites that provide technical white papers and product evaluation copies for download.

Avinon. http://www.avinon.com/products/overview.html

BEA. http://www.bea.com/products/index.shtml

bindsystems. http://www.bindsystems.com/products.htm

bowstreet. http://www.bowstreet.com/products/businesswebfactory/index.html

CapeClear. http://capescience.capeclear.com/index.php and http://www.capeclear.com/products/index.shtml

C# Station. http://www.csharp-station.com/

IBM. http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights and http://alphaworks.ibm.com/webservices

IONA. http://www.xmlbus.com/

Killdara. http://www.killdara.com/products/vitiris/vitirisIntroduction.pdf, http://www.killdara.com/products/vitiris/index.htm and http://www.killdara.com/products/products.htm

Microsoft. http://www.microsoft.com/net

Mind Electric. http://www.themindelectric.com/

Novell (Silverstream). http://www.silverstream.com/Website/app/en_US/ProductsLanding

Progress eXcelon. http://www.exln.com/products/

Sun Microsystems. http://wwws.sun.com/software/ and http://dcb.sun.com/practices/webservices/

Systinet. http://www.systinet.com/products/index.html

WestBridge. http://www.westbridgetech.com/resources.html

XML Global. http://www.xmlglobal.com/prod/index.jsp


Web Services Resources and References

Web Services Portals

The following portals contain a variety of Web Services sites with news, technical articles, and white papers. They not only provide some technical resources, but also references to other Web Services links. They are good starters.


ebXML.org. http://www.ebxml.org/
LearnXMLWS. http://www.vbws.com/
O'Reilly XML.com. http://www.xml.com/
SOAPRPC. http://www.soaprpc.com/
Value-added Web Service Suppliers. http://www.vawss.org/
Web Services Architect. http://www.webservicesarchitect.com/resources.asp
WebServices.org. http://www.webservices.org/

Web Services News

The following Web sites contain many news and product updates related to Web Services. Some of them provide email alerts for subscription.

CBDiForm. http://www.cbdiforum.com/report.php3?topic_id=9

CFOInfo. http://team.cfoinfo.com/ (Original website is www.cfoinfo.com, Now has moved. Login user id=s2b, password=shaston)

ecademy. http://www.theecademy.com/node.php?id=318

I.T. Director. http://www.it-director.com/ts-section.php?section=17 (or select Web Services column)

I.T. Works. http://www.itworks.be/webservices/

OASIS. http://www.oasis-open.org/cover/sgmlnew.html

SearchWebServices. http://searchwebservices.techtarget.com/

TheServerSide. http://www.theserverside.com/home/index.jsp

The Stencil Group. http://www.stencilgroup.com/ideas_scope_wsindex.html

TopXML. http://www.topxml.com/

W3C. http://www.w3.org/2001/03/WSWS-popa/

XML Web Services Magazine. http://www.fawcette.com/xmlmag/

XMLHack. http://www.xmlhack.com/


Xmethods. http://www.xmethods.net/
XML.org. http://www.xml.org/xml/news_market.shtml

Development Platforms and Tools, Including Tutorials and Articles

These Web sites contain good online tutorials and technical articles, from technology overview to specific technical details. Some of them have sample codes for download.

Advisor. http://advisor.com/Articles.nsf/vTechLookup!OpenView&RestrictToCategory=Web%20Services

Eclipse. http://www.eclipse.org/

IBM Web Services (developerWorks). http://www-106.ibm.com/developerworks/webservices/

Microsoft Web Services. http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000442

Sun Microsystems's Java™ Technology and Web Services. http://java.sun.com/webservices/

Sun ONE Studio™ (Forte). http://wwws.sun.com/software/sundev/index.html




Some Web Services Security Tools

The following are some examples of useful Web Services security tools that are publicly available. These are not exhaustive, but they are fairly handy for understanding the new technology, evaluation, and Proof of Concept.


Titan (Security Hardening Tool). Titan is a fairly comprehensive platform-security assessment and hardening tool. You can download it from http://www.fish.com/titan/. To install it, uncompress the tar files, and run the installation script. The script "Titan" will scan the target host, and the script "TitanReport" will render the scanning analysis and recommendation.



VeriSign's Trust Services Integration Kit (XKMS). You can download TSIK version 1.1 from http://www.xmltrustcenter.org/developer/verisign/tsik/download.htm. There is a concise installation document. You need to add a few jar files (tsik.jar, xml_pilot_key.jar, xml_prod_key.jar, and xerces. jar) into the CLASSPATH in order to execute the sample programs or any home-grown programs.



IBM's XML Security Suite (XML-ENC, XML-DSIG, XACML). You can download the XML Security Suite (XSS4J) from http://alphaworks.ibm.com/tech/xmlsecuritysuite. You'll need to add some new jar files (xercesImpl.jar and xmlParserAPIs.jar from Xerces2 and xalan.jar and xml-apis.jar from Xalan2) to the CLASSPATH. The user interface for managing access rights control can be invoked by java com.ibm.xml.policy. tool.VisualTool.

Some Web Services Security Tools

The following are some examples of useful Web Services security tools that are publicly available. These are not exhaustive, but they are fairly handy for understanding the new technology, evaluation, and Proof of Concept.


Titan (Security Hardening Tool). Titan is a fairly comprehensive platform-security assessment and hardening tool. You can download it from http://www.fish.com/titan/. To install it, uncompress the tar files, and run the installation script. The script "Titan" will scan the target host, and the script "TitanReport" will render the scanning analysis and recommendation.



VeriSign's Trust Services Integration Kit (XKMS). You can download TSIK version 1.1 from http://www.xmltrustcenter.org/developer/verisign/tsik/download.htm. There is a concise installation document. You need to add a few jar files (tsik.jar, xml_pilot_key.jar, xml_prod_key.jar, and xerces. jar) into the CLASSPATH in order to execute the sample programs or any home-grown programs.



IBM's XML Security Suite (XML-ENC, XML-DSIG, XACML). You can download the XML Security Suite (XSS4J) from http://alphaworks.ibm.com/tech/xmlsecuritysuite. You'll need to add some new jar files (xercesImpl.jar and xmlParserAPIs.jar from Xerces2 and xalan.jar and xml-apis.jar from Xalan2) to the CLASSPATH. The user interface for managing access rights control can be invoked by java com.ibm.xml.policy. tool.VisualTool.

Web Services Deployment Platform

SOAP Debugger. An example is XMLSpy, which is an XML editing utility with some SOAP debugging capability. You can download a trial copy from http://www.xmlspy.com.

Unit Testing. An example is jTest, which is a Java-based unit testing tool.



Stress/Load Testing. An example is Mercury Interactive's LoadRunner, which is an application stress test tool. Refer to http://www.mercuryinteractive.com for details.



Regression Testing. An example is Rationale Test Studio, which provides regression testing capability.



SOAP Testing/Performance Testing. Examples are Empirix's FirstAct (commercial product that simulates end-user SOAP client's testing; refer to http://www.empirix.com), PushtoTest (a SOAP testing utility; refer to http://www.pushtotest.com), and SOAPTest (a public utility for generating stress testing for SOAP clients; refer to http://www.parasoft.com/jsp/products/ home.jsp?product=SOAP).



Web Services Management/Network Services. These vendors provide routing of Web Services for different versioning and also network management tools for remote Web Services. Examples are http://www.flamenconetworks.com/ and http://www.talkingblocks.com/.

The Web Services Marketplace

The Web Services Marketplace

1 Products

Vendor Product Categories

The vendor solutions in the Web Services marketplace can be described as follows:

Infrastructure

  • Application server

  • Middleware, such as JMS-enabled middleware

  • Edge server, such as cache (using XML database)

  • Registries, such as the UDDI or ebXML registry

Development Tools

  • Developer workbench that can wrap apps logic into a SOAP proxy, and publish it to UDDI

  • Automated testing tools, such as jTest

Web Services Tools

  • JMS-SOAP bindings, such as the JMS bridge

  • SDK, such as WSTK

Web Services Standards

  • Java, such as JAX, Web Services Developer Pack

  • C#

  • XML standards, such as SOAP, SOAP-SEC, XAML, SAML

Specialized Market

  • Porting .NET to Unix

  • Porting Java to Windows platform

Web Services Management

  • Metering Web Services calls performance and service level. This can also send alerts to administrators or system management tools based on user-defined business rules.

  • Security appliance, such as XML firewall for SOAP messages; appliance for SOAP message encryption and decryption.

  • Service versioning, such as mapping to different service end-point URLs based on the incoming SOAP request and user profile. This addresses many legacy systems or customized services that provide the same business functionality but exist in multiple versions and perhaps operate in different platforms.

Table 3-4 offers a sampler of the vendor products in the marketplace.

Table 3-4. A Sampler of Web Services Vendor Products

Category

Vendors

URIs

Application Servers

BEA

http://www.bea.com/products/index.shtml

Sun ONE™

http://wwws.sun.com/software/products/appsrvr/home_appsrvr.html

Novell

IBM

http://www.silverstream.com/Website/app/en_US/ProductsLanding

http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights

Microsoft

http://www.microsoft.com/net

IDE/Development Environment

BEA

http://www.bea.com/products/index.shtml

Sun ONE™

http://wwws.sun.com/software/products_categories/development_tools.html

Novell

http://www.silverstream.com/Website/app/en_US/ProductsLanding

IBM

http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights

IONA

http://www.xmlbus.com/

CapeClear

http://www.capeclear.com/products/index.shtml

Bowstreet

http://www.bowstreet.com/products/businesswebfactory/index.html

Avinon

http://www.avinon.com/products/overview.html

Microsoft

http://www.microsoft.com/net

Service Registry

BEA

http://www.bea.com/products/index.shtml

Sun ONE™

http://wwws.sun.com/software/product_categories/directory_servers_identity_mgmt.html

Novell

http://www.silverstream.com/Website/app/en_US/ProductsLanding

Systinet

http://www.systinet.com/products/index.html

IBM

http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights

The Mind Electric

http://www.themindelectric.com

Microsoft

http://www.microsoft.com/net

Application Tools/Middleware

Sun ONE™

http://wwws.sun.com/software/product_categories/development_tools/html

Bowstreet

http://www.bowstreet.com/products/businesswebfactory/index.html

Systinet

http://www.systinet.com/products/index.html

Novell

http://www.silverstream.com/Website/app/en_US/ProductsLanding

XMLGlobal

http://www.xmlglobal.com/prod/index.jsp

IBM

http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights

Microsoft

http://www.microsoft.com/net

Process, Management, Methodology

Sun ONE™

http://wwws.sun.com/sofstware/products/message_queue/home_message_queue.html

Bindsystems

http://www.bindsystems.com/products.htm

Bowstreet

http://www.bowstreet.com/products/businesswebfactory/index.html

http://www.silverstream.com/Website/app/en_US/ProductsLanding

Novell

IBM

http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights

Microsoft

http://www.microsoft.com/net

.NET to Java Porting

Halcyon

http://www.halcyonsoft.com

Mono

http://www.go-mono.com/faq.html (Running .NET on Linux. This is still in the development stage. Currently, Mono provides a C# compiler on Linux, implements ADO.NET and ASP.NET. Please refer to the Mono status under http://www.go-mono.com/.

Java to .NET Porting

Microsoft

http://msdn.microsoft.com/visualj/jump/default.asp

Web Services Management

Amberpoint

http://www.amberpoint.com/

Flamenco Networks

http://www.flamenconetwork.com/

Talking Blocks

http://www.talkingblocks.com/

Westbridge Technology

http://www.westbridgetech.com/

Vendor Products by Development Life Cycle

Table 3-5 shows some examples of vendor solutions that are available to meet different needs of the development life cycle.

Table 3-5. Marketplace for Different Development Life Cycle Stages

Development Life Cycle

Types of Development Tools

Examples of Vendors

Discovery

UDDI

ebXML

Sun ONE™, IBM, BEA, The Mind Electric, Systinet, Novell (Silverstream), MicrosoftSun ONE™, XMLGlobal

Creation

Developer Workbench (IDE)

Sun ONE™ Studio, IBM, IONA, CapeClear, Bowstreet, Avinon, Microsoft

Transforming

JAX, XML, SQL Mapping

Sun (JAX), IBM (Xerces), XMLGlobal, Microsoft

Building

SOAP, WSDL

OSF (Apache), Sun ONE™ Studio, IBM, CapeClear, Bindsystems, The Mind Electric, Killdara, Microsoft

Deploying

Deploying tools

OSF (Apache ANT)

Testing

Local/remote testing

Jtest

Publishing

Publish to registries

Sun (JAXR), IBM (UDDI4J)

Some Publicly Available Development/Productivity Tools

Here are some development or productivity tools that can be downloaded as a free trial:

XMLSpy. For developing XML Schema, DTD, and validating XML well-formedness. The new version 4.2 also provides SOAP debugging.

The Java Web Services Developer Pack (JWSDP) from Sun Microsystems is a vendor-neutral Web Services Development Kit that avoids the need to purchase expensive Web Services packages. It provides basic tools but is not sufficient for serious or large-scale development. JWSDP provides:

  • Tomcat engine with ANT deployment tool

  • All-in-one JAR files—javamail, smtp, and so forth

  • JAX pack—JAXP, JAXM, JAXR, JAXB

  • UDDI browser and registry

  • Application deployment tool

  • Excellent tutorial book

How to Use JWSDP for Development

JWSDP can be used for proof of concept/prototyping, as a rudimentary development platform for road warriors, and for coding simple SOAP messages for integration testing. To best utilize JWSDP, you can run JWSDP on Linux, Solaris OE™, or Windows NT. You can run it with a SOAP server administration, or run it with Apache Cocoon for any-to-any delivery.

Something to Note. JWSDP has applied some special patches for JAR. There is also a version that is compatible with other stand-alone downloads of JAX Pack, Tomcat, or SOAP.

3.5.2 Selecting Your Web Services Tools

Selection Criteria

Here are some suggestions for selecting an appropriate Web Services tool for your IT shop:

General

  • Total cost of ownership

  • Reliability and support service of vendor (for example, financial stability, local support)

  • Standards compliance (for example, J2EE™, EJB™ 1.2, SOAP 1.2, WSDL 1.1)

  • Availability of technical documentation, such as examples, tutorial

Application Server Platform

  • Clustering features benchmarking—failover recovery time, any manual intervention

  • Logs—logging availability at different levels (for example, can it trace back different callers and intermediaries?)

  • Automated testing and deployment platform

  • Availability, of or integration with, other apps server analyzer tools (for example, thread performance analysis)

Web Services Development Platform

  • Automatic WSDL generation from IDE

  • IDE integration with other tools

Among these criteria, you may also look for:

  • SOAP 1.1/1.2 support; SOAP 1.2 has some considerable changes

  • Integration with J2EE™ application servers, and their positioning

  • Compatibility with other Web Services products, such as JMS bridge

  • Any proprietary features, such as Electric Server Page

3.5.3 Industry Development

There are three major Web Services development technologies in the industry:

ebXML. ebXML is a key technology supporting Web Services. It is backed by OASIS, CE/FACT, DISA, and many public communities. One motive driving these public communities is to use ebXML as an alternative for EDI-type transactions. ebXML uses SOAP 1.1 with Attachment as the transport and routing layer. It has much richer functionality and contents and is supported by business processes (such as BPSS) and better security.

SOAP. SOAP 1.0 used to be Microsoft NT-centric technology. IBM and other vendors have modified it to turn SOAP 1.1 into an open platform and submitted it to Apache Open Sources Foundation. SOAP 1.1 with Attachment is an extension to support object embedding with S/MIME, developed by HP and other vendors.

UDDI. UDDI is a business Service Registry that allows users to create, discover, and bind business services. IBM, Microsoft, and Ariba initially set up three different test UDDI sites. Recently, Ariba withdrew, but there is some discussion that HP will provide the UDDI test site on behalf of Ariba. SAP also now provides a public UDDI node.

Leading technology vendors such as IBM and Microsoft have large-scale initiatives in developing Web Services toolkits and White Papers. There are many Application Server and Middleware vendors developing components that support Web Services, including BEA Weblogic, webMethods, and TIBCO.

Many Web Services standard bodies have emerged since 2000. Among them, there are a few standard bodies (or related associations) that have large industry involvement:

OSF Apache. Open Source Foundation coordinates and distributes Web Services technology as public domain (http://www.apache.org)

UDDI.org. (now under OASIS) Standard body for promoting UDDI registry. It has recently transitioned to OASIS's management (http://www.uddi.org or http://www.oasis.open.org)

W3C. Worldwide Web Consortium that publishes and approves Internet-related standards (http://w3c.org)

Some examples of the supporting communities include:

OASIS. A community that supports ebXML standards and implementation (http://www.oasis-open.org/)

UN/CEFACT. Previously UN/EDIFACT, UN/CEFACT promotes EDI and also supports ebXML as the successor to EDI in collaboration with OASIS (http://www.ebxml.org/)

Open Application Group. A standards body that adopts the ebXML implementation (http://www.openapplications.org/)

DISA. A U.S. ANSI standard body that also adopts the ebXML implementation (http://www.disa.org/)

SOAP and ebXML

Web Services technology is intended to be platform- and vendor-neutral. It is expected that this technology be highly flexible for interoperability and integration. SOAP and ebXML standards are used for different reasons. This can be understood in the context of their underlying design principles and value proposition.

The initial design of SOAP does not cater to non-XML contents such as EDI transactions. SOAP 1.1 with Attachment is a major breakthrough; it uses MIME to embed binary objects. The original design principles behind SOAP also support non-HTTP transport, though it has not been implemented at all. The security design of SOAP is highly volatile and weak at this stage.

ebXML can be used to exchange XML contents (incorporating any XML document in the SOAP Body) and non-XML contents (embedding ANSI X12 transactions as attachments). The latter is the mechanism by which ebXML supports EDI documents. It now uses SOAP as the transport layer. ebXML differentiates from SOAP/UDDI by introducing business processes and JMS binding. It uses UML to model business processes. The business process and information models will help integrate with the business entities' back office applications. JMS binding provides a secure and reliable transport mechanism over HTTP.

Table 3-6 summarizes some facts about different Web Services technology thought leaders.

Table 3-6. Comparing Sun, Microsoft, and IBM Approaches

Sun

Microsoft

IBM

Framework

Sun ONE™

.NET

IBM Web Services

Infrastructure

Open standards technology, e.g., J2EE™—Java™ and XML LDAP

.NET framework, including C#, VB, C++, VBScript, and JScript

WebSphere suite

Developer tools

Sun ONE™ Studio

Sun ONE Integration Manager

Visual Studio.NET

.NET framework SDK

.NET enterprise servers

Web Services Toolkit Application Developer Studio Visual Age

Web Services dialects

Sun ONE™—Smart Web Services

Hailstorm (not available yet)

N/A

Discovery

UDDI

ebXML

UDDI

UpnP

UDDI

Security

WS-Security

Liberty

SAML

WS-Security

WS-Security

Business logic

J2EE™

ebXML

WSCI

Biztalk

BPEL4WS

J2EE™

ebXML

BPEL4WS

Comparing Different Web Services Architecture

Comparing Different Web Services Architecture

Microsoft

Sun

IBM

Web Services standards support (SOAP 1.2, WSDL, UDDI)

Yes

Yes

Yes

Web Services architecture/framework

.NET

Sun ONE™

IBM Web Services

Comprehensive development environment and tools

.NET server

.NET studio

Sun ONE™ Apps Server

Sun ONE™ Integration Server

Sun ONE™ Studio

WebSphere Application Server

WebSphere Application Developer Studio

Expose EJB as Web Services

No

(But can interoperate with other Web Services by exposing COM/COM+ objects through .NET interoperability.)

Yes

Yes

Synchronous (Sync) and Asynchronous (Async) message support

Sync—DCOM

Sync—JAXM, SAAJ Async—JAX-RPC

Sync—SAAJ

Async—JAX-RPC

Methodology to design Web Services architecture

No

Yes—SunTone™, J2EE Patterns™

Partial—eBusiness patterns

When to Use

Wintel PC platform only PASSPORT/Active Directory already in use

Open platform and interoperability

WebSphere platform with proprietary extension

Friday, May 2, 2008

Metro Tooling - Netbeans, Eclipse, Ant, Maven...

Metro - Glassfish Web Services stack comes with various tooling options. Here I provide the details details about the tooling options available for Metro.

Netbeans

Netbeans 5.5.1 comes with integrated Metro core (a.k.a JAX-WS RI) and a downloadable WSIT plugin. This allows you to develop web services solutions using easy to use GUI. NB 6 has integrated WSIT plugin.

More on Metro and Netbeans see:

Basic Web Services


Adding Quality of Service(WS-* and .NET 3.0 interop)

Eclipse

The instructions below are for Eclipse for JavaEE

Setup

This is onetime setup
  1. After starting Eclipse, select the J2EE perspective: Windows>Open Perspective>Others>J2EE
  2. In the lower window you should see a tab with label Servers. Select the tab and right click in the window and select new>Server.
  3. To download the GlassFish server, select Download additional server adapters. Accept the license and wait for Eclipse to restart.
  4. After Eclipse has restarted, you can create a new GlassFish V2 Java EE5 server.
  5. In the creation dialog select Installed Runtimes and select the directory where your GlassFish installation resides.


How to create a Web service

  1. To create the HelloWorld service, create a new dynamic Web project. Give it a name (e.g. helloworld) and select as target runtime GlassFish
  2. In that project you can create the class HelloWorld
    package sample;

    import javax.jws.WebService;

    @WebService
    public class HelloWorld {
    public String hello(String param){
    return param + ", World";
    }
    }
  3. Deploy the service by selecting the project and select Run as>Run on server.
  4. Check that in the server Window that helloworld project has status Synchronized. If this is not the case, right-click in the server window and select publish.
  5. You can check that the GlassFish server is started and contains the Web service, by going to the admin console of GlassFish (localhost:4848)

See Arun's screen cast for the above steps.

Creating Web Service Client using Wsimport CLI

  1. Create a new project for the HelloWorld client (an ordinary Java project suffices).
  2. Select Add Glassfish v2 as Server Runtime in Build Path.
    1. Right clieck->BuildPath->Add Library->ServerRuntime->Glassfish v2
  3. Open a command window and go into the source directory of that project in Eclipse. For example, if the Eclipse workspace is in path c:\home\vivekp\workspace and the name of the project is echostringclient, then you need to go to c:\home\vivekp\workspace\helloworld\src. In this directory execute wsimport -keep http://localhost:8080/helloworld/HelloWorldService?wsdl. On Linux or with Cygwin on Windows, you need to escape the ? by using \? instead.
  4. Select refresh in the project view to see the generated files.
  5. Now you can create the client class HelloWorldClient
  6. You can execute the client, by selecting the HelloWorldClient in the package explorer of Eclipse and selecting Run>Java Application. In the console window of Eclipse, you should see "Hello World".

Creating Web Service Client using Wsimport Ant Task

You can pretty much avoid steps 3 - 5 above by using an Ant build.xml file.

  1. Select helloworldclient in Package Exp and create a new file build.xml
  2. In this file (build.xml) copy the sample ant build script
  3. Then select build.xml in the package explorer, then Right Click->Run As->Ant Build...
  4. Invoke client target, it will run wsimport ant task and generate the client side stubs
  5. Invoke run to invoke the endpoint and run the client or you can execute the client, by selecting the HelloWorldClient in the package explorer of Eclipse and selecting Run>Java Application. In the console window of Eclipse, you should see "Hello World".

Creating Web Service Client using SOAP UI Plugin

  • Inside Eclipse, install SOAP UI Plugin
    • Select "Help"/"Software Updates"/"Find and Install..."
    • Select the "Search for new features to install" option
    • Press the "New Remote Site" button and add http://www.soapui.org/eclipse/update/site.xml as the plugin URL
    • Select Finish and the follow the dialogs to install the soapUI feature
  • Create a new project for the HelloWorld client (an ordinary Java project suffices).
  • Select Add Glassfish v2 as Server Runtime in Build Path.
    • Right clieck->BuildPath->Add Library->ServerRuntime->Glassfish v2
  • Select the project and Right Click->Soap UI->Add SOAPUI Nature, SOAP UI WebService item will be added in Project Explorer
  • Select SOAP UI perspective
    • Right click on Projects->hellowworlclient->Add WSDL from URL, enter the deployed service URL: http://localhost:8080/helloworld/HelloWorldService?wsdl. This will import the wsdl and you will see HelloWorldPortBinding
  • Select HelloWorldPortBinding and Right Click->GenerateCode->JAX-WS Artifacts
    • Enter the appropriate info in the JAX-WS Artifacts window
    • Click Tools and enter the location of JAX-WS Wsimport, for example c:\glassfish\bin
    • Click OK
    • Then click Generate on JAX-WS Artifacts window, it will display dialog box the operation was successful. Switch back to Java Perspective, then refresh the src folder and you can see the wsimport generated classes
    • Now implement your client code
                   
      package sample;

      public class HelloWorldClient {

      /**
      * @param args
      */
      public static void main(String[] args) {
      //Create Service
      HelloWorldService service = new HelloWorldService();

      //create proxy
      HelloWorld proxy = service.getHelloWorldPort();

      //invoke
      System.out.println(proxy.hello("hello"));
      }
      }
  • You can execute the client, by selecting the HelloWorldClient in the package explorer of Eclipse and selecting Run>Java Application. In the console window of Eclipse, you should see "Hello World".
You can also use Wsimport and Wsgen Maven2 tools. For details see here.

Netbeans offers an easy to use a comprehensive Metro tooling choice. On Eclipse you can use SOAP UI or ant build script or CLI or even Mavem based tools, which does not look bad. There is RFE on Eclipse and looks like it is being looked at.

For the Quality Of Service features (WS-* features) it is little difficult as manually creating/modifying WSIT configuration is hard, so we need equivalent of WSIT Plugin in NetBeans for Eclipse. It will be great if anyone would like to do the WSIT plugin for Eclipse. Please let us know if you are willing to write a WSIT plugin for Eclipse.

Types of Web Applications

Java Web-Frameworks

Pro Cons
JSF
  • Java EE Standard - lots of demand and jobs
  • Fast and easy to develop with initially
  • Lots of component libraries
  • Tag soup for JSPs
  • Doesn't play well with REST or Security
  • No single source for implementation
Spring MVC
  • Lifecyle for overriding binding, validation, etc.
  • Integrates with many view options seamlessly: JSP/JSTL, Tiles, Velocity, FreeMarker, Excel, XSL, PDF
  • Inversion of Control makes it easy to test
  • Configuration intensive - lots of XML
  • Almost too flexible - no common parent Controller
  • No built-in Ajax support
Stripes
  • No XML - Convention over Configuration
  • Good documentation (easy to learn)
  • Enthusiastic community
  • Small Community
  • Not as actively developed as other projects
  • Hard-coded URLs in ActionBeans
[Struts2]
  • Simple architecture - easy to extend
  • Tag Library is easy to customize with FreeMarker or Velocity
  • Controller-based or page-based navigation
  • Documentation is poorly organized
  • Too much concentration on new features
  • Googling results in Struts 1.x documentation
[Tapestry]
  • Very productive once you learn it
  • Templates are HTML - great for designers
  • Lots of innovation between releases
  • Documentation very conceptual, rather than pragmatic
  • Steep learning curve
  • Long release cycles - major upgrades every year
Wicket
  • Great for Java developers, not web developers
  • Tight binding between pages and views
  • Active community - support from the creators
  • HTML templates live next to Java code
  • Need to have a good grasp of OO
  • The Wicket Way - everything done in Java
Click
  • Really simple
  • Small Community
Seam
  • solves some JSF Problems like Bookmarking
  • Groovy Support
  • Integration with JPA and Hibernate (WebBeans)
  • Still JSF
ZK
  • Ajax Integration and Declarative Page Creation
  • One single source of implementation, one Tree, one Grid etc
  • Big Community, Fast Release Cycle
  • Licence Costs

(based on Raibles Design)

Types of Web Applications

There are tree types of web applications:

Consumer-facing, high-traffic, stateless applications:

  • Struts2
  • SpringMVC
  • Stripes

Internal, more desktop-like applications that are stateful:

  • JSF
  • Tapestry
  • Wicket

Media-rich applications that require a RIA framework like Flex

  • GWT
  • Flex
  • ZK

SOA Frameworks

ESBs

  • Apache ServiceMix is a JSR-208, open-source ESB compliant with the Java Business Integration (JBI) specification. ServiceMix is a full ESB that can work with many different SOAP Stacks such as Axis, WSIF, XFire, ActiveSOAP and JAX-WS. ServiceMix also has full support for Routing, Transformation and Orchestration.
  • OpenESB implements an Enterprise Service Bus (ESB) runtime using Java Business Integration (JBI) as the foundation.
  • Mule is an open source ESB (Enterprise Service Bus) and integration platform with JBI Integration.
  • JBossESB

Webservice Frameworks

  • Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
  • Axis2 is an implementation of the SOAP ("Simple Object Access Protocol") submission to W3C.
  • Metro is a extensible, easy-to-use web service stack. It is a one-stop shop for all web service needs, from the simplest hello world web service to reliable, secured, and transacted web service that involves .NET services.

Tools

  • Apache Tuscany - a robust infrastructure that simplifies the development of SOA-based systems, including: Service Component Architecture (SCA), Service Data Object (SDO), and Data Access Service (DAS). Tuscany is not a ESB, but it's simplify the assembly of components of composite applications according to the SCA specification.
  • Apache Synpase - a robust, lightweight implementation of a highly scalable and distributed service mediation framework based on Web services specifications. Synapse is not a full ESB in the most common sense of the term.

WebServiceExternalSites

External sites covering Web Services and XML

[WWW] BEA Web Services Dev Center

[WWW] IBM developerWorks Web Services corner

listing] of "all current open standards and specifications that define the Web services family of protocols", though Soap with Attachments is mysteriously absent.

[WWW] Macromedia Web Services Topic Center

[WWW] MSDN Web Services

  • These are the microsoft pages; little Axis coverage but plenty on Web Service specifications.

[WWW] Oracle XML Technology Center

[WWW] PerfectXml.com

  • A great resource for XML and Web Services work. Includes links to book excerpts and tools.

[WWW] Sun Java Technology and Web Services

[WWW] XmlHack.com

  • Developer news from the XML community

[WWW] Web Services Journal

[WWW] WebServices.org

  • Web Services Industry Portal

[WWW] WebServices.xml.com

  • The O'Reilly site is always up to date, interesting and useful. It doesn't advocate a single technology (REST, SOAP, RDF...), or a single product. As such, it retains its independence and value.

[WWW] The XML FAQ

  • This is the list of Frequently-Asked Questions about the Extensible Markup Language (XML).

JavaOne Conference Bookstore - Best Sellers

Here are the Top Ten Best Sellers for the bookstore for the week at this time

Rank Title Publisher
1 Java Concurrency in Practice
ISBN: 0321349601
Addison Wesley
2 Core JavaServer Faces 2nd Edition*
ISBN: 0131738860
Prentice Hall
3 Java Puzzlers
ISBN: 032133678X
Addison Wesley
4 Effective Java
Programming Language Guide

ISBN: 0201310058
Addison Wesley
5 Rich Client Programming*
ISBN: 0132354802
Prentice Hall
6 JBOSS Seam
ISBN: 0131347969
Prentice Hall
7 SOA Using Java Web Services
ISBN: 0130449687
Prentice Hall
8 Groovy in Action
ISBN: 1932394842
Manning
9 RESTFul Web Services
ISBN: 0596529260
O'Reilly
10 GWT in Action
ISBN: 1933988231
Manning

* New SMI Press Title