XML-RPC

XML-RPC는 HTTP를 통한 간단하고 이식성 높은 원격 프로시져 호출 방법이다. XML-RPC는 Perl, Java, Python, C, C++, PHP 와 그 외 다른 많은 언어로 사용할 수 있으며 Unix, Windows, 그리고 Macintosh에서 실행할 수 있다.

'XML-RPC'에 해당되는 글 4건

  1. 2008/10/09 Bywoong 웹 서비스 프로토콜의 목록
  2. 2008/02/26 Bywoong 데이터 인터페이스를 위한 XML-RPC(Java) 테스트1.0 (1)
  3. 2007/12/31 Bywoong Java로 구현하는 XML-RPC
  4. 2007/03/06 Bywoong PHP로 XML-RCP를 구현한 예제
[알림] 삭제된 동영상 및 이미지나 깨진 링크, 저작권에 문제가 될 소지가 있는 내용은 이곳에 알려주시면 바로 조치하도록 하겠습니다. 감사합니다. - Fortune Cookie

Web Service는 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템이다. 웹 서비스는 서비스 지향적 분산 컴퓨팅 기술의 일종이다. 웹 서비스 프로토콜 스택은 SOAP, WSDL, UDDI 등으로 이루어진다. 모든 메시징에 XML이 사용되어 상호운용성이 높다.

기존의 분산 컴퓨팅 기술들인 CORBA, DCOM, RMI과 비교했을 때 주된 차이점은 다음과 같다.

느슨한 연결(loose coupling)
이진 부호화(바이너리 인코딩)가 아닌 XML 유니코드 부호화를 사용한다.
객체 지향(object-oriented)이 아닌 메시지 지향(message-oriented)이다.
 
웹 서비스라는 명칭을 가지고 있지만 월드 와이드 웹과 혼동하여서는 안 된다. 월드 와이드 웹은 사람과 컴퓨터 간의 상호작용을 위한 시스템인데 반해, 웹 서비스는 컴퓨터와 컴퓨터 간의 상호작용을 위한 시스템이다.

분산 컴퓨팅을 실현할 수 있는 신기술로 등장하여 큰 기대감에 매스미디어에서 여러 번 다루어져서 인지도는 증가하였다. 하지만, 시장에서의 실효성 때문에 많이 보급되지 않았다. 아직 관련 기술의 표준화가 더디어 보급은 늦어지고 있다. 하지만 최근에 서비스 지향 아키텍처(SOA)가 각광을 받으면서 그 기반 기술인 웹 서비스 또한 주목을 다시 받고 있다.

웹 2.0과 함께 SOAP을 이용하지 않는 REST 스타일 웹 서비스도 등장하여 많은 주목을 받고 있다. 웹 2.0의 한 분야로 웹 서비스를 이용하여 여러 웹 서비스를 조합하여 웹 애플리케이션이나 서비스를 구축하는 것을 매시업이라고 부른다. 현재 이러한 분야는 새로운 사업으로까지 확장해 나가고 있다. .위키백과


웹 서비스 프로토콜
의 목록은 다음과 같다.


