개발자 안내서 > 개발자 안내서 > Codebeamer 아키텍처
Codebeamer 아키텍처
이 문서에서는 Codebeamer ALM의 아키텍처와 주요 구성 요소에 대해 설명합니다.
Codebeamer: 아키텍처 및 구성 요소
Codebeamer ALM은 업계에서 입증된 여러 기술을 사용하여 빌드된 계층화된 웹 응용 프로그램입니다. 이 플랫폼에서는 여러 개의 오픈 소스 프레임워크를 사용합니다. Codebeamer는 다음과 같은 기본 계층과 구성 요소로 구성됩니다.
웹 컨테이너: Apache Tomcat
보안 계층: 인증 및 승인
Codebeamer 핵심 서비스:
검색 및 보고
워크플로 엔진
Wiki 엔진
이벤트 엔진
SCM 관리
문서 관리
웹 컨테이너: Apache Tomcat
웹 응용 프로그램이므로 Codebeamer ALM 사용자는 사용 중인 웹 브라우저를 사용합니다. Codebeamer에서는 Apache Tomcat 웹 서버를 컨테이너로 사용하여 사용자의 웹 요청을 처리합니다.
웹 요청은 Spring Model-View-Controller 프레임워크를 사용하여 웹 컨트롤러에서 처리합니다. 더욱 복잡한 시나리오의 경우 Spring WebFlow가 사용됩니다. 이러한 컨트롤러는 산업 표준 JSP 페이지와 결합됩니다. 콘텐츠가 웹 요청과 상관 없는 경우 HTML 콘텐츠를 처리하거나 Wiki 플러그인 또는 이메일을 렌더링하는 데 Apache Velocity가 사용됩니다.
응용 프로그램의 구성 요소는 가장 널리 사용되는 오픈 소스 프레임워크인 Spring에서 관리합니다.
또한 웹 컨테이너에는 Codebeamer ALM에서 원격으로 관리되는 데이터에 열린 REST API를 사용하여 액세스하는 기능도 있습니다. 이 기능을 사용하여 사용자 정의 응용 프로그램을 빌드해 다른 시스템 또는 외부 구성 요소로 Codebeamer ALM을 확장하거나 이러한 구성 요소와 사용자 정의 통합을 빌드할 수 있습니다.
보안 계층
보안은 Codebeamer ALM과 같은 엔터프라이즈 응용 프로그램의 매우 중요한 요소입니다. 보안 기능은 시스템에서 누가 어떤 정보에 액세스할 수 있는지 제어하고 각 사용자에 대해 허용되는 작업을 제어하는 데 매우 중요합니다.
따라서 보안은 최상위 보안 계층부터 시작하는 응용 프로그램을 통해 처리됩니다. 이 계층은 각 사용자의 인증(예: 누구입니까?라는 질문에 답하기) 및 승인(어떤 작업을 수행할 수 있습니까?라는 질문에 답하기)을 처리합니다. 이 계층은 웹 컨트롤러 계층에 대한 첫 번째 방어선입니다. ALM Codebeamer의 핵심 서비스 전반에 걸쳐 구현된 다양한 보안 및 권한 확인과 결합하여 보안 및 액세스 제어에 대한 완벽한 확신을 제공합니다.
보안은 응용 프로그램 전체에서 다양한 수준으로 구성됩니다. 시스템 관리자는 사용자에 대해 글로벌 보안 그룹을 구성할 수 있으며 이 그룹은 더 세부적으로 나눌 수 있습니다(역할을 사용하여 프로젝트 매니저별로 프로젝트 수준까지 나눌 수 있음). 이러한 엔티티(그룹/역할/사용자)에게 다양한 권한 토큰을 부여할 수 있습니다. 해당 토큰이 있는지 확인하여 사용자가 특정 정보 부분을 볼 수 있는지 또는 특정 작업을 실행할 수 있는지 여부를 결정할 수 있습니다. 자세한 내용은 기본 사항: 프로젝트, 역할, 그룹, 멤버 및 사용자를 참조하십시오.
Codebeamer ALM의 핵심
Codebeamer의 핵심은 기존의 계층화된 아키텍처로 구축되며, 최상위 수준은 응용 프로그램의 다양한 기능 영역을 다루는 관리자 서비스 집합입니다(예: 트래커 작업을 위한 관리자 서비스 또는 테스트 관리를 위한 관리자 서비스). 각 관리자 서비스는 다양한 DAO 계층과 통신하며 데이터를 SQL 데이터베이스에 저장합니다.
데이터는 사용자 정의 SQL 문을 사용하여 SQL 데이터베이스 테이블 모델로 매핑되는 기존 DTO를 통해 모델링됩니다. 최적의 성능을 위해 이러한 SQL/DAO 계층은 신중하게 작성됩니다. 이들은 데이터의 효율적인 캐싱, 레이지 및 페이징된 가져오기와 결합됩니다. 관리자와 DAO는 여러 계층에서 응용 프로그램의 보안/권한 측면을 관리합니다.
기록, 감사 및 전체 추적 가능성
Codebeamer ALM은 콘텐츠 및 메타데이터 측면에서 각 항목의 변경 기록(예: 변경 시기 및 변경한 사용자에 대한 정보)을 추적하도록 설계되었습니다. 따라서 사용자는 과거에 모든 작업 항목에 대해 발생한 일을 확인할 수 있으며 버전을 비교하거나 아티팩트 기록의 특정 단계로 돌아갈 수도 있습니다. 이렇게 하면 변경 내용을 추적하고 시스템에서 가장 중요한 데이터를 확인할 수 있습니다. 이 기능을 사용하면 규제 준수 감사를 통해 요구 사항, 테스트 사례 및 기타 모든 작업 항목에 대해 수행된 작업과 수행 중인 작업을 간단히 확인할 수 있습니다.
반면에 추적 가능성은 시스템의 모든 엔티티 간의 종속성을 추적하여 원하는 변경이 미치는 영향을 개략적으로 제공합니다.
사용자 관리 및 LDAP/Active Directory
Codebeamer ALM에는 보안의 핵심 구성 요소로 사용되는 사용자 관리 모듈이 포함되어 있습니다. 시스템 사용자는 그룹, 역할 및 권한의 개념을 통해 개별 사용자가 수행할 수 있는 작업을 제어할 수 있는 Codebeamer ALM 내에서 완전하게 관리됩니다.
많은 기업에는 중앙 사용자 관리에 대한 요구가 있는데, Codebeamer ALM에서는 LDAP/Active Directory 서비스 동기화를 통해 이 기능을 지원합니다.
검색 및 보고
Codebeamer ALM에서는 사용자가 필요한 정보를 효율적으로 찾을 수 있도록 여러 가지 기술을 구현합니다. 이러한 기능은 다음과 같습니다.
모든 문서, Wiki 페이지, SCM 정보, 작업 항목 데이터 등의 배경 인덱싱과 결합된 Lucene 기술을 사용하는 전체 텍스트 검색. 이 모든 것이 효율적인 검색을 가능하게 합니다.
고객이 세부 보고서를 작성하는 데 도움이 되는 보고서 엔진
cbQL이라는 특수한 질의 언어 및 질의 빌드입니다. cBQL을 사용하면 낮은 수준의 SQL 백엔드에서 데이터를 신속하게 찾을 수 있도록 질의를 작성할 수 있습니다.
워크플로 엔진
Codebeamer ALM의 핵심에는 사용자 정의 작성 워크플로 엔진이 포함되어 있습니다. 이 엔진을 사용하면 사용자가 요구 사항 또는 기타 작업 항목에 대한 워크플로를 추가하고 사용자 정의할 수 있습니다. Codebeamer ALM과 함께 기본 제공되는 표준 워크플로는 많은 부분을 사용자 정의할 수 있습니다. 이 워크플로 엔진은 작업 항목의 상태가 변경될 때 자동으로 트리거되며 사용자가 다양한 프로세스를 자동화할 수 있도록 합니다.
Wiki 플러그인이 포함된 Wiki 엔진
개발된 제품은 품질이 뛰어나고 사용자 사양에 맞는지 확인할 수 있으려면 요구 사항 설명 역시 복잡하고 다양해야 합니다. Wiki는 복잡한 페이지를 빠르게 작성할 수 있는 쉬운 방법/마크업/구문을 제공합니다. Codebeamer ALM에는 JSPWiki의 포크를 기반으로 하는 강력한 Wiki 엔진이 포함되어 있습니다. 서식 있는 Wiki 콘텐츠Codebeamer ALM 내에서 다양한 방식으로 표시할 수 있습니다. Wiki 엔진은 Wiki 페이지의 콘텐츠를 렌더링하여 실제 HTML 페이지로 변환하므로 브라우저에서 간단하게 볼 수 있습니다.
Wiki의 사용 사례는 다음과 같습니다.
JSPWiki를 기반으로 하는 기본 제공 WYSIWYG 편집기를 사용하여 요구 사항 사양을 Wiki 텍스트로 작성합니다. 이미지, 테이블 등도 포함할 수 있습니다.
Codebeamer에는 전체 Wiki가 포함됩니다.
사용자 정의 Wiki 플러그인을 추가하여 Wiki 기능을 확장할 수 있습니다.
이벤트 엔진
(사용자 작업 또는 시스템 자동화 이벤트가 원인이든 상관 없이) Codebeamer ALM 내의 작업 항목, Wiki 페이지 또는 기타 아티팩트의 변경 내용은 Codebeamer의 핵심 서비스에서 내부 이벤트를 트리거합니다. 그러면 이러한 이벤트를 시스템에서 사용하여 영향 받는 사용자에게 알림 이메일을 보내거나, 영향 받는 아티팩트의 기록을 업데이트하거나, 시스템 구성 요소 간의 통신을 활성화할 수 있습니다.
이벤트 엔진은 사용자 정의할 수 있으므로 사용자 정의 자동화 프로세스나 외부 시스템과의 동기화가 필요한 경우 사용자 정의 이벤트 수신기를 쉽게 작성할 수 있습니다. Codebeamer ALM에서 보낸 표준 알림 이메일의 내용 역시 쉽게 사용자 정의할 수 있습니다.
백그라운드 작업
복잡하고 규모가 큰 시스템과 마찬가지로 Codebeamer ALM은 때때로 주기적인 정리, 예약된 작업 또는 시간이 많이 걸리는 기타 백그라운드 프로세스를 수행해야 합니다. 이러한 작업은 기본 제공 스케줄러/작업 엔진에서 수행합니다. 몇 가지 예는 다음과 같습니다.
이메일을 통해 자동화/예약된 보고서 보내기
시스템에서 누락된 문서/변경 내용 등 재인덱싱
사용자가 보낸 수신 이메일 또는 이메일 회신 처리
SCM 관리: 관리된 저장소 및 SCMLoop
Codebeamer관리된 저장소 기술은 여러 저장소에서 프로젝트, 그룹 및 역할 기반 관리 기능을 사용하여 사용하기 쉽고 일관되며 공급자의 영향을 받지 않는 저장소 관리 도구를 제공합니다.
관리된 저장소 기능:
프로젝트 및 디렉터리 수준에 대한 역할 기반 저장소 액세스(읽기/쓰기) 구성(디렉터리 수준은 현재 Subversion에서만 사용 가능)
프로세스 적용을 위한 변경 관리, 이슈 및 변경 연관
커밋과 트래커 항목 간의 연관
저장소 사용자/암호 유지보수 및 인증
기록 및 차이 정보를 사용하여 소스 코드 찾아보기
찾아보기 커밋(누가 언제 무엇을 수정했는가)
커밋에 대한 이메일 알림
추세와 함께 통계 커밋
시스템에서 직접 관리하지 않는 외부 저장소와 Codebeamer ALM을 통합하는 것도 가능합니다. 이를 위해서는 특수 후크 소프트웨어인 SCMLoop에서 외부 저장소를 계측해야 합니다.
SQL 데이터베이스
Codebeamer ALM에서는 SQL 데이터베이스를 사용하여 대부분의 모델 데이터를 저장합니다. 현재 PostgreSQL 및 Oracle 데이터베이스가 지원됩니다.
Codebeamer 핵심 서비스는 스키마 설치 및 업그레이드, 인덱싱, 질의 최적화, 캐싱 및 트랜잭션과 같은 다양한 데이터베이스 측면을 자동으로 관리합니다. 플랫폼의 기본 제공 cbQL 도메인별 언어를 사용하여 SQL 데이터를 쉽게 질의할 수 있습니다. 이 엔진은 보안을 위해 단순 cbQL 질의를 기본 SQL 질의로 변환합니다. Codebeamer ALM에서는 저장소의 데이터 일관성을 위해 데이터베이스 트랜잭션을 사용합니다. Oracle 데이터베이스 시스템을 사용하면 모든 작업 항목, 첨부 파일, 문서 및 Wiki 콘텐츠를 데이터베이스에 보관할 수 있습니다(기본 설정).
최상의 성능을 위해 데이터베이스 시스템과 Codebeamer ALM은 대기 시간이 짧은 동일한 고속 네트워크를 사용하도록 구성해야 합니다. 최적의 성능을 위해 페이징 및 데이터 캐싱과 같은 고급 불러오기 기법이 응용 프로그램 전체의 다양한 수준에서 사용됩니다.
파일 시스템
Codebeamer는 비 트랜잭션 데이터 또는 대용량 파일에 디스크 스토리지를 사용할 수 있습니다. 큰 파일을 SQL 데이터베이스가 아니라 원본 파일 시스템에서 더욱 효율적으로 저장/검색할 수 있는 문서 관리 기능을 예로 들 수 있습니다.
SCM 도구는 네이티브 형식(Git 저장소가 파일 시스템에 저장됨)을 사용하지만 해당 정보는 적절한 이벤트 후크 또는 변경 수신기(예: SCMLoop)를 사용하여 SQL 데이터베이스와 자동으로 동기화됩니다.
또 다른 원본 디스크 스토리지는 Lucene 검색 엔진으로, 독자적인 인덱싱 기술을 사용하여 자유 텍스트를 보다 효율적으로 검색합니다. Lucene 인덱스는 Codebeamer ALM에서 변경이 발생할 때 정기적으로 자동 업데이트됩니다. 이 프로세스는 이벤트 엔진과 시스템 전체의 다른 메커니즘으로 제어됩니다.
아키텍처 세부 정보
성능 테스트 결과
성능 테스트 관련 정보는 https://www.ptc.com/en/support/refdoc에서 성능 테스트 보고서를 참조하십시오.
PDF를 다운로드하려면 다음 단계를 수행합니다.
1. https://www.ptc.com/ko/support/refdoc로 이동하여 로그인합니다.
2. 제품 필드에 Codebeamer를 입력합니다.
3. 릴리스 필드에 필요한 릴리즈를 입력합니다.
4. 검색 대상 필드에 성능 테스트 보고서를 입력합니다.
5. 성능 테스트 보고서 링크를 열고 PDF를 다운로드합니다.
도움이 되셨나요?