当前位置:文档之家› 第2章 Java分布式对象技术

第2章 Java分布式对象技术

基于分布式应用的中间件

基于分布式应用的中间件:作用与分类 [日期:2006-05-31] 来源:作者:[字体:大中小] 陈国良 摘要中间件是分布式应用中最为关键的部分,通过对分布式应用的开发者隐藏底层信息,屏蔽网络和分布式应用的复杂性,并为网络和分布式应用提供相应的服务,使得开发者可以集中致力于应用逻辑。本文在综合定义的基础上,基于中间件所提供的服务综述了中间件的基本作用以及基本分类,并结合当前研究对中间件的发展趋势进行了展望。 关键词中间件,分布式计算 一、引言 网络和硬件技术的飞速发展,极大地提高了计算机系统的通讯能力。但是,由于分布式应用程序绝大多数都是在网络环境的异构平台上运行,使得网络和分布式应用的开发、测试和移植中所投入的代价非常高。 在未使用中间件而使用操作系统、网络和数据库直接开发分布式应用程序时,开发者必须面对很多实际困难,包括:(1)复杂性:由于直接面对底层复杂系统,需要处理繁琐的底层信息;(2)异构性:由于操作系统、硬件平台、网络结构和数据库系统的复杂多样性,为适应不同的应用平台,同一软件需要进行大量的兼容性开发,加大了软件开发工作量和复杂程度;(3)数据分布:分布式系统中的数据分布导致如数据的安全性、一致性、效率、性能等问题;(4)重复性:应用之间存在部分相似性,为此需要耗费大量的时间和精力来重复同样的工作。针对上述困难和问题,可行的解决方法是将软件开发中的共同模式进行抽象和提炼,形成可复用的构件,以利于应用软件的重用,由此产生了中间件[1]。使用具有高度灵活性、有效性、可靠性和安全性的中间件可以大大减轻开发分布式应用的复杂性和代价。 二、中间件的基本定义 由于划分的标准不同,目前对于什么是中间件并没有准确而统一的定义。在综合现有研究成果的基础上[2][3],我们可以给出如下的关于中间件的完整性定义,即:中间件是位于应用软件与系统基础软件之间的独立的具有相应层次的系统软件或通用服务,通过提取可重用的应用模式以及对标识、认证、授权、目录、安全性等服务的标准化和互操作,为应用提供统一的标准化程序接口和协议,隐藏底层硬件、操作系统和网络的异构性,统一管理网络资源的网络通信,灵活高效地开发分布式应用。

基于中间件的分布式网络异常检测系统

