웹 서비스(영어: Web Service)는 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템이다. 웹 서비스는 서비스 지향적 분산 컴퓨팅 기술의 일종이다. 웹 서비스 프로토콜 스택은 SOAP, WSDL, UDDI 등으로 이루어진다. 모든 메시징에 XML이 사용되어 상호운용성이 높다.
기존의 분산 컴퓨팅 기술들인 CORBA, DCOM, RMI과 비교했을 때 주된 차이점은 다음과 같다.
- 느슨한 연결(loose coupling)
- 이진 부호화(바이너리 인코딩)가 아닌 XML 유니코드 부호화를 사용한다.
- 객체 지향(object-oriented)이 아닌 메시지 지향(message-oriented)이다.
웹 서비스라는 명칭을 가지고 있지만 월드 와이드 웹과 혼동하여서는 안 된다. 월드 와이드 웹은 사람과 컴퓨터 간의 상호작용을 위한 시스템인데 반해, 웹 서비스는 컴퓨터와 컴퓨터 간의 상호작용을 위한 시스템이다.
분산 컴퓨팅을 실현할 수 있는 신기술로 등장하여 큰 기대감에 매스미디어에서 여러 번 다루어져서 인지도는 증가하였다. 하지만, 시장에서의 실효성 때문에 많이 보급되지 않았다. 아직 관련 기술의 표준화가 더디어 보급은 늦어지고 있다. 하지만 최근에 서비스 지향 아키텍처(SOA)가 각광을 받으면서 그 기반 기술인 웹 서비스 또한 주목을 다시 받고 있다.
웹 2.0과 함께 SOAP을 이용하지 않는 REST 스타일 웹 서비스도 등장하여 많은 주목을 받고 있다. 웹 2.0의 한 분야로 웹 서비스를 이용하여 여러 웹 서비스를 조합하여 웹 애플리케이션이나 서비스를 구축하는 것을 매시업이라고 부른다. 현재 이러한 분야는 새로운 사업으로까지 확장해 나가고 있다.
SOAP(Simple Object Access Protocol)은 일반적으로 널리 알려진 HTTP,HTTPS,SMTP등을 사용하여 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜이다. SOAP은 웹 서비스(Web Service)에서 기본적인 메시지를 전달하는 기반이 된다. SOAP에는 몇가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call:RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)쪽으로 메시지를 요청 하고, 서버는 메시지를 즉시 응답하게 된다. SOAP는 XML-RPC와 WDDX에서 envelope/header/body로 이루어진 구조와 전송(transport)와 상호 중립성(interaction neutrality)의 개념을 가져왔다.
SOAP은 XML을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계되어 있다. 「헤더」는 선택사항으로 반복이나 보안 및 트랜젝션을 정보로 하는 메타 정보를 가지고 있다. 「바디」부분은 주요한 정보인 정보를 가지고 있다.
WSDL(Web Services Description Language의 약자)은 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술된다. 웹 서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술된다.
UDDI(Universal Description, Discovery and Integration)는 웹 서비스 관련 정보의 공개와 탐색을 위한 표준이다. 서비스 제공자는 UDDI라는 서비스 소비자에게 이미 알려진 온라인 저장소에 그들이 제공하는 서비스들을 저장하게 되고, 서비스 소비자들은 그 저장소에 접근함으로써 원하는 서비스들의 목록을 찾을 수 있게 된다.
XML(Extensible Markup Language)은 W3C에서 다른 특수 목적의 마크업 언어를 만드는 용도에서 권장되는 다목적 마크업 언어이다. XML은 SGML의 단순화된 부분집합이지만, 수많은 종류의 데이터를 기술하는데 적용할 수 있다. XML은 주로 다른 시스템, 특히 인터넷에 연결된 시스템끼리 데이터를 쉽게 주고 받을 수 있게 하여 HTML의 한계를 극복할 목적으로 만들어졌다.
서비스 지향 아키텍처(Service Oriented Architecture, 약칭 SOA 「에스오에이」혹은 「소아」로 발음)란 대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상에 일 처리에 해당하는 소프트웨어 기능을 서비스로 판단하여 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론이다. 업무 처리 변화를 시스템에 빠르게 반영하고자 하는 수요를 대응하기 위해 2004년부터 IT업계에서 주목을 하고 있다
웹 2.0(Web 2.0)은 단순한 웹사이트의 집합체를 웹 1.0으로 보고, 웹
애플리케이션을 제공하는 하나의 완전한 플랫폼으로의
발전을 웹 2.0이라고 지칭한다. 이 용어는 'O'Reilly Media'에서 2003년부터 사용하기 시작하면서 대중화 되었다. 이 개념의
주창자들은 궁극적으로 여러 방향에서 웹 2.0이 데스크톱
컴퓨터의 응용 프로그램을 대체할 것으로 예견하고 있다.
웹 2.0(Web 2.0)은 단순한 웹사이트의 집합체를 웹 1.0으로 보고, 웹 애플리케이션을 제공하는 하나의 완전한 플랫폼으로의 발전을 웹 2.0이라고 지칭한다. 이 용어는 'O'Reilly Media'에서 2003년부터 사용하기 시작하면서 대중화 되었다. 이 개념의 주창자들은 궁극적으로 여러 방향에서 웹 2.0이 데스크톱 컴퓨터의 응용 프로그램을 대체할 것으로 예견하고 있다.
시맨틱 웹(Semantic Web)은 현재의 인터넷과 같은 분산환경에서 리소스(웹 문서, 각종 화일, 서비스 등)에 대한 정보와
자원 사이의 관계-의미 정보(Semanteme)를 기계(컴퓨터)가 처리할 수 있는 온톨로지형태로 표현하고, 이를 자동화된
기계(컴퓨터)가 처리하도록 하는 프레임워크이자 기술이다. 웹의 창시자인 팀 버너스 리가 1998년
제안했고 현재 W3C에 의해 표준화 작업이 진행중이다.
시맨틱 웹과 현재 웹의 차이
기존의 HTML로 작성된 문서는 컴퓨터가 의미정보를 해석할 수 있는 메타 데이터보다는 사람의 눈으로 보기에 용이한 시각정보에 대한 메타데이터와 자연어로 기술된 문장으로 가득 차 있다. 예를 들어 <em>바나나</em>는 <em>노란색</em>이다. 라는 예에서 볼 수 있듯 <em>이라는 태그는 단지 바나나와 노란색이라는 단어를 강조하기 위해 사용된다. 이 HTML을 받아서 처리하는 기계(컴퓨터)는 바나나 라는 개념과 노란색 이라는 개념이 어떤 관계를 가지는지 해석할 수 없다. 단지 <em> 태그로 둘러싸인 구절을 다르게 표시하여 시각적으로 강조를 할 뿐이다. 게다가 바나나가 노란색이라는 것을 서술하는 예의 문장은 자연어로 작성되었으며 기계는 단순한 문자열로 해석하여 화면에 표시한다.
시맨틱 웹은 XML에 기반한 시맨틱 마크업 언어를 기반으로 한다. 가장 단순한 형태인 RDF는 <Subject, Predicate, Object>의 트리플 형태로 개념을 표현한다. 위의 예를 트리플로 표현하면 <urn:바나나, urn:색, urn:노랑>과 같이 표현할 수 있다. 이렇게 표현된 트리플을 컴퓨터가 해석하여 urn:바나나 라는 개념은 urn:노랑 이라는 urn:색 을 가지고 있다는 개념을 해석하고 처리할 수 있게 된다. 보다 구체적인 예로 네이버가 NHN 소유임을 나타내는 트리플은 <http://naver.com, urn:wikipedia-ko:소유, http://nhncorp.com> 과 같이 된다. 시맨틱 웹은 이러한 트리플 구조에 기반하여 그래프 형태로 의미정보인 온톨로지를 표현한다.
REST (Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 용어는 로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었다. 그는 하이퍼텍스트 전송 프로토콜 (HTTP)의 주요 저자들 가운데 한사람이다. 그 뒤로 이 개념은 네트워킹 문화에 널리 퍼졌다.
엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 네트워크 아키텍처 원리란 리소스를 정의하고 리소스에 대한 주소를 지정하는 방법에 대한 개괄을 말한다. 간단한 의미로는, 도메인 지향 데이터를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 부가적인 전송 레이어 없이, 전송하기 위한 아주 간단한 인터페이스를 말한다. 이 두 가지의 의미는 당연히 겹치는 부분과 충돌되는 부분이 있다. 필딩의 REST 아키텍처 형식을 따르면 HTTP 프로토콜을 사용하지 않은채로 또 월드 와이드 웹에서 전송하지 않고도 아주 커다란 소프트웨어 시스템을 설계하는것도 가능하다. 또한 리모트 프로시져 콜을 이용하는 대신에 간단한 XML과 HTTP 인터페이스(REST 원리에 부합하지는 않지만)를 이용해 설계하는것도 가능하다. 현실 세계에서의 REST 용어에 대한 이러한 두가지 의미는 기술 토론에서 종종 혼란을 야기한다.
필딩의 REST 원리를 따르는 시스템은 종종 RESTful이란 용어로 지칭된다. 열정적인 REST 옹호자들은 스스로를 RESTafrians 이라고 부른다.
매시업(영어: Mashup)은 웹으로 제공하고 있는 정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 것을 말한다. 웹 2.0의 구성 요소로 주목을 받고 있다. 구글이나 야후, 마이크로소프트 등이 제공하는 지도 서비스, 인터넷 서점 아마존이 제공하는 상품 정보 등, 자사의 기술을 웹 서비스로서 API를 공개하는 경우가 늘고 있으며, 이들 기능에 독자적인 사용자 인터페이스를 융합하여 새로운 서비스를 제공하고 있다.
미국을 중심으로 다수의 매시업 사례가 등장하여, 범죄 통계 정보, 허리케인 정보, 주유소의 가격정보 처럼 실용적인 것에서부터, 온천 정보, UFO 목격 정보, 뉴욕의 영화 위치, 현장정보 처럼 취미나 엔터테인먼트에 관한 것까지 여러 종류가 있다. 매시업의 원천이 되는 API의 개발에도 박차가 가해지고 있다.
메시업이란 원래 음악 용어로 여러 곡을 섞는 기술을 지칭하는 말이다.