如何与SAP整合
本文主要谈的是K2与SAP的整合的概览,它的定位是参考和指引,没有深入讨论具体的技术细节。如果大家有兴趣的话,请参与到相关话题的讨论中。
应用系统整合,是企业BPM平台的重要组成部分之一,就是:“流程自动化只是BPM的一部分,BPM还包括应用系统整合、报表等”。
就技术面而言,我们需要了解K2与SAP系统整合的方式、原理和每种方式的优缺点:
l 整合方式1:用中间数据库的方式,把需要交互的数据保存在中间数据库,双方按协定定时取和写就好。
Ø 优缺点:不用多说,反正就是写代码,最原始的方式。
l 整合方式2:通过Web Service。
WebService是业界的标准,微软、IBM、Oracle、SAP都支持,包括如XML、SOAP、Web Service - * (WS-Policy, WS-Inspection, WS-Notification, WS-I, WS-Federation, WS-BusinessActivity…),并且SAP也提供了SAP Netweaver(SAP 最新的集成应用平台),本身就是一个支持WebService的整合开发平台。
注:这也往往成为竞争对手与我们PK的一点“大家都可以通过web service整合SAP,为什么选择K2?”。就技术面来说,答案包括:K2还有整合方式3、4等多种选择,并且在集成的性能、可用性、功能及成功案例上更具优势。
Ø 优点:简单,相应诸位都用过Web Service。
Ø 缺点:简单(同一个词可以有N种不同的解释,中国文字的强大和灵活性可可见一斑,[突然想到,K2也很强大灵活J])。随着Web Service规范的不断发展和成熟(WS-*),web service在安全、加密、事务等都得到了增强,应用也越来越广泛,但Web Service存在的效率等先天性的劣势:如只能用XML的序列化方式等。(关于这个话题,请大家参考WCF相关资料,WCF值得我们花时间了解,[自由地通过配置的方式选择协议、编码方式等])
l 整合方式3:通过中间件与SAP整合,就微软平台而言我们推荐使用BizTalk,当然也可以选择如TIBCO等类似的产品。
Ø 优点:
K2直接提供了BizTalk的Adapter(适配器),我们能与BizTalk做native(原生)的整合,而BizTalk产品内置提供了与SAP的整合(整个BizTalk 2006提供了200个免费的Adapter,可以与业界主流产品整合,如PeopleSoft等)。请注意:Native(原生)这个词很重要,几乎所有的产品都可以宣称能与第3方系统(SAP, LOBs)整合,其实很多是通过写代码的方式完成的;而Native意味着,在产品中已经提供了相关的整合模块,并且该整合的模块已经经过市场验证(如性能、容错性等方面),是成熟的,往往这一点是上了SAP系统的大企业最看重的。
BizTalk的定位为企业EAI工具,BizTalk会详细记录K2与SAP交互的信息(数据交换的时间、结果、数据包、数据的映射、安全管控机制...)。通过它,我们能对全部整合过程中发生的所有细节做到:有据可查、实时可查、有实为证、。
当然,通过BizTalk也使得我们的BPM平台能与ESB(Enterprise Service Bus)相互配合,使K2能与更多的系统整合(这点不在本文的讨论范围内)。
Ø 缺点:
购买BizTalk需要钱(虽然从顾问的角度来说,长远这钱是值得投资的)。
你需要精通BizTalk的人。
l 整合方式4:K2 Connector。
K2 Connector Beta2已经推出,大家已经在虚拟机中通过VPN连接到公司的SAP测试环境动手做实验,相关的video已经上传到GCSPS。
Ø 优点:K2 Connector对开发者而言依然是SmartObject的技术,我们不需要引入第3方工具就可以与SAP集成,减少了系统的复杂度。
Ø 限制:
SmartObject是实时的(非异步),这意味着,我在通过SmartObject对SAP进行操作的时候,必须等待SAP的返回结果,这对于应用会有一些的限制;而BizTalk是异步的;如果在应用中我们有Long Term Transcation的需求,也许需要考虑BizTalk,或者通过代码自己实现你的长时间事务支持。
使用K2 Connector,BizTalk提供的一些特-性详细记录K2与SAP交互的信息(数据交换的时间、结果、数据包、数据的映射、安全管控机制...)-必须自己实现。
更深入的讨论:
l 与SAP的整合一定需要SAP顾问公司的参与,这其实是所有整合的动作发生的时候大家都需要注意的。参与的相关公司都必须要有一个明确的分工和界线划分,之前通过公用的接口(可能是中间数据库,可能是BizTalk...)定义自己的职责。
l 与SAP的整合经常会用到SAP .net connector(台湾TPV就是没用BizTalk直接用它了),就本质而言它提供了一套在.net环境下的访问SAP的API,通过它我们可以访问SAP中的BAPI等对象,K2 Connector就底层而言也是如此(公司收购了一家做SAP .net connector的公司)。