分享
 
 
 

采用JDMK来构筑网管系统

王朝java/jsp·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

1 JDMK概述JDMK(Java Dynamic Management Kit)是由SUN发布的一种基于JAVA技术,用于实现网络管理和网络服务的工具软件包。简单的说Java Dynamic Management Kit是由JAVA的一个应用程序接口(JAVA API)和一套开发工具组成的。

JMX(Java Management Extensions)是一套基于Java技术的网管系统解决方案的规范。JMX为网管系统定义了一整套体系结构和设计模式用于实现各类管理操作,而JDMK是JMX的第一个商业化产品,它是JMX(Java Management extensions)的一个实现,它提供了通过Java应用程序来管理Java对象的一个框架。

JDMK为分布式管理系统提供了一个完整的解决方案,这种基于Java技术的解决方案可以将智能化管理嵌入到你的agent程序中,提供一个抽象的通信层,并可以动态的升级扩展。

网络管理通常由大型、集中的管理应用来完成。这些管理应用通过紧密地控制它们的代理来监控和维护它们所管辖的网络。这些代理用来管理它们所属的网络资源、转发命令和收集网络的原始数据和状态信息,它们位于它们所控制的网元附近,这意味着这些代理基本上是有限的。它们通常几乎不具有智能,只能完成基本的网元管理操作。从更广阔的远景来看,现存的网络应用管理系统实现上融合了各种各样的协议和技术。为达到某一市场目标,开发者必须选择单一管理技术;在某些情况上,为了获取更广泛的潜在市场,开发者必须实现多种管理技术。由于这两种方式上的局限性,供应商有选择地实现一些管理技术。

一个Java动态管理代理按照标准的方式暴露它的资源,在资源水平级上直接提供管理服务。这些服务具有智能,它允许代理应用能够自治地完成管理任务。这使得管理应用从日常任务如轮流检测中摆脱出来,因此也减轻了网络负载。资源接口是标注的,这意味着设备供应商和应用开发者能达成最终协议:他们能使用他们想要的技术!只要他们之间的通讯是通过Java动态管理代理来完成的,管理应用就能访问任何资源。

同样这样的灵活性可应用在配置在代理的管理服务上,因为它们能通过标准接口控制资源。为了提高精干的代理能力,可用的新服务可通过动态下载加入到代理中。最终,JDMK提供了一种与协议无关的模型:管理应用依赖着API,而与协议无关。

JDMK通过以下方面给管理领域带来了新的解决方案:

Ø 遵循JMX(Java Management extensions),该规范通过Java公共管理进程开发的Java应用来管理Java对象。

Ø 单一的套件组为系统、应用和网络管理提供了统一的表达,允许对资源统一的访问。

Ø 灵活的架构——它能分担网络负载和为服务驱动的网络管理实时地增加功能。

服务驱动的网络管理是一种新的网络计算方式,网络计算浓缩在你想提供的服务上。此范围从管理网络服务间关系的低级服务到你提供给用户的增值服务,这些服务能够满足网络和管理的需要。此外,自治代理能功能性地使得管理更广泛的网络变得可能。

建立Java动态管理架构,服务与代理能够有机地结合在一起。代理能智能地独自完成管理任务,这使得管理逻辑广泛地分布在整个网络当中。使用动态地热拔机制新服务能通过正在运行的Web服务器上下载。服务不久能在服务内实现,而且能通过简单的Web页面与java的applets一样基于网络上下载。

这种动态、按需驱动的范例意味着在将来配置、管理和监控什么或事先的网络配置服务(其被创建、增强和必要的配置)不再是必须的。由于JDMK将当前的和将来的标准结合在一起,这种独特的结合特色使应用领域更为广泛。

2 JDMK工作机制 JDMK工作机制如下图所示:

