KR20160057178A - Rmi 통신 방법 및 장치 - Google Patents

Rmi 통신 방법 및 장치 Download PDF

Info

Publication number
KR20160057178A
KR20160057178A KR1020140158095A KR20140158095A KR20160057178A KR 20160057178 A KR20160057178 A KR 20160057178A KR 1020140158095 A KR1020140158095 A KR 1020140158095A KR 20140158095 A KR20140158095 A KR 20140158095A KR 20160057178 A KR20160057178 A KR 20160057178A
Authority
KR
South Korea
Prior art keywords
server
client
function
rmi
information
Prior art date
Application number
KR1020140158095A
Other languages
English (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 KR1020140158095A priority Critical patent/KR20160057178A/ko
Publication of KR20160057178A publication Critical patent/KR20160057178A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 자바(Java) 원격 함수 호출(RMI: Remote Method Invocation) 기반의 통신 기술을 사용하여 NAT(Network Address Translation) 내부 및 외부 네트워크간의 자유로운 통신을 수행할 수 있는 통신 방법 및 장치에 관한 것이다. 본 발명의 RMI 통신 장치는, 서버 및 서버에 연동된 에이전트 서버 각각과 통신-RMI 통신 장치에는 서버 및 에이전트 서버가 각각 제공하는 함수에 대한 정보를 저장하고 있음-, 클라이언트로부터 함수 호출을 수신하고, 클라이언트가 서버를 포함하는 내부 네트워크에 포함되어 있는지 또는 서버 외부의 외부 네트워크에 포함되어 있는지를 판단하고, 클라이언트가 내부 네트워크에 포함된 경우 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 반환하고, 외부 네트워크에 포함된 경우 에이전트 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 반환한다.

Description

RMI 통신 방법 및 장치{METHOD AND APPARATUS FOR COMMUNICATING BY USING REMOTE METHOD INVOCATION}
본 발명은 통신 분야에 관한 것으로, 특히 자바(Java) 원격 함수 호출(RMI: Remote Method Invocation) 기반의 통신 기술을 사용하여 NAT(Network Address Translation) 내부 및 외부 네트워크간의 자유로운 통신을 수행할 수 있는 통신 방법 및 장치에 관한 것이다.
복수개의 독립된 네트워크(Network)가 상호 연결되어 이루어진 복잡한 네트워크를 인터네트워크(Internetwork)라 하고, 복수개의 독립된 네트워크를 하나의 통합된 네트워크로 연결하는 방법, 즉 독립된 각 네트워크들 사이의 연결 과정을 인터네트워킹(Internetworking) 이라고 한다. 인터네트워킹의 일 예로서는 독립된 네트워크를 구성하는 LAN(Local Area Network) 사용자가 WAN(Wide Area Network)을 통해서 연결된 다른 LAN 사용자와 데이터를 주고받는 것을 들 수 있다. 이와 같은 인터네트워킹은 독립된 네트워크들을 연결하기 때문에, 네트워크의 계층(Layer)별 서비스, 독립된 네트워크에서 사용하는 프로토콜(Protocol) 구조, 독립된 네트워크의 주소(Address) 구조, 데이터 전송 경로를 결정하는 라우팅(Routing) 및 전송하는 데이터 패킷(Packet)의 크기 등을 고려하여야 한다.
최근에는 독립된 네트워크를 사용하는 사용자가 멀리 떨어져 있는 다른 네트워크에 접속하여 상호간에 데이터를 전송할 수 있도록 전 세계에 분포된 독립된 네트워크를 연결하는 인터넷(Internet)의 사용이 활성화되어 있다. 인터넷은 인터넷 프로토콜(IP: Internet Protocol) 주소(Address)로 구분되는 복수개의 단위 네트워크와 각 단위 네트워크에 구비된 개별적인 IP 주소를 갖는 복수의 호스트(Host)들 간에 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP: Transmission Control Protocol/Internet Protocol)을 기반으로 한다. 또한, 인터넷은 LAN이나 공중전화 교환망(PSTN: Public Switched Telephone Network) 등의 독립된 네트워크를 통하여 데이터 통신을 수행할 수 있는 데이터 통신 네트워크이다. 한편, IP는 OSI(Open System Interface) 7 계층 구조에서 제3 계층인 네트워크 계층(Network Layer)에 해당하는 것으로서, 네트워크에 종속적인 부분과 네트워크에 독립적인 부분이 결합된다. IP 주소는 기본적으로 32 비트(bit)로 구성되며, 인터넷상의 서브넷(Subnet)을 나타내는 부분과 서브넷 상의 호스트를 나타내는 부분으로 구분할 수 있다. IP 주소는 인터넷상에서의 유일한 주소 체계이다.
네트워크 주소 변환(NAT: Network Address Translation) 기술은 인터네트워킹에서 사용되는 용어로서, IP 패킷(Packet)의 TCP/UDP(User Datagram Protocol) 포트 번호와 소스 및 목적지의 IP 주소 등을 변환하여 라우터(router)를 통해 네트워크 트래픽을 주고 받는 기술을 나타낸다.
RMI(Remote Method Invocation) 통신 방식은 원격에 있는 객체의 함수(Method)를 호출하는 자바(JAVA)의 분산 처리 방법으로, 원격 컴퓨터(Remote Computer)에 존재하는 함수를 로컬 컴퓨터(Local Computer)의 함수를 호출하듯 사용 가능하게 하는 TCP/IP 기반의 통신 방법이다.
NAT 기술이 적용된 네트워크 시스템에서 RMI 통신 방식을 이용할 경우 서버가 위치하는 NAT 내부 네트워크의 클라이언트는 사설(Private) IP 주소를 이용하여 서버에 액세스하고, NAT 외부 네트워크의 클라이언트는 공인(Public) IP 주소를 이용하여 서버에 액세스하기 때문에 NAT 외부 네트워크에 위치한 클라이언트는 사설 IP 주소에 대한 액세스가 불가능하고, NAT 내부 네트워크에 위치한 클라이언트는 공인 IP 주소에 대한 액세스가 불가능하여 NAT 내부 네트워크에 위치한 서버와 NAT 내부 및 외부 네트워크에 위치한 클라이언트 간의 함수 호출이 불가능한 문제점이 있다.
한국공개특허공보 제10-2005-0009802호(2005.01.26. 공개)
본 발명은 자바(Java) 원격 함수 호출(RMI: Remote Method Invocation) 기반의 통신 기술을 이용하여 NAT(Network Address Translation) 내부 및 외부 네트워크간의 자유로운 통신을 수행할 수 있는 통신 방법 및 장치를 제공한다.
본 발명의 RMI 통신 장치는, 초기 구동시 서버(server) 및 상기 서버에 연동된 에이전트 서버(agent server) 각각이 제공하는 함수에 대한 정보를 저장하는 저장부와; 클라이언트(client)로부터 함수 호출을 수신할 경우 상기 클라이언트가 상기 서버를 포함하는 내부 네트워크에 포함되어 있는지 또는 상기 서버 외부의 외부 네트워크에 포함되어 있는지를 판단하여, 상기 클라이언트가 상기 내부 네트워크에 포함된 경우 상기 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 해당 클라이언트로 반환하고, 상기 클라이언트가 상기 외부 네트워크에 포함된 경우 상기 에이전트 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 해당 클라이언트로 반환하는 제어부를 포함한다.
또한 본 발명의 RMI 통신 방법은, a) 서버 및 상기 서버에 연동된 에이전트 서버 각각과 통신하는 단계 - 상기 RMI 통신 장치에는 상기 서버 및 상기 에이전트 서버가 각각 제공하는 함수에 대한 정보를 저장하고 있음 - ; b) 클라이언트로부터 함수 호출을 수신하는 단계와; c) 상기 클라이언트가 상기 서버를 포함하는 내부 네트워크에 포함되어 있는지 또는 상기 서버 외부의 외부 네트워크에 포함되어 있는지를 판단하는 단계와; d) 상기 클라이언트가 상기 내부 네트워크에 포함된 경우 상기 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 반환하고, 상기 외부 네트워크에 포함된 경우 상기 에이전트 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 반환하는 단계를 포함한다.
본 발명에 따르면, 원격 함수 호출(RMI: Remote Method Invocation) 기반의 통신 기술을 이용하여 NAT(Network Address Translation) 환경 내부 및 외부 네트워크간의 자유로운 통신을 수행할 수 있다.
도 1은 RMI 구현을 위한 NAT 환경의 구성도.
도 2는 RMI 통신의 절차를 보이는 예시도.
도 3은 본 발명의 실시예에 따른 NAT 환경의 구성을 보이는 예시도.
도 4는 본 발명의 실시예에 따른 에이전트 서버를 이용한 함수 호출 방법의 절차를 보이는 예시도.
도 5는 본 발명의 실시예에 따른 RMI 통신 장치의 구성을 보이는 예시도.
도 6은 본 발명의 실시예에 따른 RMI 통신 방법의 절차를 보이는 플로우챠트.
이하 첨부된 도면을 참조하여 본 발명의 실시예들에 대해 상세히 설명한다. 다만, 이하의 설명에서는 본 발명의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.
네트워크 주소 변환(NAT: Network Address Translation) 기술은 컴퓨터 네트워킹(Computer Networking)에서 사용되는 용어로서, IP(Internet Protocol) 패킷(Packet)의 TCP/UDP(Transmission Control Protocol/User Datagram Protocol) 포트 번호와 소스(source) 및 목적지(target)의 IP 주소(address) 등을 재기록하면서 라우터(router)를 이용하여 네트워크 트래픽을 주고 받는 기술을 나타낸다. NAT 기술을 사용하는 이유는 사설 네트워크에 속한 여러 개의 호스트(host)가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다. 편리성으로 인해서 다수의 네트워크에서 NAT 기술을 널리 사용하지만, NAT 기술이 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있다.
원격 함수 호출(RMI: Remote Method Invocation) 통신 방식은 원격에 위치한 객체의 함수(Method)를 호출하는 자바(JAVA) 언어의 분산 처리 방법으로, 원격 컴퓨터(Remote Computer)에 존재하는 함수를 로컬 컴퓨터(Local Computer)의 함수를 호출하듯 사용 가능하게 하는 TCP/IP 기반의 통신 방법이다. RMI 통신 방식을 사용할 경우 프로그램 개발자는 소켓 프로그래밍(Socket Programing) 등과 같은 네트워킹(Networking), 입출력 코드를 직접 만들지 않고도 원격 함수를 내부 호출과 같은 방법을 이용하여 호출 가능하기 때문에 용이하게 서버-클라이언트(Server-Client) 응용프로그램을 개발할 수 있다.
도 1은 RMI 구현을 위한 NAT 환경의 구성도이다.
도 1에 도시한 바와 같이, 자바로 구현되어 RMI 방식으로 통신하는 서버-클라이언트 응용프로그램은 서버(114)가 위치한 NAT 내부 네트워크(110)에 포함되는 클라이언트(112)에서 서버-클라이언트 응용프로그램의 실행을 위해서 서버(114)와 통신을 수행하여야 하고, NAT 외부 네트워크(120)에 포함되는 클라이언트(122)에서 서버-클라이언트 응용프로그램의 실행을 위해서 서버(114)와 통신을 수행하여야 한다. 일 실시예로서, NAT 내부 네트워크(110)에서의 통신 수행을 위해 사용되는 서버(114)의 사설(Private) IP 주소를 192.168.1.10으로 가정하고, NAT 외부 네트워크(120)에서 NAT 내부 네트워크(110)로의 액세스를 위한 공인 IP 주소로 10.10.10.10을 가정할 수 있다. 외부에서 NAT 내부 네트워크(110)로의 액세스를 위하여 공인 IP 주소(10.10.10.10)를 이용하여 트래픽이 액세스한 경우, NAT 장치(130)는 공인 IP 주소(10.10.10.10)를 매핑된 사설 IP 주소(192.168.1.10)로 변환하여 액세스한 트래픽을 변환된 사설 IP 주소(192.168.1.10)에 해당하는 서버(114)로 라우팅할 수 있다. 서버(114)가 위치하는 NAT 내부 네트워크(110)에 포함되는 클라이언트(112)는 사설 IP 주소를 이용하여 서버(114)에 액세스할 수 있고, NAT 외부 네트워크(120)에 포함되는 클라이언트(122)는 공인 IP 주소(10.10.10.10)를 이용하여 서버(114)에 액세스할 수 있다. 사설 IP 주소 또는 공인 IP 주소를 이용하여 서버(114)에 액세스한 각 클라이언트(112, 122)는 서버(114)가 제공하는 함수(method)를 RMI 통신 방식을 이용하여 원격 호출을 수행할 수 있다.
도 2는 RMI 통신의 절차를 보이는 예시도이다.
RMI 통신 방식의 목적은 클라이언트(210)가 원격 서버(Remote Server)(220)의 함수를 호출하고 함수 실행 결과를 획득하는 것이다. RMI 통신 방식의 구현을 위해서는 서비스 등록 단계(S210), 참조(lookup) 단계(S220), 스텁 반환(Return Stub) 단계(S230), 함수 호출(Call Method) 단계(S241~S243) 및 값 반환(Return Value) 단계(S251~S253)를 수행하여야 한다.
서비스 등록 단계(S210)에서는 서버(220)에 포함되는 서버 객체에서 제공하는 서비스 목록을 서버(220)에 포함되는 RMI 레지스트리(RMI Registry)(222)의 RMI 스텁에 등록할 수 있다. 참조 단계(S220) 및 스텁 반환 단계(S230)에서는 클라이언트(210)가 RMI 레지스트리(222)에 액세스하여 서버(220)가 제공하는 RMI 스텁에 대한 정보를 요청하여 RMI 스텁에 대한 정보를 획득할 수 있다. 클라이언트(210)는 RMI 레지스트리(222)로부터 획득한 RMI 스텁에 대한 정보를 이용하여 서버(220)에 포함되는 RMI 스켈레톤(RMI Skeleton)과 통신을 수행하여 서버(220)가 저장하는 함수를 호출하기 위한 함수 호출 단계(S241~S243) 및 호출한 함수의 실행 결과를 수신하는 함수 반환 단계(S251~S253)를 수행할 수 있다. 따라서, RMI 통신 방식을 이용하여 클라이언트(210)가 서버(220)가 저장하는 함수를 호출하기 위해서는 RMI 스텁에 대한 정보를 획득하기 위한 참조 단계(S220)와 RMI 스텁 및 RMI 스켈레톤을 이용한 함수 호출 단계(S241~S243)에서 네트워크를 통한 서버(220)로의 액세스가 가능해야 한다. RMI 스텁에 대한 정보 획득을 위한 참조 단계(S220)에서 클라이언트(210)는 서버(220)의 IP 주소와 RMI 레지스트리(222) 등록시 저장된 서비스 네임(Service Name)을 지정하여 참조 단계를 수행하며 이때, TCP/IP 소켓(Socket)을 이용하여 통신을 수행할 수 있다. 함수 호출 단계(S241~S243)에서는 참조 단계(S220)를 통해 획득한 RMI 스텁에 대한 정보를 이용하여 서버(220)와 통신을 수행하는데 이때, 별도의 IP 주소를 지정하지 않고 획득한 RMI 스텁에 지정된 서버의 IP 주소를 이용하여 TCP/IP 소켓 통신을 수행할 수 있다. 이 IP 주소는 서비스 등록 단계(S210)에서 RMI 레지스트리(222)의 RMI 스텁(RMI Stub)에 등록시 지정되는데 서버(220)의 사설 IP 주소를 포함할 수 있다.
서버(220)와 동일 네트워크에 위치한 클라이언트의 경우에는 서버의 사설 IP 주소를 이용하여 통신 가능하기 때문에 참조 단계(S220) 및 함수 호출 단계(S241~S243) 수행 시 서버(214)의 사설 IP 주소를 목적지(destination)로 하는 TCP/IP 소켓 연결에 문제가 없으며, 정상적으로 함수 호출 단계(S241~S243)를 수행할 수 있다. 그러나, 서버(214)의 외부 네트워크에 위치한 클라이언트의 경우에는 NAT 장치에 의해 매핑된 서버(220)의 공인 IP 주소를 이용하여 통신 가능하기 때문에 참조 단계(S220)는 정상 수행할 수 있지만, 획득한 RMI 스텁에 지정된 서버측 사설 IP 주소와 TCP/IP 소켓 연결이 불가능하여 함수 호출 단계(S241~S243)의 수행이 불가능할 수 있다. 일 실시예로서, RMI 레지스트리(216)에 등록되는 RMI 스텁에 지정되는 서버측 IP 주소를 JAVA 프로그래밍 기법을 이용하여 NAT 장치(130)에 의해 매핑된 공인 IP 주소로 지정하여 외부 네트워크에 위치하는 클라이언트는 함수 호출 단계(S241~S243)를 수행할 수 있다. 하지만, 이 경우 내부 네트워크에 위치한 클라이언트가 공인 IP 주소로의 액세스가 불가하여 서버(220)와의 통신이 불가능하다.
도 3은 본 발명의 실시예에 따른 NAT 환경의 구성을 보이는 예시도이다.
도 3에 도시한 바와 같이, 서버(316)가 위치한 NAT 내부 네트워크(310) 외부에 위치하는 NAT 외부 네트워크(320)에 포함되는 클라이언트(322)의 경우 NAT 장치(330)에 의해 매핑된 서버의 공인 IP 주소를 이용하여 도 2에 도시한 참조 단계(S220)를 정상 수행할 수 있지만, 획득한 RMI 스텁에 기본 지정된 서버(316)의 사설 IP 주소와 TCP/IP 소켓 연결이 불가능하여 도 2에 도시한 함수 호출 단계(S241~S243)를 수행할 수 없는 문제를 해결하기 위해서 컴퓨팅 장치(computing apparatus)인 서버 컴퓨터(314)가 NAT 외부 네트워크(320)가 포함하는 클라이언트(322)와의 함수 호출 및 값 반환을 수행하기 위한 에이전트 서버(Agent Server)(318)를 포함할 수 있다.
에이전트 서버(318)는 서버(316)와 마찬가지로 서버 컴퓨터(314)에 포함될 수 있지만, 서버(316)와는 서로 다른 자바 가상 머신(JVM: JAVA Virtual Machine) 상에서 동작할 수 있다. 에이전트 서버(318)는 NAT 외부 네트워크(320)에 포함되는 클라이언트(322)로부터의 공인 IP 주소를 이용한 RMI 호출을 수신하면, 공인 IP 주소에 대하여 NAT 기술로 매핑된 사설 IP 주소에 대응하는 서버(316)로 RMI 호출을 전달하고, 호출 결과를 NAT 외부 네트워크(320)에 포함되는 클라이언트(322)로 송신할 수 있다. 즉, 에이전트 서버(318)는 NAT 외부 네트워크(320)에 위치한 클라이언트(322)로부터의 함수 호출을 수신하는 서버로서의 역할을 수행하는 동시에 동일한 서버 컴퓨터(314)에 위치한 서버(316)를 호출하는 클라이언트로서의 역할을 수행할 수 있다.
에이전트 서버(318)는 RMI 레지스트리(316)에 저장되는 RMI 스텁의 IP 주소를 공인 IP 주소(예를 들어, 10.10.10.10)로 설정하여 NAT 외부 네트워크(320)에서의 TCP/IP 소켓 연결이 가능하도록 할 수 있다. 일 실시예로서, 에이전트 서버(318)는 자바 실행 옵션(-Djava.rmi.server.hostname=10.10.10.10)을 이용하여 RMI 스텁의 IP 주소를 공인 IP 주소로 설정할 수 있다. 한편, 서버(316)는 RMI 레지스트리(316)에 저장되는 RMI 스텁의 IP 주소를 사설 IP 주소(예를 들어, 192.168.1.10)로 설정하여 NAT 내부 네트워크(310)에서의 TCP/IP 소켓 연결이 가능하도록 할 수 있다.
아울러, 에이전트 서버(318)는 서버(316)가 저장하는 함수 세트(Method Set)와 동일한 함수 세트를 저장할 수 있다. 일 실시예로서, 서버(316)가 getAbc() 및 getDef()라는 함수를 포함하는 함수 세트를 저장한다면 에이전트 서버(318)도 서버(316)와 동일하게 getAbc() 및 getDef() 함수를 포함하는 함수 세트를 저장할 수 있다.
도 4는 본 발명의 실시예에 따른 에이전트 서버를 이용한 함수 호출 방법의 절차를 보이는 예시도이다.
도 4에 도시한 바와 같이, NAT 외부 네트워크(420)에 포함되는 클라이언트(422)는 특정 함수(예를 들어, getAbc())에 대한 호출을 에이전트 서버(416)로 송신할 수 있고(S410), 특정 함수에 대한 호출을 수신한 에이전트 서버(416)는 서버(414)로 클라이언트(422)로부터 호출을 요청받은 함수를 호출하여(S420), 서버(414)로부터 함수 호출 결과를 수신하고(S430), 수신한 함수 호출 결과를 함수를 호출하였던 NAT 외부 네트워크에 포함되는 클라이언트(422)로 반환할 수 있다(S440).
한편, NAT 내부 네트워크(410)가 포함하는 클라이언트(412)는 기존과 같이 에이전트 서버(416)를 이용하지 않고 서버(414)와 직접 통신을 수행하여 서버(414)로 특정 함수를 요청하고(S450), 서버(414)로부터 요청한 함수에 대한 정보를 수신할 수 있다(S460).
도 5는 본 발명의 실시예에 따른 RMI 통신 장치의 구성을 보이는 예시도이다.
도 5에 도시한 바와 같이, RMI 통신 장치(500)는 저장부(510), 제어부(520), 송수신부(530) 및 시스템 버스(540)를 포함할 수 있다. 일 실시예로서, RMI 통신 장치(500)는 도 4에 도시한 서버(414) 및 에이전트 서버(416)와 동일한 하드웨어인 서버 컴퓨터에 포함될 수도 있고, 서버 컴퓨터와 별도로 구비될 수 있다. 아울러, RMI 통신 장치(500)에 포함되는 저장부(510), 제어부(520) 및 송수신부(530)는 시스템 버스(540)를 통하여 상호 연결될 수 있다.
저장부(510)는 시스템의 초기 구동시 서버(414) 및 에이전트 서버(416) 각각이 제공하는 함수에 대한 정보를 저장할 수 있다. 에이전트 서버(416)가 제공하는 함수에 대한 정보에는 서버(414)가 제공하는 함수에 대한 정보를 포함할 수 있다. 일 실시예로서, 서버(414)가 제공하는 함수에 대한 정보에는 내부 네트워크에서 액세스 가능한 사설 IP 주소(192.168.1.10)를 설정하여 저장할 수 있고, 에이전트 서버(416)가 제공하는 함수에 대한 정보에는 외부 네트워크에서 액세스 가능한 공인 IP 주소(10.10.10.10)를 설정하여 저장할 수 있다. 일 실시예로서, 저장부(510)는 ROM(Read Only Memory), RAM(Random Access Memory), CD(Compact Disc)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함할 수 있으나, 상기한 구성에 한정되지 않는다.
제어부(520)는 특정 클라이언트로부터 함수 호출을 수신할 경우 해당 클라이언트가 서버(414)를 포함하는 내부 네트워크에 포함된 클라이언트인지 서버(414) 외부의 외부 네트워크에 포함된 클라이언트인지를 판단하여, 내부 네트워크에 포함된 클라이언트일 경우 저장부(510)에 저장된 서버(414)가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 해당 클라이언트로 반환할 수 있고, 외부 네트워크에 포함된 클라이언트일 경우 저장부(510)에 저장된 에이전트 서버(416)가 제공하는 함수에 대한 정보를 이용하여 서버(414)로 호출된 함수를 요청할 수 있고, 서버(414)로부터 요청한 함수 호출 결과를 전달받아 해당 클라이언트로 반환할 수 있다.
송수신부(530)는 외부 또는 내부 네트워크에 포함된 클라이언트들로부터 함수 호출을 수신하고, 해당 함수를 호출한 클라이언트들로 함수 호출 결과를 전송할 수 있다.
도 6은 본 발명의 실시예에 따른 RMI 통신 방법의 절차를 보이는 플로우챠트이다.
도 6에 도시한 바와 같이, RMI 통신 장치(500)는 초기 구동시 서버(414) 및 서버(414)에 연동된 에이전트 서버(416) 각각과 통신을 수행하여(S601) 서버(414) 및 에이전트 서버(416)가 제공하는 서비스(함수)에 대한 정보를 저장할 수 있다. 이때, 에이전트 서버(416)가 제공하는 함수에 대한 정보에는 서버(414)가 제공하는 함수에 대한 정보까지 함께 포함할 수 있다. 일 실시예로서, 서버(414)가 제공하는 함수에 대한 정보는 내부 네트워크에서 액세스 가능한 사설 IP 주소(192.168.1.10)에 대한 정보를 포함할 수 있고, 에이전트 서버(416)가 제공하는 함수에 대한 정보에는 외부 네트워크에서 액세스 가능한 공인 IP 주소(10.10.10.10)에 대한 정보를 포함할 수 있다. 이후, RMI 통신 장치(500)는 특정 클라이언트로부터 함수 호출을 수신할 경우(S602) 해당 클라이언트가 서버(414)를 포함하는 내부 네트워크에 포함된 클라이언트인지 서버(414) 외부의 외부 네트워크에 포함된 클라이언트인지를 판단하여(S603), 내부 네트워크에 포함된 클라이언트일 경우 저장부(510)에 저장된 서버(414)가 제공하는 함수에 대한 정보를 이용하여 서버(414)로부터 함수 호출 결과를 수신할 수 있고(S604), 외부 네트워크에 포함된 클라이언트일 경우 저장부(510)에 저장된 에이전트 서버(416)가 제공하는 함수에 대한 정보를 이용하여 서버(414)로 호출된 함수를 요청할 수 있고, 서버(414)로부터 요청한 함수 호출 결과를 전달받아 에이전트 서버(416)로부터 함수 호출 결과를 수신할 수 있다(S605).
상기 방법은 특정 실시예들을 통하여 설명되었지만, 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 명세서에서는 본 발명이 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 당업자가 이해할 수 있는 본 발명의 정신 및 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.
110,310,410: NAT 내부 네트워크 120,320,420: NAT 외부 네트워크
112,122,210,312,322,412,422: 클라이언트 114,220,316,414: 서버
222: RMI 레지스트리 314, 416: 에이전트 서버
130,330: NAT 장치

