▣ 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)의 무용보(舞踊譜)가 그 대표적인 예임.
'소프트웨어공학' 카테고리의 다른 글
소프트웨어 아키텍처_품질속성(Quality Attribute) 시나리오, 유자대환응측, 자극 유발원, 대상체, 환경, 응답, 측정 (0) | 2021.11.02 |
---|---|
전자정부지원사업_정보전략계획(ISP)_산출물_점검가이드 (0) | 2021.10.23 |
Java_소스코드_컴파일 오류_인스턴스 변수/메서드, 클래스 변수/메서드의 차이, static, 인스턴스 (0) | 2021.10.19 |
객체지향 설계원칙(SOLID)_클래스 설계 SRP, OCP, LSP, ISP, DIP, 패키지응집성 REP,CCP, CRP, 패키지결합성 ADP, SDP, SAP (0) | 2021.10.17 |
C언어로 된 소스코드 해석_a++, ++a (0) | 2021.09.24 |