在图中左虚框为agent端,它主要由MBean server 和MBean两类成员组成。在agent端,所有的资源或服务都表现为MBean,并向MBean Server注册,用于与管理程序通信的connector server也作为一个MBean注册在MBean Server上。在上图中有两个资源MBean注册到MBean Server上,agent service如监视服务注册为另一个MBean。Agent(左虚框)包含一个connector server,支持RMI,HTTP,HTTPS协议,Agent还包含一个protocol adaptor,支持SNMP和HTML。

远程管理程序是一个运行在远程主机上的Java应用程序,它包含connector client和proxy MBean。当connector client与connector server建立起连接时,其他应用程序组件可以向agent发管理请求。如可通过proxy对象在资源1上调用一个操作或配置monitor service监视资源2。

HTML Adaptor使我们可通过浏览器查看agent,每一个MBean被分别呈现为独立的HTML页,在该网页上用户可通过文本域来设置属性和通过点击按钮来调用操作。同时还有一个administration页用来从MBean Server上创建和删除MBean。

3 如何使用JDMK进行开发在JMX的instrumentation层具体描述如何将资源呈现为Java对象;在JMX agent层,描述资源如何与agent交互;JDMK则扩展了agent services并定义了远程访问agent的分布式管理特征。解决分布式管理则依赖于上述的三层。

1 将资源定义为MBean

一个资源可以是任何你想通过网络来控制的实体,物理的或虚拟的。物理资源可以是网络设备或打印机;虚拟资源如运行于主机上的程序等。资源通过管理接口被看到:这是一系列管理程序可以访问的属性、操作、和通知。

定义一个资源就是开发一个Java对象 ,将资源的管理接口呈现出来。JMX具体定义了如何根据一定的模式定义一个资源,这个模式类似于JavaBean组件的模式:属性包括get和set;操作被java method呈现出来;通过Java event模式发通知。

因此,一个MBean就是根据JMX设计模式定义的一个资源对象。如果资源自身是一个Java应用程序,那它就是一个MBean,否则,MBean就是将本地资源或设备包装成一个Java对象。只要能准确的呈现资源的属性和操作,该资源的MBean可以与被管理对象相隔很远,MBean开发者决定MBean的可用的属性和操作。

对于Agent内部的MBean,即可通过通用的方法直接互相访问,也可通过MbeanServer互相访问。而对于位于Manager侧管理应用而言,只能通过这些管理接口对具体MBean的访问。按照JMX规范,任何MBean必须实现一个接口,该接口规定可供外界访问的属性和方法,只有当MBean在MbeanServer注册后,MBean才对外暴露其接口规定的属性和方法。针对某个具体的属性,如果开放读权限,MBean提供get方法。如果开发写权限,MBean提供set方法。其它一些须对外提供的方法,也需要在接口中定义。

2 在smart agent中暴露你的Mbeans

Java Dynamic Management agent遵循客户/服务器模式:agent响应来自任何想访问资源的客户程序的管理请求,并集中所有的请求,将它们分别传递给目标MBean并返回响应信息。由Agent来处理通信细节包括接收和发送数据等,而Mbean不用去关心。

Agent的中心组件是MBean Server,在MBean Server上注册了MBean的实例,它暴露了一个通用的接口,客户可向这个接口发请求,如客户可能请求得到一个MBean 的描述来知道在这个MBean上有那些资源,管理者程序可利用这些信息向MBean Server表达自己的请求,如取得或设置属性、调用操作或注册通知等。

管理者程序只能通过请求MBeanServer来访问MBean,而不能直接引用MBean对象,而只能引用唯一标识MBean的一个对象名。

MBean Server同样提供了允许agent services与MBean交互的框架,这些服务自身也体现为MBean,通过与资源MBean的交互来完成各种任务。例如,管理者程序要监视一些MBean的属性:实例化一个监视服务的MBean,设置阈值并注册接收可能发生的报警。管理者程序不必再去轮询agent,当MBean属性超过阈值时管理者程序将自动得到通知。

