아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이제, 첨부한 도면을 참조로 하여 본 발명의 실시 예에 따른 비연결식 접속 관리 방법을 설명한다. 도 1은 본 발명을 설명하기 위한 개념도로서, 사용자가 3명인 경우를 일 예로 설명한다. 물론 본 발명의 서비스 대상인 사용자는 숫자에 한정되지 않으며 본 발명의 네트워크 시스템에 접속 가능한 모든 사용자 단말을 그 서비스 대상으로 한다.
통상의 방법으로 사용자 단말(1, 2, 3)은 본 발명의 네트워크 시스템(20)을 이용하기 위해서 네트워크 시스템(20)에 접속한다. 이때 네트워크 시스템(20)에 접속하는 순서는 사용자 단말(1)이 제일 빠르고 다음으로 사용자 단말(2), 그 다음으로 사용자 단말(3)의 순서라고 가정한다.
그러면 네트워크 시스템(20)은 접속 순서에 따라 사용자 단말(1), 사용자 단말(2), 사용자 단말(3)의 순서로 각각 대기 시간(T1 또는 T2 또는 T3)을 포함하는 대기알림 메시지를 전송한다. 여기서 대기알림 메시지는 네트워크 시스템(20)의 가용 리소스(사용자 단말에게 할당 가능한 리소스)가 없어 리소스를 할당하지 못하는 사용자 단말에게 제공된다.
대기알림 메시지는 대기를 지시하는 대기 식별자를 포함하며, 대기 식별자는 대기알림 메시지의 헤더 정보에 포함되거나, 대기알림 메시지의 페이로드(payload)에 포함된다. 대기 식별자는 네트워크 시스템(20)으로의 접속 대기를 지시하는 역할을 가진다.
따라서 사용자 단말(1, 2, 3)은 대기알림 메시지를 수신하면 네트워크 시스템(20)으로의 접속을 해지하고, 대기 시간 동안만큼 대기한 후 네트워크 시스템(20)에 재접속한다. 여기서 사용자 단말과 네트워크 시스템 간의 접속 해지는 사용자 단말의 주도하에 이루어질 수 있고, 또는 네트워크 시스템의 주도하에 이루어질 수 있다.
한편 사용자 단말(1, 2, 3)에게 제공되는 대기 시간(T1, T2, T3)는 동일할 수 있으며, 동일하지 않을 수 있다.
대기 시간(T1, T2, T3)이 동일한 경우에 대기 시간은 디폴트(default)로 설정된 값인 것이 양호하다. 대기 시간(T1, T2, T3)이 동일하더라도 사용자 단말(1, 2, 3)은 네트워크 시스템(20)으로의 접속 시간이 다르고, 그에 따라 네트워크 시스템(20)에서 사용자 단말(1, 2, 3) 각각에 대기 시간을 제공하는 시점이 다르므로, 대기 시간에 따른 사용자 단말(1, 2, 3)의 접속은 서로 다르게 된다.
대기 시간(T1, T2, T3)이 다른 경우에 대기 시간은 리소스 사용 상태에 따라 결정되는 것이 양호하며, 접속이 늦을수록 대기 시간이 긴 것이 양호하다. 예컨대,사용자 단말(1)에 제공된 대기 시간(T1)은 가장 길고, 사용자 단말(2)에 제공된 대기 시간(T2)는 대기 시간(T1)보다 짧으며, 사용자 단말(3)에 제공된 대기 시간(T3)은 가장 짧다.
결국, 대기 시간이 동일하거나 다르더라도 사용자 단말(1)의 재접속은 사용자 단말(2, 3)보다 빠르고, 사용자 단말(2)의 재접속은 사용자 단말(3)보다 빠르게 된다.
물론 대기 시간은 당장 리소스 할당을 할 수 없는 사용자 단말에게 제공되고,대기알림 메시지를 통해 사용자 단말에게 제공된다.
이상을 통해 보면 본 발명은 접속한 순서에 따라 사용자 단말에게 리소스를 할당하고, 리소스가 부족한 상황에서 사용자 단말에게 네트워크 시스템(20)간의 접속을 해지하도록 하여 짧은 시간 동안에 이루어지는 많은 접속에 대해서는 네트워크 시스템(20)을 보호할 수 있게 한다.
한편, 본 발명을 위해서 네트워크 시스템(20)은 대기 시간을 산출하거나 리 소스를 할당하기 위해서 사용자 단말의 접속 순서를 파악하고 있어야 한다.
이를 위해 네트워크 시스템(20)은 사용자 단말이 접속하면 접속한 사용자 단말의 고유 식별자(예; IP 주소, 이동전화번호 등)을 파악하고, 파악한 고유 식별자에 매칭하여 내부적으로 중복되지 않는 최소의 접속 순번(예; 1번, 10번, 234번, 999번 등)을 부여한다. 여기서 중복되지 않는 최소의 접속 순번이란 다른 사용자 단말에게 부여하지 않은 접속 순번 중에서 가장 최소 번호를 의미하며, 아울러 접속 순번이 일정 규칙에 따라 부여됨을 의미한다. 일정 규칙이란 1, 2, 3과 같이 1씩 증가하는 규칙 또는, 1, 3, 5, 7, 9와 2, 4, 6, 8과 같이 2씩 증가하는 규칙 등을 의미한다.
그리고 네트워크 시스템(20)은 사용자 단말의 접속시에 사용자 단말의 고유 식별자를 파악하고 고유 식별자에 매칭된 접속 순번을 파악하는 것으로 사용자 단말의 접속 순서를 알게 되며, 그에 따라 리소스를 접속 순번에 따라 할당한다.
물론 네트워크 시스템(20)은 접속 순번을 대기 식별자에 포함시켜 사용자 단말에 제공하고, 사용자 단말이 재접속시에 접속 순번을 네트워크 시스템(20)에 제공하도록 할 수 있다.
한편, 본 발명은 대기 시간을 길게 충분히 길게 하여 네트워크 시스템(20)이 충분히 리소스를 확보할 수 있도록 할 수 있다. 그러나 이렇게 되면 늦게 접속한 사용자일수록 대기 시간이 무척이나 길어져 사용자가 서비스를 이용하지 않고 나가버리는 경우가 발생한다. 또한 본 발명은 대기 시간을 충분히 짧게 하여 네트워크 시스템(20)이 리소스를 확보하는 즉시 사용자가 리소스를 이용하도록 할 수 있다. 그러나 이 경우에 네트워크 시스템(20)은 빠른 시간내에 리소스를 확보하지 못하면 사용자의 잦은 접속을 처리해야 하고, 잦은 접속시마다 대기 시간의 반복적으로 산출하여 사용자에게 제공해야 하는 문제가 있다.
그러므로 본 발명은 재접속 횟수를 적게 하면서 최소한의 대기시간으로 사용자 단말에게 리소스를 할당할 수 있도록 하는 것이 필요하다.
이하, 도 2를 참조로 하여 도 1을 참조로 한 본 발명의 개념을 달성하는 본 발명의 제1 실시 예에 따른 비연결식 접속 관리 방법을 설명한다. 도 2는 본 발명의 제1 실시 예에 따른 비연결식 접속 관리 방법을 보인 데이터 흐름도이다. 이하에서는 모든 사용자 단말(1, 2, 3)을 총칭하여 사용자 단말(100)이라 한다.
사용자는 사용자 단말(100)을 통해 네트워크 시스템(20)에 접속한다(S201). 그러면 네트워크 시스템(20)은 접속한 사용자 단말(100)의 고유 식별자를 파악하고(S202), 부여 가능한 최소 번호의 접속 순번을 파악한 후(S203), 파악한 고유 식별자에 상기 접속 순번을 매칭하여 저장한다(S204).
그런 다음 네트워크 시스템(20)은 사용자 단말(100)에게 리소스 할당이 가능한지를 판단한다(S205).
네트워크 시스템(20)은 사용자 단말(100)의 접속 순번보다 빠른 접속 순번을가진 다른 사용자가 많고, 그 많음이 현재의 가용 리소스량으로 처리되지 못하는 정도이면 리소스를 할당하지 않는다. 물론 네트워크 시스템(20)은 사용자 단말(100)의 순번보다 빠른 순번을 가진 이전 접속자가 없거나 적고, 현재의 가용 리소스량으로 이전 접속자 모두를 충분히 수용할 정도이면 리소스를 할당한다.
상기 이전 접속자는 현재 접속한 사용자 단말을 기준으로 순번이 빠른 순번을 가진 사용자 단말을 의미한다.
상기 판단(S205)으로, 네트워크 시스템(20)은 사용자 단말(100)에게 리소스를 할당하지 못한다고 판단하면 가용 리소스량과 이전 접속자의 수를 이용하여 사용자 단말(100)에게 제공할 대기 시간을 산출한다(S206). 대기 시간은 가용 리소스량이 많거나 이전 접속자의 수가 적을수록 짧아지고, 가용 리소스량이 작거나 이전 접속자의 수가 많을수록 길어진다.
그리고 네트워크 시스템(20)은 산출한 대기 시간을 포함하는 대기알림 메시지를 사용자 단말(10)에게 제공한다(S207).
그러면 사용자 단말(100)은 대기알림 메시지를 수신함과 동시에 네트워크 시스템(20)과의 접속을 해지하고(S208), 대기 시간 카운트를 하여(S209), 대기 시간 카운트가 종료되는 시점에서 다시 네트워크 시스템(20)에 재접속을 한다(S201).
대기 시간 카운트는 대기 시간을 수신한 시점으로부터 대기 시간까지의 시간 카운트를 의미한다. 예컨대, 대기 시간이 10초이면 대기 시간 카운트는 수신한 시점으로부터 10초 후까지를 시간 카운트를 하는 것이다.
한편, 네트워크 시스템(20)은 상기 판단(S205)에서 사용자 단말(100)에게 리소스 할당이 가능하다고 판단하면, 사용자 단말(100)에게 리소스를 할당한다(S210). 그러면 사용자 단말(100)은 할당된 리소스를 사용하여 서비스를 이용한다(S211).
한편, 네트워크 시스템(20)은 사용자 단말(100)이 대기 시간이 종료되는 제1시점 또는 제1 시점으로부터 설정된 유효 시간 이내에 접속하지 않으면 사용자 단 말(100)에 대응하여 매칭된 접속 순번을 삭제한다.
다음으로, 도 3을 참조로 하여 도 1을 참조로 한 본 발명의 개념을 달성하는 본 발명의 제2 실시 예에 따른 비연결식 접속 관리 방법을 설명한다. 도 3은 본 발명의 제2 실시 예에 따른 비연결식 접속 관리 방법을 보인 데이터 흐름도이다.
사용자는 사용자 단말(100)을 통해 네트워크 시스템(20)에 제1 접속하여 접속 순번의 발급을 요청한다(S201). 여기서 접속 순번은 사용자 단말에게 제공되는 형태를 가지므로 이하에서 "대기표"라 한다.
제1 접속은 대기표를 가지지 않은 사용자 단말(100)이 네트워크 시스템(20)에 접속하는 것으로, 이하에서는 네트워크 시스템(20)에 대기표를 요구하는 접속으로 지칭한다. 그리고 대기표는 대기 식별자이며, 접속 순번을 알리는 번호 정보를 포함한다.
네트워크 시스템(20)은 사용자 단말(100)의 제1 접속을 대기표 발급 요청으로 인식하고, 사용자 단말(100)에게 대기표를 제공한다(S302).
사용자 단말(100)은 대기표를 수신하면(S203), 제2 접속으로 네트워크 시스템(20)에 접속한다(S304). 제2 접속은 사용자 단말(100)이 대기표를 이용하여 네트워크 시스템(20)에 접속하는 것을 의미하며, 이하에서는 네트워크 시스템(20)에 리소스 할당을 요청하는 접속으로 지칭한다.
그러면 네트워크 시스템(20)은 수신된 대기표로 대기 순번을 파악하고 가용 리소스량을 파악한다(S305). 그런 다음 네트워크 시스템(20)은 S305 과정의 파악을 통해 사용자 단말(100)에게 리소스를 할당 가능한지를 판단한다(S306).
네트워크 시스템(20)은 사용자 단말(100)의 대기표보다 순번(즉, 번호)이 빠른 다른 사용자가 많고, 그 많음이 현재의 가용 리소스량으로 처리되지 못하는 정도이면 리소스를 할당하지 않는다. 물론 네트워크 시스템(20)은 사용자 단말(100)의 대기표보다 순번이 빠른 대기표를 가진 사용자(또는 사용자 단말)가 없거나 적고, 현재의 가용 리소스량으로 이전 접속자 모두를 충분히 수용할 정도이면 리소스를 할당한다.
상기 이전 접속자는 임의의 대기표보다 순번이 빠른 대기표를 가진 사용자를 의미한다.
상기 판단(S305)으로, 네트워크 시스템(20)은 사용자 단말(100)에게 리소스를 할당하지 못한다고 판단하면 가용 리소스량과 이전 접속자의 수를 이용하여 사용자 단말(100)에게 제공할 대기 시간을 산출한다(S307). 대기 시간은 가용 리소스량이 많거나 이전 접속자의 수가 적을수록 짧아지고, 가용 리소스량이 작거나 이전 접속자의 수가 많을수록 길어진다.
네트워크 시스템(20)은 산출한 대기 시간을 사용자 단말(10)에게 제공한다(S308).
그러면 사용자 단말(100)은 대기 시간을 수신함과 동시에 네트워크 시스템(20)과의 접속을 해지하고(S309), 대기 시간 카운트하여 대기 시간 카운트가 종료되는 시점에서 다시 네트워크 시스템(20)에 제2 접속을 하여 리소스 할당 요청을 한다(S304).
대기 시간 카운트는 대기 시간을 수신한 시점으로부터 대기 시간까지의 시간 카운트를 의미한다. 예컨대, 대기 시간이 10초이면 대기 시간 카운트는 수신한 시점으로부터 10초 후까지를 시간 카운트를 하는 것이다.
한편, 네트워크 시스템(20)은 상기 판단(S306)에서 사용자 단말(100)에게 리소스 할당이 가능하다고 판단하면, 사용자 단말(100)에게 리소스를 할당한다(S311). 그러면 사용자 단말(100)은 할당된 리소스를 사용하여 서비스를 이용한다(S312).
이하에서는 본 발명의 제1 실시 예 및 제2 실시 예를 구현하기 위한 일 실시 예에 따른 네트워크 시스템을 도 4를 참조로 하여 설명한다. 도 4는 본 발명의 실시 예에 따른 네트워크 시스템의 블록 구성도이다.
도 4에 도시된 바와 같이, 본 발명의 실시 예에 따른 네트워크 시스템(20)은 트랜잭션 서버(200), 서비스 컨트롤러(300)와 서비스 서버(400)를 포함한다.
트랜잭션 서버(200)는 사용자 단말(100)과의 인터페이스를 담당하여, 접속한 사용자 단말(100)에게 서비스 서버(400)로의 접속을 허가하거나 또는 접속 대기를 지시한다. 트랜잭션 서버(200)는 사용자 단말(100)의 재접속시 자신에게 다시 접속하도록 알리기 위하여 자신의 접속 식별자를 대기알림 메시지에 포함시켜 사용자 단말(100)에 제공한다. 접속 식별자는 트랜잭션 서버(200)로의 접속을 알리는 식별자이거나 주소 정보일 수 있다.
트랜잭션 서버(200)는 사용자 단말(100)이 접속하면 대기표(또는 접속 순번)를 파악한다. 이때 대기표를 파악한 경우에는 대기표를 사용자 단말(100)에게 부여하고, 접속 순번을 파악한 경우에는 접속 순번을 사용자 단말(100)의 고유 식별자와 매칭하여 저장하고 관리한다. 또한 트랜잭션 서버(200)는 발급한 대기표 (또는 접속 순번)를 기준으로 사용자 단말(100)이 리소스 할당 가능한 범위 내에 있는지를 파악하여 접속 허가를 결정하고, 접속 허가하지 못하는 대기표(또는 접속 순번)에 대해 대기 시간을 산출하여 제공한다.
그리고 트랜잭션 서버(200)는 대기표(또는 접속 순번)을 사용자 단말(100)에게 제공하면 대기 리스트에 대기표(또는 접속 순번)을 등록(추가)한다.
여기서 대기 리스트는 일 예로, 도 11에 도시된 바와 같은 형태를 가진다. 도 11은 본 발명의 실시 예에 따른 대기 리스트를 보인 도면이다. 도 11에 도시된 바와 같이, 대기 리스트는 대기표(또는 접속 순번)이 기록되는 필드와 대기표(또는 접속 순번)에 대응하여 대기표(또는 접속 순번)이 등록된 시간이 기록되는 필드를 포함한다.
대기 리스트는 대기표(또는 접속 순번)가 크기에 따라 정렬되어 등록되고 고정 크기를 가진다. 즉, 대기 리스트는 대기 리스트에 등록되는 대기표(또는 접속 순번)의 수가 일정 개수로 정해져 있다. 대기 리스트의 크기를 고정 크기로 하는 이유는 오버헤드를 방지하기 위해서이다. 이러한 이유는 대기 리스트의 크기를 고정 크기로 하지 않으면 대기 리스트에 순간적으로 많은 사용자의 접속 요청이 들어오면 대기 리스트 사이즈가 너무 커져서 정렬할 때나 삭제할 때 많은 오버헤드(overhead)가 발생하기 때문이다.
이렇게 고정 크기의 대기 리스트를 사용하는 경우에 대기 리스트가 꽉찬 상태에서 새로운 사용자 단말에 대한 대기 리스트 추가가 발생할 수 있다. 이 경우에 본 발명은 새로운 사용자 단말의 대기표를 대기 리스트에 등록(추가)하지 않고 대 기 시간만 산출하여 사용자 단말에게 제공한다.
또한 트랜잭션 서버(200)는 사용자 단말(100)에게 접속 허가를 하면 사용자 단말(100)의 대기표(또는 접속 순번)을 할당 리스트에 등록(추가)한다.
여기서 할당 리스트는 일 예로, 도 12에 도시된 바와 같은 형태를 가진다. 도 12는 본 발명의 실시 예에 따른 할당 리스트를 보인 도면이다. 도 12에 도시된 바와 같이, 할당 리스트는 대기표(또는 접속 순번)이 기록되는 필드와 대기표(또는 접속 순번)에 대응하여 대기표(또는 접속 순번)이 등록된 시간이 기록되는 필드를 포함한다. 이러한 할당 리스트는 대기표(또는 접속 순번)가 크기에 상관없이 등록되고 가변 크기를 가진 리스트이다.
서비스 컨트롤러(300)는 트랜잭션 서버(200)의 동작에 연동하여 가변되는 서비스 서버(400)의 리소스 사용 상태에 따라 서비스 서버(400)의 리소스에 접근할 수 있는 사용자 단말(100)의 수를 조정하도록 트랜잭션 서버(200)의 동작을 제어한다. 이를 위해 서비스 컨트롤러(300)는 트랜잭션 서버(200)에게 발급 가능한 대기표(또는 접속 순번)의 범위를 지정하고, 서비스 서버(400)의 리소스 사용 상태와 이전 접속자의 수를 고려하여 대기 시간 산출 및 접속 허가를 위한 기초 자료를 제공한다.
서비스 서버(400)는 트랜잭션 서버(200)에 의해 접속 허가된 사용자 단말(100)에게 리소스를 할당하고 사용자 단말(100)이 요청하는 서비스를 제공한다.
한편, 도 4에 도시된 본 발명의 일 실시 예는 각 구성(200, 300, 400)를 독립적으로 분리하여, 사용자가 트랜잭션 서버(200)와 서비스 서버(400) 간의 접속을 별도로 해야 하는 것으로 설명하였지만, 본 발명은 이에 한정되지 않는다.
즉, 본 발명은 트랜잭션 서버(200), 서비스 컨트롤러(300)와 서비스 서버(400)가 일체화되도록 할 수 있다. 즉, 트랜잭션 서버(200)의 기능과 서비스 컨트롤러(300)의 기능을 서비스 서버(400)에 포함되도록 서비스 서버(400)를 구성할 수 있다. 이 경우에 일 예로, 사용자 단말(100)에게 제공하였던 접속 허가는 트랜잭션 서버의 기능과 서비스 서버의 기능 간의 내부 신호 처리로 대신할 수 있게 된다.
이하에서는 본 발명의 제1 실시 예와 제2 실시 예 중에서 제2 실시 예를 중심으로 본 발명을 설명하고자 한다. 당업자라면 본 발명의 제2 실시 예를 통해 본 발명의 제1 실시 예를 용이하게 구현할 수 있을 것이다. 이는 본 발명의 제1 실시 예가 사용자 단말의 접속 순서을 관리하는 방법이 본 발명의 제2 실시 예와 차이가 있을 뿐 그 외에는 본 발명의 제2 실시 예와 동일하기 때문이다.
도 5를 참조로 하여 도 4에 도시된 사용자 단말(300)과 네트워크 시스템(20)의 구성(200, 300, 400)을 기반으로 한 본 발명의 제2 실시 예에 따른 비연결식 접속 관리 방법을 보다 상세히 설명한다. 도 5는 도 4를 기반으로 한 본 발명의 제2 실시 예에 따른 비연결식 접속 관리 방법의 데이터 흐름도이다.
사용자 단말(100)은 서비스 서버(400)에서 제공하는 서비스를 이용하기 위하여 서비스 서버(400)에게 접속을 요구한다. 이에 서비스 서버(400)는 사용자 단말(100)이 트랜잭션 서버(200)에 의해 접속 허가 받지 않은 상태이기 때문에 사용자 단말(100)에게 트랜잭션 서버(200)로의 접속을 지시한다.
그러면 사용자 단말(100)은 트랜잭션 서버(200)로 제1 접속을 한다(S501).
트랜잭션 서버(200)는 사용자 단말(100)이 제1 접속을 함에 따라 등록된 대기표 블록 내에 발급 가능한 대기표가 있는지를 판단한다(S502). 이 판단(S502)으로 트랜잭션 서버(200)는 대기표 발급이 가능하지 않다고 하면 서비스 컨트롤러(300)에게 새로운 대기표 블록을 요청하고(S503), 서비스 컨트롤러(300)로부터 새로운 대기표 블록을 수신하여 등록한다(S504).
그러나 트랜잭션 서버(200)는 상기 판단(S502)으로 대기표 발급이 가능하면 등록된 대기표 블록에서 발급 가능한 대기표 중 순번(즉, 번호)이 빠른 대기표를 사용자 단말(100)에게 발급한다(S505).
여기서 대기표 블록은 일련의 순서로 나열되는 대기표들의 집합체이다. 예컨대, 대기표 블록은 1번부터 100번까지의 대기표들의 집합체이거나, 300번부터 500번까지의 대기표들의 집합체이다.
사용자 단말(100)은 대기표를 발급받으면 제2 접속을 하여 트랜잭션 서버(200)에 대기표를 제시한다(S506).
이에 트랜잭션 서버(200)는 사용자 단말(100)에서 제시한 대기표의 번호(즉, 순번)가 설정된 허용 ID를 파악하여 접속 가능 여부를 판단한다(S507). 여기서 허용 ID는 접속이 가능한 최고 크기의 대기표다.
물론 트랜잭션 서버(200)는 대기표의 번호가 허용 ID보다 작으면 접속이 가능하다고 판단하고, 그렇지 않으면 접속 가능하지 않다고 판단할 것이다.
트랜잭션 서버(200)는 상기 판단(S507)에서 접속이 가능하지 않다고 판단하 면 대기표를 대기 리스트에 등록(추가)하고(S508), 대기표를 기준으로 가용 리소스량과 이전 접속자의 수에 대응하는 대기 시간을 산출하여 사용자 단말(100)에 알린다(S509).
사용자 단말(100)은 대기 시간을 수신하면 트랜잭션 서버(200)와의 접속을 해지한 후(S510), 대기 시간 카운트를 하고(S511), 대기 시간이 종료되는 시점에서 다시 한번 제2 접속을 하여 접속 허용을 요청한다(S506).
반면에, 트랜잭션 서버(200)는 상기 판단(S507)에서 접속이 가능하다고 판단하면 대기표를 할당 리스트에 대기표를 등록(추가)하고(S512), 사용자 단말(100)에게 접속 허용을 알리는 메시지를 전송한다(S513).
이에 사용자 단말(100)은 수신한 접속 허용 메시지를 이용하여 서비스 서버(400)에 접속하고, 서비스 서버(400)는 사용자 단말(100)의 접속을 접속 허용 메시지에 따른 접속임을 확인하여 사용자 단말(100)에게 리소스를 할당하여 할당한 리소스를 통해 사용자 단말(100)이 서비스를 이용할 수 있게 한다(S514).
이렇게 사용자 단말(100)은 리소스를 이용하여 서비스를 이용하게 되면 서비스 이용 중에(S515), 설정된 시간 주기마다 리소스 사용중임을 알리는 알림 메시지를 트랜잭션 서버(200)에 알린다(S516).
트랜잭션 서버(200)는 할당 리스트에 등록된 대기표들에 대응된 각 사용자 단말(100)에서 리소스를 사용하고 있는지 사용하고 있지 않는지를 감시한다(S517). 이때 감시는 사용자 단말(100)로부터 알림 메시지가 설정 시간 내에 수신되는지 파악하는 것이다.
만약 상기 감시(S517)에서, 트랜잭션 서버(200)는 사용자 단말(100)로부터 설정 시간 내에 알림 메시지가 수신되면 계속해서 리소스를 사용하고 있다고 판단하여 현재의 할당 리스트의 정보를 그대로 유지한다.
반면에 상기 감시(S517)에서 트랜잭션 서버(200)는 사용자 단말(100)로부터 설정 시간 내에 알림 메시지가 수신되지 않으면 사용자 단말(100)이 리소스 사용을 끝냈다고 판단한다(S518). 이 경우에 트랜잭션 서버(200)는 리소스 사용을 끝낸 사용자 단말(100)의 대기표를 할당 리스트에서 제거(삭제)한다(S519).
한편, 트랜잭션 서버(200)는 설정된 시간 주기마다 대기 리스트와 할당 리스트를 서비스 컨트롤러(300)에 제공한다(S520, S523, S526).
여기서 트랜잭션 서버(200)는 대기 리스트에 대기표가 등록되거나, 할당 리스트에 대기표가 등록되거나 또는, 할당 리스트에서 임의의 대기표가 삭제되는 경우에 대기 리스트와 할당 리스트를 서비스 컨트롤러(300)에 제공하도록 할 수 있다.
서비스 컨트롤러(300)는 트랜잭션 서버(200)로부터 대기 리스트와 할당 리스트를 수신하면, 서비스 서버(400)로부터 파악한 리소스 사용 상태와 수신된 대기 리스트와 할당 리스트를 분석하여 어디 까지를 접속 가능한 대기표로 할 것인지를 판단하고, 판단한 대기표를 허용 ID로 결정한다(S521, S524). 허용 ID를 결정하는 방법은 이하에서 상세히 설명할 것이다.
이렇게 허용 ID를 결정하면, 서비스 컨트롤러(300)는 결정한 허용 ID를 트랜잭션 서버(200)에 제공한다(S522, S525). 그러면 트랜잭션 서버(200)는 기 등록된 허용 ID를 삭제하고 서비스 컨트롤러(300)로부터 수신한 허용 ID를 등록한다.
상기에서 서비스 컨트롤러(300)는 초당 평균 대기표 처리수(EPS: Empty Resource Per Second)를 허용 ID와 함께 트랜잭션 서버(200)에 제공한다. 서비스 컨트롤러(300)는 EPS를 설정 주기시간마다 산출하며, 트랜잭션 서버(200)는 EPS를 이용하여 대기 시간을 산출한다.
이하에서는 도 4에 도시된 서비스 컨트롤러(300)를 도 6을 참조로 하여 보다 상세히 설명한다. 도 6은 도 4에 도시된 서비스 컨트롤러를 구체화한 일 실시 예에 따른 블록 구성도이다.
도 6에 도시된 바와 같이, 서비스 컨트롤러(300)는 로컬 인터페이스부(310), 대기표블록 발급부(320), 허용ID 산출부(330), 리소스변경 감시부(340)를 포함한다.
로컬 인터페이스부(310)는 트랜잭션 서버(200)와 서비스 서버(400)와의 인터페이스를 담당한다.
대기표블록 발급부(320)는 트랜잭션 서버(200)로부터 신규 대기표 블록의 요청을 수신하면, 이에 대응하여 일정 크기의 대기표 블록을 신규로 생성하여 트랜잭션 서버(200)에 제공한다. 신규의 대기표 블록을 제공할 때 대기표블록 발급부(320)는 트랜잭션 서버(200)에 기 제공한 대기표 블록의 정보를 파악하고 기 제공한 대기표 블록에 연속하는 대기표 블록을 신규의 대기표 블록으로 하여 트랜잭션 서버(200)에 제공한다. 예컨대, 기 제공한 대기표 블록이 1번부터 100번까지의 대기표를 가진 것이라면, 대기표블록 발급부(320)는 101번부터 200번까지의 대기표 블록을 신규의 대기표 블록으로 트랜잭션 서버(200)에 제공한다.
허용ID 산출부(330)는 트랜잭션 서버(200)로부터 수신되는 대기 리스트와 할당 리스트 및 리소스 변경 감시부(340)에서 수신되는 서비스 서버(400)의 리소스 사용 상태를 이용하여 허용 ID를 산출한다.
여기서 허용ID 산출부(300)에서 이루어지는 허용 ID를 산출하는 방법을 좀더 상세히 설명한다.
허용ID 산출부(330)는 허용 ID 산출을 위해서 우선적으로 EPS를 산출한다.
EPS를 산출하는 방식은 여러가지가 있다.
첫번째 방식으로, 허용ID 산출부(330)는 설정 주기 시간(예; 1초, 2초, 5초 등)마다 할당 리스트를 조사하여 리소스 사용을 완료하고 빠져나간 대기표의 숫자를 파악한다. 즉, 설정 주기 시간 동안에 할당 리스트에서 삭제된 대기표가 몇 개인지를 파악한다. 이렇게 파악한 대기표의 수를 A라고 하고 설정 주기 시간을 Ts라고 하면, EPS는 A/Ts로 나타낼 수 있다.
두번째 방식으로, EPS는 할당 리스트뿐만 아니라 대기 리스트를 이용하여 서비스 서버(400)로의 접속 허가를 받기 전에 빠져 나간 사용자 단말의 수를 포함할 수 있다. 이 경우에 허용ID 산출부(330)는 설정 주기 시간마다 대기 리스트에 등록된 가장 작은 대기표와 할당 리스트에 등록된 가장 큰 대기표의 순번 차이를 구하고, 이 순번 차이를 설정 주기시간으로 나누어 초당 평균 대기표 처리수(EPS)로 결정한다.
이렇게 구해진 EPS를 구하면 허용ID 산출부(330)는 현재 사용할 수 있는 가용 리소스를 파악하고 파악한 가용 리소스로 수용할 수 있는 사용자 단말의 수와 상기 산출한 EPS를 합하여 허용 범위를 산출한다.
그런 다음 허용ID 산출부(330)는 대기 리스트에서 허용 범위에 있는 가장 큰순번의 대기표를 허용ID로 설정한다. 여기서 허용ID 산출부(330)는 허용 범위를 무작정 늘려주지 않으며 한번에 늘어날 수 있는 상한선을 설정하여 급격한 값의 변화를 막는다.
허용ID 산출부(330)는 EPS와 허용 ID를 산출하면 이를 트랜잭션 서버(200)에 제공한다.
리소스변경 감시부(340)는 서비스 서버(400)의 리소스를 감시하여 설정치 이상 또는 이하의 변화를 감시한다. 즉 리소스변경 감시부(340)는 할당 리스트에 등록된 사용자 단말의 수에 비해 서비스 서버(400)의 리소스가 제1 설정치 이상으로 리소스의 사용이 과다하면 이를 허용ID 산출부(330)에 알려 허용 범위를 줄이게 한다. 반대로, 리소스변경 감시부(340)는 할당 리스트에 등록된 사용자 단말의 수에 비해 서비스 서버(400)의 리소스가 제2 설정치 이하로 리소스의 사용이 과소하면 이를 허용ID 산출부(330)에 알려 허용 범위를 늘이게 한다.
다음으로, 본 발명의 제2 실시 예를 달성하기 위한 트랜잭션 서버(200)를 도 7을 참조로 하여 설명한다. 도 7은 도 4에 도시된 트랜잭션 서버를 구체화한 일 실시 예에 따른 블록 구성도이다.
도 7에 도시된 바와 같이, 트랜잭션 서버(200)는 사용자 인터페이스(201), 로컬 인터페이스(202), 수신정보 파악부(203), 대기표 발급부(204), 접속 승인부(205), 대기시간 산출부(206), 리소스 사용 감시부(207), 대기표블록 저장부(208), 대기리스트 저장부(209), 기초정보 저장부(210), 할당리스트 저장부(211)와, 발급상태 알림부(212)를 포함한다.
사용자 인터페이스(201)는 사용자 단말(100)과의 인터페이스를 담당하고, 로컬 인터페이스부(202)는 서비스 컨트롤러(300)와의 인터페이스를 담당한다.
수신정보 파악부(203)는 사용자 인터페이스부(201)로부터 수신되는 메시지를 분석하고 이 분석에 따라 수신된 메시지를 해당 메시지를 처리할 내부 구성으로 전달한다. 여기서 사용자 인터페이스부(201)로부터 메시지는 크게 제1 접속에 따른 메시지, 제2 접속에 따른 메시지와, 리소스 사용을 알리는 알림 메시지가 있다.
대기표 발급부(204)는 제1 접속에 따른 메시지가 수신되면 대기표블록 저장부(208)에 저장된 고정 크기의 대기표 블록을 이용하여 해당 사용자 단말(100)에게 대기표를 발급하고, 발급한 대기표를 대기 리스트에 추가한다. 이때 대기표에는 트랜잭션 서버(200)를 식별할 수 있는 고유 식별자가 포함되어 있다. 이 고유 식별자는 사용자 단말(100)이 처음 접속한 트랜잭션 서버에 재접속할 수 있게 한다.
대기표 발급부(204)는 대기표블록 저장부(208)에 저장된 대기표 블록의 대기표를 모두 사용하면 서비스 컨트롤러(300)로 새로운 대기표 블록을 요청한다.
접속 승인부(205)는 제2 접속에 따른 메시지를 수신하고 제2 접속 메시지에 포함된 대기표를 기초정보 저장부(210)에 저장된 허용 ID와 비교하여 접속 허가 여부를 결정한다. 이때 접속 승인부(205)는 대기표의 번호가 허용 ID의 번호보다 작 으면 접속을 허가한다.
대기시간 산출부(206)는 접속 승인부(205)의 제어에 따라 동작하며 접속 허가되지 않은 사용자 단말(100)의 대기표의 번호에 대응하는 대기 시간을 기초정보 저장부(210)에 저장된 EPS를 이용하여 산출하고, 산출한 대기 시간을 사용자 단말(100)에게 제공한다. 예컨대, 사용자 단말(100)의 대기표 번호가 2000번이고 허용 ID가 1000번이며, EPS가 50이면, 대기 시간은 (2000-1000)/50의 수학식을 통해 20초가 산출된다.
리소스 사용 감시부(207)는 사용자 단말(100)로부터 송출된 알림 메시지의 수신 여부를 감시하며, 설정 시간 내에 알림 메시지가 수신되지 않은 사용자 단말(100)에 대하여 리소스 사용이 완료되었다고 판단하여 할당 리스트에서 해당 사용자의 대기표를 삭제한다.
대기표블록 저장부(208)는 서비스 컨트롤러(300)로부터 제공받은 고정 크기의 대기표 블록을 저장한다. 대기표블록 저장부(208)에 저장된 대기표 블록은 기 발급한 대기표와 발급이 가능한 가용 대기표가 별도로 표시되어 관리된다.
대기리스트 저장부(209)는 고정 크기를 가진 대기 리스트를 저장하고 있으며, 대기표 발급부(204)의 지시에 따라 대기표를 대기 리스트에 추가하거나 삭제한다. 이때 대기리스트 저장부(209)는 추가되는 대기표를 번호 순으로 정렬하여 대기 리스트에 저장한다.
대기리스트 저장부(209)는 대기 리스트의 고정 크기가 모두 찼을 때 대기 리스트에 입력된 대기표의 최고값(가장 높은 번호)보다 큰 값의 대기표가 입력되면 대기 리스트에 저장하지 않는다.
기초정보 저장부(210)는 접속 승인을 위해 필요한 기초 정보를 저장한다. 기초 정보는 허용 ID와 EPS이며, 서비스 컨트롤러(300)에 의해 주기적으로 제공된다. 기초정보 저장부(210)는 서비스 컨트롤러(300)로부터 기초 정보를 수신하면 기 저장된 기초 정보를 삭제한 후 현재 수신된 기초 정보를 저장한다.
할당리스트 저장부(211)는 가변 크기를 가진 할당 리스트를 저장하고 있으며 접속 승인부(205)의 지시에 따라 대기표를 할당 리스트에 추가하고, 리소스 사용 감시부(207)의 지시에 따라 할당 리스트에 저장된 해당 대기표를 삭제한다.
발급상태 알림부(212)는 대기리스트 저장부(209)와 할당리스트 저장부(211)에 저장된 대기 리스트와 할당 리스트를 설정된 주기 시간마다 수집하여 로컬 인터페이스부(202)를 통해 서비스 컨트롤러(300)에 제공한다.
이하에서는 도 8을 참조로 하여 본 발명의 실시 예에 따른 대기표 발급 방법을 설명한다. 도 8은 도 4를 기반으로 한 본 발명의 실시 예에 따른 대기표 발급 방법을 설명하기 위한 도면이다.
도 8에 도시된 본 발명의 실시 예는 대기표 발급을 하나의 트랜잭션 서버(200)를 이용하여 달성하고 있는 경우이다.
서비스 컨트롤러(300)는 동일한 크기의 대기표 블록(A, B, C 등)을 복수개 가지고 있으며, 이 중 하나의 대기표 블록만을 트랜잭션 서버(200)에 제공한다. 도 8에서는 서비스 컨트롤러(300)가 대기표 블록(B)을 트랜잭션 서버(200)에 제공한 것으로 도시하고 있다.
대기표 블록의 크기가 동일하다는 것은 각 대기표 블록이 동일 수의 대기표를 가지고 있다는 것을 의미한다. 예컨대, 도 8에 도시된 바와 같이 대기표 블록(A)는 0부터 99까지의 총 100개의 대기표 블록을 가지며, 대기표 블록(B)는 100부터 199까지의 총 100개의 대기표 블록을 가진다.
트랜잭션 서버(200)는 하나의 대기표 블록을 수신하면 수신한 대기표 블록에 있는 대기표를 사용자 단말(100)에게 제공한다.
만약 대기표 블록 내의 대기표 모두를 사용자 단말(100)에게 제공하면, 트랜잭션 서버(200)는 서비스 컨트롤러(300)에게 새로운 대기표 블록을 요구한다. 그러면 서비스 컨트롤러(300)는 트랜잭션 서버(200)가 가지고 있는 대기표 블록의 바로 다음번째 대기표 블록을 새로운 대기표 블록으로 트랜잭션 서버(200)에게 제공한다. 예컨대, 트랜잭션 서버(200)가 대기표 블록(B)를 저장하고 있는 상태이면 서비스 컨트롤러(300)는 대기표 블록(C)를 새로운 대기표 블록으로 트랜잭션 서버(200)에 제공한다.
결국, 트랜잭션 서버(200)는 이러한 대기표 블록의 교환으로 연속하는 순번의 대기표를 새로 접속한 사용자 단말(100)에게 제공할 수 있게 된다.
다음으로, 도 9를 참조로 하여 본 발명의 다른 실시 예에 따른 대기표 발급 방법을 설명한다. 도 9은 도 4를 기반으로 한 본 발명의 다른 실시 예에 따른 대기표 발급 방법을 설명하기 위한 도면이다.
도 9에 도시된 본 발명의 다른 실시 예는 대기표 발급을 복수의 트랜잭션 서버(210, 220, 230)를 이용하여 달성하고 있는 경우이다.
서비스 컨트롤러(300)는 동일한 크기의 대기표 블록(A, B, C 등)을 복수개 가지고 있으며, 이 중 하나의 대기표 블록만을 각 트랜잭션 서버(210, 220, 230)에 제공한다. 도 9에서는 서비스 컨트롤러(300)가 대기표 블록(B)을 각 트랜잭션 서버(210, 220, 230)에 제공한 것으로 도시하고 있다.
각 트랜잭션 서버(210, 220, 230)는 하나의 대기표 블록을 수신하면 수신한 대기표 블록에 있는 대기표를 사용자 단말(100)에게 제공한다.
이때 각 트랜잭션 서버(210, 220, 230)는 대기표 블록의 대기표를 트랜잭션 서버의 수만큼 분할하여 사용자 단말(100)에게 제공하되, 대기표의 번호에 따라 순차적으로 발급한다. 즉, 제1 트랜잭션 서버(210)는 100번, 103번, 106번, ..., 199번의 대기표를 발급하고, 제2 트랜잭션 서버(220)는 101번, 104번, 107번, ..., 197번의 대기표를 발급하며, 제3 트랜잭션 서버(230)는 102번, 105번, 108번, ..., 198번의 대기표를 발급한다.
물론 각 트랜잭션 서버(210, 220, 230)에서 발급하는 대기표의 순번은 사용자 단말의 접속 순서이다. 사용자 단말들을 순차적으로 각 트랜잭션 서버에 접속시키기 위해서는 로드 밸런싱 장치를 이용하여 이를 달성할 수 있을 것이다.
만약 제1 내지 제3 트랜잭션 서버(210, 220, 230) 중 하나의 트랜잭션 서버에서 대기표 블록 내에서 할당된 대기표 모두를 사용자 단말(100)에게 제공하면, 해당 트랜잭션 서버는 다른 트랜잭션 서버의 대기표 발급 상황에 관계없이 서비스 컨트롤러(300)에게 새로운 대기표 블록을 요구한다.
그러면 서비스 컨트롤러(300)는 제1 내지 제3 트랜잭션 서버(210, 220, 230) 가 가지고 있는 대기표 블록의 바로 다음번째 대기표 블록을 새로운 대기표 블록으로 각 트랜잭션 서버(210, 220, 230)에게 제공한다. 예컨대, 각 트랜잭션 서버(210, 220, 230)가 대기표 블록(B)를 저장하고 있는 상태이면 서비스 컨트롤러(300)는 대기표 블록(C)를 새로운 대기표 블록으로 각 트랜잭션 서버(210, 220, 230)에 제공한다.
각 트랜잭션 서버(210, 220, 230)는 서비스 컨트롤러(300)로부터 새로운 대기표 블록을 수신하면 현재 사용중인 대기표 블록에서의 대기표 발급을 중지하고, 새로운 대기표 블록에서의 대기표 발급을 시작한다.
그리고 3개의 트랜잭션 서버(210, 220, 230)에 더하여 새로운 4번째 트랜잭션 서버(미도시)가 추가되면, 새로 추가된 트랜잭션 서버는 새로운 대기표 블록을 서비스 컨트롤러(300)에게 요구하고, 그에 따라 서비스 컨트롤러(300)는 새로운 대기표 블록은 4개의 트랜잭션 서버 각각에 제공한다. 물론 이 경우도 4개의 트랜잭션 서버 각각은 현재 사용중인 대기표 블록에서의 대기표 발급을 중지하고, 새로운 대기표 블록에서의 대기표 발급을 시작한다.
이하에서는 도 10을 참조로 하여 서비스 서버로의 접속 허용(즉, 리소스 할당 허용)하는 방법을 설명한다. 도 10은 도 9를 기반으로 한 본 발명의 실시 예에 따른 리소스 할당 허용 방법을 설명하기 위한 도면이다.
서비스 컨트롤러(300)는 각 트랜잭션 서버(210, 220, 230)로부터 수집된 대기 리스트들을 취합하여 대기자들을 파악하고, 할당 리스트들을 취합하여 가용 리 소스량을 파악하여 허용 ID를 설정한다. 도 10에서는 허용 ID를 120번으로 한 것으로 도시하였다.
따라서 각 트랜잭션 서버(210, 220, 230)는 서비스 컨트롤러(300)의 지시에 따라 허용 ID를 120번으로 설정한다.
이렇게 허용 ID가 설정된 상태에서, 트랜잭션 서버(210, 220, 230)에 각각 고유의 번호표를 가진 사용자 단말(100)이 접속하면, 각 트랜잭션 서버(210, 220, 230)는 접속한 사용자 단말(100)의 번호표를 허용 ID와 비교한다.
각 트랜잭션 서버(210, 220, 230)는 사용자 단말(100)의 번호표와 허용 ID 간의 비교를 통해 사용자 단말(100)의 번호표가 허용 ID보다 작으면 접속을 허가하고, 사용자 단말(100)의 번호표가 허용 ID보다 크면 대기 시간을 산출하여 대기를 지시한다.
예를 들어, 제1 트랜잭션 서버(210)는 105번의 번호표를 가진 제1 사용자 단말이 접속하면 허용 ID가 120이므로 제1 사용자 단말에게 접속을 허가한다. 그리고 제1 트랜잭션 서버(210)는 112번의 번호표를 가진 제2 사용자 단말이 접속하면 허용 ID가 120이므로 제1 사용자 단말에게 접속을 허가한다. 그러나 제1 트랜잭션 서버(210)는 120번 이상의 번호표를 가진 사용자 단말이 접속하면 허용 ID가 120이므로 각 사용자 단말에게 대기를 지시한다.
제1 내지 제3 트랜잭션 서버(210, 220, 230)는 접속이 허용된 번호표를 대기 리스트에서 삭제한 후 할당 리스트에 추가한다.
한편 본 발명은 전술한 일반적인 사용자 단말에 대한 비연결식 접속 관리 방 법을 수행 중에 특정 사용자 단말에 대해서 우선적인 리소스 할당이 가능하도록 할 수 있다. 이를 위해 본 발명은 특정 사용자 단말에 대한 인식을 위해 특정 사용자 단말에 대한 고유 식별정보(IP주소, 이동전화번호, ID/패스워드 등)를 저장한 후, 특정 사용자 단말이 접속하면 리소스 할당(또는 서비스 서버로의 접속 허가)을 최우선으로 하도록 한다. 즉, 특정 사용자 단말은 일반적인 사용자 단말과 달리 별도의 대기 시간없이 가용 리소스가 발생하면 즉시 이를 할당받게 된다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.