This application claims priority to Korean Patent Application No. 2014-0008787 filed on Jan. 24, 2014 in the Korean Intellectual Property Office (KIPO), the entire contents of which are hereby incorporated by reference.
1. Technical Field
Example embodiments of the present invention relate in general to technology of causing a cloud networking server to interoperate with network devices, and more particularly, to an apparatus and method of causing a server constituting a cloud network to simultaneously interoperate with a plurality of network devices including a virtual network device.
2. Related Art
In general, cloud computing is technology for using external physical equipment via a network, that is, technology for using and managing computing resources, such as central processing units (CPUs), memories, storages, and networks. External computing resources are used in the form of virtual machines which are virtual computing resources created with assigned physical hardware resources.
With the rapid growth of the mobile communications industry, in particular, smart phone and tablet personal computer (PC) markets, the amount of data accessible via an external network has been exponentially increased. In this environment, there are limitations to the processing of given information using only limited computing resources, and the application area of cloud computing is expanding so as to process huge data.
Using cloud computing, companies and individuals can reduce enormous cost including, for example, cost to maintain and manage computer systems, cost to purchase and install servers, update cost, and cost to purchase software, time, and human power, and also can reduce energy consumption.
Various forms of service provided by cloud computing (hereinafter referred to as “cloud services”) are generally classified into software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). SaaS is a service which makes it possible to use functions of applications via the Internet. PaaS is a service which makes it possible to use a platform hosting applications via the Internet, and cloud service providers support service configuration components, a compatibility provision service, and so on. IaaS is a service which makes it possible to use resources for hosting applications via the Internet, and lends hardware sources to a user.
An operating system (OS) for providing a cloud service is referred to as a cloud OS. Like a general OS, the cloud OS serves as an interface between a user and a computer for providing the user with as much convenience as possible by efficiently managing computing resources, and is particularly characterized by the use of virtual computing resources (or a virtual machine).
With the increase of cloud services, the network area has rapidly expanded, and network traffic has rapidly increased. To cope with such a change of a network environment, it is necessary to efficiently use a cloud network.
In a cloud network provided by an existing cloud OS, only a virtual switch is used for communication between virtual machines. However, in order to efficiently use the cloud network, it is necessary for the cloud OS to interoperate with physical hardware network devices, such as a layer-2/layer-3 (L2/L3) switch, a router, and an open flow controller, as well as the virtual switch. Since instructions defined by respective network devices are different, interoperation methods dependent on network devices are required. To implement such interoperation functions, the cloud OS includes interoperation functions for respective network devices as plug-ins therein and converts a networking application program interface (API) transferred from a cloud networking server into instructions for the network devices.
According to an interoperation method of a network device in an existing cloud environment in which plug-ins are used as described above, it is neither possible to identify a network device which will interoperate with a cloud OS nor to issue an instruction to the network device through a networking API. Therefore, a plurality of plug-ins cannot be used at the same time, and only one plug-in can be used at a time.
Accordingly, example embodiments of the present invention are proposed to substantially obviate one or more problems of the related art as described above, and provide a method of causing a cloud operation system (OS) to interoperate with a plurality of network devices at the same time.
Other purposes and advantages of the present invention can be understood through the following description, and will become more apparent by example embodiments of the present invention. Also, it is to be understood that purposes and advantages of the present invention can be easily achieved by means disclosed in claims and a combination of them.
Example embodiments of the present invention will become more apparent by describing in detail example embodiments of the present invention with reference to the accompanying drawings, in which:
DESCRIPTION OF EXAMPLE EMBODIMENTS OF THE PRESENT INVENTION
Example embodiments of the present invention are described below in sufficient detail to enable those of ordinary skill in the art to embody and practice the present invention. It is important to understand that the present invention may be embodied in many alternate forms and should not be construed as limited to the example embodiments set forth herein.
Accordingly, while the invention can be modified in various ways and take on various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. There is no intent to limit the invention to the particular forms disclosed. On the contrary, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the appended claims.
It will be understood that, although the terms “first,” “second,” “A,” “B,” etc. may be used herein in reference to elements of the invention, such elements should not be construed as limited by these terms. For example, a first element could be termed a second element, and a second element could be termed a first element, without departing from the scope of the present invention. Herein, the term “and/or” includes any and all combinations of one or more referents.
It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements. Other words used to describe relationships between elements should be interpreted in a like fashion (i.e., “between” versus “directly between,” “adjacent” versus “directly adjacent,” etc.). It will be understood that the term “connect” does not only denote a physical connection of an element stated herein but also denotes an electrical connection, a network connection, and so on.
The terminology used herein to describe embodiments of the invention is not intended to limit the scope of the invention. The articles “a,” “an,” and “the” are singular in that they have a single referent, however the use of the singular form in the present document should not preclude the presence of more than one referent. In other words, elements of the invention referred to in the singular may number one or more, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including,” when used herein, specify the presence of stated features, numbers, steps, operations, elements, parts and/or combinations thereof, but do not preclude the presence or addition of one or more other features, numbers, steps, operations, elements, parts, and/or combinations thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein are to be interpreted as is customary in the art to which this invention belongs. It will be further understood that terms in common usage should also be interpreted as is customary in the relevant art and not in an idealized or overly formal sense unless expressly so defined herein.
The term “device driver” refers to information on the corresponding hardware included in an operating, system (OS) to connect the hardware, such as a central processing unit (CPU), an input device, or an output device, and software, such as the OS or an application program, and the device driver consists of information, such as a driving method, characteristics, and functions of the hardware. According to manufacturers or detailed models, even pieces of hardware performing the same role have different driving methods and detailed functions, and information for controlling the pieces of hardware is varied. Therefore, the information is included in OSs rather than application programs to control the hardware.
Hereinafter, example embodiments of the present invention will be described in detail with reference to the accompanying drawings. To facilitate general understanding of the present invention, like numbers refer to like elements throughout the description of the drawings, and the description of the same component will not be reiterated.
Referring to
Originally, a plug-in refers to a method of causing a program which cannot be executed alone to operate by making the program subordinate to another program, but generally refers to the program itself as well as the method. From now on, a program which operate subordinate to the cloud OS 100 is referred to as a “plug-in.”
Referring to
As described with reference to
The cloud OS 100 operates in at least one cloud networking server 200. When the cloud OS 100 operates in a plurality of cloud networking servers 200, each of the cloud networking servers 200 may include a network adapter. The cloud networking servers 200 are connected to other network devices through their network adapters, thereby constituting a network therebetween. Therefore, a plurality of network devices may operate as one system. Here, the cloud OS 100 may not only include the network adapters and the physical network devices but also include a virtual network, adapter and a virtual network device. Therefore, it is possible to expand the network regardless of physical limitations of the cloud networking server 200.
The cloud OS 100 can control the network devices through an application program interface (API) consisting of a set of subroutines or functions. Since an API is a set of instructions for general-use functions for operation of an OS, the OS needs to convert the API into instructions which can be understood by network devices so as to control the network devices. The cloud OS 100 can combine or convert instructions (or functions) defined in the API according to the network devices 210 through the plug-ins 205.
Here, when the respective network devices 210 interoperate with the cloud OS 100 through the plug-ins 205, the cloud OS 100 may provide instructions to the plug-ins 205 to control the interoperating network devices 210. Here, since the instructions are for general use, each plug-in may receive the same instruction from the cloud OS 100 and transfer the received instruction to a network device specified therefor. Therefore, the same operation may be performed by all the network devices 210. In order to prevent such duplication of operation, only one plug-in needs to operate at a time.
Referring to
The agent 330 may process instructions transferred through the plug-in 300.
A cloud OS 100 may manage and monitor the network device 320 through the agent 330. For example, when the cloud OS 100 manages and monitors the network device 320 using a simple network management protocol (SNMP), the network device 320 may include an SNMP agent, and the SNMP agent may provide information on the network device 320 to the cloud OS 100.
Referring to
The cloud OS 100 may interoperate with a virtual network device 211 though the plug-in 400, and may interoperate with physical network devices 212, 213, and 214 through the plug-in 400 and the device drivers 410. Here, each network device may understand an instruction provided from the interoperating cloud OS 100 through an agent.
As shown in
The representative plug-in 400 converts an instruction provided from the cloud OS 100 into an instruction which is supported (or can be understood) by network devices 210, and provides the converted instruction to the network devices 210.
While an existing plug-in supports a specific network device, the representative plug-in 400 can support various unspecific network devices.
Here, instructions that can be understood by the respective network devices 210 may be different according to hardware or software characteristics of the network devices 210. Therefore, the representative plug-in 400 needs information for controlling a specific network device (hereinafter referred to as “control information”). The control information may include information on instructions that can be understood by the specific network device.
The representative plug-in 400 supports various network devices and thus needs control information of all network devices connected to the cloud OS 100. However, due to several practical limitations, the representative plug-in 400 can neither include control information of all network devices present when the representative plug-in 400 is created nor predict a network device which will be connected in the future. Therefore, the representative plug-in 400 may be provided with control information of a connected network device by a network device provider, an administrator of the cloud OS 100, etc., and may cause the cloud OS 100 to interoperate with the network device. The control information may be included in a device driver.
Since the representative plug-in 400 transfers an instruction according to characteristics of connected network devices 210, the duplication of the instruction caused in the interoperation structure shown in
The physical network devices 212, 213, and 214 are connected to the representative plug-in 400 through device drivers 411, 412, and 413 respectively to interoperate with the cloud OS 100, and thus cannot implement a function that is not supported by the representative plug-in 400. For example, when the representative plug-in 400 supports only a switch function, a router connected to the representative plug-in 400 only supports communication between terminals belonging to the same network (or networks having the same subnet mask), but cannot support communication between terminals belonging to different networks. In another example, when the representative plug-in 400 does not support a controller function of a network device, an open flow controller connected to the representative plug-in 400 may not perform the function. Therefore, the cloud OS 100 needs a new plug-in to control a network device which supports a new function. An interoperation method using a plurality of plug-ins will be described later with reference to
Here, the cloud OS 100 may transfer an instruction to the network devices 210 through a previously given protocol.
The network devices 210 can process the instruction transferred through the protocol using agents 420. At this time, the physical network devices 212, 213, and 214 use an existing protocol as it is, and thus it is possible to use existing agents 421, 422, and 423 as they are. For example, assuming that the cloud OS 100 interoperates with an L2/L3 switch through the representative plug-in 400 and the device drivers 410 and a protocol for the interoperation is the SNMP, the L2/L3 switch can use an existing SNMP agent as it is without modification for the interoperation with the cloud OS 100.
Referring to
As described with reference to
Since the extended APIs 500 merely enable the cloud OS 100 to directly provide functions of plug-ins, an interoperation method using the extended APIs 500 can use an existing protocol and the agents 420 as they are, like an interoperation method using plug-ins.
The extended APIs 500 are included in the cloud OS 100 and thus can be defined in consideration of virtual and physical network devices present when the cloud OS 100 is created. Also, by modifying functions of the cloud OS 100, extended APIs 500 may be added for network devices which are not taken into consideration when the cloud OS 100 is created. For example, the cloud OS 100 can generate extended APIs 500 by itself using control information of network devices included in installed plug-ins or device drivers. Also, it is possible to add an extended API in various ways, such as a version upgrade, an extension pack, or a service pack of the cloud OS 100. Further, by standardizing a variety of predetermined extended APIs 500, it is possible to manufacture network devices capable of using the extended APIs 500 instead of adding extended APIs 500 according to the network devices.
Unlike existing APIs, the extended APIs 500 enable identification of network devices. Therefore, even when the cloud OS 100 interoperates with network devices through plug-ins using the extended APIs 500, a plurality of network devices neither receive the same instruction nor perform the same operation.
Referring to
In the interoperation structure shown in
It is assumed that a cloud OS operates in a computing device, and a plug-in is installed in the OS and controls at least one network device.
Referring to
At this time, the plug-in may store the acquired control information and installation information of the network device in a database. Therefore, once information is acquired from a network device, even if the network device is removed from and reinstalled in a cloud OS, the plug-in needs not acquire control information.
Next, the plug-in may receive an instruction from the cloud OS (S710).
Next, the plug-in may convert the received instruction into an instruction for the network device based on the control information (5720).
Next, the plug-in may provide the converted instruction to the network device (S730).
Here, the converted instruction is for the specific network device, and thus the plug-in can identify the network device to provide the instruction.
Referring to
At this time, the cloud OS may acquire the control information through a device driver.
Also, the cloud OS may store the acquired control information and installation information of the network device in a database. Therefore, once information is acquired from a network device, even if the network device is removed from and reinstalled in a cloud OS, a plug-in needs not acquire control information.
Next, the cloud OS may generate an extended instruction for the specific network device based on the acquired control information (S810). Instructions that can be provided by the cloud OS are included in an API defined in advance when the cloud OS is created, and thus the cloud OS can generate an extended API including extended instructions.
Next, the cloud OS may provide the generated extended instruction to the network device (S820).
Here, the generated extended instruction is specialized for the one network device, and thus the cloud OS does not provide the same instruction to all network devices connected thereto and can provide the instruction to only the specific network device.
Referring to
Interoperation methods described with reference to
Next, the cloud OS may generate an extended instruction specialized for the plug-in (S910). Also, as described with reference to
Next, the cloud OS may provide the generated extended instruction to the network device to control the network device (S920).
According to the above-described interoperation apparatus and method of a network device in a cloud environment, a plug-in is used for one network device, and device drivers are used for other network devices. Therefore, a cloud OS can cause a cloud networking server to interoperate with a plurality of virtual and physical network devices at the same time.
In particular, the cloud OS uses the device drivers for interoperation of the other network devices, and thus it is possible not to modify the existing network device.
Also, the cloud OS can expand the use range of a network interoperation structure by interoperating with network devices through extended APIs.
While the example embodiments of the present invention and their advantages have been described in detail, it should be understood that various changes, substitutions and alterations may be made herein without departing from the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
10-2014-0008787 | Jan 2014 | KR | national |