Claims (8)

  1. RMI(Remote Method Invocation) 통신 장치로서,
    초기 구동시 서버(server) 및 상기 서버에 연동된 에이전트 서버(agent server) 각각이 제공하는 함수에 대한 정보를 저장하는 저장부와;
    클라이언트(client)로부터 함수 호출을 수신할 경우 상기 클라이언트가 상기 서버를 포함하는 내부 네트워크에 포함되어 있는지 또는 상기 서버 외부의 외부 네트워크에 포함되어 있는지를 판단하여, 상기 클라이언트가 상기 내부 네트워크에 포함된 경우 상기 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 해당 클라이언트로 반환하고, 상기 클라이언트가 상기 외부 네트워크에 포함된 경우 상기 에이전트 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 해당 클라이언트로 반환하는 제어부
    를 포함하는, RMI 통신 장치.
  2. 제1항에 있어서,
    상기 저장부에 저장된 상기 에이전트 서버가 제공하는 함수에 대한 정보는, 상기 서버가 제공하는 함수에 대한 정보를 포함하고, 또한 상기 외부 네트워크에서 액세스 가능한 공인 IP 주소를 포함하며,
    상기 저장부에 저장된 상기 서버가 제공하는 함수에 대한 정보는, 상기 내부 네트워크에서 액세스 가능한 사설 IP 주소를 포함하는, RMI 통신 장치.
  3. 제2항에 있어서,
    상기 에이전트 서버 및 상기 서버는, 동일한 컴퓨터 장치에 포함되지만, 서로 다른 자바 가상 머신(JAVA VIRTUAL MACHINE) 상에서 동작하는, RMI 통신 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제어부는,
    상기 클라이언트가 상기 외부 네트워크에 포함된 경우, 상기 클라이언트로부터 함수 호출을 수신하여 상기 에이전트 서버가, 상기 서버로 함수를 호출하여 상기 서버로부터 함수 호출 결과를 수신하고 상기 수신된 함수 호출 결과를 상기 클라이언트로 반환하는, RMI 통신 장치.
  5. RMI(Remote Method Invocation) 통신 장치의 통신 방법으로서,
    a) 서버 및 상기 서버에 연동된 에이전트 서버 각각과 통신하는 단계 - 상기 RMI 통신 장치에는 상기 서버 및 상기 에이전트 서버가 각각 제공하는 함수에 대한 정보를 저장하고 있음 - ;
    b) 클라이언트로부터 함수 호출을 수신하는 단계와;
    c) 상기 클라이언트가 상기 서버를 포함하는 내부 네트워크에 포함되어 있는지 또는 상기 서버 외부의 외부 네트워크에 포함되어 있는지를 판단하는 단계와;
    d) 상기 클라이언트가 상기 내부 네트워크에 포함된 경우 상기 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 반환하고, 상기 외부 네트워크에 포함된 경우 상기 에이전트 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 반환하는 단계
    를 포함하는, 통신 방법.
  6. 제5항에 있어서,
    상기 RMI 통신 장치에 저장된 상기 에이전트 서버가 제공하는 함수에 대한 정보는, 상기 서버가 제공하는 함수에 대한 정보를 포함하고, 또한 상기 외부 네트워크에서 액세스 가능한 공인 IP 주소를 포함하며,
    상기 RMI 통신 장치에 저장된 상기 서버가 제공하는 함수에 대한 정보는, 상기 내부 네트워크에서 액세스 가능한 사설 IP 주소를 포함하는, 통신 방법.
  7. 제5항에 있어서,
    상기 에이전트 서버 및 상기 서버는 동일한 컴퓨터 장치에 포함되지만, 서로 다른 자바 가상 머신(JAVA VIRTUAL MACHINE) 상에서 동작하는, 통신 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 에이전트 서버가 제공하는 함수에 대한 정보를 이용하여 함수 호출 결과를 반환하는 단계는,
    상기 에이전트 서버가 (i) 상기 서버로 함수를 호출하는 단계와; (ii) 상기 서버로부터 함수 호출 결과를 수신하는 단계와; (iii) 상기 수신된 함수 호출 결과를 상기 클라이언트로 반환하는 단계
    를 포함하는, 통신 방법.
