注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 数据库 > Oracle 内容正文:.NET下基于组件的分布式系统动态配置

.NET下基于组件的分布式系统动态配置

发布时间:2006-05-04 10:01:37 来源:计算机与信息技术 网友评论 0 条
  摘要 动态配置为基于组件的分布式系统提供了一种在线演化的强大机制。本文提出了一种在MS Dot Net环境下建立一个可动态配置的分布式应用系统的策略。

  关键字 组件、AOP、动态配置

  引言

  随着分布式系统在各个关键业务中起到越来越多的作用,如银行系统、基础通信系统,而这些业务是需要长时间不间断运行的,因此对系统的演化必需是在线进行的。本文提出了一种在MS Dot Net Framework环境下实现基于组件的分布式系统的动态配置策略。

  对分布式系统描述

  基于组件技术的分布式系统可以描述为一个有向图,有向图中的结点表示各个组件,组件中的通信用有向的连线表示。关于这样的一个有向图可以通过XML语言来表示,例如:

<Configuration>
<Assemblies>
 <Assembly NAME="DataProducer" LOCATION="192.168.10.33" PORT="1234" />
 <Assembly NAME="DataConsumer" LOCATION="192.168.10.34" PORT="1235" />
</Assemblies>
<Connections>
 <Connection FROM="DataProducer" TO="DataConsumer" />
</Connections>
</Configuration>


图 1 分布式系统的XML描述

  其中结点用“Assembly”标记表示,有向连线用“Connection” 标记表示。上面的这一段代码描述了一个从“DataProducer”指向“DataConsumer”的系统。

  动态配置算法

  动态配置要求系统在配置前后必需保持一致性,以下提出的一种策略可以实现系统前后的引用一致性,这种方法称之为“钝化法”。

  钝化是指如果一个结点所产生的所有事务已经完成,并且不再会产生新的事务了,那么这个结点就可以进入一个钝化状态。但是,它必需要能够接受别的结点产生的事务,以使其它的结点也可以进入钝化状态。这样一个组件只要等待有限长的时间就可以进入钝化状态。结点Q的扩大钝化集合EPS(Q),由Q以及所有可以导致启动需要Q参与的事务的构件组成。如果一个结点Q的EPS(Q)中的所有结点都处于钝化状态的话,我们就说结点Q是静止的。

  根据静止状态理论(首先由Jeff Kramer和Jeff Magee提出),如果一个结点处于静止状态的话,对它进行动态配置是不会改变整个系统的一致性的。


图2

  如图2描述的分布式系统,若想要替换M,那么EPS(M) = {C1,C2,A1,A2,M},只要EPS(M)中的所有集合都是处于钝化状态的,那么M就是静止的,也就是说在M静止的情况下,对M进行动态配置前后系统会保持引用一致。

  AOP技术的运用

  支持动态配置功能的代码,可以理解为非功能性代码,这些代码将会独立于系统的其它功能。为了实现这一部分的功能,可以借助于面向方面编程(Aspect-Oriented Programming,简称AOP)来实现。通过AOP技术的运用可以很轻松地实现对分布式系统的动态配置功能。

  在MS Dot Net Framework下,可以依靠监听的机制来实现AOP的功能。在这里需要用到了两个类,ContextBoundObject类和ContextAttribute类。

  任何一个继承自ContextBoundObject的类在创建的时候都会为它创建一个Context,我们就可以利用这个Context来实现监听功能。这些起监听功能的代码将会在一个继承自ContextAttribute的类中实现(这种类我们称之为自定义属性类)。如图2中的StateAttribute类是继承自ContextAttribute的自定义属性类,在它的实现中可以加入任何我们想要的监听代码,只要将它“贴”在一个想要被监听的类的定义前面,那么这个类就会被监听,如DataProducer类。

[AttributeUsage(AttributeTargets.Class)]
public class StateAttribute : ContextAttribute{}
[StateAttribute ()]
public class DataProducer: ContextBoundObject{}

  通过对自定义属性类的实现,我们可以实现对目标的状态的控制,进而达到影响目标行为的效果。这样我们就可以通过AOP技术来对第3部分中提出的动态配置算法加以实现。

  控制台的建立

  控制台是对分布式系统进行集中管理用的,它的主要功能有以下几个方面:

  ⑴ 析如图1的XML语言,也就是对整个系统架构的描述和对系统结构的修改。例如,可以添加一个结点或修改一个有向连线。

  ⑵ 对结点状态的修改。

  ⑶ 实现对系统的动态配置功能,包括添加结点、删除结点、更新结点等。

  评价动态配置策略

  该策略通过为分布式系统每个结点添加自定义属性的方法,并在控制台的协调下,基本上实现了对结点的引用一致性的问题。
相关文章
  • ASP.NET入门随想之代言人
  • ASP.NET中编程杀死进程
  • ASP.NET 2.0站点登录、导航与权限管理
  • ASP.NET服务器控件编程之卷首语
【评论】【收藏本文】【打印】【关闭】
上一篇文章:Ruby程序快速入门之简单的例子
下一篇文章:Hibernate作为数据持久层的分析和研究
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
Atlas快速入门之实战Atlas
Atlas快速入门之实战Atlas
.net页面间的参数传递简单实例
.net页面间的参数传递简单实例
推荐阅讯
  • Oracle数据库游标使用大全
  • 软件也要时尚漂亮 软件包装周边制作一览
  • 在MIDP2.0中使用Push注册机制
  • VS2005中使用强类型DataSet简化开发
  • 利用AJAX+J2EE开发组织机构管理系统
  • Atlas快速入门之实战Atlas
  • 深入浅出MFC文档/视图架构之基本概念
  • 设计模式探索系列之Bridge模式
  • MySQL安全性指南 (2)(转)
  • 关于Web 2.0 网站的创业思考
阅读排行
  • 1..net页面间的参数传递简单实例
  • 2.VC++与Matlab混合编程之引擎操作详解
  • 3.Oracle数据库数据对象分析
  • 4.Eclipse3.2+Tomcat5.5.17+Oracle9配置
  • 5.Oracle数据库中索引的维护
  • 6.在Oracle的网络结构中解决连接问题
  • 7.Oracle数据安全面面观
  • 8.Oracle数据库的ORA-00257故障解决过程
  • 9.Oracle数据库备份与恢复的三种方法
  • 10.Oracle与SQL Server在企业应用中的比较
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载