3 远程访问你的agent

JDMK允许你从远程应用程序非常容易地访问agent和资源,在agent端MBean Server的API同样适用于远程管理者程序,这样就使通信层透明化。

管理程序简单地通过set/get属性或用对象名调用操作来实现请求,proxy对象通过远程MBean提供了更深层次的抽象来处理所有的通信,管理者程序可以被设计和开发就象所有的资源都在本地似的。

Java程序语言开发的管理程序用connector使通信变得透明,connector支持RMI,HTTP/TCP,HTTP/SSL协议。

Adaptor为agent提供了一个视图,所有connector 和adaptor自身也是MBean,管理程序根据网络条件或可用的协议可以动态创建,配置和删除通信资源。当然agent也有安全机制防止对通信MBean的非法操作。

Adaptor建立了一个基于JMX的agent与现存管理系统之间的桥梁,你也可以创建自己的connector和adaptor来适应需求。

4 JDMK的优势总的说来,使用JDMK下面几个优势:

l 简化agent和manager的设计和开发。

l 配置灵活。

l 可动态扩展和升级。

1简化设计和开发

JMX体系将管理系统成分标准化,三个层次(instrumentation、agent、manager)相互独立,通过相同的API进行交流,这样就可以进行模块化开发,每一层可被独立的设计和实现,也使得组件重用成为可能,因为在一个JMX agent上开发的服务可以在任何一个JMX agent上工作。

instrumentation层:

l Mbeans只需要定义它们的管理接口和将资源的变量和方法映射成接口的属性和操作。

l Mbeans可以在任何一个JMX agent中被例化。

l Mbeans不用知道外界的通信细节。

Agent层:

l Mbeans Server完成Mbeans的注册任务并将管理请求传送给指定的Mbeans。

l 任何一个JMX Mbean都可以被注册和暴露出来以被管理。

l 任何被提供的通信组件都可以响应远程请求,你也可以自己开发新的connector和adaptor来响应私有请求。

l agent服务库提供了智能化管理,如当网络故障时可自动进行处理。

Manager层:

l 管理程序可通过connector向MBean Server提管理请求。

l 通知机制(notification)。

l proxies提供了抽象的通信层并简化了管理程序的设计。

l 不必实现基本的管理任务,因为agent已经提供了这些服务。

2 协议独立

Mbeans、agent、managers的设计不依赖于任何通信协议,所有Mbeans之间的通信都由Mbeans Server控制,最终是通过JMX定义的API来实现的。

Connectors只依赖于该API,而隐藏了通信细节。这样应用程序就可以实时替换协议,如当manager必须访问防火墙后的agent时,它可能换成使用HTTP connector。

因为Mbeans和agents是协议独立的,它们可以同时通过多种协议被访问。Connector server 和protocol adaport可处理多个连接,但你的agent只需要一个能够响应的协议即可。在开发支持新协议的新connector时不需要重写现存的Mbeans和外部程序,所要求的只是新的connector client暴露它的远程API即可。

3 动态扩展和升级

所有用JDMK开发的agent和manager应用程序都可扩展和升级。Agent service库一直可用,manager可以在需要时例化一个新服务,或删除服务来减少内存的使用。以相同的方式,Mbeans可以在运行时向Mbeans server注册或注销Mbeans。

MBean还可以按照需要,从一个Web Server下载并“插入”到Agent中运行,这一特性称为动态类加载(Dynamic Class Loading), 因此可以通过在任意位置使新的类可用来扩展运行的agent的功能。这一特性意味着,在基于JDMK技术开发的应用中,新的服务和应用程序可以随时动态地加载到系统中而不需要停止系统运行。这一特性有着广泛的用途,例如,可以通过远端管理应用向Agent中增加新的被管对象,或通过网络向大量的终端用户分发软件。Agent无须关心新的MBean在何处存放,它们可以存放在网络的任何一个地方,无论是本地还是远端。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有