KR1020140158095A 2014-11-13 2014-11-13 Rmi 통신 방법 및 장치 KR20160057178A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140158095A KR20160057178A (ko) 2014-11-13 2014-11-13 Rmi 통신 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140158095A KR20160057178A (ko) 2014-11-13 2014-11-13 Rmi 통신 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20160057178A true KR20160057178A (ko) 2016-05-23

Family

ID=56104175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140158095A KR20160057178A (ko) 2014-11-13 2014-11-13 Rmi 통신 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20160057178A (ko)

Similar Documents

Publication Publication Date Title
US11909586B2 (en) Managing communications in a virtual network of virtual machines using telecommunications infrastructure systems
JP7073475B2 (ja) 分離仮想ネットワークのためのプライベートエイリアスエンドポイント
US11659441B2 (en) Load balance method and apparatus thereof
EP2556438B1 (en) Reverse dns lookup with modified reverse mappings
US8046480B2 (en) Embedding overlay virtual network addresses in underlying substrate network addresses
US20170163528A1 (en) Authorizing communications between computing nodes
EP1488610B1 (en) System for selecting a connectivity mechanism
CN109451084A (zh) 一种服务访问方法及装置
US11240152B2 (en) Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network
JP4328753B2 (ja) Ipネットワークにおいて、あらゆるタイプのアプリケーションでネットワーク・アドレス変換(nat)を用いる方法、システム及びコンピュー
US7573903B2 (en) IPv6/IPv4 translator
WO2017140216A1 (zh) 一种网络的负载均衡、控制及网络交互方法和装置
EP2782312A1 (en) Method, device and system for realizing private network traversal
KR20040034612A (ko) 무선 장치들과의 양방향 개시 데이터 통신을 위한 방법 및시스템
CN101325552B (zh) 访问请求的三角转发方法和glb服务器
JP2007527068A (ja) 少なくとも2つの計算装置間の接続を設定する際のアドレス及びポート番号アブストラクション
US9386097B2 (en) Using values represented as internet protocol (IP) addresses to access resources in a non-internet protocol address space
CN108011801B (zh) 数据传输的方法、设备、装置及系统
WO2022154700A1 (en) Allocation of a public ip address and a public port number to a node implementing a service
US11108735B2 (en) Mapping subnets in different virtual networks using private address space
KR20160057178A (ko) Rmi 통신 방법 및 장치
US11949660B2 (en) Methods for enabling enhanced firewall rules via ARP-based annotations
JP2008206081A (ja) マルチホーミング通信システムに用いられるデータ中継装置およびデータ中継方法

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination