소프트웨어공학

SOAP vs REST_SOA(Service-Oriented Architecture), WSDL, UDDI, ROA(Resource Oriented Architecture), XML, 프로토콜, 아키텍처 스타일, HTTP, 라이프 사이클

스윙스윙 2021. 10. 19. 21:55

▣ SOAP와 REST

SOAP REST
- Simple Object Access Protocol
- 웹상에서 컴퓨터간의 웹 서비스 통신을 위한 프로토콜
구조화된 정보 전송
XML만 사용
WS-Security와 SSL 지원
- 애플리케이션계층의 프로토콜로 분류
- HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜
- SOAP 봉투(envelope), SOAP 헤더(header), SOAP 바디(body)로 구성된 하나의 XML 문서로 표현
- 웹 서비스를 제공하기 위한 표준(WSDL, UDDI)이 잘 정립
SOA(Service Oriented Architecture)서비스 방식으로 데이터에 직접 접근보다는 해당 데이터에 대한 메소드를 각각 구현이 메소드를 이용하여 해당 데이터를 취득
서비스 메소드 호출과 데이터 전달 등  메시징을 위해 사용되는 표준임
자체적인 ACID 기준이 있어서 데이터 손상을 줄여줌
페이로드 처리 : 엄격한 통신 규약
- REST에 비해 상대적으로 무겁고 속도도 느리다
캐시를 사용할 수 없음
- 분산환경에 적합
- 복잡한 구조로 인한 오버헤드가 있음
- 프록시나, 방화벽에 구애 받지 않음
- 원격 프로시져 호출(Remote Procedure Call:RPC) 패턴
- Representational State Transfer
- 자원(resource)의 표현(representation) 에 의한 상태 전달
아키텍처 스타일
데이터를 위해서 리소스에 접근
일반텍스트, HTML, XML, JSON등 다양한 포맷을 허용
SSL과 HTTPS를 지원
- HTTP 프로토콜에서만 사용가능
- HTTP를 통해 세션 트랙킹 같은 부가적인 전송 레이어 없이, 전송하기 위한 아주 간단한 인터페이스
- ServiceRegister를 거치지 않고 리소스 요청을 바로 받아 들인다. 
ROA(Resource Oriented Architecture) 서비스 방식
- SOAP보다 개발하기가 단순하므로 학습곡선이 작고 도구가 거의 필요없음
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미
ACID 준수와 관련된 내용이 없음
페이로드 처리 : 미리 알릴 필요 없음
- 가볍고 빠르고 쉽다
- 캐시를 사용할 수 있음
- point to point 통신 모델을 가정하므로 분산환경에 비적합
- 보안, 정책등에 대한 표준이 없음
- HTTP 프로토콜은 Stateless Protocol이므로 REST 역시 무상태성

 

▣ SOA(Service-Oriented Architecture)

서비스라 불리는 분할된 애플리케이션 조각들을 단위로 약 결합으로 연결하여 하나의 완성된

애플리케이션을 개발하기 위한 소프트웨어 아키텍처

 

- 플랫폼 독립적: SOA에서의 서비스는 표준화된 방법을 통해 모든 환경에서 호출이 가능해야 한다.

이는 서비스 호출 메커니즘이 널리 채택된 표준에 근거해야 함을 의미한다.

- 약 결합 방식: 서비스는 그 이용에 있어 내부 자료 구조나 지식을 필요로 해서는 안 된다.

- 위치 투명성: 서비스는 그들의 정의와 위치 정보를 UDDI와 같은 저장소에 저장하고 여러 클라이언트를 통해

그들의 위치와 상관없이 등록, 호출될 수 있어야 한다.

 

 

구분 기술요소 내용
데이터교환 XML 인터넷 데이터 교환 기술
서비스호출 SOAP Simple Object Access Protocol
XML언어를 이용한 분산환경에서의 정보교환을 위한 프로토콜
서비스 메소드 호출과 데이터 전달 등 메시징을 위해 사용되는 표준임
분산된 환경의 정보를 교환하는 통신 프로토콜로 인터넷을 통해 Web Service를 요청하고 응답하는 기술
서비스기술 WSDL Web services Description Language
Web Service를 정의하고, 서비스에 대한 접근방식을 기술한 XML기반 언어
서비스 인터페이스를 정의를 위한 표준, 서비스 오퍼레이션과 서비스 바인딩이 정의되는 방식을 결정함
서비스등록 UDDI Universal Description, Discovery and Integration
인터넷상에서 Web Service에 대한 정보 등록, 검색하는 공용 Registry 서비스
미들웨어 ESB Enterprise Service Bus
메시징을 통해 다수의 System에 대해 약결합 [loosely coupling] 방식으로 연결하여 SOA구현을 가능케하는 통합 미들웨어

 

