KR100716171B1 - Apparatus and method for pooling the object of distributed system - Google Patents

Apparatus and method for pooling the object of distributed system Download PDF

Info

Publication number
KR100716171B1
KR100716171B1 KR1020050040350A KR20050040350A KR100716171B1 KR 100716171 B1 KR100716171 B1 KR 100716171B1 KR 1020050040350 A KR1020050040350 A KR 1020050040350A KR 20050040350 A KR20050040350 A KR 20050040350A KR 100716171 B1 KR100716171 B1 KR 100716171B1
Authority
KR
South Korea
Prior art keywords
internal
remote
object storage
storage unit
distributed environment
Prior art date
Application number
KR1020050040350A
Other languages
Korean (ko)
Other versions
KR20060117803A (en
Inventor
조상길
양원종
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020050040350A priority Critical patent/KR100716171B1/en
Publication of KR20060117803A publication Critical patent/KR20060117803A/en
Application granted granted Critical
Publication of KR100716171B1 publication Critical patent/KR100716171B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0233Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/042Network management architectures or arrangements comprising distributed management centres cooperatively managing the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 분산 환경 시스템에서의 객체 관리 장치 및 방법에 관한 것으로, 객체의 호출을 우해 사용되는 정보를 내부 저장부와 원격 객체 저장부에 모두 저장하고, 호출할 객체가 내부 객체인 경우 상기 내부 저장부로부터 획득한 정보를 사용하여 해당 객체를 내부 호출할 수 있게 하고, 호출할 객체가 원격 객체인 경우 상기 원격 객체 저장부로부터 획득한 정보를 사용하여 해당 객체를 소켓 통신을 통해 호출하도록 함으로써 객체 호출을 효율적으로 관리할 수 있도록 한다.The present invention relates to an apparatus and a method for managing an object in a distributed environment system. The present invention relates to storing information used for an object call in both an internal storage unit and a remote object storage unit. Invoke the object by using the information obtained from the external part, and call the object by using the information obtained from the remote object storage to call the object through socket communication when the object to be called is a remote object. To manage them efficiently.

분산 환경, 객체 관리, RMI(Remote Method Invocation), rmipool, rmiregistry Distributed Environment, Object Management, Remote Method Invocation (RMI), rmipool, rmiregistry

Description

분산 환경 시스템에서의 객체 관리 장치 및 방법{APPARATUS AND METHOD FOR POOLING THE OBJECT OF DISTRIBUTED SYSTEM}Apparatus and method for managing objects in distributed environment system {APPARATUS AND METHOD FOR POOLING THE OBJECT OF DISTRIBUTED SYSTEM}

도 1은 종래기술에 따른 객체 관리 장치의 구성 요소들간의 데이터 흐름도.1 is a data flow diagram between components of an object management apparatus according to the prior art.

도 2는 본 발명에 따른 객체 관리 장치의 구성 요소들간의 데이터 흐름도.2 is a data flow diagram between components of an object management apparatus according to the present invention;

도 3은 본 발명에 따른 객체 관리의 순서흐름도.3 is a flow chart of object management in accordance with the present invention.

본 발명은 분산 환경에서의 객체 관리 장치 및 방법에 관한 것으로, 특히 원격 객체(remote object)의 호출을 효율적으로 관리할 수 있는 분산 환경에서의 객체 관리 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for managing objects in a distributed environment, and more particularly, to an apparatus and method for managing objects in a distributed environment that can efficiently manage a call of a remote object.

대부분의 시스템들은 점점 복잡해지고 있다. 이와 같이 복잡해지는 시스템의 효율적인 관리를 위해 분산 환경 시스템이 도입되고 있다. 분산 환경 시스템에서 가장 중요하게 고려되어야 할 문제 중 하나가 객체 호출이다. 분산 환경 시스템은 복수의 작은 시스템들, 복수의 프로세스들 등의 조합으로 구성될 수 있는데, 이들 작은 시스템들 또는 프로세스들은 원격 객체들을 호출하여 동작하기도 한다.Most systems are becoming more complex. Distributed environment systems have been introduced for efficient management of such complex systems. One of the most important issues in distributed environment systems is object invocation. A distributed environment system may consist of a combination of a plurality of small systems, a plurality of processes, and the like, which may also operate by calling remote objects.

종래기술에서 원격 객체의 호출을 위해 사용하는 방법을 설명하면 다음과 같다. 하기의 설명은, 자바(JAVA) 환경에서 사용되는 RMI(Remote Method Invocation) 기술을 기반으로 하여 이루어질 것이다. RMI 기술은 분산 환경에서의 프로세스간의 통신을 위해 사용되는 기술이다.Referring to the method used in the prior art to call a remote object is as follows. The following description will be based on the Remote Method Invocation (RMI) technology used in the Java (JAVA) environment. RMI technology is a technology used for communication between processes in a distributed environment.

분산 환경 시스템에서의 원격 객체 호출에 있어서, 원격 객체는 RMI 기술을 통해 내부 객체(local object) 동일한 방식으로 사용될 수 있다. 이와 같이 원격 객체가 로컬 객체와 동일한 방식으로 사용될 수 있게 하는 객체 호출의 특성을 위치 투명성(location transparency)이라고 한다.In remote object invocation in a distributed environment system, the remote object can be used in the same way as a local object via RMI technology. The nature of object calls that allow remote objects to be used in the same way as local objects is called location transparency.

RMI 통신을 할 때에 호출되는 쪽에서는 원격 객체를 rmiregistry에 rebind하고, 호출하는 쪽에서는 해당 객체를 rmiregistry로부터 원격 객체를 룩업해서 호출한다. 일반적으로, 한번 룩업된 객체는 풀(rmipool)에 저장되어 다음 호출 시에 룩업하지 않고 재사용된다.When doing RMI communication, the called party rebinds the remote object into rmiregistry, and the calling party looks up the remote object from rmiregistry and calls it. In general, once looked up objects are stored in the rmipool and reused without looking up on the next invocation.

첨부한 도 1을 참조하여 종래기술에 따른 원격 객체 호출 과정을 상세히 설명하도록 한다.With reference to the accompanying Figure 1 will be described in detail the remote object call process according to the prior art.

도 1은 종래기술에 따른 객체 관리 장치의 구성 요소들간의 데이터 흐름도이다.1 is a data flow diagram between components of an object management apparatus according to the prior art.

도 1에서 피호출자(100)는 호출될 원격 객체를 가지는 프로세스이고, 호출자(110)는 객체를 호출할 프로세스이다. 이들간의 객체 호출은 자바의 RMI에 의해 이루어진다고 가정한다. 도 1의 내부 객체 저장부(120)는 자바의 RmiPool, 원격 객체 저장부(130)는 자바의 rmiregistry인 것으로 가정한다.In FIG. 1, callee 100 is a process having a remote object to be called, and caller 110 is a process to call an object. It is assumed that object calls between them are made by Java's RMI. It is assumed that the internal object storage unit 120 of FIG. 1 is RmiPool of Java and the remote object storage unit 130 is rmiregistry of Java.

도 1에 도시된 바와 같이, 피호출자(100)는 호출자(110)에 의해 사용될, 객체를 호출하기 위한 정보를 원격 객체 저장부(130)에 저장(rebind)한다(101). 원격 객체 저장부(130)에 저장된 상기 정보는 이후 호출자(110)에 의해 사용될 수 있다.As shown in FIG. 1, the callee 100 rebinds 101 information to the remote object storage 130 to call an object, which will be used by the caller 110. The information stored in the remote object store 130 may then be used by the caller 110.

호출자(110)는, 객체 호출이 요구되는 경우 먼저 내부 객체 저장부(120)에 상기 객체를 호출하기 위한 정보가 저장되어 있는지를 검색한다(103 및 105). 상기 정보는 원격 객체 저장부(130)에 저장되어 있으므로, 호출자(110)는 내부 객체 저장부(120)에서 상기 정보를 찾을 수 없을 것이다.If an object call is required, the caller 110 first searches whether the information for calling the object is stored in the internal object storage 120 (103 and 105). Since the information is stored in the remote object storage 130, the caller 110 may not find the information in the internal object storage 120.

내부 객체 저장부(120)로부터 해당 객체를 호출하기 위한 정보 찾지 못한 호출자(110)는, 원격 객체 저장부(130)에서 상기 정보를 검색한다(107 및 109). 원격 객체 저장부(130)로부터 검색을 통해 획득된 정보는 내부 객체 저장부(120)에 저장되고(111), 호출자(110)에 전달된다(113).The caller 110 who does not find information for calling the object from the internal object storage 120 retrieves the information from the remote object storage 130 (107 and 109). The information obtained through the search from the remote object storage 130 is stored in the internal object storage 120 (111) and transmitted to the caller 110 (113).

호출자(110)는 상기 획득한 정보를 사용하여 피호출자(100)와의 소켓 통신을 수행하고, 이를 통해 상기 객체를 호출할 수 있게 된다.The caller 110 performs socket communication with the called party 100 by using the obtained information, and thus can call the object.

한편, 분산 환경 시스템에서 객체는 일반적으로 다른 프로세스에 존재하지만 같은 프로세스에 존재할 수도 있다. 예를 들면, 원격객체는 대용량 시스템에서는 여러 대의 서버에 각각 다른 프로세스들로 분산되어 존재할 수도 있고, 소용량 시스템에서는 동일한 프로세스에 존재할 수도 있다.On the other hand, in a distributed environment system, an object generally exists in another process but may exist in the same process. For example, a remote object may exist distributed among several processes in multiple servers in a large system, or may exist in the same process in a small system.

그런데, 종래기술에서는 무조건 rmiregistry로부터 룩업된 원격 객체로 함수 를 호출함에 따라 원격 객체가 같은 프로세스 내에 존재하는 경우 내부 호출을 통한 직접 호출이 가능함에도 불구하고 불필요한 소켓 통신을 하게 되어 성능 상의 저하가 발생된다.However, in the related art, when a function is called with a remote object looked up from rmiregistry, if the remote object exists in the same process, although the direct call through the internal call is possible, unnecessary socket communication is performed, resulting in performance degradation. .

따라서, 본 발명의 목적은 원격 객체의 호출을 효율적으로 관리할 수 있는 분산 환경 시스템에서의 객체 관리 장치 및 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide an apparatus and method for managing objects in a distributed environment system that can efficiently manage a call of a remote object.

이와 같은 목적을 달성하기 위해 본 발명은; 내부 객체를 저장하는 내부 객체 저장부와, 원격 객체를 저장하는 원격 객체 저장부와, 호출될 객체를 상기 내부 객체 저장부(rmipool)에 저장하고, 상기 내부 객체 저장부에 저장된 객체 정보를 상기 원격 객체 저장부에 저장하는 피호출자와, 임의의 객체에 대한 호출이 요구되는 경우, 내부 객체 저장부에서 해당 객체를 검색하여, 상기 내부 객체 저장부에 해당 객체가 존재하면 상기 객체를 내부호출하고, 상기 내부 객체 저장부에 해당 객체가 존재하지 않으면 상기 원격 객체 저장부를 검색하여, 상기 원격 객체 저장부로부터 소켓 통신을 통해 상기 해당 객체를 호출하는 호출자를 포함함을 특징으로 하는 분산 환경에서의 객체 관리 장치를 제안한다.The present invention to achieve this object; An internal object storage for storing an internal object, a remote object storage for storing a remote object, and an object to be called in the internal object storage (rmipool), and storing the object information stored in the internal object storage in the remote A caller stored in an object storage unit and, when a call to an arbitrary object is requested, the object is searched in an internal object storage unit, and if the object exists in the internal object storage unit, the object is called internally; If the object does not exist in the internal object storage unit, search for the remote object storage unit, the object management in a distributed environment comprising a caller to call the object through the socket communication from the remote object storage unit Suggest a device.

또한 본 발명은; 분산 환경 시스템에서의 객체 관리 방법에 있어서, 호출될 객체를 내부 객체 저장부에 저장하는 제 1 과정과, 상기 내부 객체 저장부에 저장된 객체 정보를 원격 객체 저장부에 저장하는 제 2 과정과, 객체 호출이 요구되는 경우, 내부 객체 저장부에서 해당 객체를 검색하여, 해당 객체 정보가 상기 내부 객체 저장부에 존재하면 상기 객체를 내부호출하고, 상기 해당 객체가 상기 내부 객체 저장부에 존재하지 않으면 상기 원격 객체 저장부를 검색하여, 상기 원격 객체 저장부로부터 소켓통신을 통해 상기 해당 객체를 호출하는 제 3 과정을 포함함을 특징으로 하는 분산 환경 시스템에서의 객체 호출 방법을 제안한다.In addition, the present invention; An object management method in a distributed environment system, comprising: a first process of storing an object to be called in an internal object storage; a second process of storing object information stored in the internal object storage in a remote object storage; If a call is required, the internal object storage unit searches for the object, and if the object information exists in the internal object storage unit, internally calls the object, and if the object does not exist in the internal object storage unit, And a third step of searching for the remote object storage unit and calling the corresponding object from the remote object storage unit through socket communication.

이하 본 발명의 바람직한 실시예들을 첨부된 도면의 참조와 함께 상세히 설명한다. 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, if it is determined that the detailed description of the related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

본 발명은 분산 환경 시스템에서 객체 호출의 위치 투명성(location transparency)을 지원하면서 분산 환경에서 원격 객체가 같은 프로세스 내에 존재하는 경우 소켓통신을 하지 않고 직접 호출을 하도록 하여 성능을 향상시킬 수 있도록 한다.The present invention supports location transparency of an object call in a distributed environment system, and improves performance by allowing a direct call without socket communication when a remote object exists in the same process in a distributed environment.

하기에서 기술될 본 발명은 객체를 호출하기 위한 정보를 내부 객체 저장부 및 원격 객체 저장부에 모두 저장함을 특징으로 한다. 이를 통해 내부 객체의 정보는 내부 객체 저장부에서 검색 가능하게 되고, 원격 객체의 정보는 원격 객체 저장부에서 검색 가능하게 된다.The present invention to be described below is characterized in that the information for calling the object is stored in both the internal object storage and the remote object storage. Through this, the information of the internal object can be retrieved from the internal object storage, and the information of the remote object can be retrieved from the remote object storage.

이하 첨부한 도면을 참조하여 본 발명에 따른 분산 환경 시스템에서의 객체 관리 장치 및 방법을 상세히 설명하도록 한다. 이하 본 발명을 설명함에 있어서 사용되는 용어들 중 "피호출자"는 호출될 객체를 가지는 프로세스이고, "호출자"는 상기 객체를 호출할 프로세스이다. 한편, 하기에서 본 발명은 자바를 기반으로 하여 설명될 것이다. 그러나 본 발명은 이로 인해 한정되지 않으며, 자바 외의 다른 수단을 통해 구현될 수도 있을 것이다.Hereinafter, an object management apparatus and method in a distributed environment system according to the present invention will be described in detail with reference to the accompanying drawings. Among the terms used in describing the present invention, "callee" is a process having an object to be called, and "caller" is a process to call the object. On the other hand, the present invention will be described below based on Java. However, the present invention is not limited thereto, and may be implemented through other means than Java.

도 2는 본 발명에 따른 객체 관리 장치의 구성 요소들간의 데이터 흐름도이다.2 is a data flow diagram between components of an object management apparatus according to the present invention.

도 2의 내부 객체 저장부(120)는 자바의 RmiPool, 원격 객체 저장부(130)는 자바의 rmiregistry인 것으로 가정한다.It is assumed that the internal object storage unit 120 of FIG. 2 is RmiPool of Java and the remote object storage unit 130 is rmiregistry of Java.

도 2에 도시된 바와 같이, 피호출자(100)는 호출자(110)에 의해 사용될, 객체를 호출하기 위한 정보를 내부 객체 저장부(120)에 저장한다(201 및 203). 상기 객체를 호출하기 위한 정보는 원격 객체 저장부(130)에도 저장(rebind)된다(205).As shown in FIG. 2, the callee 100 stores the information for calling the object in the internal object storage 120 (201 and 203) to be used by the caller 110. Information for calling the object is also stored in the remote object storage 130 (205).

상기 객체를 호출하고자 하는 호출자(110)는 먼저 내부 객체 저장부(120)에 상기 객체를 호출하기 위한 정보가 저장되어 있는지를 검색한다(207 및 209). 상기 호출자(110)와 피호출자(100)가 동일한 프로세스인 경우, 상기 호출될 객체는 호출자(110)에 대해서도 내부 객체가 된다. 이 경우, 상기 객체의 정보는 호출자가 검색한 내부 객체 저장부(120)에 저장되어 있을 것이다. 따라서, 이러한 경우, 호출자(110)는 내부 객체 저장부(120)로부터 상기 객체의 정보를 획득할 수 있게 된다.The caller 110 who wants to call the object first searches whether internal object storage 120 stores information for calling the object (207 and 209). If the caller 110 and the callee 100 are the same process, the object to be called becomes an internal object for the caller 110 as well. In this case, the information of the object will be stored in the internal object storage unit 120 retrieved by the caller. Therefore, in this case, the caller 110 can obtain the information of the object from the internal object storage 120.

한편, 호출자(110)와 피호출자(100)가 동일한 프로세스가 아닌 경우, 상기 객체의 정보는 호출자(110)가 검색한 내부 객체 저장부(120)에 존재하지 않는다.On the other hand, when the caller 110 and the callee 100 are not the same process, the information of the object does not exist in the internal object storage 120 retrieved by the caller 110.

호출자(110)는, 내부 객체 저장부(120)에 상기 객체의 정보가 존재하지 않으면, 원격 객체 저장부(130)에서 상기 객체의 정보를 검색하고(211), 해당 정보를 획득한다(213). 원격 객체 저장부(130)로부터 검색을 통해 획득된 정보는 내부 객체 저장부(120)에 저장되고(215), 호출자(110)에 전달된다(217). 상기 원격 객체 저장부(130)로부터 획득된 객체의 정보가 내부 객체 저장부(120)에 저장되는 것은, 이후에 상기 객체가 다시 호출될 경우를 위해서이다.If the information of the object does not exist in the internal object storage 120, the caller 110 retrieves the information of the object from the remote object storage 130 (211) and obtains the information (213). . The information obtained through the search from the remote object storage 130 is stored in the internal object storage 120 (215) and forwarded to the caller 110 (217). The information of the object obtained from the remote object storage unit 130 is stored in the internal object storage unit 120 for the case where the object is later called again.

호출자(110)는 전술한 과정들을 통해 획득한 객체의 정보를 사용하여 해당 객체를 호출하게 된다(219). 이때, 호출자(110)는 해당 객체가 내부 객체인 경우에는 내부 호출을 통해 해당 객체를 직접 호출하고, 해당 객체가 원격 객체인 경우에는 소켓 통신을 통해 해당 객체를 호출하게 된다.The caller 110 calls the object using the information of the object obtained through the above-described processes (S219). In this case, the caller 110 directly calls the object through an internal call when the object is an internal object, and calls the object through socket communication when the object is a remote object.

즉, 본 발명은 원격 객체에 대해서만 소켓 통신을 통한 객체 호출을 수행하고, 내부 객체에 대해서는 내부 호출을 수행할 수 있도록 함으로써 불필요한 소켓 통신을 감소시키고, 객체 관리를 효율적으로 수행하게 된다.That is, the present invention can perform the object call through the socket communication only to the remote object, the internal call to the internal object to reduce unnecessary socket communication, and efficiently perform object management.

한편, 도 2에서 언급되어 있는 "stub"는 RMI 기술을 위해 사용되는 것인데, 자바에 대한 일반적인 기술을 가진 사람이라면 누구나 이해할 수 있는 내용이므로 이에 대한 별도의 설명은 생략하도록 한다.Meanwhile, "stub" mentioned in FIG. 2 is used for RMI technology. Any person having a general technology for Java can understand it, so a separate description thereof will be omitted.

도 3은 본 발명에 따른 객체 관리의 순서흐름도이다.3 is a flowchart illustrating object management according to the present invention.

도 3은 특히 호출자(110)의 동작을 도시하고 있다. 객체의 정보를 내부 객체 저장부(120) 및 원격 객체 저장부(130)에 저장하는 피호출자(100)의 동작에 대해서는 별도의 순서흐름도를 생략하였다. 피호출자(100)의 동작에 대해서는 도 2 의 201단계 내지 205단계를 참조하도록 한다.3 specifically illustrates the operation of caller 110. A separate flow chart is omitted for the operation of the called party 100 for storing information of the object in the internal object storage 120 and the remote object storage 130. For operation of the called party 100, refer to steps 201 to 205 of FIG. 2.

도 3의 300단계에서 호출자(110)는 내부 객체 저장부(120)에 저장된 객체 정보를 검색한다. 해당 객체의 정보가 내부 객체 저장부(120)에 저장되어 있다고 판단되면(302), 제 304단계에서 호출자(110)는 상기 정보를 사용하여 해당 객체를 내부 호출한다.In step 300 of FIG. 3, the caller 110 searches for object information stored in the internal object storage 120. If it is determined that the information of the object is stored in the internal object storage 120 (302), in step 304 the caller 110 internally calls the object using the information.

한편, 제 302단계에서 해당 객체의 정보가 내부 객체 저장부(120)에 저장되어 있지 않다고 판단되면, 제 310단계에서 호출자(110)는 원격 객체 저장부(130)에서 해당 객체의 정보를 검색한다. 제 312단계에서 호출자(110)는, 상기 원격 객체 저장부(130)로부터 획득한 정보를 내부 객체 저장부(120)에 저장한다. 제 314단계에서 호출자(110)는 원격 객체 저장부(130)로부터 획득한 객체의 정보를 사용하여 해당 객체를 호출하기 위한 소켓 통신을 수행한다.On the other hand, if it is determined in step 302 that the information of the object is not stored in the internal object storage unit 120, the caller 110 retrieves the information of the object in the remote object storage unit 130 in step 310. . In operation 312, the caller 110 stores the information obtained from the remote object storage 130 in the internal object storage 120. In step 314, the caller 110 performs a socket communication for calling a corresponding object by using the information of the object obtained from the remote object storage 130.

이하 구체적인 자바 코드 등을 사용하여 본 발명을 다시 한번 설명하도록 한다.Hereinafter, the present invention will be described once again using specific Java code.

먼저 본 발명은 원격 객체와 내부 객체를 모두 지원하는 rebind와 lookup 함수를 제공하는 rmipool 클래스를 가져야 한다. 이 클래스는 하기의 표 1과 같이 표현될 수 있을 것이다.First, the present invention should have a rmipool class that provides rebind and lookup functions that support both remote and internal objects. This class may be represented as shown in Table 1 below.

RmiPoolRmiPool getInstance() : RmiPool rebind(name : String, object : Object) lookup(name : String) : ObjectgetInstance (): RmiPool rebind (name: String, object: Object) lookup (name: String): Object

호출자(110) 및 피호출자(100)는, 상기 rmipool 클래스를 사용하여 다음과 같이 동작하게 된다.The caller 110 and the callee 100 operate as follows using the rmipool class.

먼저 피호출자(100)의 동작은 다음과 같다.First, the operation of the callee 100 is as follows.

1. 원격 객체를 rmipool rebind 함수를 호출하여 등록한다.1. Register the remote object by calling rmipool rebind.

rmipool.rebind(remoteObjectName, remoteObjectInstance);rmipool.rebind (remoteObjectName, remoteObjectInstance);

a) RmiPool에서는 내부 버퍼에 원격객체를 저장한다.a) RmiPool stores remote objects in an internal buffer.