2006年第23卷?增刊微电子学与计算机 1引言 随着网络的发展,保证网络的安全与稳定也越来越为重要。网络异常检测是发现网络故障和安全问题进而及时解决问题的有效手段,然而网络规模的不断扩大和网络流量的不断增加使得网络异常检测面临挑战,异常检测的性能随着网络规模的扩大和网上业务的增多呈现下降趋势,如何快速有效的检测网络异常并提高检测的可靠性已成为一个研究热点。 本文引入了分布式计算的方法,设计了一种基于中间件的分布式网络异常检测系统,旨在用分布式计算的方法提高对海量网络数据的处理能力,保证检测的实时性和检测数据的可靠性。 2网络异常检测 这里提到的网络异常的范围较大,除了正常行为以外的网络行为都可以称为网络异常。造成这些异常的原因是多种多样的,包括:网络设备故障,网路超负荷,恶意的拒绝服务攻击,以及网络入侵等影响网络运输服务的行为。网络异常大体可以分为两类:第一类是关于网络故障和性能问题,例如文件服务器故障,广播风暴,虚假节点和瞬时拥塞等等。第二类网络异常是安全相关的问题,拒绝服务攻击和网络入侵就是这方面的例子。这些异常的一个共同点就是会导致巨大的网络通信流量变化。 检测网络异常的主要思路是:先通过一个足够长的训练阶段来定义出网络正常行为,再根据网络行为偏离正常行为的程度来判定异常是否发生。我们可以通过有规律的网络数据来定义网络正常行为,但这要依赖很多特殊因素,例如网络通信流量的变化,可获得的网络数据的变化,以及网络上运行的软件种类的变动,这些都将影响对网络正常行为的描述[2]。准确地获得网络性能检测数据对于异常检测是十分重要的一步,检测数据的来源主要有:第一是通过网络探针来获得网络行为测量值;第二是基于流统计的包过滤;第三是通过路由协议获取数据;第四是通过网管协议获取数据。网络异 基于中间件的分布式网络异常检测系统 陈宁军倪桂强潘志松姜劲松 (解放军理工大学指挥自动化学院,江苏南京210007) 摘要:文章介绍了网络异常的概念和思路,然后对中间件技术做了分析比较,重点提出了一种基于中间件的分布式网络异常检测系统。该系统采用CORBA实现分布式交互,能对网络异常进行分布式检测,与单点异常检测系统相比具有更高的实时性和处理数据的能力,对大型网络效果更好。本系统通过MIB变量相关联地剧烈突变来检测异常的发生。CORBA标准定义的比较完善的安全体系结构使本系统自身的安全性得到了保证。 关键词:网络异常检测,分布式,中间件,CORBA,MIB 中图分类号:TP393文献标识码:A文章编号:1000-7180(2006)S0-0015-03 ADistributedNetworkAnomalyDetectingSystemBasedon CORBA CHENNing-jun,NIGui-qiang,PANZhi-song,JIANGJin-song(CollegeofAutomaticCommanding,PLAUniversityofScienceandTechnology,Nanjing210007,China) Abstract:Thispaperintroducetheconceptandthoughtofnetworkanomalydetection,thenanalyzeandcomparethetechniquesofmiddleware,andlayemphasisondesigningofadistributednetworkanomalydetectionsystembasedonmiddleware.ThesystemachievesdistributedcommunicationthroughCORBA,andcandetectnetworkanomaliesthroughdistributedway.Itismorereal-timeandhasbetterabilityondataprocessingcomparedwithsinglepointdetection,es-peciallyforlargenetwork.AnomalycanbedetectedthroughcorrelatedabruptchangesofMIBvariables.Thewellde-finedsecurityframeworkofCORBAhasensuredthisnetworkanomalydetectionsystem'sownsecurity. Keywords:Networkanomalydetection,Distributed,Middleware,CORBA,MIB 收稿日期:2006-05-28 15

解析分布式事务的四种解决方案

解析分布式事务的四种解决方案 分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。 例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。 在分布式系统中,要实现分布式事务,无外乎那几种解决方案。 一、两阶段提交(2PC) 两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,最终决定这些参与者是否要真正执行事务。 1、运行过程 ①准备阶段:协调者询问参与者事务是否执行成功,参与者发回事务执行结果。 ②提交阶段:如果事务在每个参与者上都执行成功,事务协调者发送通知让参与者提交事务;否则,协调者发送通知让参与者回滚事务。 需要注意的是,在准备阶段,参与者执行了事务,但是还未提交。只有在提交阶段接收到协调者发来的通知后,才进行提交或者回滚。 2、存在的问题 ①同步阻塞:所有事务参与者在等待其它参与者响应的时候都处于同步阻塞状态,无法进行其它操作。 ②单点问题:协调者在 2PC 中起到非常大的作用,发生故障将会造成很大影响。特别是在阶段二发生故障,所有参与者会一直等待状态,无法完成其它操作。 ③数据不一致:在阶段二,如果协调者只发送了部分 Commit 消息,此时网络发生异常,那么只有部分参与者接收到 Commit 消息,也就是说只有部分参与者提交了事务,使得系统数据不一致。 ④太过保守:任意一个节点失败就会导致整个事务失败,没有完善的容错机制。 二、补偿事务(TCC) TCC 其实就是采用的补偿机制,其核心思想是:针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作。它分为三个阶段: ①Try 阶段主要是对业务系统做检测及资源预留。 ②Confirm 阶段主要是对业务系统做确认提交,Try阶段执行成功并开始执行Confirm阶段时,默认 Confirm阶段是不会出错的。即:只要Try成功,Confirm一定成功。 ③Cancel 阶段主要是在业务执行错误,需要回滚的状态下执行的业务取消,预留资源释放。

SQL Server 分布式数据库MSDTC 分布式事务错误和解决方法

