KR100910370B1 - 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징서비스 기반의 통신 방법 - Google Patents

엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징서비스 기반의 통신 방법 Download PDF

Info

Publication number
KR100910370B1
KR100910370B1 KR1020060075856A KR20060075856A KR100910370B1 KR 100910370 B1 KR100910370 B1 KR 100910370B1 KR 1020060075856 A KR1020060075856 A KR 1020060075856A KR 20060075856 A KR20060075856 A KR 20060075856A KR 100910370 B1 KR100910370 B1 KR 100910370B1
Authority
KR
South Korea
Prior art keywords
message
message server
application
server
memory
Prior art date
Application number
KR1020060075856A
Other languages
English (en)
Other versions
KR20080014325A (ko
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 KR1020060075856A priority Critical patent/KR100910370B1/ko
Publication of KR20080014325A publication Critical patent/KR20080014325A/ko
Application granted granted Critical
Publication of KR100910370B1 publication Critical patent/KR100910370B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 엔터프라이즈 환경에서의 다양한 요구들을 지원하는 기능들을 제공함으로써 각 벤더의 구성에 상관없이 서비스의 품질을 보장할 수 있으며, 기업의 자원을 보다 효율적이고 안전하게 교환하고 처리하도록 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법에 관한 것이다.
본 발명은, 송신 어플리케이션에서 메시지를 생성하여 메시지 서버로 전송하는 메시지 전송단계와, 수신 어플리케이션이 상기 메시지 서버와 접속되지 않은 상태에서 상기 메시지가 메시지 서버에 전송되는 경우에 상기 수신된 메시지를 임시 저장하는 저장단계와, 상기 수신 어플리케이션이 상기 메시지 서버와 접속상태가 되면 상기 저장된 메시지를 상기 수신 어플리케이션으로 전송하여 수신하는 수신단계를 포함하여 이루어지며, 상기 메시지에는, 지속형 가입자(durable subscriber)가 설정되는 것을 특징으로 한다.
엔터프라이즈, 자바, JMS, 어플리케이션, 메시지

Description

엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징 서비스 기반의 통신 방법{Enterprise messaging system and communication method based on enterprise messaging service}
도 1은 본 발명의 바람직한 일 실시예에 따른 엔터프라이즈 메시징 시스템의 구성을 간략히 나타내는 도면이다.
도 2는 메시지의 구조를 나타내는 도면이다.
도 3은 엔터프라이즈 메시징 서비스 기반의 통신 방법에 따른 지속형 가입자(durable subscriber)를 나타내는 도면이다.
도 4는 TTL(time to live)을 포함하는 메시지의 전송단계를 나타내는 도면이다.
도 5는 전송되는 메시지의 량을 조절하는 단계를 나타내는 도면이다.
도 6은 메시지 캐쉬기능이 구현되는 단계를 나타내는 도면이다.
도 7은 메시지의 암호화 단계를 나타내는 도면이다.
도 8은 메시징 시스템에 따른 방화벽 및 NAT를 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
S110: 전송단계 S120: 저장단계
S130: 수신단계
본 발명은 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징 서비스 기반의 통신 방법에 관한 것으로, 엔터프라이즈 환경에서의 다양한 요구들을 지원하는 기능들을 제공함으로써 각 벤더의 구성에 상관없이 서비스의 품질을 보장할 수 있으며, 기업의 자원을 보다 효율적이고 안전하게 교환하고 처리하도록 하는 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징 서비스 기반의 통신 방법에 관한 것이다.
분산 컴퓨팅 환경에서 어플리케이션간의 통신을 위해 다양한 종래기술들이 존재하는데 그 중에 대표적인 방식은 RPC(Remote Procedure Call)로서, 코바(CORBA), 자바 RMI, 마이크로소프트의 DCOM과 같은 미들웨어 기술에 사용되고 있다.
특히, 소프트웨어 공학 영역에서 개념정의에 머물렀던 상기 CORBA(Common Object Request Broker Architecture)/COM(Common Object Model)관련 제품들이 출시되면서 개발자들에게 가시적으로 접근되었다.
이어서, 마이크로소프트 윈도우엔티(WindowsNT)에 포함된 트랜잭션 서비스인 MTS(Microsoft transaction Server)나 썬 오라클이 중심 된 마이크로소프트 진영의 EJB(Enterprise Java Beans), 코바(CORBA)의 OTS(Object Transaction Service)의 분산 트랜잭션 서비스가 지원되기 시작하였다.
그러나 RPC 방식의 경우, 원격 프로시저(remote procedure)가 호출되면 호출한 쪽은 프로시저가 일시 정지되고, 제어가 다시 리턴 될 때까지 작업을 일시 멈춘다. 이렇게 밀접하게 결합하는 RPC의 특성은 시스템을 상호의존적(interdependent)으로 만들어서, 영역별 어플리케이션이 함께 연결된 시스템간의 결합에서는 치명적인 단점을 가지게 된다.
엔터프라이즈 메시징 시스템은 둘 이상의 어플리케이션 사이에서 메시지 형태로 정보를 교환한다. 이때, 메시지는 비즈니스 데이터와 라우팅을 위한 각종 헤더들을 포함하고 있는 독립적인 패키지를 나타낸다.
즉, 엔터프라이즈 메시징의 주요 개념은 메시지가 한 시스템에서 다른 시스템으로 네트워크를 타고 비동기식으로(asynchronously) 전달되며, 한 곳의 장애가 다른 곳의 운영에 영향을 주지 않는다. 이때, 메시지를 비동기식으로 전달한다는 뜻은 보내는 측과 받는 측이 데이터를 받거나 처리할 때 기다릴 필요가 없다는 것을 나타낸다.
이와 같은 엔터프라이즈 메시징 시스템으로는, IMB의 MQ시리즈, 마이크로소프트의 MSMQ, TIBCO의 Rendevous가 이미 수년간 존재해왔으나, 모든 메시징 시스템이 JMS를 지원하는 것은 아니며 또한 JMS는 메시지를 전달하기 위한 표준을 제시할 뿐이어서 각 벤더가 각각 구현하여야 한다는 문제점이 있다.
특히, IBM MQ의 경우, 여러 네트워크 프로토콜, 장애 내성 기능들을 지원하지만 로컬 트랜잭션 만을 지원하므로 2단계 커밋에는 자원으로 참여할 수 없다는 문제점이 있으며, 소닉MQ는 유일하게 성능비교 도구를 지원하지만 IBM MQ와 마찬가 지로 XA 인터페이스에 대한 지원이 없으며 대량으로 메시지가 들어오는 경우에 대한 제어방법을 가지고 있지 않다는 문제점이 있다.
iBus의 경우에는, 트랜잭션 뿐만 아니라 메시지를 보관하는 방법조차도 지원하지 않고 있다. 또한, JMQ에는 관리 객체에 대한 접근 제어 방법이 없으며 메시지의 유효기간 등을 설정할 수가 없다. 이와 같이 벤더들의 제품에는 많은 제약이 있으며 성능향상 등 서비스 품질을 제어할 만한 요소도 갖추고 있지 못한다는 문제점이 있다.
상기와 같은 문제점을 해결하기 위해 본 발명은 엔터프라이즈 환경에서의 다양한 요구들을 지원하는 기능들을 제공함으로써 각 벤더의 구성에 상관없이 서비스의 품질을 보장할 수 있으며, 기업의 자원을 보다 효율적이고 안전하게 교환하고 처리하도록 하는 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징 서비스 기반의 통신 방법을 제공하는 것을 그 목적으로 한다.
본 발명의 다른 목적은 다른 벤더의 메시징 시스템과도 유연하게 결합될 수 있으므로 JMS(Java message service)의 위치 투명성과 융통성을 통해 엔터프라이즈 시스템을 쉽게 통신망에 접속하거나 접속해제할 수 있도록 하는 엔터프라이즈 메시징 시스템을 제공하는 것이다.
상술한 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면 엔터프라이즈 메시징 서비스 기반의 통신 방법은, 송신 어플리케이션에서 메시지를 생성하여 메시지 서버로 전송하는 메시지 전송단계와, 수신 어플리케이션이 상기 메시지 서버와 접속되지 않은 상태에서 상기 메시지가 메시지 서버에 전송되는 경우에 상기 수신된 메시지를 임시 저장하는 저장단계와, 상기 수신 어플리케이션이 상기 메시지 서버와 접속상태가 되면 상기 저장된 메시지를 상기 수신 어플리케이션으로 전송하여 수신하는 수신단계를 포함하여 이루어지며, 상기 수신 어플리케이션은 지속형 가입자(durable subscriber)로 설정되는 것을 특징으로 한다.
또한, 본 발명의 다른 측면에 따르면, 엔터프라이즈 메시징 서비스 기반의 통신 방법은, 키스토어(keystore), 인증서 및 트러스트스토어(truststore)를 메시지 서버에 생성하는 생성단계와, 상기 생성단계에서 생성된 트러스트스토어를 상기 수신 어플리케이션에 배포하는 배포단계와, 상기 수신 어플리케이션으로부터 상기 메시지 서버에 연결요청이 이루어지면, 메시지 서버로부터 수신 어플리케이션으로 인증서를 전송하는 전송단계와, 상기 전송단계에서 전송된 인증서와 트러스트스토어의 동일여부를 체크하여 암호화된 메시지를 메시지 서버로 송수신하는 송수신단계를 포함하는 것을 특징으로 한다.
또한, 본 발명의 또 다른 측면에 따르면, 엔터프라이즈 메시징 서비스 기반의 통신 방법은, 송신 어플리케이션으로부터 메시지를 추가하는 메시지추가단계와; 추가된 현재 메시지의 메모리가 하이메모리보다 크다면 소프튼 레퍼런스(soften reference) 심각도(severity)를 계산하는 제1계산단계와; 상기 계산단계에서 계산된 심각도에 따라 소프튼(soften) 값을 계산하는 제2계산단계와; 상기 제2계산단계에서 계산된 소프튼값이 1보다 크다면 제2메모리부에 메시지를 저장하는 저장단계 를 포함하여 이루어지는 것을 특징으로 한다.
또한, 본 발명의 또 다른 측면에 따르면, 엔터프라이즈 메시징 시스템은, 메시지를 생성하여 메시지 서버로 전송하는 송신 어플리케이션부와, 상기 송신 어플리케이션부로부터 전송된 메시지를 저장하는 메시지 서버와, 상기 메시지 서버에 저장된 메시지를 수신하는 수신 어플리케이션부와, 상기 메시지에는, 지속형 가입자(durable subscriber)가 설정되며, 상기 메시지 서버에는 메시지의 수용가능한 메모리값을 하이메모리와 최대메모리로 설정하고, 상기 메시지가 하이메모리와 최대메모리 사이에 있게 되면, 상기 메시지를 제2저장부에 저장하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 엔터프라이즈 메시징 시스템의 구성을 간략히 나타내는 도면이고, 도 2는 메시지의 구조를 나타내는 도면이다.
먼저, 도 1 및 도 2를 참조하여 JMS 메시징 시스템의 기본적인 특징을 간략히 언급하면 다음과 같다.
JMS(Java Message Service) 메시징 시스템은 시스템이 일부 장애를 겪더라도 메시지를 받을 수 있도록 보장하는 “보장된 전달”(guaranteed delivery) 방식을 제공한다.
보장된 전달 방식이란, 메시지를 수신하는 측에 문제가 발생하더라도 메시지 서버가 수신된 메시지를 영속 기억장치에 “저장 후 전달”(stored-and-forward) 방법을 사용하는 것을 의미한다. 수신측 어플리케이션이 나중에 수신 가능해지면 “저장 후 전달” 매커니즘으로 부재기간 동안의 모든 메시지를 전달 받게 된다.
이러한 메시징 시스템에는 목적지(Destination)라는 가상채널이 존재하는데 “Queue”는 1:1 방식이며 “Topic”은 1:N 방식이다. 이러한 JMS는 메시지에 대한 구조를 정의하고 있으며 다양한 메시지 타입(text, object, byte, stream)을 제공한다.
이때, 메시지의 헤더(header) 및 속성을 통해 메시지를 선택적으로 수신할 수 있으며, 트랜잭션, 확인응답, 재전송, 메시지 브라우징 등의 기능을 가지고 있다. 한편, JMS의 표준은 Weblogic, jeus 등 이미 타 벤더에서도 기 구현되어 있으므로 상세한 설명은 생략한다.
본 발명의 일 실시예에 따른 엔터프라이즈 메시징 시스템은 송신 어플리케이션부(10), 메시지 서버(20), 수신 어플리케이션부(30)를 포함한다.
송신 어플리케이션부(10)는 TTL(time to live)을 포함하는 메시지를 생성하여 메시지 서버로 전송한다. 메시지 생성 시 TTL 값이 없으면 자동으로 0으로 설정된다.
메시지 서버(20)는 송신 어플리케이션부(10)로부터 전송된 메시지를 저장하며, 최대 메시지 개수(Max depth)를 설정하여 전송되는 메시지의 량을 조절한다.
또한, 메시지 서버(20)는 키스토어(keystore) 및 트러스트스토어(truststore)를 포함하는 SSL(Secure Sockets Layer)를 통해 통신 레이어 상에서의 암호화를 지원하며, 다른 리소스 간에 2pc(two phase commit)를 지원함으로써 분산 트랜잭션을 지원한다.
또한, 메시지 서버(20)에는 메시지의 수용가능한 메모리값을 하이메모리(Highmemory)와 최대메모리(Maxmemory)로 설정하고, 메시지가 하이메모리와 최대메모리 사이에 있게 되면, 메모리 심각도를 계산하여 일정량의 메시지를 캐쉬부(22, Cache)에 저장하여 메모리 부족 현상을 미연에 방지한다.
수신 어플리케이션부(30)는 메시지 서버(20)에 저장된 메시지를 수신한다. 이때, 수신 어플리케이션부(30)는 지속형 가입자(durable subscriber) 형식으로 생성되어야 계속해서 메시지를 수신할 수 있다. 이는 메시지 서버에 연결 요청 시 수신 어플리케이션의 타입을 지속형 가입자(durable subscriber)라고 알려주면 된다. 여기서, 지속형 가입자(durable subscriber)란 메시지 서버에서 메시지를 수신하기 위한 수신 어플리케이션들을 지칭하는 것으로서, 메시지 서버에 지속적으로 연결되어서 자신에 해당하는 메시지가 메시지 서버에 존재하면, 즉시 이를 수신해 가는 어플리케이션들이다.
한편, 메시징 시스템은 엔터프라이즈 환경에서 방화벽뿐만 아니라 NAT(Network Address Translation)를 지원한다.
즉, 외부 어플리케이션(도8의 40)이 상기 메시징 시스템에 접속되는 경우에는, NAT(network address translation)환경에서 네이밍 스터브(Naming stub)에 공인 IP정보가 포함되고, 내부 어플리케이션(50)의 네이밍 스터브(Naming stub)에는 공인 IP를 사설 IP로 변경되도록 하는 것이 바람직하다.
이하, 도 1 및 도 3 내지 도 8을 참조하여 본 발명의 일 실시예에 따른 엔터프라이즈 메시징 서비스 기반의 통신 방법을 설명하는데, 도 3은 엔터프라이즈 메시징 서비스 기반의 통신 방법에 따른 지속형 가입자(Durable subscriber)를 나타내는 도면이고, 도 4는 TTL(time to live)을 포함하는 메시지의 전송단계를 나타내는 도면이며, 도 5는 전송되는 메시지의 량을 조절하는 단계를 나타내는 도면이고, 도 6은 메시지 캐쉬기능이 구현되는 단계를 나타내는 도면이며, 도 7은 메시지의 암호화 단계를 나타내는 도면이고, 도 8은 메시징 시스템에 따른 방화벽 및 NAT를 나타내는 도면이다.
도 1 및 도 3을 참조하면, 엔터프라이즈 메시징 서비스 기반의 통신 방법은, 전송단계(S110), 저장단계(S120) 및 수신단계(S130)를 포함한다.
전송단계(S110)는 송신 어플리케이션에서 메시지를 생성하여 메시지 서버로 전송하며, 저장단계(S120)는 수신 어플리케이션이 상기 메시지 서버와 접속되지 않은 상태에서 메시지가 메시지 서버에 전송되는 경우에 전송된 메시지를 임시 저장한다.
수신단계(S130)는 수신 어플리케이션이 메시지 서버와 접속상태가 되면 저장된 메시지를 메시지 서버로부터 수신 어플리케이션으로 전송하여 수신한다.
이때, 수신 어플리케이션이 메시지 서버의 Queue에서 메시지를 수신할 시 별다른 설정이 필요 없으나, Topic에서 메시지를 수신할 시 수신 어플리케이션의 타입이 지속형 가입자(durable subscriber)라야 한다. 즉, 지속형 가입자(durable subscriber, 상기 수신 어플리케이션)가 일단 메시징 시스템에 등록 된 이후 장애가 발생하더라도 메시징 시스템은 이 정보를 유지하여 나중에 수신 어플리케이션이 정상화되었을 때 메시지를 수신할 수 있도록 한다.
도 4를 참조하여 TTL(time to live)을 포함하는 메시지의 전송단계를 설명하며, 동기 방식에서 메시지를 생성할 때 메시지의 TTL을 설정한 후 메시지를 메시지 서버에 전송하고, 메시지 서버에서의 시간을 기준으로 일정시간이 경과하면 상기 메시지가 삭제되도록 한다.
이는 송신 측에서 메시지를 생성할 때 메시지의 TTL을 설정함으로써 타임아웃(timeout)과 동시에 메시지가 자동 삭제 되도록 한다. 즉, 메시지의 유효기간(expiration = currentTime + TTL)을 표시한다.
일례로 메시지의 TTL을 30초라고 가정하면 TTL 값은 30000(ms 단위)로 설정되며 메시지 서버의 현재시간은 long type의 값으로 변환된 시간인데, 예를 들어 2006년 07월 21일 15시 58분 23초는 1153465102781 이다. 이 두 값을 더하면 메시지의 유효시간이 1153465132781 된다. 이 값은 2006년 07월 21일 15시 58분 53초를 나타내는 것으로서 이 시간에 여전히 메시지가 메시지 서버에 남아있다면(어느 수신 시스템도 메시지를 받아가지 않음을 나타냄) 메시지는 자동으로 소멸된다. TTL 값을 설정하지 않고 메시지를 송신측에서 보내면 자동으로 0으로 설정되는데 이는 유효기간이 없음을 의미하며 어느 수신 시스템도 메시지를 받아가지 않으면 메시지 서버에 영구적으로 존재함을 나타낸다.
도 5를 참조하여 전송되는 메시지의 량을 조절하는 단계를 설명하면, JMS 메시징 시스템의 구조상 수신 어플리케이션에 장애가 발생하더라도 송신 어플리케이션은 계속해서 메시지를 전송하게 된다.
즉, 저장-후-전송(store-and-forward) 매커니즘으로 인해 메시징 시스템은 계속해서 메시지를 저장하게 되며 이는 서버의 과부하로 인해 장애를 유발할 수 있는 심각한 상황에 직면하게 되므로 이를 해결하기 위해 JMS에서 Queue라고 불리는 목적지(destination)에 받아들일 수 있는 최대 메시지 개수(Max Depth)를 설정한 다.
메시징 시스템에 존재하는 메시지의 개수가 최대 메시지 개수(Max Depth) 이상이 되면 더 이상 받아들이지 않도록 거부하게 되며 메시징 시스템 자체가 장애가 되는 상황을 미연에 방지할 수 있게 된다.
즉, 메시지가 목적지(destination)에 받아들여지는 최대 메시지 개수(Max depth)를 설정하여, 메시징 시스템상에 존재하는 메시지가 최대 메시지 개수보다 많아지면 상기 메시지의 전송을 차단하도록 한다.
이때, 최대 메시지 개수(Max Depth)는 메시지 한 개의 사이즈와 메시징 시스템의 시스템 사양(Memory)을 고려하여 설정되는 것이 바람직하다.
도 6을 참조하여 메시지 캐쉬기능이 구현되는 단계를 설명하면, 송신 어플리케이션으로부터 메시지를 추가하고(S610), 메시지가 추가됨으로 인해 메시지 서버의 메모리가 하이메모리보다 크다면 소프튼 레퍼런스(soften reference) 심각도(severity)를 계산한다(S620). 심각도의 계산식은 [(현재메모리 - 하이메모리) / (최대메모리 - 하이메모리)]로서 0 ~ 1 사이의 값을 갖게 된다(실제 계산된 심각도가 1 이상이어도 1로 본다).
상기 S620단계에서 계산된 심각도(0 ~ 1)에 따라 소프튼(soften) 값(전체 메시지 수 * 심각도(severity) - 기존 소프튼 레퍼런스(soften reference) 메시지 수)을 계산하고(S630), S630단계에서 계산된 소프튼값이 1보다 크다면 캐쉬부에 메시지를 저장한다(S640). 소프튼 값은 캐쉬부로 저장할 메시지의 수를 의미하며 어떤 메시지를 캐쉬부로 보낼지 여부는 LRU(Least Recently Used) 캐쉬알고리즘으로 선택된다.
즉, 메시지 시스템에서 사용할 수 있는 전체 메모리 값을 기준으로 하이메모리(HighMemory), 최대메모리(MaxMemory) 값을 설정하여 LRU(Least Recently Used) 캐쉬알고리즘으로 계산된 메시지들을 소프튼 레퍼런스(soften reference)로 표기하여 JVM의 GC(Garbage Collection)때 메모리에서 캐쉬부(제2저장부(File or DB))로 내려 보낸다.
이에 따라, 메시징 시스템의 메모리가 하이메모리(HighMemory)와 최대메모리(MaxMemory) 사이에 있으면 메시지가 소프튼 레퍼런스(soften reference) 대상이 된다.
이때, 메모리값은 메시징 시스템이 차지하는 전체메모리의 70%~80%, 80%~90% 수준으로 설정하는 것이 바람직하다.
일례로 전체 사용가능한 메시지 서버의 메모리 량을 60MB, 메시지 서버로 전송된 메시지의 수는 1000개로 50MB를 차지한다고 가정하면, 하이메모리는 60MB의 80%인 48MB, 최대메모리는 90%인 54MB이다. 이를 통해 심각도를 계산하면 (50 - 48) / (54 - 48) = 약 0.333이 된다. 따라서 소프튼 레퍼런스로 표기해야 할 전체 메시지 개수는 (1000 * 0.333) = 약 333이 된다. 이러한 매커니즘이 매 메시지가 전송될 때 마다 동작하므로 소프튼 레퍼런스로 이미 표기된 메시지 들이 존재할 수 있으며 이 값을 300이라고 했을 때 최종적으로 소프튼 값은 (333 - 300) = 33이 된다. 따라서 33개의 메시지를 메모리에서 캐쉬부로 내려 보내야 하는데, 1000개 중 33개의 메시지는 LRU 알고리즘에 의해 선택된다.
도 7을 참조하여 메시지의 암호화 단계를 설명하면, 자바 키툴(java keytool)에 의해 키스토어(keystore), 인증서 및 트러스트스토어(truststore)가 메시지 서버에 생성된다(S710). 상기 생성단계에서 생성된 트러스트스토어를 수신 어플리케이션에 배포한다(S720).
수신 어플리케이션으로부터 상기 메시지 서버에 연결요청이 이루어지면, 메시지 서버로부터 수신 어플리케이션으로 인증서를 전송한다(S730). S730단계에서 전송된 인증서와 트러스트스토어의 동일여부를 체크하여 암호화된 메시지를 메시지 서버로 송수신한다(S740).
즉, 사용자 인증, 메시지 암호화 이외에 통신 레이어 상에서의 SSL(Secure Sockets Layer)와 같은 암호화가 지원되며, SSL은 connection-oriented network layer protocol (e.g. TCP/IP)와 Application protocol layer (e.g. HTTP) 사이에 위치하는 프로토콜 레이어상에서 상호 인증, 무결성을 위한 전자 서명의 사용, 프라이버시를 위한 암호화 등을 통해 클라이언트와 서버간의 안전한 통신을 제공한다.
도 8을 참조하여 메시징 시스템에 따른 방화벽 및 NAT를 통한 접속을 설명하면, 외부 어플리케이션이 메시징 시스템에 접속되는 경우에는, NAT(network address translation)환경에서 외부 어플리케이션(40)의 네이밍 스터브(Naming stub)에 공인 IP정보가 포함되고, 내부 어플리케이션(50)의 네이밍 스터브(Naming stub)에는 공인 IP를 사설 IP로 변경되도록 한다.
방화벽은 조직간 게이트웨어 및 인터넷과 같은 네트워크의 경계 역할을 한 다. 이 게이트웨어가 들어오고 나가는 모든 메시지를 걸러준다. 대부분의 경우, 방화벽은 HTTP의 흐름을 아무런 제한 없이 허용한다. JMS 프로토콜은 HTTP가 아니므로 HTTP 터널링 기법을 사용한다.
즉, JMS가 자신의 프로토콜을 HTTP 위에 실어 방화벽을 통과하는 방법으로 메시지를 교환방법으로서 프로토콜이 HTTP 안에 포함되기 때문에 방화벽에게는 숨겨져서 효과적으로 방화벽이 모르게 통신할 수 있다.
JMS의 표준은 JNDI를 통한 연결객체 접근 방식을 택하고 있다. 실제 객체에 대한 접근 정보를 스터브(Stub)에 담아두고 스터브를 리턴하게 되는데 스터브에 사설IP 정보가 담겨있음으로 인해 메시징 시스템에 접근할 수 없는 경우가 발생된다(NAT 환경에서 메시징 시스템은 공인IP를 통해 접근이 가능함).
스터브를 공인IP 정보로 바꿔버리면 반대로 방화벽 외부의 클라이언트 어플리케이션은 접근이 가능하나 내부의 클라이언트 어플리케이션은 접근 불가가 되는 상황이 발생하게 된다. 이러한 모순을 해결하기 위해 스터브에 공인IP 정보를 담게 하고(외부 클라이언트 접근 가능), 내부 클라이언트의 경우 환경설정을 통해 공인IP를 사설IP로 변경한다.
또한, 메시징 시스템은 분산 트랜잭션(XA Transaction)을 지원할 수 있어야 한다. 분산 트랜잭션은 서로 다른 리소스 간에 2pc(Two phase commit)를 지원함을 의미하며, 분산 트랜잭션은 트랜잭션에 참여하는 리소스(JMS, DB 등)가 XA API를 지원해야만 가능하며, DB의 경우도 메이저 벤더 이외에는 지원하지 않고 있는 실정이다. 본 발명은 SUN사의 J2EE의 표준 API인 XA API를 자바를 통해 구현하였으며, 이를 통해 서로 다른 리소스가 한쪽에는 들어가고 다른 한쪽에는 들어가지 않는 등의 데이터 불일치를 없앨 수 있다. 또 다른 예로, 메시지 서버에서 메시지를 수신 후 DB에 데이터를 넣는 작업을 하나의 트랜잭션으로 처리해야 하는 업무가 있다고 가정할 때, 메시지 서버에 XA가 구현되어 있지 않고 DB가 장애상황인 경우, 메시지는 수신하고 DB에는 반영이 되지 않는 (즉 메시지가 사라짐) 상황이 발생한다. 하지만 본 발명의 XA transaction 기능을 이용하면 어느 한쪽의 장애 시 두 리소스 모두 동시에 롤백이 되어(메시지 서버에 메시지가 저장되어 있음) 데이터 무결성을 유지할 수 있고 메시지를 재전송할 수 있게 되는 것이다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다.
상술한 바와 같이, 본 발명에 의한 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징 서비스 기반의 통신 방법은 엔터프라이즈 환경에서의 다양한 요구들을 지원하는 기능들을 제공함으로써 각 벤더의 구성에 상관없이 서비스의 품질을 보장할 수 있으며, 기업의 자원을 보다 효율적이고 안전하게 교환하고 처리하도록 한다.
또한, 다른 벤더의 메시징 시스템과도 유연하게 결합될 수 있으므로 JMS(Java message service)의 위치 투명성과 융통성을 통해 엔터프라이즈 시스템을 쉽게 통신망에 접속하거나 접속해제할 수 있다.
또한, 본 발명의 메시징 시스템은 XA API를 구현해 놓음으로써 전달 보장 및 장애 상황 시 롤백 혹은 데이터 보존 등의 기능 향상을 통해 보다 견고한 메시징 시스템이 되도록 한다.

Claims (13)

  1. 엔터프라이즈 메시징 서비스 기반의 통신 방법에 있어서,
    송신 어플리케이션에서 메시지를 생성하여 메시지 서버로 전송하는 메시지 전송단계와;
    상기 메시지 서버와 수신 어플리케이션이 접속되지 않은 상태에서 상기 메시지가 메시지 서버에 전송되는 경우에 전송된 메시지를 상기 메시지 서버가 임시 저장하는 저장단계와;
    수신 어플리케이션이 상기 메시지 서버와 접속상태가 되면 상기 메시지 서버에 저장된 메시지를 수신 어플리케이션으로 전송하여 상기 수신 어플리케이션에서 수신하는 수신단계를 포함하여 이루어지며,
    상기 메시지에는, 지속형 가입자(durable subscriber)가 설정되며,
    상기 메시지가 목적지(destination)에 받아들여지는 최대 메시지 개수(Max depth)를 설정하여, 엔터프라이즈 메시징 서비스를 구현하는 메시징 시스템상에 존재하는 메시지가 상기 최대 메시지 개수보다 많아지면 상기 메시지의 전송을 차단하는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  2. 제1항에 있어서,
    동기 방식에서, 상기 메시지가 생성될 때 메시지의 유효시간(time to live)을 설정하고, 메시지 서버의 시간을 기준으로 일정시간이 경과하면 상기 메시지가 삭제되도록 하는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 메시지 서버의 제1저장부에 저장되는 메시지의 수용가능한 메모리값을 하이메모리와 최대메모리로 설정하고, 상기 메시지가 하이메모리와 최대메모리 사이에 있게 되면, 상기 메시지를 캐쉬부에 저장하여 상기 메시징 시스템의 메모리 한계를 증가시키는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  5. 제1항에 있어서,
    상기 메시지는 키스토어(keystore) 및 트러스트스토어(truststore)를 통해 상호인증을 하는 SSL(secure sockets layer)를 기반으로 통신 레이어 상에서 암호화가 실행되는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  6. 제5항에 있어서,
    상기 암호화가 실행되는 것은,
    자바 키툴(java keytool)에 의해 상기 키스토어(keystore), 인증서 및 트러스트스토어(truststore)가 메시지 서버에 생성되는 생성단계와;
    상기 생성단계에서 생성된 트러스트스토어를 수신 어플리케이션에 배포하는 배포단계와;
    수신 어플리케이션으로부터 상기 메시지 서버에 연결요청이 이루어지면, 메시지 서버로부터 수신 어플리케이션으로 인증서를 전송하는 전송단계와;
    상기 전송단계에서 전송된 인증서와 트러스트스토어의 동일여부를 체크하여 암호화된 메시지를 메시지 서버로 송수신하는 송수신단계를 포함하는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  7. 제1항에 있어서,
    상기 메시지는 서로 다른 리소스 간에 2pc(two phase commit)을 지원하는 분산 트랜잭션(XA transaction)에 의해 전송되는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  8. 제1항에 있어서,
    외부 어플리케이션이 메시징 시스템에 접속되는 경우에는, NAT(network address translation)환경에서 네이밍 스터브(Naming stub)에 공인 IP정보가 포함되고, 내부 어플리케이션의 네이밍 스터브(Naming stub)에는 공인 IP를 사설 IP로 변경되도록 하는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방 법.
  9. 엔터프라이즈 메시징 서비스 기반의 통신 방법에 있어서,
    키스토어(keystore), 인증서 및 트러스트스토어(truststore)를 메시지 서버에 생성하는 생성단계와;
    상기 생성단계에서 생성된 트러스트스토어를 수신 어플리케이션에 배포하는 배포단계와;
    수신 어플리케이션으로부터 상기 메시지 서버에 연결요청이 이루어지면, 메시지 서버로부터 수신 어플리케이션으로 인증서를 전송하는 전송단계와;
    상기 전송단계에서 전송된 인증서와 트러스트스토어의 동일여부를 체크하여 암호화된 메시지를 메시지 서버로 송수신하는 송수신단계를 포함하는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  10. 엔터프라이즈 메시징 서비스 기반의 통신 방법에 있어서,
    송신 어플리케이션으로부터 메시지 서버에 메시지를 추가하는 메시지추가단계와;
    추가된 메시지 서버의 메모리가 하이메모리보다 크다면 소프튼 레퍼런스(soften reference) 심각도(severity)를 계산하는 제1계산단계와;
    상기 제1계산단계에서 계산된 심각도에 따라 소프튼(soften) 값을 계산하는 제2계산단계와;
    상기 제2계산단계에서 계산된 소프튼값이 1보다 크다면 캐쉬부에 메시지를 저장하는 저장단계를 포함하여 이루어지는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  11. 제10항에 있어서,
    상기 메시지 서버의 메시지가 하이메모리와 최대메모리 사이에 있게 되면, 상기 메시지를 캐쉬부에 저장하여 상기 메모리의 한계를 증가시키는 것을 특징으로 하는 엔터프라이즈 메시징 서비스 기반의 통신 방법.
  12. 엔터프라이즈 메시징 시스템에 있어서,
    메시지를 생성하여 메시지 서버로 전송하는 송신 어플리케이션부와;
    상기 송신 어플리케이션부로부터 전송된 메시지를 저장하는 메시지 서버와;
    상기 저장된 메시지를 메시지 서버로부터 수신하는 수신 어플리케이션부와;
    상기 메시지에는, 지속형 가입자(durable subscriber)가 설정되며, 상기 메시지 서버에는 메시지의 수용가능한 메모리값을 하이메모리와 최대메모리로 설정하고, 상기 메시지가 하이메모리와 최대메모리 사이에 있게 되면, 상기 메시지를 제2저장부에 저장하는 것을 특징으로 하는 엔터프라이즈 메시징 시스템.
  13. 제12항에 있어서,
    외부 어플리케이션이 상기 메시징 시스템에 접속되는 경우에는, NAT(network address translation)환경에서 외부 어플리케이션의 네이밍 스터브(Naming stub)에 공인 IP정보가 포함되고, 내부 어플리케이션의 네이밍 스터브(Naming stub)에는 공인 IP를 사설 IP로 변경되도록 하는 것을 특징으로 하는 엔터프라이즈 메시징 시스템.
KR1020060075856A 2006-08-10 2006-08-10 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징서비스 기반의 통신 방법 KR100910370B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060075856A KR100910370B1 (ko) 2006-08-10 2006-08-10 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징서비스 기반의 통신 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060075856A KR100910370B1 (ko) 2006-08-10 2006-08-10 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징서비스 기반의 통신 방법

Publications (2)

Publication Number Publication Date
KR20080014325A KR20080014325A (ko) 2008-02-14
KR100910370B1 true KR100910370B1 (ko) 2009-08-04

Family

ID=39341633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060075856A KR100910370B1 (ko) 2006-08-10 2006-08-10 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징서비스 기반의 통신 방법

Country Status (1)

Country Link
KR (1) KR100910370B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102340843B1 (ko) * 2015-06-15 2021-12-21 네이버 주식회사 데이터 송신 서비스 제공 장치, 방법, 및 컴퓨터 프로그램

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050103151A (ko) * 2004-04-23 2005-10-27 엘지전자 주식회사 서로 다른 메시징 서비스의 상호연동 방법
KR20070075637A (ko) * 2006-01-13 2007-07-24 케이티하이텔 주식회사 예약전송이 가능한 메신저 서비스 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050103151A (ko) * 2004-04-23 2005-10-27 엘지전자 주식회사 서로 다른 메시징 서비스의 상호연동 방법
KR20070075637A (ko) * 2006-01-13 2007-07-24 케이티하이텔 주식회사 예약전송이 가능한 메신저 서비스 시스템 및 방법

Also Published As

Publication number Publication date
KR20080014325A (ko) 2008-02-14

Similar Documents

Publication Publication Date Title
US6415318B1 (en) Inter-enterprise messaging system using bridgehead servers
US7305445B2 (en) Indirect disposable email addressing
US7912896B2 (en) Data access, replication or communication system comprising a distributed software application
US8301711B2 (en) Electronic mail communications system with client email internet service provider (ISP) polling application and related methods
US7657638B2 (en) Routing client requests to back-end servers
US7065547B2 (en) Integrated on-line system with enchanced data transfer protocol
US20050132065A1 (en) Using virtual network address information during communications
US20030054810A1 (en) Enterprise mobile server platform
CN113508563A (zh) 基于区块链的安全电子邮件系统
JP2001203745A (ja) メッセージ伝送システム、メッセージ仲介装置及びメッセージ伝送方法
KR20010062065A (ko) 순간 메시징을 위한 프로토콜
Fong et al. Towards an open protocol for secure online presence notification
US7899907B2 (en) Access and synchronization with enterprise applications using remote hosted solution
Brown et al. A proxy approach to e‐mail security
EP3528452B1 (en) Harvesting and distributing a certificate based on a dns name
US6560650B1 (en) Computer system for controlling a data transfer
KR100910370B1 (ko) 엔터프라이즈 메시징 시스템 및 엔터프라이즈 메시징서비스 기반의 통신 방법
WO2004095796A1 (en) A data access, replication or communication system comprising a message queuing communications platform
EP3528453B1 (en) Harvesting and distributing a certificate based on a dns name
US20050015617A1 (en) Internet security
Anderson et al. A basis for secure communication in large distributed systems
JP2003134167A (ja) 電子メール配送サーバ
Foltz et al. Maintaining high assurance in asynchronous messaging
KR101965307B1 (ko) 메시지 처리 장치
KR101965306B1 (ko) 메시지 서버 및 이를 포함하는 메시지 처리 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
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: 20130722

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140610

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151002

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee