XML-RPC

XML-RPC

XML-RPC는 Remote Procedure Call(RPC; 리모트프로시저 콜) 프로토콜로, XML을 사용하여 콜 및 HTTP를 전송 [1]메커니즘으로 인코딩합니다.

역사

XML-RPC 프로토콜은 UserLand Software와 Microsoft[2]Dave Winer에 의해 1998년에 개발되었으며, Microsoft는 이 프로토콜을 기업 간 전자 [3]상거래에 대한 노력을 확장하는 데 필수적인 부분으로 보고 있습니다.새로운 기능이 도입되면서 표준이 지금의 [4]SOAP로 발전했습니다.

UserLand는 1998년 [5]6월에 출시된 프런티어 웹 콘텐츠 관리 [4]시스템의 버전 5.1부터 XML-RPC를 지원했습니다.

XML-RPC의 HTTP 기반 요청 및 응답에 대한 사람이 읽고 쓸 수 있고 스크립트가 가능한 표준에 대한 아이디어는 Alaire의 WDDX(Web Distributed Data Exchange) 및 WebMethod의 WIDL([6]Web Interface Definition Language)과 같은 경쟁 사양에서도 구현되었습니다.COM, CORBAJava RMI 객체를 XML 구문으로 래핑하고 HTTP를 통해 전송하는 선행 기술도 DataChannel의 WebBroker [7][8]기술에 존재했습니다.

XML for Remote Procedure Call(RPC; 리모트 프로시저 콜)의 범용 사용은 Phillip Merrick, Stewart Allen 및 Joseph Lapp에 의해 2006년 4월에 특허 취득되었으며 1998년 3월에 제출된 잠정 출원의 혜택을 주장합니다.특허는 버지니아주 페어팩스에 위치한 webMethods에 할당되었습니다.특허는 2019년 3월[9] 23일에 만료되었습니다.

사용.

XML-RPC 에서는, 클라이언트는, XML-RPC 를 실장해 HTTP 응답을 수신하는 서버에 HTTP 요구를 송신하는 것으로, RPC 를 실행합니다.콜에는 복수의 파라미터와1개의 결과를 포함할 수 있습니다.프로토콜은 매개 변수 및 결과에 대한 몇 가지 데이터 유형을 정의합니다.이러한 데이터 유형 중 일부는 복잡합니다(예: 중첩됨).예를 들어, 5개의 정수로 구성된 배열인 매개 변수를 가질 수 있습니다.

파라미터/결과 구조 및 데이터 유형 세트는 일반적인 프로그래밍 언어에서 사용되는 것을 반영합니다.

인가를 목적으로 하는 클라이언트의 식별은, 일반적인 HTTP 시큐러티 방식을 사용해 실시할 수 있습니다.기본 액세스 인증은 식별 및 인증에 사용할 수 있습니다.

자원 표현(문서)이 전송되는 RESTful 프로토콜과 비교하여 XML-RPC는 메서드를 호출하도록 설계되었습니다.실제적인 차이는 XML-RPC가 훨씬 더 구조화되어 있다는 것입니다. 즉, 클라이언트와 서버를 구현하기 위해 공통 라이브러리 코드를 사용할 수 있으며 특정 애플리케이션 프로토콜에 대한 설계 및 문서화 작업이 적다는 것을 의미합니다.일반적인 RESTful 프로토콜과 XML-RPC의 중요한 기술적 차이점은 많은 RESTful 프로토콜이 파라미터 정보에 HTTP URI를 사용하는 반면 XML-RPC에서는 URI가 서버를 식별하기만 한다는 것입니다.

JSON-RPC는 XML-RPC와 비슷합니다.

데이터형

일반적인 데이터 유형은 다음과 같은 예제 값을 사용하여 XML 등가형으로 변환됩니다.

이름. 태그 예시 묘사
배열
<array> <data> <value> <i4> 1404 </i4> <value> <string>여기 </string> </value> <value> <i4> 1 </i4> </value> </data> </array>
배열, 키 저장 안 함
베이스64
<base64> eW91IGNhbid0IHJLYWQgdGhpcyE=</base64>
Base64 인코딩 바이너리 데이터
부울
<timeout> 1 </timeout>
부울 논리값(0 또는 1)
날짜/시간
<DateTime.iso8601>19980717T14:08:55Z </dateTime.iso8601>
ISO 8601 형식의 날짜 및 시간
이중으로 하다
<double>-12.53 </double>
배정도 부동소수점수
정수
<int>42 </int>

