XML-RPC
"오늘의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]
XML-RPC는 클라이언트가 서버에 HTTP 요청을 보내고 HTTP 응답을 받는 방식으로 RPC를 수행한다. 호출에는 여러 매개변수와 하나의 결과가 있을 수 있다. 이 프로토콜은 매개변수와 결과에 대한 몇 가지 데이터 형식을 정의하며, 이러한 데이터 형식은 중첩될 수 있다.
유저랜드는 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. 사용 예
매개변수 및 결과의 구조와 데이터 형식 집합은 일반적인 프로그래밍 언어에서 사용되는 것들을 반영하여 설계되었다.
클라이언트 식별 및 권한 부여는 널리 사용되는 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
3. 2. XML-RPC Response 형식 예제
다음은 XML-RPC 응답 형식의 예시이다.
```xml
3. 3. XML-RPC Fault 형식 예제
xml
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