objectpool.put(remoteobjectname, remoteobjectinstance);objectpool.put (remoteobjectname, remoteobjectinstance);

b) rmiregistry에 rebind한다.b) Rebind to rmiregistry.

naming.rebind(remoteobjectname, remoteobjectinstance);naming.rebind (remoteobjectname, remoteobjectinstance);

다음으로 호출자(110)의 동작은 다음과 같다.Next, the operation of the caller 110 is as follows.

1. rmipool로부터 호출하려는 원격객체의 이름으로 룩업을 한다.1. Look up the name of the remote object you want to call from rmipool.

rmipool.lookup(remoteobjectname);rmipool.lookup (remoteobjectname);

a) rmipool에서는 내부 버퍼로부터 해당 이름으로 원격 객체를 찾고 있으면 바로 검색된 원격객체를 리턴하며 없으면 rmiregistry로부터 룩업을 하고 룩업된 원격객체를 내부 버퍼에 저장한 후 원격 객체를 리턴한다.a) If rmipool finds a remote object by its name from an internal buffer, it returns the retrieved remote object immediately. Otherwise, it looks up from rmiregistry, saves the retrieved remote object in an internal buffer, and returns the remote object.

remoteObjectInstance = objectPool.get(remoteObjectName);remoteObjectInstance = objectPool.get (remoteObjectName);