SQL Server 分布式数据库MSDTC 分布式事务错误和解决方法 一、问题现象 假如分布式事务的客户端和服务器端(可能N个)不在同一台服务器上,如分别为应用程序服务器和数据库服务器,经常会出现一下错误: ①在建立与服务器的连接时出错。在连接到SQL Server 2005 时,在默认的设置下SQL Server 不允许进行远程连接可能会导致此失败。(provider: 命名管道提供程序, error: 40 - 无法打开到SQL Server 的连接)。 ②事务已被隐式或显式提交,或已终止。 ③该伙伴事务管理器已经禁止了它对远程/网络事务的支持。(异常来自 HRESULT:0x8004D025)。(TransactionScope异常) ④[COMException (0x8004d00e):此事务已明地或暗地被确认或终止(异常来自HRESULT:0x8004D00E)]。(MSDTC 分布式事务错误) ⑤Import of MSDTC transaction failed: Result Code = 0x8004d023. (MSDTC安全性配置问题) 二、解决方法 遇到以上的问题或SQL Server分布式的问题,请按照以下步骤设置,问题应该可以得到解决。可能有些步骤对您来说是多余的,但求全不求漏。 1. 启动MSDTC服务。 MSDTC简介:MSDTC是Microsoft Distributed Transaction Coordinator的简称,即微软分布式事务协调器,描述:协调跨多个数据库、消息队列、文件系统等资源管理器的事务。如果停止次服务,则不会发生这些事务。如果禁用此服务,显式依赖此服务的其他服务将无法启动。 MSDTC启动方法: ①“开始”|“运行”,输入“services.msc”,或者“控制面板”|“管理工具”|“服务”,打开“服务”窗口,在名称中找到“Distributed Transaction Coordinator”,将其启动。 ②“开始”|“所有程序”|“Microsoft SQL Server”|“服务管理器”,打开“SQL Server 服务管理器”窗口,选中“Distributed Transaction Coordinator”服务,将其启动。 2. 设置MSDTC组件。 ①检查操作系统是否安装DTC组件。XP默认安装,Win2003默认不安装。安装步骤如下: a. “开始”|“控制面板”|“添加/删除程序”|“添加/删除Windows组件”,选择“应用程序服务器”,单击“详细信息”,选择“启用网络DTC访问”,单击“确定”|“下一步”|“完成”。 b. 停止并重启MSDTC服务(命令:net stop msdtc和net start msdtc)。 c. 停止参与分布式事务的任何资源管理器服务(如Microsoft SQL Server 或Microsoft Message Queue Server),然后重新予以启动。

Windows中MSDTC(分布式事务处理)系统配置方法

Windows中MSDTC(分布式事务处理)系统配置方法 DTC帮助我们实现分布式数据库服务器之间集合事务处理,即远程异地事务处理功能;例如:有多个SQL SERVER服务器,我们要让它互相执行更新操作,但又要保证事务的完整性,就可以开启DTC功能进行实现; SQL SERVER分布式事务脚本举例: { SET XACT_ABORT ON BEGIN TRAN INSERT INTO [192.168.88.61].ccerp_test.dbo.spkfk ( spid , spbh ) SELECT'远程','远程' INSERT INTO spkfk ( spid , spbh ) SELECT'本地','本地' COMMIT } DTC配置方法如下: 1、检查系统开启了DTC服务; 打开【管理工具】->【服务】,检查Distributed Transaction Coordinator、Remote Procedure Call (RPC)两个组件是否已启动;如果没有启动就将它们启动; 如图1:(一般正常启动了Distributed Transaction Coordinator组件,Remote Procedure Call (RPC)也会自动启动) (图1) 2、设置DTC服务; 打开【管理工具】->【组件服务】,找到【分布式事务处理协调器】,点属性对它进行设置; 2003、2008 SERVER设置它时,操作位置界面会若有区别; 但其需要设置的内容: (1)、【默认协调器】:使用本地协调器; (2)、设置内容:如图2:

(图2) 3、设置参加DTC的各机防火墙; 打开【控制面板】->【防火墙】,添加例外的应用程序:将分布式协调器MSDTC.exe添加到例外中; C:\Windows\System32\MSDTC.exe 设置完后防火墙设置如图3: 分布式事务协调器

相关主题
文本预览
相关文档 最新文档