■ SOA 라이프 사이클의 단계

모델(Model) 기존의 운영 중인 프로세스를 인정하고 프로세스를 개선해야 할 사항을 새로운 비즈니스 프로세스로 정의하고 설계하는 단계임
조합(Assemble) 모델 단계에서 설계된 서비스를 기존 서비스와 약결합 형태로 개발하고 구현하는 단계임
배포(Deploy) 설계되고 조합된 서비스를 실제 업무에 적용하고 각각의 서비스를 하나로 통합하여 업무에 적용하는 단계임
관리(운영) (Manage) 서비스를 관리하고 사용자 인증을 담당하는 단계임
서비스 운영품질을 위한 제반관리활동을 위한 서비스를 상시 모니터링을 통하여 제공하면서 비즈니스 프로세스 개선점을 도출함

 


2018년 31번

정답 : 4번

가. service registry, 나. service requester(Consumer), 다. service provider

 


2019년 48번

정답 : 3번

웹서비스란 인터넷을 통해 XML 데이터를 주고받는 인터페이스로 인터넷 표준 프로토콜을 이용해 동적으로 상호작용하는 느슨하게 결합된(loosely coupled) 소프트웨어 컴포넌트라고 볼 수 있음

 

구분 기술요소 내용
데이터교환 XML 인터넷 데이터 교환 기술
서비스호출 SOAP Simple Object Access Protocol
XML언어를 이용한 분산환경에서의 정보교환을 위한 프로토콜
서비스 메소드 호출과 데이터 전달 등 메시징을 위해 사용되는 표준임
분산된 환경의 정보를 교환하는 통신 프로토콜로 인터넷을 통해 Web Service를 요청하고 응답하는 기술
서비스기술 WSDL Web services Description Language
Web Service를 정의하고, 서비스에 대한 접근방식을 기술한 XML기반 언어
서비스 인터페이스를 정의를 위한 표준, 서비스 오퍼레이션과 서비스 바인딩이 정의되는 방식을 결정함
서비스등록 UDDI Universal Description, Discovery and Integration
인터넷상에서 Web Service에 대한 정보 등록, 검색하는 공용 Registry 서비스
미들웨어 ESB Enterprise Service Bus
메시징을 통해 다수의 System에 대해 약결합 [loosely coupling] 방식으로 연결하여 SOA구현을 가능케하는 통합 미들웨어

 


2021년 33번

정답 : 2번

1) SOAP이 REST보다 구현이 어렵고 확장성이 낮음 (1번 틀림)

2) SOAP 기반 웹 서비스에서 요청 및 응답은 모두 XML 형식으로 수행하는 반면,

RESTful 웹서비스에서는 JSON, XML, 일반 텍스트 등을 사용한다. (2번 맞음)

3) SOAP 기반 웹 서비스는 WS-Reliability나 WS-Transaction과 같은 기반구조의 표준이지만,

RESTful 웹 서비스는 서비스 품질이나 신뢰성 관리를 위해 자신의 기반구조를 구현해야 함 (3번 틀림)

4) SOAP 기반 웹 서비스는 RPC 메커니즘의 서비스 지향적인데 반해,

RESTful 웹 서비스는 리소스 지향적임

 


2012년 37번

정답 : 4번

RMI는 Java에서 제공하는 원격함수호출 기능임

 

* SOA(Service-Oriented Architecture)

서비스라 불리는 분할된 애플리케이션 조각들을 단위로 약 결합으로 연결하여 하나의 완성된

애플리케이션을 개발하기 위한 소프트웨어 아키텍처