if(remoteObjectInstance == null)if (remoteObjectInstance == null)

{{

remoteObjectInstance = Naming.lookup(remoteObjectName);    remoteObjectInstance = Naming.lookup (remoteObjectName);

objectPool.put(remoteObjectName, remoteObjectInstance);    objectPool.put (remoteObjectName, remoteObjectInstance);

}}

return remoteObjectInstance;return remoteObjectInstance;

하기에서는 특히, 본 발명을 네트워크 관리 시스템(Network Management System; NMS)에 적용하는 경우를 예로 들어 설명할 것이다. 네트워크 관리 시스템 역시 분산 환경이 적용되는 시스템이다. 또한 차세대 네트워크에서 네트워크 관리 시스템의 분산화 요구는 더욱 커지고 있는 추세이다.  In the following, in particular, the case where the present invention is applied to a network management system (Network Management System; NMS) will be described as an example. Network management system is also a system to which distributed environment is applied. In addition, the decentralization requirements of network management systems are increasing in next generation networks.

먼저 차세대 네트워크를 위한 네트워크 관리 시스템(이하 네트워크 관리 시스템이라 칭한다)에 대해 간단히 설명하도록 한다.First, a brief description will be given of a network management system (hereinafter referred to as a network management system) for a next generation network.

현재의 네트워크 관리 시스템이 가지는 일반적인 요구사항들로 다음과 같은 사항들이 있다. 첫째, 여러 vendor의 다양한 장비들을 관리해야 하므로 SNMP, CORBA, TL1 등 여러 가지 관리 프로토콜들을 수용할 수 있어야 한다. 둘째, 새로운 서비스의 추가가 용이해야 하고 관리 기능의 중단을 최소화해야 한다. 셋째, 기능의 추가/변경으로 인한 업그레이드시 지역적 제한이나 사업자의 업그레이드 정책에 의해 모든 장비를 동시에 업그레이드할 수 없는 경우 업그레이드 중에도 기존 버전 장비의 관리를 수행해야 하므로 동일 장비 내에서도 2가지 이상의 버전을 관리해야 한다. 넷째, 향후 관리 장비의 증가로 인한 관리 용량의 확장을 위해 관리 기능이 분산될 수 있어야 한다. 다섯째, 시스템의 관리 용량을 늘리기 위해 제한적인 자원을 효율적으로 이용한다.General requirements of current network management system are as follows. First, since it is necessary to manage various devices of various vendors, it must be able to accommodate various management protocols such as SNMP, CORBA, and TL1. Second, the addition of new services should be easy and the disruption of management functions should be minimized. Third, when upgrading due to the addition / change of functions, if all equipment cannot be upgraded at the same time due to regional restrictions or the upgrade policy of the operator, it is necessary to manage the existing version equipment during the upgrade, so two or more versions must be managed within the same equipment. do. Fourth, the management function should be distributed to expand the management capacity due to the increase of the management equipment in the future. Fifth, the limited resources are efficiently used to increase the management capacity of the system.

