wso2/wsf是wso2推出的基于wsf_c的系列web service框架,其关键是提供了对ws-security的全套支持,比如sign、encrytion、timestamp; 目前能够支持的语言包括:Php、Ruby、Perl、C、C++、Java;其中Php我们已经用该框架进行了接入,具体可见http://blog.csdn.net/sfdev/archive/2008/03/29/2228761.aspx;之后对Ruby语言也进行预研,由于之前已经有了Php的经验,WSF/Ruby的环境配置和sample运行没有遇上什么阻碍,但是由于无法验证服务端签名的问题,我们还尝试了wss4r【Web Services Security For Ruby】这个框架,该框架年老失修,很多东西都有问题,特别是对namespace的处理上,很多时候都需要自己修改他的源代码来完成(源码中二选一的情况挺多,一般注释掉一种,保留另外一种,若需要启用注释掉的,则手工将另外一种注释掉);

综合前段时间对各种语言的接入情况,包括Java Xfire、.Net WSE 2.0、.Net WSE 3.0、.Net WCF、Php WSO2/WSF、Ruby WSO2/WSF,各种框架的接入难易程度不通,对wss支持的设计方式也不一样;下面就WSO2/WSF和其他各框架的设计方式及其接入成本等进行下对比;
1、WSO2/WSF是唯一的系列框架集,他在wcf_c【基于AXIS/Rampart思想的C语言实现】的基础上可以扩展到不同语言之上;由于他们的核心是一样的,所有不同语言利用此框架接入时的成本是比较低的,尤其是经历过其中一种语言接入之后;相比较而言,其他的框架都是针对特定语言的,没有通用性;
2、由于WSO2/WSF的核心是WCF_C,他是用C实现的,所以在跟踪bug时非常困难,能够跟踪的级别也就是各语言对WCF_C的封装层面;.Net下面各框架也都有同样的问题,虽然说.Net 3.5所开放了很多的源码,可以在vs2008中进行在线查看,但是我没有成功过;对于这点,java方面自然有得天独厚的优势,基本上能够跟踪到90%以上的源代码,对于security方面的src,可以到sun网站下载scsl版本的源码,默认jdk中的src是没有security和sun部分的源码的;
3、WSO2/WSF对ws-security的实现方式非常不友好!这系列框架可以用于客户端进行ws的调用,也可以用于服务端发布带有security支持的ws;但是他所有相关的参数都是没有客户端和服务端之分的,这加大了理解该框架细节的难度,很多参数无法明确知道其用途及其使用范围,由于无法跟踪源码,很多时候只能通过设置不通的值来进行尝试其返回的结果;其二:在客户端调用或者是服务端接受请求进行处理时,参数设置也是统一的;其实无论对于哪种处理方式(发起或者接收请求),都有两个过程,一个发送和一个接收,这两个过程很多时候需要的参数是不一样的,这在wso2/wsf中就不知道怎么办了!相比较而言,Java和.Net对此的设计就更优美、更具可扩展性;比如Xfire/AXIS2中对于各请求都有OutflowSecurity/InflowSecurity的配置,这两者是互不干扰的,当然两者不是必须的,你可以只设置其一,这要看具体需求;.Net下面的实现方式也比较类似,但是.Net下面更傻瓜化,很多都可以通过工具Step By Step的进行;
4、非.Net语言都无需将证书导入到OS中,可以直接从文件读取,这非常省事;在我们接入各ISV过程中,.Net都是一个耗资源大户,不同环境下面证书导致的问题很多;
5、从证书格式上来说,Java采用jks和der crt,.Net采用pfx和der crt,其他均采用pem和pem crt;当然Java也可以采用pfx格式证书,从服务端为Java这种情况来说,非Java环境下面的证书格式均需要用工具来进行额外转换,当然pem格式的步骤最多;

总的来说,能看到源码真是件幸事啊,不管从哪个角度来说,Java的接入都是最轻松的,在框架的设计上也是最优美的;

PS:在前面的《WSF/PHP调用带有WS-Security支持的Web Service时的注意事项》文章中,我提到该框架暂时不支持服务端签名验证;但实际上这是错误的,框架本身提供了该功能,而且就是通过receiverCertificate参数来加载服务端公钥的;只不过该功能能够支持的服务端security_token_reference类型有限,据我的测试,现在好像只支持KeyIdentifier类型,在框架自带的sample中无论客户端/服务端配置何种类型,返回的始终是KeyIdentifier类型的,而调用也始终成功,但是若服务端不是用WSO2/WSF框架发布的,那返回其他类别的就不能验证了;这在前台没有任何体现,需要查看后台日志文件才行;