또는

<i4>42 </i4>
정수
스트링
<문자열>헬로 월드!</string>

또는

헬로 월드! 
문자열의 문자XML 인코딩을 따라야 합니다.
구조
<value> <name> </name> foo <value> <i4> 1 </i4> </value> </member> </member> </member> </name> </member> </member> </member> </value>
연관 배열
제로
</> 
식별된 늘 값, XML-RPC 확장자

일반적인 XML-RPC 요청의 예는 다음과 같습니다.

<?xml version="1.0"?> <methodCall> <methodName> examples.getStateName</methodName> <params> <value> </params> </params> </methodCall>

일반적인 XML-RPC 응답의 예는 다음과 같습니다.

<?xml version="1.0"?> <methodResponse> <params> <value> <string>사우스다코타 </string> </value> </param> </param> </methodResponse>

일반적인 XML-RPC 장애는 다음과 같습니다.

<?xml version="1.0"?> <methodResponse> <value> <methodResponse> <value> <member> <member> <member> </int> 4 </int> </member> </name> <value> <value> <value> <value> <value>매개 변수가 너무 많습니다.</string> </value> </member> </struct> </value> </fault> </methodResponse>

비판

XML-RPC에 대한 최근의 비판(2010년 이후)에서는 RPC 콜은 플레인 XML을 사용하여 할 수 있으며 XML-RPC는 XML을 통한 값을 추가하지 않는다고 주장하고 있습니다.XML-RPC와 XML 모두 XML 스키마 또는 XML-RPC의 파라미터 이름에서 정의된 필드 이름 등 응용 프로그램 수준의 데이터 모델이 필요합니다.또한 XML-RPC는 플레인 XML에 비해 약4배의 바이트 수를 사용하여 동일한 오브젝트를 부호화합니다.이것은 [10][11][12]JSON에 비해 그 자체로 상세합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 사이먼 세인트 로랑, 조 존스턴, 에드 덤빌(2001년 6월) XML-RPC를 사용한 웹 서비스 프로그래밍.오라일리.초판
  2. ^ Box, Don (1 April 2001). "A Brief History of SOAP". O'Reilly. Retrieved 27 October 2010.
  3. ^ Rupley, Sebastian (30 June 1999). "XML's Next Step". PC Magazine. Archived from the original on 4 March 2000. Retrieved 17 November 2015.
  4. ^ a b Walsh, Jeff (10 July 1999). "Microsoft spearheads protocol push". Infoworld. Archived from the original on 14 September 1999. Retrieved 17 November 2015.
  5. ^ Walsh, Jeff (29 June 1998). "UserLand releases Frontier 5.1, drops freeware model". InfoWorld. Archived from the original on 15 September 1999. Retrieved 17 November 2015.
  6. ^ Udell, Jon (7 June 1999). "Exploring XML-RPC: DCOM? CORBA? RMI? Why Not Just XML-RPC?". Byte. Archived from the original on 4 March 2000. Retrieved 17 November 2015.
  7. ^ Walsh, Jeff (25 May 1998). "W3C gives a nod to DataChannel's WebBroker". Infoworld. Vol. 20, no. 21. Archived from the original on 10 September 1999. Retrieved 17 November 2015.
  8. ^ Vizard, Michael; Walsh, Jeff (29 June 1998). "DataChannel's Dave Pool talks about shaping the role of XML to suit different needs". Infoworld. Archived from the original on 16 September 1999. Retrieved 8 December 2015.
  9. ^ Merrick; et al. (11 April 2006). "US Patent 7,028,312". Retrieved 18 September 2008.
  10. ^ "What is the benefit of XML-RPC over plain XML?". Stack Overflow. 9 September 2009. Retrieved 7 April 2011.
  11. ^ "An open poll on the merits of XmlRpc versus alternatives". intertwingly.net. 22 November 2006. Retrieved 7 April 2011.
  12. ^ Jon Canady (14 January 2010). "If you have REST, why XML-RPC?". joncanady.com. Archived from the original on 11 May 2013. Retrieved 7 April 2011.

외부 링크