이러한 요구사항들을 수용하기 위해 네트워크 관리 시스템은 계층적 구조로 설계됨이 일반적이다.To accommodate these requirements, network management systems are typically designed in a hierarchical structure.

계층 구조를 가지는 네트워크 관리 시스템에서의 메시지 처리에 본 발명의 객체 관리를 적용하는 경우를 설명하면 다음과 같다.A case of applying the object management of the present invention to message processing in a network management system having a hierarchical structure is as follows.

네트워크 관리 시스템에서는 요청/응답 메시지의 전달을 위한 point-to-point 방식과 이벤트 메시지의 전달을 위한 publish-subscribe 방식이 메시지 전달 방식으로 사용될 수 있다. point-to-point 방식은 메시지에 관심 있는 수신자(receiver)가 하나일 때 사용되는 메시지 전달 방식으로 Integrated NMS 내에서는 요청과 응답 메시지를 전달하는데 사용된다. publish-subscribe 방식은 메시지에 관심 있는 수신자가 여럿일 경우에 쓰이는 메시지 전달 방식이다. publish-subscribe 방식은 주로 이벤트 메시지의 전달을 위해 사용된다.In a network management system, a point-to-point method for delivering a request / response message and a publish-subscribe method for delivering an event message may be used as a message delivery method. The point-to-point method is a message delivery method used when there is only one receiver interested in a message. It is used to deliver request and response messages in an Integrated NMS. The publish-subscribe method is a message delivery method used when there are several recipients interested in a message. The publish-subscribe method is mainly used for delivering event messages.

