Sun Java System Application Server 9.1 관리 설명서

웹 서비스 개요

웹 서비스는 HTTP와 같은 인터넷 프로토콜을 통해 전송되는 SOAP(Simple Object Access Protocol) 등의 XM 기반 프로토콜을 사용하여 클라이언트가 액세스하는 응용 프로그램입니다. 클라이언트는 웹 서비스 정의 언어(WSDL) 파일과 같은 XML 아티팩트를 사용하여 정의된 웹 서비스 응용 프로그램에 인터페이스와 바인딩을 통해 액세스합니다.

XML(eXtensible Markup Language)은 W3C(World Wide Web Consortium)에서 개발한 표준으로 웹 서비스의 토대를 이루는 기반 중 하나입니다. XML을 통해 웹 서비스와 클라이언트가 공통의 언어로 서로 통신할 수 있습니다. XML은 단순하고 유연한 텍스트 기반 마크업 언어입니다. XML 데이터는 꺾쇠 괄호로 둘러쌓인 태그를 사용하여 표시됩니다. 태그에는 표시하는 데이터의 의미가 포함됩니다. 이러한 마크업을 통해 여러 시스템이 상호 간에 손쉽게 데이터를 교환할 수 있습니다.

DTD(Document Type Definition) 또는 XSD(XML Schema Definition)는 XML 문서의 구조를 설명합니다. 해당 XML 문서에 사용할 수 있는 태그에 대한 정보, 이러한 태그의 순서와 같은 정보가 들어 있습니다.

XSLT(eXtensible Stylesheet Language Transformation)는 XML 문서를 다른 형식으로 변환하는 데 사용됩니다.

웹 서비스 표준

SOAP(Simple Object Access Protocol)는 웹 서비스에 대한 공통 메시징 형식을 제공합니다. 서로 인식되지 않은 객체가 SOAP를 통해 메시지를 교환할 수 있습니다. SOAP는 XML 기반 데이터 인코딩 형식과 HTTP를 사용하여 메시지를 전송합니다. SOAP는 프로그래밍 언어 및 작동 플랫폼 모두에 독립적이며 종점에서 특정 기술이 필요하지 않습니다.

UDDI(Universal Description, Discovery, and Integration)는 웹 서비스를 등록, 등록 해제 및 조회하는 표준 방법을 제공합니다. 전화번호부와 비슷한 UDDI 레지스트리를 통해 공급자는 자신의 서비스를 등록하고 요청자는 서비스를 찾을 수 있습니다. 요청자가 서비스를 찾은 뒤에는 요청자와 공급자 사이에서 레지스트리가 더 이상 아무런 역할을 하지 않습니다.

WSDL(Web Services Description Language)은 웹 서비스의 세부 정보를 지정하는 표준 방법을 정의합니다. 웹 서비스 인터페이스와 바인딩의 세부 정보, 그리고 기타 배포 세부 정보를 지정할 수 있는 범용 XML 스키마입니다. 이렇게 서비스 세부 정보를 지정하는 표준 방법이 있기 때문에 클라이언트에서 사용 가능한 웹 서비스에 대해 미리 알 필요가 없습니다.

ebXML(Electronic Business using eXtensible Markup Language)은 기업에서 인터넷을 통해 비즈니스를 수행할 수 있도록 해주는 사양의 집합입니다. OASIS(Organization for the Advancement of Structured Information Standards)에서 ebXML 사양을 관리합니다.

Java EE 웹 서비스 표준

JAXP(Java APIs for XML processing)는 XML 문서의 구문 분석 또는 처리를 위한, 공급업체에 중립적인 Lightweight API 집합입니다. JAXP를 통해 웹 서비스를 모든 호환 XML 구문 분석기에 "연결"할 수 있습니다. 외부 구문 분석기가 "연결"되지 않은 경우 JAXP는 자체 XML 구문 분석기 구현을 사용합니다.

JAX-RPC(Java API for XML-based remote procedure calls)는 클라이언트-서버 원격 프로시저 호출에 XML 기반 프로토콜을 사용합니다. JAX-RPC를 통해 SOAP를 기반으로 하는 상호 운영과 이식이 가능한 웹 서비스를 구현할 수 있습니다. 개발자는 JAX-RPC 프로그래밍 모델을 사용하여 해당하는 WSDL 설명과 함께 SOAP 기반 웹 서비스 종점과 클라이언트를 개발합니다. JAX-RPC 기반 웹 서비스는 Java 기반이 아닌 클라이언트와 상호 작용할 수 있습니다. 마찬가지로 JAX-RPC 기반 클라이언트는 Java 기반이 아닌 웹 서비스 구현과 상호 작용할 수 있습니다.

비즈니스 레지스트리 액세스를 위한 Java API인 JAXR(Java API for XML registries)은 UDDI 및 기타 레지스트리 사양(예: ebXML)을 지원하는 유연한 구조를 갖고 있습니다. 독립 실행형 Java 응용 프로그램이거나 J2EE 구성 요소일 수 있는 JAXR 클라이언트는 JAXR 공급자가 제공하는 JAXR API 구현을 사용하여 비즈니스 레지스트리에 액세스합니다. JAXR 공급자는 두 부분으로 구성됩니다. 하나는 레지스트리 관련 API 구현을 제공하는 레지스트리별 JAXR 공급자이고, 다른 하나는 이러한 API 기능을 구현하지만 레지스트리 유형에 독립적인 JAXR 플러그 가능 공급자입니다. 플러그 가능 공급자는 클라이언트에게 레지스트리별 공급자의 세부 정보를 숨깁니다.

SAAJ(SOAP with Attachments API for Java)는 개발자가 SOAP 1.1 사양과 SOAP with Attachments note를 준수하는 메시지를 생성하고 사용할 수 있게 해줍니다. SAAJ는 첨부가 있는 SOAP 메시지를 처리하기 위한 추상화를 제공합니다. 고급 개발자는 SAAJ를 사용하여 응용 프로그램이 SOAP 메시지와 직접 동작하도록 할 수 있습니다. 첨부는 완전한 XML 문서, XML 단편 또는 MIME 유형일 수 있습니다. 또한 SAAJ를 사용하여 다른 MIME 유형에 대한 지원을 활성화할 수도 있습니다. JAX-RPC와 같은 JAX 기술의 경우 내부에서 SAAJ를 사용하여 SOAP 복잡성을 숨깁니다. SAAJ를 통해 다음이 가능합니다.