Ch18. 서비스 지향 소프트웨어 공학

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