하기에서는 네트워크 관리 시스템에서의 publish-subscribe 방식의 메시지 전달을 위해 사용되는, 본 발명의 객체 호출을 적용한 In the following, an object call of the present invention, which is used for message delivery in a publish-subscribe method in a network management system, is applied.

전술한 메시지 전달 방식을 지원하기 위한 인터페이스에 본 발명의 객체 호출을 적용한 예를, 분산 환경 시스템을 지원하기 위해서 주로 사용하는 RMI와 CORBA를 사용하여 다음처럼 정의할 수 있다.An example of applying the object call of the present invention to an interface for supporting the aforementioned message delivery method may be defined as follows using RMI and CORBA, which are mainly used to support a distributed environment system.

먼저 RMI, 즉 JAVA의 경우이다.First, RMI, or JAVA.

public interface Session {public interface Session {

public void receive( AbstractList messages )    public void receive (AbstractList messages)

throws RemoteException;        throws RemoteException;

public AbstractList send( Map message )    public AbstractList send (Map message)

throws RemoteException;        throws RemoteException;

public void send( Map message, Session receiver )    public void send (Map message, Session receiver)

throws RemoteException;        throws RemoteException;

public void isAlive()    public void isAlive ()

throws RemoteException;        throws RemoteException;

}}

public interface Publisher {public interface Publisher {

public void isAlive()    public void isAlive ()

throws RemoteException;        throws RemoteException;

public Integer subscribe( Session subscriber, Serializable topic )    public Integer subscribe (Session subscriber, Serializable topic)

throws RemoteException;        throws RemoteException;

public void cancel( Integer id )    public void cancel (Integer id)

throws RemoteException;        throws RemoteException;

public void publish( AbstractList messages )    public void publish (AbstractList messages)

throws RemoteException;        throws RemoteException;

public void publish( Integer id, AbstractList messages )    public void publish (Integer id, AbstractList messages)

throws RemoteException;        throws RemoteException;

}}