2008/10/09 13:36 2008/10/09 13:36
관련글타래
    받은 트랙백이 없고, 댓글이 없습니다. 2506번 조회되었습니다.

    댓글을 달아 주세요

    [로그인][오픈아이디란?]

    구독안내 주 2~3회 새글이 올라옵니다. 블로그 방문없이 업데이트 되는 글을 구독하세요. RSS . E-Mail . HanRSS . WZD . Google Reader . Bloglines . Delicious Bookmark this on Delicious
    [알림] 삭제된 동영상 및 이미지나 깨진 링크, 저작권에 문제가 될 소지가 있는 내용은 이곳에 알려주시면 바로 조치하도록 하겠습니다. 감사합니다. - Fortune Cookie
    * XML-RPC의 개요 문서를 참조하세요 : XML-RPC 개요

    데이터 인터페이스를 위한 XML-RPC(Java) 테스팅(1.0)중입니다. 첨부파일은 이클립스 프로젝트 2개(Server, Client)로 구성되어 있습니다. Server플러그인을 이용해서 서버를 띄운후 Java Application으로 ClientServlet.java를 실행합니다.
    xmlrpc.zip

    XML-RPC 테스팅1.0 - Server, Client 소스


    [테스트1.1 예정]
    - 라이브러리 및 소스 정리 작업
    - hashmap hashtable XML(Betwixt)방식의 인터페이스 테스트 관련글
    - 데이터 유효성 검사 로직 Bean사용
    - DB처리 메서드 작성
    - Cron작성
    - Exception처리방식
    - Exception에 따른 로그분류생성

    [ClientServlet.java]

    import java.util.HashMap;
    import java.util.Vector;
    import org.apache.xmlrpc.XmlRpcClient;
    public class ClientServlet {
     public static void main(String args[]){
      System.out.println("=] XML-RPC Client Started. ");
      String serverURL = "http://127.0.0.1:9999/XmlRpcServlet";
      String result    = "";
      try{
       XmlRpcClient server = new XmlRpcClient(serverURL);
       // 서버메서드로 넘길 파라미터처리(Vector)
       Vector sendParams = new Vector();
       sendParams.addElement( new String("sendParams"));
       // 서버접속 & 메서드실행
       result = (String)server.execute("server.getString",sendParams);
       System.out.println("=] Success Result : " + result );
       Vector vResult = new Vector();
       vResult = (Vector)server.execute("server.getVector",sendParams);
       System.out.println("=] Success Vector Result : " + vResult.size());
       for(int i=0; i<vResult.size(); i++){
        System.out.println("\tvector: " + vResult.get(i));
       }
       HashMap hResult = new HashMap();
       hResult = (HashMap)server.execute("server.getHashMap",sendParams);
       System.out.println("\thashmap: " + hResult.get("B"));
      }catch(Exception e){
       System.out.println("=] Exception: " + e.getMessage() + " - Server URL: " + serverURL);
      }finally{
      }
     }
    }
    2008/02/26 16:38 2008/02/26 16:38
    관련글타래

      댓글을 달아 주세요

      1. 웅대리꼬봉님의 생각 2008/03/10 10:16  댓글주소  수정/삭제  댓글쓰기

        웅이 대리님~~ 멋져부러~~
        ㅡ0ㅡ /

      [로그인][오픈아이디란?]

      구독안내 주 2~3회 새글이 올라옵니다. 블로그 방문없이 업데이트 되는 글을 구독하세요. RSS . E-Mail . HanRSS . WZD . Google Reader . Bloglines . Delicious Bookmark this on Delicious
      [알림] 삭제된 동영상 및 이미지나 깨진 링크, 저작권에 문제가 될 소지가 있는 내용은 이곳에 알려주시면 바로 조치하도록 하겠습니다. 감사합니다. - Fortune Cookie
      Java를 이용해서 XML-RPC를 사용해봅니다. Apache XML-RPC에서는 필요한 라이브러리를 제공합니다.  또한 Subversion을 이용해서 가장 최근의 소스를 체크아웃 할 수 있습니다.

      Apache XML-RPC Subversion : http://svn.apache.org/repos/asf/webservices/xmlrpc/


      2007/12/31 15:50 2007/12/31 15:50
      관련글타래
      TAG , Keyword XML-RPC
        받은 트랙백이 없고, 댓글이 없습니다. 2218번 조회되었습니다.

        댓글을 달아 주세요

        [로그인][오픈아이디란?]

        구독안내 주 2~3회 새글이 올라옵니다. 블로그 방문없이 업데이트 되는 글을 구독하세요. RSS . E-Mail . HanRSS . WZD . Google Reader . Bloglines . Delicious Bookmark this on Delicious
        [알림] 삭제된 동영상 및 이미지나 깨진 링크, 저작권에 문제가 될 소지가 있는 내용은 이곳에 알려주시면 바로 조치하도록 하겠습니다. 감사합니다. - Fortune Cookie

        Edd Dumbill는 PHP용 XML-RPC 모듈을 만들었다. 모듈은 UsefulInc XML-RPC website에서 구할 수 있다. 파일을 내려받아 압축을 푼 다음, xmlrpc.incxmlrpcs.inc 의 두 파일을 PHP 스크립트와 같은 디렉토리에 복사하면 된다.

        <html>
        <head>
        <title>XML-RPC PHP Demo</title>
        </head>
        <body>
        <h1>XML-RPC PHP Demo</h1>

        <?php
        include 'xmlrpc.inc';

        // Make an object to represent our server.
        $server = new xmlrpc_client('/api/sample.php',
                                    'xmlrpc-c.sourceforge.net', 80);

        // Send a message to the server.
        $message = new xmlrpcmsg('sample.sumAndDifference',
                                 array(new xmlrpcval(5, 'int'),
                                       new xmlrpcval(3, 'int')));
        $result = $server->send($message);

        // Process the response.
        if (!$result) {
            print "<p>Could not connect to HTTP server.</p>";
        } elseif ($result->faultCode()) {
            print "<p>XML-RPC Fault #" . $result->faultCode() . ": " .
                $result->faultString();
        } else {
            $struct = $result->value();
            $sumval = $struct->structmem('sum');
            $sum = $sumval->scalarval();
            $differenceval = $struct->structmem('difference');
            $difference = $differenceval->scalarval();
            print "<p>Sum: " . htmlentities($sum) .
                ", Difference: " . htmlentities($difference) . "</p>";
        }
        ?>

        </body></html>

        [ 클라이언트 소스 ]

        <?php
        include 'xmlrpc.inc';
        include 'xmlrpcs.inc';

        function sumAndDifference ($params) {

            // Parse our parameters.
            $xval = $params->getParam(0);
            $x = $xval->scalarval();
            $yval = $params->getParam(1);
            $y = $yval->scalarval();

            // Build our response.
            $struct = array('sum' => new xmlrpcval($x + $y, 'int'),
                            'difference' => new xmlrpcval($x - $y, 'int'));
            return new xmlrpcresp(new xmlrpcval($struct, 'struct'));
        }

        // Declare our signature and provide some documentation.
        // (The PHP server supports remote introspection. Nifty!)
        $sumAndDifference_sig = array(array('struct', 'int', 'int'));
        $sumAndDifference_doc = 'Add and subtract two numbers';

        new xmlrpc_server(array('sample.sumAndDifference' =>
                                array('function' => 'sumAndDifference',
                                      'signature' => $sumAndDifference_sig,
                                      'docstring' => $sumAndDifference_doc)));
        ?>


        [ 서버 소스 ]

        2007/03/06 18:14 2007/03/06 18:14
        관련글타래
          받은 트랙백이 없고, 댓글이 없습니다. 1701번 조회되었습니다.

          댓글을 달아 주세요

          [로그인][오픈아이디란?]

          구독안내 주 2~3회 새글이 올라옵니다. 블로그 방문없이 업데이트 되는 글을 구독하세요. RSS . E-Mail . HanRSS . WZD . Google Reader . Bloglines . Delicious Bookmark this on Delicious