企业应用集成企业应用集成鲍亮baoliang@mailxidianeducn西安电子科技大学软件工程研究所baoliang@mail.xidian.edu.cn2010-6-21应用程序接口集成西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/22主要内容主要内容应用程序接口集成简介1应用程序接口的定义2应用程序接口集成3小结4西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/33主要内容主要内容应用程序接口集成简介1应用程序接口的定义2应用程序接口集成3小结4西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/44应用程序接集成简介应用程序接口集成简介对EAI问题的定义和解决方案般情况下集对EAI问题的定义和解决方案一般情况下集中在数据模型层或业务模型层数据层面上的问题主要由数据集成的技术解决,这在上一节课中已经介绍解决,这在上节课中已经介绍业务模型层面的问题主要可以分为三类:应用接口层方法层方层用户界面层西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/55应用程序接集成简介(续)应用程序接口集成简介(续)本节主要介绍应用接口层面上的企业应用本节主要介绍应用接口层面上的企业应用集成,即API集成采用API方式进行应用集成时需要考虑创建采用API方式进行应用集成时需要考虑创建和使用应用程序接口的问题目前存在的遗产系统一般情况下都会暴露一组功能或数据接口,为其他应用提供使组功能或数据接口,为其他应用提供使用价值应用程序接口的发展十分迅速早期的应应用程序接口的发展十分迅速,早期的应用程序接口基本上是各自为战,没有统一的格式西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/66的格式应用程序接集成简介(续)应用程序接口集成简介(续)目前的API已经采用一些标准的机制目前的API已经采用一些标准的机制:Java的RMI(RemoteMethodInvocation)远程调用远程调用CORBA(CommonObjectRequestBrokerArchitecture)的IIOP(InternetInterORBArchitecture)的IIOP(InternetInter-ORBProtocol)Microsoft的DCOM(DistributedMicrosoft的DCOM(DistributedComponentObjectModel)当相关的标准建立之后集成人员就不必当相关的标准建立之后,集成人员就不必关心具体采用何种接口进行集成西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/77应用程序接应用程序接口简单来说应用程序接口是由系统开发者简单来说,应用程序接口是由系统开发者从购买或定制开发的系统中暴露出来的接口有些接口是在一定范围内使用的,绝大多有些接口是在定范围内使用的,绝大多数则是具有“许多特性”的接口(后面会介绍WindowsAPI这是一组相当复杂的介绍WindowsAPI,这是一组相当复杂的API)接口有时会允许直接访问业务流程,有时会允许直接访问数据,有时两者皆可访问西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/88会允许直接访问数据,有时两者皆可访问应用程序接(续)应用程序接口(续)开发人员选择暴露这些接口有两个主要原开发人员选择暴露这些接口有两个主要原因第一个原因是保证开发者在不调用用户界面(用户界面通常具有复杂的逻辑)或直面(用户界面通常具有复杂的逻辑)或直接访问数据库的条件下,提供访问封装在应用程序中的业务逻辑和数据应用程序中的业务逻辑和数据第二个原因是提供一种将封装的信息进行共享的方式西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/99应用程序接集成的特点应用程序接口集成的特点与方法集成与用户界面集成不同与方法集成与用户界面集成不同方法集成通常会共享存在不同应用程序之方集成常会共享存在同应用程序间的共用业务流程,一般存在于应用服务器中或分布对象中器中或分布对象中用户界面集成与应用程序接口集成有些类似都采用暴露出来接来访问数据或业似,都采用暴露出来接口来访问数据或业务流程用户界面主要关注与用户的交互,应用程序接口主要支持通过程序获取相关信息西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1010序接口主要支持通过程序获取相关信息主要内容主要内容应用程序接口集成简介1应用程序接口的定义2应用程序集成的分类与特点3小结4西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1111应用程序接的定义应用程序接口的定义APIsareelldefinedmechanismsthatAPIsarewell-definedmechanismsthatarebuilttoconnecttosomesortofresource,suchasanapplicationserver,middlewarelayer,ordatabasey,应用程序接口是一组良性定义的机制,用来连接某种资源例如应用程序服务器来连接某种资源,例如应用程序服务器,中间件层或数据库等西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1212应用程序接定义(续)应用程序接口定义(续)西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1313应用程序接的定义(续)应用程序接口的定义(续)应用程序接口是由程序员编制的不难想应用程序接口是由程序员编制的,不难想象,从功能和特点上这些应用程序接口都着有着很大的不同编写良好的应用程序接口能够访问实时数编写良好的应用程序接口能够访问实时数据,例如工业生产中的实时生产数据,或者是存在于大型主机系统中的图形信息者是存在于大型主机系统中的图形信息应用程序接口可以通过直接访问资源或直接访问数据的方式提供不同层次和深度的服务西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1414服务小知识id小知识:WindowsAPI应用程序编程接口(ApplicationProgramming应用程序编程接口(ApplicationProgrammingInterface,API)是操作系统用来实现应用程序与系统进行通信的函数集合系统进行通信的函数集合著名的Win32API,是一个函数的大型集合,这些函数构成了Wid应用程序正式的底层编程些函数构成了Windows应用程序正式的底层编程接口目前,Microsoft提倡使用.NETFramework来开发Windows应用程序。.NETFramework使用系统类来访问操作系统服务,这将是另外一个Win32API接口西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1515小知识id(续)小知识:WindowsAPI(续)Win32API内核包含了大约2000个API函数Win32API内核包含了大约2000个API函数(这个数目的确定取决于Windows版本的不同和统计时是否将未公开文档的Win32API计算在内)计算在内)这些API函数可分为三类:内核(Kernel)、用户(USER)和图形设备接口(GDI)用户(USER)和图形设备接口(GDI)下页的图表达了这三者之间的关系西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1616i接和其核心部件的关系Win32接口DLL和其核心部件的关系用户模式本地API图形设备接口本用户API内核模式用户内核模式西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1717各部分功能介绍各部分功能介绍内核API(KernelAPI)(也称为基本API)内核API(KernelAPI)(也称为基本API)内核API在KERNEL32.DLL模块中执行,包括除了图形设备接口(GUI)外的所有服务,如文件I/O、内存管理、对象管理、进程与线程管理,等等KERNEL32.DLL一般会从NTDLL.DLL调用底层本地API,来实现不同的服务。内核API用于创建内核级对象,如文件、同步对象等,并与创建内核级对象如文件同步对象等并与它一同工作,所有的这些内核级对象都在我们前面讨论过的系统对象管理器中实现。西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1818各部分功能介绍(续)各部分功能介绍(续)图形设备接口API(GDIAPIs)图形设备接口API(GDIAPIs):图形设备接口API在GDI32.DLL中实现,提供象画线位图显示等这样的底层图形服务象画线、位图显示等这样的底层图形服务。GDI通常不会意识到Windows和controls的存在GDI的API主要在内核中的WIN32KSYS在。GDI的API主要在内核中的WIN32K.SYS模块内部执行GDIAPIs使系统调用WIN32KSYS来完成大部GDIAPIs使系统调用WIN32K.SYS来完成大部分API。GDI围绕GDI对象工作,这些对象,如设备上下文(devicecontexts),画刷,画设备上下文(),画刷,画笔等,主要用于绘图,它们不由内核对象管理器进行管理。西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.edu.cn/1919各部分功能介绍(续)各部分功能介绍(续)用户API(USERAPIs)用户API(USERAPIs):用户API在USER32.DLL模块中实现,提供所有上层的图形用户接口(GUI)相关服务,如windows管理、菜单、对话框、用户接口管理等等。所有图形用户接口(GUI)对象都由用户使用图形设备接口(GDI)调用,来完成实际的绘图任务,该任务的完成密切依赖于GDIURERAPI围绕如windows、菜单等这样用户接口相关的对象工作。这些对象也不由内核对象管理器进行管理。西安电子科技大学软件工程研究所西安电子科技大学软件工程研究所://sei.xidian.ed