다음은 CORBA의 경우이다.The following is the case of CORBA.

module com {module samsung {module nms {module com {module samsung {module nms {

module protocol { module corba {   module protocol {module corba {

// Define Message (Name-Value List)// Define Message (Name-Value List)

typedef sequence<NameValue> Message;typedef sequence <NameValue> Message;

// Define Message List// Define Message List

typedef sequence<Message> MessageList;typedef sequence <Message> MessageList;

// Define Exception// Define Exception

exception RemoteException{string message;};exception RemoteException {string message;};

interface Session {interface Session {

MessageList send( in Message message )    MessageList send (in Message message)

raises (RemoteException);      raises (RemoteException);

MessageList send( in Message message,    MessageList send (in Message message,

in Session receiver)        in Session receiver)

raises (RemoteException);      raises (RemoteException);

void received( in MessageList messages )    void received (in MessageList messages)

raises (RemoteException);      raises (RemoteException);

};};

interface Publisher {interface Publisher {

void isAlive() raises (RemoteException);    void isAlive () raises (RemoteException);

short subscribe( in Session subscriber )    short subscribe (in Session subscriber)

raises (RemoteException);      raises (RemoteException);

void cancel( in short id )    void cancel (in short id)

raises (RemoteException);      raises (RemoteException);

void publish( in MessageList messages )    void publish (in MessageList messages)

raises (RemoteException);      raises (RemoteException);

void publishTo( in short id, in MessageList messages )    void publishTo (in short id, in MessageList messages)

raises (RemoteException);      raises (RemoteException);

};};};};};};};};};};};};

