하도 XML-RPC 나 SOAP 등에 대해서 말이 많아서 알아보았으나, 특이하게 틀리거나 하는 것을 발견하지 못했다.
다만 내가 이해 한것은 다음과 같다.
XML-RPC 란 HTTP의 동작을 말하는 REQUEST TO SERVER -> RESPONSE TO CLIENT 의 원리를 이용하여 만들어져 있다.
XML-RPC Server 와 XML-RPC Client 로 이루어지게 되어 있으며, XML-RPC Server는 어떠한 XML 형식의 데이터를 파싱하여 그 결과를 XML 로 리턴하게 된다.
즉, 실제로 Remote Procedure Call 이라는 말처럼 기존의 원격 함수 호출이라는 개념을 XML과 접목시킨 것 이라 할 수 있는 것이다.
표준화 되어 있지 않은 자료를 XML을 이용하여 표준화 하는 것이다. 그 결과 blogAPI 와 같은 것이 탄생 될 수 있었던 것 같다.
실제로 상용 서비스를 개발하다보면, 다른 서버의 정보가 필요할때가 발생한다.
나같은경우에 쉽게 떠올릴 수 있는 것이 소켓을 이용한 C/S 구조를 떠올리게 되었지만, 소켓서버를 따로 만드는 것인 웬지 꺼림직하고 양도 방대하니, 이를 웹서버가 담당하도록 하면 여러가지면에서 편하다고 판단하였다
웹서비스인만큼 PHP에서 시스템명령의 리턴값을 가공하여, HTML 로 출력되도록 하였고, 이를 원하는 서버에서 소켓을 80번 포트와 연결하여 호출하는 방식으로 그쪽 서버의 데이터를 가져오는 식으로 처리 했었다.
XML-RPC 는 이러한 과정을 정규화 시켜 XML이라는 표준화된 문서형식을 이용하여 마치 함수가 호출되는 것처럼(?) 가장한 것 처럼 내게 있어서는 그렇게 보인다.
웬지 속은 기분도 들고, 이런 개념이 요새 거창하게 알수없는 용어로 떠들고 있는 SOA와 뿌리를 같이 한다니.
...
이게 맞는 개념인지는 모르겠지만, 뭐 대충은 비슷한 것 같다.
그렇다면 기존의 방식을 고수해야 할까? 그렇지는 않은 것 같다.
왜냐하면, 어떤 표준화된 방식이 있다면, 앞으로 많은 곳에서 이런 방식으로 통신을 시도 할테고, 협업에 있어서도 커뮤니케이션이란 관점에서 매우 중요한 역할을 할 것이라고 생각한다. 쓸테없는 말들이 많이 줄어들테니...
귀차니즘때문에 직접 구현하지 않았지만, 이런 개념을 알고만 있다면, 된 것 아닌가라는 생각을 하면서도, 물론 잘못알고 있을수도 있고, 그 깊이에 대해 잘 모르기 때문에, 경험이라는 것이 필요한 것 같다.
XML-RPC의 응용분야가 아닌, 정말 XML-RPC가 탄생하였을 때 정통으로 목적하는 바가 무엇인지 궁금하다..
가만히 생각해보면 Ajax 의 통신방식이나 XML-RPC 나 뭐 다 한뿌리 인 것같은데, 어떠한 차이점이있는지 원... 내 얄팍한 지식으론 모르겠다 -_-;;
이럴 때면 영어를 잘 못한다는 것이 아쉽기만 하다 ㅋㅋ
관련링크 :
http://kldp.org/HOWTO/html/XML-RPC-HOWTO/xmlrpc-howto-intro.htmlhttp://www.devshed.com/c/a/PHP/Using-XMLRPC-with-PHP/