弹性计算云Eucalyptus代码(start with A)

来源:互联网 发布:java获取泛型的类型 编辑:程序博客网 时间:2024/05/22 16:58

A Eucalyptus cloud setup consists of three types of components -- the cloud controller,the cluster controller(s), and the node controller(s). The cloud controller is a Java programthat, in addition to high-level resource scheduling and system accounting, offers aWeb services interface and a Web interface to the outside world. Cluster controller andnode controller are written in C and deployed as Web services inside Apache.

 

Eucalyptus使用了Axis2,啥是Axis2或者说Axis2有啥用。Axis就是快速发布web service的工具,提供了SOAP协议的封装,方便于client端于webservice通信。

log机制使用了log4j。

使用X509认证。

 

class AbstractIsomorph,注释为MappedSuperclass,个人认为是一个保存用户信息和状态的抽象类。

class AbstractKeyStore,这个抽象类很有意思,其静态方法调用了子类的构造函数。并且子类GenericKeyStore是其内部类。感觉设计得不好。其意图是让这个类含有几个抽象的方法,但是这几个抽象方法有一个默认的实现。AbstractKeyStore主要是为了添加证书查找证书,并查找用户名对应的password来认证。并且将alias,cert添加到某一文件中。并将此alias对应的password放入到keystore中。

class AbstractNamedRegistry,这个抽象类将存放、更新某种继承自HasName接口的对象的两种状态。一种是active,一种是disable,这两种状态放在ConcurrentNavigableMap中,并且以对象的名作为key,value就是对象自身。

class AbstractOperation,这个抽象类是操作的抽象,并认为凡是操作就应该有request和reply,并且request和reply继承自EucalyptusMessage

class AccessDeniedException,就是一个禁止访问的异常,继承自EucalyptusCloudException。

class Address,这是一个address类(废话),存放地址id,地址名(?? 个人认为可能是真实地址),cluster的地址,使用者的用户名,实例地址等(其实就是一个描述实例所需要的属性。)并使用高性能锁ReentrantReadWriteLock加以控制。加锁是为了将实例assign出去,或者收回。不过我个人觉得ReentrantReadWriteLock可能使用的有问题。以为我看到函数release()中有this.canHas.writeLock().lock();,并在之后调用了unassign()方法,而unassign()方法中也有this.canHas.writeLock().lock();...难道可以对同一写锁加两次lock?不过我没有研究过ReentrantReadWriteLock。

class Addresses,这个类继承了AbstractNamedRegistry,并且可以填入Address.这就是说,这个类是用来active,disable一个address的。另外它是用来单实例模式,也就是整个cloud中只有这一份实例。(这里会不会崩溃后无法恢复的问题?)

class AddressManager,继承了org.mule.api.lifecycle.Startable类,Startable可能是处理生命周期吧..不过这个类是和地址相关的,是用来分配,释放,将address和vm关联起来的类。

class AddressUpdateCallback继承了QueuedEventCallback并且实现了Runnable,也就是说它可以作为一个线程类。另外它sleep的时间好像有点过长了5*1000.这个类的作用好像是将用户名封装到msg中,然后发送给cluster队列来处理。之后睡一个5*1000秒,然后再醒来看看是否有cluster的回复,然后根据回复设置实例的地址。这里采用线程,是因为需要一直监督address的更新。可以看成是守护线程。

 

 

add_key.pl,这个是perl文件,看不太明白,应该是加入了ssh的public key.不过中间为啥使用loop device,并且将图片加载到loop device上就不得而知了。后来发现,这里image的含义不是图片的意思,而是镜像,也就是将镜像加载到loop device上。

add_key~add_wsdllocation.pl都是perl写成的。

 

class Admin 是用来创建EucalyptusMessage的类。

admin.xml用来配置www的conf的。
interface Allocator,这接口用来分配的,根据String requestId, String userName, String vmtype, int min, int max, SortedSet<ClusterNodeState> clusters 来分配资源,会抛出NotEnoughResourcesAvailable异常

class AlreadyExistsException继承了RuntimeException

class AOEManager 继承了StorageExportManager,是用来导出存储容量的?

interface AppMessages继承了Messages,从其函数中看,是一个与页面控件事件相关的类。

class AssignAddressCallback,分配地址的cluster,发送回消息后就会将network configure更新。

class AttachedVolumeInfo这是一个将附加逻辑磁盘id,逻辑磁盘名,实例id,设备名,状态和添加时间合成的类。如果其为一行,那么一张表就是AttachedVolumes

interface Authenticator是将X509证书和EucalyptusMessage中信息来生成是否授权的Msg的接口。

aws-base.xml~aws-zones.xml是将java类映射为XML,是否为Hibernate就不得而知了。

Axis2.xml~class AxisHttpResponseImpl 可以认为是和Axis2打交道的东西。可以以后再研究下。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 7个月的孩子便秘怎么办 四个月宝宝喜欢吃手怎么办 博瑞智教育是上当了怎么办 我43岁记忆力差怎么办 艾灸灸出的湿疹怎么办 饭店合同到期房东不租怎么办 极端暴力控制不住自己怎么办 苹果已停止访问该网页怎么办 qq登陆后隐藏了怎么办 易班密码忘记了怎么办 老师上课讲错了怎么办 专升本差了一分怎么办 登录不上学信网怎么办 steam被好友删了怎么办 护士继续教育学分证丢了怎么办 护士证到期未延续注册怎么办 学籍和户口不在一起小升初怎么办 定了酒店不能退怎么办 去哪儿网酒店不允许取消怎么办 快递寄送身份证扣海关怎么办 7岁龋齿烂到牙根怎么办 法院判完对方说没钱怎么办 初中填完志愿后怎么办 上海小学借读一年级没有学籍怎么办 学历不高的我该怎么办 没学历的我该怎么办 物业达不到服务标准该怎么办 没有能力的人该怎么办 工作累了腰疼怎么办 机场来早了6小时怎么办 苏宁金融综合评分不足怎么办 苏宁金融秒拒怎么办 微盘账号忘记了怎么办 天府e税忘记密码怎么办 未成年在外面没地方住怎么办? 半框眼镜片掉了怎么办 选修差0.5个学分怎么办 脱产考博社保卡怎么办 幼儿上课不认真听讲怎么办 手机恢复的音频文件打不开怎么办 高考志愿填报不记得密码怎么办