分类:
2008-09-09 15:17:14
Branch Transformation Toolkit for WebSphere Studio(以下简称BTT)是IBM公司为金融机构提供的基于先进的电子商务框架模型。BTT5.1基于WebSphere business server fundation(以下称WBISF)提供的Struts、work area、EJB、JCA和BPEL工作流引擎,为客户提供分布式金融应用的开发平台,使得客户可以方便的构建基于J2EE体系结构,更加灵活、稳定、和功能强大的金融系统。无论是网上银行、柜员系统、ATM还是智能查询机,都可以通过BTT进行无缝整合。
BTT产品的企业应用通常会有多层架构组成,根据逻辑结构可以分为:客户端(Client tier)、应用表示层(Application presentation layer)、应用逻辑层(Application logic layer)和后端企业层(Back-end enterprise tier)。客户端主要包括柜员系统、网络浏览器、ATM客户端等应用,通过通讯来连接BTT服务端应用;应用表示层接受客户端请求,利用Struts技术根据不同的客户端来分离请求数据,使用不同的通道驱动来处理数据,调用应用逻辑层的相应逻辑处理,并使用通道相关的拼装格式,将返回数据拼装返回。应用表示层还提供页面流转的定制支持;应用逻辑层主要用于处理真正的应用逻辑,比如查询、转账等业务。
WebSphere Studio Application Developer Integrated Edition (WSAD-IE)提供了许多开发工具。例如,WSAD-IE 为Struts 提供了Struts 网络图编辑器和struts配置编辑器,为Business process choreographer 提供了BPEL 编辑器,为EJB 提供了EJB部署编辑器,以及XML和编辑器等。由于WSAD-IE提供的这些工具都是专门针对某个具体定义的目标和范围而设计的,而各个工具之间的协作整合却被忽略了。开发人员只好分别利用这些工具开发各个部件,对于各个部件之间的同步和通讯就只好由开发人员来手动维护了。另外,BTT的主要部件基本采用外部定义文件的设计模式, 例如CHA (Common Hierarchical Area) ,Formatter Service、BP、Struts等,由于XML编辑器不能以图形化的方式展示各个元素之间的关系,用户只能在脑海里想象各个元素之间的关系,让用户去记住大数据量的XML文件内各个元素之间的关系是非常不方便的。
BTT5.1企业应用是多层架构组成,各个层之间和各个部件之间需要相互衔接,系统复杂度比较高,我们缺少一个系统架构图来让应用的相关人了解整个应用,这对于应用设计的更新和团队的沟通都是非常重要的。
基于上述原因,BTT5.1提供了一系列的图形工具来方便用户进行开发和配置,其中GraphicalBuilder是一个核心工具,这个工具用来整合所有部件的开发过程,并且最终将整个应用打包部署到相应的企业应用上,意在贯穿于BTT企业应用开发的全过程,降低复杂度,加速BTT企业应用的开发。
接下来我们将介绍BTT5.1的工具的功能及特色:
GraphicalBiulder 采用Eclipse平台提供的EMF(Eclipse Modelling Framework)、GEF(Graphical Editing Framework)和插件技术开发的,通过提供一个中间整合层,GraphicalBuilder 整合了所有的工具,它针对BTT应用提供了一套从BTT企业应用项目的创建,构建应用架构,创建具体的部件(如BP、Struts、EJB、Context、Format等),当各个部件开发完后,可以利用GraphicalBuilder提供了打包工具将应用打包成EAR文件部署到WAS(Websphere application server)。
如图1所示,GraphicalBuilder是一个核心工具,它从端到端地展示了各个部件衔接的视图,它代表了从展示层通过Invoker或者WSIFAction与业务逻辑层通讯。展示层的节点会与Struts的部件关联,业务层的业务节点会与相关的BPEL和EJB进行关联,一个展示层的节点可以和后端的多个业务节点相互衔接。GraphicalBuilder提供了一个整合的图形开发环境,用户可以在其中创建Struts/EJB/BP/Invoker等各个部件,并通过提示标签和提示性的图标来帮助用户实现一个端到端企业应用开发。Graphical Builder支持团队开发,使得技术系统设计师、开发人员和测试人员通过这个工具了解系统的架构和系统的变化。
通常一个BTT企业应用的开发包括从上至下和从下至上或者迭代式开发流程,GraphicalBuilder支持这几种开发模式。从上至下的开发模式是指先收集需求,进行分析和设计,再将工作分解到每一个部件的开发人员;从下至上的开发模式是指重新设计或者维护一个已经存在的系统,利用GraphicalBuilder可以展示系统的架构和对系统进行维护。无论是哪一种模式,GraphicalBuilder都支持迭代式的开发模式,每一个部件的修改都会被同步到GraphicalBuilder中, GraphicalBuilder的修改也会同步到每一个部件上。
通过Graphical Builder我们可以创建一系列的工程文件,如 客户端应用工程,含BTT特性的 Struts Web工程,EJB工程和Service工程。Graphical Builder可以向相关的工程创建相应的组件,如创建EJB, BPEL,Struts等,用户可以在Graphical Builder内对这些组件进行属性配置,也可以通过双击相应的图形节点,打开对应的子编辑器对各个子部件进行更为详细的编辑。例如,双击展示层的节点,我们可以打开Strut Web Diagram, 双击EJB的节点,我们可以打开EBJ部署编辑器,双击BP的节点,我们可以打开BPEL编辑器,这些子的编辑器会被放置在GraphicalBuilder的下方,和GraphicalBuilder协同工作。
当各个组件都开发完毕,可以通过Graphical Builder的打包工具打成EAR文件,这个工具在打包之前会自动将相关的EJB,BPEL进行部署,准备相关联的组件和Jar包,并将BTT所提供的核心组件打进EAR文件以确保整个应用的完整性。
GraphicalBuilder通过标签和图标来提示用户各个部件的衔接信息,从而保证整个系统的同步和完整。如下图所示,在Struts和EJB之间的连线上会有一个小图标来暗示用户继续进行一些配置,当鼠标停留在这个连线上时,一个提示性的标签会弹出来,并提示用户完成部件之间的衔接。
BTT5.1为 CHA (Common Hierarchical Area) 提供了CHA Editor来方便用户对于CHA的外部定义文件的编辑。CHA Editor 针对CHA数据结构的特点,以树形结构展示定义文件结构和各个数据元素之间的关系。
图3 CHA Editor 形象地展示各个Context定义的继承关系以及Context和Type的对应关系,CHA Type视图展示各个Type之间的嵌套关系,CHA Data 视图展示各个Data之间的嵌套关系。
BTT应用的业务数据是以格式化的数据串向业务层传递,通常这个数据是按照一定的结构和描述向来格式化的,Format Editor 通过可折叠的水平条来直观地展示对于Context和Data进行格式化,如下图所示:
Format Hierarchy view用来展示数据的对应关系,它通过两个树形视图并行排列,左侧是数据的结构视图,右侧是格式的结构视图,数据和对应的格式一一对齐。对于没有格式对应的数据,为了保证各个数据和自己的格式保持在一条水平线上,没有对应格式的数据的右侧,会有一个空行插入来保证一一对应的关系。下图就是Format Hierarchy view的工作图:
用户可以通过拖放的方式来构建一个格式化的消息,用户可以从CHA Editor中拖动一个Data并放入FormatEditor中, 一旦这个Data被放入FormatEditor中,一个对应的Format元素就会在被拖放的位置生成,整个Format定义也会被自动重新排列整齐。
图 4 图中的虚线表示针对被拖放的Data在此处将会产生一个Format元素插入到整个Format定义
BTT5.1通过GraphicalBuilder整合了各个工具,各个工具协同工作在一个Perspective里,为方便用户的使用和开发,提供了以下特色功能:
BTT5.1的图形工具都是基于Eclipse的插件,采用了EMF(Eclipse Modeling Framework)和GEF(Graphical Editing Framework)技术,设计模式清晰,部署简单灵活。
大纲视图、属性视图和搜索视图是WSAD-IE提供的标准视图。BTT5.1的工具利用大纲视图展示自己的树形结构,图形编辑器中的元素与大纲中的元素无论哪一个被鼠标选中,另一个都会被同时选中来展示相应的对应关系。
BTT5.1的工具也和WSAD-IE的属性视图协同工作,所有图形元素的属性都可以在属性视图中进行编辑。
各个图形元素之间是相互关联的,通过查询的方式,BTT5.1会利用WSAD-IE的搜索视图将与某个元素相关的其它元素列出来。
BTT5.1的工具支持各种方式的拖放,我们可以从项目管理器中拖拉一个文件并将它放入GraphicalBuilder中去,在BTT5.1中会自动生成相应的图形对象,该图形对象会自动解析相应的文件,关联相应的属性。
除了支持文件的拖放,BTT5.1的工具也支持图形对象的拖放,我们可以从一个图形编辑器里拖动一个对象放到目标编辑器中,目标编辑器中会产生相关联的新对象。
BTT5.1的图形工具能够保持各个部件之间同步关系,如果Graphical Builder中的设计改变了,这个变化将会立即在各个部件中得到体现。同时,如果某个部件的设计或者接口有所改变,这些变化也会立即在Graphical Builder中得到展现。
BTT5.1的图形工具不仅能够保持各个部件之间同步关系,同时还可以侦听文件系统的变化。由于BTT5.1中的各个部件会和文件系统关联,如果文件系统的某个文件改变了,例如文件的移动、删除、内容的改变,这些变化都会被BTT5.1的工具侦听到,并根据系统的需要,在图形工具上通过图标或者提示签给予相应的提示。例如下图就是通过一个警号图标和提示性标签来提示用户关联文件在文件系统已经被删除。