맨위로가기

XML-RPC

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

XML-RPC는 1998년 데이브 와이너와 마이크로소프트에 의해 개발된 원격 프로시저 호출(RPC) 프로토콜이다. HTTP를 통해 XML 형식으로 데이터를 교환하여, 클라이언트가 서버의 메서드를 호출할 수 있게 한다. XML-RPC는 특정 데이터 형식을 정의하며, JSON-RPC와 유사한 기능을 수행한다. 그러나 일반 XML에 비해 데이터 크기가 크고, XML 스키마와 같은 응용 프로그램 수준의 데이터 모델이 필요하다는 비판을 받는다.

더 읽어볼만한 페이지

  • 원격 프로시저 호출 - D-Bus
    D-Bus는 2002년에 시작된 프로세스 간 통신 시스템으로, 시스템 버스와 세션 버스를 통해 정보 공유, 모듈성, 권한 격리를 제공하며, 일대일 요청-응답 및 발행/구독 통신 방식을 지원한다.
  • 원격 프로시저 호출 - DCE/RPC
    DCE/RPC는 분산 컴퓨팅 환경에서 원격 프로시저 호출을 가능하게 하는 프로토콜로, 오픈 소프트웨어 재단에서 개발되었으며, 다양한 운영체제와 환경에서 사용된다.
  • 분산 컴퓨팅 - 클라우드 컴퓨팅
    클라우드 컴퓨팅은 인터넷을 통해 컴퓨팅 자원을 서비스 형태로 제공하는 모델로, 다양한 서비스 및 배치 모델을 가지며 비용 효율성과 확장성을 제공하지만 보안 및 의존성 문제도 존재하며 지속적으로 발전하고 있다.
  • 분산 컴퓨팅 - 그리드 컴퓨팅
    그리드 컴퓨팅은 지리적으로 분산된 컴퓨터 자원을 연결하여 가상 슈퍼컴퓨터를 구축하는 기술이며, 유휴 자원을 활용하고 과학 연구 등 다양한 분야에 활용된다.
  • XML 기반 표준 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • XML 기반 표준 - 아톰 (표준)
    Atom은 웹 사이트 업데이트 정보와 콘텐츠 배포를 위한 XML 기반 문서 형식으로, Atom 배포 형식과 Atom 출판 프로토콜로 구성되어 있으며, RSS를 대체하기 위해 고안되었고 국제화 지원 및 모듈성에서 차이를 보인다.
XML-RPC
지도 정보
기본 정보
유형원격 프로시저 호출 프로토콜
개발자UserLand Software
최초 출시1998년
최신 버전1.0 (1999년 1월 15일)
상태사양은 더 이상 유지 관리되지 않음
종류원격 프로시저 호출
웹사이트XML-RPC 공식 웹사이트
기술 정보
기반HTTP
데이터 직렬화XML
IANA 포트80 (HTTP)

2. 역사

XML-RPC 프로토콜은 1998년 유저랜드 소프트웨어의 데이브 와이너와 마이크로소프트가 만들었으며,[2] 마이크로소프트는 이 프로토콜을 기업 간 전자 상거래(B2B) 분야에서 자사의 노력을 확장하는 데 필수적인 부분으로 여겼다.[3] 이후 새로운 기능이 도입되면서 이 표준은 현재의 SOAP로 발전했다.[4]

유저랜드는 1998년 6월에 출시된 자사의 웹 콘텐츠 관리 시스템인 프론티어(Frontier) 버전 5.1부터 XML-RPC를 지원했다.[4][5]

XML-RPC의 인간이 읽고 쓸 수 있으며, 스크립트 파싱이 가능한 HTTP 기반 요청 및 응답 표준 아이디어는 Allaire의 웹 분산 데이터 교환 (WDDX) 및 webMethod의 웹 인터페이스 정의 언어 (WIDL)와 같은 경쟁 사양에서도 구현되었다.[6] XML 구문을 사용하여 COM, 공통 객체 요청 브로커 아키텍처, Java 원격 메서드 호출 객체를 래핑하고 HTTP를 통해 전송하는 선행 기술은 DataChannel의 WebBroker 기술에도 존재했다.[7][8]

원격 프로시저 호출(RPC)에 XML을 일반화하여 사용하는 것은 2006년 4월 필립 메릭(Phillip Merrick), 스튜어트 앨런(Stewart Allen), 조셉 랩(Joseph Lapp)에 의해 특허를 받았으며, 1998년 3월에 제출된 임시 출원에 대한 이점을 주장했다. 이 특허는 페어팩스, 버지니아에 위치한 웹메소드에 양도되었다. 이 특허는 2019년 3월 23일에 만료되었다.[9]

3. 사용 예

