1. 웹 서비스
ㅇ 서비스 API로서의 웹
- (API : 실시간으로 즉시 제공 가능한, 규격화된 응용 서비스들의 모음)
ㅇ 주로, 다양한 웹 서비스를, 사용자 관점에서, 즉각 이용 가능케하는, 웹 인터페이스 환경을 일컬음
- 인터넷 웹을 이용한 개방형 환경 구현
. 웹 상에 분산된 자원들을, 웹 서비스로써 결합시키는, 표준화된 기술 환경
2. 웹 서비스 주요 구분
ㅇ 네트워크 아커텍처에 의한 구분
- CORBA, DCOM 등을 기초로한 `분산 오브젝트` 환경의 웹 서비스
. 다소 복잡한 구현에 따라 점차 영향력이 약화됨
- `REST`에 기초한 웹서비스
. 2000년대부터 시작된 웹 2.0 흐름 속에서 점차 확고한 영향력을 갖춤
ㅇ 소프트웨어 구조에 의한 구분
- Loosely Coupled (느슨하게 연결된) 구조
. 호환에 대한 완벽한 정의 보다는 유연하게 주고받는 데이터의 표준 정의
- Service-oriented (서비스 지향적인) 구조
3. `분산 오브젝트` 환경의 웹 서비스
ㅇ 기능상의 특징
- 통합 서비스 환경 제공
. 어떤 시간과 공간, 디바이스(PDA,PC,핸드폰 등)에 구애받음이 없이 통합서비스
환경을 제공
- 기존 시스템과의 통합에 초점을 맞춤
. 새로운 시스템의 구축 보다는 기존의 시스템을 통합 운용에 촛점을 맞춤
. DCOM, J2EE, CORBA 환경에서 각각 개발 구축된 것을 하나로 통합 가능
- 어플리케이션 간의 느슨한 통합을 지원
- 폐쇄형이 아닌 개방형 분산 컴퓨팅 환경
ㅇ 보안 표준화
- XML 서명, XML 암호화, XML 키 관리 명세
ㅇ 웹서비스 관련 표준화 기구
- W3C(World Wide Web Consortium), OASIS
ㅇ 주요 관련 표준 기술
- HTTP : 통신 프로토콜
- XML : 웹서비스의 데이터 유형(포멧) 정의 등 일종의 핵심기반구조 역할
- UDDI : 웹서비스의 검색, 발견 등 디렉토리서비스를 담당
- WSDL : 웹서비스의 서비스를 기술하고 정의하는 언어
- SOAP : 웹서비스의 통신 규약
4. `REST` 웹 서비스 (REpresentational State Transfer, REST API)
※ HTTP 저자 중의 한사람인 로이 필딩(Roy Fielding)의 2000년 박사 학위 논문에서 소개됨
ㅇ 단순하게,
- HTTP 등 범용적인 웹 기술을 통해,
- 특정 URL에 HTTP 메소드(GET,POST 등)로 접속하여,
- XML, JSON 같은 데이터 표현 형식으로,
- 입력의 처리 및 그 결과를 내놓고,
- 이들을 주고받을 수 있는 인터페이스
* 여기서, 데이터의 구조 표현이 가능한 인터페이스 형식으로는, => XML, JSON
ㅇ `REST`의 일반적인 특징
- API 제공을, 웹서버가 담당함
- 서비스 위치는, 경로(URI)로써 알 수 있음
- 자원의 취득은, 메소드(GET,POST 등)를 통해, 그 위치(URI)로부터 얻어짐
- API 성공 여부는, HTTP 상태 코드 처럼 알려줌
- 웹서버에서 제공되는 데이터 형식은, JSON,XML 처럼 구조화된 데이터 형식임
- 클라이언트 측에서는, 상태 관리 불필요 (매번 요청이 독립적으로 실행됨)
ㅇ `REST`의 아키텍처적인 특징 (6가지)
- 클라이언트/서버 모델
- 상태 없는 서버
- 캐시 적극 활용
- 균일한 인터페이스 제공
- 계층화 가능
- 코드 온 디멘드 (즉시 실행 가능) : 例) Javascript 등
ㅇ `REST`의 구성 요소 (3개)
- 자원 (resource) : URI (자원 위치)
- 행위 (verb) : HTTP 메소드 (자원 요청 방법)
- 표현 (representation) : 페이로드 (자원 요청 행위의 구체적 결과 내용)