ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
目前,OVX的版本是由Java开发的,组件被定义在包[net.onrc.openvirtex.elements.*]内的类中,并且每个组件定义为一个基类,所有基类如下表所示 <center>表2-1 组件基类</center> |Base Class| Representation| Definition| |:-----------------|:---------------------|:-----------------------------| |Network| The full network topology| public abstract class `Network<T1 extends Switch, T2 extends Port, T3 extends Link>`| |Switch |A switch| public abstract class `Switch<T extends Port>`| |Port |A port on a switch |public class `Port<T1 extends Switch, T2 extends Link>`| |Link |A connection between two ports |`public abstract class Link<T1 extends Port, T2 extends Switch>`| |Host |A network host |`public class Host`| |IPAddress |An IP Address |`public abstract class IPAddress`| 这些类均继承自每个组件的物理或虚拟版本。当前的组件类以及其父类展示如下。 <center>表2-2 虚拟组件</center> |Base Class| Physical Component Class| Virtual Component Class(es)| |:-------------------|:-----------------|:---------------------------| |Network |PhysicalNetwork |OVXNetwork| |Switch| PhysicalSwitch| OVXSwitch (child classes OVXSingleSwitch, OVXBigSwitch)| |Port |PhysicalPort |OVXPort| |Link |PhysicalLink |OVXLink, SwitchRoute| |Host |– |Host| |IPAddress |PhysicalIPAddress| OVXIPAddress| 例如,`PhysicalPort`表示在物理网中的一个交换机的物理端口,`OVXSwitch`表示由OVX为租户分配的一个虚拟交换机。因此,我们亦可以通过如下约定理解上述组件:大部分表示物理网络的组件的名字都以“Physical”开头;而所有租户网络,也就是虚拟网络,则以“OVX”开头。注意:主机(Host)只有虚拟表示方式。 OVX通过组装一个PhysicalNetwork实例建立起了物理网络的相关内容。PhysicalNetwork实例由物理网络中的switch、link、port对象的实例组装而成。它们由各种网络发现技术或者方法被探测或发现。虚拟网络表达,或者OVXNetwork 实例,由运营商通过API调用创建。这些API负责创建网络对象,并将它们映射到OVX提供的PhysicalNetwork组件中。 关于网络发现(Network discovery)和JSONRPC API,我们会在下一篇讨论。