评WSO2/WSF系列框架之设计相关推荐

  1. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据 ...

  2. 微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发

    一.前言 大家好,我是六哥! 又有好长一段时间没更文了,不是我懒,而是确实在更文上,没有以前积极了,这里是该自我检讨的. 其实不是我不积极,而是相对更文学习来说,优先级不是最高. 对我而言,目前最重要 ...

  3. 应用框架的设计与实现学习手札系列(持续更新)

    应用框架的设计与实现学习手札 类工厂服务 应用框架的设计与实现学习手札之类工厂服务--反射 转载于:https://www.cnblogs.com/stwyhm/archive/2006/08/14/ ...

  4. React 与 Vue 框架的设计思路大 PK

    大家好,我是若川.今天分享一篇框架设计思路的好文. 关于我 大家好我是花果山的大圣,今天很荣幸,有机会跟大家分享一下很多年轻人感兴趣的话题< Vue 和 React 设计思想 PK>,个人 ...

  5. WSO2 WSF/CPP 网络服务开发例子1--HELLO

    WSO2 WSF/CPP 网络服务开发例子1--HELLO 一.根据需求编写WSDL文档 定义一个服务叫做hello,提供三个操作(greet1.greet2.greet3),这三个操作均接受一个输入 ...

  6. 语音卡开发系列: LightweightCTI架构设计(作者:东成西就)

    //评注:这是一位朋友的关于语音卡开发的开源框架,历时约一年.初步在.net实现,并有实用案例.后期希望开源并借助大家的力量完成c++,delphi的版本.其目的是使开发爱好者从某个台阶起步,更快的进 ...

  7. 【2021软件创新实验室暑假集训】SpringMVC框架(设计原理、简单使用、源码探究)

    系列文章目录 20级 Java篇 [2021软件创新实验室暑假集训]计算机的起源与大致原理 [2021软件创新实验室暑假集训]Java基础(一) [2021软件创新实验室暑假集训]Java基础(二) ...

  8. ABP开发框架前后端开发系列——框架的总体介绍

    ABP开发框架前后端开发系列--框架的总体介绍 ABP是ASP.NET Boilerplate的简称,ABP是一个开源且文档友好的应用程序框架. ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领 ...

  9. 蓝牙(BLE)应用框架接口设计和应用开发——以TI CC2541为例

    本文从功能需求的角度分析一般蓝牙BLE单芯片的应用框架(SDK Framework)的接口设计过程,并以TI CC2541为例说明BLE的应用开发方法. 一.应用框架(Framework) 我们熟知的 ...

最新文章

  1. 头文字C的混战何时方能休?论从某语言怎么怎么样到我要怎样怎样的语言
  2. mooc浙大数据结构PTA习题之一元多项式的乘法与加法运算
  3. 10种不要钱的护肤法则 - 生活至上,美容至尚!
  4. javascript判断ie浏览器
  5. Facebook Libra不会和主权货币竞争
  6. MySQL数据库服务器 主从配置
  7. shell编程最新总结大全
  8. Pascal数据结构与算法
  9. Extjs的radio单选框的使用
  10. jQuery(2)——如何使用jQuery回显数据
  11. 平安科技移动开发二队技术周报(第十一期)
  12. php去除空格函数,php如何清除空格
  13. 【使用教程】面向回家编程-12306智能刷票,订票
  14. 如何向NCBI上传线粒体基因组序列
  15. 【Proteus仿真】PCF8591 AD电压采集8X8点阵显示
  16. 基于C++11的高精度多级时间轮定时器
  17. Java调用第三方http接口的方式
  18. 图片上传到淘宝的操作流程——upload_img
  19. I2C协议研读(六):快速模式、高速模式以及10位寻址
  20. MyCat —— 性能最好的数据库中间件

热门文章

  1. 快捷键使用教程-Mindjet MindManager
  2. 微信小程序实现 短视频无限播放效果(类似快手小程序,抖音app的短视频滑动)
  3. 搜狗2012 9 23校园招聘会笔试题
  4. Abnova GLC8(酵母)重组蛋白说明书
  5. DMZ-一种中间地带,鉴于内网与外网之间的自由地带。----黑客寄生的地方?
  6. 中职计算机应用基础教学进度,[形成性评价在中职《计算机应用基础》教学中的应用]计算机应用基础 2018...
  7. 虹科案例|虹科Vdoo与安全社区合作披露多个网络交换机中的重大漏洞
  8. C语言大作业:旅游资讯管理系统
  9. iOS网络环境模拟,弱网测试
  10. android组件的下拉回弹,Android自定义控件仿ios下拉回弹效果