可能各位看到这篇文章的标题时,脑子中都会浮现这样一个疑问:TIBCO是什么?
选中这个Operation,点击下方的Message Table右侧的“+”号,来添加输入、输出、异常的数据结构,这里的Message Details只能选择前面我们在WSDL中定义好的Message
这样我们的WSDL文档就定义好了,现在我们来实现这个WSDL,我们在/MainProc目录中拖拽一个Process进来,TIBCO中的一个Process其实在运行的时候是相当于一个单独线程,每个Process都有一个“Strat”和一个“End”,表示Process的开始和结束。我们能够根据业务的流程通过可视化的操作方式来实现程序。
双击拖拽过来的Process组件,进入Process设计界面,由于我们需要实现一个Web Service,所以我们需要拖拽一个SOAP的SOAPEventSource组件进来,在SOAPEventSource这个组件中,我们需要选择刚刚定义好的WSDL、HTTP Connection、SOAP版本等,如果我们在一个WSDL文档中定义了多个PortType和Operation,那么在这里我们要选择实现哪一个PortType的哪一个Operation。
在组件中我们可以填写对应的SQL语句,在SQL Statement中可以使用“?”来实现数据的传入,如果在SQL Statement中使用了“?”,则需要在下面的Prepared Paramenters中增加对应的定义(注意:Prepared Paramenters中的定义顺序要和SQL Statement中的顺序一致)。
首先我在这里简单介绍一下TIBCO,TIBCO 软件公司 (纳斯达克股票代码:TIBX) 的总部设在加利福尼亚州的帕罗奥多,该公司致力于研发企业软件,帮助各大公司在面向服务的架构 (SOA) 和业务流程管理 (BPM) 方面取得成功。TIBCO 拥有 3000 多家客户,在 40 个国家/地区设立了办事处,为世界顶级的企业创造了更好的知名度和敏捷度 - TIBCO 称之为“The Power of Now?”。 TIBCO 着眼于利用并拓展其软件能力,帮助各公司迈向 Predictive Business:这是一种令人欣喜而又新颖的业务运行方式,它能够让公司预见客户的需要、创造商机并避免潜在问题。作为在企业内部实时传输数据的基础,TIBCO 软件能够独一无二地将公司的运营和业绩信息与期望的业务表现和业务规则信息关联起来,使企业能够在出现威胁和机遇之前做出预测和响应。
TIBCO BusinessWorks是第一个利用Web服务标准(如SOAP、WSDL、UDDI和WSFL)提供高级业务集成(包括业务流程集成、实时监控和企业门户)的解决方案。通过推出TIBCO BusinessWorks,TIBCO公司提供了这样一种
组件式解决方案,使几乎所有的企业都可迅速进行业务集成,不论他们解决业务问题的方法如何。TIBCO BusinessWorks扩展了TIBCO提供的解决方案范围,并与所有TIBCO产品完全兼容,从而允许BusinessWorks客户可随着企业的成长逐步发展为一个企业级集成平台。TIBCO估计BusinessWorks 将使集成技术对全世界70%多的企业客户产生吸引力。
使用TIBCO一年左右了,在这期间有不少的痛苦和感慨,和别的技术不一样,TIBCO在遇到问题的时候,Google基本是没有什么用的,网上相关的资料少之又少,好在TIBCO提供的帮助文档足够强大。
TIBCO环境的简单介绍
TIBCO需要一个自己的
Runtime Agent环境来支持整个系统的运行,其上通过
BusinessWorks来提供高级业务集成,程序的部署通过
TIBCO Administrator来实现。程序的开发有自己的一套IDE,称为
TIBCO Designer。
TIBCO Designer是一个基于流程的可视化开发环境,TIBCO里面封装了很多拖拽即可使用的适配器(组件),如JDBC、TCP、JSM、RMI、SOAP。。。(当然也可以自己添加adapter)。开发人员在开发的时候只需要根据自己的流程画出自己的“流程图”就好了,不需在去做底层的开发,这样使设计和开发人员可以把更多的精力用于实际业务的处理。大家看他的安装目录会发现Spring的部分组件和JDOM、log4J等Jar包含其中。其实他的基本实现原理还是基于IOC的,甚至就直接使用Spring的jar。这个相信你在使用的时候会发现的。
设计一个简单的Web Service
首先新建一个Project,然后按照下图所示,建立好相应的文件夹:
注:图中红圈处可以选择端口号、是否使用SSL安全连接
我们的需求是,用户传过来一个Name,我们根据这个Name到数据库中检索对应的记录,并将检索结果返回给用户,所以我们还需要建立一个JDBC连接,用来连接数据库。
注:图中红圈处可以选择连接类型,包括JDBC、JNDI等
注:图中红圈处可以选择使用的JDBC驱动
在对应的地方填写数据库地址、用户名、密码等,然后点击下方的“Test Connection”按钮,对JDBC连接进行测试。
JDBC连接成功
JDBC连接失败
现在我们来定义Web Service的输入、输出、失败数据结构,在这里我们使用XML Schema来定义,在/Resources/XMLSchema目录中拖拽一个XML的Schema组件,当然在这里我们也可以导入一个已经存在的xsd文件。
双击拖拽过来的XML Schema组件,进入Schema的编辑界面,在这里定义数据结构
再拖拽一个PortType组件进来,双击这个PortType组件,来定义相关的Operation
![Add_WSDL_PortType_Operation Add_WSDL_PortType_Operation](https://i-blog.csdnimg.cn/blog_migrate/64a85a69ec09743322c3d86a380a8acc.jpeg)
![Add_WSDL_PortType_Operation_Config Add_WSDL_PortType_Operation_Config](https://i-blog.csdnimg.cn/blog_migrate/9e77d61bfecd8199317d0d3266e17c6b.jpeg)
![Add_Process Add_Process](https://i-blog.csdnimg.cn/blog_migrate/42bf00e7525a7683affa30f885e0dbae.jpeg)
![Add_Process_JDBCQuery Add_Process_JDBCQuery](https://i-blog.csdnimg.cn/blog_migrate/ea81517c8db5056d55f016145dfdd859.jpeg)
打开JDBC Query的Input选项卡,对刚刚在Prepared Paramenters中定义的变量进行赋值。
打开JDBC Query的Output选项卡,可以看到ResultSet的输出结构,如果看不到的话,可以点击下方的“Fetch”按钮。
返回相关信息,在异常情况下需要返回SOAPSendFault,正常情况下返回SOAPSendReply。在这两个组件中我们可以对返回值进行设置
好了,下次我会介绍一些对这个程序的优化,这个简单的程序可优化之处还是很多的,在后面我还会介绍如何使用TIBCO Administrator进行程序的部署等等……