상기 코드는 JAVA 또는 CORBA를 사용하는 사람이라면 쉽게 이해할 수 있는 내용들이므로, 그에 대한 별도의 설명은 생략하도록 한다. 또한, 본 발명은 상기 코드에 의해 한정되지 않고, 다양한 프로그램 및 코드들에 의해 구현될 수 있을 것이다.Since the above codes are easily understood by those who use JAVA or CORBA, a separate description thereof will be omitted. In addition, the present invention is not limited to the above code, but may be implemented by various programs and codes.

전술한 바와 같이 본 발명을 분산 환경 시스템에서의 메시지 전달에 적용하는 경우, 같은 프로세스 내에서의 메시지 전달과 다른 프로세스간의 메시지 전달, 더 나아가 분산환경에서의 메시지 전달이 모두 동일한 패턴으로 이루어지므로 간단한 규칙만으로 복잡한 시스템을 완성할 수 있게 된다.As described above, when the present invention is applied to message delivery in a distributed environment system, a simple rule is because the message delivery in the same process, message delivery between different processes, and message delivery in a distributed environment are all made in the same pattern. Only complex systems can be completed.

전술한 바와 같이 본 발명은, 분산 환경 시스템에서의 객체 검색에서, 프로세스 내에 존재하는 내부 객체라면 직접 해당 객체의 레퍼런스(reference)를 얻어오고, 다른 프로세스 내에 존재하는 원격 객체일 경우 stub 객체의 레퍼런스를 얻어오도록 하며, 한번 얻어온 객체의 레퍼런스는 내부 저장부에 저장하여 재사용하도록 함으로써 객체의 위치에 관계없이 최적의 성능을 유지할 수 있도록 한다.As described above, in the object search in a distributed environment system, a reference of a corresponding object is directly obtained if an internal object exists in a process, and a reference of a stub object is obtained if a remote object exists in another process. The reference of the object once obtained is stored in internal storage and reused to maintain optimal performance regardless of the object's location.

원격객체가 여러 대의 서버에 각각 다른 프로세스들로 분산되어 존재하는지 같은 프로세스에 존재하는지에 상관없이 위치 투명성(location transparency)을 지원하면서 분산 환경에서 원격 객체가 같은 프로세스 내에 존재하는 경우 소켓 통신을 하지 않고 직접 호출을 하도록 하여 성능을 향상시킬 수 있다. 이로써 응용되는 시스템의 스케일(scale)에 따른 원격객체의 배치가 달라지더라도 코드의 수정 없이 최적의 성능을 제공할 수 있다.It supports location transparency regardless of whether the remote object is distributed in different processes or in the same process on multiple servers, and there is no socket communication when the remote object exists in the same process in a distributed environment. Direct calls can be made to improve performance. As a result, even if the placement of the remote object varies according to the scale of the applied system, it is possible to provide optimal performance without modification of code.

Claims (7)

분산 환경에서의 객체 관리 장치에 있어서,In the object management apparatus in a distributed environment, 내부 객체를 저장하는 내부 객체 저장부와,An internal object storage unit for storing internal objects, 원격 객체를 저장하는 원격 객체 저장부와,A remote object storage unit for storing the remote object, 호출될 객체를 상기 내부 객체 저장부(rmipool)에 저장하고, 상기 내부 객체 저장부에 저장된 객체 정보를 상기 원격 객체 저장부에 저장하는 피호출자와,A caller for storing an object to be called in the internal object storage unit and storing object information stored in the internal object storage unit in the remote object storage unit; 임의의 객체에 대한 호출이 요구되는 경우, 내부 객체 저장부에서 해당 객체를 검색하여, 상기 내부 객체 저장부에 해당 객체가 존재하면 상기 객체를 내부호출하고, 상기 내부 객체 저장부에 해당 객체가 존재하지 않으면 상기 원격 객체 저장부를 검색하여, 상기 원격 객체 저장부로부터 소켓 통신을 통해 상기 해당 객체를 호출하는 호출자를 포함하는 분산 환경에서의 객체 관리 장치.When a call to any object is required, the object is searched for in the internal object storage, and if the object exists in the internal object storage, the object is called internally, and the object exists in the internal object storage. Or a caller which retrieves the remote object storage and calls the corresponding object through socket communication from the remote object storage. 제 1항에 있어서, The method of claim 1, 상기 호출자는,The caller, 상기 원격 객체 저장부로부터 소켓 통신을 통해 호출한 객체를 내부 객체 저장부에 저장하는 분산 환경에서의 객체 관리 장치.An object management apparatus in a distributed environment for storing an object called through the socket communication from the remote object storage in the internal object storage. 제 1항에 있어서,The method of claim 1, 상기 호출자 및 피호출자는,The caller and callee, 자바의 RMI(Remote Method Invocation)을 사용하여 상기 객체의 저장, 검색 및 호출을 수행하는 분산 환경에서의 객체 관리 장치.An object management device in a distributed environment that uses Java's Remote Method Invocation (RMI) to store, retrieve, and invoke the objects. 제 1항에 있어서,The method of claim 1, 상기 내부 객체 저장부는 자바의 RmiPool이고, 상기 외부 객체 저장부는 자바의 rmiregistry인 분산 환경에서의 객체 관리 장치.The internal object storage unit is RmiPool of Java, and the external object storage unit is a rmiregistry of Java object management apparatus in a distributed environment. 분산 환경에서의 객체 관리 장치에 있어서,In the object management apparatus in a distributed environment, 내부 객체를 저장하는 내부 객체 저장부와,An internal object storage unit for storing internal objects, 원격 객체를 저장하는 원격 객체 저장부와,A remote object storage unit for storing the remote object, 호출될 객체를 상기 내부 객체 저장부에 저장하고, 상기 내부 객체 저장부에 저장된 객체 정보를 상기 원격 객체 저장부에 저장하는 분산 환경에서의 객체 관리 장치.An object management apparatus in a distributed environment that stores the object to be called in the internal object storage, and stores the object information stored in the internal object storage to the remote object storage. 분산 환경 시스템에서의 객체 관리 방법에 있어서,In the object management method in a distributed environment system, 호출될 객체를 내부 객체 저장부에 저장하는 제 1 과정과,A first step of storing the object to be called in an internal object storage; 상기 내부 객체 저장부에 저장된 객체 정보를 원격 객체 저장부에 저장하는 제 2 과정과,A second process of storing object information stored in the internal object storage in a remote object storage; 객체 호출이 요구되는 경우, 내부 객체 저장부에서 해당 객체를 검색하여, 해당 객체 정보가 상기 내부 객체 저장부에 존재하면 상기 객체를 내부호출하고, 상기 해당 객체가 상기 내부 객체 저장부에 존재하지 않으면 상기 원격 객체 저장부를 검색하여, 상기 원격 객체 저장부로부터 소켓통신을 통해 상기 해당 객체를 호출하는 제 3 과정을 포함하는 분산 환경 시스템에서의 객체 호출 방법.If an object call is required, the internal object storage unit searches for the object, and if the object information exists in the internal object storage unit, internally calls the object, and if the object does not exist in the internal object storage unit, And a third step of searching for the remote object storage and calling the corresponding object from the remote object storage through socket communication. 제 6항에 있어서,The method of claim 6, 상기 원격 객체 저장부로부터 소켓 통신을 통해 호출한 객체를 내부 객체 저장부에 저장하는 제 4 과정을 더 포함하는 분산 환경 시스템에서의 객체 호출 방법.And a fourth process of storing the object called through the socket communication from the remote object storage in an internal object storage.
KR1020050040350A 2005-05-13 2005-05-13 Apparatus and method for pooling the object of distributed system KR100716171B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050040350A KR100716171B1 (en) 2005-05-13 2005-05-13 Apparatus and method for pooling the object of distributed system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050040350A KR100716171B1 (en) 2005-05-13 2005-05-13 Apparatus and method for pooling the object of distributed system

