<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7635494639548070064</id><updated>2012-02-16T02:09:45.360-08:00</updated><title type='text'>Mobile 2.0</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-4058908126934460021</id><published>2008-06-26T15:24:00.000-07:00</published><updated>2008-06-26T15:26:07.731-07:00</updated><title type='text'>常见Java开源JMS消息中间件及特性简介</title><content type='html'>JMS开源消息中间件有很多，本文对常见的几种进行了列举和简单比较，希望对MOM选型的个人和企业有所帮助&lt;br /&gt;。&lt;br /&gt;mom4j&lt;br /&gt;mom4j是一个完全实现JMS1.1规范的消息中间件并且向下兼容JMS1.0与1.02.它提供了自己的消息处理存储使它独立于关系数据与语言,所以它的客户端可以用任何语言开发.&lt;br /&gt;&lt;br /&gt;OpenJMS&lt;br /&gt;OpenJMS是一个开源的Java Message Service API 1.0.2 规范的实现,它包含有以下特性：&lt;br /&gt;*. 它既支持点到点（point-to-point）（PTP）模型和发布/订阅（Pub/Sub）模型。&lt;br /&gt;*. 支持同步与异步消息发送&lt;br /&gt;*. JDBC持久性管理使用数据库表来存储消息&lt;br /&gt;*. 可视化管理界面。&lt;br /&gt;*. Applet支持。&lt;br /&gt;*. 能够与Jakarta Tomcat这样的Servlet容器结合。&lt;br /&gt;*. 支持RMI, TCP, HTTP 与SSL协议。&lt;br /&gt;*. 客户端验证&lt;br /&gt;*. 提供可靠消息传输、事务和消息过滤&lt;br /&gt;&lt;br /&gt;UberMQ&lt;br /&gt;UberMQ完全实现了Java Message Service 规范。UberMQ是因为现有的许多JMS提供商已经违背了分布式计算的核心原则：快速与简单而开发的。&lt;br /&gt;&lt;br /&gt;Hermes JMS 利用它提供的Swing UI可以很好的实现监控JMS providers。&lt;br /&gt;&lt;br /&gt;ActiveMQ&lt;br /&gt;ActiveMQ是一个开放源码基于Apache 2.0 licenced 发布并实现了JMS 1.1。它能够与Geronimo，轻量级容器和任Java应用程序无缝的给合。&lt;br /&gt;&lt;br /&gt;Somnifugi&lt;br /&gt;Somnifugi使得工作在同一个java虚拟机中的线程能实现消息互发。&lt;br /&gt;&lt;br /&gt;MantaRay MantaRay基于peer-2-peer 技术。它具有以下特性:&lt;br /&gt;1.它既支持点对点(point-to-point)的域，又支持发布/订阅(publish/subscribe)类型的域。&lt;br /&gt;2.并且提供对下列类型的支持：经认可的消息传递,事务型消息的传递，一致性消息和具有持久性的订阅者支持。&lt;br /&gt;3.消息过滤体制。&lt;br /&gt;4.能与WebLogic and WebSphere 给合。&lt;br /&gt;5.支持TCP, UDP 与 HTTP传输协。 Presumo Presumo也是一个实现Java Message Service API的JMS消息中间件。 JORAM JORAM一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。 JMS4Sdivad JMS4Sdivad是一个消息系统.它部分地实现了Java消息服务(JMS) API.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-4058908126934460021?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/4058908126934460021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=4058908126934460021' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4058908126934460021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4058908126934460021'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/06/javajms.html' title='常见Java开源JMS消息中间件及特性简介'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-8821830270426011936</id><published>2008-06-26T14:13:00.000-07:00</published><updated>2008-06-26T15:17:10.355-07:00</updated><title type='text'>单实例模式数据库连接池+log4j</title><content type='html'>&lt;a href="http://www.mldn.cn/articleview/2007-4-8/article_view_1955.htm"&gt;http://www.mldn.cn/articleview/2007-4-8/article_view_1955.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-8821830270426011936?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/8821830270426011936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=8821830270426011936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8821830270426011936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8821830270426011936'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/06/log4j.html' title='单实例模式数据库连接池+log4j'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-1878332769094144902</id><published>2008-05-08T07:33:00.000-07:00</published><updated>2008-05-08T07:34:00.802-07:00</updated><title type='text'>英文翻译词典工具软件与在线翻译全搜罗</title><content type='html'>无论是我们平时浏览网页还是阅读文献都会或多或少遇到几个难懂的英文词汇，这时我们就不免要翻词典了。网上的词典工具大概可以分为两种：离线词典，就是 可以不用联网，只要下载安装并运行就可以方便取词翻译；另外一种是在线词典，它需要我们访问一个网站，而后输入要查找的词汇等。现在我们就来总结一下线上 线下比较优秀的英汉词典。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;一、在线词典&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1、金山爱词霸&lt;/strong&gt;（&lt;a href="http://www.iciba.com/" target="_blank"&gt;http://www.iciba.com/&lt;/a&gt;）&lt;br /&gt;     这是目前最好的线上词典工具之一。词汇量涵盖了150余本词典辞书，70余个专业领域，28种常备资料，中、日、英网际大辞海，提供在线及时更新，第一时 间掌握流行词汇表达并为每个词汇都提供了真人发音和相关词汇释意。同时网站的界面也采用了简、繁、英、日等语言编写，便于不同的人群使用。&lt;br /&gt;    同时，爱词霸还提供了多种扩展功能，如QQ、MSN机器人、Firefox插件等，使你可以随时随地地翻译词汇。具体可以查看&lt;a href="http://web.iciba.com/partner/" target="_blank"&gt;http://web.iciba.com/partner/&lt;/a&gt; ，找到更多实用工具&lt;br /&gt;&lt;br /&gt;    不过，受词霸已经被谷歌（Google）收购，据传谷歌将于5月8日推出新版的词霸，名字可能定为谷歌金山词霸，除了词霸原有功能外，还增加了网络翻译、图片解释等。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2、海词在线词典&lt;/strong&gt;（&lt;a href="http://www.dict.cn/" target="_blank"&gt;http://www.dict.cn/&lt;/a&gt;）&lt;br /&gt;    海词在线词典由在美国印第安纳大学的中国留学生范剑淼创建。正式使用于2003年11月27日（美国的感恩节）。 虽然它的词汇量没有爱词霸庞大，但是它提供了大量例句并佩有真人发音，可以帮助矫正发音问题。&lt;br /&gt;    海词也提供了大量的小工具，你可以把它们添加到你的博客或者个人网站上来增加更多丰富多彩的功能。具体可以查看&lt;a href="http://www.dict.cn/tools.html" target="_blank"&gt;http://www.dict.cn/tools.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3、译典通&lt;/strong&gt;（&lt;a href="http://www.dreye.com.cn/" target="_blank"&gt;http://www.dreye.com.cn/&lt;/a&gt;）&lt;br /&gt;    网站的所有者为英业达(上海)有限公司。译曲通提供了较大量的词汇并配有真人发音，同时可以查询同义词/反义词，词形变化等。另外还可以查询日语词汇，并配有日语、英语学堂。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4、雅虎字典&lt;/strong&gt;（&lt;a href="http://zidian.cn.yahoo.com/" target="_blank"&gt;http://zidian.cn.yahoo.com/&lt;/a&gt;）&lt;br /&gt;     和爱词霸一样，具有词汇提示功能，比如你输入reci就会提示以其开头的所有单词，方便输入。雅虎字典一个最大的好处就是他能翻译网络词汇，在互联时代， 像汉字一样，很多旧词有了新解，这时候你就可以通过网络词汇来查找它的亲含意了。不过，雅虎的单词翻译是由译典通提供的。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5、有道词典&lt;/strong&gt;（&lt;a href="http://dict.yodao.com/" target="_blank"&gt;http://dict.yodao.com/&lt;/a&gt;）&lt;br /&gt;   有道是网易自主研发的搜索引擎，并提供词典功能。有道词典的释义也是来自译典通，但又有很多创新，比如英英翻译、网络解释、例句查询、同义词、反义词等，还可以创建自己的单词本。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6、百度词典&lt;/strong&gt;（&lt;a href="http://dict.baidu.com/" target="_blank"&gt;http://dict.baidu.com/&lt;/a&gt;）&lt;br /&gt;   百度词典的释义来自译典通，并且没有太大改进。类似于Handbook一类的工具书。&lt;br /&gt;&lt;br /&gt;   此外，在线词典还有很多，比如&lt;a class="quoteLink" href="http://humanum.arts.cuhk.edu.hk/Lexis/Lindict/" target="_blank"&gt;林语堂《当代汉英大词典》&lt;/a&gt;、&lt;a class="quoteLink" href="http://www.m-w.com/" target="_blank"&gt;韦氏在线词典&lt;/a&gt;、&lt;a class="quoteLink" href="http://dictionary.langenberg.com/" target="_blank"&gt;英语多功能词典&lt;/a&gt;等。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7、星际译王&lt;/strong&gt;（&lt;a href="http://www.stardict.cn/" target="_blank"&gt;http://www.stardict.cn/&lt;/a&gt;）&lt;br /&gt;    提供了大量的词汇翻译，支持多语言翻译。不过你要使用他的全部功能必须注册成为会员，还好，注册会员是免费的。星际译王还提供了Firefox插件，如果你使用的Firefox浏览器，不妨试试看，插件下载：&lt;a href="http://www.stardict.cn/browserplugin.php" target="_blank"&gt;http://www.stardict.cn/browserplugin.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8、沪江小d（&lt;a href="http://dict.hjenglish.com/" target="_blank"&gt;http://dict.hjenglish.com/&lt;/a&gt;）&lt;/strong&gt;&lt;br /&gt;     解释详细，并且带有大量的例句解释和参考网页。界面清新，并提供了大量的语言工具链接&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;二、线下词典、翻译软件&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1、金山词霸&lt;/strong&gt;（&lt;a href="http://cp.iciba.com/index.shtml" target="_blank"&gt;http://cp.iciba.com/index.shtml&lt;/a&gt;）&lt;br /&gt;    相信金山词霸是目前使用最为广泛的汉英双语工具。他不仅词汇量，而且能够桌面即时取词使用也相当方便，还可以查询多学科词汇，可以说是做的相当成功的一款词汇软件（难怪谷查检和百度都盯上他了）。下载地址：&lt;a href="http://cp.iciba.com/index.shtml" target="_blank"&gt;http://cp.iciba.com/index.shtml&lt;/a&gt; （收费软件）。&lt;br /&gt;&lt;br /&gt;    P.S. 谷歌（Google）发布的新版词霸将是一款全免费软件。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2、灵格斯词霸&lt;/strong&gt;（&lt;a href="http://www.lingoes.cn/" target="_blank"&gt;http://www.lingoes.cn/&lt;/a&gt;）&lt;br /&gt;     也是词霸哦，不过他是灵格斯，他是一款全免费可在线更新词库的词典工具。它的安装文件非常小，目前最新版也只有2.8M。使用者可以根据自己的需要下载不 同的词典库，如牛津高阶英语词典 (第6版)、朗文当代英语词典 (第4版) 、柯林斯高阶英语词典 (第4版) 等等。灵格斯只是一个外壳，你安装什么样的词典就能翻译什么样的词汇，所以你安装了法语、日语、甚至是爱斯基摩语词典，只要安装他就能翻译。其取词也比较 人性化，只有当同时按下Ctrl键时才会取词，也就是在你想用的时候才会用。&lt;br /&gt;    词霸下载：&lt;a href="http://www.lingoes.cn/zh/translator/index.html" target="_blank"&gt;http://www.lingoes.cn/zh/translator/index.html&lt;/a&gt;&lt;br /&gt;    词库下载：&lt;a href="http://www.lingoes.cn/zh/dictionary/index.html" target="_blank"&gt;http://www.lingoes.cn/zh/dictionary/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3、有道桌面词典&lt;/strong&gt;（&lt;a href="http://cidian.yodao.com/" target="_blank"&gt;http://cidian.yodao.com/&lt;/a&gt;）&lt;br /&gt;    和有道线上词典配套的工具。当前版本为1.1，大小为2.7M精简版只有1.16M。可以在线翻译、网络释义、海量例句、屏幕取词等。是一款轻量级的词典工具。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4、星际译王&lt;/strong&gt;（&lt;a href="http://stardict.sourceforge.net/" target="_blank"&gt;http://stardict.sourceforge.net/&lt;/a&gt;）&lt;br /&gt;     一款开源且免费的翻译工具。支持全文翻译、网络词汇、鼠标取词等。它是一个跨平台的国际化的词典软件，有选中区取词，通配符匹配，模糊查询等强大功能。目 前已有两百多个词典，支持几十种语言,其中中文词汇有100多万。跨平台的国际词典软件！它功能强大，实用性强，“ 通配符匹配”，“鼠标查词”，“模糊查询”等功能倍受青睐！&lt;br /&gt;    下载：&lt;a href="http://stardict.sourceforge.net/" target="_blank"&gt;http://stardict.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5、babylon词典（&lt;a href="http://www.babylon.com/" target="_blank"&gt;http://www.babylon.com/&lt;/a&gt;）&lt;br /&gt;     来自以色列最强大的英文翻译软件 - Babylon Pro，在全球已有超过 70 个国家 2 千 2 百万人使用。Babylon-Pro 提供最专业英文翻译，有别于一般的翻译软件，Babylon 最迷人的是可外加其它语言字典，提供让您翻译一次可同时得到其它语言的翻译。例如您的字典清单中有英英、英中、英德、英日、英韩的字典时。当您查询一个英 文单字时，她便同时一次给您所有英中德日韩文的翻译。有付费和免费服务两种。&lt;br /&gt;&lt;br /&gt;[b]6、雅虎乐译（&lt;a href="http://soft.cn.yahoo.com/ly/" target="_blank"&gt;http://soft.cn.yahoo.com/ly/&lt;/a&gt;）&lt;/strong&gt;&lt;br /&gt;      安装包小于1M，同时还有乐译绿色版无需安装、免除卸载，解压缩即可立即使用。集成了网络词汇、鼠标取词、中英文双语解释等。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7、沪江小d桌面词典（&lt;a href="http://dict.hjenglish.com/" target="_blank"&gt;http://dict.hjenglish.com/&lt;/a&gt;client/）&lt;/strong&gt;&lt;br /&gt;      是沪江小d的离线工具，海量词汇，支持剪贴板取词。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;三、在线翻译&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;    再简单总结一下常用的在线翻译网站：&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1、Google在线翻译：&lt;/strong&gt;&lt;br /&gt;    谷歌的语言工具提供多种语言互译，同时还提供了全站翻译等，翻译还算比较准确。访问：&lt;a href="http://www.google.cn/language_tools?hl=zh-CN" target="_blank"&gt;http://www.google.cn/language_tools?hl=zh-CN&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2、Yahoo!在线翻译&lt;/strong&gt;&lt;br /&gt;    和谷歌相似，提供多种语言的全文翻译，翻译准确率较高。&lt;a href="http://fanyi.cn.yahoo.com/" target="_blank"&gt;http://fanyi.cn.yahoo.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3、百度在线翻译&lt;/strong&gt;&lt;br /&gt;    提供了比较简单的翻译功能，并可以使用Google的翻译工具。&lt;a href="http://site.baidu.com/list/104fy.htm" target="_blank"&gt;http://site.baidu.com/list/104fy.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4、爱词霸在线翻译&lt;/strong&gt;&lt;br /&gt;    提供了金山快译的部分功能，同样提供多各语言的互译。每次最多可以翻译500字，不过翻译结果也是来自Google。网址：&lt;a href="http://fy.iciba.com/" target="_blank"&gt;http://fy.iciba.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5、&lt;a href="http://www.microsoft.com/" target="_blank"&gt;微软&lt;/a&gt;Windows Live翻译&lt;/strong&gt;&lt;br /&gt;    这是软件专门用于提供翻译服务的网站，&lt;a href="http://www.microsoft.com/" target="_blank"&gt;微软&lt;/a&gt;的翻译还是相当准确的，每次最多翻译500字，同时也提供网站全站翻译，支持多种语言。具体网址：&lt;a href="http://www.windowslivetranslator.com/Default.aspx" target="_blank"&gt;http://www.windowslivetranslator.com/Default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6、华译网在线翻译&lt;/strong&gt;&lt;br /&gt;    这是一家专业的翻译公司提供的在线翻译服务。&lt;a href="http://www.readworld.com/" target="_blank"&gt;http://www.readworld.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7、金桥翻译中心&lt;br /&gt;    这是比较老牌的线上翻译服务公司，提供免费服务，本科毕业的时候在上面翻译过论文。&lt;a href="http://www.netat.net/" target="_blank"&gt;http://www.netat.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8、联通华建&lt;/strong&gt;&lt;br /&gt;    曾经用过，所以还记得网址，大家不妨试试：&lt;a href="http://www.165net.com/" target="_blank"&gt;http://www.165net.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9、国外的一个免费翻译网站freetranslation.com&lt;/strong&gt;&lt;br /&gt;    也是以前用过的，网址也很好记，感觉这个的翻译结果还是比较令人满意的，翻译的时候你可以选择“人工翻译”和“自动翻译”，“人工翻译”是收费服务：&lt;a href="http://www.freetranslation.com/" target="_blank"&gt;http://www.freetranslation.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;    网上的英语免费资源工具资源应该还有很多，以上只是总结了本人使用过或者是比较熟悉的，希望大家多补充 :-)。&lt;br /&gt;&lt;br /&gt;    本文转载自&lt;a target="_blank" href="http://www.dudo.org/article.asp?id=210"&gt;Dudo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-1878332769094144902?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/1878332769094144902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=1878332769094144902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1878332769094144902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1878332769094144902'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/blog-post_08.html' title='英文翻译词典工具软件与在线翻译全搜罗'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-8258284514645633599</id><published>2008-05-04T22:38:00.000-07:00</published><updated>2008-05-04T22:46:31.247-07:00</updated><title type='text'>security specifications</title><content type='html'>&lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;WS-Security&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;WS-SecurityPolicy&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;WS-Trust&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;WS-SecureConversation&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;WS-Federation&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Extensible Access Control Markup Language (XACML)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Extensible Rights Markup Language (XrML)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;XML Key Management (XKMS)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;XML-Signature&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;XML-Encryption&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Security Assertion Markup Language (SAML)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;.NET Passport&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Secure Sockets Layer (SSL)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;WS-I Basic Security Profile&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-8258284514645633599?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/8258284514645633599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=8258284514645633599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8258284514645633599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8258284514645633599'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/security-specifications.html' title='security specifications'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-1976303996321133652</id><published>2008-05-04T21:36:00.001-07:00</published><updated>2008-05-04T21:38:07.779-07:00</updated><title type='text'>Web Services Standards Bodies and Communities</title><content type='html'>&lt;p class="docText"&gt;&lt;span style="font-weight: bold;"&gt;Web Services Standards Bodies and Communities&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="docText"&gt;Here are some Web Services standards bodies and communities  that support Web Services implementation.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;ebPML.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.ebpml.org/default.htm" target="_blank"&gt;http://www.ebpml.org/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;OASIS.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.oasis-open.org/default.htm" target="_blank"&gt;http://www.oasis-open.org/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;W3C.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.w3.org/2002/ws/default.htm" target="_blank"&gt;http://www.w3.org/2002/ws/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;WS-I.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.ws-i.org/default.htm" target="_blank"&gt;http://www.ws-i.org/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;h3 class="docSection1Title"&gt;SOAP-Specific&lt;/h3&gt; &lt;p class="docText"&gt;Here is a list of SOAP-specific resources.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Apach SOAP.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://xml.apache.org/default.htm" target="_blank"&gt;http://xml.apache.org&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;DevelopMentor.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.develop.com/soap/default.htm" target="_blank"&gt;http://www.develop.com/soap/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;SOAPClient.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.soapclient.com/default.htm" target="_blank"&gt;http://www.soapclient.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;SOAPLite.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.soaplite.com/default.htm" target="_blank"&gt;http://www.soaplite.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;SOAPWeblog.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://soap.weblogs.com/default.htm" target="_blank"&gt;http://soap.weblogs.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="docText"&gt;&lt;br /&gt;&lt;span class="docEmphasis"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="docText"&gt;&lt;a class="docLink" href="http://soap.weblogs.com/default.htm" target="_blank"&gt; &lt;/a&gt;&lt;/p&gt;&lt;h3 class="docSection1Title"&gt; UDDI-Specific&lt;/h3&gt; &lt;p class="docText"&gt;Some UDDI-specific resources. UDDI has some good technical  white papers on best practices.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;UDDI.org.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.uddi.org/default.htm" target="_blank"&gt;http://www.uddi.org/&lt;/a&gt;&lt;/span&gt; (Now under OASIS. Refer to &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.oasis-open.org/committees/uddi-spec/default.htm" target="_blank"&gt;http://www.oasis-open.org/committees/uddi-spec/&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;jUDDI.org.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.juddi.org/default.htm" target="_blank"&gt;http://www.juddi.org/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;h3 class="docSection1Title"&gt;Web Services Security&lt;/h3&gt; &lt;p class="docText"&gt;There are an increasing number of Web Services security  resources. More references can be found in the Web Services security  chapter.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;OASIS Web Services Security TC.&lt;/span&gt;  &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.oasis-open.org/committees/wss/default.htm" target="_blank"&gt;http://www.oasis-open.org/committees/wss/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;RSA.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.rsasecurity.com/default.htm" target="_blank"&gt;http://www.rsasecurity.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Web Services Security Forum.  RSA.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.rsasecurity.com/default.htm" target="_blank"&gt;http://www.rsasecurity.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;XML Trust Center.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.xmltrustcenter.org/index.htm" target="_blank"&gt;http://www.xmltrustcenter.org/index.htm&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: left;" class="docText"&gt;&lt;a class="docLink" href="http://www.xmltrustcenter.org/index.htm" target="_blank"&gt; &lt;/a&gt;&lt;/p&gt;&lt;h3 class="docSection1Title"&gt;Miscellaneous&lt;/h3&gt; &lt;p class="docText"&gt;These URLs contain some other categories, including security  (such as XML Trust Center) and Web Services developer tools (such as  Eclipse).&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;BPEL4WS.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.ebpml.org/bpel4ws.htm" target="_blank"&gt;http://www.ebpml.org/bpel4ws.htm&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;SOAP-WRC/James Snell.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.soap-wrc.com/webservices/default.htm" target="_blank"&gt;http://www.soap-wrc.com/webservices/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;TechMetrix.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.techmetrix.com/trendmarkers/topics/tmktopic.php@topic=asp" target="_blank"&gt;http://www.techmetrix.com/trendmarkers/topics/tmktopic.php?topic=asp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Web Services Security Forum.&lt;/span&gt;  &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.xwss.org/index.jsp" target="_blank"&gt;http://www.xwss.org/index.jsp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;XML Trust Center.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.xmltrustcenter.org/index.htm" target="_blank"&gt;http://www.xmltrustcenter.org/index.htm&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-1976303996321133652?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/1976303996321133652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=1976303996321133652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1976303996321133652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1976303996321133652'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/web-services-standards-bodies-and.html' title='Web Services Standards Bodies and Communities'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-1291742875737116222</id><published>2008-05-04T21:35:00.000-07:00</published><updated>2008-05-04T21:36:01.568-07:00</updated><title type='text'>Vendor-Specific Web Services Sites</title><content type='html'>&lt;p class="docText"&gt;These are vendor-specific Web Services Web sites that provide  technical white papers and product evaluation copies for download.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Avinon.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.avinon.com/products/overview.html" target="_blank"&gt;http://www.avinon.com/products/overview.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;BEA.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bea.com/products/index.shtml" target="_blank"&gt;http://www.bea.com/products/index.shtml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;bindsystems.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bindsystems.com/products.htm" target="_blank"&gt;http://www.bindsystems.com/products.htm&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;bowstreet.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bowstreet.com/products/businesswebfactory/index.html" target="_blank"&gt;http://www.bowstreet.com/products/businesswebfactory/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;CapeClear.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://capescience.capeclear.com/index.php" target="_blank"&gt;http://capescience.capeclear.com/index.php&lt;/a&gt;&lt;/span&gt; and &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.capeclear.com/products/index.shtml" target="_blank"&gt;http://www.capeclear.com/products/index.shtml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;C# Station.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.csharp-station.com/default.htm" target="_blank"&gt;http://www.csharp-station.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;IBM.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www-3.ibm.com/software/info1/websphere/index.jsp@tab=highlights" target="_blank"&gt;http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights&lt;/a&gt;&lt;/span&gt;  and &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://alphaworks.ibm.com/webservices" target="_blank"&gt;http://alphaworks.ibm.com/webservices&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;IONA.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.xmlbus.com/default.htm" target="_blank"&gt;http://www.xmlbus.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Killdara.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.killdara.com/products/vitiris/vitirisIntroduction.pdf" target="_blank"&gt;http://www.killdara.com/products/vitiris/vitirisIntroduction.pdf&lt;/a&gt;&lt;/span&gt;,  &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.killdara.com/products/vitiris/index.htm" target="_blank"&gt;http://www.killdara.com/products/vitiris/index.htm&lt;/a&gt;&lt;/span&gt; and  &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.killdara.com/products/products.htm" target="_blank"&gt;http://www.killdara.com/products/products.htm&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Microsoft.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.microsoft.com/net" target="_blank"&gt;http://www.microsoft.com/net&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Mind Electric.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.themindelectric.com/default.htm" target="_blank"&gt;http://www.themindelectric.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Novell (Silverstream).&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.silverstream.com/Website/app/en_US/ProductsLanding" target="_blank"&gt;http://www.silverstream.com/Website/app/en_US/ProductsLanding&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Progress eXcelon.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.exln.com/products/default.htm" target="_blank"&gt;http://www.exln.com/products/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Sun Microsystems.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://wwws.sun.com/software/default.htm" target="_blank"&gt;http://wwws.sun.com/software/&lt;/a&gt;&lt;/span&gt; and &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://dcb.sun.com/practices/webservices/default.htm" target="_blank"&gt;http://dcb.sun.com/practices/webservices/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Systinet.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.systinet.com/products/index.html" target="_blank"&gt;http://www.systinet.com/products/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;WestBridge.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.westbridgetech.com/resources.html" target="_blank"&gt;http://www.westbridgetech.com/resources.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;XML Global.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.xmlglobal.com/prod/index.jsp" target="_blank"&gt;http://www.xmlglobal.com/prod/index.jsp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-1291742875737116222?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/1291742875737116222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=1291742875737116222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1291742875737116222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1291742875737116222'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/vendor-specific-web-services-sites.html' title='Vendor-Specific Web Services Sites'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-1166671086410127987</id><published>2008-05-04T21:32:00.000-07:00</published><updated>2008-05-04T21:35:41.886-07:00</updated><title type='text'>Web Services Resources and References</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Web Services Portals&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ebXML.org. http://www.ebxml.org/&lt;br /&gt;LearnXMLWS. http://www.vbws.com/&lt;br /&gt;O'Reilly XML.com. http://www.xml.com/&lt;br /&gt;SOAPRPC. http://www.soaprpc.com/&lt;br /&gt;Value-added Web Service Suppliers. http://www.vawss.org/&lt;br /&gt;Web Services Architect. http://www.webservicesarchitect.com/resources.asp&lt;br /&gt;WebServices.org. http://www.webservices.org/&lt;br /&gt;&lt;br /&gt;&lt;h3 class="docSection1Title"&gt;Web Services News&lt;/h3&gt; &lt;p class="docText"&gt;The following Web sites contain many news and product updates  related to Web Services. Some of them provide email alerts for subscription.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;CBDiForm.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.cbdiforum.com/report.php3@topic_id=9" target="_blank"&gt;http://www.cbdiforum.com/report.php3?topic_id=9&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;CFOInfo.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://team.cfoinfo.com/default.htm" target="_blank"&gt;http://team.cfoinfo.com/&lt;/a&gt;&lt;/span&gt; (Original website is &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.cfoinfo.com/default.htm" target="_blank"&gt;www.cfoinfo.com&lt;/a&gt;&lt;/span&gt;, Now has moved. Login user id&lt;span class="docEmphasis"&gt;=&lt;/span&gt;s2b, password&lt;span class="docEmphasis"&gt;=&lt;/span&gt;shaston)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;ecademy.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.theecademy.com/node.php@id=318" target="_blank"&gt;http://www.theecademy.com/node.php?id=318&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;I.T. Director.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.it-director.com/ts-section.php@section=17" target="_blank"&gt;http://www.it-director.com/ts-section.php?section=17&lt;/a&gt;&lt;/span&gt;  (or select Web Services column)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;I.T. Works.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.itworks.be/webservices/default.htm" target="_blank"&gt;http://www.itworks.be/webservices/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;OASIS.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.oasis-open.org/cover/sgmlnew.html" target="_blank"&gt;http://www.oasis-open.org/cover/sgmlnew.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;SearchWebServices.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://searchwebservices.techtarget.com/default.htm" target="_blank"&gt;http://searchwebservices.techtarget.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;TheServerSide.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.theserverside.com/home/index.jsp" target="_blank"&gt;http://www.theserverside.com/home/index.jsp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;The Stencil Group.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.stencilgroup.com/ideas_scope_wsindex.html" target="_blank"&gt;http://www.stencilgroup.com/ideas_scope_wsindex.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;TopXML.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.topxml.com/default.htm" target="_blank"&gt;http://www.topxml.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;W3C.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.w3.org/2001/03/WSWS-popa/default.htm" target="_blank"&gt;http://www.w3.org/2001/03/WSWS-popa/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;XML Web Services Magazine.&lt;/span&gt;  &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.fawcette.com/xmlmag/default.htm" target="_blank"&gt;http://www.fawcette.com/xmlmag/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;XMLHack.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.xmlhack.com/default.htm" target="_blank"&gt;http://www.xmlhack.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;Xmethods. http://www.xmethods.net/&lt;br /&gt;XML.org. http://www.xml.org/xml/news_market.shtml&lt;br /&gt;&lt;br /&gt;&lt;h3 class="docSection1Title"&gt;Development Platforms and Tools, Including Tutorials and Articles&lt;/h3&gt; &lt;p class="docText"&gt;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.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Advisor.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://advisor.com/Articles.nsf/vTechLookup%21OpenView&amp;amp;RestrictToCategory=Web%20Services" target="_blank"&gt;http://advisor.com/Articles.nsf/vTechLookup!OpenView&amp;amp;RestrictToCategory=Web%20Services&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Eclipse.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.eclipse.org/default.htm" target="_blank"&gt;http://www.eclipse.org/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;IBM Web Services  (developerWorks).&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www-106.ibm.com/developerworks/webservices/default.htm" target="_blank"&gt;http://www-106.ibm.com/developerworks/webservices/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Microsoft Web Services.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://msdn.microsoft.com/library/default.asp@url=_2Fnhp_2FDefault.asp@contentid=28000442" target="_blank"&gt;http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000442&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Sun Microsystems's Java™ Technology  and Web Services.&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://java.sun.com/webservices/default.htm" target="_blank"&gt;http://java.sun.com/webservices/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Sun ONE Studio™ (Forte).&lt;/span&gt; &lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://wwws.sun.com/software/sundev/index.html" target="_blank"&gt;http://wwws.sun.com/software/sundev/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="docText"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="docText"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="docText"&gt;&lt;a class="docLink" href="http://wwws.sun.com/software/sundev/index.html" target="_blank"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-1166671086410127987?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/1166671086410127987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=1166671086410127987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1166671086410127987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1166671086410127987'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/web-services-resources-and-references.html' title='Web Services Resources and References'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-6099244886293181734</id><published>2008-05-04T21:30:00.001-07:00</published><updated>2008-05-04T21:31:06.082-07:00</updated><title type='text'>Some Web Services Security Tools</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-6099244886293181734?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/6099244886293181734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=6099244886293181734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6099244886293181734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6099244886293181734'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/some-web-services-security-tools_04.html' title='Some Web Services Security Tools'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-4448073416054987837</id><published>2008-05-04T21:30:00.000-07:00</published><updated>2008-05-04T21:31:05.458-07:00</updated><title type='text'>Some Web Services Security Tools</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-4448073416054987837?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/4448073416054987837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=4448073416054987837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4448073416054987837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4448073416054987837'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/some-web-services-security-tools.html' title='Some Web Services Security Tools'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-8122652386676024676</id><published>2008-05-04T21:21:00.000-07:00</published><updated>2008-05-04T21:26:25.129-07:00</updated><title type='text'>Web Services Deployment Platform</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;Unit Testing. An example is jTest, which is a Java-based unit testing tool.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regression Testing. An example is Rationale Test Studio, which provides regression testing capability.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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/.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-8122652386676024676?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/8122652386676024676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=8122652386676024676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8122652386676024676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8122652386676024676'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/web-services-deployment-platform.html' title='Web Services Deployment Platform'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-713454414170639904</id><published>2008-05-04T21:16:00.000-07:00</published><updated>2008-05-04T21:21:43.103-07:00</updated><title type='text'>The Web Services Marketplace</title><content type='html'>&lt;!--SafClassName="docSection1Title"--&gt;&lt;!--SafTocEntry="3.5 The Web Services Marketplace"--&gt;&lt;style type="text/css"&gt; .tt1    {font-size: 10pt;}&lt;/style&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top"&gt;&lt;a name="ch03lev1sec5"&gt;&lt;/a&gt; &lt;h3 class="docSection1Title"&gt;The Web Services Marketplace&lt;/h3&gt;&lt;a name="ch03lev2sec16"&gt;&lt;/a&gt; &lt;h4 class="docSection2Title"&gt;1 Products&lt;/h4&gt;&lt;a name="ch03lev3sec27"&gt;&lt;/a&gt; &lt;h5 class="docSection3Title"&gt;Vendor Product Categories&lt;/h5&gt; &lt;p class="docText"&gt;The vendor solutions in the Web Services marketplace can be  described as follows:&lt;/p&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Infrastructure&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;Application server&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Middleware, such as JMS-enabled middleware&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Edge server, such as cache (using XML database)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Registries, such as the UDDI or ebXML registry&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Development Tools&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;Developer workbench that can wrap apps logic into a SOAP proxy,  and publish it to UDDI&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Automated testing tools, such as jTest&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Web Services Tools&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;JMS-SOAP bindings, such as the JMS bridge&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;SDK, such as WSTK&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Web Services Standards&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;Java, such as JAX, Web Services Developer Pack&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;C#&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;XML standards, such as SOAP, SOAP-SEC, XAML, SAML&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Specialized Market&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;Porting .NET to Unix&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Porting Java to Windows platform&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Web Services Management&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;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.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Security appliance, such as XML firewall for SOAP messages;  appliance for SOAP message encryption and decryption.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;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.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;&lt;a class="docLink" href="#ch03table04"&gt;Table 3-4&lt;/a&gt; offers a  sampler of the vendor products in the marketplace.&lt;/p&gt;&lt;a name="ch03table04"&gt;&lt;/a&gt; &lt;p&gt; &lt;table cellpadding="5" cellspacing="0" rules="groups" width="100%" frame="hsides"&gt; &lt;caption&gt; &lt;h5 class="docTableTitle"&gt;Table 3-4. A Sampler of Web Services Vendor  Products&lt;/h5&gt;&lt;/caption&gt; &lt;colgroup align="left" span="3"&gt; &lt;/colgroup&gt;&lt;thead&gt; &lt;tr&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Category&lt;/span&gt;&lt;/p&gt;&lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Vendors&lt;/span&gt;&lt;/p&gt;&lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;URIs&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="docTableCell" rowspan="4" valign="top"&gt; &lt;p class="docText"&gt;Application Servers&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;BEA&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bea.com/products/index.shtml" target="_blank"&gt;http://www.bea.com/products/index.shtml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://wwws.sun.com/software/products/appsrvr/home_appsrvr.html" target="_blank"&gt;http://wwws.sun.com/software/products/appsrvr/home_appsrvr.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Novell&lt;/p&gt; &lt;p class="docText"&gt;IBM&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.silverstream.com/Website/app/en_US/ProductsLanding" target="_blank"&gt;http://www.silverstream.com/Website/app/en_US/ProductsLanding&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www-3.ibm.com/software/info1/websphere/index.jsp@tab=highlights" target="_blank"&gt;http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Microsoft&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.microsoft.com/net" target="_blank"&gt;http://www.microsoft.com/net&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" rowspan="9" valign="top"&gt; &lt;p class="docText"&gt;IDE/Development Environment&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;BEA&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bea.com/products/index.shtml" target="_blank"&gt;http://www.bea.com/products/index.shtml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://wwws.sun.com/software/products_categories/development_tools.html" target="_blank"&gt;http://wwws.sun.com/software/products_categories/development_tools.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Novell&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.silverstream.com/Website/app/en_US/ProductsLanding" target="_blank"&gt;http://www.silverstream.com/Website/app/en_US/ProductsLanding&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;IBM&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www-3.ibm.com/software/info1/websphere/index.jsp@tab=highlights" target="_blank"&gt;http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;IONA&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.xmlbus.com/default.htm" target="_blank"&gt;http://www.xmlbus.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;CapeClear&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.capeclear.com/products/index.shtml" target="_blank"&gt;http://www.capeclear.com/products/index.shtml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Bowstreet&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bowstreet.com/products/businesswebfactory/index.html" target="_blank"&gt;http://www.bowstreet.com/products/businesswebfactory/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Avinon&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.avinon.com/products/overview.html" target="_blank"&gt;http://www.avinon.com/products/overview.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Microsoft&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.microsoft.com/net" target="_blank"&gt;http://www.microsoft.com/net&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" rowspan="7" valign="top"&gt; &lt;p class="docText"&gt;Service Registry&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;BEA&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bea.com/products/index.shtml" target="_blank"&gt;http://www.bea.com/products/index.shtml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://wwws.sun.com/software/product_categories/directory_servers_identity_mgmt.html" target="_blank"&gt;http://wwws.sun.com/software/product_categories/directory_servers_identity_mgmt.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Novell&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.silverstream.com/Website/app/en_US/ProductsLanding" target="_blank"&gt;http://www.silverstream.com/Website/app/en_US/ProductsLanding&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Systinet&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.systinet.com/products/index.html" target="_blank"&gt;http://www.systinet.com/products/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;IBM&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www-3.ibm.com/software/info1/websphere/index.jsp@tab=highlights" target="_blank"&gt;http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;The Mind Electric&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.themindelectric.com/default.htm" target="_blank"&gt;http://www.themindelectric.com&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Microsoft&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.microsoft.com/net" target="_blank"&gt;http://www.microsoft.com/net&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" rowspan="7" valign="top"&gt; &lt;p class="docText"&gt;Application Tools/Middleware&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://wwws.sun.com/software/product_categories/development_tools/html" target="_blank"&gt;http://wwws.sun.com/software/product_categories/development_tools/html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Bowstreet&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bowstreet.com/products/businesswebfactory/index.html" target="_blank"&gt;http://www.bowstreet.com/products/businesswebfactory/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Systinet&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.systinet.com/products/index.html" target="_blank"&gt;http://www.systinet.com/products/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Novell&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.silverstream.com/Website/app/en_US/ProductsLanding" target="_blank"&gt;http://www.silverstream.com/Website/app/en_US/ProductsLanding&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;XMLGlobal&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.xmlglobal.com/prod/index.jsp" target="_blank"&gt;http://www.xmlglobal.com/prod/index.jsp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;IBM&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www-3.ibm.com/software/info1/websphere/index.jsp@tab=highlights" target="_blank"&gt;http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Microsoft&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.microsoft.com/net" target="_blank"&gt;http://www.microsoft.com/net&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" rowspan="5" valign="top"&gt; &lt;p class="docText"&gt;Process, Management, Methodology&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://wwws.sun.com/sofstware/products/message_queue/home_message_queue.html" target="_blank"&gt;http://wwws.sun.com/sofstware/products/message_queue/home_message_queue.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Bindsystems&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bindsystems.com/products.htm" target="_blank"&gt;http://www.bindsystems.com/products.htm&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Bowstreet&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.bowstreet.com/products/businesswebfactory/index.html" target="_blank"&gt;http://www.bowstreet.com/products/businesswebfactory/index.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.silverstream.com/Website/app/en_US/ProductsLanding" target="_blank"&gt;http://www.silverstream.com/Website/app/en_US/ProductsLanding&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Novell&lt;/p&gt; &lt;p class="docText"&gt;IBM&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www-3.ibm.com/software/info1/websphere/index.jsp@tab=highlights" target="_blank"&gt;http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=highlights&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Microsoft&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.microsoft.com/net" target="_blank"&gt;http://www.microsoft.com/net&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" rowspan="2" valign="top"&gt; &lt;p class="docText"&gt;.NET to Java Porting&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Halcyon&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.halcyonsoft.com/default.htm" target="_blank"&gt;http://www.halcyonsoft.com&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Mono&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.go-mono.com/faq.html" target="_blank"&gt;http://www.go-mono.com/faq.html&lt;/a&gt;&lt;/span&gt; (&lt;span class="docEmphasis"&gt;Running .NET on Linux. This is still in the development stage.  Currently, Mono provides a&lt;/span&gt; C# &lt;span class="docEmphasis"&gt;compiler on Linux,  implements ADO.NET and&lt;/span&gt; &lt;span class="docEmphasis"&gt;ASP&lt;/span&gt;&lt;span class="docEmphasis"&gt;.NET. Please refer to the Mono status under &lt;a class="docLink" href="http://www.go-mono.com/default.htm" target="_blank"&gt;http://www.go-mono.com/&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Java to .NET Porting&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Microsoft&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://msdn.microsoft.com/visualj/jump/default.asp" target="_blank"&gt;http://msdn.microsoft.com/visualj/jump/default.asp&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" rowspan="4" valign="top"&gt; &lt;p class="docText"&gt;Web Services Management&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Amberpoint&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.amberpoint.com/default.htm" target="_blank"&gt;http://www.amberpoint.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Flamenco Networks&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.flamenconetwork.com/default.htm" target="_blank"&gt;http://www.flamenconetwork.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Talking Blocks&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.talkingblocks.com/default.htm" target="_blank"&gt;http://www.talkingblocks.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Westbridge Technology&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.westbridgetech.com/default.htm" target="_blank"&gt;http://www.westbridgetech.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;a name="ch03lev3sec28"&gt;&lt;/a&gt; &lt;h5 class="docSection3Title"&gt;Vendor Products by Development Life Cycle&lt;/h5&gt; &lt;p class="docText"&gt;&lt;a class="docLink" href="#ch03table05"&gt;Table 3-5&lt;/a&gt; shows some  examples of vendor solutions that are available to meet different needs of the  development life cycle.&lt;/p&gt;&lt;a name="ch03table05"&gt;&lt;/a&gt; &lt;p&gt; &lt;table cellpadding="4" cellspacing="0" rules="rows" width="100%" frame="hsides"&gt; &lt;caption&gt; &lt;h5 class="docTableTitle"&gt;Table 3-5. Marketplace for Different Development Life  Cycle Stages&lt;/h5&gt;&lt;/caption&gt; &lt;colgroup align="left" span="3"&gt; &lt;/colgroup&gt;&lt;thead&gt; &lt;tr&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Development Life Cycle&lt;/span&gt;&lt;/p&gt;&lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Types of Development  Tools&lt;/span&gt;&lt;/p&gt;&lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Examples of  Vendors&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Discovery&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;UDDI&lt;/p&gt; &lt;p class="docText"&gt;ebXML&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™, IBM, BEA, The Mind Electric, Systinet, Novell  (Silverstream), MicrosoftSun ONE™, XMLGlobal&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Creation&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Developer Workbench (IDE)&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™ Studio, IBM, IONA, CapeClear, Bowstreet, Avinon,  Microsoft&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Transforming&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;JAX, XML, SQL Mapping&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun (JAX), IBM (Xerces), XMLGlobal, Microsoft&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Building&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;SOAP, WSDL&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;OSF (Apache), Sun ONE™ Studio, IBM, CapeClear, Bindsystems, The  Mind Electric, Killdara, Microsoft&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Deploying&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Deploying tools&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;OSF (Apache ANT)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Testing&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Local/remote testing&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Jtest&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Publishing&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Publish to registries&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun (JAXR), IBM  (UDDI4J)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;a name="ch03lev3sec29"&gt;&lt;/a&gt; &lt;h5 class="docSection3Title"&gt;Some Publicly Available Development/Productivity  Tools&lt;/h5&gt; &lt;p class="docText"&gt;Here are some development or productivity tools that can be  downloaded as a free trial:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;XMLSpy.&lt;/span&gt; For developing XML  Schema, DTD, and validating XML well-formedness. The new version 4.2 also  provides SOAP debugging. &lt;/p&gt; &lt;center&gt; &lt;h5 class="docFigureTitle"&gt;&lt;a name="ch03fig29"&gt;&lt;/a&gt;&lt;/h5&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p class="docText"&gt;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:&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;Tomcat engine with ANT deployment tool&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;All-in-one JAR files—javamail, smtp, and so forth&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;JAX pack—JAXP, JAXM, JAXR, JAXB&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;UDDI browser and registry&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Application deployment tool&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Excellent tutorial book&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a name="ch03lev4sec24"&gt;&lt;/a&gt; &lt;h5 class="docSection4Title"&gt;How to Use JWSDP for Development&lt;/h5&gt; &lt;p class="docText"&gt;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.&lt;/p&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Something to Note.&lt;/span&gt; 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.&lt;/p&gt;&lt;a name="ch03lev2sec17"&gt;&lt;/a&gt; &lt;h4 class="docSection2Title"&gt;3.5.2 Selecting Your Web Services Tools&lt;/h4&gt;&lt;a name="ch03lev3sec30"&gt;&lt;/a&gt; &lt;h5 class="docSection3Title"&gt;Selection Criteria&lt;/h5&gt; &lt;p class="docText"&gt;Here are some suggestions for selecting an appropriate Web  Services tool for your IT shop:&lt;/p&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;General&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;Total cost of ownership&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Reliability and support service of vendor (for example,  financial stability, local support)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Standards compliance (for example, J2EE™, EJB™ 1.2, SOAP 1.2,  WSDL 1.1)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Availability of technical documentation, such as examples,  tutorial&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Application Server  Platform&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;Clustering features benchmarking—failover recovery time, any  manual intervention&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Logs—logging availability at different levels (for example, can  it trace back different callers and intermediaries?)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Automated testing and deployment platform&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Availability, of or integration with, other apps server  analyzer tools (for example, thread performance analysis)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Web Services Development  Platform&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;Automatic WSDL generation from IDE&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;IDE integration with other tools&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="docText"&gt;Among these criteria, you may also look for:&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;p class="docList"&gt;SOAP 1.1/1.2 support; SOAP 1.2 has some considerable  changes&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Integration with J2EE™ application servers, and their  positioning&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Compatibility with other Web Services products, such as JMS  bridge&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p class="docList"&gt;Any proprietary features, such as Electric Server  Page&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a name="ch03lev2sec18"&gt;&lt;/a&gt; &lt;h4 class="docSection2Title"&gt;3.5.3 Industry Development&lt;/h4&gt; &lt;p class="docText"&gt;There are three major Web Services development technologies in  the industry:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;ebXML.&lt;/span&gt; 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.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;SOAP.&lt;/span&gt; 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.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;UDDI.&lt;/span&gt; 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.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p class="docText"&gt;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.&lt;/p&gt; &lt;p class="docText"&gt;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:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;OSF Apache.&lt;/span&gt; Open Source  Foundation coordinates and distributes Web Services technology as public domain  (&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.apache.org/default.htm" target="_blank"&gt;http://www.apache.org&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;&lt;a class="docLink" href="http://uddi.org/default.htm" target="_blank"&gt;UDDI.org&lt;/a&gt;.&lt;/span&gt; &lt;span class="docEmphStrong"&gt;(now under OASIS)&lt;/span&gt; Standard body for promoting UDDI  registry. It has recently transitioned to OASIS's management (&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.uddi.org/default.htm" target="_blank"&gt;http://www.uddi.org&lt;/a&gt; or &lt;a class="docLink" href="http://www.oasis.open.org/default.htm" target="_blank"&gt;http://www.oasis.open.org&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;W3C.&lt;/span&gt; Worldwide Web Consortium  that publishes and approves Internet-related standards (&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://w3c.org/default.htm" target="_blank"&gt;http://w3c.org&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p class="docText"&gt;Some examples of the supporting communities include:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;OASIS.&lt;/span&gt; A community that  supports ebXML standards and implementation (&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.oasis-open.org/default.htm" target="_blank"&gt;http://www.oasis-open.org/&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;UN/CEFACT.&lt;/span&gt; Previously  UN/EDIFACT, UN/CEFACT promotes EDI and also supports ebXML as the successor to  EDI in collaboration with OASIS (&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.ebxml.org/default.htm" target="_blank"&gt;http://www.ebxml.org/&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;Open Application Group.&lt;/span&gt; A  standards body that adopts the ebXML implementation (&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.openapplications.org/default.htm" target="_blank"&gt;http://www.openapplications.org/&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;DISA.&lt;/span&gt; A U.S. ANSI standard  body that also adopts the ebXML implementation (&lt;span class="docEmphasis"&gt;&lt;a class="docLink" href="http://www.disa.org/default.htm" target="_blank"&gt;http://www.disa.org/&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;a name="ch03lev3sec31"&gt;&lt;/a&gt; &lt;h5 class="docSection3Title"&gt;SOAP and ebXML&lt;/h5&gt; &lt;p class="docText"&gt;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.&lt;/p&gt; &lt;p class="docText"&gt;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.&lt;/p&gt; &lt;p class="docText"&gt;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.&lt;/p&gt; &lt;p class="docText"&gt;&lt;a class="docLink" href="#ch03table06"&gt;Table 3-6&lt;/a&gt; summarizes  some facts about different Web Services technology thought leaders.&lt;/p&gt;&lt;a name="ch03table06"&gt;&lt;/a&gt; &lt;p&gt; &lt;table cellpadding="4" cellspacing="0" rules="rows" width="100%" frame="hsides"&gt; &lt;caption&gt; &lt;h5 class="docTableTitle"&gt;Table 3-6. Comparing Sun, Microsoft, and IBM  Approaches&lt;/h5&gt;&lt;/caption&gt; &lt;colgroup align="left" span="4"&gt; &lt;/colgroup&gt;&lt;thead&gt; &lt;tr&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Sun&lt;/span&gt;&lt;/p&gt;&lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Microsoft&lt;/span&gt;&lt;/p&gt;&lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;IBM&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Framework&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;.NET&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;IBM Web Services&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Infrastructure&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Open standards technology, e.g., J2EE™—Java™ and XML  LDAP&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;.NET framework, including C#, VB, C++, VBScript, and  JScript&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;WebSphere suite&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Developer tools&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™ Studio&lt;/p&gt; &lt;p class="docText"&gt;Sun ONE Integration Manager&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Visual Studio.NET&lt;/p&gt; &lt;p class="docText"&gt;.NET framework SDK&lt;/p&gt; &lt;p class="docText"&gt;.NET enterprise servers&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Web Services Toolkit Application Developer Studio Visual  Age&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Web Services dialects&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™—Smart Web Services&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Hailstorm (not available yet)&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;N/A&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Discovery&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;UDDI&lt;/p&gt; &lt;p class="docText"&gt;ebXML&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;UDDI&lt;/p&gt; &lt;p class="docText"&gt;UpnP&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;UDDI&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Security&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;WS-Security&lt;/p&gt; &lt;p class="docText"&gt;Liberty&lt;/p&gt; &lt;p class="docText"&gt;SAML&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;WS-Security&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;WS-Security&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Business logic&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;J2EE™&lt;/p&gt; &lt;p class="docText"&gt;ebXML&lt;/p&gt; &lt;p class="docText"&gt;WSCI&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Biztalk&lt;/p&gt; &lt;p class="docText"&gt;BPEL4WS&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;J2EE™&lt;/p&gt; &lt;p class="docText"&gt;ebXML&lt;/p&gt; &lt;p class="docText"&gt;BPEL4WS&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-713454414170639904?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/713454414170639904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=713454414170639904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/713454414170639904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/713454414170639904'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/web-services-marketplace.html' title='The Web Services Marketplace'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-7810989165435237391</id><published>2008-05-04T21:14:00.000-07:00</published><updated>2008-05-04T21:15:21.915-07:00</updated><title type='text'>Comparing Different Web Services Architecture</title><content type='html'>&lt;p&gt; &lt;table cellpadding="4" cellspacing="0" rules="rows" width="100%" frame="hsides"&gt; &lt;caption&gt; &lt;h5 class="docTableTitle"&gt;Comparing Different Web Services Architecture&lt;/h5&gt;&lt;/caption&gt; &lt;colgroup align="left" span="4"&gt; &lt;/colgroup&gt;&lt;thead&gt; &lt;tr&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Microsoft&lt;/span&gt;&lt;/p&gt;&lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;Sun&lt;/span&gt;&lt;/p&gt;&lt;/th&gt; &lt;th class="docTableHeader" valign="top"&gt; &lt;p class="docText"&gt;&lt;span class="docEmphRoman"&gt;IBM&lt;/span&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Web Services standards support (SOAP 1.2, WSDL, UDDI)&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Yes&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Yes&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Yes&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Web Services architecture/framework&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;.NET&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;IBM Web Services&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Comprehensive development environment and tools&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;.NET server&lt;/p&gt; &lt;p class="docText"&gt;.NET studio&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sun ONE™ Apps Server&lt;/p&gt; &lt;p class="docText"&gt;Sun ONE™ Integration Server&lt;/p&gt; &lt;p class="docText"&gt;Sun ONE™ Studio&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;WebSphere Application Server&lt;/p&gt; &lt;p class="docText"&gt;WebSphere Application Developer Studio&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Expose EJB as Web Services&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;No&lt;/p&gt; &lt;p class="docText"&gt;(But can interoperate with other Web Services by exposing  COM/COM+ objects through .NET interoperability.)&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Yes&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Yes&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Synchronous (Sync) and Asynchronous (Async) message  support&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sync—DCOM&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sync—JAXM, SAAJ Async—JAX-RPC&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Sync—SAAJ&lt;/p&gt; &lt;p class="docText"&gt;Async—JAX-RPC&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Methodology to design Web Services architecture&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;No&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Yes—SunTone™, J2EE Patterns™&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Partial—eBusiness patterns&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;When to Use&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Wintel PC platform only PASSPORT/Active Directory already in  use&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;Open platform and interoperability&lt;/p&gt;&lt;/td&gt; &lt;td class="docTableCell" valign="top"&gt; &lt;p class="docText"&gt;WebSphere platform with proprietary  extension&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;a name="ch03lev5sec1"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-7810989165435237391?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/7810989165435237391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=7810989165435237391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7810989165435237391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7810989165435237391'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/comparing-different-web-services.html' title='Comparing Different Web Services Architecture'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-1827309065545121798</id><published>2008-05-02T05:10:00.000-07:00</published><updated>2008-05-02T05:11:15.847-07:00</updated><title type='text'>Metro Tooling - Netbeans, Eclipse, Ant, Maven...</title><content type='html'>&lt;a href="https://metro.dev.java.net/" id="cs:b" title="Metro"&gt;Metro&lt;/a&gt; - &lt;a href="https://glassfish.dev.java.net/"&gt;Glassfish&lt;/a&gt; Web Services stack comes  with various tooling options. Here I provide the details details about the  tooling options available for Metro.&lt;br /&gt;&lt;h2&gt;   Netbeans &lt;/h2&gt; 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.&lt;br /&gt;&lt;br /&gt;More on Metro and Netbeans see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.netbeans.org/kb/55/websvc-jax-ws.html" id="vf94" title="Basic Web Services"&gt;Basic Web Services&lt;/a&gt;&lt;p&gt;&lt;br /&gt;&lt;a id="rn2n" title="Adding Quality of Service" href="https://wsit-docs.dev.java.net/releases/1-0-FCS/"&gt;Adding Quality of Service(WS-* and .NET 3.0 interop)&lt;/a&gt;&lt;br /&gt;&lt;/p&gt; &lt;h2&gt;   Eclipse &lt;/h2&gt; The instructions below are for &lt;b&gt;Eclipse for JavaEE&lt;/b&gt;&lt;h3&gt;   &lt;b&gt;&lt;b&gt;Setup&lt;/b&gt;&lt;/b&gt; &lt;/h3&gt; This is onetime setup&lt;br /&gt;&lt;ol&gt;&lt;li&gt;     After starting Eclipse, select the J2EE perspective: &lt;b&gt;Windows&gt;Open     Perspective&gt;Others&gt;J2EE&lt;/b&gt;   &lt;/li&gt;&lt;li&gt;     In the lower window you should see a tab with label &lt;code&gt;Servers&lt;/code&gt;. Select the tab     and right click in the window and select &lt;b&gt;new&gt;Server&lt;/b&gt;.   &lt;/li&gt;&lt;li&gt;     To download the GlassFish server, select &lt;i&gt;&lt;b&gt;Download additional server     adapters&lt;/b&gt;&lt;/i&gt;. Accept the license and wait for Eclipse to restart.   &lt;/li&gt;&lt;li&gt;     After Eclipse has restarted, you can create a new GlassFish V2 Java EE5     server.   &lt;/li&gt;&lt;li&gt;     In the creation dialog select &lt;i&gt;&lt;b&gt;Installed Runtimes&lt;/b&gt;&lt;/i&gt; and select     the directory where your GlassFish installation resides.   &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;h3&gt;   &lt;a name="22"&gt;How to create a Web service&lt;/a&gt; &lt;/h3&gt; &lt;ol&gt;&lt;li&gt;     To create the HelloWorld service, create a new dynamic Web project. Give it     a name (e.g. helloworld) and select as target runtime GlassFish   &lt;/li&gt;&lt;li&gt;     In that project you can create the class HelloWorld             &lt;div&gt;           &lt;table id="ajx1" border="0" cellpadding="3" cellspacing="0" width="100%"&gt;             &lt;tbody&gt;             &lt;tr&gt;               &lt;td&gt;               &lt;pre&gt;package sample;&lt;br /&gt;&lt;br /&gt;import javax.jws.WebService;&lt;br /&gt;&lt;br /&gt;@WebService&lt;br /&gt;public class HelloWorld {&lt;br /&gt;   public String hello(String param){&lt;br /&gt;       return param + ", World";&lt;br /&gt;   }&lt;br /&gt;}  &lt;/pre&gt;               &lt;/td&gt;             &lt;/tr&gt;             &lt;/tbody&gt;           &lt;/table&gt;         &lt;/div&gt;    &lt;/li&gt;&lt;li&gt;     Deploy the service by selecting the project and select &lt;i&gt;&lt;b&gt;Run as&gt;Run     on server&lt;/b&gt;&lt;/i&gt;.   &lt;/li&gt;&lt;li&gt;     Check that in the server Window that helloworld project has status     &lt;i&gt;Synchronized&lt;/i&gt;. If this is not the case, right-click in the server     window and select publish.   &lt;/li&gt;&lt;li&gt;     You can check that the GlassFish server is started and contains the Web     service, by going to the admin console of GlassFish     (&lt;a href="http://localhost:4848/"&gt;localhost:4848&lt;/a&gt;)   &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;See Arun's &lt;a href="http://download.java.net/javaee5/screencasts/glassfish-in-europa/" id="zlo8" title="screen cast"&gt;screen cast&lt;/a&gt; for the above steps.&lt;br /&gt;&lt;h3&gt;   Creating Web Service Client u&lt;a name="24"&gt;sing Wsimport CLI&lt;/a&gt;&lt;/h3&gt; &lt;ol&gt;&lt;li&gt;     Create a new project for the HelloWorld client (an ordinary Java project     suffices).   &lt;/li&gt;&lt;li&gt;     Select Add Glassfish v2 as Server Runtime in Build Path.&lt;br /&gt;  &lt;/li&gt;&lt;ol&gt;&lt;li&gt;       &lt;b&gt;Right clieck-&gt;BuildPath-&gt;Add       Library-&gt;ServerRuntime-&gt;Glassfish v2&lt;/b&gt;&lt;br /&gt;    &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;     Open a command window and go into the source directory of that project in     Eclipse. For example, if the Eclipse workspace is in path &lt;code&gt;c:\home\vivekp\workspace&lt;/code&gt; and the name     of the project is echostringclient, then you need to go to &lt;code&gt;c:\home\vivekp\workspace\helloworld\src&lt;/code&gt;. In this     directory execute &lt;code&gt;wsimport -keep http://localhost:8080/helloworld/HelloWorldService?wsdl&lt;/code&gt;. On Linux or with Cygwin on Windows, you need to     escape the ? by using \? instead.   &lt;/li&gt;&lt;li&gt;     Select refresh in the project view to see the generated files.   &lt;/li&gt;&lt;li&gt;     Now you can create the client class HelloWorldClient   &lt;/li&gt;&lt;li&gt;     You can execute the client, by selecting the HelloWorldClient in the package     explorer of Eclipse and selecting Run&gt;Java Application. In the console     window of Eclipse, you should see "Hello World".   &lt;/li&gt;&lt;/ol&gt; &lt;h3&gt;   Creating Web Service Client u&lt;a name="24"&gt;sing Wsimport Ant   Task&lt;/a&gt;&lt;/h3&gt; You can pretty much avoid steps 3 - 5 above by using an Ant build.xml file.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;     Select helloworldclient in Package Exp and create a new file build.xml   &lt;/li&gt;&lt;li&gt;     In this file (build.xml) copy the  &lt;a id="ymec" title="sample" href="http://weblogs.java.net/blog/vivekp/archive/tools/build.xml"&gt;sample&lt;/a&gt; ant build     script   &lt;/li&gt;&lt;li&gt;     Then select build.xml in the package explorer, then &lt;b&gt;Right Click-&gt;Run     As-&gt;Ant Build... &lt;/b&gt;   &lt;/li&gt;&lt;li&gt;     Invoke client target, it will run wsimport ant task and generate the client     side stubs   &lt;/li&gt;&lt;li&gt;     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 &lt;b&gt;Run&gt;Java Application&lt;/b&gt;. In the console window of Eclipse, you     should see "Hello World".   &lt;/li&gt;&lt;/ol&gt; &lt;h3&gt;   Creating Web Service Client using SOAP UI Plugin &lt;/h3&gt; &lt;ul&gt;&lt;li&gt;     Inside Eclipse, install SOAP UI Plugin   &lt;/li&gt;&lt;ul&gt;&lt;li&gt;       Select "Help"/"Software Updates"/"Find and Install..."     &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;       Select the "Search for new features to install" option     &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;       Press the "New Remote Site" button and add       http://www.soapui.org/eclipse/update/site.xml as the plugin URL     &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;       Select Finish and the follow the dialogs to install the soapUI feature     &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;     Create a new project for the HelloWorld client (an ordinary Java project     suffices).   &lt;/li&gt;&lt;li&gt;     Select Add Glassfish v2 as Server Runtime in Build Path.&lt;br /&gt;  &lt;/li&gt;&lt;ul&gt;&lt;li&gt;       &lt;b&gt;Right clieck-&gt;BuildPath-&gt;Add       Library-&gt;ServerRuntime-&gt;Glassfish v2&lt;/b&gt;     &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;     Select the project and &lt;b&gt;Right Click-&gt;Soap UI-&gt;Add SOAPUI Nature&lt;/b&gt;,     SOAP UI WebService item will be added in Project Explorer   &lt;/li&gt;&lt;li&gt;     Select SOAP UI perspective   &lt;/li&gt;&lt;ul&gt;&lt;li&gt;       Right click on &lt;b&gt;Projects-&gt;hellowworlclient-&gt;Add WSDL from URL&lt;/b&gt;,       enter the deployed service URL: &lt;code&gt;http://localhost:8080/helloworld/HelloWorldService?wsdl. This will import the wsdl and you will see &lt;b&gt;HelloWorldPortBinding&lt;/b&gt;&lt;br /&gt;&lt;/code&gt;     &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;     Select HelloWorldPortBinding and &lt;b&gt;Right Click-&gt;GenerateCode-&gt;JAX-WS     Artifacts&lt;/b&gt;   &lt;/li&gt;&lt;ul&gt;&lt;li&gt;       Enter the appropriate info in the JAX-WS Artifacts window       &lt;div id="d0m2" style="padding: 1em 0pt; text-align: left;"&gt;              &lt;img src="http://weblogs.java.net/blog/vivekp/archive/images/soapui1.jpg" style="width: 512px; height: 417px;" /&gt;         &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;div id="d0m2" style="padding: 1em 0pt; text-align: left;"&gt;   &lt;ul&gt;&lt;ul&gt;&lt;li&gt;         Click Tools and enter the location of JAX-WS Wsimport, for example         c:\glassfish\bin         &lt;div id="n:b6" style="padding: 1em 0pt; text-align: left;"&gt;           &lt;img src="http://weblogs.java.net/blog/vivekp/archive/images/soapui2.jpg" style="width: 611px; height: 548px;" /&gt;         &lt;/div&gt;       &lt;/li&gt;&lt;li&gt;         Click OK       &lt;/li&gt;&lt;li&gt;         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&lt;br /&gt;      &lt;/li&gt;&lt;li&gt;         Now implement your client code         &lt;div&gt;           &lt;table id="ajx1" border="0" cellpadding="3" cellspacing="0" width="100%"&gt;             &lt;tbody&gt;             &lt;tr&gt;               &lt;td&gt;               &lt;pre&gt;             &lt;br /&gt;package sample;&lt;br /&gt;&lt;br /&gt;public class HelloWorldClient {&lt;br /&gt;&lt;br /&gt;   /**&lt;br /&gt;    * @param args&lt;br /&gt;    */&lt;br /&gt;   public static void main(String[] args) {&lt;br /&gt;       //Create Service&lt;br /&gt;       HelloWorldService service = new HelloWorldService();&lt;br /&gt;&lt;br /&gt;       //create proxy&lt;br /&gt;       HelloWorld proxy = service.getHelloWorldPort();&lt;br /&gt;&lt;br /&gt;       //invoke&lt;br /&gt;       System.out.println(proxy.hello("hello"));&lt;br /&gt;   }&lt;br /&gt;}                        &lt;/pre&gt;               &lt;/td&gt;             &lt;/tr&gt;             &lt;/tbody&gt;           &lt;/table&gt;         &lt;/div&gt;       &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;   &lt;ul&gt;&lt;li&gt;         You can execute the client, by selecting the HelloWorldClient in the         package explorer of Eclipse and selecting Run&gt;Java Application. In         the console window of Eclipse, you should see "Hello World".       &lt;/li&gt;&lt;/ul&gt;   You can also use Wsimport and Wsgen Maven2 tools. For details see   &lt;a href="https://jax-ws-commons.dev.java.net/jaxws-maven-plugin/"&gt;here&lt;/a&gt;.  &lt;p&gt;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  &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=163334"&gt;RFE on   Eclipse&lt;/a&gt; and looks like it is being looked at.&lt;/p&gt;  &lt;p&gt;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 &lt;a href="http://websvc.netbeans.org/wsit/"&gt;WSIT Plugin&lt;/a&gt;   in NetBeans for Eclipse. It will be great if anyone would like to do the   WSIT plugin for Eclipse. Please let  &lt;a href="mailto:users@metro.dev.java.net"&gt;us&lt;/a&gt; know if you are willing to   write a WSIT plugin for Eclipse.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-1827309065545121798?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/1827309065545121798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=1827309065545121798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1827309065545121798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1827309065545121798'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/metro-tooling-netbeans-eclipse-ant.html' title='Metro Tooling - Netbeans, Eclipse, Ant, Maven...'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-6856951166518338825</id><published>2008-05-02T03:14:00.000-07:00</published><updated>2008-05-02T03:15:08.260-07:00</updated><title type='text'>Types of Web Applications</title><content type='html'>&lt;h2&gt;Java Web-Frameworks&lt;/h2&gt;  &lt;table class="confluenceTable"&gt;&lt;tbody&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;/th&gt; &lt;th class="confluenceTh"&gt; Pro &lt;/th&gt; &lt;th class="confluenceTh"&gt; Cons &lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;a href="http://www.topische-wende.de/wiki/display/DEV/JSF" title="JSF"&gt;JSF&lt;/a&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Java EE Standard - lots of demand and jobs &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fast and easy to develop with initially &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lots of component libraries&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Tag soup for JSPs &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Doesn't play well with REST or Security &lt;br /&gt;&lt;/li&gt;&lt;li&gt;No single source for implementation&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;a href="http://www.topische-wende.de/wiki/display/DEV/Spring+MVC" title="Spring MVC"&gt;Spring MVC&lt;/a&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Lifecyle for overriding binding, validation, etc. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Integrates with many view options seamlessly: JSP/JSTL, Tiles, Velocity, FreeMarker, Excel, XSL, PDF &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Inversion of Control makes it easy to test&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Configuration intensive - lots of XML &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Almost too flexible - no common parent Controller &lt;br /&gt;&lt;/li&gt;&lt;li&gt;No built-in Ajax support&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;a href="http://www.topische-wende.de/wiki/display/DEV/Stripes" title="Stripes"&gt;Stripes&lt;/a&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;No XML - Convention over Configuration &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Good documentation (easy to learn) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enthusiastic community&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Small Community &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Not as actively developed as other projects &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hard-coded URLs in ActionBeans&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;span class="error"&gt;[Struts2]&lt;/span&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Simple architecture - easy to extend &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tag Library is easy to customize with FreeMarker or Velocity &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Controller-based or page-based navigation&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Documentation is poorly organized &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Too much concentration on new features &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Googling results in Struts 1.x documentation&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;span class="error"&gt;[Tapestry]&lt;/span&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Very productive once you learn it &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Templates are HTML - great for designers &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lots of innovation between releases&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Documentation very conceptual, rather than pragmatic &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Steep learning curve &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Long release cycles - major upgrades every year&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;a href="http://www.topische-wende.de/wiki/display/DEV/Wicket" title="Wicket"&gt;Wicket&lt;/a&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Great for Java developers, not web developers &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tight binding between pages and views &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Active community - support from the creators&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;HTML templates live next to Java code &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Need to have a good grasp of OO &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Wicket Way - everything done in Java&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;a href="http://www.topische-wende.de/wiki/display/DEV/Click" title="Click"&gt;Click&lt;/a&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Really simple&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Small Community&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;a href="http://www.topische-wende.de/wiki/display/DEV/Seam" title="Seam"&gt;Seam&lt;/a&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;solves some JSF Problems like Bookmarking&lt;/li&gt;&lt;li&gt;Groovy Support&lt;/li&gt;&lt;li&gt;Integration with JPA and Hibernate (WebBeans)&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Still JSF&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th class="confluenceTh"&gt; &lt;a href="http://www.topische-wende.de/wiki/display/DEV/ZK" title="ZK"&gt;ZK&lt;/a&gt; &lt;/th&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt;Ajax Integration and Declarative Page Creation&lt;/li&gt;&lt;li&gt;One  single source of implementation,  one Tree, one Grid etc&lt;/li&gt;&lt;li&gt;Big Community, Fast Release Cycle&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;td class="confluenceTd"&gt;&lt;ul&gt;&lt;li&gt; Licence Costs&lt;/li&gt;&lt;/ul&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;(based on &lt;span class="nobr"&gt;&lt;a href="http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks.pdf" title="Visit page outside Confluence" rel="nofollow"&gt;Raibles Design&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;)&lt;/p&gt;  &lt;h2&gt;&lt;a name="WebFrameworks-TypesofWebApplications"&gt;&lt;/a&gt;Types of Web Applications&lt;/h2&gt; &lt;p&gt;There are tree types of web applications:&lt;/p&gt; &lt;h4&gt;&lt;a name="WebFrameworks-Consumerfacing,hightraffic,statelessapplications:"&gt;&lt;/a&gt;Consumer-facing, high-traffic, stateless applications:&lt;/h4&gt; &lt;ul&gt;&lt;li&gt;Struts2&lt;/li&gt;&lt;li&gt;SpringMVC&lt;/li&gt;&lt;li&gt;Stripes&lt;/li&gt;&lt;/ul&gt;   &lt;h4&gt;&lt;a name="WebFrameworks-Internal,moredesktoplikeapplicationsthatarestateful:"&gt;&lt;/a&gt;Internal, more desktop-like applications that are stateful:&lt;/h4&gt; &lt;ul&gt;&lt;li&gt;JSF&lt;/li&gt;&lt;li&gt;Tapestry&lt;/li&gt;&lt;li&gt;Wicket&lt;/li&gt;&lt;/ul&gt;   &lt;h4&gt;&lt;a name="WebFrameworks-MediarichapplicationsthatrequireaRIAframeworklikeFlex"&gt;&lt;/a&gt;Media-rich applications that require a RIA framework like Flex&lt;/h4&gt; &lt;ul&gt;&lt;li&gt;GWT&lt;/li&gt;&lt;li&gt;Flex&lt;/li&gt;&lt;li&gt;ZK&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-6856951166518338825?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/6856951166518338825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=6856951166518338825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6856951166518338825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6856951166518338825'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/types-of-web-applications.html' title='Types of Web Applications'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-7860848652965310911</id><published>2008-05-02T03:12:00.001-07:00</published><updated>2008-05-02T03:12:48.980-07:00</updated><title type='text'>SOA Frameworks</title><content type='html'>&lt;h2&gt;ESBs&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="http://servicemix.apache.org/" title="Visit page outside Confluence" rel="nofollow"&gt;Apache ServiceMix&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; 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.&lt;/li&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="https://open-esb.dev.java.net/" title="Visit page outside Confluence" rel="nofollow"&gt;OpenESB&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; implements an Enterprise Service Bus (ESB) runtime using Java Business Integration (JBI) as the foundation.&lt;/li&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="http://mule.mulesource.org/display/MULE/Home" title="Visit page outside Confluence" rel="nofollow"&gt;Mule&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; is an open source ESB (Enterprise Service Bus) and integration platform with JBI Integration.&lt;/li&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="http://labs.jboss.com/jbossesb/" title="Visit page outside Confluence" rel="nofollow"&gt;JBossESB&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;   &lt;h2&gt;&lt;a name="SOAFrameworks-WebserviceFrameworks"&gt;&lt;/a&gt;Webservice Frameworks&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="http://cwiki.apache.org/CXF/" title="Visit page outside Confluence" rel="nofollow"&gt;Apache CXF&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; 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.&lt;/li&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="http://ws.apache.org/axis2/" title="Visit page outside Confluence" rel="nofollow"&gt;Axis2&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; is an implementation of the SOAP ("Simple Object Access Protocol") submission to W3C.&lt;/li&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="https://metro.dev.java.net/" title="Visit page outside Confluence" rel="nofollow"&gt;Metro&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; 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.&lt;/li&gt;&lt;/ul&gt;   &lt;h2&gt;&lt;a name="SOAFrameworks-Tools"&gt;&lt;/a&gt;Tools&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="http://incubator.apache.org/tuscany/" title="Visit page outside Confluence" rel="nofollow"&gt;Apache Tuscany&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; - 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.&lt;/li&gt;&lt;li&gt;&lt;span class="nobr"&gt;&lt;a href="http://ws.apache.org/synapse/" title="Visit page outside Confluence" rel="nofollow"&gt;Apache Synpase&lt;sup&gt;&lt;img class="rendericon" src="http://www.topische-wende.de/wiki/images/icons/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7" /&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; - 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.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-7860848652965310911?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/7860848652965310911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=7860848652965310911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7860848652965310911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7860848652965310911'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/soa-frameworks.html' title='SOA Frameworks'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-6329661595848030292</id><published>2008-05-02T02:46:00.001-07:00</published><updated>2008-05-02T02:46:15.464-07:00</updated><title type='text'>WebServiceExternalSites</title><content type='html'>&lt;p&gt;&lt;strong&gt;External sites covering Web Services and XML&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://dev2dev.bea.com/technologies/webservices/index.jsp"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; BEA Web Services Dev Center&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://www-106.ibm.com/developerworks/webservices/"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; IBM developerWorks Web Services corner&lt;/a&gt; &lt;/p&gt; &lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p&gt;There are lots of interesting articles on Web Services here, many of which are Axis related. There is also a [&lt;a rel="nofollow" href="http://www-106.ibm.com/developerworks/webservices/library/ws-spec.html"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; http://www-106.ibm.com/developerworks/webservices/library/ws-spec.html&lt;/a&gt; &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;listing] of "all current open standards and specifications that define the Web services family of protocols", though Soap with Attachments is mysteriously absent. &lt;/p&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://www.macromedia.com/devnet/topics/web_services.html"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; Macromedia Web Services Topic Center&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://msdn.microsoft.com/webservices"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; MSDN Web Services&lt;/a&gt; &lt;/p&gt; &lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p&gt;These are the microsoft pages; little Axis coverage but plenty on Web Service specifications. &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://otn.oracle.com/tech/xml/index.html"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; Oracle XML Technology Center&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://www.perfectxml.com/"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; PerfectXml.com&lt;/a&gt; &lt;/p&gt; &lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p&gt;A great resource for XML and Web Services work.  Includes links to book excerpts and tools. &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://java.sun.com/webservices/index.jsp"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; Sun Java Technology and Web Services&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://www.xmlhack.com/"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; XmlHack.com&lt;/a&gt; &lt;/p&gt; &lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p&gt;Developer news from the XML community &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://www.sys-con.com/webservices/"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; Web Services Journal&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://www.webservices.org/"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; WebServices.org&lt;/a&gt; &lt;/p&gt; &lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p&gt;Web Services Industry Portal &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://webservices.xml.com/"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; WebServices.xml.com&lt;/a&gt; &lt;/p&gt; &lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p&gt;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. &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a class="external" rel="nofollow" href="http://www.ucc.ie/xml/"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; The XML FAQ&lt;/a&gt; &lt;/p&gt; &lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p&gt;This is the list of Frequently-Asked Questions about the Extensible Markup Language (XML).  &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-6329661595848030292?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/6329661595848030292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=6329661595848030292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6329661595848030292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6329661595848030292'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/webserviceexternalsites.html' title='WebServiceExternalSites'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-4949049641772152955</id><published>2008-05-02T02:29:00.001-07:00</published><updated>2008-05-02T02:29:54.434-07:00</updated><title type='text'>JavaOne Conference Bookstore - Best Sellers</title><content type='html'>&lt;p&gt;Here are the Top Ten Best Sellers for the bookstore for the week at this time&lt;/p&gt;   &lt;table bgcolor="#fffff0" border="1" cellpadding="3" cellspacing="0"&gt;    &lt;tbody&gt;&lt;tr bgcolor="#5382a1"&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;       &lt;span style="color:white;"&gt;&lt;b&gt;Rank&lt;/b&gt;&lt;/span&gt;        &lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;       &lt;span style="color:white;"&gt;&lt;b&gt;Title&lt;/b&gt;&lt;/span&gt;       &lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;       &lt;span style="color:white;"&gt;&lt;b&gt;Publisher&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;       &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;Java Concurrency in Practice&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 0321349601&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Addison Wesley&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;       &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;Core JavaServer Faces 2nd Edition*&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 0131738860&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Prentice Hall&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;                 &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;Java Puzzlers&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 032133678X&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Addison Wesley&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;                &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;Effective Java&lt;br /&gt;Programming Language Guide&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 0201310058&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Addison Wesley&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;                &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;Rich Client Programming*&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 0132354802&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Prentice Hall&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;                &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;6&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;JBOSS Seam&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 0131347969&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Prentice Hall&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;                &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;7&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;SOA Using Java Web Services&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 0130449687&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Prentice Hall&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;                &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;8&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;Groovy in Action&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 1932394842&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Manning&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;                &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;9&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;RESTFul Web Services&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 0596529260&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;O'Reilly&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;                &lt;tr&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" height="40" valign="middle" width="75"&gt;&lt;b&gt;10&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="200"&gt;&lt;b&gt;GWT in Action&lt;/b&gt;&lt;br /&gt;&lt;small&gt;ISBN: 1933988231&lt;/small&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;       &lt;td class="middle_10" align="center" valign="middle" width="123"&gt;&lt;b&gt;Manning&lt;/b&gt;&lt;/td&gt;       &lt;td align="left" bgcolor="#cccccc" valign="top" width="1"&gt;&lt;img src="http://java.sun.com/javaone/images/dot_CCCCCC.gif" height="1" width="1" /&gt;&lt;/td&gt;      &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;    &lt;p&gt; * New SMI Press Title &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-4949049641772152955?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/4949049641772152955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=4949049641772152955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4949049641772152955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4949049641772152955'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/javaone-conference-bookstore-best.html' title='JavaOne Conference Bookstore - Best Sellers'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-5469245694899682586</id><published>2008-05-02T02:20:00.000-07:00</published><updated>2008-05-02T02:45:29.742-07:00</updated><title type='text'>SOA Books</title><content type='html'>&lt;a href="http://www.amazon.com/Web-Services-Principles-Michael-Papazoglou/dp/0321155556/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1209719649&amp;amp;sr=1-1"&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;Web Services: Principles and Technology &lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://http://www.amazon.com/SOA-Using-Java-Web-Services/dp/0130449687/ref=pd_sim_b_img_2"&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;SOA Using Java  Web Services&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;    http://soabook.com/&lt;br /&gt;    &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Arial Unicode MS&amp;quot;;"&gt;--SOA-J, &lt;/span&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:city&gt;Together, &lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Arial Unicode MS&amp;quot;;"&gt;&lt;span class="SpellE"&gt;SOAShopper&lt;/span&gt;,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;     &lt;b&gt;SOA Principles of Service Design&lt;br /&gt;   http://www.soabooks.com/&lt;br /&gt;   http://www.soaspecs.com/&lt;br /&gt;   http://www.soasystems.com/&lt;br /&gt;   http://www.soamag.com/&lt;br /&gt;   &lt;/b&gt;--Covers crucial second-generation (WS-*) Web services standards: BPEL4WS, WS-Security, WS-Coordination, WS-Transaction, WS-Policy, WS-ReliableMessaging, and WS-Attachments&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;a href="http://www.amazon.com/Service-Oriented-Architecture-Integrating-Services-Computing/dp/0131428985/ref=pd_sim_b_img_1"&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;  &lt;br /&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;Service-Oriented Architecture (SOA): Concepts, Technology, and Design&lt;br /&gt;   --&lt;/span&gt;&lt;/b&gt;A comprehensive study of SOA support in .NET and J2EE development and runtime platforms&lt;br /&gt;&lt;br /&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;Web Services Platform Architecture&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;Practical DWR 2 Projects &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;&lt;/span&gt;&lt;/span&gt;&lt;b class="asinTitle"&gt;&lt;span id="btAsinTitle"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-5469245694899682586?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/5469245694899682586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=5469245694899682586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/5469245694899682586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/5469245694899682586'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/soa-books.html' title='SOA Books'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-8693990883096782450</id><published>2008-05-02T02:17:00.001-07:00</published><updated>2008-05-02T02:17:58.170-07:00</updated><title type='text'>three popular frameworks to implement RESTful services</title><content type='html'>Ruby on Rails, Restlet (for Java), and Django (for Python)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-8693990883096782450?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/8693990883096782450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=8693990883096782450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8693990883096782450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8693990883096782450'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/three-popular-frameworks-to-implement.html' title='three popular frameworks to implement RESTful services'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-7834547303720886798</id><published>2008-05-02T02:08:00.000-07:00</published><updated>2008-05-02T02:12:46.589-07:00</updated><title type='text'>Sun Java Web Services Developer Pack (JWSDP) Related Books (Newest to Oldest)</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;p&gt;  &lt;a class="external" rel="nofollow" href="http://vig.prenhall.com/catalog/academic/product/0,4096,0131014021,00.html"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; J2EE Platform Web Services&lt;/a&gt; by Ray Lai, Prentice Hall PTR, August 2003. &lt;/p&gt; &lt;/li&gt;&lt;li class="gap"&gt;&lt;p&gt;  &lt;a class="external" rel="nofollow" href="http://www.oreilly.com/catalog/javawsian/"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; Java Web Services in a Nutshell&lt;/a&gt; by Kim Topley, Oreilly, June 2003. &lt;/p&gt; &lt;/li&gt;&lt;li class="gap"&gt;&lt;p&gt;  &lt;a class="external" rel="nofollow" href="http://vig.prenhall.com/catalog/academic/product/0,4096,0130461342,00.html"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; Java Web Services For Experienced Programmers&lt;/a&gt; by Harvey M. Deitel &amp;amp; Paul J. Deitel, Prentice Hall, August 2002. &lt;/p&gt; &lt;/li&gt;&lt;li class="gap"&gt;&lt;p&gt;  &lt;a class="external" rel="nofollow" href="http://www.syngress.com/catalog/sg_main.cfm?pid=2102"&gt;&lt;img src="http://wiki.apache.org/wiki/modern/img/moin-www.png" alt="[WWW]" height="11" width="11" /&gt; Developing Web Services with Java APIs for XML Using WSDP&lt;/a&gt; by Jay Foster &amp;amp; Mick Porter, Syngress, June 2002. &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-7834547303720886798?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/7834547303720886798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=7834547303720886798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7834547303720886798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7834547303720886798'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/sun-java-web-services-developer-pack.html' title='Sun Java Web Services Developer Pack (JWSDP) Related Books (Newest to Oldest)'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-7792110634397321370</id><published>2008-05-02T02:06:00.001-07:00</published><updated>2008-05-02T02:06:10.741-07:00</updated><title type='text'></title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-7792110634397321370?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/7792110634397321370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=7792110634397321370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7792110634397321370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7792110634397321370'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/05/blog-post.html' title=''/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-4550373722110607979</id><published>2008-04-16T07:48:00.000-07:00</published><updated>2008-04-16T07:49:18.018-07:00</updated><title type='text'>到底什么是MSDN？MD5？SHA-1？</title><content type='html'>让我们先来了解一些基本知识，了解hash。&lt;br /&gt;&lt;br /&gt;Hash，一般翻译做“散列”，也有直接音译为"哈希"的，就是把任意长度的输入（又叫做预 映射， pre-image），通过散列算法，变换成固定长度的输出，该输出就是散列值。这种转换是一种压缩映射，也就是，散列值的空间通常远小于输入的空间，不 同的输入可能会散列成相同的输出，而不可能从散列值来唯一的确定输入值。&lt;br /&gt;&lt;br /&gt;简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。&lt;br /&gt;&lt;br /&gt;HASH主要用于信息安全领域中加密算法，他把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值. 也可以说，hash就是找到一种数据内容和数据存放地址之间的映射关系&lt;br /&gt;&lt;br /&gt;了解了hash基本定义，就不能不提到一些著名的hash算法，MD5 和 SHA1 可以说是目前应用最广泛的Hash算法，而它们都是以 MD4 为基础设计的。那么他们都是什么意思呢？&lt;br /&gt;这里简单说一下：&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1) MD4 &lt;/b&gt;&lt;br /&gt;    MD4(RFC 1320)是 MIT 的 Ronald L. Rivest 在 1990 年设计的，MD 是 Message Digest 的缩写。它适用在32位字长的处理器上用高速软件实现--它是基于 32 位操作数的位操作来实现的。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2) MD5 &lt;/b&gt;&lt;br /&gt;    MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。它对输入仍以512位分组，其输出是4个32位字的级联，与 MD4 相同。MD5比MD4来得复杂，并且速度较之要慢一点，但更安全，在抗分析和抗差分方面表现更好。&lt;br /&gt;   MD5是一种不可逆的加密算法，目前是最牢靠的加密算法之一，尚没有能够逆运算的程序被开发出来，它对应任何字符串都可以加密成一段唯一的固定长度的代码。&lt;br /&gt;    那么它有什么用呢？很简单，通过它可以判断原始值是否正确（是否被更改过）。一般用于密码的加密。而我们所提供的MD5校验码就是针对安装程序的唯一对应 的一段代码。你可以使用任何MD5运算器对下载的文件进行运算，运算出来的结果如果完全符合我们提供的MD5校验码，那么说明你下载的这个程序没有被中途 修改过。&lt;br /&gt;　　这个特征码有如下特性，首先它不可逆，例如我有一段秘密的文字如："My Secret Words"，经算法变换后得到MD5码(b9944e9367d2e40dd1f0c4040d4daaf7)，把这个码告诉其他人，他们根据这个 MD5码是没有系统的方法可以知道你原来的文字是什么的。&lt;br /&gt;　　其次，这个码具有高度的离散性，也就是说，原信息的一点点变化就会导致MD5的 巨大变化，例如"ABC" MD5(902fbdd2b1df0c4f70b4a5d23525e932)和"ABC "（多了一空格）MD5(12c774468f981a9487c30773d8093561)差别非常大，而且之间没有任何关系，也就是说产生的MD5 码是不可预测的。&lt;br /&gt;　　最后由于这个码有128位那么长，所以任意信息之间具有相同MD5码的可能性非常之低，通常被认为是不可能的。&lt;br /&gt;　　所以一般认为MD5码可以唯一地代表原信息的特征，通常用于密码的加密存储，数字签名，文件完整性验证等。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3) SHA1 及其他&lt;/b&gt;&lt;br /&gt;    SHA1是由NIST NSA设计为同DSA一起使用的，它对长度小于264的输入，产生长度为160bit的散列值，因此抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局（NIST）颁布的国家标准，是一种应用最为广泛的hash函数算法，也是 目前最先进的加密技术，被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5，MD5又基于MD4。&lt;br /&gt;  论坛里提供的系统镜像文件的hash也就是微软官方提供的SHA-1值，下载后和此值对应，就说明你下载过程中文件没有被更改，属于原版。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;什么是CRC&lt;/b&gt;&lt;br /&gt;    CRC的全称为Cyclic Redundancy Check，中文名称为循环冗余校验。它是一类重要的线性分组码，编码和解码方法简单，检错和纠错能力强，在通信领域广泛地用于实现差错控制。实际上，除 数据通信外，CRC在其它很多领域也是大有用武之地的。例如我们读软盘上的文件，以及解压一个ZIP文件时，偶尔会碰到“Bad CRC”错误，由此它在数据存储方面的应用可略见一斑。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;那么这些Hash算法到底有什么用呢？&lt;/b&gt;&lt;br /&gt;Hash算法在信息安全方面的应用主要体现在以下的3个方面：&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1) 文件校验&lt;/b&gt;&lt;br /&gt;    我们比较熟悉的校验算法有奇偶校验和CRC校验，这2种校验并没有抗数据篡改的能力，它们一定程度上能检测并纠正数据传输中的信道误码，但却不能防止对数据的恶意破坏。&lt;br /&gt;MD5 Hash算法的"数字指纹"特性，使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法，不少Unix系统有提供计算md5 checksum的命令。&lt;br /&gt;&lt;b&gt;2) 数字签名 &lt;/b&gt;&lt;br /&gt;    Hash 算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢，所以在数字签名协议中，单向散列函数扮演了一个重要的角色。 对 Hash 值，又称"数字摘要"进行数字签名，在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点。&lt;br /&gt;&lt;b&gt;3) 鉴权协议 &lt;/b&gt;&lt;br /&gt;    如下的鉴权协议又被称作"挑战--认证模式：在传输信道是可被侦听，但不可被篡改的情况下，这是一种简单而安全的方法。&lt;br /&gt;&lt;br /&gt;当然，hash函数并不是完全可靠，不同文件产生相同MD5和SHA1的几率还是有的，只是不高，在我们论坛里提供的系统光盘，你想对这么几个文件存在相同HASH的不同文件根本是不可能的。&lt;br /&gt;  论坛MSDN版块，提供的就是微软发布MSDN提供给程序员研究的Windows系统的镜像的HASH值——SHA-1，不提供MD5因为微软只提供了 SHA1。而论坛发布区发布的镜像是和这些值对应的镜像，你校验自己的镜像的HASH和MSDN信息区相应版本的SHA-1对应的上，说明你手中的光盘是 微软通过MSDN发布的原盘。对不上还存在属于零售或通过销售渠道发布的镜像的可能。毕竟MSDN只是微软发布系统光盘的一个途径，MSDN只是给程序开 发人员研究用的。&lt;br /&gt;   寻求原版的证实，对应SHA-1和MD5外，CRC的认证也是一个很重要的因素，CRC同样是校验文件的完整性，还有CDIMGE的封装版本。&lt;br /&gt;   微软出品的镜像都能通过CRC验证，当然也有人使用CRC自己进行制作可以得到通过CRC的镜像，那么这时候你需要对应镜像的SHA-1等了，所以，验证一个镜像的原盘可以通过对应多个数值来完成。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;什么是MSDN&lt;/b&gt;&lt;br /&gt;    MSDN是Microsoft Software Developer Network的简称。这是微软的针对开发者的开发计划。你可以在&lt;a href="http://msdn.microsoft.com/" target="_blank"&gt;http://msdn.microsoft.com&lt;/a&gt;看到有关软件开发的资料。在VC++ 6.0中包括MSDN Library的光盘，其中包括VC++的帮助文件和许多与开发相关的技术文献，学习VC++编程经常要搜索一下MSDN Library。MSDN Library每个季度更新一次，可以向微软订阅更新光盘。&lt;br /&gt;  所以MSDN资源不是匿名就可以访问并看的到的，需要订购的客户才能看到并下载。&lt;br /&gt;  MSDN订购可以标准、教育或批量价格，从你喜欢的软件分销商那里购买。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-4550373722110607979?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/4550373722110607979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=4550373722110607979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4550373722110607979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4550373722110607979'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/msdnmd5sha-1.html' title='到底什么是MSDN？MD5？SHA-1？'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-5045198116945379553</id><published>2008-04-16T01:35:00.000-07:00</published><updated>2008-04-16T01:36:27.453-07:00</updated><title type='text'>CPA CPS CPC CPM CPO PPC PPL PPS CPTM</title><content type='html'>&lt;p&gt;&lt;strong&gt;经常有人问CPA  CPS     CPC 什么意思啊?&lt;br /&gt;&lt;/strong&gt;加广告似乎有这些方式的啊&lt;br /&gt;&lt;strong&gt;        CPA&lt;/strong&gt; (Cost-per-Action) ：每次行动的费用，即根据每个访问者对网络广告所采取的行动收费的定价模式。对于用户行动有特别的定义，包括形成一次&lt;span&gt;&lt;a id="hl_0" class="qs_highlight1" style="font-size: 1em;" href="http://clk.qunsee.com/click/click.php?cpid=510&amp;amp;ads_id=602&amp;amp;pid=99000124&amp;amp;cid=124&amp;amp;url=http%3A//www.alpariasia.com/alpari.asp&amp;amp;k=%u4EA4%u6613&amp;amp;s=http%3A//www.xker.com/page/e2007/0831/30927.html&amp;amp;rn=659808&amp;amp;v=1&amp;amp;ref=http%3A//www.google.cn/search%3Fq%3DCPL+%28Cost+per+lead%29%26sourceid%3Dnavclient-ff%26ie%3DUTF-8%26rlz%3D1B3GGGL_enDE263DE263&amp;amp;province=UNKNOWN&amp;amp;city=UNKNOWN" target="_blank" onmouseover="window.clearTimeout(_ht[0]);qs_show_frame(event,this,0);" onmouseout="_on_div[0]=false;_ht[0]=window.setTimeout('qs_is_on_div(0)',500);" onclick="_write_cookie('click602',0);"&gt;交易&lt;/a&gt;&lt;/span&gt;、获得一个注册用户、或者对网络广告的一次点击等。&lt;br /&gt;　　&lt;strong&gt;CPC&lt;/strong&gt; (Cost-per-click)： 每次点击的费用。根据广告被点击的次数收费。如关键词广告一般采用这种定价模式。&lt;br /&gt;　　&lt;strong&gt;CPM&lt;/strong&gt;（Cost per Thousand Impressions）：每千次印象费用。广告条每显示1000次（印象）的费用。CPM是最常用的网络广告定价模式之一。&lt;br /&gt;　　&lt;strong&gt;CPO &lt;/strong&gt;(Cost-per-Order) ：也称为Cost-per-Transaction，即根据每个订单/每次交易来收费的方式。 &lt;br /&gt;　　&lt;strong&gt;PPC&lt;/strong&gt;（Pay-per-Click）：是根据点击广告或者电子邮件信息的用户数量来付费的一种网络广告定价模式。&lt;br /&gt;　　&lt;strong&gt;PPL&lt;/strong&gt;（Pay-per-Lead）：根据每次通过网络广告产生的引导付费的定价模式。例如，广告客户为访问者点击广告完成了在线表单而向广告服务商付费。这种模式常用于网络会员制营销模式中为联盟网站制定的佣金模式。&lt;br /&gt;　　&lt;strong&gt;PPS&lt;/strong&gt;（Pay-per-Sale）：根据网络广告所产生的直接销售数量而付费的一种定价模式 。&lt;br /&gt;　　&lt;strong&gt;CPTM&lt;/strong&gt; (Cost per Targeted Thousand Impressions) ：经过定位的用户（如根据人口统计信息定位）的千次印象费用。CPTM与CPM的区别在于，CPM是所有用户的印象数，而CPTM只是经过定位的用户的印象数。&lt;br /&gt;&lt;br /&gt;另外收集一篇&lt;br /&gt;   什么是CPA、CPC、CPS、CPL、CPM、CPO、PPC、PPL、CPTM？&lt;/p&gt; &lt;p&gt;    在有关网络广告的术语中，经常会遇到CPA、CPC、CPM、CPO、PPC、PPL、CPTM等缩写字母，这些都是有关网络广告定价方式的缩写短语，下面是《网络营销基础与实践》第二版第6章“网络广告基础”中对这些概念的解释。&lt;/p&gt; &lt;p&gt;    关于网络广告定价模式的一组常用术语：&lt;/p&gt; &lt;p&gt;    CPA (Cost-per-Action) ：每次行动的费用，即根&lt;br /&gt;据每个访问者对网络广告所采取的行动收费的定价模式。对于用户行动有特别的定义，包括形成一次交易、获得一个注册用户、或者对网络广告的一次点击等。&lt;/p&gt; &lt;p&gt;    CPC (Cost-per-click)： 每次点击的费用。根据广告被点击的次数收费。如关键词广告一般采用这种定价模式。&lt;/p&gt; &lt;p&gt;    CPL(Cost for Per Lead)：按注册成功支付佣金。&lt;/p&gt; &lt;p&gt;    CPM（Cost per Thousand Impressions）：每千次印象费用。广告条每显示1000次（印象）的费用。CPM是最常用的网络广告定价模式之一。&lt;/p&gt; &lt;p&gt;    CPO (Cost-per-Order) ：也称为Cost-per-Transaction，即根据每个订单/每次交易来收费的方式。 &lt;/p&gt; &lt;p&gt;    CPS(Cost for Per Sale)：营销效果是指，销售额。&lt;/p&gt; &lt;p&gt;    PPC（Pay-per-Click）：是根据点击广告或者电子邮件信息的用户数量来付费的一种网络广告定价模式。&lt;/p&gt; &lt;p&gt;    PPL（Pay-per-Lead）：根据每次通过网络广告产生的引导付费的定价模式。例如，广告客户为访问者点击广告完成了在线表单而向广告服务商付费。这种模式常用于网络会员制营销模式中为联盟网站制定的佣金模式。&lt;/p&gt; &lt;p&gt;    PPS（Pay-per-Sale）：根据网络广告所产生的直接销售数量而付费的一种定价模式 。&lt;/p&gt;     CPTM (Cost per Targeted Thousand Impressions) ：经过定位的用户（如根据人口统计信息定位）的千次印象费用。CPTM与CPM的区别在于，CPM是所有用户的印象数，而CPTM只是经过定位的用户的印象数。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-5045198116945379553?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/5045198116945379553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=5045198116945379553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/5045198116945379553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/5045198116945379553'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/cpa-cps-cpc-cpm-cpo-ppc-ppl-pps-cptm.html' title='CPA CPS CPC CPM CPO PPC PPL PPS CPTM'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-2588370133064079601</id><published>2008-04-04T01:14:00.000-07:00</published><updated>2008-04-04T01:15:18.030-07:00</updated><title type='text'>Performance Improvement in a J2EE Application</title><content type='html'>&lt;h1&gt;Performance Improvement in a J2EE Application&lt;/h1&gt;&lt;br /&gt;http://dev2dev.bea.com.cn/techdoc/2004122805.html&lt;br /&gt;&lt;br /&gt;             &lt;p&gt; &lt;em&gt;Java is hot. Just nine years old, it has become one of the leading development environments in the world. Millions of programmers and thousands of companies use it, and half of all IT managers expect to deploy J2EE applications this year.&lt;/em&gt; &lt;/p&gt;&lt;p&gt; But Java's popularity hasn't necessarily made it easy for the growing population of Java code jockeys. Ever-shortening production cycles have kept the heat on programmers, who increasingly work in large teams to meet production milestones. And every day those teams come face-to-face with an immutable law of software development: the more code you write, the more bugs you'll get - bugs that cost time and sap quality and performance from applications. &lt;/p&gt;&lt;p&gt; This article looks at performance tuning and optimization of memory usage of a J2EE application. Our setup uses the BEA WebLogic Application Server. We will consider the following: &lt;/p&gt;&lt;ul&gt;&lt;li&gt; The problem domain &lt;/li&gt;&lt;li&gt; Tuning the Java Virtual Machine &lt;/li&gt;&lt;li&gt; HTTP session management &lt;/li&gt;&lt;li&gt; Tuning the application server &lt;/li&gt;&lt;li&gt; Coding standards: laying ground rules for the future &lt;/li&gt;&lt;/ul&gt; &lt;strong&gt;The Problem Domain&lt;/strong&gt;&lt;br /&gt; We have a J2EE application with the following setup: &lt;ul&gt;&lt;li&gt; BEA WebLogic 6.1 Service Pack 5 as application/Web server. &lt;/li&gt;&lt;li&gt; Some popular RDBMS. This has no effect on our discussion. &lt;/li&gt;&lt;li&gt; Model I Web Architecture. &lt;/li&gt;&lt;li&gt; Eight stateless EJBs and six stateful EJBs. &lt;/li&gt;&lt;li&gt; HTTP session holding references to stateful EJBs. &lt;/li&gt;&lt;li&gt; Database Connection Pool with initial size 2 and maximum size 10. &lt;/li&gt;&lt;li&gt; Around 120 servlets in the Web tier. &lt;/li&gt;&lt;li&gt; XML/XSLT-based architecture. &lt;/li&gt;&lt;/ul&gt; &lt;strong&gt;&lt;em&gt;The Problems&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;There was a memory issue with the application. When the server was started, the memory usage was around 7-8% of the total physical memory available. As the days went by and the application went into wider use, the memory usage grew to nearly 49-53% (over a 7-10 day period). &lt;p&gt; If the users logged off from their session by clicking the "Log off" button in the left-hand side menu, the application removed all the stateful beans from the server, but if a user just closed the browser window it didn't remove those beans and stayed in the container until the application server was restarted. As this continued, the number of EJB instances in memory shot up to 400 and above. &lt;/p&gt;&lt;p&gt; When BEA WebLogic Server loads more than ~400 EJBs, the Hotspot VM throws an OutOfMemory Exception. This occurs even though there appears to be more memory available. &lt;/p&gt;&lt;p&gt; &lt;strong&gt;Tuning the Java Virtual Machine&lt;/strong&gt;&lt;br /&gt;The Hotspot Virtual Machine was throwing an OutOfMemory Exception while trying to allocate PermGeneration space. The Hotspot VM uses different sections of memory. The permanent generation section is used for storing classes, methods, and symbols used by running Java objects. The initial size of the permanent generation section is 1 MB and the maximum size was 32 MB prior to 1.3.1 and 64 MB. &lt;/p&gt;&lt;p&gt;  To get around this, we can set up the permGeneration space through a JVM switch with the following command line: &lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;    java -server -XX:MaxPermSize=128M. &lt;/span&gt;&lt;/p&gt;&lt;p&gt; Note that increasing the max perm size only delays a failure. It's up to your application to properly clean the unused objects. Also, the XX options are not supported across all JVMs. &lt;/p&gt;&lt;p&gt; &lt;strong&gt;HTTP Session Management&lt;/strong&gt;&lt;br /&gt;When the user closes the browser without logging off from the session, the EJBs in the user's session will not be garbage collected. This is the primary reason for having too many EJBs in memory. To get around this, the HTTP session management has to look into all possible combinations. We can set up a default session time-out period in web.xml (Web application deployment descriptor) as follows: &lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;  &lt;session-config&gt;&lt;br /&gt;  &lt;session-timeout&gt;x&lt;/session-timeout&gt;&lt;br /&gt;&lt;session-config&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;  With this setting, the user's session will be automatically deactivated after x minutes  of inactivity. &lt;/p&gt;&lt;p&gt;  The other way is to code the session management using the following code when creating HTTP session   &lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt; HttpSession session=new HttpSession ();&lt;br /&gt;session.setmaxinactiveinternal(int timeoutSeconds); &lt;/span&gt;&lt;/p&gt;&lt;p&gt; This code will invalidate the user's session of timeoutSeconds of inactivity. &lt;/p&gt;&lt;p&gt;  &lt;em&gt;Note:&lt;/em&gt; If you do both of these steps, the value in the servlet code will override the value set up in the web.xml. &lt;/p&gt;&lt;p&gt; The only difference between these two methods is that the second one takes seconds as the parameter while the &lt;session-timeout&gt; tag value takes minutes as the argument. Normally, when the session is invalidated the logoff servlet/JSP will have code to remove references to all objects/object graphs referenced by the particular session. But when the user just closes the browser button there is no way our logoff servlet/JSP will be called. In this scenario, even though the session is invalidated, the enclosed objects/object graphs will still be there. When the garbage collector tries to garbage collect this session, it will also have to garbage collect all of these enclosed objects. When we have large objects (objects with larger references/data), we can also use the HTTPSessionListener interface to perform some clean-up action. &lt;/p&gt;&lt;p&gt; &lt;strong&gt;&lt;em&gt;javax.servlet.http.HTTPSessionListener Interface&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt; This interface declares the following two call-back methods: &lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt; Public void sessionCreated(HttpSessionEvent event);&lt;br /&gt;Public void sessionDestroyed(HttpSessionEven event); &lt;/span&gt;&lt;/p&gt;&lt;p&gt; These methods are called before a session is created/destroyed. &lt;/p&gt;&lt;p&gt; We can have a listener class that implements this interface and use these callback methods to control how sessions are created/destroyed. We need to register our listener class in the web.xml as follows: &lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;  &lt;listener&gt;&lt;br /&gt;  &lt;listener-class&gt;MySessionListener&lt;/listener-class&gt;&lt;br /&gt; &lt;/listener&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt; The advantage of using listener class along with the session timeout parameter in the web.xml file is that we will have more control of session management. If the session has large objects, then before the garbage collecter cleans up the objects, its time slice may disappear. In this case, it needs to wait for the next slice to clean up the objects. &lt;/p&gt;&lt;p&gt;  &lt;em&gt;Note:&lt;/em&gt; It is important that we design the application so that there is a single entry point. We need to start a new HTTP session in this class. All the remaining pages should check for the existence of HTTP session and for an error page when the session is null (Session Expired). This enables centralized control of HTTP sessions. &lt;/p&gt;&lt;p&gt; &lt;strong&gt;Tuning the Application Server&lt;/strong&gt;&lt;br /&gt;BEA WebLogic offers a number of parameters that we can set to optimize the bean pool size, including setting the initial size of the stateless bean pool. Some of the features include:&lt;br /&gt;&lt;/p&gt;&lt;div class="storybody"&gt;&lt;li&gt; &lt;strong&gt;&lt;em&gt;Use the &lt;initial-bean-pool-size&gt; to set it to minimum possible value for stateless session beans:&lt;/em&gt;&lt;/strong&gt; By default, the value is 1000. As stateless session beans can be shared between concurrent users, it is better to set this value to a very minimum. The correct value for this tag depends upon the concurrent users and peak load situation of the application. &lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;&lt;em&gt;Use the &lt;max-beans-in-free-pool&gt; tag to set the maximum bean pool size for the stateful session beans:&lt;/em&gt;&lt;/strong&gt; The default value for this has no limit. The value set for this tag greatly affects the activation/passivation mechanism of BEA WebLogic Server. The appropriate value for this tag depends on the application's traffic. When the number of beans in this pool has reached the threshold and a request for a new bean instance has come, the WebLogic Server will pick one or more beans for this pool for passivation. The algorithm for picking up the bean instance for passivation is either LRU (Least Recently Used) or NRU (Not Recently Used). &lt;p&gt; If max-beans-in-cache is reached and EJBs in the cache are not being used, WebLogic Server passivates some of those beans. This occurs even if the unused beans have not reached their idle-timeout-seconds limit. If max-beans-in-cache is reached and all EJBs in the cache are being used by clients, WebLogic Server throws a CacheFullException. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;&lt;em&gt;Use the &lt;idle-timeout-seconds&gt; tag to set the time the WebLogic Server will wait before passivating an idle stateful session bean instance:&lt;/em&gt;&lt;/strong&gt; The WebLogic Server will wait for the same amount of time before removing the bean from the swap space. Care should be taken in setting this value because once the passivated instance is removed from the swap space, there is no way to retrieve the state of the bean again. &lt;p&gt;  For example, consider the following setting: &lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;   &lt;idle-timeout-seconds&gt;1200&lt;/idle-timeout-seconds&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt; The idle bean instances will be passivated after 20 minutes of inactivity. After another 20 minutes, the bean instance will be removed from the disk also. Now let's say at the 41st minute the user has called a method on the bean instance. The BEA WebLogic Server will throw the error shown in Listing 1. &lt;/p&gt;&lt;p&gt;  WebLogic 6.1 Service Pack 5 provides a useful tag to get around this. The tag is described as follows: &lt;/p&gt;&lt;p&gt; &lt;em&gt;&lt;!-- The stateful session beans that are passivated to the disk will stay alive for this many seconds. After this interval, the passivated beans will be removed from the disk. &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;  Used in: stateful-session-cache &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;  Since: WebLogic Server 6.1 sp5 &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;  Default value: 600&lt;br /&gt;--&gt;&lt;br /&gt;&lt;! ELEMENT session-timeout-seconds (#PCDATA)&gt;&lt;/em&gt; &lt;/p&gt;&lt;p&gt; If we set the value for this &lt;session-timeout-seconds&gt; we can control the time the passivated beans will be removed from the disk. We can use this tag and set it to a very value so that we will always have our stateful EJBs (either in memory or on the disk). This will completely eliminate the bean deleted error. &lt;/p&gt;&lt;p&gt; &lt;strong&gt;Using WebLogic Managed Servers&lt;/strong&gt;&lt;br /&gt;BEA WebLogic allows you to create one or more servers within a single domain. One server will be the admin server; all other servers will be managed servers in the sense that they are managed by the admin server. An application, when put into production, should not be deployed in the admin server. The advantage of using managed servers is that we can start and stop them from the admin console. Thus even if the server holding the application stops responding (for any reason), we still have a chance to restart the server from the admin console. &lt;/p&gt;&lt;p&gt; &lt;strong&gt;Coding Standards: Laying Down the Rules for the Future&lt;/strong&gt;&lt;br /&gt;Managing a production system is even more difficult when the environment in which the system will run has not been taken into account in the design phase. System re-engineering is a simple task when careful consideration of the environment, boundaries, and context of the application is taken care of during the design phase. Design is an abstract definition of execution path. Solutions will be more scalable when the development is done by taking into account every minute detail of the design. There will be no hard and fast rules for system development as this depends on the particular problem domain in hand. But, there are some axioms that always help.&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;&lt;em&gt;Have a clear idea about supplementary classes like String and StringBuffer:&lt;/em&gt;&lt;/strong&gt; Use the appropriate class in appropriate situations. For example, using String class to build a long SQL query is inefficient and overloads the JVM string pool. &lt;/li&gt;&lt;li&gt; &lt;strong&gt;&lt;em&gt;Clean up legacy objects like Hashtable as soon as you're done with them&lt;/em&gt;&lt;/strong&gt;.  &lt;/li&gt;&lt;li&gt; &lt;strong&gt;&lt;em&gt;Call remove() method on EJB references explicitly:&lt;/em&gt;&lt;/strong&gt; This will release the bean instance to the bean pool and reduce the number of bean instances created by the container. &lt;/li&gt;&lt;li&gt; &lt;strong&gt;&lt;em&gt;Manage database connections carefully:&lt;/em&gt;&lt;/strong&gt; Have a close() method called on them as soon as you're done with it. Don't open the connection as a first line in the class. Open the connection only when you need it. &lt;/li&gt;&lt;li&gt; &lt;strong&gt;&lt;em&gt;Understand the business requirements&lt;/em&gt;&lt;/strong&gt; and the context in which your code executes before you write a single line of code. &lt;p&gt;  To sum up... "Create Objects as late as possible and remove them as early as possible".   &lt;/p&gt;&lt;/li&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-2588370133064079601?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/2588370133064079601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=2588370133064079601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/2588370133064079601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/2588370133064079601'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/performance-improvement-in-j2ee.html' title='Performance Improvement in a J2EE Application'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-5770227475305267764</id><published>2008-04-03T07:34:00.001-07:00</published><updated>2008-04-03T07:34:53.715-07:00</updated><title type='text'>用Axis开发Web Service</title><content type='html'>选择Axis的理由:&lt;br /&gt;1. 开发速度快&lt;br /&gt;2. 可移植性好，可在不同的application server, web container中运行&lt;br /&gt;3. 成熟稳定，Axis是从Apache SOAP(IBM SOAP4J)发展过来的，Axis 1.0在2002年10月发布，Axis是许多商业app server的基础，如WebSphere。&lt;br /&gt;&lt;br /&gt;开发WSDL&lt;br /&gt;开发Web Service应该从设计WSDL入手。对于使用了复杂数据类型的web service，如果对手写xml schema不是很熟悉可以先编写web service的java接口定义和表示相关的参数、返回值类的类，然后再用Axis的Java2WSDL工具生成wsdl的草稿。&lt;br /&gt;修改生成的 wsdl草稿要考虑合理选择binding的方式，WSDL规范定义了两种binding style：rpc和document，rpc意味着web service的客户端和服务端使用远程方法调用的约定进行通信，而使用document意味着客户端和服务端用xml文档进行通信。WSDL还规定了两种use：encoded和literal，literal意味着soap body中的xml是用相应的schema约束的；encoded意味着具体的soap message语义需要指定编码规则(通常是所谓的SOAP encoding，在SOAP规范的第五部分定义，又叫section 5 encoding)来解释。所以在wsdl中共有style/use的四种组合: rpc/encoded, rpc/literal, document/encoded, document/literal。第三种方式没有实际应用。另外，Microsoft提出了一种所谓的document/literal wrapped的方式，它用一个与operation同名的元素作为所有参数的"包装器"。document/literal wrapped方式解决了document/literal方式无法表达operation名称的缺点。&lt;br /&gt;rpc/encoded(Axis默认的方式)可以表达的对象图、多态的数据，wsdl定义的抽象的SOAP数据模型依赖于具体的实现，这可能带来互操作性问题(如Axis的默认使用multi -ref表达soap响应)，所以rpc/encoded是WS-I BP1.0规范所禁用的方式。&lt;br /&gt;&lt;br /&gt;关于如何合理地选择的style/use方式请参考developerworks上的&lt;br /&gt;http://www-106.ibm.com/developerworks/webservices/library/ws-whichwsdl/&lt;br /&gt;&lt;br /&gt;用Axis 的Java2WSDL工具生成wsdl可以使用Axis发布时自带的命令行工具或ant task。但两者配置繁琐，本文以maven-axis-plugin为例说明如何使用。maven-axis-plugin的java2wsdl可以根据java的interface或class生产相应的wsdl。&lt;br /&gt;使用该插件前先要下载：&lt;br /&gt;maven plugin:download -DartifactId=maven-axis-plugin -DgroupId=maven-plugins -Dversion=0.6-jus -Dmaven.repo.remote=http://ultra/maven/&lt;br /&gt;然后，需要配置该插件，使用java2wsdl至少需要配置两种信息：一是namespace和package之间的映射关系，二是要暴露为web service的class或interface的名称(FQCN)，以及该class的对应的service的location(也就是通过什么url 可以访问到该web service)和namespace。&lt;br /&gt;示例：&lt;br /&gt;# axis java2wsdl plugin settings&lt;br /&gt;maven.java2wsdl.namespaceMappings                      = http://www.ceservice.com.cn/ce/PAPS/exception=com.erry,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPScom.erry.webservice,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPS/datatype/baseinfo=com.erry.webservice.VO.baseinfo,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPS/datatype/srvsht=com.erry.webservice.VO.srvsht&lt;br /&gt;maven.axis.classnames                                  = com.erry.webservice.ServiceSheetServiceSoapBindingImpl&lt;br /&gt;com.erry.webservice.ServiceSheetServiceSoapBindingImpl = http://localhost/services/ServiceSheetService,http://www.ceservice.com.cn/ce/PAPS&lt;br /&gt;&lt;br /&gt;namespace 和package之间的映射关系的用maven.java2wsdl.namespaceMappings属性表示，其值为逗号分隔的 namespace=package；maven.axis.classnames指定要暴露为web service的class或interface的名称，如果有多个用逗号分隔。每个class或interface还要指定location和 namespace(两者用逗号分隔)。&lt;br /&gt;配置完，运行maven axis:java2wsdl即在target/axis/wsdl目录下产生与class同名(FQCN)，wsdl为后缀的文件。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;用Axis开发Web Service客户端的步骤&lt;br /&gt;编写完wsdl后，可以用Axis的wsdl2java生成web service的客户端，wsdl2java生成的客户端是stub方式的。它包括endpoint借口、实现该接口的stub、 serviceLocator、可选的单元测试代码。其中，serviceLocator中hard code了服务端地址。可以用spring的dependency injection将服务器地址放在spring bean配置文件中。&lt;br /&gt;&lt;br /&gt;使用maven-axis-plugin生成client代码首先需要配置，主要涉及的信息有wsdl文档的位置(maven.axis.url)， namespace和package的映射(maven.wsdl2java.namespaceMappings)，是否生成单元测试 (maven.axis.testcase)。maven.wsdl2java.namespaceMappings的格式和 maven.java2wsdl.namespaceMappings一样。&lt;br /&gt;示例：&lt;br /&gt;maven.axis.url                        = ${maven.src.dir}/conf/srvshtservice.wsdl&lt;br /&gt;maven.axis.testcase                   = true&lt;br /&gt;maven.wsdl2java.namespaceMappings     = http://www.ceservice.com.cn/ce/PAPS/exception=com.erry,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPS=com.erry.webservice,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPS/datatype/baseinfo=com.erry.webservice.VO.baseinfo,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPS/datatype/srvsht=com.erry.webservice.VO.srvsht&lt;br /&gt;&lt;br /&gt;配置完后运行maven axis:wsdl2java即在target/axis/src目录下产生endpoint interface，stub， serviceLocator和data type对应的Java Class。如果maven.axis.testcase为true，则还在target/axis/test目录下生成相应的单元测试代码。&lt;br /&gt;&lt;br /&gt;用Axis开发Web Service服务器端的步骤&lt;br /&gt;Axis 的wsdl2java工具除了客户端代码外还可以生成服务器端代码的框架和web service部署说明文件(wsdd)。Axis生成的默认wsdd基本上能够满足一般的要求了。其中需要修改的有：将multi-ref设成 false，这只要在globalConfiguration中增加&lt;parameter name="sendMultiRefs" value="false"/&gt;；在service中加入&lt;wsdl&gt;元素指定wsdl文件，而不是让Axis在运行时刻生成。 &lt;wsdl&gt;元素中的文件路径是相对于web app的WEB-INF/classes目录的。&lt;br /&gt;&lt;br /&gt;和生成客户端代码类似，使用 maven-axis-plugin生成server端框架带和部署说明文件首先需要配置。配置的内容除了wsdl文档的位置，namespace和 package的映射外还需要指定deploy scope，maven.axis.serverside设为true表示生成服务端代码。&lt;br /&gt;示例：&lt;br /&gt;maven.axis.url                        = ${maven.src.dir}/conf/srvshtservice.wsdl&lt;br /&gt;maven.axis.deployscope                = application&lt;br /&gt;maven.axis.serverside                 = true&lt;br /&gt;maven.axis.testcase                   = true&lt;br /&gt;maven.wsdl2java.namespaceMappings     = http://www.ceservice.com.cn/ce/PAPS/exception=com.erry,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPS=com.erry.webservice,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPS/datatype/baseinfo=com.erry.webservice.VO.baseinfo,&lt;br /&gt;http://www.ceservice.com.cn/ce/PAPS/datatype/srvsht=com.erry.webservice.VO.srvsht&lt;br /&gt;&lt;br /&gt;配置完后运行maven axis:wsdl2java即在target/axis/src目录下产生endpoint interface，data type对应的Java Class，JSE框架代码，部署说明文件等。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Axis开发调试工具&lt;br /&gt;Axis自带了一个名为tcpmon的工具用于截获SOAP消息。使用该工具可以看到完整的HTTP请求和响应。本文以maven-axis-plugin为例说明如何启动该工具。&lt;br /&gt;配置&lt;br /&gt;# axis tcpmon plugin settings&lt;br /&gt;maven.axis.tcpmon.listen.port=90&lt;br /&gt;maven.axis.tcpmon.destination.host=localhost&lt;br /&gt;maven.axis.tcpmon.destination.port=80&lt;br /&gt;第一行是tcpmon监听端口，web service的客户端应该向该端口发出请求，第二、三行是web service服务端所在的主机和端口&lt;br /&gt;配置完，运行maven axis:tcpmon即出现tcpmon swing界面。此时，可以运行web service的客户端了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-5770227475305267764?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/5770227475305267764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=5770227475305267764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/5770227475305267764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/5770227475305267764'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/axisweb-service.html' title='用Axis开发Web Service'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-4490667753651477298</id><published>2008-04-03T07:32:00.000-07:00</published><updated>2008-04-03T07:34:21.164-07:00</updated><title type='text'>Java Web Service的客户端实现</title><content type='html'>Java Web Service的客户端实现有三种&lt;br /&gt;1. 生成的stub&lt;br /&gt;2. 动态代理&lt;br /&gt;3. 动态调用接口&lt;br /&gt;其中 生成stub是最常用的。stub是用JAX-RPC编译器根据WSDL文档生成的，其主要功能是将对endpoint接口的方法调用转化为SOAP 消息，并且负责将返回的SOAP响应转换为方法的返回值，把SOAP fault转化为方法的异常。JAX-RPC编译器产生的stub除了要实现endpoint接口外，还需要实现或继承 javax.xml.rpc.Stub接口或其实现的子类(Axis中是org.apache.axis.client.Stub)。 javax.xml.rpc.Stub接口主要定义了和网络通讯和认证相关的属性的设置和获取的机制。&lt;br /&gt;Java Web Service的客户端实现有三种&lt;br /&gt;1. 生成的stub&lt;br /&gt;2. 动态代理&lt;br /&gt;3. 动态调用接口&lt;br /&gt;其 中生成stub是最常用的。stub是用JAX-RPC编译器根据WSDL文档生成的，其主要功能是将对endpoint接口的方法调用转化为SOAP 消息，并且负责将返回的SOAP响应转换为方法的返回值，把SOAP fault转化为方法的异常。JAX-RPC编译器产生的stub除了要实现endpoint接口外，还需要实现或继承 javax.xml.rpc.Stub接口或其实现的子类(Axis中是org.apache.axis.client.Stub)。 javax.xml.rpc.Stub接口主要定义了和网络通讯和认证相关的属性的设置和获取的机制。其代码如下：&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;em&gt;package javax.xml.rpc;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;&lt;br /&gt;public interface Stub {&lt;br /&gt;&lt;br /&gt;    // Standard property: The Web service's Internet address.&lt;br /&gt;    public static String ENDPOINT_ADDRESS_PROPERTY;&lt;br /&gt;    // Standard property: Password for authentication.&lt;br /&gt;    public static String PASSWORD_PROPERTY;&lt;br /&gt;    // Standard property: User name for authentication.&lt;br /&gt;    public static String USERNAME_PROPERTY;&lt;br /&gt;    // Standard property: Boolean flag for maintaining an HTTP session.&lt;br /&gt;    public static String SESSION_MAINTAIN_PROPERTY;&lt;br /&gt;&lt;br /&gt;    // Given a property name, get its value.&lt;br /&gt;    public Object _getProperty(java.lang.String name);&lt;br /&gt;    // Get the names of all the properties the stub supports.&lt;br /&gt;    public Iterator _getPropertyNames();&lt;br /&gt;    // Configure a property on the stub.&lt;br /&gt;    public void _setProperty(java.lang.String name, java.lang.Object value);&lt;br /&gt;}&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;JAX -RPC编译器产生还可以产生一个和WSDL中service元素对应的Service接口，该接口组合了多个port，也就是多个Stub。该接口继承 了javax.xml.rpc.Service。在J2EE环境中Service接口通常通过JNDI lookup得到。&lt;br /&gt;在J2EE中使用生成的stub的典型用例如下:&lt;br /&gt;代码：&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;em&gt;package com.jwsbook.jaxrpc;&lt;br /&gt;import javax.servlet.http.*;&lt;br /&gt;import javax.servlet.*;&lt;br /&gt;import javax.naming.InitialContext;&lt;br /&gt;&lt;br /&gt;public class BookQuoteServlet_1 extends javax.servlet.http.HttpServlet {&lt;br /&gt;  protected void doGet(HttpServletRequest req, HttpServletResponse resp)&lt;br /&gt;  throws ServletException,java.io.IOException {&lt;br /&gt;    try{&lt;br /&gt;      String isbn = req.getParameter("isbn");&lt;br /&gt;&lt;br /&gt;      InitialContext jndiContext = new InitialContext();&lt;br /&gt;&lt;br /&gt;      BookQuoteService service = (BookQuoteService)&lt;br /&gt;      jndiContext.lookup("java:comp/env/service/BookQuoteService");&lt;br /&gt;&lt;br /&gt;      BookQuote bookQuote = service.getBookQuotePort();&lt;br /&gt;&lt;br /&gt;      float price = bookQuote.getBookPrice( isbn );&lt;br /&gt;&lt;br /&gt;      java.io.Writer outStream = resp.getWriter();&lt;br /&gt;      outStream.write("The wholesale price for ISBN:"+isbn+&lt;br /&gt;                    " = "+price+"");&lt;br /&gt;    }catch(javax.naming.NamingException ne){&lt;br /&gt;      throw new ServletException(ne);&lt;br /&gt;    }catch(javax.xml.rpc.ServiceException se){&lt;br /&gt;      throw new ServletException(se);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;部署说明文件：&lt;br /&gt;&lt;span style="color:#660000;"&gt;&lt;em&gt;&lt;service-ref mh="http://www.Monson-Haefel.com/jwsbook/BookQuote"&gt;&lt;br /&gt;    &lt;service-ref-name&gt;service/BookQuoteService&lt;/service-ref-name&gt;&lt;br /&gt;    &lt;service-interface&gt;com.jwsbook.jaxrpc.BookQuoteService&lt;/service-interface&gt;&lt;br /&gt;    &lt;wsdl-file&gt;BookQuote.wsdl&lt;/wsdl-file&gt;&lt;br /&gt;    &lt;service-qname&gt;mh:BookQuoteService&lt;/service-qname&gt;&lt;br /&gt;&lt;/service-ref&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;一 般都是通过JNDI查询到相应的Service接口，然后从Service接口中得到stub，最后调用web service的方法。部署文件中申明了名为"service/BookQuoteService"的Service接口，在代码里获取该接口的代码是 jndiContext.lookup("java:comp/env/service/BookQuoteService")，前缀"java: comp/env/"是所有J2EE资源在JNDI树种的parent Context。&lt;br /&gt;&lt;br /&gt;在非J2EE环境中实现web service客户端&lt;br /&gt;在 非J2EE环境中也可以实现web service客户端，这时需要用到javax.xml.rpc.ServiceFactory(或其子类，在axis中是 org.apache.axis.client.ServiceFactory)的静态方法loadService得到service接口。接下来的调用 代码和J2EE中的类似。&lt;br /&gt;&lt;br /&gt;动态代理调用&lt;br /&gt;动态代理调用是Java web service的另一种方式。对于使用该方式的客户端代码，和生成stub的方式相比较，其变化不是很大。它和生成stub的方式主要区别在于前者在编译时刻产生service接口和stub，后者则将这部分工作延迟到运行时刻。&lt;br /&gt;动态代理调用的典型代码和部署说明文件：&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;em&gt;package com.jwsbook.jaxrpc;&lt;br /&gt;import javax.naming.InitialContext;&lt;br /&gt;&lt;br /&gt;public class JaxRpcExample_2 {&lt;br /&gt;  public static void main(String [] args) throws Exception{&lt;br /&gt;    String isbn = args[0];&lt;br /&gt;&lt;br /&gt;    InitialContext jndiContext = new InitialContext();&lt;br /&gt;&lt;br /&gt;    javax.xml.rpc.Service service = (javax.xml.rpc.Service)&lt;br /&gt;    jndiContext.lookup("java:comp/env/service/Service");&lt;br /&gt;&lt;br /&gt;    BookQuote BookQuote_proxy = (BookQuote)&lt;br /&gt;                                service.getPort(BookQuote.class);&lt;br /&gt;&lt;br /&gt;    float price = BookQuote_proxy.getBookPrice( isbn );&lt;br /&gt;&lt;br /&gt;    System.out.println("The price is = "+price);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;&lt;em&gt;&lt;service-ref mh="http://www.Monson-Haefel.com/jwsbook/BookQuote"&gt;&lt;br /&gt;    &lt;service-ref-name&gt;service/Service&lt;/service-ref-name&gt;&lt;br /&gt;    &lt;service-interface&gt;javax.xml.rpc.Service&lt;/service-interface&gt;&lt;br /&gt;    &lt;wsdl-file&gt;BookQuote.wsdl&lt;/wsdl-file&gt;&lt;br /&gt;    &lt;service-qname&gt;mh:BookQuoteService&lt;/service-qname&gt;&lt;br /&gt;&lt;/service-ref&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;由 于不需要在编译时刻产生service接口和stub，用JNDI lookup和部署说明时只使用了javax.xml.rpc.Service。得到service接口后通过getPort方法可以取得动态代理的 stub。getPort有两种版本，getPort(java.lang.Class endpointInterface)和getPort(javax.xml.namespace.QName portName,java.lang.Class endpointInterface)，通常当WSDL中一个PortType有一种以上的绑定时，如果需要得到某个绑定的port接口就使用后者，否者 使用前者。QName是该绑定的完全限定名称，有命名空间加上局部名构成。对应的QName对象的构造方法有构造函数法和静态valueOf法，实例如 下：&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;em&gt;// Use constructor method&lt;br /&gt;QName portName =&lt;br /&gt;          new QName("http://www.Monson-Haefel/jwsbook/BookQuote",&lt;br /&gt;          "BookQuoteLiteralPort");&lt;br /&gt;         &lt;br /&gt;// Use static valueOf() method&lt;br /&gt;String s = "{http://www.Monson-Haefel/jwsbook/BookQuote}BookQuoteLiteralPort";&lt;br /&gt;QName qname2 = QName.valueOf(s);&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;valueOf方法接受的String参数以"{namespace}localName"的模式构成。&lt;br /&gt;PortType有一种以上的绑定时还需要在JAX-RPC Mapping 文件中说明不指定QName版本的getPort方法对应的port绑定。示例：&lt;br /&gt;&lt;span style="color:#660000;"&gt;&lt;em&gt;&lt;?xml version='1.0' encoding='UTF-8' ?&gt;&lt;br /&gt;&lt;java-wsdl-mapping&lt;br /&gt;  xmlns="http://java.sun.com/xml/ns/j2ee"&lt;br /&gt;  xmlns:mh="http://www.Monson-Haefel.com/jwsbook/BookQuote"...&gt;&lt;br /&gt;  ...&lt;br /&gt;  &lt;service-endpoint-interface-mapping&gt;&lt;br /&gt;    &lt;service-endpoint-interface&gt;com.jwsbook.jaxrpc.BookQuote&lt;br /&gt;    &lt;/service-endpoint-interface&gt;&lt;br /&gt;    &lt;wsdl-port-type&gt;mh:BookQuote&lt;/wsdl-port-type&gt;&lt;br /&gt;    &lt;wsdl-binding&gt;mh:BookQuote_LiteralBinding&lt;/wsdl-binding&gt;&lt;br /&gt;    ...&lt;br /&gt;  &lt;/service-endpoint-interface-mapping&gt;&lt;br /&gt;&lt;/java-wsdl-mapping&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;使用QName的动态代理调用实例：&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;em&gt;package com.jwsbook.jaxrpc;&lt;br /&gt;import javax.naming.InitialContext;&lt;br /&gt;import javax.xml.namespace.QName;&lt;br /&gt;&lt;br /&gt;public class JaxRpcExample_3 {&lt;br /&gt;  public static void main(String [] args) throws Exception{&lt;br /&gt;    String isbn = args[0];&lt;br /&gt;&lt;br /&gt;    InitialContext jndiContext = new InitialContext();&lt;br /&gt;&lt;br /&gt;    javax.xml.rpc.Service service = (javax.xml.rpc.Service)&lt;br /&gt;    jndiContext.lookup("java:comp/env/service/Service");&lt;br /&gt;&lt;br /&gt;    QName portName =&lt;br /&gt;          new QName("http://www.Monson-Haefel/jwsbook/BookQuote",&lt;br /&gt;          "BookQuoteLiteralPort");&lt;br /&gt;&lt;br /&gt;    BookQuote BookQuote_proxy = (BookQuote)&lt;br /&gt;                               service.getPort(portName, BookQuote.class);&lt;br /&gt;&lt;br /&gt;    float price = BookQuote_proxy.getBookPrice( isbn );&lt;br /&gt;&lt;br /&gt;    System.out.println("The price is = "+price);&lt;br /&gt;  }&lt;br /&gt;}&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;动态代理的底层实现是用java的反射机制和java.lang.reflect.Proxy完成的。&lt;br /&gt;&lt;br /&gt;动态调用接口(DII)&lt;br /&gt;&lt;br /&gt;动态调用接口的通常使用顺序：&lt;br /&gt;1. 获得一个通用的service接口，比如通过JNDI lookup&lt;br /&gt;2. 构造代表WSDL中port和operation的QName对象，作为service接口的createCall方法的参数，得到Call对象。&lt;br /&gt;3. 准备operation所需的参数，如果是原子类型则需要将其包装成相应的对象类型。视operation是否有返回值调用invoke或invokeOneWay方法。&lt;br /&gt;4. 如果operation定义了INOUT,OUT参数，则在invoke后调用getOutputValues，比如：java.util.List outputParams = call.getOutputValues();&lt;br /&gt;完整的代码示例：&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;em&gt;package com.jwsbook.jaxrpc;&lt;br /&gt;import javax.naming.InitialContext;&lt;br /&gt;import javax.xml.rpc.Service;&lt;br /&gt;import javax.xml.rpc.Call;&lt;br /&gt;import javax.xml.namespace.QName;&lt;br /&gt;&lt;br /&gt;public class JaxRpcExample_4 {&lt;br /&gt;  public static void main(String [] args) throws Exception{&lt;br /&gt;    String isbn = args[0];&lt;br /&gt;&lt;br /&gt;    InitialContext jndiContext = new InitialContext();&lt;br /&gt;&lt;br /&gt;    javax.xml.rpc.Service service = (javax.xml.rpc.Service)&lt;br /&gt;    jndiContext.lookup("java:comp/env/service/Service");&lt;br /&gt;&lt;br /&gt;    QName portName =&lt;br /&gt;     new QName("http://www.Monson-Haefel.com/jwsbook/BookQuote",&lt;br /&gt;               "BookQuotePort");&lt;br /&gt;    QName operationName =&lt;br /&gt;     new QName("http://www.Monson-Haefel.com/jwsbook/BookQuote",&lt;br /&gt;               "getBookPrice");&lt;br /&gt;&lt;br /&gt;    Call call = service.createCall(portName,operationName);&lt;br /&gt;&lt;br /&gt;    Object [] inputParams = new Object[]{isbn};&lt;br /&gt;&lt;br /&gt;    Float price = (Float)call.invoke(inputParams);&lt;br /&gt;&lt;br /&gt;    System.out.println("The price is = "+price.floatValue());&lt;br /&gt; }&lt;br /&gt;}&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-4490667753651477298?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/4490667753651477298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=4490667753651477298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4490667753651477298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4490667753651477298'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/java-web-service.html' title='Java Web Service的客户端实现'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-4110917472494722742</id><published>2008-04-02T08:26:00.001-07:00</published><updated>2008-04-02T08:26:46.926-07:00</updated><title type='text'>WS-Federation：活动请求方概要</title><content type='html'>&lt;h1&gt;WS-Federation：活动请求方概要&lt;/h1&gt;&lt;div class="date"&gt;发布日期： 4/26/2004&lt;span class="datePipe"&gt; | &lt;/span&gt;更新日期： 4/26/2004&lt;/div&gt;&lt;div class="overview"&gt;&lt;p&gt;&lt;b&gt;版本&lt;/b&gt;&lt;b&gt; 1.0&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;2003 &lt;/b&gt;&lt;b&gt;年&lt;/b&gt;&lt;b&gt; 7 &lt;/b&gt;&lt;b&gt;月&lt;/b&gt;&lt;b&gt; 8 &lt;/b&gt;&lt;b&gt;日&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;作者&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Siddharth Bajaj，VeriSign&lt;/p&gt;&lt;p&gt;Giovanni Della-Libera，Microsoft&lt;/p&gt;&lt;p&gt;Brendan Dixon，Microsoft&lt;/p&gt;&lt;p&gt;Maryann Hondo，IBM&lt;/p&gt;&lt;p&gt;Matt Hur，Microsoft&lt;/p&gt;&lt;p&gt;Chris Kaler (Editor)，Microsoft&lt;/p&gt;&lt;p&gt;Hal Lockhart，BEA&lt;/p&gt;&lt;p&gt;Hiroshi Maruyama，IBM&lt;/p&gt;&lt;p&gt;Anthony Nadalin (Editor)，IBM&lt;/p&gt;&lt;p&gt;Nataraj Nagaratnam，IBM&lt;/p&gt;&lt;p&gt;Andrew Nash，RSA Security&lt;/p&gt;&lt;p&gt;Hemma Prafullchandra，VeriSign&lt;/p&gt;&lt;p&gt;John Shewchuk，Microsoft&lt;/p&gt;&lt;/div&gt;&lt;center&gt;&lt;img src="http://img.microsoft.com/library/gallery/templates/MNP2.Common/images/3squares.gif" alt="*" title="" border="0" height="6" width="30" /&gt;&lt;/center&gt;&lt;h5 style="padding-top: 2px;"&gt;本页内容&lt;/h5&gt;&lt;table style="margin-top: 7px; margin-bottom: 12px;" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EDE"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="1. 引言 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EDE"&gt;1. 引言 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EGE"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="1.1. 目标和需求 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EGE"&gt;1.1. 目标和需求 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EJE"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="1.1.1 需求 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EJE"&gt;1.1.1 需求 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ETE"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="1.1.2. 非目标 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ETE"&gt;1.1.2. 非目标 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E2E"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="1.2. 标记约定 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E2E"&gt;1.2. 标记约定 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EEF"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="1.3. 命名空间 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EEF"&gt;1.3. 命名空间 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EOG"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="1.4. 术语 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EOG"&gt;1.4. 术语 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EEFAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="2. 模型 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EEFAC"&gt;2. 模型 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ENFAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="3.1. 单一登录 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ENFAC"&gt;3.1. 单一登录 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E2FAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="3.2. 注销 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E2FAC"&gt;3.2. 注销 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EJGAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="3.3. 属性 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EJGAC"&gt;3.3. 属性 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ESGAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="3.4. 假名 (Pseudonym) " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ESGAC"&gt;3.4. 假名 (Pseudonym) &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EBHAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="4. 语法 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EBHAC"&gt;4. 语法 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EEHAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="4.1. 请求安全性令牌 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EEHAC"&gt;4.1. 请求安全性令牌 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EKHAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="4.2. 返回安全性令牌 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EKHAC"&gt;4.2. 返回安全性令牌 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EQHAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="4.3. 注销语法 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EQHAC"&gt;4.3. 注销语法 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EXHAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="4.4. 属性请求 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EXHAC"&gt;4.4. 属性请求 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E1HAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="4.5. 假名请求 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E1HAC"&gt;4.5. 假名请求 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E4HAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="5. 详解示例 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E4HAC"&gt;5. 详解示例 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EQKAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="6. 其他示例 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EQKAC"&gt;6. 其他示例 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ETKAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="6.1. 无资源 STS " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ETKAC"&gt;6.1. 无资源 STS &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E2KAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="6.2. 第三方 STS " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E2KAC"&gt;6.2. 第三方 STS &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EELAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="6.3. 委派的资源访问 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EELAC"&gt;6.3. 委派的资源访问 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EQLAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="7. 安全性令牌 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EQLAC"&gt;7. 安全性令牌 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E4LAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="7.1. X.509v3 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#E4LAC"&gt;7.1. X.509v3 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EUMAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="7.2. Kerberos " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EUMAC"&gt;7.2. Kerberos &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EINAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="7.3. XrML " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EINAC"&gt;7.3. XrML &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EVOAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="7.4. SAML " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EVOAC"&gt;7.4. SAML &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ESPAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="9. 安全考虑事项 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#ESPAC"&gt;9. 安全考虑事项 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EXPAC"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="10. 致谢 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EXPAC"&gt;10. 致谢 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EDAAE"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" alt="11. 参考资料 " border="0" height="9" hspace="4" vspace="2" width="7" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#EDAAE"&gt;11. 参考资料 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;b&gt;版权声明&lt;/b&gt;&lt;/p&gt;&lt;p&gt;_ 2001-2003 &lt;a href="http://www.ibm.com/"&gt;International Business Machines Corporation&lt;/a&gt;, &lt;a href="http://www.microsoft.com/"&gt;Microsoft Corporation&lt;/a&gt;, &lt;a href="http://www.bea.com/framework.jsp?CNT=homepage_main.jsp&amp;amp;FP=/content"&gt;BEA Systems, Inc.&lt;/a&gt;, &lt;a href="http://www.rsasecurity.com/"&gt;RSA Security, Inc.&lt;/a&gt;, &lt;a href="http://www.verisign.com/"&gt;VeriSign, Inc.&lt;/a&gt;保留所有权利。 &lt;/p&gt;&lt;p&gt;如 果您在 WS-Federation：活动请求方规范的完整副本或您制作的部分副本中包含了以下内容，IBM、Microsoft、BEA Systems, Inc.、RSA Security, Inc. 和 VeriSign, Inc.（统称为“作者”）将据此授予您以任何媒介形式复制和公开 WS-Federation：活动请求方规范的权限，且不需要任何费用或特许权使用费： &lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;指向此处规范的链接或 URL&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;WS-Federation：活动请求方规范中所注明的版权声明。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;除了以上授予的版权许可证以外，作者没有明示或暗示地授予任何知识产权（包括他们拥有或控制的专利）的许可证。 &lt;/p&gt;&lt;p&gt;WS -Federation：活动请求方规范是“按原件”提供的，作者不作以下任何明示或暗示的陈述或担保：包括（但不限于）对适销性、特殊用途的适用性、无 侵权或所有权的担保；及担保 WS-Federation：活动请求方规范内容适用于任何用途，且这些内容的实施将不会侵犯任何第三方的专利、版权、商标或其他权利。 &lt;/p&gt;&lt;p&gt;作者将不对由于任何使用或分发 WS-Federation：活动请求方规范产生的（或与之相关的）任何直接、间接、特殊、偶然或必然的损失负责。 &lt;/p&gt;&lt;p&gt;WS-Federation：活动请求方规范在最终发布以前可能会发生变化，因此用户在使用此规范的内容时必须注意。&lt;/p&gt;&lt;p&gt;在获得明确的书面授权以前，不得以任何方式使用作者的名称和商标，包括与该规范或其内容相关的广告或宣传。WS-Federation：活动请求方规范的版权所有权任何时候都由作者保留。 &lt;/p&gt;&lt;p&gt;没有以暗示、禁止反言或其他方式授予其他权利。&lt;/p&gt;&lt;p&gt;&lt;b&gt;摘要&lt;/b&gt;&lt;/p&gt;&lt;p&gt;此规范定义了活动请求方（如支持 SOAP 的应用程序）如何使用 WS-Federation 中定义的交叉信任领域身份、身份验证和授权联合机制。 &lt;/p&gt;&lt;p&gt;&lt;b&gt;模块结构&lt;/b&gt;&lt;/p&gt;&lt;p&gt;通 过使用 XML、SOAP 和 WSDL 可扩展模型，各种 WS* 规范旨在通过互相组合来提供丰富的 Web 服务环境。WS-Federation：活动请求方自身不为 Web 服务提供完整的安全解决方案。WS-Federation：活动请求方是一个用于与其他 Web 服务和应用程序特定的协议结合使用的构造块，以适应各种各样的安全模型。 &lt;/p&gt;&lt;p&gt;&lt;b&gt;状态&lt;/b&gt;&lt;/p&gt;&lt;p&gt;此 WS-Federation 活动请求方规范是最初公开的草拟版，仅作为查看和评估用。BEA、IBM、Microsoft、RSA Security 和 VeriSign 希望在不远的将来能征求您的稿件和建议。BEA、IBM、Microsoft、RSA Security 和 VeriSign 不以任何方式做出关于此规范的担保或陈述。 &lt;/p&gt;&lt;p&gt;&lt;b&gt;目录&lt;/b&gt;&lt;/p&gt;&lt;a name="EDE"&gt;&lt;/a&gt;&lt;h2&gt;1. 引言 &lt;/h2&gt;&lt;p&gt;WS-Federation 规范定义了一种联合不同信任领域间的身份、身份验证和授权的集成模型。该规范定义了如何将联合模型应用于活动请求方（如 SOAP 应用程序）。 &lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EGE"&gt;&lt;/a&gt;&lt;h2&gt;1.1. 目标和需求 &lt;/h2&gt;&lt;p&gt;此规范的主要目标是定义对那些应用于活动请求方的身份、身份验证和授权信息进行联合的机制。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EJE"&gt;&lt;/a&gt;&lt;h2&gt;1.1.1 需求 &lt;/h2&gt;&lt;p&gt;以下列表指出了此规范的关键实施要求：&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;在活动请求方之间支持身份、身份验证和授权数据的共享&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;代理活动请求方环境中的信任和安全性令牌交换&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;活动请求方环境中身份信息和其他属性的可选隐藏或保护&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="ETE"&gt;&lt;/a&gt;&lt;h2&gt;1.1.2. 非目标 &lt;/h2&gt;&lt;p&gt;以下主题则不属本文档讨论的范围：&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;消息安全性或信任建立/验证协议的定义&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;新安全性令牌格式的规范&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="E2E"&gt;&lt;/a&gt;&lt;h2&gt;1.2. 标记约定 &lt;/h2&gt;&lt;p&gt;本 文档中的关键字“必须 (MUST)”、“绝不可以 (MUST NOT)”、“必需的 (REQUIRED)”、“将 (SHALL)”、“将不 (SHALL NOT)”、“应该 (SHOULD)”、“不应该 (SHOULD NOT)”、“推荐的 (RECOMMENDED)”、“可以 (MAY)”和“可选的 (OPTIONAL)”将按 &lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#active-client-profile_keywords"&gt;RFC 2119&lt;/a&gt; 中说明的进行解释。 &lt;/p&gt;&lt;p&gt;当描述抽象数据模型时，此规范使用 XML 信息集中使用的标记约定。具体来说，抽象属性名称始终出现在方括号中（如 [some property]）。 &lt;/p&gt;&lt;p&gt;当 描述具体的 XML 架构时，此规范使用 WS-Security 的标记约定。具体来说，元素的 [children] 或 [attributes] 属性的每个成员都是使用类似于 XPath 的标记（如 /x:MyHeader/x:SomeProperty/@value1）描述的。使用 {any} 说明存在元素通配符 (&lt;xs:any/&gt;)。使用 @{any} 说明存在属性通配符 (&lt;xs:anyattribute/&gt;)。 &lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EEF"&gt;&lt;/a&gt;&lt;h2&gt;1.3. 命名空间 &lt;/h2&gt;&lt;p&gt;本文档使用到以下命名空间：&lt;/p&gt;&lt;table class="dataTable" id="EHF" cellpadding="0" cellspacing="0"&gt;&lt;thead&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;td id="colEJF" width="18%"&gt;前缀&lt;/td&gt;&lt;td id="colENF" style="border-right: 1px solid rgb(204, 204, 204);" width="82%"&gt;命名空间&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr class="record" valign="top"&gt;&lt;td&gt;&lt;p class="lastInCell"&gt;S&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right: 1px solid rgb(204, 204, 204);"&gt;&lt;p class="lastInCell"&gt;&lt;a href="http://www.w3.org/2002/06/soap-envelope"&gt;http://www.w3.org/2002/06/soap-envelope&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;td&gt;&lt;p class="lastInCell"&gt;wsse&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right: 1px solid rgb(204, 204, 204);"&gt;&lt;p class="lastInCell"&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2003/07/secext"&gt;http://schemas.xmlsoap.org/ws/2003/07/secext&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="record" valign="top"&gt;&lt;td&gt;&lt;p class="lastInCell"&gt;wsu&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right: 1px solid rgb(204, 204, 204);"&gt;&lt;p class="lastInCell"&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2002/07/utility"&gt;http://schemas.xmlsoap.org/ws/2002/07/utility&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;td&gt;&lt;p class="lastInCell"&gt;wp&lt;/p&gt;&lt;/td&gt;&lt;td style="border-right: 1px solid rgb(204, 204, 204);"&gt;&lt;p class="lastInCell"&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2002/12/policy"&gt;http://schemas.xmlsoap.org/ws/2002/12/policy&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EOG"&gt;&lt;/a&gt;&lt;h2&gt;1.4. 术语 &lt;/h2&gt;&lt;p&gt;以下定义概述了本规范中的术语及用法。&lt;/p&gt;&lt;p&gt;&lt;b&gt;活动请求方&lt;/b&gt; － 联合中的&lt;i&gt;活动请求方&lt;/i&gt;是一个能发出（并接收）如 WS-Security 和 WS-Trust 中描述的 SOAP 消息的应用程序（可能是一个 Web 浏览器）。 &lt;/p&gt;&lt;p&gt;&lt;b&gt;声明&lt;/b&gt;&lt;b&gt; (Claim)&lt;/b&gt; － &lt;i&gt;声明&lt;/i&gt; 是实体所作的声明（如名称、标识、关键字、组、权限、功能、属性等）。&lt;/p&gt;&lt;p&gt;&lt;b&gt;安全性令牌&lt;/b&gt;&lt;b&gt; (Security Token)&lt;/b&gt; － &lt;i&gt;安全性令牌&lt;/i&gt; 表示声明的集合。 &lt;/p&gt;&lt;p&gt;&lt;b&gt;已签名安全性令牌&lt;/b&gt;&lt;b&gt; (Signed Security Token)&lt;/b&gt; – &lt;i&gt;已签名安全性令牌&lt;/i&gt; 是由特定的权威机构断言并加密签名的安全性令牌（如 X.509 证书或 Kerberos 票证）。&lt;/p&gt;&lt;p&gt;&lt;b&gt;所有权证明令牌&lt;/b&gt;&lt;b&gt; (Proof-of-Possession Token)&lt;/b&gt; － &lt;i&gt;所有权证明令牌&lt;/i&gt; 是一种包含发送方用来证明所有权证明数据的安全性令牌。一般情况下（但不是专有的），所有权证明信息是经过使用只有发送方和接收方才知道的密钥加密过的。&lt;/p&gt;&lt;p&gt;&lt;b&gt;摘要&lt;/b&gt;&lt;b&gt; (Digest)&lt;/b&gt; – &lt;i&gt;摘要&lt;/i&gt; 是八进制流的加密校验和。&lt;/p&gt;&lt;p&gt;&lt;b&gt;签名&lt;/b&gt;&lt;b&gt; (Signature)&lt;/b&gt; － &lt;i&gt;签名&lt;/i&gt; 是一个以某种方式使用加密算法计算并绑定到数据的值，且该数据的预期接收者可以使用此签名来验证数据在签名者签署它以后没有被修改。  &lt;/p&gt;&lt;p&gt;&lt;b&gt;安全性令牌服务&lt;/b&gt;&lt;b&gt; (STS)&lt;/b&gt; － &lt;i&gt;安全性令牌服务&lt;/i&gt; 是一种颁发安全性令牌的 Web 服务（请参看 WS-Security 和 WS-Trust）。也即 STS 基于证据对信任该 STS 的实体做出声明。若要传递信任，服务就需要证据，如某个安全性令牌或安全性令牌组，并且使用它自己的信任声明颁发一个安全性令牌（需要注意的是，对于某些 安全性令牌格式，这可能只需对原始令牌进行重颁发或共同签名）。这也形成了信任代理的基础。&lt;/p&gt;&lt;p&gt;&lt;b&gt;信任&lt;/b&gt;&lt;b&gt; (Trust)&lt;/b&gt; － &lt;i&gt;信任&lt;/i&gt; 是&lt;i&gt;一个实体希望依赖于第二方实体以预期的方式执行一组操作和&lt;/i&gt;&lt;i&gt;/&lt;/i&gt;&lt;i&gt;或对一组主题和&lt;/i&gt;&lt;i&gt;/&lt;/i&gt;&lt;i&gt;或范围做出一组断言的特性。&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;信任域&lt;/b&gt;&lt;b&gt;/&lt;/b&gt;&lt;b&gt;领域&lt;/b&gt;&lt;b&gt; (Trust Domain/Realm)&lt;/b&gt; － &lt;i&gt;信任域&lt;/i&gt;&lt;i&gt;/&lt;/i&gt;&lt;i&gt;领域&lt;/i&gt; 是一个安全性空间，其中的请求目标能够判断来自某个源的特定凭据集是否满足该目标的相关安全性策略。目标可以遵从对第三方的信任，这样，就可以将受信任的第三方包括到信任领域 (Trust Realm) 中。 &lt;/p&gt;&lt;p&gt;&lt;b&gt;直接信任&lt;/b&gt;&lt;b&gt; (Direct Trust)&lt;/b&gt; － &lt;i&gt;直接信任&lt;/i&gt; 是当依赖方将由请求方发送的令牌中的所有声明（或一些声明子集）作为 true 接受时的信任方式。&lt;/p&gt;&lt;p&gt;&lt;b&gt;直接代理信任&lt;/b&gt;&lt;b&gt; (Direct Brokered Trust)&lt;/b&gt; － &lt;i&gt;直接代理信任&lt;/i&gt; 是当一方在信任第二方，第二方依次信任或担保第三方时的信任方式。  &lt;/p&gt;&lt;p&gt;&lt;b&gt;间接代理信任&lt;/b&gt;&lt;b&gt; (Indirect Brokered Trust)&lt;/b&gt; － &lt;i&gt;间接代理信任&lt;/i&gt; 是直接代理信任的变体，第二方与第三方（或其他方）在其中进行协商，用于评估对第三方的信任的信任方式。&lt;/p&gt;&lt;p&gt;&lt;b&gt;签名验证&lt;/b&gt;&lt;b&gt; (Signature validation)&lt;/b&gt; － &lt;i&gt;签名验证&lt;/i&gt; 是验证接收的消息与发送的消息是否相同的过程。&lt;/p&gt;&lt;p&gt;&lt;b&gt;发送方身份验证&lt;/b&gt;&lt;b&gt; (Sender Authentication)&lt;/b&gt; － &lt;i&gt;发送方身份验证&lt;/i&gt; 是 Web 服务主角/角色之间的加强的身份验证，以指示 Web 服务消息（及其相关数据）的发送方。需要注意的是，如果存在身份验证的中介体，消息可能会有多个发送方。还要注意的是，如何判断谁是消息的第一创建人是依 应用程序而定的（且不属本文范围），因为消息发信方可能独立于或隐藏在身份验证发送方的后面。&lt;/p&gt;&lt;p&gt;&lt;b&gt;领域或域&lt;/b&gt;&lt;b&gt; (Realm or Domain)&lt;/b&gt; － &lt;i&gt;领域&lt;/i&gt; 或&lt;i&gt;域&lt;/i&gt; 表示安全性管理或信任的单个单元。&lt;/p&gt;&lt;p&gt;&lt;b&gt;联合&lt;/b&gt;&lt;b&gt; (Federation)&lt;/b&gt; － &lt;i&gt;联合&lt;/i&gt; 是由领域集合（至少两个）建立的受信任关系。信任的级别可能会变化，但通常包括身份验证，并可能包括授权。&lt;/p&gt;&lt;p&gt;&lt;b&gt;标识提供商&lt;/b&gt;&lt;b&gt; (Identity Provider)&lt;/b&gt; － &lt;i&gt;标识提供商&lt;/i&gt; 是一个担当针对终端请求方的对等实体身份验证服务，以及针对服务提供商的数据源身份验证服务（一般是安全性令牌服务的扩展）的实体。&lt;/p&gt;&lt;p&gt;&lt;b&gt;单一登录&lt;/b&gt;&lt;b&gt; (SSO)&lt;/b&gt; － &lt;i&gt;单一登录&lt;/i&gt; 是身份验证序列的优化，用以去除终端请求方面临的重复操作的负担。为了方便 SSO，被称作标识提供商 (Identity Provider) 的元素可以代表请求方担当一个代理，以向请求关于此请求方信息的第三方提供身份验证活动的证据。这些标识提供商是受信任的第三方，并且需要得到请求方（以 维护请求方身份信息，因为这些信息丢失可能会导致请求方身份的泄露）和 Web 服务双方的信任，Web 服务可能基于 IP 提供的身份信息的完整性授予对宝贵资源和信息的访问权限。&lt;/p&gt;&lt;p&gt;&lt;b&gt;标识映射&lt;/b&gt;&lt;b&gt; (Identity Mapping)&lt;/b&gt; － &lt;i&gt;标识映射&lt;/i&gt; 是一种创建身份属性之间关系的方法。一些标识提供商可能会利用 id 映像。&lt;/p&gt;&lt;p&gt;&lt;b&gt;注销&lt;/b&gt; － &lt;i&gt;注销&lt;/i&gt; 是主体表明它们将不再使用其令牌且领域中的服务可能破坏此主体令牌缓存的过程。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EEFAC"&gt;&lt;/a&gt;&lt;h2&gt;2. 模型 &lt;/h2&gt;&lt;p&gt;WS-Federation 规范定义了一个模型和消息集合，用于在不同信任领域间代理信任并联合身份和身份验证信息。本章描述了如何将该模型应用于活动请求方（如 Web 服务请求方）。&lt;/p&gt;&lt;p&gt;WS-Federation 中描述的联合模型构建于 WS-Security 和 WS-Trust 建立的基础之上。因此，此概要定义了在&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#active-client-profile_activerequestor"&gt;活动请求方&lt;/a&gt;上下文内请求、交换及颁发安全性令牌的机制。&lt;/p&gt;&lt;p&gt;此规范中定义的模型允许支持不同（但兼容）的消息交换。例如，资源可以担当它自己的安全性令牌服务 (STS)，而并不使用一个单独的服务（或甚至 URI），从而减少一些步骤。后续的概要有望定义成具有特定交换模式的特性。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="ENFAC"&gt;&lt;/a&gt;&lt;h2&gt;3.1. 单一登录 &lt;/h2&gt;&lt;p&gt;因为&lt;i&gt;活动请求方&lt;/i&gt; 能够发出它们自己的消息，所以它们可以利用 WS-Security、WS-Trust 和 WS-Federation 内定义的机制。  &lt;/p&gt;&lt;p&gt;在 高层次上，策略可以用来表明通信需求。请求方可以提前或通过错误响应从服务中获取策略。一般来说，在请求方对自身进行身份验证时，系统要求它们从其标识提 供商（或 STS）处获得安全性令牌（或令牌）。IP/STS 通过联合方生成一个供使用的安全性令牌。该过程是通过使用 WS-Trust 中定义的机制来完成的。有些情况下，目标服务担当它自己的 IP/STS，这使得无需与其他服务进行通信。否则，请求方可能需要从服务特定的或服务所需的标识提供商或安全性令牌服务处获得其他的安全性令牌。下图说 明了一种可能的流程。&lt;/p&gt;&lt;div style="width: 472px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig1.gif" alt=" " border="0" height="456" width="472" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;然而，以上示例并没有说明这点，即用于安全性令牌的 WS-Trust 消息可能包括对请求方的质询。有关其他信息，请参考 WS-Trust。  &lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="E2FAC"&gt;&lt;/a&gt;&lt;h2&gt;3.2. 注销 &lt;/h2&gt;&lt;p&gt;就像针对某个活动请求方登录不具代表性一样，它对&lt;i&gt;注销&lt;/i&gt; 也不具代表性。然而，对于那些需要注销的情况而言，则“可以”使用 WS-Federation 中定义的注销消息。 &lt;/p&gt;&lt;p&gt;在 需要联合注销消息的情况中，请求方的 IP/STS“应该”保持对其颁发令牌领域 — 特别是这些领域的 IP/STS（或资源，如果不同）的跟踪。当在请求方的 IP/STS 上接收注销时，此请求方的 IP/STS 就负责向有关方和授权方发出联合注销消息。发生此操作采用的确切机制取决于 IP/STS，但强烈“建议”使用 WS-Federation 中定义的注销消息。&lt;/p&gt;&lt;p&gt;当在某个领域中接收到联合的注销消息时，该领域“应该”清除所有的缓冲信息，并删除下图中说明的所有相关状态：&lt;/p&gt;&lt;div style="width: 463px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig2.gif" alt=" " border="0" height="240" width="463" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EJGAC"&gt;&lt;/a&gt;&lt;h2&gt;3.3. 属性 &lt;/h2&gt;&lt;p&gt;对于活动请求方，属性服务是通过 WS-Federation 中描述的 WS-Policy 进行标识的。Web 服务和其他授权方可以使用由特定属性服务定义的消息获得或者甚至更新属性。&lt;/p&gt;&lt;p&gt;下 图说明了一个由请求方向 Web 服务发出请求的情况。请求可能包括请求方的策略，或者可能已被缓存在服务中，或者请求方可能使用 WS-PolicyExchange。Web 服务向请求方的属性服务发出请求，以获得一些属性的值，WS-Policy 可以用来描述属性服务的位置。该服务被授权，属性即被返回。请求得到处理，并向请求方返回响应。&lt;/p&gt;&lt;div style="width: 386px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig3.gif" alt=" " border="0" height="287" width="386" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="ESGAC"&gt;&lt;/a&gt;&lt;h2&gt;3.4. 假名 (Pseudonym) &lt;/h2&gt;&lt;p&gt;对于活动请求方而言，假名服务是通过 WS-Federation 中描述的 WS-Policy 来标识的。服务和其他授权方可以使用 WS-Federation 中定义的消息来获取或管理假名。&lt;/p&gt;&lt;p&gt;下 图说明了请求方向某个 Web 服务发出请求的情况。该请求可能包括请求方的策略和请求方假名服务的位置，或它可能已被缓存在 Web 服务中。Web 服务向请求方的假名服务发出请求，以获取由安全性令牌授权的假名。授权此 Web 服务，假名即被返回。请求得到处理，并向请求方返回响应。&lt;/p&gt;&lt;div style="width: 386px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig4.gif" alt=" " border="0" height="298" width="386" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;如 WS-Federation 中所描述的，假名和 IP/STS 可以作为令牌颁发过程的一部分进行交互。下图说明了一种情况，其中，请求方先前已针对特定的领域关联了一个假名和安全性令牌。当请求方请求一个该域/领域 的安全性令牌时，系统就获得其假名和令牌，并返回给请求方。请求方就使用这些安全性令牌来访问 Web 服务。&lt;/p&gt;&lt;div style="width: 452px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig5.gif" alt=" " border="0" height="384" width="452" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EBHAC"&gt;&lt;/a&gt;&lt;h2&gt;4. 语法 &lt;/h2&gt;&lt;p&gt;此部分定义了以上模型中描述的联合机制的语法。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EEHAC"&gt;&lt;/a&gt;&lt;h2&gt;4.1. 请求安全性令牌 &lt;/h2&gt;&lt;p&gt;安全性令牌是使用 WS-Trust 规范中定义的 &lt;span class="codeSample"&gt;&lt;requestsecuritytoken&gt;&lt;/span&gt; 消息进行请求的。 &lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EKHAC"&gt;&lt;/a&gt;&lt;h2&gt;4.2. 返回安全性令牌 &lt;/h2&gt;&lt;p&gt;安全性令牌是使用 WS-Trust 规范中定义的 &lt;span class="codeSample"&gt;&lt;requestsecuritytokenresponse&gt;&lt;/span&gt; 消息进行返回的。 &lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EQHAC"&gt;&lt;/a&gt;&lt;h2&gt;4.3. 注销语法 &lt;/h2&gt;&lt;p&gt;显式的注销通知是使用 WS-Federation 规范中定义的 &lt;span class="codeSample"&gt;&lt;signout&gt;&lt;/span&gt; 消息执行的。 &lt;/p&gt;&lt;p&gt;同样地，联合的注销消息使用相同的消息元素。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EXHAC"&gt;&lt;/a&gt;&lt;h2&gt;4.4. 属性请求 &lt;/h2&gt;&lt;p&gt;属性是使用 WS-Federation 规范所描述的属性服务所特有的消息来进行请求和更新的。此规范并不强制使用特定的属性存储技术。 &lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="E1HAC"&gt;&lt;/a&gt;&lt;h2&gt;4.5. 假名请求 &lt;/h2&gt;&lt;p&gt;假名是使用 WS-Federation 规范中描述的消息和机制来进行请求和更新的。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="E4HAC"&gt;&lt;/a&gt;&lt;h2&gt;5. 详解示例 &lt;/h2&gt;&lt;p&gt;此部分提供了一个本规范中定义的协议的详解示例。确切流程可能会有很大不同；但是，以下图表和说明描述了一个&lt;i&gt;通用&lt;/i&gt; 的事件序列。  &lt;/p&gt;&lt;p&gt;在此情况中，活动请求方试图访问一个要求安全性身份验证要经过资源的安全性令牌服务进行验证的服务。&lt;/p&gt;&lt;div style="width: 450px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig6.gif" alt=" " border="0" height="468" width="450" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;步骤&lt;/b&gt;&lt;b&gt; 1&lt;/b&gt;：获取策略&lt;/p&gt;&lt;p&gt;如果请求方还没有服务策略，就可使用 WS-MetadataExchange 中定义的机制获取该策略。&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤&lt;/b&gt;&lt;b&gt; 2&lt;/b&gt;：返回策略&lt;/p&gt;&lt;p&gt;请求的策略是使用 WS-MetadataExchange 中定义的机制返回的。&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤&lt;/b&gt;&lt;b&gt; 3&lt;/b&gt;：请求安全性令牌&lt;/p&gt;&lt;p&gt;请求方使用 WS-Trust (&lt;span class="codeSample"&gt;&lt;requestsecuritytoken&gt;&lt;/span&gt;) 中定义的机制从它的 IP/STS 请求一个安全性令牌（假定是短期的安全性令牌）。&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤&lt;/b&gt;&lt;b&gt; 4&lt;/b&gt;：颁发安全性令牌&lt;/p&gt;&lt;p&gt;IP/STS 使用 WS-Trust（&lt;span class="codeSample"&gt;&lt;requestsecuritytokenresponse&gt; &lt;/span&gt;和 &lt;span class="codeSample"&gt;&lt;requestedprooftoken&gt;&lt;/span&gt;）中定义的机制返回一个安全性令牌（以及可选的所有权证明信息）。&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤&lt;/b&gt;&lt;b&gt; 5&lt;/b&gt;：请求安全性令牌&lt;/p&gt;&lt;p&gt;请求方使用 WS-Trust (&lt;span class="codeSample"&gt;&lt;requestsecuritytoken&gt;&lt;/span&gt;) 中定义的机制从用于目标 Web 服务的 Web 服务 IP/STS 请求安全性令牌。需要注意的是，这是通过策略或某个带外机制决定的。&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤&lt;/b&gt;&lt;b&gt; 6&lt;/b&gt;：颁发安全性令牌&lt;/p&gt;&lt;p&gt;Web 服务的 IP/STS 使用 WS-Trust (&lt;span class="codeSample"&gt;&lt;requestsecuritytokenresponse&gt;&lt;/span&gt;) 中定义的机制返回一个令牌（以及可选的所有权证明信息）。&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤&lt;/b&gt;&lt;b&gt; 7&lt;/b&gt;：发送安全的请求&lt;/p&gt;&lt;p&gt;请求方使用 WS-Security 中描述的颁发令牌向附加并保护此消息的服务发送请求。&lt;/p&gt;&lt;p&gt;&lt;b&gt;步骤&lt;/b&gt;&lt;b&gt; 8&lt;/b&gt;：返回结果&lt;/p&gt;&lt;p&gt;服务使用它的安全性令牌发出一个安全回复。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EQKAC"&gt;&lt;/a&gt;&lt;h2&gt;6. 其他示例 &lt;/h2&gt;&lt;p&gt;本部分描述了其他活动请求方情况的交互式图表。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="ETKAC"&gt;&lt;/a&gt;&lt;h2&gt;6.1. 无资源 STS &lt;/h2&gt;&lt;p&gt;下图说明了以上的资源访问情况，但没有资源 STS。也即 Web 服务担当它自己的 STS：&lt;/p&gt;&lt;div style="width: 369px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig7.gif" alt=" " border="0" height="373" width="369" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="E2KAC"&gt;&lt;/a&gt;&lt;h2&gt;6.2. 第三方 STS &lt;/h2&gt;&lt;p&gt;下图说明了以上的资源访问情况，但信任是通过第三方 STS 代理的：&lt;/p&gt;&lt;div style="width: 462px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig8.gif" alt=" " border="0" height="564" width="462" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;需要注意的是，第三方 IP/STS 是通过策略或某个带外机制决定的。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EELAC"&gt;&lt;/a&gt;&lt;h2&gt;6.3. 委派的资源访问 &lt;/h2&gt;&lt;p&gt;下图说明了某个资源代表第一方资源访问来自另一方资源的数据：&lt;/p&gt;&lt;div style="width: 386px;"&gt;&lt;img src="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/art/ws-federation-active-fig9.gif" alt=" " border="0" height="328" width="386" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;本示例中，请求方使用 WS-Trust 中定义的 &lt;span class="codeSample"&gt;&lt;requestsecuritytokenresponse&gt;&lt;/span&gt; 颁发步骤 1 中的委派令牌。这就向 Web 服务 1 提供了必要的信息，使 Web 服务 1 在与 Web 服务 2 联系时能够代表请求方。 &lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EQLAC"&gt;&lt;/a&gt;&lt;h2&gt;7. 安全性令牌 &lt;/h2&gt;&lt;p&gt;当接受到安全性令牌时，接收者“应该”：&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;验证令牌是否经正确格式化&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;验证 STS 签名&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;验证令牌有效性时间间隔&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;验证策略请求的属性，如所需的身份验证类型、从身份验证时刻起的最大时间（如密码必须在 1 个小时以内提交），以及身份属性等。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;本章描述了特定于令牌格式的需求，但并不强制特定令牌类型的用法。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="E4LAC"&gt;&lt;/a&gt;&lt;h2&gt;7.1. X.509v3 &lt;/h2&gt;&lt;p&gt;此规范对 X.509 令牌设置了以下要求：&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;除使用安全通道来传递令牌之外，令牌“必须”在整个令牌期间包含颁发机构的名称和颁发机构的签名。也即通过各断言的签名元素。需要注意的是，“建议”使用签名，即使是使用安全通道也是如此。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;令牌“必须”包含主题标识符，以唯一地标识出被授予此令牌的主题。X.509 并不指定 &lt;span class="codeSample"&gt;Principal&lt;/span&gt; 字段的规则。遵守此规范的 X.509 令牌“应该”确保颁发的主体在各领域中是唯一的，并且该领域“应该”从主体名称中派生出来。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;令牌“可以”包含初始身份验证的时间、有效性时间间隔以及执行的身份验证类型。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;令牌“可以”包含证书吊销信息 (Certificate Revocation Information)，如 CRL 分发点 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;X.509 证书“必须”携带在 &lt;span class="codeSample"&gt;wsse:BinarySecurityToken&lt;/span&gt; 元素（它的 ValueType 是 &lt;span class="codeSample"&gt;wsse:X509v3&lt;/span&gt;）内。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EUMAC"&gt;&lt;/a&gt;&lt;h2&gt;7.2. Kerberos &lt;/h2&gt;&lt;p&gt;此规范对 Kerberos 令牌设置了以下要求&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;Kerberos 票证授权的票证“必须”携带在 &lt;span class="codeSample"&gt;wsse:BinarySecurityToken&lt;/span&gt; 元素（它的 ValueType 是 &lt;span class="codeSample"&gt;wsse:Kerberosv5TGT&lt;/span&gt;）内。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;Kerberos 服务票证“必须”携带在 &lt;span class="codeSample"&gt;wsse:BinarySecurityToken&lt;/span&gt; 元素（它的 ValueType 是 &lt;span class="codeSample"&gt;wsse:Kerberosv5ST&lt;/span&gt;）内。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;使用的对称密钥“应该”从所需领域中派生出来。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EINAC"&gt;&lt;/a&gt;&lt;h2&gt;7.3. XrML &lt;/h2&gt;&lt;p&gt;此规范对 XrML 令牌设置了以下要求：&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;处理器“必须”支持带或不带包含的签名的 &lt;span class="codeSample"&gt;xrml:issuer&lt;/span&gt; 元素。除非 &lt;span class="codeSample"&gt;xrml:license&lt;/span&gt; 传送密钥（直接或间接），否则处理器“不应”包含所含的签名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;包含一个或多个 &lt;span class="codeSample"&gt;xrml:issuer&lt;/span&gt; 元素中签名的令牌“必须”声明 &lt;span class="codeSample"&gt;xrml:license&lt;/span&gt; 元素上的所有 XML 命名空间。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;处理器“必须”包括一个用于标识 &lt;span class="codeSample"&gt;xrml:details&lt;/span&gt; 下颁发者的 &lt;span class="codeSample"&gt;xrml:issuer&lt;/span&gt; 元素。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;当 &lt;span class="codeSample"&gt;xrml:license&lt;/span&gt; 令牌传送密钥（直接或间接）时，处理器“必须”在 &lt;span class="codeSample"&gt;xrml:issuer&lt;/span&gt; 元素内包含一个 &lt;span class="codeSample"&gt;xrml:validityInterval&lt;/span&gt;。&lt;span class="codeSample"&gt;xrml:validityInterval&lt;/span&gt;“必须”同时包含 &lt;span class="codeSample"&gt;xrml:notBefore&lt;/span&gt; 和 &lt;span class="codeSample"&gt;xrml:notAfter&lt;/span&gt; 元素。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;令牌“应该”包含指示使用范围（如资源或领域）的接收者标识符 — 这是通过 &lt;span class="codeSample"&gt;grant resource&lt;/span&gt; 表示的，并且默认假定使用了此领域。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EVOAC"&gt;&lt;/a&gt;&lt;h2&gt;7.4. SAML &lt;/h2&gt;&lt;p&gt;此规范对 SAML 令牌设置了以下要求：&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;除非是使用安全通道传递该令牌，否则令牌“必须”包含颁发机构在整个令牌期间的签名。也即通过 SAML 断言的签名元素。需要注意的是，“建议”使用签名，即使是使用安全通道也是如此。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;令牌“必须”包含主题标识符，以唯一地标识出被授予此令牌的主题。SAML 并不指定 &lt;span class="codeSample"&gt;NameIdentifier&lt;/span&gt; 元素的规则。遵守此规范的 SAML 断言“应该”确保颁发的标识符在各领域中是唯一的，并且该领域“应该”从主题标识符中派生出来。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;令牌“应该”包含指示使用范围（如资源或领域）的接收者标识符 — SAML 断言中的 &lt;span class="codeSample"&gt;AudienceRestriction&lt;/span&gt; 或 &lt;span class="codeSample"&gt;Recipient&lt;/span&gt; 元素。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;令牌“必须”包含初始身份验证的时间、有效性时间间隔以及执行的身份验证类型。SAML 断言中的有效性时间间隔是通过 Conditions 元素的 &lt;span class="codeSample"&gt;NotBefore&lt;/span&gt; 和 &lt;span class="codeSample"&gt;NotOnOrAfter&lt;/span&gt; 属性来满足的。初始身份验证类型和时间是通过 &lt;span class="codeSample"&gt;AuthenticationStatement&lt;/span&gt; 元素的属性来包含的。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="listBullet" valign="top"&gt;•&lt;/td&gt;&lt;td class="listItem"&gt;&lt;p&gt;令牌“可以”包含其他的标识信息。如果包含了其他信息，则描述这些其他信息的架构“必须”能被接收者所理解，否则，该令牌“必须”被拒绝。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="ESPAC"&gt;&lt;/a&gt;&lt;h2&gt;9. 安全考虑事项 &lt;/h2&gt;&lt;p&gt;本部分概述了未在 WS-Federation 和其他 Web 服务安全性规范中指出的安全考虑事项。&lt;/p&gt;&lt;p&gt;如果安全性令牌不是自我保护的，它就“应该”被包括在某种形式的消息完整性机制（如 WS-Security 中说明的机制）中。&lt;/p&gt;&lt;p&gt;如果涉及到隐私，则“可以”使用 WS-Security 中描述的机制，为授权的接收者加密安全性令牌。&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EXPAC"&gt;&lt;/a&gt;&lt;h2&gt;10. 致谢 &lt;/h2&gt;&lt;p&gt;此规范的制订是许多个人和团体共同努力的结果，包括：&lt;/p&gt;&lt;p&gt;Tim Hahn，IBM&lt;/p&gt;&lt;p&gt;Heather Hinton，IBM&lt;/p&gt;&lt;p&gt;Bronislav Kavsan，RSA Security&lt;/p&gt;&lt;p&gt;Anthony Moran，IBM&lt;/p&gt;&lt;p&gt;Robert Philpott，RSA Security&lt;/p&gt;&lt;p&gt;Yordan Rouskov，Microsoft&lt;/p&gt;&lt;p&gt;Shane Weeden，IBM&lt;/p&gt;&lt;p&gt;Jeff Spelman，Microsoft&lt;/p&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;&lt;img src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" alt="返回页首" border="0" height="9" width="7" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/WS-Federation.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EDAAE"&gt;&lt;/a&gt;&lt;h2&gt;11. 参考资料 &lt;/h2&gt;&lt;p&gt;&lt;b&gt;[&lt;/b&gt;&lt;b&gt;关键字&lt;/b&gt;&lt;b&gt;] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;S. Bradner，Key Words for Use in RFCs to Indicate Requirement Levels， &lt;a href="http://www.ietf.org/rfc/rfc2119.txt"&gt;RFC 2119&lt;/a&gt;，Harvard University，1997 年 3 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[SOAP] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;W3C 纪要， &lt;a href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/"&gt;SOAP:Simple Object Access Protocol 1.1&lt;/a&gt;，2000 年 5 月 8 日。&lt;/p&gt;&lt;p&gt;SOAP 1.2，草案 &lt;a href="http://www.w3.org/TR/soap12-part0/"&gt;http://www.w3.org/TR/soap12-part0/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;SOAP 1.2，草案 &lt;a href="http://www.w3.org/TR/soap12-part1/"&gt;http://www.w3.org/TR/soap12-part1/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;SOAP 1.2，草案 &lt;a href="http://www.w3.org/TR/soap12-part2/"&gt;http://www.w3.org/TR/soap12-part2/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;[URI] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;T. Berners-Lee、R. Fielding 和 L. Masinter，Uniform Resource Identifiers (URI):Generic Syntax， &lt;a href="http://www.ietf.org/rfc/rfc2396.txt"&gt;RFC 2396&lt;/a&gt;，MIT/LCS、U.C. Irvine、Xerox Corporation，1998 年 8 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[WS-Federation] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2003/07/ws-federation/"&gt;Web Services Federation Language&lt;/a&gt;，BEA、IBM、Microsoft、RSA Security 和 VeriSign，2003 年 7 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[WS-Security] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/04/Security/"&gt;Web Services Security Language&lt;/a&gt;，IBM、Microsoft 和 VeriSign，2002 年 4 月。&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/07/Security/"&gt;WS-Security Addendum&lt;/a&gt;，IBM、Microsoft 和 VeriSign，2002 年 8 月。&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/08/Security/XMLTokens/"&gt;WS-Security XML Tokens&lt;/a&gt;，IBM、Microsoft 和 VeriSign，2002 年 8 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[WS-Policy] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/12/Policy/"&gt;Web Services Policy Framework&lt;/a&gt;，BEA、IBM、Microsoft 和 SAP，2002 年 12 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[WS-PolicyAttachment] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/12/PolicyAttachment/"&gt;Web Services Policy Attachment Language&lt;/a&gt;，BEA、IBM、Microsoft 和 SAP，2002 年 12 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[WS-PolicyAssertions] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/12/PolicyAssertions/"&gt;Web Services Policy Assertions Language&lt;/a&gt;，BEA、IBM、Microsoft 和 SAP，2002 年 12 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[WS-Trust] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/12/ws-trust/"&gt;Web Services Trust Language&lt;/a&gt;，IBM、Microsoft、RSA 和 VeriSign，2002 年 12 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[WS-SecureConversation] &lt;/b&gt;&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/12/ws-secure-conversation/"&gt;Web Services Secure Conversation Language&lt;/a&gt;，IBM、Microsoft、RSA 和 VeriSign，2002 年 12 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[WS-SecurityPolicy]&lt;/b&gt;&lt;/p&gt;&lt;p&gt;"&lt;a href="http://msdn.microsoft.com/ws/2002/12/ws-security-policy/"&gt;Web Services Security Policy Language&lt;/a&gt;，IBM、Microsoft、RSA 和 VeriSign，2002 年 12 月。&lt;/p&gt;&lt;p&gt;&lt;b&gt;[XML-ns]&lt;/b&gt;&lt;/p&gt;&lt;p&gt;W3C 推荐，&lt;a href="http://www.w3.org/TR/1999/REC-xml-names-19990114"&gt;Namespaces in XML&lt;/a&gt;，1999 年 1 月 14 日。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-4110917472494722742?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/4110917472494722742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=4110917472494722742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4110917472494722742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/4110917472494722742'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/ws-federation.html' title='WS-Federation：活动请求方概要'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-102293162458256160</id><published>2008-04-02T08:25:00.000-07:00</published><updated>2008-04-02T08:26:14.780-07:00</updated><title type='text'>WS-Federation: Active Requestor Profile</title><content type='html'>&lt;div class="majorTitle" msxsl="urn:schemas-microsoft-com:xslt"&gt;Global XML Web Services Specifications&lt;/div&gt;&lt;div class="title" msxsl="urn:schemas-microsoft-com:xslt"&gt;WS-Federation: Active Requestor Profile&lt;/div&gt;&lt;!--Content type: PSDK_8. Transform: msdneditorial2mtps.xslt.--&gt;&lt;a name="grfws-federationactiverequestorprofile"&gt;&lt;!----&gt;&lt;/a&gt;    &lt;p&gt; &lt;/p&gt; &lt;b&gt;Version 1.0&lt;br /&gt;July 8, 2003&lt;/b&gt; &lt;h4 class="dtH1"&gt;Authors &lt;/h4&gt; &lt;blockquote class="dtBlock"&gt; Siddharth Bajaj, VeriSign&lt;br /&gt;Giovanni Della-Libera, Microsoft&lt;br /&gt;Brendan Dixon, Microsoft&lt;br /&gt;Maryann Hondo, IBM&lt;br /&gt;Matt Hur, Microsoft&lt;br /&gt;Chris Kaler (Editor), Microsoft&lt;br /&gt;Hal Lockhart, BEA&lt;br /&gt;Hiroshi Maruyama, IBM&lt;br /&gt;Anthony Nadalin (Editor), IBM&lt;br /&gt;Nataraj Nagaratnam, IBM&lt;br /&gt;Andrew Nash, RSA Security&lt;br /&gt;Hemma Prafullchandra, VeriSign&lt;br /&gt;John Shewchuk, Microsoft &lt;/blockquote&gt; &lt;h2 class="dtH1"&gt;Copyright Notice&lt;/h2&gt; &lt;p&gt;© 2001-2003 &lt;a id="ctl00_rs1_mainContentContainer_ctl01" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl01',this);" href="http://www.ibm.com/"&gt;International Business Machines Corporation&lt;/a&gt;, &lt;a id="ctl00_rs1_mainContentContainer_ctl02" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl02',this);" href="http://www.microsoft.com/"&gt;Microsoft Corporation&lt;/a&gt;, &lt;a id="ctl00_rs1_mainContentContainer_ctl03" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl03',this);" href="http://www.bea.com/framework.jsp?CNT=homepage_main.jsp&amp;amp;FP=/content"&gt;BEA Systems, Inc.&lt;/a&gt;, &lt;a id="ctl00_rs1_mainContentContainer_ctl04" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl04',this);" href="http://www.rsasecurity.com/"&gt;RSA Security, Inc.&lt;/a&gt;, &lt;a id="ctl00_rs1_mainContentContainer_ctl05" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl05',this);" href="http://www.verisign.com/"&gt;VeriSign, Inc.&lt;/a&gt; All rights reserved.&lt;/p&gt; &lt;p&gt;IBM, Microsoft, BEA Systems, Inc., RSA Security, Inc., VeriSign, Inc. (collectively, the "Authors") hereby grant you permission to copy and display the WS-Federation: Active Requestor Specification, in any medium without fee or royalty, provided that you include the following on ALL copies of the WS-Federation: Active Requestor Specification, or portions thereof, that you make: &lt;/p&gt;&lt;ol type="1"&gt;&lt;li&gt;A link or URL to the Specification at this location&lt;/li&gt;&lt;li&gt;      The copyright notice as shown in the WS-Federation: Active Requestor Specification.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;EXCEPT FOR THE COPYRIGHT LICENSE GRANTED ABOVE, THE AUTHORS DO NOT GRANT, EITHER EXPRESSLY OR IMPLIEDLY, A LICENSE TO ANY INTELLECTUAL PROPERTY, INCLUDING PATENTS, THEY OWN OR CONTROL.&lt;/p&gt; &lt;p&gt;THE WS-Federation: Active Requestor SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE WS-Federation: Active Requestor SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.&lt;/p&gt; &lt;p&gt;THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE WS-Federation: Active Requestor SPECIFICATION.&lt;/p&gt; &lt;p&gt;The WS-Federation: Active Requestor Specification may change before final release and you are cautioned against relying on the content of this specification.&lt;/p&gt; &lt;p&gt;The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to the Specification or its contents without specific, written prior permission. Title to copyright in the WS-Federation: Active Requestor Specification will at all times remain with the Authors.&lt;/p&gt; &lt;p&gt;No other rights are granted by implication, estoppel or otherwise.&lt;/p&gt; &lt;h2 class="dtH1"&gt;Abstract &lt;/h2&gt; &lt;p&gt;This specification defines how the cross trust realm identity, authentication and authorization federation mechanisms defined in WS-Federation are used by active requestors such as SOAP-enabled applications.&lt;/p&gt; &lt;h2 class="dtH1"&gt;Modular Architecture &lt;/h2&gt; &lt;p&gt;By using the XML, SOAP and WSDL extensibility models, the WS* specifications are designed to be composed with each other to provide a rich Web services environment. WS-Federation: Active Requestor by itself does not provide a complete security solution for Web services. WS-Federation: Active Requestor is a building block that is used in conjunction with other Web service and application-specific protocols to accommodate a wide variety of security models.&lt;/p&gt; &lt;h2 class="dtH1"&gt;Status&lt;/h2&gt; &lt;p class="normal"&gt;This WS-Federation Active Requestor Specification is an initial public draft release and is provided for review and evaluation only. BEA, IBM, Microsoft, RSA Security and VeriSign hope to solicit your contributions and suggestions in the near future. BEA, IBM, Microsoft, RSA Security and VeriSign make no warrantees or representations regarding the specifications in any manner whatsoever.&lt;/p&gt; &lt;h2 class="dtH1"&gt;Table of Contents &lt;/h2&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009780"&gt;1. Introduction&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009781"&gt;1.1. Goals and Requirements&lt;/a&gt;&lt;/p&gt; &lt;p&gt;      &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009782"&gt;1.1.1 Requirements&lt;/a&gt;&lt;/p&gt; &lt;p&gt;      &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009783"&gt;1.1.2. Non-Goals&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009784"&gt;1.2. Notational Conventions&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009785"&gt;1.3. Namespaces&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009786"&gt;1.4. Terminology&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009787"&gt;2. Model&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009788"&gt;3.1. Single Sign On&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009789"&gt;3.2. Sign-Out&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009790"&gt;3.3. Attributes&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009791"&gt;3.4. Pseudonyms&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009792"&gt;4. Syntax&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009793"&gt;4.1. Requesting Security Tokens&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009794"&gt;4.2. Returning Security Tokens&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009795"&gt;4.3. Sign-Out Syntax&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009796"&gt;4.4. Attribute Requests&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009797"&gt;4.5. Pseudonym Requests&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009798"&gt;5. Detailed Example&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009799"&gt;6. Additional Examples&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009800"&gt;6.1. No Resource STS&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009801"&gt;6.2. 3rd-Party STS&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009802"&gt;6.3. Delegated Resource Access&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009803"&gt;7. Security Tokens&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009804"&gt;7.1. X.509v3&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009805"&gt;7.2. Kerberos&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009806"&gt;7.3. XrML&lt;/a&gt;&lt;/p&gt; &lt;p&gt;   &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009807"&gt;7.4. SAML&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009808"&gt;8. Error Handling&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009809"&gt;9. Security Considerations&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009810"&gt;10. Acknowledgements&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile__toc45009811"&gt;11. References&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a name="active-client-profile_tocrange"&gt;&lt;!----&gt;&lt;/a&gt;&lt;/p&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009780"&gt;&lt;!----&gt;&lt;/a&gt;1. Introduction&lt;/h2&gt; &lt;p&gt;The WS-Federation specification defines an integrated model for federating identity, authentication and authorization across different trust realmss. This specification defines how the federation model is applied to active requestors such as SOAP applications.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009781"&gt;&lt;!----&gt;&lt;/a&gt;1.1. Goals and Requirements&lt;/h3&gt; &lt;p&gt;The primary goal of this specification is to define mechanisms for federation of identity, authentication, and authorization information as applied to active requestors. &lt;/p&gt; &lt;h4 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009782"&gt;&lt;!----&gt;&lt;/a&gt;1.1.1 Requirements&lt;/h4&gt; &lt;p&gt;The following list identifies the key driving requirements for this specification:   &lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;Enable sharing of identity, authentication, and authorization data between and through active requestors&lt;/li&gt;&lt;li&gt;Brokering of trust and security token exchange in a active requestor environment&lt;/li&gt;&lt;li&gt;Optional hiding or protection  of identity information and other attributes in a active requestor environment&lt;/li&gt;&lt;/ul&gt; &lt;h4 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009783"&gt;&lt;!----&gt;&lt;/a&gt;1.1.2. Non-Goals&lt;/h4&gt; &lt;p&gt;The following topics are outside the scope of this document:  &lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;Definition of message security or trust establishment/verification protocols&lt;/li&gt;&lt;li&gt;Specification of new security token formats&lt;/li&gt;&lt;/ul&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009784"&gt;&lt;!----&gt;&lt;/a&gt;1.2. Notational Conventions&lt;/h3&gt; &lt;p&gt;The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in &lt;a name="active-client-profile__hlt34402002"&gt;&lt;!----&gt;&lt;/a&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile_keywords"&gt;RFC 2119&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;When describing abstract data models, this specification uses the notational convention used by the XML Infoset. Specifically, abstract property names always appear in square brackets (e.g., [some property]).&lt;/p&gt; &lt;p&gt;When describing concrete XML schemas, this specification uses the notational convention of WS-Security. Specifically, each member of an element's [children] or [attributes] property is described using an XPath-like notation (e.g., /x:MyHeader/x:SomeProperty/@value1). The use of {any} indicates the presence of an element wildcard (&lt;xs:any/&gt;). The use of @{any} indicates the presence of an attribute wildcard (&lt;xs:anyattribute/&gt;).&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009785"&gt;&lt;!----&gt;&lt;/a&gt;1.3. Namespaces&lt;/h3&gt; &lt;p&gt;The following namespaces are used in this document:&lt;/p&gt; &lt;div class="tablediv"&gt;&lt;table class="dtTABLE"&gt; &lt;tbody&gt;&lt;tr valign="top"&gt; &lt;th width="18%"&gt;Prefix&lt;/th&gt; &lt;th width="82%"&gt;Namespace&lt;/th&gt; &lt;/tr&gt; &lt;tr valign="top"&gt; &lt;td class="normal" width="18%"&gt;&lt;code class="ce"&gt;S&lt;/code&gt;&lt;/td&gt; &lt;td class="normal" width="82%"&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl06" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl06',this);" href="http://www.w3.org/2002/06/soap-envelope"&gt;http://www.w3.org/2002/06/soap-envelope&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top"&gt; &lt;td class="normal" width="18%"&gt;&lt;code class="ce"&gt;wsse&lt;/code&gt;&lt;/td&gt; &lt;td class="normal" width="82%"&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl07" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl07',this);" href="http://schemas.xmlsoap.org/ws/2003/07/secext"&gt;http://schemas.xmlsoap.org/ws/2003/07/secext&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top"&gt; &lt;td class="normal" width="18%"&gt;&lt;code class="ce"&gt;wsu&lt;/code&gt;&lt;/td&gt; &lt;td class="normal" width="82%"&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl08" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl08',this);" href="http://schemas.xmlsoap.org/ws/2002/07/utility"&gt;http://schemas.xmlsoap.org/ws/2002/07/utility&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top"&gt; &lt;td class="normal" width="18%"&gt;&lt;code class="ce"&gt;wp&lt;/code&gt;&lt;/td&gt; &lt;td class="normal" width="82%"&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl09" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl09',this);" href="http://schemas.xmlsoap.org/ws/2002/12/policy"&gt;http://schemas.xmlsoap.org/ws/2002/12/policy&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009786"&gt;&lt;!----&gt;&lt;/a&gt;1.4. Terminology&lt;/h3&gt; &lt;p&gt;The following definitions outline the terminology and usage in this specification.&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;a name="active-client-profile_claimdef"&gt;&lt;!----&gt;&lt;/a&gt;&lt;a name="active-client-profile_activerequestor"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b class="le"&gt;Active Requestor&lt;/b&gt;&lt;/b&gt; - An &lt;i&gt;active requestor &lt;/i&gt;in a Federation is an application (possibly a Web browser) that is capable of issuing (and receiving) SOAP messages such as those described in WS-Security and WS-Trust.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Claim&lt;/b&gt; - A &lt;i&gt;claim&lt;/i&gt; is a declaration made by an entity (e.g. name, identity, key, group, privilege, capability, attribute, etc).&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;a name="active-client-profile_securitytokendef"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b class="le"&gt;Security Token&lt;/b&gt;&lt;/b&gt; - A &lt;i&gt;security token&lt;/i&gt; represents a collection of claims. &lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Signed Security Token&lt;/b&gt; - A &lt;i&gt;signed security token&lt;/i&gt; is a security token that is asserted and cryptographically signed by a specific authority (e.g. an X.509 certificate or a Kerberos ticket)&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;a name="active-client-profile_popdef"&gt;&lt;!----&gt;&lt;/a&gt;&lt;a name="active-client-profile_digestdef"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b class="le"&gt;Proof-of-Possession Token&lt;/b&gt;&lt;/b&gt; - A &lt;i&gt;proof-of-possession token&lt;/i&gt; is a security token that contains data that a sending party can use to demonstrate proof-of-possession. Typically, although not exclusively, the proof-of-possession information is encrypted with a key known only to the sender and recipient parties.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Digest&lt;/b&gt; - A &lt;i&gt;digest&lt;/i&gt; is a cryptographic checksum of an octet stream.&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;a name="active-client-profile_signaturedef"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b class="le"&gt;Signature&lt;/b&gt;&lt;/b&gt; - A &lt;i&gt;signature&lt;/i&gt; is a value computed with a cryptographic algorithm and bound to data in such a way that intended recipients of the data can use the signature to verify that the data has not been altered since it was signed by the signer. &lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Security Token Service (STS)&lt;/b&gt; - A &lt;i&gt;security token service&lt;/i&gt; is a Web service that issues security tokens (see WS-Security and WS-Trust). That is, an STS makes claims based on evidence, to entities that trust the STS. To communicate trust, one service requires proof, such as a security token or set of security tokens, and issues a security token with its own trust statement (note that for some security token formats this can just be a re-issuance or co-signature on the original token). This forms the basis of trust brokering.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Trust&lt;/b&gt; - &lt;i&gt;Trust&lt;/i&gt; is&lt;i&gt; &lt;/i&gt;the characteristic that one entity is willing to rely upon a second entity to execute a set of actions and/or to make set of assertions about a set of subjects and/or scopes in a way that is expected.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Trust Domain/Realm&lt;/b&gt; - A &lt;i&gt;Trust DomainRealm&lt;/i&gt; is a security space in which the target of a request can determine whether particular sets of credentials from a source satisfy the relevant security policies of the target. The target may defer trust to a third party thus including the trusted third party in the Trust Realm. &lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Direct Trust&lt;/b&gt; - &lt;i&gt;Direct trust&lt;/i&gt; is when a relying party accepts as true all (or some subset of) the claims in the token sent by the requestor.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Direct Brokered Trust&lt;/b&gt; - &lt;i&gt;Direct Brokered Trust&lt;/i&gt; is when one party trusts a second party who, in turn, trusts or vouches for, a third party.  &lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Indirect Brokered Trust&lt;/b&gt; - &lt;i&gt;Indirect Brokered Trust&lt;/i&gt; is a variation on direct brokered trust where the second party negotiates with the third party, or additional parties, to assess the trust of the third party.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Signature validation&lt;/b&gt; - &lt;i&gt;Signature validation&lt;/i&gt; is the process of verifying that the message received is the same as the one sent.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Sender Authentication&lt;/b&gt; - &lt;i&gt;Sender authentication&lt;/i&gt; is corroborated authentication among Web service actors/roles indicating the sender of a Web service message (and its associated data). Note that it is possible that a message may nave multiple senders if authenticated intermediaries exist. Also note that it is application-dependent (and out of scope) as to how it is determined who first created the messages as the message originator might be independent of, or hidden behind an authenticated sender.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Realm or Domain&lt;/b&gt; - A &lt;i&gt;realm&lt;/i&gt; or &lt;i&gt;domain&lt;/i&gt; represents a single unit of security administration or trust.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Federation&lt;/b&gt; - A &lt;i&gt;federation&lt;/i&gt; is a trusted relationship established by a collection (at least two) of realms. The level of trust may vary, but typically includes authentication and may include authorization.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Identity Provider&lt;/b&gt; - &lt;i&gt;Identity Provider&lt;/i&gt; is an entity that acts as a peer entity authentication service to end requestors and data origin authentication service to service providers (this is typically an extension of a security token service)&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Single Sign On (SSO)&lt;/b&gt; - &lt;i&gt;Single Sign On&lt;/i&gt; is an optimization of the authentication sequence to remove the burden of repeating actions placed on the end requestor. To facilitate SSO, an element called an Identity Provider can act as a proxy on a requestor's behalf to provide evidence of authentication events to 3rd parties requesting information about the requestor. These Identity Providers are trusted 3rd parties and need to be trusted both by the requestor (to maintain the requestor's identity information as the loss of this information can result in the compromise of the requestors identity) and the Web services which may grant access to valuable resources and information based upon the integrity of the identity information provided by the IP.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Identity Mapping&lt;/b&gt; - &lt;i&gt;Identity Mapping&lt;/i&gt; is a method of creating relationships between identity properties. Some Identity Providers may make use of id mapping.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Sign-Out&lt;/b&gt; - A &lt;i&gt;sign-out&lt;/i&gt; is the process by which a principal indicates that they will no longer be using their token and services in the realm can destroy their token caches for the principal.&lt;/p&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009787"&gt;&lt;!----&gt;&lt;/a&gt;2. Model&lt;/h2&gt; &lt;p&gt;The WS-Federation specification defines a model and set of messages for brokering trust and federating identity and authentication information across different trust realms. This chapter presents how this model is applied to active requestors such as Web services requestors.&lt;/p&gt; &lt;p&gt;The federation model described in WS-Federation builds on the foundation established by WS-Security and WS-Trust. Consequently, this profile defines mechanisms for requesting, exchanging, and issuing security tokens within the context of &lt;a href="http://msdn2.microsoft.com/en-us/library/ms951221.aspx#active-client-profile_activerequestor"&gt;active requestors&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The model defined in this specification allows for support of different but compatible message exchanges. For example, the resource may act as its own security token service (STS) and does not use a separate service (or even URI) thereby eliminating some steps. It is expected that subsequent profiles will be defined to characterize specific exchange patterns.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009788"&gt;&lt;!----&gt;&lt;/a&gt;3.1. Single Sign On&lt;/h3&gt; &lt;p&gt;Since &lt;i&gt;active requestors&lt;/i&gt; are capable of issuing their own messages, they can make use of the mechanisms defined within WS-Security, WS-Trust, and WS-Federation. &lt;/p&gt; &lt;p&gt;At a high-level, policy is used to indicate communication requirements. Requestors can obtain the policy ahead of time or via error responses from services. In general, requestors are required to obtain a security token (or tokens) from their Identity Provider (or STS) when they authenticate themselves. The IP/STS generates a security token for use by the federated party. This is done using the mechanisms defined in WS-Trust. In some scenarios, the target service acts as its own IP/STS so communication with an additional service isn't required. Otherwise the requestor may be required to obtain additional security tokens from service-specific or service-required identity providers or security token services. The figure below illustrates one possible flow.&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig1%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;p&gt;While the example above doesn't illustrate this, it is possible that the WS-Trust messages for security tokens may involve challenges to the requestors. Refer to WS-Trust for additional information. &lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009789"&gt;&lt;!----&gt;&lt;/a&gt;3.2. Sign-Out&lt;/h3&gt; &lt;p&gt;Just as it isn't typical for an active requestor to sign-in, it isn't typical to &lt;i&gt;sign-out&lt;/i&gt; either.  However, for those scenarios where this is desirable, the sign-out messages defined in WS-Federation MAY be used. &lt;/p&gt; &lt;p&gt;In situations where federated sign-out messages are desirable, The requestor's IP/STS SHOULD keep track of the realms to which it has issued tokens - specifically the IP/STS for the realms (or resources if different). When the sign-out is received at the requestor's IP/STS, the requestor's IP/STS is responsible for issuing federated sign-out messages to interested and authorized parties. The exact mechanism by which this occurs is up to the IP/STS, but it is strongly RECOMMENDED that the sign-out messages defined in WS-Federation be used.&lt;/p&gt; &lt;p&gt;When a federated sign-out message is received at a realm, the realm SHOULD clean-up any cached information and delete any associated state as illustrated in the figure below:&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig2%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009790"&gt;&lt;!----&gt;&lt;/a&gt;3.3. Attributes&lt;/h3&gt; &lt;p&gt;For active requestors, attribute services are identified via WS-Policy as described in WS-Federation. Web services and other authorized parties can obtain or even update attributes using the messages defined by the specific attribute service.&lt;/p&gt; &lt;p&gt;The figure below illustrates a scenario where a requestor issues a request to a Web service. The request may include the requestor's policy or it may be already cached at the service or the requestor may use WS-PolicyExchange. The Web service issues a request to the requestor's attribute service to obtain the values of a few attributes, WS-Policy may be used to describe the location of the attribute service. The service is authorized so the attributes are returned. The request is processed and a response is returned to the requestor.&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig3%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009791"&gt;&lt;!----&gt;&lt;/a&gt;3.4. Pseudonyms&lt;/h3&gt; &lt;p&gt;For active requestors, pseudonym services are identified via WS-Policy as described in WS-Federation. Services and other authorized parties can obtain or manage pseudonyms using the messages defined in WS-Federation.&lt;/p&gt; &lt;p&gt;The figure below illustrates a scenario where a requestor issues a request to a Web service. The request may include the requestor's policy and the location of the requestor's pseudonym service or it may be already cached at the Web service. The Web service issues a request to the requestor's pseudonyms service to obtain the pseudonyms that are authorized by the security token. The Web service is authorized so the pseudonym is returned. The request is processed and a response is returned to the requestor.&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig4%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;p&gt;As described in WS-Federation, the pseudonym and IP/STS can interact as part of the token issuance process. The figure below illustrates a scenario where a requestor has previously associated a pseudonym and associated security token for a specific realm. When the requestor requests a security token to the domain/realm, the pseudonym and token are obtained and returned to the requestor. The requestor uses these security tokens for accessing the Web service.&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig5%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009792"&gt;&lt;!----&gt;&lt;/a&gt;4. Syntax&lt;/h2&gt; &lt;p&gt;This section defines the syntax for the federation mechanisms described in the model above.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009793"&gt;&lt;!----&gt;&lt;/a&gt;4.1. Requesting Security Tokens&lt;/h3&gt; &lt;p&gt;Security tokens are requested using the &lt;code class="ce"&gt;&lt;requestsecuritytoken&gt;&lt;/code&gt; message defined in the WS-Trust specification.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009794"&gt;&lt;!----&gt;&lt;/a&gt;4.2. Returning Security Tokens&lt;/h3&gt; &lt;p&gt;Security tokens are returned using the &lt;code class="ce"&gt;&lt;requestsecuritytokenresponse&gt;&lt;/code&gt; message defined in the WS-Trust specification.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009795"&gt;&lt;!----&gt;&lt;/a&gt;4.3. Sign-Out Syntax&lt;/h3&gt; &lt;p&gt;Explicit sign-out notification is performed using the &lt;code class="ce"&gt;&lt;signout&gt;&lt;/code&gt; message defined in the WS-Federation specification.&lt;/p&gt; &lt;p&gt;Similarly, federated sign-out messages use the same message element.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009796"&gt;&lt;!----&gt;&lt;/a&gt;4.4. Attribute Requests&lt;/h3&gt; &lt;p&gt;Attributes are requested and updated using messages specific to the attribute services as described in the WS-Federation Specification. This specification doesn't mandate a specific attribute store technology.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009797"&gt;&lt;!----&gt;&lt;/a&gt;4.5. Pseudonym Requests&lt;/h3&gt; &lt;p&gt;Pseudonyms are requested and updated using the messages and mechanisms described in the WS-Federation specification.&lt;/p&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009798"&gt;&lt;!----&gt;&lt;/a&gt;5. Detailed Example&lt;/h2&gt; &lt;p&gt;This section provides a detailed example of the protocol defined in this specification. The exact flow can vary significantly; however, the following diagram and description depict a &lt;i&gt;common&lt;/i&gt; sequence of events.  &lt;/p&gt; &lt;p&gt;In this scenario, an active requestor is attempting to access a service which requires security authentication to be validated by the resource's security token service.&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig6%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Step 1&lt;/b&gt;: Acquire Policy&lt;/p&gt; &lt;p&gt;If the requestor doesn't already have the policy for the service, it can obtain it using the mechanisms defined in WS-MetadataExchange.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Step 2&lt;/b&gt;: Return Policy&lt;/p&gt; &lt;p&gt;The requested policy is returned using the mechanisms defined in WS-MetadataExchange.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Step 3&lt;/b&gt;: Request Security Token&lt;/p&gt; &lt;p&gt;The requestor requests a security token from its IP/STS (assuming short-lived security tokens) using the mechanisms defined in WS-Trust (&lt;code class="ce"&gt;&lt;requestsecuritytoken&gt;&lt;/code&gt;)&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Step 4&lt;/b&gt;: Issue Security Token&lt;/p&gt; &lt;p&gt;The IP/STS returns a security token (and optional proof of possession information) using the mechanisms defined in WS-Trust (&lt;code class="ce"&gt;&lt;requestsecuritytokenresponse&gt; &lt;/code&gt;and &lt;code class="ce"&gt;&lt;requestedprooftoken&gt;&lt;/code&gt;)&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Step 5&lt;/b&gt;: Request Security Token&lt;/p&gt; &lt;p&gt;The requestor requests a security token from the Web services IP/STS for the target Web service using the mechanisms defined in WS-Trust (&lt;code class="ce"&gt;&lt;requestsecuritytoken&gt;&lt;/code&gt;).  Note that this is determined via policy or some out-of-band mechanism.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Step 6&lt;/b&gt;: Issue Security Token&lt;/p&gt; &lt;p&gt;The Web service's IP/STS returns a token (and optionally proof of possession information) using the mechanisms defined in WS-Trust (&lt;code class="ce"&gt;&lt;requestsecuritytokenresponse&gt;&lt;/code&gt;)&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Step 7&lt;/b&gt;: Send secured request&lt;/p&gt; &lt;p&gt;The requestor sends the request to the service attaching and securing the message using the issued tokens as described in WS-Security.&lt;/p&gt; &lt;p&gt;&lt;b class="le"&gt;Step 8&lt;/b&gt;: Return result&lt;/p&gt; &lt;p&gt;The service issues a secured reply using its security token.&lt;/p&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009799"&gt;&lt;!----&gt;&lt;/a&gt;6. Additional Examples&lt;/h2&gt; &lt;p&gt;This section presents interaction diagrams for additional active requestor scenarios.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009800"&gt;&lt;!----&gt;&lt;/a&gt;6.1. No Resource STS&lt;/h3&gt; &lt;p&gt;The figure below illustrates the resource access scenario above, but without a resource STS. That is, the Web service acts as its own STS:&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig7%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009801"&gt;&lt;!----&gt;&lt;/a&gt;6.2. 3&lt;sup&gt;rd&lt;/sup&gt;-Party STS&lt;/h3&gt; &lt;p&gt;The figure below illustrates the resource access scenario above, but trust is brokered through a 3rd-party STS:&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig8%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;p&gt;Note that 3&lt;sup&gt;rd&lt;/sup&gt;-Party IP/STS is determined via policy or some out-of-band mechanism.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009802"&gt;&lt;!----&gt;&lt;/a&gt;6.3. Delegated Resource Access&lt;/h3&gt; &lt;p&gt;The figure below illustrates where a resource access data from another resource on behalf of the first resource:&lt;/p&gt; &lt;p class="fig"&gt;&lt;img alt="" src="http://msdn2.microsoft.com/en-us/library/ms951221.ws-federation-active-fig9%28en-us,MSDN.10%29.gif" border="0" /&gt;&lt;/p&gt; &lt;p&gt;In this example, the requestor used a &lt;code class="ce"&gt;&lt;requestsecuritytokenresponse&gt;&lt;/code&gt; as defined in WS-Trust to issue the delegation token in Step 1. This provides to Web Service 1 the necessary information so that Web Service 1 can act on the requestor's behalf as it contacts Web Service 2.&lt;/p&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009803"&gt;&lt;!----&gt;&lt;/a&gt;7. Security Tokens&lt;/h2&gt; &lt;p&gt;When accepting security tokens, recipients SHOULD:  &lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;Verify the token is formatted correctly&lt;/li&gt;&lt;li&gt;Verify STS signature&lt;/li&gt;&lt;li&gt;Verify the token validity interval&lt;/li&gt;&lt;li&gt;Verify properties requested by policy such as required authentication type, maximum time since authentication instant (e.g. a password must have been submitted within 1 hour), identity properties etc.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This chapter describes token format-specific requirements but it does not mandate usage of a particular token type.&lt;/p&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009804"&gt;&lt;!----&gt;&lt;/a&gt;7.1. X.509v3&lt;/h3&gt; &lt;p&gt;This specification places the following requirements on X.509 tokens:  &lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;Tokens MUST contain the name of the issuing authority and a signature of the issuing authority over the whole token unless a secure channel is used to communicate the token. That is, a signature element over the assertions. Note that it is RECOMMENDED that a signature be used even if a secure channel is used.&lt;/li&gt;&lt;li&gt;Tokens MUST contain the subject identifier uniquely identifying the subject for whom the token was granted. X.509 does not specify rules for &lt;code class="ce"&gt;Principal&lt;/code&gt; field. X.509 tokens conformant with this specification SHOULD assure the principals issued are unique across realms and also the realm SHOULD be derivable from the principal name.&lt;/li&gt;&lt;li&gt;Tokens MAY contain the time of initial authentication, validity interval and the type of authentication that was performed. &lt;/li&gt;&lt;li&gt;Tokens MAY contains Certificate Revocation Information, such as a CRL distribution point&lt;/li&gt;&lt;li&gt;X.509 certificates MUST be carried within a &lt;code class="ce"&gt;wsse:BinarySecurityToken&lt;/code&gt; element whose ValueType is &lt;code class="ce"&gt;wsse:X509v3&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009805"&gt;&lt;!----&gt;&lt;/a&gt;7.2. Kerberos&lt;/h3&gt; &lt;p&gt;This specification places the following requirements on Kerberos tokens:  &lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;Kerberos ticket-granting tickets MUST be carried within a &lt;code class="ce"&gt;wsse:BinarySecurityToken&lt;/code&gt; element whose ValueType is &lt;code class="ce"&gt;wsse:Kerberosv5TGT&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Kerberos service tickets MUST be carried within a &lt;code class="ce"&gt;wsse:BinarySecurityToken&lt;/code&gt; element whose ValueType is &lt;code class="ce"&gt;wsse:Kerberosv5ST&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;The symmetric key used SHOULD be derived from the desired realm.&lt;/li&gt;&lt;/ul&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009806"&gt;&lt;!----&gt;&lt;/a&gt;7.3. XrML&lt;/h3&gt; &lt;p&gt;This specification places the following requirements on XrML tokens:  &lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;Processors that MUST support the &lt;code class="ce"&gt;xrml:issuer&lt;/code&gt; element with and without contained signatures. Processors SHOULD NOT include a contained signature unless the &lt;code class="ce"&gt;xrml:license&lt;/code&gt; conveys the key (directly or indirectly).&lt;/li&gt;&lt;li&gt;Tokens that contain signatures in one or more &lt;code class="ce"&gt;xrml:issuer&lt;/code&gt; elements MUST declare all XML namespaces on the &lt;code class="ce"&gt;xrml:license&lt;/code&gt; element.&lt;/li&gt;&lt;li&gt;Processors MUST include an &lt;code class="ce"&gt;xrml:issuer&lt;/code&gt; element identifying the issuer under &lt;code class="ce"&gt;xrml:details&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Processors MUST include within the &lt;code class="ce"&gt;xrml:issuer&lt;/code&gt; element an &lt;code class="ce"&gt;xrml:validityInterval&lt;/code&gt; when the &lt;code class="ce"&gt;xrml:license&lt;/code&gt; token conveys the key (directly or indirectly). The &lt;code class="ce"&gt;xrml:validityInterval&lt;/code&gt; MUST contain both &lt;code class="ce"&gt;xrml:notBefore&lt;/code&gt; and &lt;code class="ce"&gt;xrml:notAfter&lt;/code&gt; elements.&lt;/li&gt;&lt;li&gt;Tokens SHOULD contain a recipient identifier indicating the scope of usage (such as the resource or realm) - this is represented by &lt;code class="ce"&gt;grant resource&lt;/code&gt;, with the tacit assumption that the realm is used.&lt;/li&gt;&lt;/ul&gt; &lt;h3 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009807"&gt;&lt;!----&gt;&lt;/a&gt;7.4. SAML&lt;/h3&gt; &lt;p&gt;This specification places the following requirements for SAML tokens:  &lt;/p&gt;&lt;ul type="disc"&gt;&lt;li&gt;Tokens MUST contain a signature of the issuing authority over the whole token unless a secure channel is used to communicate the token. That is, a signature element over the SAML assertion. Note that it is RECOMMENDED that a signature be used even if a secure channel is used.&lt;/li&gt;&lt;li&gt;Tokens MUST contain the subject identifier uniquely identifying the subject for whom the token was granted. SAML does not specify rules for &lt;code class="ce"&gt;NameIdentifier&lt;/code&gt; element. The SAML assertions conformant with this specification SHOULD assure the identifiers issued are unique across realms and also the realm SHOULD be derivable from the subject identifier.&lt;/li&gt;&lt;li&gt;Tokens SHOULD contain a recipient identifier indicating the scope of usage (such as the resource or realm) - the &lt;code class="ce"&gt;AudienceRestriction&lt;/code&gt; or &lt;code class="ce"&gt;Recipient&lt;/code&gt; elements in the SAML assertion.&lt;/li&gt;&lt;li&gt;Tokens MUST contain the time of initial authentication, validity interval and the type of authentication that was performed. The validity interval in the SAML assertion is satisfied by the &lt;code class="ce"&gt;NotBefore&lt;/code&gt; and &lt;code class="ce"&gt;NotOnOrAfter&lt;/code&gt; attributes of the Conditions element. The initial authentication type and time are covered by the attributes of &lt;code class="ce"&gt;AuthenticationStatement&lt;/code&gt; element.&lt;/li&gt;&lt;li&gt;Tokens MAY contain additional identity information. If they do, the schema describing the additional information MUST be understood by the recipient or the token MUST be rejected.&lt;/li&gt;&lt;/ul&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009808"&gt;&lt;!----&gt;&lt;/a&gt;8. Error Handling&lt;/h2&gt; &lt;p&gt;Errors are handled using the mechanisms described in the WS-Security, WS-Trust, WS-Federation, and any referenced specifications. No additional error semantics or error codes are defined by this specification. &lt;/p&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009809"&gt;&lt;!----&gt;&lt;/a&gt;&lt;a name="active-client-profile__9._security_considerations"&gt;&lt;!----&gt;&lt;/a&gt;9. Security Considerations &lt;/h2&gt; &lt;p&gt;This section outlines security considerations beyond those identified in WS-Federation and other Web service security specifications.&lt;/p&gt; &lt;p&gt;If a security token is not self-securing, it SHOULD be included in some form of message integrity mechanism such as the mechanisms described in WS-Security.&lt;/p&gt; &lt;p&gt;If privacy is a concern, the security tokens MAY be encrypted for the authorized recipient(s) using the mechanisms described in WS-Security.&lt;/p&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009810"&gt;&lt;!----&gt;&lt;/a&gt;10. Acknowledgements&lt;/h2&gt; &lt;p&gt;This specification has been developed as a result of joint work with many individuals and teams, including:&lt;/p&gt; &lt;blockquote class="dtBlock"&gt; Tim Hahn, IBM&lt;br /&gt;Heather Hinton, IBM&lt;br /&gt;Bronislav Kavsan, RSA Security&lt;br /&gt;Anthony Moran, IBM&lt;br /&gt;Robert Philpott, RSA Security&lt;br /&gt;Yordan Rouskov, Microsoft&lt;br /&gt;Shane Weeden, IBM&lt;br /&gt;Jeff Spelman, Microsoft &lt;/blockquote&gt; &lt;h2 class="dtH1"&gt;&lt;a name="active-client-profile__toc45009811"&gt;&lt;!----&gt;&lt;/a&gt;11. References &lt;/h2&gt; &lt;dl&gt;&lt;dt&gt;&lt;a name="active-client-profile_keywords"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b&gt;[KEYWORDS]&lt;/b&gt; &lt;/dt&gt;&lt;dd&gt;S. Bradner, "Key Words for Use in RFCs to Indicate Requirement Levels", &lt;a id="ctl00_rs1_mainContentContainer_ctl10" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl10',this);" href="http://www.ietf.org/rfc/rfc2119.txt"&gt;RFC 2119&lt;/a&gt;, Harvard University, March 1997. &lt;/dd&gt;&lt;dt&gt;&lt;a name="active-client-profile_soap"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b&gt;[SOAP]&lt;/b&gt; &lt;/dt&gt;&lt;dd&gt;W3C Note, "&lt;a id="ctl00_rs1_mainContentContainer_ctl11" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl11',this);" href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/"&gt;SOAP: Simple Object Access Protocol 1.1&lt;/a&gt;", 08 May 2000.&lt;br /&gt;Draft, SOAP 1.2, &lt;a id="ctl00_rs1_mainContentContainer_ctl12" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl12',this);" href="http://www.w3.org/TR/soap12-part0/"&gt;http://www.w3.org/TR/soap12-part0/&lt;/a&gt;&lt;br /&gt;Draft, SOAP 1.2, &lt;a id="ctl00_rs1_mainContentContainer_ctl13" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl13',this);" href="http://www.w3.org/TR/soap12-part1/"&gt;http://www.w3.org/TR/soap12-part1/&lt;/a&gt;&lt;br /&gt;Draft, SOAP 1.2, &lt;a id="ctl00_rs1_mainContentContainer_ctl14" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl14',this);" href="http://www.w3.org/TR/soap12-part2/"&gt;http://www.w3.org/TR/soap12-part2/&lt;/a&gt;&lt;/dd&gt;&lt;dt&gt;&lt;a name="active-client-profile_uri"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b&gt;[URI]&lt;/b&gt; &lt;/dt&gt;&lt;dd&gt;T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax," &lt;a id="ctl00_rs1_mainContentContainer_ctl15" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl15',this);" href="http://www.ietf.org/rfc/rfc2396.txt"&gt;RFC 2396&lt;/a&gt;, MIT/LCS, U.C. Irvine, Xerox Corporation, August 1998.&lt;/dd&gt;&lt;dt&gt;&lt;b&gt;[WS-Federation]&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl16" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl16',this);" href="http://msdn.microsoft.com/ws/2003/07/ws-federation/"&gt;Web Services Federation Language&lt;/a&gt;", BEA, IBM, Microsoft, RSA Security, VeriSign, July 2003.&lt;/dd&gt;&lt;dt&gt;&lt;a name="active-client-profile_xmlencrypt"&gt;&lt;!----&gt;&lt;/a&gt;&lt;a name="active-client-profile_xml-ns"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b&gt;[WS-Security]&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl17" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl17',this);" href="http://msdn.microsoft.com/ws/2002/04/Security/"&gt;Web Services Security Language&lt;/a&gt;", IBM, Microsoft, VeriSign, April 2002.&lt;br /&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl18" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl18',this);" href="http://msdn.microsoft.com/ws/2002/07/Security/"&gt;WS-Security Addendum&lt;/a&gt;", IBM, Microsoft, VeriSign, August 2002.&lt;br /&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl19" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl19',this);" href="http://msdn.microsoft.com/ws/2002/08/Security/XMLTokens/"&gt;WS-Security XML Tokens&lt;/a&gt;", IBM, Microsoft, VeriSign, August 2002&lt;/dd&gt;&lt;dt&gt;&lt;b&gt;[WS-Policy]&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl20" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl20',this);" href="http://msdn.microsoft.com/ws/2002/12/Policy/"&gt;Web Services Policy Framework&lt;/a&gt;", BEA, IBM, Microsoft, SAP, December 2002.&lt;/dd&gt;&lt;dt&gt;&lt;a name="active-client-profile_wspolicyattachments"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b&gt;[WS-PolicyAttachment]&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl21" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl21',this);" href="http://msdn.microsoft.com/ws/2002/12/PolicyAttachment/"&gt;Web Services Policy Attachment Language&lt;/a&gt;", BEA, IBM, and Microsoft, SAP, December 2002. &lt;/dd&gt;&lt;dt&gt;&lt;a name="active-client-profile_wstrust"&gt;&lt;!----&gt;&lt;/a&gt;&lt;b&gt;[WS-PolicyAssertions]&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl22" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl22',this);" href="http://msdn.microsoft.com/ws/2002/12/PolicyAssertions/"&gt;Web Services Policy Assertions Language&lt;/a&gt;", BEA, IBM, Microsoft, SAP, December 2002.&lt;/dd&gt;&lt;dt&gt;&lt;b&gt;[WS-Trust]&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl23" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl23',this);" href="http://msdn.microsoft.com/ws/2002/12/ws-trust/"&gt;Web Services Trust Language&lt;/a&gt;", IBM, Microsoft, RSA, VeriSign, December 2002.&lt;/dd&gt;&lt;dt&gt;&lt;b&gt;[WS-SecureConversation]&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl24" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl24',this);" href="http://msdn.microsoft.com/ws/2002/12/ws-secure-conversation/"&gt;Web Services Secure Conversation Language&lt;/a&gt;", IBM, Microsoft, RSA, VeriSign, December 2002.&lt;/dd&gt;&lt;dt&gt;&lt;b&gt;[WS-SecurityPolicy]&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;"&lt;a id="ctl00_rs1_mainContentContainer_ctl25" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl25',this);" href="http://msdn.microsoft.com/ws/2002/12/ws-security-policy/"&gt;Web Services Security Policy Language&lt;/a&gt;", IBM, Microsoft, RSA, VeriSign, December 2002.&lt;/dd&gt;&lt;dt&gt;&lt;b&gt;[XML-ns] &lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;W3C Recommendation, "&lt;a id="ctl00_rs1_mainContentContainer_ctl26" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl26',this);" href="http://www.w3.org/TR/1999/REC-xml-names-19990114"&gt;Namespaces in XML&lt;/a&gt;", 14 January 1999.&lt;/dd&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-102293162458256160?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/102293162458256160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=102293162458256160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/102293162458256160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/102293162458256160'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/ws-federation-active-requestor-profile.html' title='WS-Federation: Active Requestor Profile'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-7495144616343397596</id><published>2008-04-02T04:34:00.000-07:00</published><updated>2008-04-02T04:35:40.086-07:00</updated><title type='text'>Java平台乱弹六</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;26)      常见电子商务框架:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;　　电子商务驱动着新的商务模式，底层商务Framework质量的好坏在很大程度上决定了系统的好坏。常见的框架如下。&lt;br /&gt;　　AltoWeb Application Platform AltoWeb&lt;br /&gt;　　Apache Cocoon Apache Software Foundation&lt;br /&gt;　　BEA WebLogic Server 7.0 BEA Systems, Inc.&lt;br /&gt;　　BlueBoot Services Manager Enba Asia Pte Ltd&lt;br /&gt;　　Borland JBuilder Borland Software Corporation&lt;br /&gt;　　Droplets User Interface Server 2.0 Droplets&lt;br /&gt;　　e-Frames Aithent, Inc.&lt;br /&gt;　　Enterprise Business Components Diamelle Technologies&lt;br /&gt;　　Eontec Eontec&lt;br /&gt;　　Expresso Framework Jcorporate Ltd&lt;br /&gt;　　HP Application Server 8.0 Hewlett-Packard&lt;br /&gt;　　IBM WebSphere IBM&lt;br /&gt;　　Induslogic Xintegrate Web Services Edition Induslogic&lt;br /&gt;　　Internet Shopping with Java Eastland Data Systems&lt;br /&gt;　　iPlanet Application Server iPlanet E-Commerce Solutions&lt;br /&gt;　　Oracle9i JDeveloper with Business Components for Java Oracle Corporation&lt;br /&gt;　　realMethods Framework realMethods, Inc.&lt;br /&gt;　　Roaming Wireless Framework ObjectVenture Inc.&lt;br /&gt;　　SilverStream eXtend Director SilverStream Software&lt;br /&gt;　　Sparx Application Platform Netspective Corporation&lt;br /&gt;　　Struts Apache Software Foundation&lt;br /&gt;　　Wakesoft Architecture Server Wakesoft&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;　　27)      常见Java企业应用集成平台:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;　　企业应用集成(简称，EAI) 给传统的企业应用系统提供了很好的方式，使得企业面对新业务、新的商务模式时需要认真考虑的问题。下面是一些常用的集成平台。&lt;br /&gt;　　AltioLive Altio Inc.&lt;br /&gt;　　BEA WebLogic Integration BEA Systems, Inc.&lt;br /&gt;　　Collaxa Web Service Orchestration Server Collaxa&lt;br /&gt;　　DataMirror Transformation Server DataMirror&lt;br /&gt;　　Droplets Droplets&lt;br /&gt;　　eXtremeVista version 3.2 OpenConnect Systems, Inc.&lt;br /&gt;　　Flamenco Web Services Network Flamenco Networks&lt;br /&gt;　　IBM WebSphere MQ IBM&lt;br /&gt;　　Induslogic Xintegrate Web Services Edition Induslogic&lt;br /&gt;　　IONA Orbix E2A Web Services Integration Platform IONA&lt;br /&gt;　　mPower Remote Manager ProSyst Software AG&lt;br /&gt;　　OpenFusion Integration Server PrismTech Corp&lt;br /&gt;　　Oracle9i Application Server Oracle Corporation&lt;br /&gt;　　SonicXQ 1.0 Sonic Software Corporation&lt;br /&gt;　　SpiritArchitecture SpiritSoft Inc&lt;br /&gt;　　Tifosi Fiorano&lt;br /&gt;　　XMLShark 1.4 infoshark&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;　　28)      常见Java开发Web Services工具包:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;　　Java为Web Services，这种优秀的构架，提供了很好的开发工具包，各个软件厂商纷纷推出自己的开发工具包。Sun、IBM、Borland、Oracle、。。。。下面是一些常见的资源。&lt;br /&gt;　　AltioLive Altio Inc.&lt;br /&gt;　　AltoWeb Application Platform AltoWeb&lt;br /&gt;　　Bali Spidertop Inc.&lt;br /&gt;　　Borland Web Services Kit for Java Borland Software Corporation&lt;br /&gt;　　Bowstreet Business Web Factory Bowstreet, Inc.&lt;br /&gt;　　CapeConnect Cape Clear Software Inc.&lt;br /&gt;　　CapeStudio Cape Clear Software Inc.&lt;br /&gt;　　Collaxa Web Service Orchestration Server Collaxa&lt;br /&gt;　　EZ JMS Talarian Corporation&lt;br /&gt;　　Flamenco Web Services Network Flamenco Networks&lt;br /&gt;　　Forte for Java/NetBeans Sun Microsystems, Inc.&lt;br /&gt;　　GLUE The Mind Electric&lt;br /&gt;　　Grand Central Network Grand Central&lt;br /&gt;　　IBM Web Services Toolkit IBM&lt;br /&gt;　　in2j Quintessence Systems&lt;br /&gt;　　Induslogic Xintegrate Web Services Edition Induslogic&lt;br /&gt;　　Infravio Web Services Management System Infravio, Inc.&lt;br /&gt;　　IONA Orbix E2A Web Services Integration Platform IONA&lt;br /&gt;　　Java Web Services Developer Pack (JWSDP) Sun Microsystems, Inc.&lt;br /&gt;　　Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;　　Rio Project Sun Microsystems&lt;br /&gt;　　Shinka Business Integraiton Platform 2.0 Shinka Technologies&lt;br /&gt;　　SilverStream eXtend Workbench SilverStream Software&lt;br /&gt;　　SonicXQ 1.0 Sonic Software Corporation&lt;br /&gt;　　Systinet WASP Developer Systinet&lt;br /&gt;　　WebGain Application Composer WebGain&lt;br /&gt;　　XML Spy Suite 4.2 Altova, Inc.&lt;br /&gt;　　XMLShark 1.4 infoshark&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;　　29)      常见数据库工具或驱动程序:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;　　Java中的数据库驱动，或者数据库工具显得格外重要，因为这些是操控EIS的重要利器。如何选择很好的JDBC Drivers or Tools成为我们大家需要考虑的问题。下面是常见的一些资源。&lt;br /&gt;　　CA AllFusion ERwin Data Modeler Computer Associates&lt;br /&gt;　　DataDirect JDBC Drivers DataDirect Technologies (formerly MERANT DataDirec&lt;br /&gt;　　DataMirror Transformation Server DataMirror&lt;br /&gt;　　DbVisualizer Minq Software&lt;br /&gt;　　Easysoft JDBC-ODBC&lt;br /&gt;　　Bridge Easysoft&lt;br /&gt;　　eXtensible Information Server (XIS) eXcelon Corp.&lt;br /&gt;　　FrontierSuite ObjectFrontier&lt;br /&gt;　　HiT JDBC/DB2 HiT Software, Inc.&lt;br /&gt;　　HOBLink J-DRDA HOB&lt;br /&gt;　　in2j Quintessence Systems&lt;br /&gt;　　i-net OPTA i-net software&lt;br /&gt;　　Ipedo XML Database 2.0 Ipedo,Inc.&lt;br /&gt;　　iSQL-Viewer 100acres.org&lt;br /&gt;　　Kodo JDO SolarMetric Inc.&lt;br /&gt;　　MM.MySQL JDBC Driver Mark Matthews&lt;br /&gt;　　NetDirect JSQLConnect NetDirect&lt;br /&gt;　　OpenFusion JDO PrismTech Corp&lt;br /&gt;　　OpenLink JDBC Drivers OpenLink Software&lt;br /&gt;　　Oracle9i Business Components For Java (BC4J) Oracle Corporation&lt;br /&gt;　　Oracle9iAS TopLink WebGain&lt;br /&gt;　　Pervasive.SQL 2000i (ODBC, JDBC and JCL) Pervasive Software&lt;br /&gt;　　PostgreSQL JDBC PostgreSQL Global Development Group&lt;br /&gt;　　XML Spy Suite 4.2 Altova, Inc.&lt;br /&gt;　　XMLShark 1.4 infoshark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-7495144616343397596?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/7495144616343397596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=7495144616343397596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7495144616343397596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7495144616343397596'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/java_4288.html' title='Java平台乱弹六'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-2146810448500842107</id><published>2008-04-02T04:32:00.000-07:00</published><updated>2008-04-02T04:33:39.163-07:00</updated><title type='text'>Java平台乱弹五</title><content type='html'>第五： &lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; 22)      常见团队开发工具:  &lt;/span&gt;&lt;br /&gt; Alcea Fast BugTrack Alcea Technologies Inc.&lt;br /&gt; Borland JBuilder Borland Software Corporation&lt;br /&gt; CA AllFusion Harvest Manager Computer Associates&lt;br /&gt; CocoBase Enterprise O/R Thought Inc.&lt;br /&gt; Code Co-op Reliable Software&lt;br /&gt; Eclipse Workbench Eclipse Open Source Community&lt;br /&gt; JLOOXTelecom LOOX Software&lt;br /&gt; Jtest ParaSoft&lt;br /&gt; MagicDraw UML 5.0 Teamwork Server No Magic&lt;br /&gt; MKS Source Integrity Enterprise Edition MKS Inc.&lt;br /&gt; Oracle9i SCM Oracle Corporation&lt;br /&gt; Rational ClearCase Rational Software&lt;br /&gt; Revize 3.5 Web Content Management and Delivery System Idetix Software Systems Inc.&lt;br /&gt; Serena ChangeMan DS Serena Software&lt;br /&gt; StarTeam Starbase Corporation&lt;br /&gt; Together ControlCenter 5.5 TogetherSoft Corporation&lt;br /&gt; Visual SlickEdit SlickEdit Inc. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; 23)      常见无线应用:       &lt;/span&gt;&lt;br /&gt; AmikaFreedom.com AmikaNow!&lt;br /&gt; AVIDRapidTools AVIDWireless&lt;br /&gt; Axion Cocoasoft&lt;br /&gt; COOL:Plex/Websydian Computer Associates&lt;br /&gt; iAnywhere m-Business Studio iAnywhere Solutions, a Sybase company&lt;br /&gt; IBM WebSphere Transcoding Publisher IBM&lt;br /&gt; iBus//Mobile Wireless JMS Softwired&lt;br /&gt; Lutris Enhydra 3.5 Lutris Technologies&lt;br /&gt; MicroPoint Visualize Inc.&lt;br /&gt; Oracle9i Application Server Oracle Corporation&lt;br /&gt; PointBase Micro PointBase&lt;br /&gt; SavaJe PIM SavaJe Technologies&lt;br /&gt; SilverStream eXtend Director SilverStream Software&lt;br /&gt; Smart Device Mapping XEN Information Systems&lt;br /&gt; WAP office suite Coldbeans&lt;br /&gt; WAP Package - ProSyst mBedded Server ProSyst Software AG&lt;br /&gt; Wireless-to-Host Seagull Software &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; 24)      常见XML工具: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;XML工具在SOAP、Web Services中越来越重要，在Java中也是如此，否则有名的JAX-系列就不会有。XML Spy、JBuilder很不错。还有。。。。。。。。。&lt;br /&gt; 4SuiteServer Fourthought &lt;br /&gt; AltioLive Altio Inc.&lt;br /&gt; Apache Cocoon Apache Software Foundation&lt;br /&gt; Borland JBuilder Borland Software Corporation&lt;br /&gt; Breeze XML Studio Version 2.5 The Breeze Factor&lt;br /&gt; Brock and Jfaq  Enhydra&lt;br /&gt; BXXP Invisible Worlds&lt;br /&gt; DataMirror DB/XML Transform DataMirror&lt;br /&gt; DSML DSML.ORG &lt;br /&gt; Electric XML The Mind Electric&lt;br /&gt; Elixir Report Elixir Technology&lt;br /&gt; HTML-XML Dual Viewer  NetClue&lt;br /&gt; IBM WebSphere Studio Application Developer 4.0 IBM&lt;br /&gt; iMESSENGER Infoteria&lt;br /&gt; Induslogic XSLWiz/Xintegrate Web Services Edition Induslogic&lt;br /&gt; Informix Object Translator Informix&lt;br /&gt; Ipedo XML Database 2.0 Ipedo,Inc.&lt;br /&gt; iPlanet Integration Server iPlanet&lt;br /&gt; jAllora HiT Software, Inc.&lt;br /&gt; JLOOX LOOX Software&lt;br /&gt; MobilityT v1.2 Macalla Software &lt;br /&gt; Nepal  Innovision&lt;br /&gt; Oracle9i XDK Oracle Corporation&lt;br /&gt; PolarLake PolarLake&lt;br /&gt; SilverStream eXtend Composer SilverStream Software&lt;br /&gt; SoftModeler Softera&lt;br /&gt; Stylus Studio eXcelon Corp.&lt;br /&gt; System Architect Popkin Software&lt;br /&gt; Turbo XML TIBCO&lt;br /&gt; XAServer X-Aware&lt;br /&gt; xCommerce 2.0  SilverStream&lt;br /&gt; XML Chat Application  VBXML&lt;br /&gt; XML Developer Stilo&lt;br /&gt; XML Spy Suite 4.2 Altova, Inc.&lt;br /&gt; XMLango DevSpace.com &lt;br /&gt; XMLC Lutris Technologies&lt;br /&gt; XMLShark 1.4 infoshark&lt;br /&gt; XMLZip XML Solutions  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 25)      常见最具创意Java产品: &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;还记得Java Web Start吗？不知道你是否了解Eclipse、Together，都是很不错的工具。下面给出一些重要的资源。&lt;br /&gt; AltioLive Altio Inc.&lt;br /&gt; AltoWeb(R) Application Platform AltoWeb&lt;br /&gt; Apache Cocoon Apache Software Foundation&lt;br /&gt; BEA WebLogic Server 7.0 BEA Systems, Inc.&lt;br /&gt; Borland JBuilder Borland Software Corporation&lt;br /&gt; CA Unicenter Web Infrastructure Management for J2EE Computer Associates&lt;br /&gt; Cittera CanyonBlue Inc&lt;br /&gt; Collaxa Web Service Orchestration Server Collaxa&lt;br /&gt; Compuware OptimalJ Compuware Corporation&lt;br /&gt; DataMirror DB/XML Transform DataMirror&lt;br /&gt; DataVista Spectrum Visualize Inc.&lt;br /&gt; Droplets User Interface Server 2.0 Droplets&lt;br /&gt; Eclipse Eclipse Open Source Community&lt;br /&gt; EdgeXtend Persistence Software&lt;br /&gt; Espial DeviceServer Espial&lt;br /&gt; Espial Suite for TV Espial&lt;br /&gt; Excelsior JET Excelsior, LLC&lt;br /&gt; Forte for Java/NetBeans Sun Microsystems/NetBeans&lt;br /&gt; FrontierSuite - MDA Platform ObjectFrontier&lt;br /&gt; GLUE The Mind Electric&lt;br /&gt; Headway reView Headway Software&lt;br /&gt; HOBLink JWT HOB&lt;br /&gt; HP Application Server 8.0 Hewlett-Packard&lt;br /&gt; IBM WebSphere Studio Application Developer 4.0 IBM&lt;br /&gt; ILOG JSolver ILOG&lt;br /&gt; ILOG JViews For Workflow ILOG&lt;br /&gt; in2j Quintessence Systems&lt;br /&gt; InstallAnywhere Zero G Software&lt;br /&gt; IntelliJ IDEA IntelliJ Software&lt;br /&gt; Internet Shopping with Java Eastland Data Systems&lt;br /&gt; Jconfig Samizdat Productions&lt;br /&gt; JLOOXTelecom LOOX Software&lt;br /&gt; JSuite? 6.0 Infragistics&lt;br /&gt; Jtest ParaSoft&lt;br /&gt; Juliet infotectonica&lt;br /&gt; Kada Mobile Platform Kada Systems&lt;br /&gt; Kronos Enterprise Scheduler 3.00 Indus Consultancy Services&lt;br /&gt; LiveCluster? DataSynapse, Inc.&lt;br /&gt; Lutris EAS 4.0 Lutris Technologies&lt;br /&gt; Macromedia JRun Server Enterprise Deployment Wizard Macromedia&lt;br /&gt; mBedded Server ProSyst Software AG&lt;br /&gt; MKS Integrity Manager MKS Inc.&lt;br /&gt; ObjectAssembler - Enterprise Edition ObjectVenture Inc.&lt;br /&gt; OpenFusion JDO PrismTech Corp&lt;br /&gt; Optimizeit Suite 4.11 VMGEAR&lt;br /&gt; Oracle9i Application Server with Advanced Clustering Oracle Corporation&lt;br /&gt; PointBase Micro PointBase&lt;br /&gt; PopChart Server Enterprise CORDA Technologies&lt;br /&gt; ReportMill ReportMill Software, Inc.&lt;br /&gt; Rio Project Sun Microsystems&lt;br /&gt; Saffeine Saffeine&lt;br /&gt; SavaJe XE SavaJe Technologies&lt;br /&gt; SilverStream eXtend Integrated Services Environment SilverStream Software&lt;br /&gt; Sitraka JClass Sitraka&lt;br /&gt; Sitraka JProbe Sitraka&lt;br /&gt; Small Worlds Information Laboratory&lt;br /&gt; SpiritCache SpiritSoft&lt;br /&gt; SpiritIntellect SpiritSoft&lt;br /&gt; SpiritWave SpiritSoft&lt;br /&gt; Together ControlCenter 5.5 TogetherSoft Corporation&lt;br /&gt; VantagePoint Visualize Inc.&lt;br /&gt; Venus Application Publisher for JNLP Venus Software&lt;br /&gt; Wakesoft Architecture Server Wakesoft&lt;br /&gt; WebGain TopLink WebGain&lt;br /&gt; XMLShark 1.4 infoshark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-2146810448500842107?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/2146810448500842107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=2146810448500842107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/2146810448500842107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/2146810448500842107'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/java_7783.html' title='Java平台乱弹五'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-8330100227754288700</id><published>2008-04-02T04:29:00.001-07:00</published><updated>2008-04-02T04:41:41.183-07:00</updated><title type='text'>Java平台乱弹三</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;8)      常见Java开发Studio:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;当然，还有。。。。。。。。&lt;br /&gt;&lt;br /&gt;Borland Enterprise Studio for Java Borland Software Corporation&lt;br /&gt;&lt;br /&gt;mBedded Builder ProSyst Software AG&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;Pramati Studio 3.0 Pramati Technologies&lt;br /&gt;&lt;br /&gt;Rational Suite DevelopmentStudio Rational Software Corporation&lt;br /&gt;&lt;br /&gt;Together ControlCenter 5.5 TogetherSoft Corporation&lt;br /&gt;&lt;br /&gt;WebGain Studio 4.5 WebGain Inc.&lt;br /&gt;&lt;br /&gt;"WebSphere Studio Application Developer 4.0 IBM&lt;br /&gt;&lt;br /&gt;XML Spy Suite 4.2 Altova, Inc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;9)      常见Java IDE :&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;JBuilder、Together、WebSphere Developer、还有。。。。。。。。&lt;br /&gt;&lt;br /&gt;AnyJ 3.5 NetComputing GmbH&lt;br /&gt;&lt;br /&gt;BlueJ Monash University / University of Southern Denmark&lt;br /&gt;&lt;br /&gt;Borland JBuilder Borland Software Corporation&lt;br /&gt;&lt;br /&gt;CodeGuide Omnicore Software&lt;br /&gt;&lt;br /&gt;CodeWarrior for Java Metrowerks&lt;br /&gt;&lt;br /&gt;Compuware OptimalJ Compuware Corp &lt;br /&gt;&lt;br /&gt;Eclipse Workbench and Java IDE Eclipse Open Source Community&lt;br /&gt;&lt;br /&gt;Forte for Java/NetBeans Sun Microsystems&lt;br /&gt;&lt;br /&gt;IntelliJ IDEA IntelliJ Software&lt;br /&gt;&lt;br /&gt;Java Development Environment for Emacs (JDEE) Paul Kinnucan&lt;br /&gt;&lt;br /&gt;JMaker Jidea&lt;br /&gt;&lt;br /&gt;mBedded Builder ProSyst Software AG&lt;br /&gt;&lt;br /&gt;NetBeans.org NetBeans.org&lt;br /&gt;&lt;br /&gt;ObjectAssembler - Enterprise Edition ObjectVenture Inc.&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;Pramati Studio 3.0 Pramati Technologies&lt;br /&gt;&lt;br /&gt;SilverStream eXtend Workbench SilverStream Software&lt;br /&gt;&lt;br /&gt;Sybase PowerJ Sybase, Inc.&lt;br /&gt;&lt;br /&gt;Together ControlCenter 5.5 TogetherSoft Corporation&lt;br /&gt;&lt;br /&gt;WebGain VisualCafe Enterprise Suite 4.5 WebGain Inc.&lt;br /&gt;&lt;br /&gt;"WebSphere Studio Application Developer 4.0 IBM&lt;br /&gt;&lt;br /&gt;XML Spy Suite 4.2 Altova, Inc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;10)      常见Java安装工具:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;制作Java应用的安装程序确实很头疼，因为虚拟机，JVM，幸好还有。。。。。。。。。。。&lt;br /&gt;&lt;br /&gt;DashO-Pro preEmptive Solutions &lt;br /&gt;&lt;br /&gt;iBus Softwired&lt;br /&gt;&lt;br /&gt;InstallAnywhere Zero G Software&lt;br /&gt;&lt;br /&gt;InstallShield MultiPlatform InstallShield Software Corp.&lt;br /&gt;&lt;br /&gt;Java Message Que Sun Microsystems&lt;br /&gt;&lt;br /&gt;JExpress Professional DeNova&lt;br /&gt;&lt;br /&gt;KeyTools S/MIME Baltimore Technologies&lt;br /&gt;&lt;br /&gt;mBedded Builder ProSyst Software AG&lt;br /&gt;&lt;br /&gt;Openmake From Catalyst Systems Catalyst Systems Corporation&lt;br /&gt;&lt;br /&gt;Sitraka DeployDirector Sitraka&lt;br /&gt;&lt;br /&gt;Venus Application Publisher for JNLP Venus Software&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;11)      常见Java消息工具:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;JMS、MOM,您应该知道吧？那Message-Drivern Bean呢？JXAM呢？等等。&lt;br /&gt;&lt;br /&gt;AshnaMQ Ashnasoft Corporation&lt;br /&gt;&lt;br /&gt;BEA WebLogic Server 7.0 BEA Systems, Inc.&lt;br /&gt;&lt;br /&gt;FioranoMQ Fiorano&lt;br /&gt;&lt;br /&gt;iAnywhere m-Business Studio iAnywhere Solutions, a Sybase company&lt;br /&gt;&lt;br /&gt;IBM WebSphere MQ (previously MQSeries) IBM&lt;br /&gt;&lt;br /&gt;jBroker SilverStream Software&lt;br /&gt;&lt;br /&gt;LiveCluster™ DataSynapse, Inc.&lt;br /&gt;&lt;br /&gt;Open3 E-Business Messaging System Open3 Technologies, Inc. &lt;br /&gt;&lt;br /&gt;OpenFusion Enterprise Messaging Server PrismTech Corp&lt;br /&gt;&lt;br /&gt;Oracle9i Application Server Oracle Corporation&lt;br /&gt;&lt;br /&gt;Pramati Message Server 1.0 Pramati Technologies&lt;br /&gt;&lt;br /&gt;SmartSockets for JMS Talarian Corp.&lt;br /&gt;&lt;br /&gt;SonicMQ 4.0 Sonic Software Corporation&lt;br /&gt;&lt;br /&gt;SpiritWave SpiritSoft&lt;br /&gt;&lt;br /&gt;SwiftMQ IIT GmbH&lt;br /&gt;&lt;br /&gt;Sybase EAServer Sybase, Inc.&lt;br /&gt;&lt;br /&gt;TIBCO Enterprise for JMS TIBCO Software Inc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;12)      常见Java建模工具:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;软件工程有很多种方法，我们需要的不只是理论，还需要操控理论的利器。Together挺不错的。Rose当然可想而知了。。。&lt;br /&gt;&lt;br /&gt;ArgoUML 0.8  Tigris&lt;br /&gt;&lt;br /&gt;CA AllFusion Component Modeler Computer Associates&lt;br /&gt;&lt;br /&gt;Cittera Canyon Blue Inc&lt;br /&gt;&lt;br /&gt;COOL:Joe  Computer Associates&lt;br /&gt;&lt;br /&gt;Describe Embarcadero Technologies Inc.&lt;br /&gt;&lt;br /&gt;Elixir CASE Elixir Technology&lt;br /&gt;&lt;br /&gt;ERStudio 3.52a Embarcadero&lt;br /&gt;&lt;br /&gt;ERwin Modeling Suite  Computer Associates&lt;br /&gt;&lt;br /&gt;HOW Professional Edition for Java Riverton  &lt;span class="Jix961"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;InLine UML Bridge for Rational Rose InLine Software&lt;br /&gt;&lt;br /&gt;JVisionTM Object Insight&lt;br /&gt;&lt;br /&gt;MagicDraw UML 5.0 No Magic&lt;br /&gt;&lt;br /&gt;MetaMatrix Metadata Modeler MetaMatrix&lt;br /&gt;&lt;br /&gt;Modelistic Modelistic Ltd&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;PowerDesigner Sybase, Inc.&lt;br /&gt;&lt;br /&gt;Rational Rose Professional J Edition Rational Software Corp.&lt;br /&gt;&lt;br /&gt;Rose Secant Extreme Link Secant Technologies&lt;br /&gt;&lt;br /&gt;RoseLink Ensemble Systems&lt;br /&gt;&lt;br /&gt;SoftModeler Softera&lt;br /&gt;&lt;br /&gt;System Architect Popkin Software&lt;br /&gt;&lt;br /&gt;Together ControlCenter 5.5 TogetherSoft Corporation&lt;br /&gt;&lt;br /&gt;WebGain Studio 4.5 WebGain Inc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;13)      常见Java性能调优、测试工具:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Optimizeit Suite、JProbe不会不知道吧？当然还有。。。。。。。。。&lt;br /&gt;&lt;br /&gt;Borland Optimizeit Suite 4.11 VMGEAR&lt;br /&gt;&lt;br /&gt;IBM VisualAge Micro Edition - MicroAnalyzer IBM&lt;br /&gt;&lt;br /&gt;JProbe Suite Sitraka&lt;br /&gt;&lt;br /&gt;Metamata Debug Enterprise Metamata&lt;br /&gt;&lt;br /&gt;MKS Engineer Integrity MKS Inc.  &lt;span class="Jix961"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;Rational PurifyPlus Rational Software&lt;br /&gt;&lt;br /&gt;TowerJ Java Virtual Machine Tower Technology Corporation&lt;br /&gt;&lt;br /&gt;TrueTime Java Edition Compuware NuMega&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-8330100227754288700?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/8330100227754288700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=8330100227754288700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8330100227754288700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8330100227754288700'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/java_5946.html' title='Java平台乱弹三'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-1821340529078757930</id><published>2008-04-02T04:25:00.001-07:00</published><updated>2008-04-02T04:43:13.770-07:00</updated><title type='text'>Java平台乱弹四</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;14)      常见Java报表工具:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;制作报表始终是开发企业应用信息系统很重要的部分，大家的印象中，Java报表工具很少，其实不是这样的。&lt;br /&gt;&lt;br /&gt;ChartWorks Server Visual Mining, Inc.&lt;br /&gt;&lt;br /&gt;Databeacon InterNetivity&lt;br /&gt;&lt;br /&gt;DataVista Spectrum Visualize Inc.&lt;br /&gt;&lt;br /&gt;e.Spreadsheet Engine Actuate Corporation&lt;br /&gt;&lt;br /&gt;Elixir Report Elixir Technology&lt;br /&gt;&lt;br /&gt;Embarcadero Technologies Describe Embarcadero Technologies&lt;br /&gt;&lt;br /&gt;Enterprise Reports for Java EnterpriseSoft&lt;br /&gt;&lt;br /&gt;FOP for XSLT Apache Software Foundation&lt;br /&gt;&lt;br /&gt;Formula One for Java Tidestone&lt;br /&gt;&lt;br /&gt;i-net Crystal-Clear i-net software&lt;br /&gt;&lt;br /&gt;JasperReports JasperReports&lt;br /&gt;&lt;br /&gt;Java SpatialX ObjectFX Corporation&lt;br /&gt;&lt;br /&gt;JFreeReport The Object Refinery&lt;br /&gt;&lt;br /&gt;JReport Jinfonet Software&lt;br /&gt;&lt;br /&gt;Metamata RMILite Metamata&lt;br /&gt;&lt;br /&gt;MIS JavaClient MIS&lt;br /&gt;&lt;br /&gt;Oracle 9i Reports/Discoverer Oracle Corporation&lt;br /&gt;&lt;br /&gt;Parallel Crystal Report Server Dynalivery Corporation&lt;br /&gt;&lt;br /&gt;PopChart Server Enterprise CORDA Technologies&lt;br /&gt;&lt;br /&gt;ReportMill ReportMill Software, Inc.&lt;br /&gt;&lt;br /&gt;SilkMeter Segue Software&lt;br /&gt;&lt;br /&gt;Sitraka JClass Enterprise Suite Sitraka&lt;br /&gt;&lt;br /&gt;StyleReportEE Inetsoft Technology Corporation&lt;br /&gt;&lt;br /&gt;Together ControlCenter 5.5 TogetherSoft Corporation&lt;br /&gt;&lt;br /&gt;VantagePoint Visualize Inc.&lt;br /&gt;&lt;br /&gt;VisualSoft FlexiReports VisualSoft Technologies&lt;br /&gt;&lt;br /&gt;WebGain Quality Analyzer WebGain Inc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;15)      常见Java测试工具:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Java应用测试是很重要的步骤。XP、xUit、。。。。。。。JProbe、JUnit还不错。&lt;br /&gt;&lt;br /&gt;Alcea Fast BugTrack Alcea Technologies Inc.&lt;br /&gt;&lt;br /&gt;Assure Kuck &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Bean-test Empirix&lt;br /&gt;&lt;br /&gt;Global Checker for Java Uniscape.com&lt;br /&gt;&lt;br /&gt;JBMS Developer Informix Cloudscape&lt;br /&gt;&lt;br /&gt;JProbe Suite Sitraka&lt;br /&gt;&lt;br /&gt;Jtest ParaSoft&lt;br /&gt;&lt;br /&gt;JUnit junit.org&lt;br /&gt;&lt;br /&gt;mBedded Builder ProSyst Software AG&lt;br /&gt;&lt;br /&gt;MS Stress Test Tool MicroSoft&lt;br /&gt;&lt;br /&gt;Optimizeit Suite 4.11 VMGEAR&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;Precise/Indepth for J2EE Platform Precise Software Solutions, Ltd.&lt;br /&gt;&lt;br /&gt;PureLoad Minq Software&lt;br /&gt;&lt;br /&gt;QuickTest Professional Mercury Interactive&lt;br /&gt;&lt;br /&gt;Rational Suite TestStudio Rational Software&lt;br /&gt;&lt;br /&gt;SilkPerformer / SilkTest Segue Software&lt;br /&gt;&lt;br /&gt;Test Mentor - Java Edition SilverMark, Inc.&lt;br /&gt;&lt;br /&gt;TowerJ Java Virtual Machine Tower Technology Corporation&lt;br /&gt;&lt;br /&gt;VisiComp 1.5 VisiComp&lt;br /&gt;&lt;br /&gt;WebGain Quality Analyzer WebGain&lt;br /&gt;&lt;br /&gt;WebLoad 4.5 Radview Software&lt;br /&gt;&lt;br /&gt;WinRunner Mercury Interactive&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;16)      常见Java培训工具:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Java Productivity with JBuilder Borland Software Corporation&lt;br /&gt;&lt;br /&gt;Java/iTV Course at Devicetop.com Devicetop.com (Espial)&lt;br /&gt;&lt;br /&gt;JavaTM BluePrints for Wireless program Sun Microsystems&lt;br /&gt;&lt;br /&gt;JCertify 5.0 EnterpriseDeveloper.com&lt;br /&gt;&lt;br /&gt;Struts Fast Track Public Training baseBeans&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;17)      常见JVM:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;BEA WebLogic JRockit Server Side VM BEA Systems, Inc.&lt;br /&gt;&lt;br /&gt;Blackdown Java-Linux JVM Blackdown Java-Linux&lt;br /&gt;&lt;br /&gt;Compaq Fast Virtual Machine Compaq&lt;br /&gt;&lt;br /&gt;Excelsior JET Excelsior, LLC&lt;br /&gt;&lt;br /&gt;HP ChaiVM Hewlett Packard&lt;br /&gt;&lt;br /&gt;Java Hot Spot Performance Engine Sun Microsystems&lt;br /&gt;&lt;br /&gt;Jeode PDA Edition Insignia Solutions&lt;br /&gt;&lt;br /&gt;JSCP NSICom&lt;br /&gt;&lt;br /&gt;Kada JVM Kada Systems&lt;br /&gt;&lt;br /&gt;Oracle9i JVM Oracle Corporation&lt;br /&gt;&lt;br /&gt;Perc NewMonics&lt;br /&gt;&lt;br /&gt;SavaJe XE SavaJe Technologies&lt;br /&gt;&lt;br /&gt;Sun's Java Plug-in supporting &lt;a target="_blank" href="http://www.newasp.cn/" class="UBBWordLink"&gt;Windows&lt;/a&gt; XP Sun Microsystems&lt;br /&gt;&lt;br /&gt;The J9 virtual machine IBM / Object Technology International&lt;br /&gt;&lt;br /&gt;TowerJ Java Virtual Machine Tower Technology Corporation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;18)      常见J2EE IDE:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Borland JBuilder Borland Software Corporation&lt;br /&gt;&lt;br /&gt;CA Advantage Joe, formerly known as COOL:Joe Computer Associates&lt;br /&gt;&lt;br /&gt;Forte for Java/NetBeans Sun Microsystems/NetBeans&lt;br /&gt;&lt;br /&gt;IBM WebSphere Studio Application Developer 4.0 IBM&lt;br /&gt;&lt;br /&gt;IntelliJ IDEA IntelliJ Software&lt;br /&gt;&lt;br /&gt;ObjectAssembler - Enterprise Edition ObjectVenture Inc.&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;Pramati Studio 3.0 Pramati Technologies&lt;br /&gt;&lt;br /&gt;WebGain VisualCafe Enterprise Suite 4.5 WebGain&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;19)      常见J2ME IDE:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Borland JBuilder MobileSet Borland Software Corporation&lt;br /&gt;&lt;br /&gt;CodeWarrior for Java Metrowerks&lt;br /&gt;&lt;br /&gt;IBM VisualAge Micro Edition IBM&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;20)      常见 J2SE IDE:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Borland JBuilder Borland Software Corporation&lt;br /&gt;&lt;br /&gt;CodeGuide Omnicore Software&lt;br /&gt;&lt;br /&gt;Forte for Java/NetBeans Sun Microsystems/NetBeans&lt;br /&gt;&lt;br /&gt;IntelliJ IDEA IntelliJ Software&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;VisualCafe Expert Edition WebGain&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;21)      常见Mobile数据库 :&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Borland JDataStore Borland Software Corporation&lt;br /&gt;&lt;br /&gt;Cloudscape IBM&lt;br /&gt;&lt;br /&gt;db4o - database for objects db4o&lt;br /&gt;&lt;br /&gt;Jeode Platform Insignia Solutions&lt;br /&gt;&lt;br /&gt;Oracle9i Lite Oracle Corporation&lt;br /&gt;&lt;br /&gt;Pervasive.SQL 2000i Pervasive Software&lt;br /&gt;&lt;br /&gt;PointBase Micro 4.1 PointBase&lt;br /&gt;&lt;br /&gt;SQL Anywhere Studio 8.0 iAnywhere Solutions&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-1821340529078757930?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/1821340529078757930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=1821340529078757930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1821340529078757930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/1821340529078757930'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/java_9068.html' title='Java平台乱弹四'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-6440276885124258735</id><published>2008-04-02T04:24:00.001-07:00</published><updated>2008-04-02T04:40:16.929-07:00</updated><title type='text'>Java平台乱弹二</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;4)      常见Java应用服务器:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Application Server，这样一种中间件产品现在可谓是风光。&lt;br /&gt;&lt;br /&gt;Avenida Web Server Avenida&lt;br /&gt;&lt;br /&gt;BEA WebLogic Server 7.0 BEA Systems, Inc.&lt;br /&gt;&lt;br /&gt;Borland Enterprise Server Borland&lt;br /&gt;&lt;br /&gt;Dynamo Application Server Art Technology Group&lt;br /&gt;&lt;br /&gt;GemStone/J Brokat&lt;br /&gt;&lt;br /&gt;HP Application Server 8.0 Hewlett-Packard&lt;br /&gt;&lt;br /&gt;IBM WebSphere Application Server 4.0 IBM&lt;br /&gt;&lt;br /&gt;IONA Orbix E2A Application Server Platform IONA Technologies&lt;br /&gt;&lt;br /&gt;iPlanet Application Server iPlanet E-Commerce Solutions&lt;br /&gt;&lt;br /&gt;iServer Servertec&lt;br /&gt;&lt;br /&gt;Jacada For Java Jacada Ltd.&lt;br /&gt;&lt;br /&gt;Jambala Application Server Ericsson&lt;br /&gt;&lt;br /&gt;JBoss JBoss.org&lt;br /&gt;&lt;br /&gt;JetStream WinDance Networks&lt;br /&gt;&lt;br /&gt;JReport Enterprise Server Jinfonet Software&lt;br /&gt;&lt;br /&gt;LiteWebServer 2.2 Gefion software&lt;br /&gt;&lt;br /&gt;Lutris EAS 4.0 Lutris Technologies&lt;br /&gt;&lt;br /&gt;Macromedia JRun 3.1 Macromedia&lt;br /&gt;&lt;br /&gt;mPower Remote Manager ProSyst Software AG&lt;br /&gt;&lt;br /&gt;Oracle9i Application Server Oracle Corporation&lt;br /&gt;&lt;br /&gt;Orion J2EE app. server OrionServer aka IronFlare&lt;br /&gt;&lt;br /&gt;OrionServer EPICUS&lt;br /&gt;&lt;br /&gt;PowerTier 7.0 Persistence Software&lt;br /&gt;&lt;br /&gt;Pramati Server 3.0 Pramati Technologies&lt;br /&gt;&lt;br /&gt;Secant Extreme Enterprise Server for EJB Secant&lt;br /&gt;&lt;br /&gt;ServletExec 4.1 New Atlanta Communications&lt;br /&gt;&lt;br /&gt;SilverStream eXtend Application Server SilverStream Software&lt;br /&gt;&lt;br /&gt;Sybase EAServer Sybase, Inc.&lt;br /&gt;&lt;br /&gt;Total-e-Server HP Middleware&lt;br /&gt;&lt;br /&gt;Unify eWave Engine Unify&lt;br /&gt;&lt;br /&gt;Voyager Application Server 4.5 Recursion Software&lt;br /&gt;&lt;br /&gt;WebObjects Apple Computer&lt;br /&gt;&lt;br /&gt;WorkOut @Work Technologies&lt;br /&gt;&lt;br /&gt;XML Canon/Developer TIBCO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;5)      常见Java类库:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;这些都是很不错的东东，不知道你是否用过ILOG。。。。。。。。。。&lt;br /&gt;&lt;br /&gt;Actuate e.Spreadsheet Engine Actuate Corporation&lt;br /&gt;&lt;br /&gt;Cafe Rete The Haley Enterprise&lt;br /&gt;&lt;br /&gt;Careflow Development Kit CareFlowNet&lt;br /&gt;&lt;br /&gt;CocoBase Enterprise O/R  Thought Inc&lt;br /&gt;&lt;br /&gt;Coffee Table 3Magic&lt;br /&gt;&lt;br /&gt;Eclipse Eclipse Open Source Project&lt;br /&gt;&lt;br /&gt;Electric XML The Mind Electric&lt;br /&gt;&lt;br /&gt;Expresso Framework Jcorporate&lt;br /&gt;&lt;br /&gt;Formula One for Java Tidestone&lt;br /&gt;&lt;br /&gt;Host Access Class Library IBM&lt;br /&gt;&lt;br /&gt;IAIK Crypto Toolkit Suite IAIK&lt;br /&gt;&lt;br /&gt;ILOG JViews Component Suite ILOG Inc.&lt;br /&gt;&lt;br /&gt;J/CarnacPro INT, Inc.&lt;br /&gt;&lt;br /&gt;JCL in Pervasive.SQL 2000i SDK Pervasive Software&lt;br /&gt;&lt;br /&gt;JClass Enterprise Suite Sitraka&lt;br /&gt;&lt;br /&gt;Jconfig Samizdat Productions&lt;br /&gt;&lt;br /&gt;JFreeChart The Object Refinery&lt;br /&gt;&lt;br /&gt;JGL Recursion Software&lt;br /&gt;&lt;br /&gt;JGo Graphics Library Northwoods Software&lt;br /&gt;&lt;br /&gt;jKit/GO Instantiations&lt;br /&gt;&lt;br /&gt;JLOOXGis LOOX Software&lt;br /&gt;&lt;br /&gt;JSmartGrid 1.0 Eliad Technologies, Inc.&lt;br /&gt;&lt;br /&gt;JSuite Infragistics Protoview&lt;br /&gt;&lt;br /&gt;KeyTools Pro Baltimore Technologies&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper - BC4J BI Beans Oracle&lt;br /&gt;&lt;br /&gt;realMethods Framework realMethods&lt;br /&gt;&lt;br /&gt;Remote AWT for Java IBM&lt;br /&gt;&lt;br /&gt;ROAD:BeanBox Specialized Software&lt;br /&gt;&lt;br /&gt;SpatialX ObjectFX&lt;br /&gt;&lt;br /&gt;Spirit eVisNet&lt;br /&gt;&lt;br /&gt;StudioJ Rogue Wave&lt;br /&gt;&lt;br /&gt;StyleReportEE Inetsoft Technology Corporation&lt;br /&gt;&lt;br /&gt;The Centuris PKI Toolkits Phaos Technology&lt;br /&gt;&lt;br /&gt;The Java Collection's Framework Sun Microsystems&lt;br /&gt;&lt;br /&gt;VantagePoint Visualize Inc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;6)      常见Java组件:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Java类库中，命名空间的构想使得Java组件的开发、共享很方便。。。&lt;br /&gt;&lt;br /&gt;BEA WebLogic Portal BEA Systems, Inc.&lt;br /&gt;&lt;br /&gt;Coldtags suite Coldbeans Software&lt;br /&gt;&lt;br /&gt;e.Spreadsheet Engine Actuate Corporation&lt;br /&gt;&lt;br /&gt;eContent Jcorporate Ltd&lt;br /&gt;&lt;br /&gt;Espial Espresso Espial&lt;br /&gt;&lt;br /&gt;ICE Browser ICEsoft&lt;br /&gt;&lt;br /&gt;ILOG JTGO ILOG&lt;br /&gt;&lt;br /&gt;IPWorks! In software inc.&lt;br /&gt;&lt;br /&gt;J/View3DPro INT, Inc.&lt;br /&gt;&lt;br /&gt;Jconfig Samizdat Productions&lt;br /&gt;&lt;br /&gt;JLOOXLayout LOOX Software&lt;br /&gt;&lt;br /&gt;JSuite™ 6.0 Infragistics&lt;br /&gt;&lt;br /&gt;Kronos Enterprise Scheduler 3.00 Indus Consultancy Services&lt;br /&gt;&lt;br /&gt;NetCharts Visual Mining, Inc.&lt;br /&gt;&lt;br /&gt;Oracle Business Components for Java Oracle Corporation&lt;br /&gt;&lt;br /&gt;PGUI ProSyst Software AG&lt;br /&gt;&lt;br /&gt;PopChart Live CORDA Technologies&lt;br /&gt;&lt;br /&gt;PowerChart™ Server Edition Infragistics&lt;br /&gt;&lt;br /&gt;Sitraka JClass Sitraka&lt;br /&gt;&lt;br /&gt;Tiles (Components) Cedric Dumoulin&lt;br /&gt;&lt;br /&gt;Validator David Winterfeldt&lt;br /&gt;&lt;br /&gt;VisualSoft JBChart VisualSoft Technologies&lt;br /&gt;&lt;br /&gt;VisualSoft JBProjectGantt VisualSoft Technologies&lt;br /&gt;&lt;br /&gt;VisualSoft JBScheduler VisualSoft Technologies&lt;br /&gt;&lt;br /&gt;Voice Essentials 1 Voice Components&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;7)      常见Java数据访问工具:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;这些科都是好东西！&lt;br /&gt;&lt;br /&gt;CA Advantage EDBC for Java Data Access Computer Associates&lt;br /&gt;&lt;br /&gt;CocoBase Enterprise O/R Thought Inc.&lt;br /&gt;&lt;br /&gt;FrontierSuite ObjectFrontier&lt;br /&gt;&lt;br /&gt;i-net KONNEKTER i-net software&lt;br /&gt;&lt;br /&gt;iSQL-Viewer 100acres.org Software&lt;br /&gt;&lt;br /&gt;Kodo JDO SolarMetric Inc.&lt;br /&gt;&lt;br /&gt;MVCSoft Persistence Manager MVCSoft Inc&lt;br /&gt;&lt;br /&gt;NetDirect JDataConnect NetDirect&lt;br /&gt;&lt;br /&gt;ObjectStore eXcelon&lt;br /&gt;&lt;br /&gt;OpenFusion JDO PrismTech Corp&lt;br /&gt;&lt;br /&gt;OpenLink JDBC Drivers OpenLink Software, Inc.&lt;br /&gt;&lt;br /&gt;Oracle9i Business Components For Java (BC4J) Oracle Corporation&lt;br /&gt;&lt;br /&gt;Oracle9iAS TopLink WebGain&lt;br /&gt;&lt;br /&gt;PopChart Server Enterprise CORDA Technologies&lt;br /&gt;&lt;br /&gt;XML Spy Suite 4.2 Altova, Inc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-6440276885124258735?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/6440276885124258735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=6440276885124258735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6440276885124258735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6440276885124258735'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/java_4260.html' title='Java平台乱弹二'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-876145228428404746</id><published>2008-04-02T04:23:00.000-07:00</published><updated>2008-04-02T04:37:55.477-07:00</updated><title type='text'>Java平台乱弹一</title><content type='html'>Java平台，自然有很多有魅力的地方。从JVM，到J2SE、J2ME、J2EE、J2EE Web Services、。。。还有Java开发工具、用Java开发的工具，无所不包，废话少说，开始进入正题。（修改JDJ提供的内容）很值得一看！&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1)      Java书:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Java 书籍，现在也有不少优秀的杰作。从Thinking in Java、Oreilly in a Nutshell，到Enterprise JavaBeans、Mastering EJB、Java Tools for Extreme Programming等等，还有Effective Java Programming Language Guide，还有，一些网站的图书，比如，Sun的J2EE Blueprints、Core J2EE Patterns。下面是一些常见的Java书籍。&lt;br /&gt;&lt;br /&gt;Advanced Java 1.1 Programming McGraw-Hill&lt;br /&gt;&lt;br /&gt;Advanced Java 2 Platform How to Program Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Advanced Java Networking Prentice Hall&lt;br /&gt;&lt;br /&gt;Advanced JavaServer Pages Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Applied Java Patterns Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Beginning Java 2- JDK 1.3 Edition Wrox Press&lt;br /&gt;&lt;br /&gt;Beginning Java Networking Wrox Press&lt;br /&gt;&lt;br /&gt;Building Java Enterprise Systems with J2EE Sams Publishing&lt;br /&gt;&lt;br /&gt;Building Web Services with Java Sams Publishing&lt;br /&gt;&lt;br /&gt;Core J2EE Patterns Best Practices and Design Strategies Prentice Hall&lt;br /&gt;&lt;br /&gt;Core J2ME Technology and MIDP Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Core Java 2, Volume 2 5/e Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Core JFC 2/e Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Core Servlets and JavaServer Pages Prentice Hall&lt;br /&gt;&lt;br /&gt;Core Web Programming, 2/e Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Database Programming with JDBC and Java O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Developing Java Servlets Sams Publishing&lt;br /&gt;&lt;br /&gt;Early Adopter J2SE 1.4 Wrox Press&lt;br /&gt;&lt;br /&gt;Early Adopter Mac OS X Java Wrox Press&lt;br /&gt;&lt;br /&gt;Effective Java Programming Language Guide Addison-Wesley&lt;br /&gt;&lt;br /&gt;Enterprise JavaBeans 3rd Edition O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Introduction to Engineering Programming: In C and Java John Wiley &amp;amp; Sons&lt;br /&gt;&lt;br /&gt;J2EE Applications and BEA WebLogic Server Prentice Hall&lt;br /&gt;&lt;br /&gt;J2EE Blueprints 1.0.1 Sun Microsystems&lt;br /&gt;&lt;br /&gt;J2EE Unleashed Sams Publishing&lt;br /&gt;&lt;br /&gt;Java (Teach Yourself) Addison-Wesley&lt;br /&gt;&lt;br /&gt;Java 3D API Jump-Start Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Java and XML 2nd Edition O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java and XSLT O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Collections Apress&lt;br /&gt;&lt;br /&gt;Java Cookbook O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Cryptography O'Reilly &amp;amp; Assoc&lt;br /&gt;&lt;br /&gt;Java Deployment with JNLP and WebStart Sams Publishing&lt;br /&gt;&lt;br /&gt;Java Developer's Handbook Sybex&lt;br /&gt;&lt;br /&gt;Java Enterprise in a Nutshell O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Event Handling Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Java Foundation Classes in a Nutshell O'Reilly&lt;br /&gt;&lt;br /&gt;Java GUI Development Sams Publishing&lt;br /&gt;&lt;br /&gt;Java How to Program, Fourth Edition Prentice Hall&lt;br /&gt;&lt;br /&gt;Java in a Nutshell O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Internationalization O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Message Service O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Network Programming O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Performance Tuning O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Platform Performance: Stategies and Tactics Addison-Wesley&lt;br /&gt;&lt;br /&gt;Java Programming on Linux Waitegroup Press&lt;br /&gt;&lt;br /&gt;Java RMI O'Reilly &amp;amp; Assoc&lt;br /&gt;&lt;br /&gt;Java Security Handbook Sams Publishing&lt;br /&gt;&lt;br /&gt;Java Security, 2nd Edition O'Reilly &amp;amp; Assoc&lt;br /&gt;&lt;br /&gt;Java Servlet Programming O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Java Servlets: By Example Manning Publications Co.&lt;br /&gt;&lt;br /&gt;Java Swing O'Reilly&lt;br /&gt;&lt;br /&gt;Java Thread Programming Sams Publishing&lt;br /&gt;&lt;br /&gt;JavaServer Pages O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;JavaServer Pages Application Development Sams Publishing&lt;br /&gt;&lt;br /&gt;JDBC API Tutorial and Reference Sun Microsystems&lt;br /&gt;&lt;br /&gt;Jini and JavaSpaces Application Development Sams Publishing&lt;br /&gt;&lt;br /&gt;JRun Web Application Construction Kit Macromedia Press&lt;br /&gt;&lt;br /&gt;JSP and Java: The Complete Guide to Website Development, 1/e Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;JSP Tag Libraries Manning Publications&lt;br /&gt;&lt;br /&gt;Just Java 2, 5/e Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Learning Java O'Reilly &amp;amp; Associates&lt;br /&gt;&lt;br /&gt;Marty Hall's Servlets and JavaServer Pages Training Course Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Mastering Enterprise Java Beans The Middleware Company&lt;br /&gt;&lt;br /&gt;Mastering Java 2 Sybex&lt;br /&gt;&lt;br /&gt;Professional EJB Wrox Press&lt;br /&gt;&lt;br /&gt;Professional J2EE EAI Wrox Press&lt;br /&gt;&lt;br /&gt;Professional Java 2 Enterprise Edition with BEA Weblogic Server Wrox Press&lt;br /&gt;&lt;br /&gt;Professional Java Server Programming J2EE 1.3 Edition Wrox Press&lt;br /&gt;&lt;br /&gt;Professional JSP 2nd Edition Wrox Press&lt;br /&gt;&lt;br /&gt;Professional WebObjects 5.0 with Java Wrox Press&lt;br /&gt;&lt;br /&gt;Pure JFC Swing Sams Publishing&lt;br /&gt;&lt;br /&gt;Pure JSP: Java Server Pages Sams Publishing&lt;br /&gt;&lt;br /&gt;Sams Teach Yourself Java in 21 Days Sams Publishing&lt;br /&gt;&lt;br /&gt;Sams Teach Yourself JavaServer Pages in 24 Hours Sams Publishing&lt;br /&gt;&lt;br /&gt;Server-Based Java Programming Manning Publications Co.&lt;br /&gt;&lt;br /&gt;Special Edition Using Enterprise JavaBeans 2.0 Que Publishing&lt;br /&gt;&lt;br /&gt;Struts Fast Track: J2EE / JSP Framework baseBeans&lt;br /&gt;&lt;br /&gt;The Complete Java 2 Certification Study Guide Sybex&lt;br /&gt;&lt;br /&gt;The Complete Java 2 Training Course, 4/e Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;The Official Gamelan Java Applet Library Simon &amp;amp; Schuster&lt;br /&gt;&lt;br /&gt;The Official VisiBroker for Java Handbook Sams Publishing&lt;br /&gt;&lt;br /&gt;UML Components WebGain&lt;br /&gt;&lt;br /&gt;Visual Age for Java 3.5 Prentice Hall PTR&lt;br /&gt;&lt;br /&gt;Web Development with Java Server Pages Manning Publications Co.&lt;br /&gt;&lt;br /&gt;Wireless Java Programming with J2ME Sams Publishing&lt;br /&gt;&lt;br /&gt;Wireless Java: Developing with J2ME Apress&lt;br /&gt;&lt;br /&gt;XML Development with Java 2 Sams Publishing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2)      企业数据库:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;数据库作为信息中心，其地位可想而知。&lt;br /&gt;&lt;br /&gt;Borland JDataStore Borland Software Corporation&lt;br /&gt;&lt;br /&gt;CA Advantage Ingres Enterprise Relational Database Computer Associates&lt;br /&gt;&lt;br /&gt;CACHE' InterSystems Corporation&lt;br /&gt;&lt;br /&gt;Cloudscape IBM&lt;br /&gt;&lt;br /&gt;CocoBase Enterprise O/R Thought Inc&lt;br /&gt;&lt;br /&gt;DB4O - Database for Objects db4o&lt;br /&gt;&lt;br /&gt;DBArtisan Embarcadero Technologies&lt;br /&gt;&lt;br /&gt;eXtensible Information Server (XIS) eXcelon Corp.&lt;br /&gt;&lt;br /&gt;GigaSpaces GigaSpaces Technologies Ltd.&lt;br /&gt;&lt;br /&gt;IBM DB2 Universal Database v7.2 IBM&lt;br /&gt;&lt;br /&gt;MySQL MySQL.com&lt;br /&gt;&lt;br /&gt;Oracle9i Database Oracle Corporation&lt;br /&gt;&lt;br /&gt;Pervasive.SQL 2000i Pervasive Software&lt;br /&gt;&lt;br /&gt;PointBase Server PointBase Inc.&lt;br /&gt;&lt;br /&gt;PostgreSQL PostgreSQL Global Development Group&lt;br /&gt;&lt;br /&gt;Sybase ASE 12.5 Sybase, Inc.&lt;br /&gt;&lt;br /&gt;Versant Developer Suite, ODBMS Versant&lt;br /&gt;&lt;br /&gt;WebGain TopLink WebGain&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3)      常见Java应用:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Java开发应用到底有多厉害，看看就知道很不一般。&lt;br /&gt;&lt;br /&gt;2LKit for VJ++ 2LKit&lt;br /&gt;&lt;br /&gt;AgentWare's Syndicator AgentWare&lt;br /&gt;&lt;br /&gt;Appgen Moneydance Appgen Personal Software&lt;br /&gt;&lt;br /&gt;AveAccess Environics Communications&lt;br /&gt;&lt;br /&gt;BackOnline Freeback.com&lt;br /&gt;&lt;br /&gt;BEA WebLogic Server 7.0 BEA Systems, Inc.&lt;br /&gt;&lt;br /&gt;Borland JBuilder Borland Software Corporation&lt;br /&gt;&lt;br /&gt;BuzzPower 3.0 BuzzCompany.com&lt;br /&gt;&lt;br /&gt;Callista Connect DSSOnline&lt;br /&gt;&lt;br /&gt;Casetracker Cezve Technology&lt;br /&gt;&lt;br /&gt;Centra Centra Software&lt;br /&gt;&lt;br /&gt;ChartWorks Designer Visual Mining, Inc.&lt;br /&gt;&lt;br /&gt;DeployDirector Sitraka&lt;br /&gt;&lt;br /&gt;Describe Embarcadero&lt;br /&gt;&lt;br /&gt;Droplets Droplets&lt;br /&gt;&lt;br /&gt;ECential ECommerce Component Evergreen&lt;br /&gt;&lt;br /&gt;eForum/eContent Jcorporate&lt;br /&gt;&lt;br /&gt;Espial Escape Espial&lt;br /&gt;&lt;br /&gt;Extensity Application Suite Extensity&lt;br /&gt;&lt;br /&gt;FatWire's UpdateEngine FatWire Software&lt;br /&gt;&lt;br /&gt;Flashline Component Manager Flashline&lt;br /&gt;&lt;br /&gt;Formula One for Java 8.0 Tidestone&lt;br /&gt;&lt;br /&gt;Forte for Java/NetBeans Sun Microsystems/NetBeans&lt;br /&gt;&lt;br /&gt;GameBlazer ZeBlazer Systems&lt;br /&gt;&lt;br /&gt;GemStone/J 4.1 Brokat GemStone&lt;br /&gt;&lt;br /&gt;HOBLink J-Term HOB&lt;br /&gt;&lt;br /&gt;Homestead Homestead.com&lt;br /&gt;&lt;br /&gt;HP Application Server 8.0 Hewlett-Packard Company&lt;br /&gt;&lt;br /&gt;ICE Browser ICEsoft&lt;br /&gt;&lt;br /&gt;ILOG JRules ILOG Inc.&lt;br /&gt;&lt;br /&gt;Induslogic Xintegrate Web Services Edition Induslogic&lt;br /&gt;&lt;br /&gt;InstallAnywhere Enterprise Edition Zero G Software&lt;br /&gt;&lt;br /&gt;InstallShield MultiPlatform InstallShield&lt;br /&gt;&lt;br /&gt;IntelliJ IDEA IntelliJ Software&lt;br /&gt;&lt;br /&gt;Internet Shopping with Java Eastland Data Systems&lt;br /&gt;&lt;br /&gt;Introscope V2 Wily Technology&lt;br /&gt;&lt;br /&gt;IONA Orbix E2A Application Server Platform IONA Technologies&lt;br /&gt;&lt;br /&gt;iPlanet Application Server, Enterprise Pro Edition iPlanet&lt;br /&gt;&lt;br /&gt;JavaCC WebGain&lt;br /&gt;&lt;br /&gt;JCertify 5.0 EnterpriseDeveloper.com&lt;br /&gt;&lt;br /&gt;JExpress Professional DeNova, Inc.&lt;br /&gt;&lt;br /&gt;Jive Forums Jive Software&lt;br /&gt;&lt;br /&gt;JLOOX LOOX Software&lt;br /&gt;&lt;br /&gt;JSOS Coldbeans Software&lt;br /&gt;&lt;br /&gt;Kronos Enterprise Scheduler 3.00 Indus Consultancy Services&lt;br /&gt;&lt;br /&gt;LimeWire LimePeer&lt;br /&gt;&lt;br /&gt;LION bioscience iDEA Lion Bioscience&lt;br /&gt;&lt;br /&gt;Lutris Enhydra 3.5 Lutris Technologies&lt;br /&gt;&lt;br /&gt;MagicDraw UML 5.0 No Magic&lt;br /&gt;&lt;br /&gt;mBedded Server ProSyst Software AG&lt;br /&gt;&lt;br /&gt;My Sun Application via Sun.Com Sun Microsystems&lt;br /&gt;&lt;br /&gt;Netbook, online betting Versant&lt;br /&gt;&lt;br /&gt;Novera 4.6 TSI Software&lt;br /&gt;&lt;br /&gt;ObjectAssembler - Enterprise Edition ObjectVenture Inc.&lt;br /&gt;&lt;br /&gt;Oracle9i JDeveloper Oracle Corporation&lt;br /&gt;&lt;br /&gt;PointBase Server Edition PointBase&lt;br /&gt;&lt;br /&gt;PopChart Builder CORDA Technologies&lt;br /&gt;&lt;br /&gt;QuestAgent Pro Jobjects&lt;br /&gt;&lt;br /&gt;Readerware Readerware&lt;br /&gt;&lt;br /&gt;Saffeine 1.0 Saffeine&lt;br /&gt;&lt;br /&gt;SavaJe XE SavaJe Technologies&lt;br /&gt;&lt;br /&gt;SlangMail SlangSoft&lt;br /&gt;&lt;br /&gt;SourceGuard 4thpass&lt;br /&gt;&lt;br /&gt;Sybase Ultralite Sybase, Inc.&lt;br /&gt;&lt;br /&gt;TeamCenter 4.0.  Inovie Software, Inc.&lt;br /&gt;&lt;br /&gt;TimeCruiser 2.0 Enterprise Timecruiser&lt;br /&gt;&lt;br /&gt;Together ControlCenter 5.5 TogetherSoft Corporation&lt;br /&gt;&lt;br /&gt;Turbo XML TIBCO&lt;br /&gt;&lt;br /&gt;WingDis 2.15 WingSoft Corp.&lt;br /&gt;&lt;br /&gt;XMLSolutions Business Integration Platform XMLSolutions&lt;br /&gt;&lt;br /&gt;YOUcentric YOUcentric&lt;br /&gt;&lt;br /&gt;Zelix KlassMaster Zelix Pty Ltd&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-876145228428404746?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/876145228428404746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=876145228428404746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/876145228428404746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/876145228428404746'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/java_5921.html' title='Java平台乱弹一'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-9020577024179752126</id><published>2008-04-02T00:49:00.000-07:00</published><updated>2008-04-02T00:50:11.146-07:00</updated><title type='text'>Oracle default port list</title><content type='html'>&lt;table border="0" width="600"&gt;&lt;tbody&gt;&lt;tr bgcolor="#ffccff"&gt;&lt;td width="266"&gt;&lt;h3 class="Stil9"&gt;Service&lt;/h3&gt;&lt;/td&gt;             &lt;td width="56"&gt;&lt;h3 class="Stil9"&gt;Port&lt;/h3&gt;&lt;/td&gt;             &lt;td width="118"&gt;&lt;h3 class="Stil9"&gt;Product&lt;/h3&gt;&lt;/td&gt;             &lt;td width="142"&gt;&lt;h3 class="Stil9"&gt;How to change&lt;/h3&gt;&lt;/td&gt;           &lt;/tr&gt;     &lt;tr&gt;  &lt;td&gt;Oracle HTTP Server listen port / Oracle HTTP Server port&lt;/td&gt;  &lt;td&gt;80&lt;/td&gt;  &lt;td&gt;Oracle Application Server &lt;/td&gt;  &lt;td&gt; Edit httpd.conf and restart OHS &lt;/td&gt;  &lt;/tr&gt;      &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Internet Directory(non-SSL)&lt;/td&gt;  &lt;td&gt;389&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;    &lt;tr&gt;  &lt;td&gt;Oracle HTTP Server SSL port&lt;/td&gt;  &lt;td&gt;443&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;Edit httpd.conf and restart OHS&lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;   &lt;td&gt;Oracle Internet Directory(SSL)&lt;/td&gt;  &lt;td&gt;636&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Net Listener / Enterprise Manager Repository port&lt;/td&gt;   &lt;td&gt;1521&lt;/td&gt;  &lt;td&gt;Oracle Application Server / Oracle Database &lt;/td&gt;  &lt;td&gt;Edit listener.ora and restart listener &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Net Listener&lt;/td&gt;  &lt;td&gt;1526&lt;/td&gt;   &lt;td&gt;Oracle Database&lt;/td&gt;  &lt;td&gt; Edit listener.ora and restart listener&lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Names &lt;/td&gt;  &lt;td&gt;1575&lt;/td&gt;   &lt;td&gt;Oracle Database&lt;/td&gt;  &lt;td&gt; Edit names.ora and restart names server &lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Connection Manager (CMAN) &lt;/td&gt;  &lt;td&gt;1630&lt;/td&gt;   &lt;td&gt;Oracle Connection Manager &lt;/td&gt;  &lt;td&gt; Edit cman.ora and restart Connection Manager &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle JDBC for Rdb Thin Server &lt;/td&gt;  &lt;td&gt;1701&lt;/td&gt;   &lt;td&gt;Oracle Rdb &lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Intelligent Agent&lt;/td&gt;  &lt;td&gt;1748&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;   &lt;td&gt; snmp_rw.ora &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Intelligent Agent&lt;/td&gt;  &lt;td&gt;1754&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;   &lt;td&gt; snmp_rw.ora &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Intelligent Agent&lt;/td&gt;  &lt;td&gt;1808&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;   &lt;td&gt; snmp_rw.ora &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Intelligent Agent&lt;/td&gt;  &lt;td&gt;1809&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;   &lt;td&gt; snmp_rw.ora &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Enterprise Manager Servlet port SSL &lt;/td&gt;  &lt;td&gt;1810&lt;/td&gt;  &lt;td&gt;Oracle Enterprise Manager&lt;/td&gt;   &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Connection Manager Admin (CMAN)&lt;/td&gt;  &lt;td&gt;1830&lt;/td&gt;  &lt;td&gt;Oracle Connection Manager (CMAN)&lt;/td&gt;  &lt;td&gt;Edit cman.ora and restart Connection Manager &lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Enterprise ManagerAgent port&lt;/td&gt;  &lt;td&gt;1831&lt;/td&gt;  &lt;td&gt;Oracle Enterprise Manager&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;    &lt;tr&gt;  &lt;td&gt;Enterprise Manager  RMI port&lt;/td&gt;  &lt;td&gt;1850&lt;/td&gt;  &lt;td&gt;Oracle Enterprise Manager&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;   &lt;td&gt;Oracle XMLDB FTP Port &lt;/td&gt;  &lt;td&gt;2100&lt;/td&gt;  &lt;td&gt;Oracle Database &lt;/td&gt;  &lt;td&gt;&lt;a href="http://www.red-database-security.com/whitepaper/oracle-change-xmldb_port.html"&gt;change dbms_xdb.cfg_update&lt;/a&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle GIOP IIOP &lt;/td&gt;   &lt;td&gt;2481&lt;/td&gt;  &lt;td&gt;Oracle Database &lt;/td&gt;  &lt;td&gt;Edit listener.ora/init.ora and restart listener/database&lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle GIOP IIOP for SSL &lt;/td&gt;  &lt;td&gt;2482&lt;/td&gt;   &lt;td&gt;Oracle Database &lt;/td&gt;  &lt;td&gt;Edit listener.ora/init.ora and restart listener/database&lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle OC4J RMI &lt;/td&gt;  &lt;td&gt;3201&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;   &lt;td&gt;&lt;p&gt; &lt;/p&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle OC4J AJP &lt;/td&gt;  &lt;td&gt;3301&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;&lt;p&gt; &lt;/p&gt;&lt;/td&gt;    &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Enterprise Manager Reporting port&lt;/td&gt;  &lt;td&gt;3339&lt;/td&gt;  &lt;td&gt;Oracle Application Server &lt;/td&gt;  &lt;td&gt;&lt;small&gt;Edit oem_webstage/oem.conf&lt;/small&gt; and restart OHS &lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle OC4J IIOP&lt;/td&gt;  &lt;td&gt;3401&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;&lt;p&gt; &lt;/p&gt;&lt;/td&gt;   &lt;/tr&gt;    &lt;tr&gt;  &lt;td&gt;Oracle OC4J IIOPS1&lt;/td&gt;  &lt;td&gt;3501&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;&lt;p&gt; &lt;/p&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;   &lt;td&gt;Oracle OC4J IIOPS2 &lt;/td&gt;  &lt;td&gt;3601&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;&lt;p&gt; &lt;/p&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle OC4J JMS &lt;/td&gt;   &lt;td&gt;3701&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;&lt;p&gt; &lt;/p&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle9iAS Web Cache Admin port&lt;/td&gt;  &lt;td&gt;4000&lt;/td&gt;   &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;Webcache Admin GUI or webcache.xml&lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle9iAS Web Cache Invalidation port&lt;/td&gt;  &lt;td&gt;4001&lt;/td&gt;   &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;Webcache Admin GUI or webcache.xml &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle9iAS Web Cache Statistics port&lt;/td&gt;  &lt;td&gt;4002&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;   &lt;td&gt;Webcache Admin GUI or webcache.xml &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Internet Directory(SSL)&lt;/td&gt;  &lt;td&gt;4031&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Internet Directory(non-SSL)&lt;/td&gt;  &lt;td&gt;4032&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;    &lt;tr&gt;  &lt;td&gt;OracleAS Certificate Authority (OCA) - Server Authentication&lt;/td&gt;  &lt;td&gt;4400&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;  &lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;   &lt;td&gt;OracleAS Certificate Authority (OCA) - Mutual Authentication &lt;/td&gt;  &lt;td&gt;4401&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;  &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle HTTP Server SSL  port&lt;/td&gt;   &lt;td&gt;4443&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; Edit httpd.conf and restart OHS &lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle9iAS Web Cache HTTP Listen(SSL) port&lt;/td&gt;  &lt;td&gt;4444&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;Webcache Admin GUI or webcache.xml &lt;/td&gt;  &lt;/tr&gt;    &lt;tr&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;4662&lt;/td&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;4758&lt;/td&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;    &lt;tr&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;4759&lt;/td&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;    &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;4761&lt;/td&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;     &lt;tr&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;4764&lt;/td&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;    &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;4766&lt;/td&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;/td&gt;      &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;4767&lt;/td&gt;  &lt;td&gt;Oracle TimesTen&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;     &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Enterprise Manager Web Console &lt;/td&gt;  &lt;td&gt;5500&lt;/td&gt;   &lt;td&gt;Oracle Enterprise Manager Web &lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;iSQLPlus 10g &lt;/td&gt;  &lt;td&gt;5560&lt;/td&gt;  &lt;td&gt;Oracle i*SQLPlus &lt;/td&gt;   &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;iSQLPlus 10g &lt;/td&gt;  &lt;td&gt;5580&lt;/td&gt;  &lt;td&gt;Oracle i*SQLPlus RMI Port &lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Notification Service request port&lt;/td&gt;  &lt;td&gt;6003&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;    &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Notification Service local port&lt;/td&gt;  &lt;td&gt;6100&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;   &lt;td&gt;Oracle Notification Service remote port&lt;/td&gt;  &lt;td&gt;6200&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle9iAS Clickstream Collector Agent&lt;/td&gt;   &lt;td&gt;6668&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Java Object Cache port&lt;/td&gt;  &lt;td&gt;7000&lt;/td&gt;   &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;DCM Java Object Cache port&lt;/td&gt;  &lt;td&gt;7100&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;   &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle HTTP Server Diagnostic Port &lt;/td&gt;  &lt;td&gt;7200&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle HTTP Server Port Tunneling&lt;/td&gt;  &lt;td&gt;7501&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;    &lt;tr&gt;  &lt;td&gt;Oracle HTTP Server listen port / Oracle HTTP Server port&lt;/td&gt;  &lt;td&gt;7777&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; Edit httpd.conf and restart OHS &lt;/td&gt;  &lt;/tr&gt;    &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle9iAS Web Cache HTTP Listen(non-SSL) port&lt;/td&gt;  &lt;td&gt;7779&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt;Webcache Admin GUI or webcache.xml &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;   &lt;td&gt;Oracle HTTP Server Jserv port&lt;/td&gt;  &lt;td&gt;8007&lt;/td&gt;  &lt;td&gt;Oracle Application Server&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle XMLDB HTTP port &lt;/td&gt;   &lt;td&gt;8080&lt;/td&gt;  &lt;td&gt;Oracle Database &lt;/td&gt;  &lt;td&gt;&lt;a href="http://www.red-database-security.com/whitepaper/oracle-change-xmldb_port.html"&gt;change dbms_xdb.cfg_update&lt;/a&gt;&lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;OC4J Forms / Reports Instance &lt;/td&gt;  &lt;td&gt;8888&lt;/td&gt;   &lt;td&gt;Oracle Developer Suite &lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;OC4J Forms / Reports Instance &lt;/td&gt;  &lt;td&gt;8889&lt;/td&gt;  &lt;td&gt;Oracle Developer Suite &lt;/td&gt;   &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Forms Server 6 / 6i &lt;/td&gt;  &lt;td&gt;9000&lt;/td&gt;  &lt;td&gt;Oracle Application Server &lt;/td&gt;  &lt;td&gt; &lt;/td&gt;    &lt;/tr&gt;   &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle SOAP Server &lt;/td&gt;  &lt;td&gt;9998&lt;/td&gt;  &lt;td&gt;Oracle Application Server &lt;/td&gt;  &lt;td&gt; &lt;/td&gt;  &lt;/tr&gt;    &lt;tr&gt;  &lt;td&gt;OS Agent&lt;/td&gt;  &lt;td&gt;14000&lt;/td&gt;  &lt;td&gt;Oracle Application Server &lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;       &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Times Ten&lt;/td&gt;  &lt;td&gt;15000&lt;/td&gt;  &lt;td&gt;Oracle Times Ten&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;  &lt;td&gt;Oracle Times Ten&lt;/td&gt;  &lt;td&gt;15002&lt;/td&gt;  &lt;td&gt;Oracle Times Ten&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;      &lt;tr bgcolor="#ffccff"&gt;  &lt;td&gt;Oracle Times Ten&lt;/td&gt;  &lt;td&gt;15004&lt;/td&gt;  &lt;td&gt;Oracle Times Ten&lt;/td&gt;  &lt;td&gt; &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;        &lt;td&gt;Log Loader &lt;/td&gt;  &lt;td&gt;44000&lt;/td&gt;  &lt;td&gt;Oracle Enterprise Manager&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-9020577024179752126?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/9020577024179752126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=9020577024179752126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/9020577024179752126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/9020577024179752126'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/oracle-default-port-list.html' title='Oracle default port list'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-8426175846273580945</id><published>2008-04-01T23:01:00.000-07:00</published><updated>2008-04-01T23:02:14.176-07:00</updated><title type='text'>多域单点登录SSO系统的实现</title><content type='html'>天幻网新的规划中，将涉及到多域，如FFSKY.COM,FFSKY.CN等等，因此网上某些对同一域靠设置COOKIE的DOMAIN=".FFSKY.COM"的方式根本行8通，因此考虑用纯粹的PASSPORT的机制。&lt;br /&gt;  建设此系统前，我做了充分的准备工作，参考了网上N多的SSO系统实现的文章，包括国内和国外的，发现SSO系统有许多都是商业版的，基于JAVA的有许多现成的开源项目，甚至有WEBLOGIC内置的。而基于.NET的最完善的似乎是MS的PASSPORT，但貌似用户信息全部要汇总到MS的 PASSPORT网站，也就是说无法调用自己的用户数据库。另外还有现成的Discuz！论坛的PASSPORT，但只能用在两个站之间。还有一个基于. NET的SSO东东,但看了半天应该也是商业版的，要下载试用版还获取不要验证邮件- -b郁闷之下自己动手，丰衣足食~&lt;br /&gt; 自己所接触到的自有的 SSO系统的网站其实有印象的就2个，一个是MOP，一个是CSDN,但似乎都是同一域下的。看N篇参考文章之后唯一让偶感觉到可以在天幻实行的就是通过统一认证网站认证后返回到源网站，在URL地址中加入返回参数，而源网站通过解析该参数获取用户认证信息。这种方式可以跨多域.&lt;br /&gt; 其基本流程是：用户登录某网站，点击“登录”，然后转向到认证服务器（PASSPORT），在认证服务器完成认证后携带加密后的参数转回到原网站，原网站解析加密信息后给予用户已经登录状态。&lt;br /&gt; 但是网上很多资料都没有说清楚几点，正如我前一篇开工前文章中所说的：&lt;br /&gt;1、TICKET加密方式，DES还是RSA&lt;br /&gt;2、用户注销操作怎么处理，在A域超时，消息肯定要给S验证域，那当时用户还在B域里玩也，到底算他注销不。&lt;br /&gt;3、用户从A域转到B域，是否还要到S验证域验证一下。还是在用户登陆时就将信息发给各服务域。&lt;br /&gt;4、按SAML协议标准，有一个环节居然是服务域和注册域交互验证。这和原先的SSO流程不符合，看来可能还需要开发一个WEBSERVICE来遵循这个协议。&lt;br /&gt;&lt;br /&gt;而我设计的天幻的SSO流程中，对以上几点是这样处理的：&lt;br /&gt;1、使用AES衍生的Rijndael处理，因为DES强度太差，而且只有密钥，而RSA虽然有公钥和私钥，但生成的数据长度实在太长，不利于在浏览器中携带。而Rijndael算法有一个密钥和一个IV向量，可以在其中做双重验证用。&lt;br /&gt;2、注销操作没办法做到各域同步，忽略这一问题，由各域自己控制用户超时量&lt;br /&gt;3、引入自动监测机制，每张需要验证用户的页面如果发现用户没有登录，自动到PASSPORT域转一圈作为验证，如果在PASSPORT域发现用户已登录，则设用户已登录状态。&lt;br /&gt;4、由于采用Rijndael加密，为了最大化安全性，将IV作为服务主机和认证主机之间私密交换的信息，我采用的是WEBSERVICE方式。&lt;br /&gt;&lt;br /&gt;明确了以上的要素，整个单点登录系统就相对明确了。懒得画图，直接文字叙述实现方式吧，也不贴代码了，因为代码没有优化过，比较难看，同时也为了保证安全性,呼呼&lt;br /&gt;&lt;br /&gt;1、自动判断是否登录流程&lt;br /&gt;&lt;br /&gt;  某可能会判断用户是否登录的页面，如果发现用户用户未登录（我都是判断SESSION（“NAME”）是否为空），并且用户浏览器支持COOKIE（即支持会话），且SESSION（“AUTOLOGIN”）为NULL，则先置用户SESSION（“AUTOLOGIN”）=“1”，然后自动将用户重定向到PASSPORT域进行鉴别，如果未登录，则直接返回，如果已登录，则重定向回的URL地址中加载认证字串。为了防止用户每点一张页面都要到登录域验证，所以需要加载一个认证是否已验证过的SESSION，以及浏览器是否支持SESSION。&lt;br /&gt; 其中唯一的隐患在于ASP.NET碰到用户浏览器虽然支持COOKIE功能但用户手动关闭COOKIE的话无法判断。但相信这种情况不会太常见，而通常非注册用户访问页面张数也不会超过10张，所以即使存在此类问题对服务器压力也会比较小。&lt;br /&gt; &lt;br /&gt;2、子站点涉及的参数&lt;br /&gt;&lt;br /&gt; 我给每个子站点分配一个SITEID和一个密钥，他们是一一对应的。为什么要给每个子站点分配不同的？因为这样就能引入第三方开发的程序，而无需由第三方来读取网站数据库。同时也可以防止第三方程序密钥泄露造成可以模拟用户登录。&lt;br /&gt; 子站点在转到登录域的时候需要携带两个必要参数：SITEID和要转回的URL地址。SITEID用来让登录域判断要加密时使用的密钥（KEY），转回URL地址用以转回源地址用。&lt;br /&gt; &lt;br /&gt;3、基本登录流程&lt;br /&gt;&lt;br /&gt;  在某子站点“登录”，转到登录域，登录域判断用户未登录（判断依据下述），要求用户输入必要信息（用户名/密码/是否记忆密码/验证码等），用户登录成功后写以下COOKIE信息：用户名、用户ID，用户IP、当前的SESSIONID、COOKIE有效时间（通常为几个小时）。然后用Rijndael算法，以当前的SESSIONID作为IV量，以对应该网站的KEY作为密钥，加密用户名、用户ID、IP、是否自动登录等等信息。同时，在数据库 ONLINEUSER表中将登录信息插入数据库，保存登录人登录状态的SESSION，其实就是保存IV值。将加密后的字符串，连带用户的USERID作为TICKET参数返回给请求的网站，格式样本如下：&lt;br /&gt; http://www.ffsky.cn/index.aspxticket=38_4bku80WzbgHpgk034Wy5pOc%2f4cpIRI%2fLDHKDqITstQM%3d&lt;br /&gt; 其中38即为我的用户名CHOCOBO在数据库的ID号。&lt;br /&gt;  而FFSKY.CN网站判断我在未登录状态，且QUERYSTRING有TICKET参数，则开始尝试解析TICKET参数。首先就是提取USERID和加密后字符串，然后调用PASSPORT认证网站中的一个WEB SERVICE，这个WEB SERVER传入USERID后即会从数据库中读取并返回用户最近的SESSIONID，即IV值。FFSKY.CN网站靠分配给它的密钥和通过WEB服务得到的IV值即获取了我的相关信息。&lt;br /&gt; 获取相关信息后还需要有一点，即防模拟URL登陆，这里用的方式是判断IP地址，即解析数据库中有登录时的IP，然后通过IP地址比对来判断用户是否状态有变。如果A登陆后B直接粘贴A的URL地址是无法正常登陆的. 但同一内网的人如果这样做会怎么样呢？猛一看貌似比较难解决，但这里就需要用到一个小技巧了，就是一些牛X哄哄的安全公司用的一次密码技术。我们在调用 WEBSERVICE是否，在WEBSERVICE传会IV值后即将数据库中对应的IV值置空。也就是说这个KEY只能用一次，这样问题就迎刃而解了。&lt;br /&gt;&lt;br /&gt;4、基本注销流程&lt;br /&gt;&lt;br /&gt;  注销流程其实应该分两个环节，子站注销和验证域注销。流程相当简单，先到子站的LOGINOUT。ASPX，在子站销毁SESSION，再重定向到验证域，在验证域销毁COOKIE中关键信息（USERID/当前SESSIONID等），在数据库中删除相关登录信息，再转回到原子网站。&lt;br /&gt;&lt;br /&gt; 5、自动登录&lt;br /&gt;&lt;br /&gt;  如前所述，用户访问某页面时自动会转到验证域判断是否登录过，而这时如果在验证域发现用户COOKIE中含有PASSWORD通过MD5加密过的信息，则会尝试自动登录机制。同时，如果用户在近期登录成功，即在COOKIE中有USERID信息，则尝试判断该COOKIE是否有效果，判断依据是看IP地址和COOKIE有效期，这里强置两点：1是IP地址必须和初始登录时一致，2是用户首次登录12小时后必须重新登录。如果一切PASS，则重新加密信息后转回请求页。&lt;br /&gt;&lt;br /&gt;6、安全考虑&lt;br /&gt;&lt;br /&gt; 其实安全性主要有以下几方面攻击情况要考虑：&lt;br /&gt; 1）、暴力破密码：&lt;br /&gt; 在登录页加图片验证码，图片可以加强噪点等混淆机制，甚至可以将验证域用HTTPS方式。&lt;br /&gt; 2）、模拟COOKIE：&lt;br /&gt; 能获取某用户COOKIE信息有两类情况：掌握用户主机控制权，通过论坛等地方获取用户COOKIE部分参数内容（跨站攻击）。前者的话已无安全控制可言，而后者由于已经采用单一的域登录，理论上应该不可能通过跨站手法获取访问用户的COOKIE信息了。&lt;br /&gt; 3）、取得密钥模拟：&lt;br /&gt; 一是各子域密钥不同，二是采用Rijndael算法还有个IV量必须通过WEBSERVICE才能获取。两道锁应该比较安全了。&lt;br /&gt; 4）、模拟登陆URL地址&lt;br /&gt; 正如前面所述，通过一次密码的方式在WEBSERVICE中读取SESSIONID（即IV）后即将此值在数据库中去除。这样就可以防止第二方截取URL地址模拟登陆了。&lt;br /&gt;&lt;br /&gt;结语：以上方式基本实现了天幻的SSO系统，其中还有很多小的编程细节和经验说也说8清楚，比如URL编码、取消自动登录、WEBSERVICE的IP验证……等等。此文仅描述流程部分，其中有许多是安全关注的焦点，编程部分还是看需要人的实力吧。这里就不做开源了，免得网站被无谓的攻击 ~O~ 发现以上流程有安全隐患漏洞的请留言，呼呼&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-8426175846273580945?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/8426175846273580945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=8426175846273580945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8426175846273580945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/8426175846273580945'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/sso.html' title='多域单点登录SSO系统的实现'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-563273047554226685</id><published>2008-04-01T22:57:00.000-07:00</published><updated>2008-04-01T22:59:44.586-07:00</updated><title type='text'>Securing Web services</title><content type='html'>&lt;div class="insidepagesbodytext"&gt;    &lt;p&gt;The buzz accompanying Web services today no longer vibrates around system      integration and XML interfaces, but around security — and the frantic, mish-mashed      efforts to create security standards.&lt;/p&gt;Web services are built with standard interfaces based on the Simple Object      Access Protocol (&lt;a href="http://napps.nwfusion.com/links/Encyclopedia/S/531.html"&gt;SOAP&lt;/a&gt;) from the World Wide Web Consortium (W3C). But because SOAP is not secure      at this point, Web services cannot achieve their mission of enabling business-to-business      commerce and integration of business partners' disparate platforms, network      executives say.   &lt;p&gt;Without security in the Web services framework/architecture, development      of other Web services standards for e-commerce also will suffer, including      those to support reliable and asynchronous messaging, business-process workflow      and transactional integrity.&lt;/p&gt;   &lt;p&gt;"Security is a rollout inhibitor today, absolutely," says Mark Jones, vice      president of business development for the National Student Clearinghouse (NSC),      a nonprofit organization in Herndon, Va., that provides university enrollment      and degree verification services to lenders and businesses. NSC knows the      issues firsthand, as it is on the verge of deploying two Web services to streamline      the collection and dispersal of its data to potentially millions of partners.&lt;/p&gt;&lt;!--stopindex--&gt;        &lt;script language="JavaScript"&gt; &lt;!-- var imu; myImage = new Image(); myImagef = new Image(); function resize(){ 	//return; //just comment this out to activate the resize function 	imu = document.getElementById("imu"); 	myImage.src = "http://www.networkworld.com/ads/halfpage.jsp?get=true&amp;ord=011504"; 	setTimeout("getSize()",300); 	setTimeout("finalSize()",1200); }  function finalSize(){ 	if (imu.height &lt; imu =" document.getElementById(" src = "http://www.networkworld.com/ads/halfpage.jsp?get=true&amp;ord=1011504" height ="="" height ="="" height="600;" height ="="" height ="="" height="600;"&gt;&lt;/script&gt;&lt;!--startindex--&gt;               &lt;p&gt;Jones likens the challenge of establishing Web services for partner-to-partner                  trading to using public-key infrastructure and electronic data                  interchange. While standards-based partner-to-partner transactions                  are great conceptually, they're difficult to implement. "Having                  just been through that for 10 or 15 years with EDI, [I know] it                  is a very tough problem to solve," he says. "No one has really                  perfected a way to do partner-to-partner trading yet. So we question                  the evolution of the standards and how well they will work."&lt;/p&gt;               &lt;p&gt;Jones isn't alone. Recent surveys by Hurwitz Group and ZapThink                  show that security is the No. 1 obstacle to adoption of corporate                  Web services.&lt;/p&gt;                               &lt;p&gt;Of course, security can be added to SOAP via extensions, and                  so a flurry of work to do so is in progress — spanning three standards                  bodies that have produced complementary but sometimes overlapping                  protocols (&lt;a href="http://www.networkworld.com/buzz/2002/websec.html#chart"&gt;see graphic&lt;/a&gt;).&lt;/p&gt;                  &lt;p&gt;Extensions will standardize ways for systems to prove their identities, validate      user authorization and access credentials, guarantee confidential transactions,      and ensure integrity and nonrepudiation.&lt;/p&gt;&lt;img src="http://www.networkworld.com/buzz/2002/images/falk_jones.jpg" align="right" height="196" hspace="5" vspace="5" width="372" /&gt;   &lt;p&gt;While waiting on standards ratification and vendor implementation of those      extensions, many network executives are limiting Web services to intranet      projects or improvising security when Web services traverse corporate boundaries.      Such improvisation includes homegrown security, fitting established Internet      standards or proprietary products onto projects, or contracting with third      parties to supply security services. NSC sidestepped the standards maze by      using software from Flamenco Networks to wrap authentication, authorization      and management capabilities around its Web services,  says Doug Falk,      NSC CIO. &lt;/p&gt;   &lt;p&gt;"We probably could have started with weaker encryption and relied on a model      using HTTP-S and authenticating based on a user ID and password. That would      have worked for a period of time until someone raised concerns over that model      being too weak," Falk says.&lt;/p&gt;               &lt;p&gt;&lt;b&gt;&lt;a name="rush"&gt;&lt;/a&gt;The rush is on&lt;/b&gt;&lt;/p&gt;   &lt;p&gt;Meanwhile, XML standards bodies have been busy. The Internet Engineering      Task Force (IETF), the Organization for the Advancement of Structured Information      Standards (OASIS) and the W3C are working on or have completed no fewer than      13 security protocols usable with Web services. These include extensions for      encryption, digital signatures, nonrepudiation and long-accepted standards      such as &lt;a href="http://napps.nwfusion.com/links/Encyclopedia/K/510.html"&gt;Kerberos&lt;/a&gt; that are being folded into the Web services mold.    &lt;/p&gt;               &lt;p&gt;With so many cooks in the kitchen, the industry lacks a clear                  view of how individual Web services security specifications will                  be melded into an interoperable security framework.&lt;/p&gt;               &lt;a name="askthis"&gt;&lt;/a&gt;&lt;img src="http://www.networkworld.com/buzz/2002/images/websecAskThis.gif" align="right" height="404" hspace="5" vspace="5" width="158" /&gt;                &lt;p&gt;To their credit, OASIS and W3C are comparing their efforts with the aim of      clarifying the security work. "If any of these security specifications are      going to work together, we have to work together," says Karl Best, director      of technical operations for OASIS. &lt;/p&gt;   &lt;p&gt;The cooperation began with &lt;a href="http://napps.nwfusion.com/links/Encyclopedia/W/760.html"&gt;WS-Security&lt;/a&gt;, a specification proposed by IBM, Microsoft      and VeriSign in April and turned over to OASIS last month. WS-Security, which      lets Web services pass secure and signed SOAP messages, has at its core the      W3C's XML Encryption and XML Digital Signature and will add six other extensions      for functions such as expressing security policies, trust relationships, federation      and authorization. Then last month, OASIS and W3C sponsored a forum to compare      and contrast work being done by both groups.&lt;/p&gt;   &lt;p&gt;In addition to XML Digital Signature and XML Encryption, W3C is developing      the XML Key Management Specification and a Web Service Architecture that includes      a security framework. Meanwhile, OASIS is developing the Security Assertion      Markup Language (&lt;a href="http://napps.nwfusion.com/links/Encyclopedia/S/539.html"&gt;SAML&lt;/a&gt;) for authentication and authorization,      the Extensible Access Control Markup Language, Service Provisioning Markup      Language and the XML Common Biometric Format.&lt;/p&gt;   &lt;p&gt;The IETF's work centers on standards for transport-level security on which      OASIS and W3C are building application-level security protocols. &lt;/p&gt;               &lt;p&gt;The groups need to develop a conceptual "security stack" model that illustrates                  how various protocols will rely on each other, rather than compete,                  says Ann Thomas Manes, a security expert who works with OASIS                  and W3C and is CTO for Web service security vendor Systinet. "The                  higher-level items take advantage of the lower levels of the stack.                  So WS-Security depends on XML Digital Signature, XML Encryption,                  SAML and SOAP," she says. &lt;/p&gt;               &lt;p&gt;&lt;b&gt;&lt;a name="pushing"&gt;&lt;/a&gt;Corporations pushing ahead&lt;/b&gt;&lt;/p&gt;   &lt;p&gt;Such a model is logical, but generates only passing interest from corporations      on the cutting edge that want to push their Web services over the firewall      now. &lt;/p&gt;   &lt;p&gt;"At this point we are using a standard firewall system with Secure Sockets      Layer encryption, and we have built our own Web services gateway for authentication      and authorization," says Gereon Fredrickson, senior director of technology      products for Galileo International, a provider of data to the travel industry.     &lt;/p&gt;   &lt;p&gt;While Galileo waits for the interoperability that standards promise, a handful      of vendors offer a collection of middleware software and services to boost      Web services security, including BEA Systems, Cape Clear, Flamenco, Grand      Central Networks, IBM, Iona, Kenamea, Microsoft, Oracle, Sonic, Sun, Systinet      and Tibco.&lt;/p&gt;   &lt;p&gt;Galileo, which went live with its first external Web service last month,      is waiting for the security standards landscape to flatten. "There is still      some shake-out that has to happen before we see where the actual standards      will settle. Then we'll see where we can use those," Fredrickson says.&lt;/p&gt;   &lt;p&gt;Signs of a settling have begun in that the WS-Security specification is generally      regarded as a competent starting point. It specifies how communication among      Web services will be secured and describes how to put security protocols to      use within SOAP. WS-Security adds security information to the headers of SOAP      messages using XML Encryption, XML Digital Signatures and identity protocols      such as SAML or Kerberos, an IETF standard.&lt;/p&gt;   &lt;p&gt; "In terms of pure Web services security, we are just starting out,"      says Bob Sutor, director of e-business standards strategy for IBM. "But WS-Security      starts to lay the foundation."&lt;/p&gt;   &lt;p&gt;Settlement also is happening around workflow specifications that will aid      in deploying security at execution points when multiple Web services applications      are tied together across a number of organizations.&lt;/p&gt;   &lt;p&gt;Last month, IBM and Microsoft combined their respective Web Services Flow      Language and XLANG to create the Business Process Execution Language for Web      Services. The language lets users specify a collection of Web services and      the order in which they need to be executed as part of a business process      such as filling an order. It joins similar efforts from Sun on Web Services      Choreography Interface and protocols included in OASIS's electronic business      XML specification. &lt;/p&gt;  &lt;p&gt;With the stages of a business process defined in a workflow, security tenants      such as encryption, authentication and access control can be defined per stage      instead of blanketing the transaction as a whole. The workflow lets certain      forms of security be applied only where they are needed. &lt;/p&gt;   &lt;p&gt;"If you manage the workflow of a transaction, you can trace each step and      make sure security is occurring," says Bernhard Borges, managing director      of the advanced technology group at PricewaterhouseCoopers Consulting. He      says workflow builds a foundation that finally lets multiple Web services      be aggregated into a business transaction.&lt;/p&gt;   &lt;p&gt;"Once you get the bits and pieces of workflow, you can start to apply security,"      Borges says.&lt;/p&gt;   &lt;p&gt;However, experts say it could take two to five years before the standards      are mature enough for corporate customers to make use of them. &lt;/p&gt;   &lt;p&gt;"Without a security and trust infrastructure, Web services will be dead on      arrival," says Phillip Hallam-Baker, principal scientist for VeriSign. "But      people shouldn't be concerned that this is a problem that won't get solved,      because there is very large agreement on the basic approach on how to go about      this."&lt;/p&gt;&lt;table bg border="0" cellpadding="7" cellspacing="0" width="490" style="color:#cde0e7;"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td&gt;       &lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;         &lt;tbody&gt;&lt;tr&gt;                         &lt;td&gt;&lt;span class="sigtext2"&gt;&lt;span style="color:#ae1619;"&gt;&lt;a name="chart"&gt;&lt;/a&gt;A                            standards mishmash&lt;br /&gt;                          &lt;/span&gt;&lt;/span&gt;&lt;span class="sigtext1"&gt;The Organization for the Advancement of                            Structured Information Standards (OASIS) and World Wide                            Web Consortium (W3C) have pinpointed 13 specifications                            likely to form the foundation of a Web services security                            framework.&lt;/span&gt;&lt;br /&gt;            &lt;img src="http://www.networkworld.com/graphics/templates/spacer.gif" height="10" width="1" /&gt;&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;           &lt;td bg style="color:#000000;"&gt;&lt;div class="nolead"&gt;               &lt;table border="0" cellpadding="2" cellspacing="1" width="100%"&gt;                 &lt;tbody&gt;&lt;tr bg style="color:#ffffcc;"&gt;                  &lt;td&gt;&lt;b&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Standard                    (proposed or final) &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;                 &lt;td&gt;&lt;b&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Standards                    body/Status &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;                 &lt;td&gt;&lt;b&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Description                    &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                                  &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;SAML                                   &lt;br /&gt;                                  Security Assertion Markup Language &lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;OASIS/Final                      vote&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Exchanges                      user and machine authentication and authorization information.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                                  &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;XACML&lt;br /&gt;                                  Extensible Access Control Markup Language&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;OASIS/Committee                      review&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Expresses                      policies for information access. &lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                                  &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;SPML&lt;br /&gt;                                  Service Provisioning Markup Language&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;OASIS/In                      committee&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Defines                      how to exchange user, resource and service provisioning information.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                    &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;WS-Security&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;OASIS/Forming                      technical committee&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Extends                      Simple Object Access Protocol with XML security protocols.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                                  &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;XrML&lt;br /&gt;                                  Extensible Rights Management Language &lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;OASIS/Gathering                      requirements&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Manages                      copyrights of digital content.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                                  &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;XCBF&lt;br /&gt;                                  XML Common Biometric Format&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;                      OASIS/Defining scope of work&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Defines                      XML codings for Common Biometric Exchange File Format.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                    &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;XML                      Digital Signature&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;W3C/Completed&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Provides                      integrity, signature assurance and non-repudiation.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                    &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;XML                      Encryption&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;W3C/Final                      vote in committee&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Encrypts                      and decrypts digital content.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                                  &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;XKMS&lt;br /&gt;                                  XML Key Management Specification&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;W3C/Working                      draft&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Provides                      a method for obtaining cryptographic keys.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                    &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Transport                      Layer Security/ Secure Sockets Layer&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;                      IETF/RFC 2246&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Secures                      Internet traffic between two points.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                                  &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;SASL&lt;br /&gt;                                  Simple Authentication and Security Layer&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;IETF/RFC                      2222&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Adds                      authentication to connection-based protocols.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                    &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Kerberos&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;IETF/RFC                      1510&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Provides                      tickets for authenticating users.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;                 &lt;tr bg valign="top" style="color:#cde0e7;"&gt;                                  &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;BEEP&lt;br /&gt;                                  Blocks Extensible Exchange Protocol&lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;IETF/RFC                      3080  &lt;/span&gt;&lt;/td&gt;                   &lt;td&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:78%;"&gt;Helps                      establish quality of service over  the Internet.&lt;/span&gt;&lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;     &lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;                                &lt;!-- CONTENT ENDS HERE --&gt;&lt;!--stopindex--&gt;              &lt;img src="http://www.networkworld.com/graphics/templates/spacer.gif" alt="" height="2" width="2" /&gt;&lt;br /&gt; 	&lt;h3&gt;Related links:&lt;/h3&gt;&lt;div class="insidepagesbodytext"&gt;  			&lt;!-- RELATED LINKS GO HERE --&gt;         &lt;p&gt;&lt;a href="http://www.ietf.org/html.charters/simple-charter.html"&gt;IETF's            SIMPLE working group:&lt;/a&gt;&lt;/p&gt;            &lt;p&gt;&lt;a href="http://www.3gpp.org/"&gt;Third Generation Partnership Project:&lt;/a&gt;&lt;/p&gt;            &lt;p&gt;&lt;a href="http://www.ostermanresearch.com/results/surveyresults_im0302.htm"&gt;Osterman            Research Survey on Instant Messaging:&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://napps.nwfusion.com/topics/webservices.html"&gt;Web    services research center&lt;/a&gt;&lt;br /&gt;          Get the latest news, opinions and more.&lt;/p&gt;            &lt;p&gt;&lt;a href="http://www.networkworld.com/buzz/2002/%22/ecomm/2002/maze/maze.html"&gt;Web services quandary&lt;/a&gt;&lt;br /&gt;          Tomorrow's business-to-business e-comm requires navigating the maze            of conflicting Web services standards.&lt;br /&gt;          Network World Electronic Commerce Issue, 02/18/02.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.networkworld.com/ecomm/2002/winner/winner.html"&gt;Assembling    a top-of-the-line Web services model&lt;br /&gt;          &lt;/a&gt;Ford Credit wins Network World's 2002 E-comm Innovator Award with            an open-standards infrastructure that saves the company carloads of            money.&lt;br /&gt;          Network World Electronic Commerce Issue, 02/18/02&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.networkworld.com/news/2002/0121webservices.html"&gt;Top Web services worry: Security&lt;br /&gt;  &lt;/a&gt;The absence of security and reliability is proving to be a major stumbling    block in convincing companies that Web services can thrive outside of corporate    firewalls.&lt;br /&gt;  Network World, 01/21/02 &lt;/p&gt;       &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-563273047554226685?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/563273047554226685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=563273047554226685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/563273047554226685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/563273047554226685'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/securing-web-services_01.html' title='Securing Web services'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-7063499409820539855</id><published>2008-04-01T22:31:00.000-07:00</published><updated>2008-04-01T22:32:34.434-07:00</updated><title type='text'>Java开源身份验证</title><content type='html'>&lt;div id="dictc_PWDECMEC1" style="padding: 1px 15px 5px;"&gt;JOSSO(Java Open Single Sign-On)是一个开源的J2EE-based的SSO&lt;span style="color:#ff0000;"&gt;(SSO：单一登录技术是一种认证和授权机制，它允许注册用户只需要在任一成员网站上登录一次，而后授权访问其他连接的分支网站，无需再进行验证登录)&lt;/span&gt;基础结构.它的目的是提供一种用来解决在统一平台上进行用户集中认证的方案.&lt;p&gt;&lt;a href="http://www.open-open.com/open78062.htm"&gt;更多JOSSO信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC2');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; Acegi Security &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC2" src="http://www.open-open.com/resource/von2.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC2" style="padding: 1px 15px 5px; display: none;"&gt;Acegi Security为Spring Framework提供一个兼容的安全认证服务(security services).&lt;p&gt;&lt;a href="http://www.open-open.com/open82962.htm"&gt;更多Acegi Security信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC3');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; Atlassian Seraph &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC3" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC3" style="padding: 1px 15px 5px;"&gt;Seraph 是一个非常简单,可插入的J2EE Web应用程序安全框架.它主要基于以下几个核心组成部分:拦截器,它允许在安全事件发生(如登录/登出)的前后运行相应的代码.认证器,依赖一个后台用 户系统来验证一个用户.控制器,这个控制器用来管理安全机制是否启用和失效.角色权限设置等.&lt;p&gt;&lt;a href="http://www.open-open.com/open95462.htm"&gt;更多Atlassian Seraph信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC4');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; Kasai &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC4" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC4" style="padding: 1px 15px 5px;"&gt;Kasai是一个开源100%基于Java的认证与授权框架.它提供一个完善的,易于管理的许可方案来与你应用程序相结合的.这个框架的目的是为多用户应用程序提供一个使用简单但强大的安全环境.&lt;p&gt;&lt;a href="http://www.open-open.com/open95662.htm"&gt;更多Kasai信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC5');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; Gabriel &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC5" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC5" style="padding: 1px 15px 5px;"&gt;Gabriel是一用户权限验证安全框架.它的API很小并且易于使用.&lt;p&gt;&lt;a href="http://www.open-open.com/open95762.htm"&gt;更多Gabriel信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC6');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; Shibboleth &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC6" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC6" style="padding: 1px 15px 5px;"&gt;Shibboleth是一个针对SSO的开源项目。Shibboleth项目主要应用在校园内Web资源共享，以及校园间的应用系统的用户身份联合认证.&lt;p&gt;&lt;a href="http://www.open-open.com/open95862.htm"&gt;更多Shibboleth信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC7');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; OpenSAML &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC7" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC7" style="padding: 1px 15px 5px;"&gt;OpenSAML1.1是一组开源的Java与C++类库.它实现了SAML(Security Assertion Markup Language)1.0与1.1规范.  &lt;p&gt;&lt;a href="http://www.open-open.com/open95962.htm"&gt;更多OpenSAML信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC8');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; SourceID &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC8" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC8" style="padding: 1px 15px 5px;"&gt;SourceID开源的联合身份认证管理.它提供了实现SAML,ID-FF和WS-Federation安全协议的工具包与项目.&lt;p&gt;&lt;a href="http://www.open-open.com/open96062.htm"&gt;更多SourceID信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC9');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; jGuard &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC9" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC9" style="padding: 1px 15px 5px;"&gt;jGuard是一个基于JAAS(java authentication and authorization security)的Java安全框架.这个开源项目主要是简单地解决Web应用程序访问控制问题.&lt;p&gt;&lt;a href="http://www.open-open.com/open96462.htm"&gt;更多jGuard信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC10');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; Jpam &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC10" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC10" style="padding: 1px 15px 5px;"&gt;Jpam 是一个连接Java与PAM的一个中间件.PAM(Pluggable Authentication Modules)是一个在Linux,Solaris,Mac OS X和其它Unix系统上使用的标准安全体系.JPAM允许运行在这些平台上的Java程序使用PAM认证. &lt;p&gt;&lt;a href="http://www.open-open.com/open96562.htm"&gt;更多Jpam信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC11');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; Sun's XACML &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC11" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC11" style="padding: 1px 15px 5px;"&gt;这是一个开源的&lt;span style="font-size:85%;"&gt;访问控制策略引擎&lt;/span&gt;.它用Java实现了所有XACML1.1&lt;span style="font-size:85%;"&gt;标准&lt;/span&gt;必须实现的规则,同时也实现了一些可选的规则.&lt;p&gt;&lt;a href="http://www.open-open.com/open96762.htm"&gt;更多Sun's XACML信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC12');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; Yale CAS &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC12" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC12" style="padding: 1px 15px 5px;"&gt;耶 鲁大学开发的单点登录（Single Sign On）系统称为CAS（Central Authentication Server）被设计成一个独立的Web应用程序(cas.war)。它目前用几个Java Servlet作为实现并且通过一个Https服务器来运行。&lt;p&gt;&lt;a href="http://www.open-open.com/open104562.htm"&gt;更多Yale CAS信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC13');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; CAS Generic Handler &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC13" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC13" style="padding: 1px 15px 5px;"&gt;CAS Generic Handler是一个插件它使得CAS具备利用不同方法((LDAP, database, files, NIS,...)来验证用户的能力。&lt;p&gt;&lt;a href="http://www.open-open.com/open104662.htm"&gt;更多CAS Generic Handler信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC14');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; JCas &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC14" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC14" style="padding: 1px 15px 5px;"&gt;JCas实现了一个免费,开源基于Java的CAS服务器.&lt;p&gt;&lt;a href="http://www.open-open.com/open108662.htm"&gt;更多JCas信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC15');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; OSUser &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC15" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC15" style="padding: 1px 15px 5px;"&gt;OSUser是OpenSymphony框架的一部分，它为用户管理提供了一组易于使用的API.这组提供的功能包括：&lt;br /&gt;  证书(Credentials)-用于验证用户的身份；&lt;br /&gt;  访问控制(Access Control)-决定是否允许用户去执行某一个任务；&lt;br /&gt;  管理(Management)-用于修改基础数据;&lt;br /&gt;  概要(Profile)-用户的个人详细资料和数据。&lt;br /&gt;OSUser当前还没有正式发布但是可以通过CVS下载到1.0版本的源码包。完整的OSUser1.0版本也将很快会发布。&lt;p&gt;&lt;a href="http://www.open-open.com/open127962.htm"&gt;更多OSUser信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC16');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; JSecurity &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC16" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC16" style="padding: 1px 15px 5px;"&gt;JSecurity是一个强大、灵活的Java开源安全框架。它能够简捷地处理认证、授权，集成session管理和单点登录(SSO：single sign-on)。&lt;p&gt;&lt;a href="http://www.open-open.com/open139962.htm"&gt;更多JSecurity信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC17');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; OpenSSO &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC17" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC17" style="padding: 1px 15px 5px;"&gt;Open Web SSO项目是SSO(单一登录)的一个开源实现。OpenSSO为部署在各种不同Web或应用服务器上的Web应用提供集中身份认证功能。这个项目基于&lt;a class="nodecor" href="http://www.sun.com/software/products/access_mgr/index.xml"&gt;Sun Java&lt;sup&gt;&lt;span style="font-size:-2;"&gt;TM&lt;/span&gt;&lt;/sup&gt; System Access Manager&lt;/a&gt;,核心代码之上。&lt;p&gt;&lt;a href="http://www.open-open.com/open161562.htm"&gt;更多OpenSSO信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC18');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; JBoss SSO Framework &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC18" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC18" style="padding: 1px 15px 5px;"&gt;JBoss SSO Framework是一个组件集能够很容易集成到现有的web应用中提供单一登录功能.该框架已经能够支持一些重要的SSO标准如SAML。整个系统包括以下组件：&lt;br /&gt;&lt;span style="font-size: 8.5pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;&lt;o:p&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size: 8.5pt; line-height: 125%; font-family: 宋体;"&gt;&lt;span&gt;&lt;strong&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;1.联合服务器(Federation Server)–&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: 宋体;"&gt;一个联合服务器用于为放置在不同安全域&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;(security domain)&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: 宋体;"&gt;中的&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;web&lt;/span&gt;&lt;span&gt;应用程序安全地传播Federation Token。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.Token编排框架(Token Marshalling Framework)–&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: 宋体;"&gt;这是一组灵活的&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;/&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: 宋体;"&gt;可插件的&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;Java API&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: 宋体;"&gt;用来&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;marshal/unmarshal&lt;/span&gt;&lt;span&gt;一个&lt;strong&gt;Federation Token&lt;/strong&gt;。该系统默认提供一个&lt;strong&gt;SAML&lt;/strong&gt;兼容的编排器&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;(Marshaller) 。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;3.身份管管理框架(Identity Management Framework)–&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: 宋体;"&gt;这是一组灵活的&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;/&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: 宋体;"&gt;可插件的&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;Java API&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: 宋体;"&gt;用来连接中中央身份存储库&lt;/span&gt;&lt;span&gt;(Identity Store)。该系统默认提供一个&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 125%; font-family: Helvetica;" lang="EN-US"&gt;Provider&lt;/span&gt;&lt;span&gt;来连接基于LDAP的身份存储库。&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p&gt;&lt;a href="http://www.open-open.com/open169962.htm"&gt;更多JBoss SSO Framework信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC19');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; openid4java &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC19" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC19" style="padding: 1px 15px 5px;"&gt;openid4java这个Java类包能够为Java Web应用添加OpenID认证。&lt;p&gt;&lt;a href="http://www.open-open.com/open187262.htm"&gt;更多openid4java信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC20');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; JA-SIG CAS &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC20" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC20" style="padding: 1px 15px 5px;"&gt;JA-SIG CAS（Central Authentication Service）为Web应用系统提供了单点登录服务。它的特性包括：一个开放和具有很好文档支持的协议；一个Java开源服务器组件；提供多种类型的客 户端包括Java、.Net、PHP、Perl、Apache、uPortal等；能够与uPortal、BlueSocket、TikiWiki、 Mule、 Liferay、Moodle集成使用。&lt;p&gt;&lt;a href="http://www.open-open.com/open200262.htm"&gt;更多JA-SIG CAS信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h4 onclick="DictFold('PWDECMEC21');"&gt; &lt;div class="d_left"&gt;&lt;img src="http://www.open-open.com/resource/icon_1.gif" /&gt; JRadius &lt;/div&gt;&lt;div class="d_right"&gt;&lt;img id="dicttoggle_PWDECMEC21" src="http://www.open-open.com/resource/von.gif" /&gt;&lt;/div&gt;&lt;/h4&gt;&lt;div id="dictc_PWDECMEC21" style="padding: 1px 15px 5px;"&gt;JRadius 是一个开源的Java RADIUS客户端与服务器框架。JRadius客户端用于帮助你在你的Java应用程序中实现RADIUS验证和账号管理。JRadius服务器是一个 RADIUS处理引擎通过FreeRADIUS中的rlm_jradius模块进行存取/访问。&lt;p&gt;&lt;a href="http://www.open-open.com/open203162.htm"&gt;更多JRadius信息&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-7063499409820539855?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/7063499409820539855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=7063499409820539855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7063499409820539855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/7063499409820539855'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/java.html' title='Java开源身份验证'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-6771637188859026023</id><published>2008-04-01T22:29:00.000-07:00</published><updated>2008-04-01T22:31:11.225-07:00</updated><title type='text'>Securing Web Services with Single Sign-On</title><content type='html'>&lt;p&gt; Web Services are arguably the most heterogenous distributed technology ever. A typical Web services setup will make use of many different technologies, object models and programming languages, which might include simple Perl scripts and standalone Web services implemented in C++ or Java, through to sophisticated applications build on top of J2EE application servers. Being able to interact across such diverse environments is one of the strengths of Web services, but it has a price: it becomes difficult to secure such systems. It is hard to find a common security standard for all involved technologies. Today we will talk about single sign-on, the security architecture that brings a flexible an interoperable way of securing heterogenous systems. &lt;/p&gt;  &lt;h2&gt;Single Sign-On - The Basic Concept&lt;/h2&gt; &lt;p&gt;The main problem with using most common security architectures with Web services is that the security infrastructure is very distributed and these architectures usually require that key security features and alghorithms are implemented by all parts of the system. The unfortunate truism of all security systems is that the level of security of the whole system is the same as the level of the security of its weakest part. This obviously leads to inflexibility because we have to either avoid certain technologies or compromise the security of a whole system. Avoiding technologies is generally impractical and negates the very reason Web services are so popular: they are able to bridge between any technology. One possible solution to this problem is the single sign-on (SSO) architecture. &lt;/p&gt;  &lt;p&gt;The basic idea of the single sign-on security architecture is to shift the complexity of the security architecture to the so-called SSO service and thus release other parts of the system from certain security obligations. In the SSO architecture, all security alghorithms are found in the single SSO server which acts as the single and only authentication point for a defined domain. Thus, there is a second benefit to an SSO approach to autnentication/registration: a user has to sign-on only once, even though he may be interacting with many different secure elements within a given domain. The SSO server, which can itself be a Web service, acts as the wrapper around the existing security infrastructure that exports various security features like authentication and authorization. We will concentrate mainly on authentication in the SSO environment in this article. Actually, there are two scenarios of the SSO. We will start with the simplest first. &lt;/p&gt;  &lt;h2&gt;The simple SSO scenario&lt;/h2&gt; &lt;p&gt;In the simple SSO scenario, the authenticated party first calls the SSO server and requests the authentication token that identifies it in the particular domain. In order to get the token, it must first provide the correct authentication credentials. There are various forms for those credentials: it might be, for example, a simple username/password or certificate, but other methods can be implemented. The SSO server performs a validation of the users' credentials using the underlying security infrastructure, and only then issues a ticket that the calling application uses for authentication against other applications. In the simple scenario, the token doesn't impose any specific information, it is simply the unique identification of the user in some defined scope and time. After the invoked application receives the token, it validates it by passing it to the SSO server that then performs the actual checks. The following picture illustratives the concept: &lt;/p&gt;  &lt;p align="center"&gt; &lt;img src="http://www.theserverside.com/tt/articles/content/Systinet-web-services-part-6/sso_simple.gif" /&gt;&lt;br /&gt;&lt;i&gt;Figure 1: The Simple SSO Scenario&lt;/i&gt; &lt;/p&gt;  &lt;p&gt; The main advantages of the SSO approach are evident:   &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Encapsulation&lt;/b&gt; of the underlying security infrastructure in the SSO server. Implementation, deployment and maintenance are much easier as all communicating parties in the distributed system don't need to individually implement all of the security features and mechanisms.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;The SOAP interface to the SSO server makes the SSO architecture &lt;b&gt;universal&lt;/b&gt;. As we mentioned earlier, the SSO is itself a Web service. If the SSO server exposes the WSDL of its interface, the SSO API can be instantly generated and made available.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;The SSO server &lt;b&gt;enhances security&lt;/b&gt; of the whole system as the security credentials don't need to be passed around. The only point that accepts security credentials is the SSO server itself. Moreover, the SSO solution often allows federation, so the authentication can be performed in a broad scope (outside of the particular security domain) while the security credentials stay within the particular security domain.&lt;/li&gt;&lt;/ul&gt;  &lt;br /&gt;&lt;h2&gt;Advanced SSO - using SAML&lt;/h2&gt; &lt;p&gt; SSO server invocations were necessary in the previous simple SSO scenario each time the user was challenged for identity verification. A more advanced approach permits the token itself to contain some valuable security information that allows validation without having to call the SSO server each time. The token contains the authentication or authorization information. This information is 'signed' by the SSO server, so provided the token recipient trusts this server, it doesn't have to do any further verification. The described scenario is outlined in the following diagram: &lt;/p&gt;  &lt;p align="center"&gt; &lt;img src="http://www.theserverside.com/tt/articles/content/Systinet-web-services-part-6/sso_saml.gif" /&gt;&lt;br /&gt;&lt;i&gt;Figure 2: The enhanced SSO Scenario&lt;/i&gt; &lt;/p&gt;  &lt;p&gt; There is a new standard for exchanging security-related information in XML called &lt;a href="http://www.oasis-open.org/committees/security/" target="_blank"&gt;Security Assertions Markup Language (SAML)&lt;/a&gt;. This is currently being completed at &lt;a href="http://www.oasis-open.org/" target="_blank"&gt;OASIS&lt;/a&gt; and its first release is expected at the time of this article's publishing. Basically, the security information described by SAML is expressed in the form of assertion statements about security subjects (e.g. users, machines or services). SAML defines the protocol by which the service consumer issues the SAML request and the so-called SAML authority returns the SAML response with assertions. There are three kinds of assertions: &lt;/p&gt;  &lt;blockquote&gt;   The &lt;b&gt;Authentication&lt;/b&gt; statement informs about the authentication of a particular subject in a specific time and scope.&lt;br /&gt;  The &lt;b&gt;Authorization decision&lt;/b&gt; allows or denies a subject access to a specific resource.&lt;br /&gt;  The &lt;b&gt;Attributes&lt;/b&gt; further qualify the subject (e.g. credit line info, citizenship etc.).&lt;br /&gt;&lt;/blockquote&gt;  &lt;p&gt;The use of SAML isn't limited to the SSO scenario. It can be used in a much broader sense. If our Web services applications understand SAML it shouldn't be difficult to flexibly reconfigure the security architecture without lenghty re-coding. &lt;/p&gt;  &lt;p&gt;You can take a look at a the SAML authorization request below. Notice that it contains the user credentials (username and encrypted password in our case) and some descriptions like response requirements, credentials types, etc. &lt;/p&gt;  &lt;pre&gt;&lt;samlp:Request MajorVersion="1" MinorVersion="0"&lt;br /&gt; RequestID="1fgtTGzMXSqpN++/LcFpBmZWrQg="&gt;&lt;br /&gt; &lt;samlp:respondwith&gt;AuthenticationStatement&lt;/samlp:RespondWith&gt;&lt;br /&gt;   &lt;samlp:authenticationquery&gt;&lt;br /&gt;     &lt;saml:subject&gt;&lt;br /&gt;       &lt;saml:nameidentifier name="test"&gt;&lt;br /&gt;       &lt;saml:subjectconfirmation&gt;&lt;br /&gt;         &lt;saml:confirmationmethod&gt;&lt;br /&gt;           http://www.oasis-open.org/committies/security/docs/draft-sstc-core-25/password&lt;br /&gt;         &lt;/saml:ConfirmationMethod&gt;&lt;br /&gt;         &lt;saml:subjectconfirmationdata&gt;&lt;br /&gt;           cGFzc3dvcmQ=&lt;br /&gt;         &lt;/saml:SubjectConfirmationData&gt;&lt;br /&gt;       &lt;/saml:SubjectConfirmation&gt;&lt;br /&gt;     &lt;/saml:Subject&gt;&lt;br /&gt;   &lt;/samlp:AuthenticationQuery&gt;&lt;br /&gt;&lt;/samlp:Request&gt;&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;The response to this request contains the authentication assertion with one attribute/condition that specifies the time period when the authentication is valid: &lt;/p&gt;  &lt;pre&gt;&lt;samlp:Response InResponseTo="1fgtTGzMXSqpN++/LcFpBmZWrQg="&lt;br /&gt; MajorVersion="1" MinorVersion="0"&lt;br /&gt; ResponseID="upuSGdmqx7ov01mExYlt+6bDCWE="&gt;&lt;br /&gt; &lt;samlp:status&gt;&lt;br /&gt;   &lt;samlp:statuscode value="samlp:Success"&gt;&lt;br /&gt; &lt;/samlp:Status&gt;&lt;br /&gt; &lt;saml:Assertion AssertionID="+1UyxJDBUza+ao+LqMrE98wmhAI="&lt;br /&gt;   IssueInstant="2002-03-03T14:33:58.456" Issuer="WASPCard"&lt;br /&gt;   MajorVersion="1" MinorVersion="0"&gt;&lt;br /&gt;   &lt;saml:Conditions NotBefore="2002-03-03T14:33:58.466"&lt;br /&gt;     NotOnOrAfter="2002-03-03T15:03:58.466"/&gt;&lt;br /&gt;     &lt;saml:AuthenticationStatement&lt;br /&gt;       AuthenticationInstant="2002-03-03T14:33:55.201"&lt;br /&gt;       AuthenticationMethod="http://www.oasis-open.org/committies/security/docs/draft-sstc-core-25/password"&gt;&lt;br /&gt;         &lt;saml:subject&gt;&lt;br /&gt;           &lt;saml:nameidentifier name="test" securitydomain="card:SQLDatabase"&gt;&lt;br /&gt;           &lt;saml:subjectconfirmation&gt;&lt;br /&gt;             &lt;saml:confirmationmethod&gt;&lt;br /&gt;               http://www.oasis-open.org/committies/security/docs/draft-sstc-core-25/password&lt;br /&gt;             &lt;/saml:ConfirmationMethod&gt;&lt;br /&gt;           &lt;/saml:SubjectConfirmation&gt;&lt;br /&gt;         &lt;/saml:Subject&gt;&lt;br /&gt;       &lt;/saml:AuthenticationStatement&gt;&lt;br /&gt; &lt;/saml:Assertion&gt;&lt;br /&gt;&lt;/samlp:Response&gt;&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt; &lt;b&gt;NOTE&lt;/b&gt;: The SAML authentication assertion is signed, so the receiving party can easily do the proof-of-origin check and decide if it trusts the SAML assertion issuer. &lt;/p&gt; &lt;br /&gt;&lt;h2&gt;Installation&lt;/h2&gt; &lt;p&gt;We will need to install Systinet WASP Server Advanced and WASP Card in order to successfully run the following demos. This chapter outlines only basic steps of the installation process. if you want to know further details, please follow links marked &lt;i&gt;Detailed info&lt;/i&gt; in the text. &lt;/p&gt;  &lt;p&gt; &lt;b&gt;NOTE&lt;/b&gt;: You'll need to download the latest (3.0.3 final) release of the WASP Server in order to successfully run the demos. &lt;/p&gt;  &lt;p&gt;   &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Make sure that the Sun Java SDK 1.3.x is installed on your machine.&lt;/li&gt;&lt;li&gt;Copy the &lt;i&gt;jaas.jar&lt;/i&gt; archive from the Sun JAAS 1.0 package (you can download it from &lt;a href="http://java.sun.com/products/jaas/index-10.html" target="_blank"&gt;http://java.sun.com/products/jaas/index-10.html&lt;/a&gt;) to the &lt;i&gt;lib\ext&lt;/i&gt; subdirectory of all installations of your Java Runtime Environment. &lt;/li&gt;&lt;li&gt;Copy the &lt;i&gt;jce1_2_1.jar&lt;/i&gt;, &lt;i&gt;local_policy.jar&lt;/i&gt;, &lt;i&gt;sunjce_provider.jar&lt;/i&gt; and &lt;i&gt;US_export_policy.jar&lt;/i&gt; archives from the Sun JCE 1.2.1 package (you can download it from &lt;a href="http://java.sun.com/products/jce/index-121.html" target="_blank"&gt;http://java.sun.com/products/jce/index-121.html&lt;/a&gt;) to the &lt;i&gt;lib\ext&lt;/i&gt; subdirectory of all installations of your Java Runtime Environment.&lt;/li&gt;&lt;li&gt;Change the following section in the java.security file in all installations of your Java Runtime Environment from:&lt;br /&gt;&lt;br /&gt;    &lt;tt&gt;      security.provider.1=sun.security.provider.Sun&lt;br /&gt;     security.provider.2=com.sun.rsajca.Provider&lt;br /&gt;    &lt;/tt&gt;    &lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;    &lt;tt&gt;      security.provider.1=com.sun.crypto.provider.SunJCE&lt;br /&gt;     security.provider.2=au.net.aba.crypto.provider.ABAProvider&lt;br /&gt;     security.provider.3=sun.security.provider.Sun&lt;br /&gt;     security.provider.4=com.sun.rsajca.Provider&lt;br /&gt;    &lt;/tt&gt;&lt;br /&gt;     &lt;b&gt;NOTE&lt;/b&gt;: There are usually at least two installations of the Java Runtime Environment (JRE) on your computer. One is in the Java SDK in its &lt;i&gt;jre&lt;/i&gt; subfolder and the other is in the &lt;i&gt;JavaSoft\JRE&lt;/i&gt; subdirectory of the main Program Files directory (e.g. C:\Program Files\JavaSoft\JRE. You have to install JAAS 1.0, JCE 1.2.1 and change the &lt;i&gt;java.security&lt;/i&gt; file in both JREs. See more details about the security installation requirements &lt;a href="http://www.systinet.com/products/wasp_advanced/doc/htmldata/installation_guide_body.html#security_pre" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;    &lt;/li&gt;&lt;li&gt;Download and install the Sun J2EE. You will find the software &lt;a href="http://java.sun.com/j2ee/download.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Download and install WASP Server Advanced for Java version 3.0.3. You can download it from &lt;a href="http://www.systinet.com/products/wasp_advanced/download/license.html" target="_blank"&gt;http://www.systinet.com/products/wasp_advanced/download/license.html&lt;/a&gt;. Then you will need to unzip it and run the install.bat script from its &lt;i&gt;bin&lt;/i&gt; subdirectory. The more detailed description of the WASP Server installation is.&lt;/li&gt;&lt;li&gt;Install the WASP Server security by running the &lt;i&gt;install-security.bat&lt;/i&gt; script from the WASP &lt;i&gt;bin&lt;/i&gt; subdirectory. Enter all default values except the server host name (the first entry) where you should specify your hostname (I recommend you use 'localhost'). You can get more details about the WASP security installation at &lt;a href="http://www.systinet.com/products/wasp_advanced/doc/htmldata/installation_guide_body.html#security_install" target="_blank"&gt;http://www.systinet.com/products/wasp_advanced/doc/htmldata/installation_guide_body.html#security_install&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Download the WASP Card from &lt;a href="http://www.systinet.com/eap/wasp_card/download/license.html" target="_blank"&gt;http://www.systinet.com/eap/wasp_card/download/license.html&lt;/a&gt;. Copy the &lt;i&gt;cloudclient.jar&lt;/i&gt; and &lt;i&gt;RmiJdbc.jar&lt;/i&gt; archives from the &lt;i&gt;lib\cloudscape&lt;/i&gt; subdirectory of your J2EE installation to the &lt;i&gt;etc\lib&lt;/i&gt; subdirectory of your WASP Card installation directory.&lt;/li&gt;&lt;li&gt;Download the &lt;a href="http://www.theserverside.com/tt/articles/content/Systinet-web-services-part-6/6.zip" target="_blank"&gt;demo files&lt;/a&gt;. Unzip them to the &lt;i&gt;c:&lt;/i&gt; drive, so they reside in the &lt;i&gt;c:\wasp_demo&lt;/i&gt; directory. Then change environment variables to point to directories with your Java, J2EE, WASP Server and WASP Card installations in the &lt;i&gt;env.bat&lt;/i&gt; in the &lt;i&gt;bin&lt;/i&gt; subdirectory of the demo sources. Then start the Cloudscape database using the &lt;i&gt;startDB.bat&lt;/i&gt; script from the &lt;i&gt;bin&lt;/i&gt; subdir of the demo sources installation.&lt;/li&gt;&lt;li&gt;Install the WASP Card by running the &lt;i&gt;install.bat&lt;/i&gt; script from the &lt;i&gt;bin&lt;/i&gt; subdirectory of the WASP Card installation. Accept all default values that the script offers. See more details about the WASP Card installation &lt;a href="http://www.systinet.com/eap/wasp_card/doc/installation_guide.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Stop the WASP Server using the &lt;i&gt;stopserver.bat&lt;/i&gt; script from the &lt;i&gt;bin&lt;/i&gt; subdir of the demo sources installation. DON'T STOP THE SERVER OTHER WAY THAN with the &lt;i&gt;stopserver.bat&lt;/i&gt; script or all the changes done by the WASP Card installation will be lost.&lt;/li&gt;&lt;li&gt;Start the WASP Server again using the &lt;i&gt;startserver.bat&lt;/i&gt; script.&lt;/li&gt;&lt;li&gt;Run the WASP Card HTTP browser console by pointing your browser to &lt;a href="http://localhost:6060/waspcard/console" target="_blank"&gt;http://localhost:6060/waspcard/console&lt;/a&gt; and use the Register link on the left to register a user with username 'test' and password 'password'. You'll also need to specify some other attributes like e-mail address, full name etc.&lt;br /&gt;&lt;br /&gt;    &lt;b&gt;NOTE&lt;/b&gt;: Depending on the Cloudscape version, you may get an error when issuing the first command in the WASP Card console because the database upgrade might take place. The subsequent commands should work without any problem. &lt;/li&gt;&lt;/ol&gt;   &lt;p&gt; Now we're ready to run the demos. &lt;/p&gt; &lt;br /&gt; &lt;h2&gt;Simple SSO scenario - the hands-on example&lt;/h2&gt; &lt;p&gt; We're still trying to make money in a bear market: the simple stock quote example we've used in past tutorials demonstrates the first, simple SSO approach. All SSO functionality is implemented in the client and server header processors (&lt;i&gt;com.systinet.demos.simple.ClientAuthenticator&lt;/i&gt; and &lt;i&gt;com.systinet.demos.simple.ServerAuthenticator&lt;/i&gt;). The client header processor takes the username and password from the call context where it was stored by the client application (&lt;i&gt;com.systinet.demos.simple.StockClient&lt;/i&gt;), binds to the SSO server web service and then obtains the authentication token by calling its &lt;i&gt;generateAuthenticationToken&lt;/i&gt; method providing it with the passed username and password. The token is attached to the SOAP message that is traveling to the stock quote web service. There, it is extracted from the SOAP message by the server header processor (&lt;i&gt;com.systinet.demos.simple.ServerAuthenticator&lt;/i&gt;) that binds to the SSO web service and calls its &lt;i&gt;verifyAuthenticationToken&lt;/i&gt; method for the token authentication. The authentication result and the username are passed through the call context to the server-side web service. Note that there are some simple token caching alghorithms implemented on both client and the server. Also, the &lt;a href="http://www.theserverside.com/tt/articles/content/Systinet-web-services-part-3" target="_blank/article.html"&gt;secure SOAP communication&lt;/a&gt; is used for talking to the SSO web service as the passed token must obviously be kept private. &lt;/p&gt;  &lt;p&gt; &lt;b&gt;NOTE&lt;/b&gt;: All scripts used in the following steps are located in the &lt;i&gt;bin&lt;/i&gt; subdirectory of the &lt;a href="http://www.theserverside.com/tt/articles/content/Systinet-web-services-part-6/6.zip"&gt;demo files&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt; Follow those steps to run the demo:   &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Run the Cloudscape DB server using the &lt;i&gt;startDB.bat&lt;/i&gt; script.&lt;/li&gt;&lt;li&gt;Run the WASP Server with the &lt;i&gt;startserver.bat&lt;/i&gt; script.&lt;/li&gt;&lt;li&gt;Deploy the simple SSO demo web service using the &lt;i&gt;deploy_simple.bat&lt;/i&gt; script.&lt;/li&gt;&lt;li&gt;Run the client application with the &lt;i&gt;run_simple.bat&lt;/i&gt; script and look at the client and server consoles.&lt;/li&gt;&lt;li&gt;Undeploy the simple SSO demo web service with the &lt;i&gt;undeploy_simple.bat&lt;/i&gt; script.&lt;/li&gt;&lt;/ol&gt; &lt;b&gt;NOTE&lt;/b&gt;: You'll need to specify the WASP admin username and password (username 'admin' / password 'changeit') when deploying/undeploying. You can simply accept all default values by pressing &lt;i&gt;Enter&lt;/i&gt;.  &lt;br /&gt;&lt;h2&gt;Exploring SAML&lt;/h2&gt; &lt;p&gt; The next demo shows authentication using SAML. You can run the GUI and issue the SAML request by clicking the &lt;i&gt;Get Token&lt;/i&gt; button. Then you can check out the SAML request and response. The &lt;i&gt;Call Service&lt;/i&gt; button sends the SOAP message with the SAML authentication assertion appended as a SOAP header to the simple authorization web service that accepts the request, extracts it from the SOAP message and then performs the verification. Note that verification is performed by verifying the SSO server digital signature: no call to the SSO server is neccessary. &lt;/p&gt;  &lt;p&gt; The All SAML-related code is in the &lt;i&gt;com.systinet.demos.saml.AuthenticatedService&lt;/i&gt; and &lt;i&gt;com.systinet.demos.saml.AuthenticatedServiceFrame&lt;/i&gt; Java sources. &lt;/p&gt;  &lt;p&gt; You'll need to run those commands to run the SAML demo:   &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Run the Cloudscape DB server using the &lt;i&gt;startDB.bat&lt;/i&gt; script.&lt;/li&gt;&lt;li&gt;Run the WASP Server with the &lt;i&gt;startserver.bat&lt;/i&gt; script.&lt;/li&gt;&lt;li&gt;Deploy the simple SSO demo web service using the &lt;i&gt;deploy_saml.bat&lt;/i&gt; script.&lt;/li&gt;&lt;li&gt;Run the client application with the &lt;i&gt;run_saml.bat&lt;/i&gt; script and check out SAML Request, SAML response and the server verification description.&lt;/li&gt;&lt;li&gt;Undeploy the SAML SSO demo web service with the &lt;i&gt;undeploy_saml.bat&lt;/i&gt; script.&lt;/li&gt;&lt;/ol&gt;   &lt;p&gt; You can use the WASP Console (point the HTTP browser to &lt;a href="http://localhost:6060/admin/console" target="_blank"&gt;http://localhost:6060/admin/console&lt;/a&gt;) for showing all the SOAP messages exchanged between &lt;i&gt;AuthenticatedService&lt;/i&gt; and the GUI client. Authenticate yourself to the WASP Console (use admin/changeit username/password) and expand the &lt;i&gt;SAMLSSO&lt;/i&gt; package and the &lt;i&gt;SAMLSSO&lt;/i&gt; service in it. Then enable the debugging, re-run the example and then check out the SOAP conversation. You should see that the SAML token that is sent from the GUI client to the &lt;i&gt;AuthenticatedService&lt;/i&gt; web service in the SOAP message header is digitally signed. We can't see the digital signature displayed in the GUI as it is transparently verified and removed by the WASP framework. &lt;/p&gt;  &lt;p&gt;NOTE: All communication in this example isn't encrypted in order to allow the transport spoofing. Obviously, in real-life example encryption must be employed &lt;/p&gt; &lt;br /&gt;&lt;h2&gt;Review&lt;/h2&gt; &lt;p&gt;In this part of the Web services tutorial we learned how to secure applications with a single sign-on utlility. We introduced the simple scenario where the client gets the authentication token from the SSO service and appends it to the outcoming request. The receiving party can validate the incoming token by calling the SSO service. We've also shown how SAML, the standard format for the security information exchange, can enhance the SSO architecture. In the next article we'll begin to explore how to use UDDI. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7635494639548070064-6771637188859026023?l=mobile2dot0.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mobile2dot0.blogspot.com/feeds/6771637188859026023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7635494639548070064&amp;postID=6771637188859026023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6771637188859026023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7635494639548070064/posts/default/6771637188859026023'/><link rel='alternate' type='text/html' href='http://mobile2dot0.blogspot.com/2008/04/securing-web-services-with-single-sign.html' title='Securing Web Services with Single Sign-On'/><author><name>SW Onto Mob</name><uri>http://www.blogger.com/profile/01930499557749748554</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7635494639548070064.post-1139677230197726034</id><published>2008-04-01T22:22:00.002-07:00</published><updated>2008-04-01T22:28:41.696-07:00</updated><title type='text'>Build and implement a single sign-on solution</title><content type='html'>&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td width="100%"&gt;&lt;p id="subtitle"&gt;&lt;em&gt;Integrate an open source, Java-based authentication component into a Web portal&lt;/em&gt;&lt;/p&gt;&lt;img alt="" src="http://www.ibm.com/i/c.gif" class="display-img" height="6" width="1" /&gt;&lt;/td&gt;&lt;td class="no-print" width="192"&gt;&lt;a href="http://www.ibm.com/developerworks/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td width="10"&gt;&lt;img alt="" src="http://www.ibm.com/i/c.gif" height="1" width="10" /&gt;&lt;/td&gt;&lt;td width="100%"&gt;&lt;table class="no-print" align="right" border="0" cellpadding="0" cellspacing="0" width="160"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="10"&gt;&lt;img alt="" src="http://www.ibm.com/i/c.gif" height="1" width="10" /&gt;&lt;/td&gt;&lt;td&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="150"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="v14-header-1-small"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table class="v14-gray-table-border" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="no-padding" width="150"&gt;&lt;noscript&gt;&lt;/noscript&gt;&lt;noscript&gt;&lt;/noscript&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="143"&gt;&lt;script language="JavaScript" type="text/javascript"&gt; &lt;!-- document.write('&lt;tr valign="top"&gt;&lt;td width="8"&gt;&lt;img src="//www.ibm.com/i/c.gif" width="8" height="1" alt="" /&gt;&lt;/td&gt;&lt;td width="16"&gt;&lt;img alt="Set printer orientation to landscape mode" height="16" src="//www.ibm.com/i/v14/icons/printer.gif" width="16" vspace="3" /&gt;&lt;/td&gt;&lt;td width="122"&gt;&lt;p&gt;&lt;b&gt;&lt;a class="smallplainlink" href="javascript:print()"&gt;Print this page&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;'); //--&gt; &lt;/script&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td width="8"&gt;&lt;img src="http://www.ibm.com/i/c.gif" alt="" height="1" width="8" /&gt;&lt;/td&gt;&lt;td width="16"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td width="122"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;script language="JavaScript" type="text/javascript"&gt; &lt;!-- 5.6 10/24 llk: added cdata around the subdirectory path of email gif--&gt; &lt;!-- document.write('&lt;tr valign="top"&gt;&lt;td width="8"&gt;&lt;img src="//www.ibm.com/i/c.gif" width="8" height="1" alt="" /&gt;&lt;/td&gt;&lt;td width="16"&gt;&lt;img src="//www.ibm.com/i/v14/icons/em.gif" height="16" width="16" vspace="3" alt="Email this page" /&gt;&lt;/td&gt;&lt;td width="122"&gt;&lt;p&gt;&lt;a class="smallplainlink" href="javascript:void newWindow()"&gt;&lt;b&gt;E-mail this page&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;'); //--&gt; &lt;/script&gt;&lt;tr valign="top"&gt;&lt;td width="8"&gt;&lt;img src="http://www.ibm.com/i/c.gif" alt="" height="1" width="8" /&gt;&lt;/td&gt;&lt;td width="16"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td width="122"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;!--START RESERVED FOR FUTURE USE INCLUDE FILES--&gt;&lt;!-- 11/28/07 refreshed by gem, per MOC --&gt;   &lt;!--&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="150"&gt;&lt;tr&gt;&lt;td class="v14-header-2-small"&gt;New forum features&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="v14-gray-table-border"&gt;&lt;tr&gt;&lt;td width="150" class="no-padding"&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="143"&gt;&lt;tr valign="top"&gt;&lt;td width="8"&gt;&lt;img src="//www.ibm.com/i/c.gif" width="8" height="1" alt="" /&gt;&lt;/td&gt;&lt;td&gt;&lt;img src="//www.ibm.com/i/v14/icons/fw_bold.gif" height="16" width="16" border="0" vspace="3" alt="" /&gt;&lt;/td&gt;&lt;td width="125"&gt;&lt;p&gt;&lt;a href="http://www.ibm.com/developerworks/community/forum/?S_TACT=105AGX01&amp;amp;S_CMP=LEAF" class="smallplainlink"&gt;Try private messaging,  read-tracking, and more &lt;/a&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;--&gt;&lt;!--END RESERVED FOR FUTURE USE INCLUDE FILES--&gt;&lt;br /&gt;&lt;table class="v14-gray-table-border" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="no-padding" width="150"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Level: Introductory&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.ibm.com/developerworks/web/library/wa-singlesign/#author"&gt;Chris Dunne&lt;/a&gt; (&lt;a href="mailto:chris.dunne@bigpicturesoft.com?subject=Build%20and%20implement%20a%20single%20sign-on%20solution"&gt;chris.dunne@bigpicturesoft.com&lt;/a&gt;), Technical Director, Big Picture Software&lt;br /&gt;&lt;/p&gt;&lt;p&gt; 30 Sep  2003&lt;/p&gt;&lt;blockquote&gt;It is particularly difficult to bolt a single sign-on solution -- SSO, the ability to log in once and be authenticated to all your network resources -- onto existing applications, but every developer faces this problem when building sophisticated portals. Because portals need to integrate with back-end resources, each with its own authentication needs, the portal often has to provide the appearance of single sign-on to the user. In this article, Chris Dunne provides a step-by-step description of his experience with building a single sign-on solution for a Web portal. He shows you how to set up an open source solution, the Central Authentication Service from Yale University, and how to extend it to authenticate to a Microsoft Active Directory infrastructure.&lt;/blockquote&gt;&lt;!--START RESERVED FOR FUTURE USE INCLUDE FILES--&gt;&lt;script language="JavaScript" type="text/javascript"&gt; &lt;!-- if (document.referrer&amp;&amp;document.referrer!="") {     // document.write(document.referrer);    var q = document.referrer;    var engine = q;    var isG = engine.search(/google\.com/i);    var searchTerms;    //var searchTermsForDisplay;    if (isG != -1) {      var i = q.search(/q=/);     var q2 = q.substring(i+2);     var j = q2.search(/&amp;/);     j = (j == -1)?q2.length:j;     searchTerms = q.substring(i+2,i+2+j);     if (searchTerms.length != 0) {         searchQuery(searchTerms);         document.write("&lt;div id="\"&gt;&lt;/div&gt;");     }    }  } //--&gt; &lt;/script&gt;&lt;!--END RESERVED FOR FUTURE USE INCLUDE FILES--&gt;    &lt;p&gt;Through my own work I have seen the growth in demand for a variety of portal applications. Portals are becoming more and more sophisticated, with complex technical and functional requirements. Even though the tools are available to build simple portals, the issues of integrating them with remote or legacy data sources are not trivial. One such issue is authentication.&lt;/p&gt;    &lt;p&gt;Authentication is a complex problem. Portals need to authenticate users to back-end data sources and applications, yet these applications may each have different underlying security infrastructures. And the ideal and most efficient authentication solution is a &lt;i&gt;single sign-on&lt;/i&gt; one, or SSO, in which the user only has to log in once and is authenticated to all of the network resources.&lt;/p&gt;    &lt;p&gt;Recently, when I was asked to build an educational portal that required SSO, I researched a number of commercial and open source SSO solutions. In this article, I'll walk through a step-by-step process for implementing a simple SSO system using a freely available implementation called CAS from Yale University.&lt;/p&gt;    &lt;p&gt;&lt;a name="1"&gt;&lt;span class="atitle"&gt;Why choose single sign-on?&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;How many of you have had to implement your own authentication mechanism -- usually some simple database lookup? How often have you stopped to think about the workflow needed for creating and managing user accounts? This is a common task in any development project. If you are lucky, your organization already possesses some common classes or libraries you can use. But it is often a task that is overlooked -- seen as trivial, something that occurs only in the background.&lt;/p&gt;    &lt;p&gt;In general, a coherent authentication strategy or a solid authentication framework is missing. Over time this leads to a proliferation of applications, each of which comes with their own authentication needs and user repositories. At one time or another, everyone needs to remember multiple usernames and passwords to access different applications on a network. This poses a huge cost for the administration and support departments -- accounts must be set up in each application for each employee, users forget their passwords, and so on.&lt;/p&gt;    &lt;p&gt;Authentication is a horizontal requirement across multiple applications, platforms, and infrastructures. In general, there's no reason why user Mary should need multiple usernames. Ideally she should only need to identify herself once and then be provided with access to all authorized network resources.&lt;/p&gt;    &lt;p&gt;The objective of SSO is to allow users access to all applications from one logon. It provides a unified mechanism to manage the authentication of users and implement business rules determining user access to applications and data.&lt;/p&gt;    &lt;p&gt;Before I get into the technical details of single sign-on, take a quick look at some of the benefits and some of the risks. Benefits include the following:&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;      &lt;i&gt;Improved user productivity&lt;/i&gt;. Users are no longer bogged down by multiple logins and they are not required to remember multiple IDs and passwords. Also, support personnel answer fewer requests to reset forgotten passwords.&lt;br /&gt;     &lt;br /&gt;    &lt;/li&gt;&lt;li&gt;      &lt;i&gt;Improved developer productivity&lt;/i&gt;. SSO provides developers with a common authentication framework. In fact, if the SSO mechanism is independent, then developers don't have to worry about authentication at all. They can assume that once a request for an application is accompanied by a username, then authentication has already taken place.&lt;br /&gt;     &lt;br /&gt;    &lt;/li&gt;&lt;li&gt;      &lt;i&gt;Simplified administration&lt;/i&gt;. When applications participate in a single sign-on protocol, the administration burden of managing user accounts is simplified. The degree of simplification depends on the applications since SSO
