(计算机应用技术专业论文)sap应用集成研究.pdf_第1页
(计算机应用技术专业论文)sap应用集成研究.pdf_第2页
(计算机应用技术专业论文)sap应用集成研究.pdf_第3页
(计算机应用技术专业论文)sap应用集成研究.pdf_第4页
(计算机应用技术专业论文)sap应用集成研究.pdf_第5页
已阅读5页,还剩60页未读, 继续免费阅读

(计算机应用技术专业论文)sap应用集成研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

扯毫奎强太堂琢土堂芷监塞 撞差 摘要 摘要:本文研究了s a p 的接口技术和通讯机制,分析了s a pj a 、,ar f c 的体系结 构。在此基础上,本文引入分层设计思想,构建了s a p 应用集成的四层架构,并 对应用接口层和应用集成层作了设计和实现。 设计了s a p 应用集成的四层架构。该架构分层级、松耦合、结构清晰、分工 明确,方便逻辑复用。 设计并实现了r f c 服务器。r f c 服务器侦听来自s a p 应用程序的请求并接收 来自s a p 的数据,支持同步通信和异步通信;对于i d o c 数据,r f c 服务器提供 了事务管理的机制; 设计并实现了r f c 连接器。连接器提供了数据访问接口,支持j a v a 应用程 序访问s a p 系统:连接器提供了直接连接和连接池的访问方式,节省了系统资源, 提高了访问效率;对b a p i 和i d o c ,分别设计了事务管理的机制。 设计了消息队列。为了有效管理i d o c 数据,本文引入消息机制,为请求处理 和事件处理分别设计了消息队列。 设计并实现了s a p 数据类型与x m l 的双向映射。对于s a p 的数据类型b a p i 和i d o c ,本文分别作了详细的结构分析,进一步设计了与x m l 的映射机制,并 利用j c o 技术作了简单实现。 本文的测试结果证明该方案对于s a p 应用集成项目的部署和实现具有一定的 指导意义。 关键词:s a p 应用集成;b a p i : i d o c ;r f c ; 分类号:t p 3 1 1 5 a b s t r a c t a b s t r a c f :t h i sp a p e rs t u d i e st h es a pi n t e r f a c et e c h n o l o g ya n da n a l y z e st h e a r c h i t e c t u r eo fs a pr f cf o rj a v a o nt h i sb a s i s ,t h i sp a p e rd e s i g n st h es a p a p p l i c a t i o ni n t e g r a t i o nf r a m e w o r ka n di m p l e m e n t st h ed e s i g no fa p p l i c a t i o ni n t e r f a c e l a y e ra n da p p l i c a t i o n i n t e g r a t i o nl a y e r d e s i g na4 - l a y e rs a pa p p l i c a t i o ni n t e g r a t i o nf r a m e w o r k ,w h i c hi sl a y e r e d ,l o o s e l y c o u p l e d ,c l e a r l ys t r u c t u r e d d e s i g na n di m p l e m e mr f cs e r v e r , w h i c hl i s t e n st h er e q u e s t sa n ds n a t c h e sd a t a f r o ms a ps y s t e m ,t h i ss e r v e rs u p p o r t ss y n c h r o n o u sc o m m u n i c a t i o na n da s y n c h r o n o u s c o m m u n i c a t i o n f o rt h ei d o c ,r f cs e r v e rp r o v i d e st h em e c h a n i s mf o rt h em a n a g e m e n t o f t r a n s a c t i o n s ; d e s i g na n di m p l e m e n tr f cc o n r l e c t o r , w h i c hp r o v i d e sd a t aa c c e s si n t e r f a c ea n d s u p p o r t sj a v aa p p l i c a t i o n s t oa l 汜e s ss a ps y s t e m t h ec o n n e c t o rp r o v i d e sd i r e c t c o n n e c t i o na n dp o o lc o n n e c t i o n ,w i t hw h i c hi tc o u l ds a v es y s t e mr e s o u r c e sa n di m p r o v e t h ee f f i c i e n c y f o rb a p ia n di d o c ,t h ec o n n e c t o ra l s op r o v i d e dm e c h a n i s mf o rt h e m a n a g e m e n to f t r a n s a c t i o n s d e s i g nm e s s a g eq u e u e s ,t om a n a g ei d o ce f f e c t i v e l y ,t h i sp a p e rd e s i g n sm e s s a g e q u e u e sf o rb o t hr e q u e s tm o d u l ea n de l c e n t sm o d u l e d e s i g na n di m p l e m e n tt h em a p p m gr u l eb e t w e c ns a p d a t aa n dx m l t h i sp a p e r a n a l y z e st h es t r u c t u r eo fb a p ia n di d o c ,d e s i g nt h em a p p i n gm e c h a n i s ma n ds i m p l y i m p l e m e n ti tu s i n gj c o t h et e s t i n gr e s u l t sp r o v et h a tt h ep r o g r a mi sv a l u a b l ef o rs a pa p p l i c a t i o n i n t e g r a t i o np r o j e c t s k e y w o r d s :s a p a p p l i c a t i o ni n t e g r a t i o n ;b a p i ;i d o c ;r f c c l a s s n o :t p 3 “5 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 签字日期:少叼年 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:景张 签字日期: 叫年,朔,乒日 d 致谢 本论文的工作是在我的导师王光军高工、卢苇教授的悉心指导下完成的,两 位老师严谨的治学态度和科学的工作方法给了我极大的帮助和影响,在此衷心感 谢他们三年来对我的关心和指导。 卢苇教授悉心指导我们完成了实验室的科研工作,在学习上和生活上都给予 了我很大的关心和帮助,在此向卢苇老师表示衷心的谢意。 在实验室工作及撰写论文期问,关林涛、白淑霞等同学对我论文的研究工作 给予了热情帮助,在此向他们表达我的感激之情。 同时感谢实习期间公司的同事王征、王福增等,他们为我的论文提供了宝贵 的建议,并帮助我完成了测试。 另外也特别感谢我的父母,他们的理解和支持使我能够在学校专心完成我的 学业。 韭塞銮亟太翌亟堂包淦塞 i i 壹 1 引言 1 1 研究背景 1 1 1s a p 的迅速发展 s a pa g 公司是全球最大的企业管理软件及协同商务解决方案供应商、全球第 三大独立软件供应商。s a p 公司推出的s a pr 3 系统已成为当今世界最优秀的企业 管理软件。目前,全球有超过1 2 0 多个国家的超过1 9 3 0 0 家用户正在运行着,1 0 0 多套s a p 软件,财富5 0 0 强8 0 以上的企业都正在从s a p 的管理方案中受益。【1 】 s a pa g 公司早在八十年代就同中国的国营企业合作并取得了成功经验,并迅 速成为中国e r p 市场的绝对领导者。目前,s a p 的市场份额已经达n 3 0 ,年度业绩 也以5 0 以上的速度递增。1 2 1 今年,为了应对来自o r a c l e 等公司的竞争,s a p 公司又 将推出面向中小企业的解决方案,市场需求将进一步扩大。【3 】 随着s a p 系统的引进,企业的信息化建设得到了进一步的发展。此时,如何保 证企业旧有的应用和系统投资不至于被全部抛弃或替换,是节省公司运作成本并 有效利用公司资源的重要手段。同时,信息化的发展要求企业不断扩展现有的企 业应用,这些应用如何与s a p 系统有效的集成起来,也成为s a p 应用集成的一个重 大研究课题。 1 1 2 企业应用集成的需求 随着社会信息化进程的进一步加快,以及信息化技术的不断进步,许多大型 企业不断引入新的应用系统以满足企业业务的扩张,导致企业的应用系统越来庞 大,企业应用集成正是基于这种应用环境下提出的。驱动企业应用集成的主要因 素包括: 1 商业软件包的集成需求。许多公司已经购买了诸如e r p 、c r m 等打包软件。 虽然这些软件包从事不同种类的业务,但仍需要将打包应用互连,以便共享数据。 这就是对企业应用集成及相关工具关注的最初驱动因素之一。 2 企业门户。企业门户( p o r t a l ) 是当i i 最关注的领域之一。建立p o r t a l 的 意义在于可以使员工共享各种系统和信息资源,并对其进行统一的管理。对员工 来说,通过p o r t a l 可以了解和掌握有关企业的各种信息、参加讨论、协同工作等。 p o r t a l 自动将分散于企业各处的信息资源集成整理并发送给员工,真正实现信息 j e 塞交道厶堂亟堂僮盗塞i 【直 找人的目的。 3 快速变化的环境。商业步伐j 下在加快,兼并、收购等工作需要一个公司能 够方便快捷地改变自动化的流程,集成新系统,淘汰老系统。原有的点对点定制 代码的方法可维护性及灵活性较差,而集成工具所提供的基于消息的体系架构是 一种理想的解决方案。 4 更快速处理。客户更高的期望值给电子商务带来了前所未有的压力,需要 比以往更快的自动化处理流程,原有的批处理方法已远远不能满足需要。使用 e a i ( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ,企业应用集成) 工具的以事件驱动的 体系架构和消息机制是一种理想的解决方案。 但由于各个应用系统所采用的体系结构存在很大的差异,因此在集成这些应 用系统时,需要花费大量的人力和物力。根据m e t ag r o u p 的统计,经过相当一个 时期不断的i t 系统建设,一家典型的大型企业平均拥有4 9 个应用系统,3 3 的i t 预算是花在传统的集成上。因此,有效的企业应用集成要求企业信息系统能够给 b p r ( b u s i n e s sp r o c e s sr e e n g i n e e r i n g ,业务流程重组) 提供强有力得支撑,实现 跨业务领域和部门的流程自动化,提高软件资产的重复使用,建立一种多层次, 松耦合的t t 架构,减少应用系统点对点的接口,实现数据在多个应用系统问的同 步和共享以及端对端业务流程的处理。 1 2 研究现状及意义 1 2 1 研究现状 上世纪九十年代以来,关于企业应用集成的研究得到了巨大的发展。但是, 针对s a p 的应用集成,目前仍停留在比较初级的阶段。对s a p 应用集成的研究和应 用现状,可以从三个角度来看; 定制开发角度。针对小型的企业集成企业可以对业务作定制开发定制开 发要求使用现有的开放的技术,而不使用其他厂商提供的产品,从而节省企业成 本。s a p 应用集成是消息的集成,也即对s a p 特定的业务数据b a p i ( b u s s i n e s sa p i , 业务对象a p i ) 和i d o c ( i n t e r m e d i a t ed o c u m e n t ,中介文档) 业务的处理。虽然s a p 公 司针对这两种数据,在s a p 系统内作了大量的开发,功能也十分的强大。但是对于 外部应用程序的访问,目前的应用却十分有限,应用得比较广泛的是对b a p i 的调 用。即使如此,对b a p i 的使用也十分的有限,只是一些简单的利用b a p i 取数或利 用b a p i 更改业务数据,并没有达到应用集成的高度。而对于b a p i 如何支持事务, b a p i 访问时如何提高访问效率,都没有任何相关的资料。i o o c 数据也是s a p 与外部 j e 塞銮煎太堂亟堂位埝塞 l 直 集成时的重要实现方式。由于i d o c 结构复杂,难于解析,目前尚没有任何相关的 资料。 产品角度。目前部分中白j 件厂商已经提出了相应的解决方案,包括i b m 的 w e b s p h e r e 和b e a 的w e b l o g i c 以及s a p 公司的x i 。这些中间件厂商将解决方案集成在 自己的产品中,固然能解决一部分企业的应用需求,但是也有着许多的弊端:首 先,用户首先需要购买中间件厂商的产品,这些中问件都是以产品打包的形式提 交给用户的,虽然用户需要使用晕面的部分组件,但是大部分组件对用户来说根 本毫无意义,这使得企业浪费了许多不必要的成本支出;同时,目前市场上基于 这些中间件产品的s a p 集成方面的丌发人员匮乏,相关的指导资料也十分有限,这 必将增加企业的人力成本;再次,对于构建中小型企业应用,使用这些中间件对 用户来说并非最合理的选型一用户只需要针对自己的需求做定制开发,而使用中 间件做产品开发毫无必要。 科研角度。在论文开题之前作者参阅了国内外主要期刊数据库,只有很少 的关于s a p 集成的相关资料,而在国内甚至基本上没有找到任何相关资料;同时, 作者浏览了国内外大部分与s a p 相关的论坛,看到的大多是许多待解决的问题,却 很少有问题的解决方案或相关的研究成果。 1 2 2 研究意义 因此,本文的研究意义在于:设计了s a p 应用集成的架构,为s a p 的应用集成 特别是针对中小型企业的s a p 应用集成提供了一套合理的应用集成方案;本文的设 计基于j a v a 语言开发,用户只需要了解j a v a 编程,并对s a p 系统稍有了解,就能进 行相关应用程序的开发,大大降低了人力成本;本文的设计易于构建,企业不再 需要购买昂贵的中间件来满足需求,大大降低了成本;本文对s a p 的集成机制进行 了研究,因此也可以为系统设计人员提供相应的指导,灵活构建企业的s a p 集成架 构。 1 3 研究内容 基于当前s a p 应用集成的背景及现实意义,本文对s a p 的应用集成进行了研 究,设计了s a p 应用集成的架构并作了简单实现。本文首先阐述了当i ; s a p 应用 集成的模式,分析了s a p 与外部系统通信的主要方式,重点分析了a l e 方式的异 步通信方式和b a p i 方式的同步通信方式。在此分析的基础上,本文设计了一套通 用的s a p 集成的总体架构。架构分为4 层:应用接口层负责与s a p 系统的接口集 j b 塞窑煎苤堂硒堂僮逾塞【直 成;应用集成层用于解决被集成系统的数据转换问题;业务集成层实现业务流程 的整合:用户交互层通过统一的出口与用户交互访问。该架构基于分层思想,松 耦合,有利于标准化,降低层与层之白j 的依赖。在设计该架构的时候,同时引入 了消息队列的机制,保证了消息的有序发送:引入了事务机制,保证了数据的完 整传输。同时,本文针对应用接口层和应用集成层作了详细设计。 应用接口层提供了请求处理模块和事件处理模块。请求处理模块主要负责来 自外部应用程序的请求,设计了连接器和s a p 系统建立连接;为了提高连接的性 能,连接器模块引入连接池的设计模式,设计了连接池的访问方式;请求处理模 块同时提供了b a p i 处理模块和i d o c 处理模块,用于处理不同的业务对象。事件 处理模块处理来自s a p 系统的请求。事件处理模块的核心是建立了一个r f c ( r e m o t e f u n c t i o nc a l l ,远程接口调用) 服务器,支持同步通信和异步通信,用于侦听远程 s a p 系统的请求。事件处理模块也分别为b a p i 和i d o c 设计了相应的处理模块,在 处理i d o c 时,还提供了消息队列机制和事务机制。 应用集成层负责对数据的映射,目标是将s a p 的数据转化为通用统一的x m l 数据。应用集成层首先分析了s a p 的标准数据格式。详细分析了b a p i 和i d o c 的 结构。在此基础上,作者分别针对这两种数据格式设计了相应的映射规则。最后, 对于复杂的数据格式i d o c ,作者设计了相应的方法来实现i d o c 与) 【l i l 之问的双向 映射。 本文最后对整套设计进行了测试,并对该架构可能存在的问题进行了分析, 对下一步工作进行了展望。 1 4 论文安排 本文共分为七章。 第一章对分析了s a p 应用集成的背景和研究现状,并总括了本文的研究内容。 第二章分析了s a p 应用集成的相关技术。 第三章设计了一套s a p 应用集成的架构,阐述了设计时的相关机制和设计原 则。 第四章是对应用接口层的详细设计,包括了请求处理模块的设计和事件处理模 块的设计。 第五章对应用集成层进行了详细设计。该章分析了s a p 的数据格式,设计了相 应的映射规则并作了简单实现。 第六章对该架构进行了简单的测试,简述了s a p 端的系统配置,分别对i d o c 和b a p 进行了测试。 韭基窑亟塞堂亟堂焦趁塞i i 直 第七章总结了本文所做的工作,并对下一步工作进行了总结和展望。 2s a p 应用集成相关技术 2 1 s a p 接口技术 s a p 系统提供了大量的接口供外部应用集成,其中应用最广泛的技术包括a l e 和b a p i 。通过这些接口,s a p 实现了与外部系统的连接、数据交换和流程集成等 功能,s a p 接1 :2 技术【4 】如图2 一l 所示: 图2 - 1s a p 接口技术 f i g u r e2 - 1s a pi n t e r f a c et e c l m o l o g y 本节将对b a p i 和a l e 技术作详细介绍。 2 1 ib a p i 技术 为了方便外部系统的调用,许多应用系统都提供了自己的a p i 。a p i 即应用程 序接口,它封装了应用程序实现的细节,只提供了相关参数供外部系统调用。s a p 提供的a p i 称为b a p i ,它是为s a pr 33 0 以上版本提供的专有的接口技术。 经过多年的经验的积累,s a p 公司在业务方面的研究已经十分成熟,针对不同 的业务场景提取出了许多的业务对象,比如说物料数据( m a t e r i a l ) ,并将这些业 务对象存储于业务对象池( b o r ,b u s i n e s so b j e c tr e p o s i t o r y ) 中,统一规范管理 和开发。1 5 j 业务对象的设计基于面向对象的思想,类似于u m l 中的“类”对象,包 含了业务实体的各个属性。针对业务对象的应用场景,设计人员还可以为其开发 特定的操作方法,实现对业务对象的完整操作。业务对象的结构由以下几部分组 成:【6 】【7 】 基本数据一所有目标类的通用属性,如目标标识和默认方法( m e t h o d ) 。 接口界面一目标的方法( m e t h o d ) ,事件( e v e n t ) ,特征( a t t r i b u t e s ) 。 键( k e yf i e l d s ) 一供b o r 中目标检索使用。 方法( m e t h o d s ) 一对目标迸行所要求的各种操作。 特征( a t t r i b u t e s ) 一描述目标特征。 事件( e v e n t s ) 触发以改变目标状态。 使用b a p i 有着许多的优点: s a pr 3 提供的接口是全面的、系统的。s a p 通过多年来的经验积累和对业务 需求的充分预测,为每个业务模块提供了完善的业务出口,使得s a p 可以轻易应 付外部的数据整合调用,外部系统可以通过调用b a p i 实现基本上所有的业务操作。 b a p i 是基于面向对象思想的。s a p 引入面向对象的思想,为业务数据定义特 定的结构,赋予一组完整的操作方法,实现了对业务对象的完整操作。 2 1 2a l e 技术 a l e 是a p p l i c a t i o nl i n ka n de n a b l i n g 的缩写,是s a p 专门为s a p 与s a p 之 间设计的整合中间件技术。 s l i d o c s 是中介文本( i n t e r m e d i a t ed o c u m e n t ) 的缩写, 是s a p 提供的系统集成的专用的数据消息格式。a l e 的设计,原本作为两个s a p 系统间的一种消息传递服务( m e s s a g es e r v i c e ) 。是s a p 与s a p 的业务流程之自j 的 企业数据能够有效地交换,为两个独立的s a p 之间提供了系统整合服务。不过, 随着应用的发展,a l e i d o c s 接口机制已经成为其他非s a p 系统的整合机制。【9 l 【1 0 1 【1 1 l a l e 的结构可以分为三层,即应用层,数据消息分配层和通讯层。如图2 - 2 所示: 幽2 - 2s a p a l e 体系结构 f i g u r e2 - 2s a p a l ea r c i l i 眈t u r e 通讯层是s a p 整合机制的基础,它利用远程功能呼叫r f c 调用s a p 系统的功 能模块。 数据消息分配层,主要提供三个关键服务:根据数据分配模型决定数据接收 者;消息的过滤和转换;数据消息的压缩,以提高传递效率。 应用服务层直接与s a p 系统连接,生成或从其它系统接收含有路出信息的消 息文本i d o c s ,包括消息接收者的姓名,要求发送的类型以及对消息进行处理的规 则。 个a l e 发送过程由事件触发,文本生成,数据打包以及交由传输媒介传递 这四个步骤组成,如图2 - 3 所示: 1 2 l 图2 - 3a l e 发送过程 f i g u r e2 - 3a l es e n d i n gi ) r o c e s s 1 应用系统事件触发:系统对象( o b j e c t s ) 的状态变化,用户自主活动或其 它数据库特定变化等可以启动数据表的触发程序,从而进行数据传递的仞始化工 作,如数据准备。 2 生成主i d o c 文本( m a s t e r ) :按标准格式生成i d o c 主数据,其中包含所有 可以传递数据。 3 生成通讯i d o c :从主i d o c 中生成只与特定接收者有关的文本,通讯文本 是主文本的子数据集( s u b s e t ) 。生成通讯时,应用服务层首先会创建一个消息文 件,消息文件包含了生成i d o e 通讯信息的参数。根据消息文件,通讯i d o c 将执 行以下步骤: 图2 4a l e 通讯模型呻l f i g u r e2 - 4a l e c o m m u n i c a t i o nm o d e l 定义接收端:消息文件中定义了文件的发送端和接收端。当接收端没有被定 义的时候,a l e 层使用客户分配模型帮助定义接收端。a l e 能自动识别有多少个接 收端且每个接收端接受的消息的数目。确定了接收端后,系统会根据不同的接受 端选择不同的过滤器对象,定制出符合接收方的数据。 数据筛选,随着版本的升级以及业务流程的增强,不同的业务系统对同一数 据类型的定义可能存在差异。数据筛选过程为i d o c 文件的通讯双方实施数据映射, 使数据能够在双方系统中顺利集成。数据筛选包含3 个部分:1 1 4 1 1 ) 段过滤:在a l e 客户化的过程中,可以设定i d o c 中的某些段不被传输到接受 方,通过段过滤完成此步骤。 2 ) 字段转换:不同版本的系统对字段的定义可能存在差异。比如说,字段p l a n t 在a 系统为2 位字符,b 系统为4 位字符。字段转换实现了异构s a p 系统的数据 字段的转化。 3 ) 版本控制:a l e 支持不同版本的r 3 系统问的通讯。版本控制通过两种方式实 现:为某个段添加字段,为i d o c 添加段。 派遣控制:i 幅】控制消息文件是通过r f c 传输还是通过e d i 传输,同时通知消 息文件是立即发送还是采用后台处理。如果定制为后台处理,需要定义一个后台 工作流,同时定义循环周期。派遣控制同时定义传输包的大小。如果传输发生错 误,错误消息将被记录同时会触发工作流。 4 i o o c 发送:利用异步通讯方式将一定版本的i d o c 传递到接收方。 接收过程开始于s a p 系统从外部收到i d o c 文本。接收方既可以是s a p 系统, 也可以是第三方系统,这也是s a p 与第三方迸行有效整合的基础。 1 6 】接收过程如 图2 5 所示: 幽2 5i d o c 接收过氍 f i g u r e2 - 5i d o cr e c e i v i n gp r o c e s s 接收i d o c 。s a p 接收外部i d o c ,同时进行语法检测。 处理i d o c 。s a p 系统首先对i d o c 执行数据过滤,清除无意义的数据,同时, 针对不同的i d o c 类型设计相应的处理程序,处理程序可以是f u n c t i o n ,也可以是 工作流,甚至启用特定的进程处理。 生成状态文本。处理程序进一步生成系统文本供系统使用,并将结果信息存 于i d o c 的状态记录中。 总得说来,应用s a p 的a l e 机制进行s a p 与s a p 或非s a p 系统整合有以下几 个好处: a l e 技术不受s a p 版本升级的影响,它提供了版本向后兼容性。a l e 定义于s a p 应用层,与s a p 的逻辑层相对独立,整个a l e 中问件独立于发送和接收系统。 a l e 消息设计逻辑保证消息的“一次且只有一次”的消息传递。a l e 采用。存 储一发送”技术确保消息即使系统发生故障或接收方没有准备接收时也可以达到目 的地,这样就保证接收方不至于收到重复消息。 a l e 也提供了i d o c s 管理功能。主要有文本缩减、文本版本控制以及文本数据 过滤。三种控制机制使得s a p 开发人员可以根据实际需要对i o o c s 文本在运行中 进行动态处理。a l e 提供了系统管理功能,允许对a l e 系统进行启动复位恢复 等系统操作,为开发人员提供了进一步的管理控制。 2 2 r f c 体系架构 s a p 通过r f c 的方式与外部系统通信,它是s a p 与外部通信的最重要的方式1 2 研。 r f c即r e m o t ef u n c t i o n c a l l ,通过 c p i c ( c o m m o n p r o g r a m m i n g i n t e r f a c e c o m m u n i c a t i o n ) 协议或t c p i p 协议传输。s a pr f c 包含3 种不同的通 信方式:同步r f c ,s a p 基于r f c 推出的第一个版本,用于s a p 的同步通信,主 要用于b a p i 等的调用;【”j 事务r f c ,也被称为异步r f c ,支持异步通信,s a p 的 a l e 机制就是通过事务r f c 实现的;【l8 】队列r f c ,它是对事务r f c 的扩展,提供了 更加强大的功能。队列r f c 将待发送数据保存在消息队列中,数据按照指定的顺 序发送且仅被发送一次,一般用于对顺序要求严格的事务处理中l i * 。 为了方便j a v a 应用程序的访问,s a p 提供了一个驱动程序,它就是r f c 库。 r f c 库支持面向对象的访问方式,提供了数据访问的a p i ,屏蔽了数据通讯时底层 c c + + 实现的细节,避免了使用者花费大量时间去了解底层通讯的协议和机制,提 高了程序丌发的效率。i z 叫图2 - 6 描述了j a v a 应用程序与s a p 系统通讯的过程: 图2 6 外部系统与s a p 系统通信 f i g u r e2 - 6t h ec o m m u n i c a t i o nb e t w e e ne x t e r n a ls y s t e ma n ds a ps y s t e m 如图2 - 6 所示,j a v a 应用程序既可以实现r f c 客户端向s a p 系统发送请求, 也可以实现r f c 服务器支持来自s a p 系统的远程调用,从而实现外部应用程序与 s a p 系统的双向通信。j c o ( j a v ac o n n e c t o r ) 是s a p 公司提供的一个丌发包,提供 了完整的j a v a 应用程序与s a p 系统交互的a p i 。j c o 支持与s a p 服务器的双向调 用:内向调用,通过j a v a 程序调用s a pa b a p 语言:外向调用,支持s a pa b a p 程 序访问j a v a 应用服务器。p o 图2 - 7 描述了j c o 的体系架构: 图2 7j c o 体系架构 f i g u m2 - 7j c oa r c h i t e c t u r e 1 外部应用程序。外部应用程序逻辑上为一个通讯实体,提供业务访问数据, 调用s a pj c o 的a p i 与s a p 系统通信。 2 j c o j a v a a p i 。接口层定义了使用j a v a r f c 库编程时需要用到的类和接口。 这些类和接口是稳定的,不需要外部程序来修改和增强。只有当s a p 系统 的通讯服务发生变化时,s a p 公司会及时的发布新的接口层定义。 3 r f c 中间件层。中间件层是基于j n i 的,提供了j a v a 语言访问s a p 系统的 接口。 4 j n i 。j n i 是j a v a n a t i v ei n t e r f a c e 的缩写。从j a v a1 1 开始,j a v a n a t i v e i n t e r f a c e 标准成为j a v a 平台的一部分,它允许j a v a 代码和其他语言写 的代码进行交互。j c o 中的j n i 与通过c c + + 实现的r f c 库交互,保证了本 地r f c 中的c c + + 代码能工作在j a v a 虚拟机环境下。 5 ,r f c 库。因为c 圮+ + 有着更高的效率,r f c 库通过c c + 十实现了与s a p 系统底层的通讯协议。 3s a p 应用集成总体设计 3 1 相关机制 3 1 1 通讯机制 通信是集成基本的构建模块【川。系统问没有通信就没有集成。我们将系统间 的基本通信类型分类如下: 异步松耦合通信。异步松耦合通信涉及系统问彼此非直接的通信。两个系 统不需要物理上真正彼此连接,但仍可以通过第三方( 如:消息总线) 进行通信。1 1 7 1 因为发送方在发送消息后可以继续处理,不需要等待接收系统接收消息,因此, 这种类型的通信称为异步通信。异步通信最经常使用的是面向消息的中间件,例 如消息队列或发布订阅工具,如图3 - 1 : 图3 1 异步通信 f i g u r e3 - 1a s y n c h r o n o u sc o m m u n i c a t i o n 1 应用a 需要发送一个消息到应用b 。应用a 创建一个包含数据的消息并将它发 送给第三方。应用a 被称为信息的“生产者”或“发送方”。应用a 发送完消息后继 续向下处理,而不需要等待应用b 真正接收到该消息。 2 消息队列存储该消息直到应用b 准备来取。 3 ,当应用b 需要时,它从消息队列得到该消息。一旦消息被成功读取,该消息 一般被删除。应用b 被称为信息的“消耗者”或“接收方,口 s a p 系统的i o o c j 下是基于异步通信的,如图3 - 2 : 幽3 2s a p 异步调j 【f 】原理 f i g u r e3 - 2s a pa s y n c h r o n o u sc o m m u n i c a t i o np r i n c i p l e 使用异步通信机制时,发送方不需要立即建立与接收方的可用连接。s a p 系统 将数据发送到网关,如果接收端系统暂时不可用,待发送数据仍然保留在发送端 的输出队列里面。系统发送端每隔一定的时间再次向接收端发送请求,直到接受 端建立与s a p 系统的可用连接并成功获取数据。此时,数据发送成功,发送方删除 输出队列中的数据,数据发送过程完成。 同步紧耦合通信同步通信涉及系统间彼此直接通信。两个系统通常是以一 种客户服务器交换类型彼此互连。其中一个系统是客户端,它调用服务器的功能。 因为客户端必须直接与服务器通信,因此,这也被称为紧耦合。它也被称为“阻 塞,因为当客户端等待服务器应答时,它将停止处理。如图3 3 : 图3 3 同步通信 f i g u r e3 - 3s y n c h r o n o u sc o m m u n i c a t i o n 1 应用a ( 客户端) 调用一个应用b ( 服务器端) 公布的功能。应用a 等待响应。 2 应用b 收到请求并回应给客户端。然后,客户端继续进行其它相关处理。 s a p 系统的同步通信机制,如图3 4 : 图3 - 4s a p 同步通信原理 f i g u r e3 - 4s a ps y n c h r o n o u sc o m m u n i c a t i o n s a p 的同步通信机制采用的是简单的f u n c t i o n 调用。同步通信的机制是建立好 了与接收端的连接且接收端能够接收来自发送端的数据。 3 1 2 事务机制 事务是指一个单元的工作,这些工作要么全做,要么全部不做。作为一个逻 辑单元,必须具备四个属性:自动性、一致性、独立性和持久性。自动性是指事 务必须是一个自动的单元工作,要么执行全部数掘的修改要么全部数据的修改 都不执行。致性是指当事务完成时,必须使所有数据都具有一致的状态。独立 性是指并行事务的修改必须与其他并行事务的修改相互独立。一个事务看到的数 据要么是另外一个事务修改这些事务之前的状态,要么是第二个事务已经修改完 成的数据,但是这个事务不能看到正在修改的数据。这种特征也称为串行性。持 久性是指当个事务完成之后,它的影响永久性的产生在系统中,也就是这种修 改写到了数据库中。 事务确保数据的一致性和可恢复性。事务的工作原理如图3 5 所示。 图3 - 5 事务执行原理 f i g u r e3 - 5t h ep r i n c i p | eo f t r a n s a c t i o n 事务开始之后,事务所有的操作都陆续写到事务日志中。写到开志中的操作, 一般有两种:一种是针对数据的操作,一种是针对任务的操作。针对数据的操作, 例如插入、删除和修改,这是典型的事务操作,这些操作的对象是大量的数据。 有些操作是针对任务的,例如对业务对象的操作。当取消这种事务时,系统自动 执行这种操作的反操作,保证系统的一致性。系统自动生成一个检查点机制,这 个检查点周期地发生。检查点的周期是系统根据用户定义的时间间隔和系统活动 的频度由系统自动计算出来的时间间隔。检查点周期地检查事务同志,如果在事 务r 志中,事务全部完成,那么检查点将事务开志中的事务提交到数据库中,并 且在事务同志中做一个检查点提交标记。如果在事务日志中,事务没有完成,那 么检查点将事务同志中的事务不提交到数掘库中,并且在事务同志中做一个检查 点未提交标记。事务的恢复以及检查点保护系统的完整和可恢复,可以使用如图 3 6 所示的示例说明。 图3 - 6事务恢复雨i 检卉点示例 f i g u r e3 - 6d e r n of o rl a - a 1 1 s a e f i o n sa n dc h e c k p o i n t s 在这个示例图中,有五个事务:事务l 、事务2 、事务3 、事务4 和事务5 。 方框表示事务的开始和完成提交。水平方向表示时白j 。检查点表示在某一时白j 点 发生检查点机制,系统失败表示在某一时白j 点由于断电、系统软件失败等原因而 发生的系统失败。事务1 的完成发生在检查点发生之前,所以事务1 被提交到数 据库中。事务2 和事务4 的完成发生在系统失败之前,所以这两个事务可以被系 统向前滚动提交到数据库中。事务3 和事务5 由于系统失败而没有完成,所以这 两个事务被取消。s a p 系统执行事务处理时,t r f c ( 事务r f c ) 服务器和t r f c 客户 端使用同步通信机制。事务处理包含两个阶段,如图3 7 : 幽3 7s a p 事务处理模型 f i g u r e3 - 7s a pt r a n s a c t i o np r o c e s s i n gm o d e l 阶段1 :f u n c t i o n 的调用,t r f c 服务器通过f u n c ti o na r f c d e s t _ s h i p 实现 此阶段。当t r f c 服务器接收到事务性的请求时,首先访问数据库表a r f c r s t a t e , 检查事务t i d 是否已经存在。如果不存在,将事务t i d 写入到数据表中,并为当 前事务设立检查点:如果存在,继续下一步的操作。如果在接受事务请求数据的 传输过程中发生错误,可以通过事务s m 5 9 重新传输数据。t r f c 服务器执行该请求, 如果执行成功。返回j 下确的结果通知t r f c 客户端。如果执行失败,回滚到检查点 以前的状态。r f c 客户端依次执行事务请求,直到所有事务请求都被币确执行。此 时,r f c 客户端通知r f c 服务器所有l u w 已经正确执行,r f c 服务器确认整个事务。 阶段2 :事务确认,r f c 服务器调用f u n c t i o na r f c d e s t _ c o n f i r i 实现此阶 段。t r f c 客户端发送确认信息通知t r f c 服务器,t r f c 服务器删除表a r f c r s t a t e 中的事务队列信息,同时删除服务器上属于该t d 的所有l u w ,整个事务操作成功。 3 1 3 消息队列机制 在系统的应用集成环境中,应用程序之间以一系列消息的形式保持通信。在 发送者和接收者的传送过程中,为了避免传递过程中消息被丢失,消息会保存在 队列中,这个队列就是消息队列。消息队列可驻留在内存或磁盘上,队列存储消息 直到它们被应用程序读走。通过消息队列,应用程序可独立地执行它们不需要 知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。消息队列为 构造以同步或异步方式实现的分布式应用提供了松耦合方法。消息队列的a p i 调 用被嵌入到新的或现存的应用中,通过消息发送到内存或基于磁盘的队列或从它 读出而提供信息交换。消息队列可用在应用中以执行多种功能,比如要求服务、 交换信息或异步处理等。 消息队列是面向消息中间件的数据结构,用抽象数据类型来表示。从实质上 说,队列是一片存储缓冲区,队列中可以存放一条或多条消息。从应用程序的设 计分类来看,消息队列属于点对点模型。点对点设计是一个多对一的范例在这种 模型晕,多个客户可以发送消息到一个客户。一个客户可以是一个发送者。也可 以是一个接受者,或者二者都是。这种通讯在本质上是基于“队列( q u e u e ) 的。 发送者发送消息到队列,接受者从队列取消息,队列可以根据用户需要持久保持 消息。如图3 8 所示: 幽3 8 消息队列 f i g u r e3 - 8m e s s a g eq u e u e s 消息队列的通信方法采用了s t o r e aa n df o r w a r d 的方法。s t o r e a n df o r w a r d 使用消息队列保存消息,通过使用队列,发送应用程序发送消息到中自j 件应用程 序,中间件应用程序将消息保存在消息队列中,队列可以放在网络上的任何地方。 消息可以立即发送,也可以延迟一段时问再发送。 消息队列在管理消息时,又包含了排队机制,目前应用比较广泛的排队机制 包括: 先进先出( f i f o ) 3j 】。f i f o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论