구분 기술요소 내용
데이터교환 XML 인터넷 데이터 교환 기술
서비스호출 SOAP Simple Object Access Protocol
XML언어를 이용한 분산환경에서의 정보교환을 위한 프로토콜
서비스 메소드 호출과 데이터 전달 등 메시징을 위해 사용되는 표준임
분산된 환경의 정보를 교환하는 통신 프로토콜로 인터넷을 통해 Web Service를 요청하고 응답하는 기술
서비스기술 WSDL Web services Description Language
Web Service를 정의하고, 서비스에 대한 접근방식을 기술한 XML기반 언어
서비스 인터페이스를 정의를 위한 표준, 서비스 오퍼레이션과 서비스 바인딩이 정의되는 방식을 결정함
서비스등록 UDDI Universal Description, Discovery and Integration
인터넷상에서 Web Service에 대한 정보 등록, 검색하는 공용 Registry 서비스
미들웨어 ESB Enterprise Service Bus
메시징을 통해 다수의 System에 대해 약결합 [loosely coupling] 방식으로 연결하여 SOA구현을 가능케하는 통합 미들웨어

 


2013년 32번

정답 : 1번

다. XML 문서의 주석은 <!-- -->로 묶어 표현

라. XML 태그 이름 작성 규칙

1) 태그이름(요소이름)의 첫글자는 반드시 문자(한글, 영문 등)이어야 하고, 특수문자중에서는 언더바(_)로만 시작할 수 있음. 언더바 외의 특수문자와 숫자로는 시작할 수 없음

2) 태그의 시작 기호 <, </ 다음에 공백을 사용할 수 없고, 태그 이름 중간에 공백을 사용할 수 없음 그러나 태그의 끝 기호인 >와 태그이름 사이에는 공백을 허용함

3) 태그 이름 중간에 문자, 숫자 또는 특수문자 중 하이픈(-), 언더바(_), 마침표(.)만 사용할 수 있고, 그 외의 특수문자로는 사용할 수는 없음

4) 태그이름은 영문자의 대소문자를 구별함

5) 특수문자 중에 콜론(:)도 태그이름에 포함시킬 수 있지만 네임스페이스에 관련된 기호이므로 인터넷 익스플로러에서 XML 파서가 네임스페이스로 간주하고 에러를 발생함

6) <XML>도 태그이름으로 사용할 수 있으나 중복되므로 가급적이면 사용을 피하는 것이 좋음

 


2014년 46번

정답 : 4번

모델조합배포관리(모조배관)

모델(Model) 기존의 운영 중인 프로세스를 인정하고 프로세스를 개선해야 할 사항을 새로운 비즈니스 프로세스로 정의하고 설계하는 단계임
조합(Assemble) 모델 단계에서 설계된 서비스를 기존 서비스와 약결합 형태로 개발하고 구현하는 단계임
배포(Deploy) 설계되고 조합된 서비스를 실제 업무에 적용하고 각각의 서비스를 하나로 통합하여 업무에 적용하는 단계임
관리(운영) (Manage) 서비스를 관리하고 사용자 인증을 담당하는 단계임
서비스 운영품질을 위한 제반관리활동을 위한 서비스를 상시 모니터링을 통하여 제공하면서 비즈니스 프로세스 개선점을 도출함

 


2016년 47번

정답 : 1번

1)번 서비스와 서비스 사용자 사이는 메시지를 사용하여 통신함. SOA메시지를 위한 규약은 SOAP등의 웹서비스임

'속성-값의 쌍으로 이루어진 데이터 객체를 전달하기 위한 경량의 데이터 교환 표준'은 JSON(JavaScript Object Notation)임 -> 출제위원은 JSON은 SOA의 메시지 표준으로 어울리지 않다고 생각함

그러나 최근 SOA가 확장되어 분산시스템의 한 요소로 사용되면서 JSON도 SOA의 메시지 통신규약으로 사용됨

2)번 SOA는 서비스들을 조합, 배열하여 기업에서 원하는 업무를 구현함. 이것을 워크플로우라고 함

3)번 SOA에서 제공하는 서비스를 사용하려면 그 서비스가 제공하는 명세가 필요함

4)번 SOA에서 제공하는 서비스를 사용하려면 그 서비스와 연결될 수 있는 인터페이스와 바인딩 방법을 제공해야 함

 


2016년 49번

정답 : 2번

서비스 코리오그라피(Service Choreography)

오케스트레이션 프로세스 관점에서 통합

코리오그라피는 협업 관점에서 통합

Choreography : 발레의 안무(按舞), 또는 그 안무의 구성 내용(構成內容)을 기록·보존하는 기호. 라반(R. Laban)의 무용보(舞踊譜)가 그 대표적인 예임.