Publications (2)

Publication Number Publication Date
KR20060117803A KR20060117803A (en) 2006-11-17
KR100716171B1 true KR100716171B1 (en) 2007-05-10

Family

ID=37705229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050040350A KR100716171B1 (en) 2005-05-13 2005-05-13 Apparatus and method for pooling the object of distributed system

Country Status (1)

Country Link
KR (1) KR100716171B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980086685A (en) * 1997-05-07 1998-12-05 포맨 제프리 엘 How to run an object remotely
KR19990051702A (en) * 1997-12-19 1999-07-05 정선종 Remote Object Creation and Approach in Distributed Object System
KR100210208B1 (en) 1996-03-20 1999-07-15 포만 제프리 엘 Method and apparatus for enabling persistent attributes in an object oriented environment
KR20030084164A (en) * 2002-04-25 2003-11-01 주식회사 피누스코리아 Dynamic communication method and system using remote method invocation
KR20060074676A (en) * 2004-12-28 2006-07-03 (주)나인트론 Object method auto generation system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100210208B1 (en) 1996-03-20 1999-07-15 포만 제프리 엘 Method and apparatus for enabling persistent attributes in an object oriented environment
KR19980086685A (en) * 1997-05-07 1998-12-05 포맨 제프리 엘 How to run an object remotely
KR19990051702A (en) * 1997-12-19 1999-07-05 정선종 Remote Object Creation and Approach in Distributed Object System
KR20030084164A (en) * 2002-04-25 2003-11-01 주식회사 피누스코리아 Dynamic communication method and system using remote method invocation
KR20060074676A (en) * 2004-12-28 2006-07-03 (주)나인트론 Object method auto generation system

Also Published As

Publication number Publication date
KR20060117803A (en) 2006-11-17

Similar Documents

Publication Publication Date Title
US6941148B2 (en) Device registry for automatic connection and data exchange between pervasive devices and backend systems
US7974613B1 (en) Device capability determination for a mobile device
US20040230965A1 (en) Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US20070165615A1 (en) Apparatus and method for notifying communication network event in application server capable of supporting open API based on Web services
JP2001075785A (en) Data updating system
WO2019015778A1 (en) Unstructured data storage function (udsf) services
JP2010170567A (en) Apparatus and associated method for facilitating delivery and processing of push content
CN110049503B (en) Method and equipment for acquiring data
US9058372B2 (en) Database management in a wireless communication system
US20060259523A1 (en) System and method of synchronization of internal data cache with wireless device application data repositories
US8340652B2 (en) System and method of waste management
KR100601023B1 (en) Integrated communication server and method
KR20110118667A (en) System for discovering level of support of optional features in a database
US8391845B2 (en) System and method of presenting entities of standard applications in wireless devices
US20040193601A1 (en) Method and contact list server for modifying the entry names in a contact list
US20030177214A1 (en) Dynamic SNMP network device
EP2200395B1 (en) Managing method, system and device for an appearance packet
KR100716171B1 (en) Apparatus and method for pooling the object of distributed system
US7392292B2 (en) Method for managing CRM data, CRM server and recording medium thereof
CN113973135A (en) Data caching processing method and device, caching grid platform and storage medium
KR100578029B1 (en) Interface architecture of subscriber information management system for mobile network system
EP1185028A1 (en) Management of home and history context information in network services
KR101454415B1 (en) Method and apparatus for processing common business support in mobile communication system
CN113067712B (en) Network element information processing method, device, equipment and storage medium
JP2003216458A (en) Updating method for data bank

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130429

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140429

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150429

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160428

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee