728x90
Ch18. 서비스 지향 소프트웨어 공학
📌 [교재] 소프트웨어 공학 10판
[웹 서비스] : Web Services
✅웹 서비스
- 다른 프로그램이 사용 가능하게 한 계산 및 정보자원을 위한 표준
- 서비스는 서비스를 사용하는 애플리케이션과 독립적
- 서비스 제공자는 조직 외부의 사용자에게 서비스를 제공
✅A Web Service is :
- 서비스가 독립적이고 느슨하게 연결
- 외부 컴포넌트에 의존하지 않음, 서비스 기능과 매개변수
- HTTP, SOAP 등 인터넷과 XML 기반 프로토콜을 이용하여 접근
- 플랫폼 및 구현 언어에 독립적
✅서비스 지향 접근법의 장점
- 조직 내부나 외부의 서비스 제공자에 의해 제공
- 서비스에 대한 정보가 공개되어 있으며 권한이 있으면 누구나 사용
- 배치(deploy) 또는 실행 시까지 서비스 바인딩 연기 가능
- 기존 서비스들을 이용하여 새로운 서비스 구축 가능
- 서비스 사용에 따른 비용 지불 가능
- 외부 서비스를 이용하여 애플리케이션 경량화 가능
18.1 서비스 지향 아키텍처
[서비스 지향 아키텍처 구조] : Service-oriented architectures [=SOA]
✅서비스 지향 아키텍처 구조
▷서비스 제공자
- 서비스를 설계하고 구현
- 서비스에 대한 인터페이스 명세를 생성
- 서비스에 대한 정보를 레지스트리에 등록
▷서비스 요청자
- 서비스 명세를 검색하여 서비스 제공자를 찾음
- 표준 서비스 프로토콜을 이용
- 애플리케이션을 서비스와 연결
▷서비스 레지스트리
✅분산환경에서 독립적으로 수행되는 서비스들을 이용
✅서비스는 서비스 제공자의 컴퓨터에서 수행됨
✅서비스 통신과 정보 교환을 위한 표준 프로토콜이 개발됨
- XML Web Service : 복잡, 실행 오버헤드가 상당함
- RESTful : 간단, 복잡한 기능을 제공하는 서비스에는 부적절
▶ [SOA 장점]
- 외부 제공자에게 서비스를 아웃소싱 가능
- 서비스는 언어 독립적
- 단순화된 정보 교환을 통해 조직 간의 컴퓨팅이 가능
[Key standards] p555
✅SOAP (Simple Object Access Protocol) *알아두기**
- 서비스 메시지 교환 표준
✅WSDL (Web Service Description Language) * 알아두기**
- 서비스 인터페이스의 정의 표준
- 서비스 오퍼레이션 (이름/매개변수/타입)
- 서비스 바인딩
✅WS-BPEL
- 워크플로우 언어 표준
✅UDDI
- 서비스 명세, 서비스 검색
[Web service description language] 556p
✅인터페이스(what)
- 서비스가 지원하는 오퍼레이션, 송수신하는 메시지 형식
✅바인딩(how)
- 추상 인터페이스를 구체적인 프로토콜 집합으로 변환
✅구현위치(where)
- 웹 서비스의 엔드 포인트
18.2 RESTful 서비스
[RESTful services] p559 --- 그냥 기본적인 상식으로 알길 원함
✅SOAP/WSDL을 이용한 XML 웹 서비스 표준의 문제점
- 무거움(heavyweight)
- 필요 이상으로 일반적(over-general)
- 비호율적(inefficient)
✅웹서비스의 대안
- REST(REpresentation State Transfer) 는 서버에서 클라이언트로 자원 전송 방식
- RESTful은 overhead가 적은 서비스
✅자원(resources)
- RESTful 이 기본 요소는 자원
- 자원은 식별자를 가짐
✅‘자원’ 오퍼레이션
- Create : 자원을 생성(존재하게 함) -> POST
- Read : 자원값을 읽음(표현을 반환) -> GET
- Update : 자원의 값을 변경함 -> PUT
- Delete : 자원을 접근 불가능하게 함 -> DELETE
✅JSON(JavaScript Object Notation)의 사용
- 웹서비스는 XML을 사용하여 오버헤드가 큼
✅RESTful 의 문제점
- 서비스가 복잡하고 자원이 단순하지 않을 때는 서비스 설계가 어려움
- 공식적인 RESTful 서비스 표준이 없음
- 서비스 품질(뺀)이나 신뢰성을 위한 구조를 직접 구현해야 함
✅RESTful과 SOAP API 동시 제공
728x90
'[전공] 학교 전공 공부 > [학교] 소프트웨어 공학' 카테고리의 다른 글
Ch25. 형상 관리 (0) | 2022.06.10 |
---|---|
Ch23. 프로젝트 계획 수립 (0) | 2022.06.09 |
Ch17. 분산 소프트웨어 공학 (0) | 2022.06.08 |
Ch15. 소프트웨어 재사용 (0) | 2022.06.08 |
Ch12. 안전성 공학 (0) | 2022.06.07 |