본문 바로가기
아키텍쳐를 고민하기

서비스 지향 아키텍쳐?? Service-Oriented Architecture

by simplify-len 2020. 9. 4.

서비스 지향 아키텍쳐는 무엇일까?

토마스 얼에 의해 정의된 SOA의 몇 가지 원리를 이해하고 간략하게 서비스 지향 아키텍쳐에 대해서 이해하자.

서비스는 언제나 상호 운용성(interoperable)이 있다.

그 외 서비스의 설계 원리를 살펴보면

서비스 설계 원리 내용
1. 서비스 계약 서비스는 그 목적과 기능을 하나 이상의 설명 문서에 계약으로써 표현한다.
2. 서비스의 느슨한 결합(Serivce Loose Coupling) 서비스는 의존성을 최소화하고 오직 서로에 대해서만 알고 있다.
3. 서비스 추상화(Serivce Abstraction) 서비스는 그들의 계약만을 게시하고, 클라이언트로부터 내부 로직을 숨긴다.
4. 서비스 재사용성(Service Reusability) 서비스는 좀 더 대단위(coarse-grained)의 큰 서비스를 만들기 위해 다른 사람에게 재사용될 수 있다.
5. 서비스 자율성(Serivce Autonomy) 서비스는 하위 환경과 자원을 제어하며 독립적으로 유지되고, 이로부터 서비스는 일관서와 신뢰성을 유지한다.
6. 서비스 무상태(Serivce Statelessness) 서비스는 상태 관리의 책임을 소비자(consumer)에게 두며, 이는 서비스 자율성을 위한 제어 과정과 충돌하지 않도록 하기 위해서다.
7. 서비스 발견성(Service Discoverablity) 메타데이터로 서비스를 기술함으로써 검색이 가능해지고 서비스 계약을 이애할 수 있는데, 이를 통해 서비스는 (재)사용 가능한 자산이 된다.
8. 서비스 구성성(Serivce Composability) 서비스는 크기나 컴포지션의 복잡성과 무관하게, 더 대단위의 서비스를 구성하는 일부가 될 수 있다.

 

REST,SOAP,메시징 서비스를 통해 SOA를 지원하는 헥사고날 아키텍처

왼쪽에 서비스의 경계면과 도메인 모델을 핵심에 두고, 설계 원리를 헥사고날 아키텍쳐와 결합한다.

소비자는 REST와 SOAP와 메시징을 이용해 서비스에 접근한다. 하나의 헥사고날 기반 시스템이 다수의 기술적 서비스 엔드포인트를 지원한다는 점을 주의하자.

 [참고자료]

youtu.be/7fFE2DSwtsE?t=129

ko.wikipedia.org/wiki/%EC%84%9C%EB%B9%84%EC%8A%A4_%EC%A7%80%ED%96%A5_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98

www.slideshare.net/Byungwook/soa-61487404

댓글