XML-RPC는 클라이언트가 서버에 HTTP 요청을 보내고 HTTP 응답을 받는 방식으로 RPC를 수행한다. 호출에는 여러 매개변수와 하나의 결과가 있을 수 있다. 이 프로토콜은 매개변수와 결과에 대한 몇 가지 데이터 형식을 정의하며, 이러한 데이터 형식은 중첩될 수 있다.

매개변수 및 결과의 구조와 데이터 형식 집합은 일반적인 프로그래밍 언어에서 사용되는 것들을 반영하여 설계되었다.

클라이언트 식별 및 권한 부여는 널리 사용되는 HTTP 보안 방식을 통해 이루어진다. 기본 인증을 사용하면 식별 및 인증이 가능하다.

RESTful 프로토콜은 ''자원 표현''(문서)을 전송하는 반면, XML-RPC는 ''메서드를 호출''하도록 설계되었다. XML-RPC는 더 구조화되어 있어 일반적인 라이브러리 코드를 사용하여 클라이언트와 서버를 구현할 수 있고, 특정 애플리케이션 프로토콜 설계 및 문서 작업이 줄어든다는 실질적인 차이점이 있다. 많은 RESTful 프로토콜이 HTTP URI를 매개변수 정보에 사용하는 반면, XML-RPC에서 URI는 단순히 서버를 식별한다는 점이 두드러진 기술적 차이점이다.

JSON-RPC는 XML-RPC와 유사하다.

3. 1. XML-RPC Call 형식 예제

XML-RPC 호출(Call) 형식의 예시는 다음과 같다.

```xml





examples.getStateName





40






3. 2. XML-RPC Response 형식 예제

다음은 XML-RPC 응답 형식의 예시이다.

```xml









South Dakota






3. 3. XML-RPC Fault 형식 예제

xml













faultCode

4





faultString

Too many parameters.










4. 자료형

XML-RPC는 몇 가지 기본 자료형을 정의한다. 일반적인 자료형은 아래 표와 같이 XML 형식으로 변환된다.

이름태그 사용 예설명
array값의 배열. 키는 저장하지 않음.
base64<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64>Base64로 인코딩된 바이너리 데이터
boolean<boolean>1</boolean>부울 논리값 (0 또는 1)
date/time<dateTime.iso8601>19980717T14:08:55</dateTime.iso8601>ISO 8601 형식의 날짜와 시간
double<double>-12.53</double>배정밀도 부동 소수점 숫자
integer정수
string<string>Hello world!</string>문자열. XML 인코딩을 따라야 함.
struct연관 배열
nil<nil/>구분된 null 값; XML-RPC [https://web.archive.org/web/20050911054235/http://ontosys.com/xml-rpc/extensions.php 확장]


5. 비판

최근(2010년 이후) XML-RPC 비평가들은 RPC 호출이 일반 XML로 이루어질 수 있으며, XML-RPC가 XML보다 어떠한 가치도 더하지 않는다고 주장한다. XML-RPC와 XML 모두 XML 스키마에 정의된 필드 이름이나 XML-RPC의 매개변수 이름과 같은 응용 프로그램 수준의 데이터 모델이 필요하다. 또한, XML-RPC는 동일한 객체를 인코딩하기 위해 일반 XML에 비해 약 4배의 바이트를 사용하며, 이는 JSON에 비해서도 장황하다.[10][11][12]

참조

[1] 서적 Programming Web Services with XML-RPC O'Reilly 2001-06
[2] 웹사이트 A Brief History of SOAP http://www.xml.com/p[...] O'Reilly 2001-04-01
[3] 웹사이트 XML's Next Step http://www.zdnet.com[...] 2015-11-17
[4] 뉴스 Microsoft spearheads protocol push http://www.infoworld[...] 2015-11-17
[5] 웹사이트 UserLand releases Frontier 5.1, drops freeware model http://www.infoworld[...] 2015-11-17
[6] 뉴스 Exploring XML-RPC: DCOM? CORBA? RMI? Why Not Just XML-RPC? http://www.byte.com/[...] 2015-11-17
[7] 뉴스 W3C gives a nod to DataChannel's WebBroker http://www.infoworld[...] 2015-11-17
[8] 웹사이트 DataChannel's Dave Pool talks about shaping the role of XML to suit different needs http://www.infoworld[...] 2015-12-08
[9] 웹사이트 US Patent 7,028,312 http://www.google.co[...] 2008-09-18
[10] 웹사이트 What is the benefit of XML-RPC over plain XML? https://stackoverflo[...] Stack Overflow 2011-04-07
[11] 웹사이트 An open poll on the merits of XmlRpc versus alternatives http://www.intertwin[...] intertwingly.net 2011-04-07
[12] 웹사이트 If you have REST, why XML-RPC? http://joncanady.com[...] joncanady.com 2011-04-07



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com