성공적인 소프트웨어 아키텍처의 설계를 위해서는 아키텍처 설계의 기반이 되는 아키텍처 접근법의 선정이 우선 이루어져야 한다. 이 때 다양한 아키텍처 스타일 즉, 아키텍처 접근법들 중 어떤 것을 선택 할 것인가는 완성될 시스템이 어떤 기능적, 비 기능적 품질요구사항을 만족시켜야 하는지에 따라 달라지게 된다. 본 논문에서는 아키텍처 접근법 선정을 위한 평가 모델을 제안하고 다양한 인터넷 활용과 엔터프라이즈 어플리케이션 통합에 활발히 사용되고 있는 메시지 시스템의 소프트웨어 아키텍처 접근법을 선정하고자 한다. 즉 여러 아키텍처 접근법 대안들이 존재할 경우 평가를 통해 시스템의 요구사항 만족 여부를 분석하여 대안들 중 가장 효율적이고 최적화 된 아키텍처 접근법을 선정하여 메시지 시스템의 아키텍처 설계 시 활용할 수 있도록 하고자 한다. 또한 아키텍처 접근법 식별시 스레드 기반의 설계 패턴을 활용하여 상세 설계와 구현 시 개발자들이 아키텍처를 바로 연계 시킬 수 있도록 하고자 한다.
성공적인 소프트웨어 아키텍처의 설계를 위해서는 아키텍처 설계의 기반이 되는 아키텍처 접근법의 선정이 우선 이루어져야 한다. 이 때 다양한 아키텍처 스타일 즉, 아키텍처 접근법들 중 어떤 것을 선택 할 것인가는 완성될 시스템이 어떤 기능적, 비 기능적 품질요구사항을 만족시켜야 하는지에 따라 달라지게 된다. 본 논문에서는 아키텍처 접근법 선정을 위한 평가 모델을 제안하고 다양한 인터넷 활용과 엔터프라이즈 어플리케이션 통합에 활발히 사용되고 있는 메시지 시스템의 소프트웨어 아키텍처 접근법을 선정하고자 한다. 즉 여러 아키텍처 접근법 대안들이 존재할 경우 평가를 통해 시스템의 요구사항 만족 여부를 분석하여 대안들 중 가장 효율적이고 최적화 된 아키텍처 접근법을 선정하여 메시지 시스템의 아키텍처 설계 시 활용할 수 있도록 하고자 한다. 또한 아키텍처 접근법 식별시 스레드 기반의 설계 패턴을 활용하여 상세 설계와 구현 시 개발자들이 아키텍처를 바로 연계 시킬 수 있도록 하고자 한다.
To design a software system in success, architectural approaches which are in basis of architectural design, must be primarily selected. What to chose among various architecture styles as specific as architectural approaches, varies along with the system status of what kind of functional or non-func...
To design a software system in success, architectural approaches which are in basis of architectural design, must be primarily selected. What to chose among various architecture styles as specific as architectural approaches, varies along with the system status of what kind of functional or non-functional quality requirements should satisfy. In this study, we propose the evaluation model for making a selection of architectural approaches, and select an architectural approach for message system actively using in diversified internet utilization and enterprise application integration, In other words, if there may be possibly existed several architectural approaches, we present the most suitable method of architectural approach out of them through an evaluation of analyzing the system requirements satisfaction level. In addition, when it performs specific design and implementation utilizing design patterns based on thread, developers would be able to link up the architecture design directly.
To design a software system in success, architectural approaches which are in basis of architectural design, must be primarily selected. What to chose among various architecture styles as specific as architectural approaches, varies along with the system status of what kind of functional or non-functional quality requirements should satisfy. In this study, we propose the evaluation model for making a selection of architectural approaches, and select an architectural approach for message system actively using in diversified internet utilization and enterprise application integration, In other words, if there may be possibly existed several architectural approaches, we present the most suitable method of architectural approach out of them through an evaluation of analyzing the system requirements satisfaction level. In addition, when it performs specific design and implementation utilizing design patterns based on thread, developers would be able to link up the architecture design directly.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 설계 단계에서 아키텍처 설계의 기반이 되는 아키텍처 접근법 대안들을 식별하고 평가하여 가장 적합한 아키텍처 접근법을 선정함으로써 아키텍처 설계의 신뢰도를 높이고자 한다. 또한 본 논문에서 제안하고 있는 아키텍처 접근법 선정을 위한 평가모델을 통해 다양한 인터넷 활용 과 엔터프라이즈 어플리케이션 통합에 활발히 사용되고 있는 메시지 시스템의 소프트웨어 아키텍처 접근법 대안들을 식별하고 평가하여 효율적이고 최적화된 아키텍처 접근법을 선정하아키텍처 접근법 식별 시 스레드 기반의 설계 패턴을 참조함으로써 개발자들이 향후 상세 설계와 구현 시 아키텍처 설계와의 연계를 용이하도록 하며, 아키텍처 접근법 대안들의 평가를 위한 프로그램을 구현 시에도 활용하여 평가의 효율성을 높이고자 한다.
본 논문에서는 설계 단계에서 아키텍처 설계의 기반이 되는 아키텍처 접근법 대안들을 식별하고 평가하여 가장 적합한 아키텍처 접근법을 선정함으로써 아키텍처 설계의 신뢰도를 높이고자 한다. 또한 본 논문에서 제안하고 있는 아키텍처 접근법 선정을 위한 평가모델을 통해 다양한 인터넷 활용 과 엔터프라이즈 어플리케이션 통합에 활발히 사용되고 있는 메시지 시스템의 소프트웨어 아키텍처 접근법 대안들을 식별하고 평가하여 효율적이고 최적화된 아키텍처 접근법을 선정하아키텍처 접근법 식별 시 스레드 기반의 설계 패턴을 참조함으로써 개발자들이 향후 상세 설계와 구현 시 아키텍처 설계와의 연계를 용이하도록 하며, 아키텍처 접근법 대안들의 평가를 위한 프로그램을 구현 시에도 활용하여 평가의 효율성을 높이고자 한다.
본 논문에서는 설계 패턴을 기반으로 식별된 아키텍처 접근법 대안들에 대한 품질 평가 모델을 만 들고, 이를 가지고 달성하고자 하는 품질 속성 요구 사항에 대한 객관적 검증을 통해 아키텍처 접근법을 선정하고 설계를 발전시켜 나갈 수 있도록 한다.
본 논문에서는 아키텍처 접근법 선정을 위한 평가 모델을 제안하고, 설계 패턴을 기반으로 메시지 시스템의 아키텍처 접근법을 식별하여, 여러 아키텍처 접근법 대안이 존재할 경우 평가 과정을 거처 결과를 분석하여 가장 적합한 아키텍처 접근법을 선정하도록 하였다.
자바환경의 경우는 스레드 기반의 설계 패턴이 소개되고 있는데, 이것은 설계 패턴을 벗어나 아키텍처 패턴의 영역에 포함될 내용이다. 이러한 접근은 아키텍처를 상세설계 및 구현과 쉽게 연계시킬 수 있는 매우 바람직한 방법으로 본 연구에 서도 이를 활용하여 메시지 시스템의 아키텍처 접근법을 식별하고자 한다.
가설 설정
2) 일대다(브로드케스팅) 전송이 가능하다.
3) 일대일(p2p) 전송이 가능하다.
6) 토픽을 구독하는 모든 클라이언트는 그 토픽으로 발행된 메시지에 대해 자신만의 복사본을 갖는다. 즉, 한명의 발행자에 의해 생산된 하나의 메시지가 수백 또는 수천개의 구 독자에게 복사되어 전달 될 수 있다.
7) 메시지는 무조건 한번만 전달된다.
8) JMS 클라이언트는 지속적 구독(durable subscription)을 할 수 있다.
제안 방법
식별된 3개의 아키텍처 접근법 대안은 Persistent Message를 통해 신뢰성 요구사항을 만족시키고 있다. 따라서 확장성과 성능 요구사항의 평가 결과에 따라 가장 효율적인 아키텍처 접근법을 선정하도록 한다. 확장성과 성능은 동시 사용자 수에 따라 성능이 영향을 받을 수 있는 속성이므로 두 속성을 같이 고려하여 평가 시나리오를 작성하여야 한다.
따라서 가용성의 경우는 소프트웨어 아키텍처에서 더 이상 고려하지 않아도 된다. 또한 보안의 경우는 어떻게 구현하느냐는 벤더가 정하며, 각 벤더들은 JMS 클라이언트간에 서로 인증하고 권한을 부여하고 안전한 통신을 할 때 사용할 수 있는 기술을 나름대로 조합하여 사용하고 있으므로 여기서 아키텍처 설계를 위한 동인으로 성능, 확 장성, 신뢰성 시나리오를 선택하도록 한다.
그러나 수신자의 경우 단일 스레드가 여러 수 신자에게 메시지를 송신하기 위해서는 어떤 한 클 라이언트에게 집중되지 않도록 스케줄링을 해주어야 한다. 이 패턴에서는 수신자 클라이언트가 메시지를 받기를 원할 경우 메시지를 끝까지 받았다 는 EndMessage를 받기 전까지 계속 서버에게 Request 메시지를 보내게 하고, 서버는 Request Message를 받을 때마다 해당 클라이언트에게 메시지를 송신하는 구조를 이용하고자 한다.
평가시나리오 ES1.에 대한 시험은 먼저 스레드를 생성시키고 start()를 호출하여 실제 스레드가 동작 되기까지의 시간 소요를 프로그램으로 구현하여 실시하였다[1]. 그 결과는 다음과 같다[1].
이론/모형
위의 결과에 의해 본 연구에서는 Thread Pool 아키텍처 접근법을 선정한다.
메시지 시스템의 가장 간단한 구조는 출판이나 구독을 위한 클라이언트로부터 요청이 들어올 때마다 메시징 서버에서 클라이언트에게 서비스를 담당할 스레드를 하나씩 할당하는 방법이다[1]. 즉 복수의 클라이언트의 요구를 처리하는 서버를 실현하기 위해서 Thread-per-message 패턴이 사용된다.
성능/효과
4) JMS 클라이언트는 생산자와 소비자 둘 다 될 수 있다
따라서 세가지 아키텍처 접근법 대안 중 Thread Pool 아키텍처가 가장 좋은 평가 결과를 보이고 있고, Pool에 생성된 스레드의 수를 다르게 하면 평가 결과가 더 좋아질 수도 있다
본 논문에서는 평가 결과에 따라 Thread Pool 아키텍처가 가장 양호한 성능을 보여주는 것으로 아키텍처 설계 대안으로 최종 선정되었다. 이 연구를 통해 중요한 품질 요구사항을 실현하는 아키텍처 접근법이 설계 단계에서 결정되어 많은 비용 절감이 예상될 수 있다.
또한 여러 대안이 존재할 경우 아키텍처 접근법 선정을 위한 평가 모델을 제시함으로써 개발자들이 설계 과정 중에 가장 적합한 접근법을 선정하도록 도와줌으로써 아키텍처 설계의 신뢰성을 높이고 있다. 아키텍처 접근법 평가 시 설계 패턴에 기반한 평가 프로그램 구현과 시험 결과에 의해 선정함으로써 기존의 경험에 의존한 검토 방식의 평가방법 보다 객관적인 방법으로 결과의 신뢰도 또한 높이고 있다.
위의 결과로 메시지 시스템에서 스레드를 실행 시키는 시간이 성능저하에 중요한 요인이 될 수 있음을 알 수 있다. 즉 접속자 수가 늘어나 스레드 할 당이 계속 증가할 경우 성능이 저하 될 수 있다.
복잡하고 방대해진 시스템 개발에서 소프트웨어 아키텍처는 데이터 구조나 알고리즘의 선택보다 중요한 부분이 되고 있다. 즉, 다양한 이해 관계자 들의 요구사항을 시스템에 정확히 반영해야 하고, 이를 위해 시스템의 품질 속성과 이해관계자들의 이해관계를 반영한 소프트웨어 아키텍처의 설계가 성공적인 프로젝트를 위한 중요한 이슈가 되었다.
후속연구
본 논문에서는 평가 결과에 따라 Thread Pool 아키텍처가 가장 양호한 성능을 보여주는 것으로 아키텍처 설계 대안으로 최종 선정되었다. 이 연구를 통해 중요한 품질 요구사항을 실현하는 아키텍처 접근법이 설계 단계에서 결정되어 많은 비용 절감이 예상될 수 있다.
향후 연구과제로는 메시지 시스템 이외의 다른 도메인의 아키텍처 설계 시 설계 패턴을 활용하는 방안과 평가 방법에 대한 연구가 이루어져야 한다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.