KR100435005B1 - 와이들 웹 프레임 워크를 위한 인코딩 방법 - Google Patents

와이들 웹 프레임 워크를 위한 인코딩 방법 Download PDF

Info

Publication number
KR100435005B1
KR100435005B1 KR10-2001-0005854A KR20010005854A KR100435005B1 KR 100435005 B1 KR100435005 B1 KR 100435005B1 KR 20010005854 A KR20010005854 A KR 20010005854A KR 100435005 B1 KR100435005 B1 KR 100435005B1
Authority
KR
South Korea
Prior art keywords
argument
factor
encoding
service
binding
Prior art date
Application number
KR10-2001-0005854A
Other languages
English (en)
Other versions
KR20020065697A (ko
Inventor
김명호
신현호
Original Assignee
주식회사 비트웹
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 비트웹 filed Critical 주식회사 비트웹
Priority to KR10-2001-0005854A priority Critical patent/KR100435005B1/ko
Publication of KR20020065697A publication Critical patent/KR20020065697A/ko
Application granted granted Critical
Publication of KR100435005B1 publication Critical patent/KR100435005B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

와이들 프로세서와 이를 기반으로 개발된 웹 기반 클라이언트 프로그램 사이의 세션 (Session)층 프로토콜 해석을 위한 클라이언트 라이브러리의 규모를 축소시키는 와이들 웹 프레임 워크를 위한 인코딩 방법이 개시된다. 본 발명에 따르면, a) 클라이언트 측으로부터의 프로토콜 명령과 와이들 서비스의 요청에 따라 서비스 시작을 나타내는 표시자인 스타터 인자(ⓑ)를 출력하는 단계; b) 상기 프로토콜 명령 또는 와이들 서비스의 명칭을 출력하는 단계; c) 상기 와이들 서비스의 요청에 인수가 필요한지를 판단한 후, 상기 판단 결과, 인수가 필요하지 않은 경우에 서비스 종료를 나타내는 표시자인 터미네이터 인자(ⓔ)를 출력하고 인코딩을 종료하거나, 상기 판단 결과, 인수가 필요한 경우에 인수의 개수와 각 서비스를 구분하기 위한 표시자인 세퍼레이터 인자(ⓢ)를 출력하는 단계; 및 d) 상기 인수의 형을 판단한 후, 상기 판단 결과, 상기 인수가 문자열형인 경우에 그 문자열과 세퍼레이터 인자(ⓢ)를 출력한 후 상기 c) 단계를 반복 수행하거나, 상기 판단 결과, 상기 인수가 바인딩형인 경우에 상기 인수의 속성에 따라 바인딩 인코딩을 수행한 후 상기 c) 단계를 반복 수행하는 단계로 이루어져 XML에 비해 단순한 인코딩을 사용하므로서 프로토콜 해석 프로그램이 간략화되는 효과와 더불어 단순한 인코딩 및 디코딩으로 인한 전송 데이터의 크기를 줄여 전송 효율을 높일 수 있다.

Description

와이들 웹 프레임 워크를 위한 인코딩 방법{METHOD OF ENCODING FOR WIDL WEB FRAME WORK}
본 발명은 와이들(WIDL : Web Interface Definition Language) 웹(Web)상에서의 프레임워크(Framework) 프로토콜(Plotocol)에 관한 것으로서, 보다 상세히는 와이들 프로세서와 이를 기반으로 개발된 웹 기반 클라이언트 사이의 프로토콜에서 이용되는 데이터 표현을 위한 인코딩 방법에 관한 것이다.
일반적으로 와이들(WIDL)(http://www.w3.org/TR/NOTE-widl; 이 사이트는 와이들에 대한 공식문서를 보여주며, 와이들의 정의, 예제 그리고 와이들을 구성하고 있는 각 요소들 및 속성들에 대하여 설명하고 있다)은 선언적 수단을 사용하여 웹 데이터를 프로그램 변수에 대응시키고, 상기 프로그램 변수들 사이의 매핑을 서비스로 정의하여 웹 기반 프로그램 개발을 지원하는 XML(eXtensible Markup Language) 형식의 언어이다. 또한, 상기 와이들 프로세서는 클라이언트 프로그램으로부터 서비스 요청을 받아 서비스를 실행하고, 와이들 스크립트를 유지 관리하기 위한 서버 형태의 소프트웨어이다. 상기 와이들과 와이들 프로세서는 웹 데이터를 참조하는 일련의 과정을 자동화하여 웹 기반 업무를 단순화할 수 있는 웹 자동화 프로그램 개발에 활용되고 있다.상기 와이들에 대한 일반적인 예를 살펴보면 하기와 같으며, 사용자로부터의 입력을 받아 웹 서버에서 그 결과를 출력하는 특정 웹 페이지에 대한 인터페이스를 정의하는 예이다. 즉, 사용자가 자신의 아이디(userid)와 패스워드(password)를 입력(input)으로 정의하고, 사용자의 이름(name)과 게시판의 상세 내용에 대한 링크(link), 게시판의 순번, 제목, 작성자, 작성날짜의 항목들(list)을 출력(output)으로 정의하는 와이들 파일이다.<WIDL NAME = "widl"><SERVICE NAME = "service"INPUT = "input"OUTPUT = "output"METHOD = "GET"URL = "" /><BINDING NAME = "input" TYPE = "INPUT"><VARIABLE NAME = "userid" TYPE = "STRING" FORMNAME = "id" /><VARIABLE NAME = "password" TYPE = "STRING" FORMNAME = "pass" /></BINDING><BINDING NAME = "output" TYPE = "OUTPUT"><VARIABLE NAME = "name" TYPE = "STRING" REFERENCE = "doc.h[3].text" /><VARIABLE NAME = "link" TYPE = "STRING[]" REFERENCE = "doc.table[0].tr[].td[1].a[0].href" /><VARIABLE NAME = "list" TYPE = "STRING[][]" REFERENCE = "doc.table[0].tr[].td[].text" /></BINDING></WIDL>
한편, 와이들을 기반으로 개발된 클라이언트 프로그램은 흔히 와이들 프로세서와 지역적으로 분리된 클라이언트-서버 시스템으로 구축되며, 이들 사이의 세션 문맥 설정과 유지, 서비스 요청 표현과 실행 및 데이터 인코딩/디코딩을 위한 프로토콜이 요구된다. 상기 클라이언트 프로그램에서는 한 세션 동안 여러 와이들 서비스가 요청될 수 있으므로, 이때 발생되는 쿠키정보나 보안정보가 유지되어야 하며 프로그램에서의 서비스 요청은 와이들 프로세서에서 모호함 없이 해석된 후 실행될 수 있어야 한다. 이때, 와이들 프로세서로 전달되는 데이터는 프로그래밍 언어와 하드웨어에 관계없이 동일하게 해석할 수 있는 형식으로 인코딩 되어야 하며, 클라이언트 프로그램은 와이들 프로세서에서의 처리결과를 데이터 구조로 재해석 할 수 있어야 한다.상기와 같은 목적을 달성하기 위한 대표적인 프로토콜로는 엑스엠엘/알피씨(XML/RPC)가 있다. 상기 엑스엠엘/알피씨(XML/RPC)는 세션 문맥 설정과 유지를 위하여 에이취티티피(HTTP)를 사용하고, 서비스 요청과 데이터 인코딩 및 디코딩에 엑스엠엘(XML)을 사용한다. 또한, 엑스엠엘/알피씨(XML/RPC)는 서비스 요청, 서비스 실행결과, 예외의 발생, 배열이나 레코드와 같이 구조화된 데이터를 표현하기 위한 기능을 제공한다.엑스엠엘/알피씨(XML/RPC)에서는 서비스 요청과 데이터 인코딩/디코딩을 위하여 XML이 사용되며, 엑스엠엘/알피씨(XML/RPC)를 이용하는 기존의 와이들 프로세서에서 클라이언트로부터의 서비스 요청과 그에 대한 응답은 XML 인코딩을 통해 이루어진다.상기 와이들에 대한 일반적인 예시에서 정의된 서비스에 대하여, 와이들 프로세서가, "john"이라는 사용자 아이디와 그리고 "newold"라는 패스워드를 클라이언트 측으로부터 입력 받는다고 하고, 사용자의 이름이 John이고 해당 게시판의 상세내용에 대한 링크 및 4 개의 게시판의 항목이 5 개인 결과를 클라이언트 측으로 전송한다고 할 경우, 이에 대한 XML 인코딩은 다음과 같이 표현될 수 있다.<서비스 요청을 위한 XML 형식의 인코딩 예><?XML version='1.0'?><methodCall><methodName>widl.service</methodName><params><param><name>userid</name><value>john</value></param><param><name>password</name><value>newold</value></param></params></methodCall><서비스 응답을 위한 XML 형식의 인코딩의 예><?XML version='1.0'?><methodResponse><variable type = "string"><name>name</name><value>John</value></variable><variable type = "string[]"><name>link</name><value><array>http://www.abc.com/message/1.html</array><array>http://www.abc.com/message/2.html</array><array>http://www.abc.com/message/3.html</array><array>http://www.abc.com/message/4.html</array><array>http://www.abc.com/message/5.html</array></value></variable><variable type = "string[][]"><name>list</name><value><row><col>1</col><col>안녕하세요</col><col>관리자</col><col>2003.9.15</col></row><row><col>2</col><col>공지사항입니다</col><col>관리자</col><col>2003.9.15</col></row><row><col>3</col><col>질문입니다</col><col>손님</col><col>2003.9.16</col></row><row><col>4</col><col>답변입니다</col><col>관리자</col><col>2003.9.17</col></row><row><col>5</col><col>감사합니다</col><col>손님</col><col>2003.9.17</col></row></value></variable></methodResponse>엑스엠엘/알피씨(XML/RPC)가 기반하고 있는 에이취티티피(HTTP)와 엑스엠엘(XML)은 본래 와이들 프레임워크를 위한 기능이라기 보다는 웹을 위한 일반적인 기능으로 설계되었다. 여기서, 에이취티티피(HTTP)는 텍스트, 가상 터미널, 파일전송, 전자우편, 멀티미디어 등을 포함하는 하이퍼 텍스트를 교환하기 위한 범용 프로토콜이며, 엑스엠엘(XML)은 임의의 깊이로 중첩된 배열이나 레코드를 갖고 있어 표현의 자유로움이 가능하다.그러나, 원격의 서버에 탑재된 와이들 서비스를 요청하기 위해서는 소켓 인터페이스만이 필요하고 와이들 서비스의 데이터는 문자열, 배열, 테이블만 사용되고 있다. 따라서, 에이취티티피(HTTP)와 엑스엠엘(XML)을 기반으로 하는 기존의 엑스엠엘/알피씨(XML/RPC)는, 과도한 일반성을 고려하여 설계되어 있으며 본래 의도했던 데이터와 함께 태그정보를 포함시켜 전송해야 하기 때문에 데이터 전송량이 증가하고 프로토콜 해석모듈이 복잡해지는 문제점이 있다.상기 문제점으로 인하여, 휴대용 사무기기(PDA: Personal Digital Assistant)나 휴대 전화 등의 모바일 기기에서 클라이언트를 운용하고자 할 경우 프로그램의 경량화를 꾀하기 어려우며, 기존의 엑스엠엘/알피씨(XML/RPC)는 휴대전화와 같이 제한된 리소스만 이용 가능하기 때문에 필요 이상의 복잡한 프로토콜 보다는 효율적인 경량급의 프로토콜이 필수적으로 요구된다. 또한, 엑스엠엘(XML)은 바인딩의 모든 요소에 태그를 부여하기 때문에 인코딩된 표현이 원래의 데이터에 비해 지나치게 커져서 인터넷을 통한 데이터 전송에 많은 부담을 유발하고, 프로토콜 해석 시에 계산 복잡도를 증가시키는 문제점이 있다.
본 발명은 상기의 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은 엑스엠엘(XML)의 태그구조를 사용하지 않음으로써 프로토콜을 경량화하고 데이터의 표현 및 통신시간을 단축시키며 와이들 프로세서의 구축을 용이하도록 하고, 또한 바인딩 값의 3 가지 속성만을 표현함으로써 표준 웹 인터페이스 정의 언어인 와이프들의 표현력을 제한하지 않으면서(호환성을 제공하면서) 통신량을 줄이고 통신방식을 경량화하여 통신시 오류 가능성을 현격히 줄이는 와이들 웹 프레임 워크를 위한 인코딩 방법을 제공하는데 있다.상기 목적을 달성하기 위한 본 발명의 관점에 따른 와이들 웹 프레임 워크를 위한 인코딩 방법은, a) 클라이언트 측으로부터의 프로토콜 명령과 와이들 서비스의 요청에 따라 서비스 시작을 나타내는 표시자인 스타터 인자(ⓑ)를 출력하는 단계; b) 상기 프로토콜 명령 또는 와이들 서비스의 명칭을 출력하는 단계; c) 상기 와이들 서비스의 요청에 인수가 필요한지를 판단한 후, 상기 판단 결과, 인수가 필요하지 않은 경우에 서비스 종료를 나타내는 표시자인 터미네이터 인자(ⓔ)를 출력하고 인코딩을 종료하거나, 상기 판단 결과, 인수가 필요한 경우에 인수의 개수와 각 서비스를 구분하기 위한 표시자인 세퍼레이터 인자(ⓢ)를 출력하는 단계; 및 d) 상기 인수의 형을 판단한 후, 상기 판단 결과, 상기 인수가 문자열형인 경우에 그 문자열과 세퍼레이터 인자(ⓢ)를 출력한 후 상기 c) 단계를 반복 수행하거나, 상기 판단 결과, 상기 인수가 바인딩형인 경우에 상기 인수의 속성에 따라 바인딩 인코딩을 수행한 후 상기 c) 단계를 반복 수행하는 단계로 이루어진 것을 특징으로 한다.본 발명에 의하면, 와이들은 입출력 표현수단인 바인딩을 명칭과 값으로 구성된 여러 개의 항목으로 정의하고, 바인딩의 값은 문자열을 위한 STRING, 리스트를 위한 STRING[], 테이블을 위한 STRING[][]의 3 가지 속성(TYPE) 만을 갖는다.
도 1은 본 발명을 적용시키기 위한 하드웨어 블록도이다.
도 2는 본 발명에 따른 프로토콜 서비스 요청 인코딩을 위한 플로우챠트이다.
도 3은 본 발명에 따른 데이터 바인딩 인코딩을 위한 플로우챠트이다.
<도면의 주요 부분에 대한 부호의 설명>
101 : 중앙처리 수단 103 : 제어수단
105 : 입출력 수단 107 : 주저장 수단
109 : 보조저장 수단
이하, 예시도면에 의거하여 본 발명에서 제안하는 인코딩 방법에 대하여 상세히 설명한다.
도 1은 본 발명에 따라 신호 처리하기 위한 하드웨어를 나타낸 구성도이다. 도 2는 본 발명에 따른 프로토콜과 서비스 요청시 문자열 출력을 하기 위한 인코딩 흐름도이고, 도 3은 본 발명에 따른 데이터 바인딩 인코딩을 위한 흐름도이다.
먼저 도 1에 따른 본 발명의 하드웨어는, 중앙처리 수단(101), 제어 수단(103), 주저장 수단(107), 보조저장 수단(109) 및 입출력 수단(105)으로 구성된다. 상기 주저장 수단(107)은 와이들 프레임워크 기반의 웹 자동화 프로그램이 탑재되며, 상기 중앙 처리 수단(101)은 상기 주저장 수단(107)에 탑재된 프로그램을 실행시키고, 상기 보조저장 수단(109)은 웹 자동화 프로그램 실행 과정에서 발생하는 임시 데이터를 위한 중간 파일들을 저장한다. 또한, 상기 입출력 수단(105)은 상기 웹 자동화 프로그램 실행 과정에서 사용되거나 생성되는 모든 데이터와 오류 메시지를 입출력하며, 상기 제어 수단(103)은 상기 각 구성 수단들의 메시지 전송이 원활하도록 제어한다.
여기서, 상기 주저장 수단(107)은 시스템의 메인 메모리 보드를 지칭하며, 상기 중앙처리 수단(101)은 중앙 처리 보드로써 상기 메인 메모리 보드에 설정된 웹 자동화 프로그램이 탑재되고, 보조저장 수단(109)은 보조 기억 장치로써 웹 자동화 프로그램 실행 과정에 발생하는 중간 파일들을 저장하기 위한 것으로, 메인 메모리 보드에 기억할 수 없는 데이터를 저장한다. 즉, 잠시 저장시켜야할 정보만을 저장한다. 상기 입출력 수단(105)은 상기 웹 자동화 프로그램 실행 과정에서 사용되거나 생성되는 모든 데이터와 오류 메시지를 입출력하며, 프로토콜 요청이나 와이들 서비스 요청을 입력 받는다.
도 2는 프로토콜 명령과 서비스 요청 인코딩을 위한 플로우챠트로서, 세션을 구성하는 프로토콜 명령이나 서비스 요청의 인코딩을 위한 규칙을 정의하기 위한 것이다.본 발명에 따른 프로토콜의 모든 요청은 스타터 인자(ⓑ), 세퍼레이터 인자(ⓢ), 터미네이터 인자(ⓔ) 집합을 사용하여 인코딩한다. 상기 집합은 와이들 서비스의 명칭이나 웹 데이터와 충돌을 일으키지 않는 임의의 문자들로 구성될 수 있다.먼저, 클라이언트 측으로부터의 모든 서비스 요청은 스타터 인자(ⓑ)로 시작되며(S201), 스타터 인자 이후에는 프로토콜 명령 및 서비스 명칭을 출력한다(S203). 이후에, 인수가 상기 서비스 요청에 필요한지를 판단한다(S205).상기 판단 결과(S205), 상기 인수가 필요하지 않을 경우에는 터미네이터 인자(ⓔ)를 출력한 후(S213), 서비스 요청을 위한 인코딩 작업을 종료한다.그러나, 상기 판단 결과(S205), 상기 인수가 필요한 경우에는 프로토콜 명령 및 서비스 명칭 이후에 인수의 갯수와 세퍼레이터 인자(ⓢ)를 출력한다(S207). 이후에, 상기 바인딩 인수의 형(Type)을 판단하는데(S209), 본 발명에서는 문자열형과 바인딩형의 두 가지 인수형으로 구분하여 사용한다. 여기서, 상기 문자열형은 서버-클라이언트 간의 정보 및 오류메시지 등을 전송하기 위해서 사용되며, 상기 바인딩형은 웹 서비스를 이용하기 위해 필요한 인수들의 인코딩 정보를 의미한다.상기 판단 결과(S209), 상기 인수의 형이 바인딩형이면, 후술할 도 3과 같은 바인딩 인코딩 과정을 통해, 바인딩형 인수의 인코딩된 정보를 출력하고(S211), 문자열형이면 그 문자열과 세퍼레이터 인자를 함께 출력한다(S215).상기 문자열형 또는 바인딩형의 출력이 종료되면, 다시 인수가 존재하는지 판단한 후(S205), 인수가 존재할 경우, 나머지 인수가 다 인코딩될 때까지 동일한 과정을 반복한다.다음은, 종래의 와이들에 대한 일반적인 예에 따른 XML 인코딩 방법과는 달리, 사용자 아이디와 패스워드가 각각 john과 newold인 서비스 요청에 대하여 본 발명에 따른 인코딩 방법이 수행될 경우의 각 단계별 인코딩 과정 및 최종 인코딩 결과를 나타내며, 하기의 인코딩 과정은 전술한 도 2의 동작 흐름순으로 수행된다.S201 : ⓑS203 : ⓑ1ⓢwidl.serviceⓢ (서비스 요청에 따른 프로토콜 명령의 갯수 1 개와 서비스 명칭 widl.service)S205 : 인수존재 여부? 예S207 : ⓑ1ⓢwidl.serviceⓢ2ⓢ (입력 바인딩 인수의 갯수가 2 개)S209 : 인수의 형이 바인딩형인가? 예S211 : ⓑ1ⓢwidl.serviceⓢ2ⓢ0ⓢuseridⓢjohnⓢ0ⓢpasswordⓢnewoldⓢ ('0' 이하의 바인딩형 인수는 도 3의 과정을 통해서 인코딩됨)S205 : 인수 존재여부? 아니오S213 : ⓑ1ⓢwidl.serviceⓢ2ⓢ0ⓢuseridⓢjohnⓢ0ⓢpasswordⓢnewoldⓢⓔ클라이언트 측의 서비스 요청에 따른 최종 인코딩 결과:ⓑ1ⓢwidl.serviceⓢ2ⓢ0ⓢuseridⓢjohnⓢ0ⓢpasswordⓢnewoldⓢⓔ도 3은 바인딩형 인수를 인코딩하기 위한 플로우챠트이다.먼저, 바인딩형 인수에서 한 항목 e를 선택하고(S301), 선택한 항목이 마지막인지를 판단한다(S303). 만일 선택한 항목이 마지막이라면 인코딩 작업을 종료하며, 마지막이 아닌 경우에는 선택한 항목의 바인딩 속성을 판단한다.상기 바인딩 항목 e의 바인딩 속성이 STRING이면(S305), 숫자 '0'에 세퍼레이터 인자(ⓢ)를 부가한다(S325). 여기서 숫자 '0'은 상기 바인딩 항목 e의 바인딩 속성을 구분하기 위한 것으로서, 하나의 예로써 표시된 것이다.이후에, 선택된 바인딩 항목 e의 이름에 세퍼레이터 인자(ⓢ)가 부가된 후(S327), 상기 바인딩 항목 e의 값에 세퍼레이터 인자(ⓢ)가 부가된다(S329). 예컨대, 바인딩 속성이 STRING이고 'name'이라고 명명된 항목의 값이 'John'으로 설정되어 있는 경우, 바인딩 인수의 인코딩된 결과는 다음과 같다.예) 0ⓢnameⓢJohnⓢⓔ여기서, 첫 머리의 '0'은 바인딩 항목 e의 바인딩 속성에 대한 정보로서 STRING이란 의미가 되고, ⓢ는 세퍼레이터 인자, ⓔ는 터미네이터 인자가 되는 것이다.한편, 선택된 바인딩 항목 e의 속성이 STRING이 아니고, 1차원 배열 즉, STRING[]일 경우(S307), 속성정보가 '1'이 되고, 세퍼레이터 인자(ⓢ)가 부가된다(S331). 이후, 바인딩 항목 e의 이름에 세퍼레이터 인자(ⓢ)가 부가되고(S333), 바인딩 항목 e의 크기에 세퍼레이터 인자(ⓢ)가 부가된다(S335). 이후에, STRING 속성의 규칙에 따라 바인딩 항목 e의 각 원소들이 인코딩된다(S337).또한, 선택된 바인딩 항목 e의 속성이 2차원 배열 즉, STRING[][]일 경우(S309), 속성정보 '2'와 세퍼레이터 인자(ⓢ)를 부가하고(S311), 바인딩 항목 e의 이름에 세퍼레이터 인자(ⓢ)를 부가한 후(S313), 바인딩 항목 e의 크기에 세퍼레이터 인자(ⓢ)를 부가한다(S315).2차원 배열에 따른 바인딩 항목 e의 한 행을 r이라고 한다면, 임의의 r을 선택한다(S317). 임의의 행 r이 선택된 후 더 이상 행이 있는지를 판단하고(S319), 더 이상 행이 존재하지 않으면 마지막 항목이 있는지 확인한 후(S303), 바인딩 인수에 대한 인코딩 작업을 종료한다.한편, 임의로 선택된 행 r이 마지막 행이 아닐 경우에는 행 r의 크기 즉 원소의 개수에 세퍼레이터 인자(ⓢ)를 부가하고(S321), 행 r의 모든 열에 대해서는 STRING 속성의 규칙에 따라 인코딩 작업을 적용하며(S323), 임의로 선택된 행 r 이외의 나머지 행들도 동일한 과정을 반복하여 인코딩 작업을 수행한다.종래의 와이들에 대한 일반적인 예에 따른 XML인코딩 방법과 같이 서비스 요청에 대한 응답이 사용자 이름, 게시판의 링크, 네가지 게시판의 항목으로 구성될 경우, 본 발명에 따른 인코딩 방법을 통해 수행되는 각 단계별 인코딩 과정 및 최종 인코딩 결과는 다음과 같으며, 하기의 인코딩 과정은 전술한 도 2 및 도 3의 동작 흐름순으로 수행된다.S201: ⓑS203: 없음S205: 인수존재 여부? 예S207: ⓑ3ⓢ (입력 바인딩 인수의 갯수가 3개임)S209: 인수의 형이 바인딩형인가? 예S211: S301: 바인딩 항목 name 선택S303: 마지막 항목여부? 아니오S305: 바인딩 항목 e의 속성이 STRING? 예S325: ⓑ3ⓢ0ⓢS327: ⓑ3ⓢ0ⓢnameⓢS329: ⓑ3ⓢ0ⓢnameⓢJohnⓢS301: 바인딩 항목 link를 선택S303: 마지막 항목여부? 아니오S305: link값 속성이 STRING? 아니오S307: link값 속성이 STRING[]? 예S331: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢS333: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢS335: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢS337: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢS301: 바인딩 항목 list를 선택S303: 마지막 항목여부? 아니오S305: list값 속성이 STRING? 아니오S307: list값 속성이 STRING[]? 아니오S309: list값 속성이 STRING[][]? 예S311: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢS313: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢS315: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢS317: 첫번 째 행 선택S319: 마지막 행 여부? 아니오S321: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢS323: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢS317: 두번 째 행을 선택S319: 마지막 행 여부? 아니오S321: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢS323: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢS317: 세 번째 행 선택S319: 마지막행 여부? 아니오S321: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢ4ⓢS323: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ3ⓢ질문입니다ⓢ손님ⓢ2003.9.16ⓢS317: 네번째 행 선택S319: 마지막행 여부? 아니오S321: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ3ⓢ질문입니다ⓢ손님ⓢ2003.9.16ⓢ4ⓢS323: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ3ⓢ질문입니다ⓢ손님ⓢ2003.9.16ⓢ4ⓢ4ⓢ답변입니다ⓢ관리자ⓢ2003.9.17ⓢS317: 다섯번째 행 선택S319: 마지막행 여부? 아니오S321: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ3ⓢ질문입니다ⓢ손님ⓢ2003.9.16ⓢ4ⓢ4ⓢ답변입니다ⓢ관리자ⓢ2003.9.17ⓢ4ⓢS323: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ3ⓢ질문입니다ⓢ손님ⓢ2003.9.16ⓢ4ⓢ4ⓢ답변입니다ⓢ관리자ⓢ2003.9.17ⓢ4ⓢ5ⓢ감사합니다ⓢ손님ⓢ2003.9.17ⓢS317: 행 선택S319: 마지막행 여부? 예S205: 인수 존재여부? 아니오S213: ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ3ⓢ질문입니다ⓢ손님ⓢ2003.9.16ⓢ4ⓢ4ⓢ답변입니다ⓢ관리자ⓢ2003.9.17ⓢ4ⓢ5ⓢ감사합니다ⓢ손님ⓢ2003.9.17ⓢⓔ서비스 요청에 대한 응답을 위한 최종 인코딩 결과:ⓑ3ⓢ0ⓢnameⓢJohnⓢ1ⓢlinkⓢ5ⓢhttp://www.abc.com/message/1.htmlⓢhttp://www.abc.com/message/2.htmlⓢhttp://www.abc.com/message/3.htmlⓢhttp://www.abc.com/message/4.htmlⓢhttp://www.abc.com/message/5.htmlⓢ2ⓢlistⓢ5ⓢ4ⓢ1ⓢ안녕하세요ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ2ⓢ공지사항입니다ⓢ관리자ⓢ2003.9.15ⓢ4ⓢ3ⓢ질문입니다ⓢ손님ⓢ2003.9.16ⓢ4ⓢ4ⓢ답변입니다ⓢ관리자ⓢ2003.9.17ⓢ4ⓢ5ⓢ감사합니다ⓢ손님ⓢ2003.9.17ⓢⓔ결과적으로, 종래의 엑스엠엘/알피씨(XML/RPC)의 경우 서비스 요청과 그에 따른 결과에 각각 282 바이트 및 1026 바이트의 데이터 크기가 소요되지만, 본 발명에 따른 인코딩 방법으로는 각각 51 바이트 및 324 바이트의 데이터 크기만이 요구된다. 따라서, 서비스 요청 및 응답에 따른 인코딩에 요구되는 데이터 크기면에서, 본 발명에 따른 인코딩 방법이 종래의 엑스엠엘을 이용한 엑스엠엘/알피씨(XML/RPC)의 인코딩 방법보다 더 효율적임을 알 수 있다.
이상 설명된 바와 같이, 본 발명에 따르면 트랜스포트 층을 위한 HTTP에 비해 단순한 TCP 소켓에만 의존하고, XML에 비해 단순한 인코딩을 수행함으로써 프로토콜 해석 프로그램이 간략화되며, 단순한 인코딩 및 디코딩을 통해 전송 데이터의 크기를 줄여 전송 효율을 높일 수 있고, 클라이언트 라이브러리를 최소화하여 휴대용 전화기, 휴대용 사무기기 및 모바일 기기의 프로토콜로 쉽게 이용할 수 있는 효과가 있다.이상에서 설명한 것은 본 발명에 따른 와이들 웹 프레임 워크를 위한 인코딩 방법을 실시하기 위한 하나의 실시예에 불과한 것으로, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.

Claims (3)

  1. a) 클라이언트 측으로부터의 프로토콜 명령과 와이들 서비스의 요청에 따라 서비스 시작을 나타내는 표시자인 스타터 인자(ⓑ)를 출력하는 단계;
    b) 상기 프로토콜 명령 또는 와이들 서비스의 명칭을 출력하는 단계;
    c) 상기 와이들 서비스의 요청에 인수가 필요한지를 판단한 후, 상기 판단 결과, 인수가 필요하지 않은 경우에 서비스 종료를 나타내는 표시자인 터미네이터 인자(ⓔ)를 출력하고 인코딩을 종료하거나, 상기 판단 결과, 인수가 필요한 경우에 인수의 개수와 각 서비스를 구분하기 위한 표시자인 세퍼레이터 인자(ⓢ)를 출력하는 단계; 및
    d) 상기 인수의 형을 판단한 후, 상기 판단 결과, 상기 인수가 문자열형인 경우에 그 문자열과 세퍼레이터 인자(ⓢ)를 출력한 후 상기 c) 단계를 반복 수행하거나, 상기 판단 결과, 상기 인수가 바인딩형인 경우에 상기 인수의 속성에 따라 바인딩 인코딩을 수행한 후 상기 c) 단계를 반복 수행하는 단계를 포함하는 것을 특징으로 하는 와이들 웹 프레임 워크를 위한 인코딩 방법.
  2. 제 1 항에 있어서, 상기 바인딩 인코딩 단계는,
    a) 바인딩 항목을 선택하는 단계;
    b) 상기 선택된 바인딩 항목의 형을 판단한 후, 상기 바인딩 항목의 형이 0차원 배열(STRING)인 경우, 상기 0차원 배열에 해당하는 분류 인자와 상기 세퍼레이터 인자(ⓢ), 상기 바인딩 항목의 이름과 상기 세퍼레이터 인자(ⓢ) 그리고 상기 바인딩 항목의 값과 상기 세퍼레이터 인자(ⓢ)를 각각 순차적으로 출력하는 단계;
    c) 상기 바인딩 항목의 형이 1차원 배열(STRING[])일 경우, 상기 1차원 배열에 해당하는 분류 인자와 상기 세퍼레이터 인자(ⓢ), 상기 바인딩 항목의 이름과 세퍼레이터 인자(ⓢ) 그리고 상기 바인딩 항목의 크기와 상기 세퍼레이터 인자(ⓢ)를 각각 순차적으로 출력하고, 상기 1차원 배열(STRING[]) 내의 각 원소들에 대하여 인코딩을 수행하는 단계; 및
    d) 상기 바인딩 항목의 형이 2차원 배열(STRING[][])일 경우, 상기 2차원 배열에 해당하는 분류 인자와 상기 세퍼레이터 인자(ⓢ), 상기 바인딩 항목의 이름과 상기 세퍼레이터 인자(ⓢ), 그리고 상기 바인딩 항목의 크기와 상기 세퍼레이터 인자(ⓢ)를 각각 순차적으로 출력하고, 상기 2차원 배열(STRING[][]) 중에서 선택된 임의의 한 행의 크기와 상기 세퍼레이터 인자(ⓢ)를 출력한 후에 상기 행의 모든 열에 대해 상기 과정에 따른 인코딩을 수행하며, 상기 행을 제외한 나머지 행을 선택하여 상기 인코딩 과정을 반복 수행한 후에 현재 반복중인 행 선택이 마지막일 경우 인코딩을 종료하는 단계를 포함하는 것을 특징으로 하는 와이들 웹 프레임 워크를 위한 인코딩 방법.
  3. 제 2 항에 있어서, 상기 0차원, 1차원 및 2차원 배열에 해당하는 각 분류 인자는 와이들 서비스의 명칭이나 웹 데이터와 충돌을 일으키지 않는 임의의 숫자인 것을 특징으로 하는 와이들 웹 프레임 워크를 위한 인코딩 방법.
KR10-2001-0005854A 2001-02-07 2001-02-07 와이들 웹 프레임 워크를 위한 인코딩 방법 KR100435005B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0005854A KR100435005B1 (ko) 2001-02-07 2001-02-07 와이들 웹 프레임 워크를 위한 인코딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0005854A KR100435005B1 (ko) 2001-02-07 2001-02-07 와이들 웹 프레임 워크를 위한 인코딩 방법

Publications (2)

Publication Number Publication Date
KR20020065697A KR20020065697A (ko) 2002-08-14
KR100435005B1 true KR100435005B1 (ko) 2004-06-11

Family

ID=27693566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0005854A KR100435005B1 (ko) 2001-02-07 2001-02-07 와이들 웹 프레임 워크를 위한 인코딩 방법

Country Status (1)

Country Link
KR (1) KR100435005B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816576A (ja) * 1994-07-01 1996-01-19 Ricoh Co Ltd 構造化文書編集装置
KR19990073957A (ko) * 1998-03-05 1999-10-05 구자홍 에치티엠엘 문서 작성 방법
KR20000072172A (ko) * 2000-08-10 2000-12-05 박광준 웹 브라우저의 개인기호 설정 및 사용방법
KR20020057709A (ko) * 2001-01-05 2002-07-12 문영웅 엑스엠엘 문서 작성을 위한 편집기

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816576A (ja) * 1994-07-01 1996-01-19 Ricoh Co Ltd 構造化文書編集装置
KR19990073957A (ko) * 1998-03-05 1999-10-05 구자홍 에치티엠엘 문서 작성 방법
KR20000072172A (ko) * 2000-08-10 2000-12-05 박광준 웹 브라우저의 개인기호 설정 및 사용방법
KR20020057709A (ko) * 2001-01-05 2002-07-12 문영웅 엑스엠엘 문서 작성을 위한 편집기

Also Published As

Publication number Publication date
KR20020065697A (ko) 2002-08-14

Similar Documents

Publication Publication Date Title
US8751558B2 (en) Mashup infrastructure with learning mechanism
US7461385B2 (en) Method for establishing a new user interface via an intermingled user interface
US7200809B1 (en) Multi-device support for mobile applications using XML
GB2555157A (en) Selective sharing for collaborative application usage
US20090106296A1 (en) Method and system for automated form aggregation
US20130046894A1 (en) Model-driven rest consumption framework
US20110258192A1 (en) Providing question and answer services
US11860963B2 (en) Enhanced methods and systems for automated skill generation and management
Dospinescu et al. Web Services in Mobile Applications.
CA2516125C (en) Systems and methods for contextual mark-up of formatted documents
WO2021093673A1 (zh) 邮件发送方法、装置、设备及计算机可读存储介质
CA2437273A1 (en) Network conduit for providing access to data services
JP2008134906A (ja) 業務プロセス定義生成方法、装置及びプログラム
US7941561B2 (en) System and method for communications over a computer network
CN116569165A (zh) 页面显示方法、装置、存储介质及电子设备
US8010595B2 (en) Execution of server-side dynamic pages
KR100435005B1 (ko) 와이들 웹 프레임 워크를 위한 인코딩 방법
CN111045990B (zh) 文档管理系统
CN111158661A (zh) 系统接口对接方法、装置、介质及电子设备
Solomon Distributed computing for conglomerate mathematical systems
Phan Web Application Programming Interface Design for a Customer Portal
JP5175817B2 (ja) リクエスト代行システム及びリクエスト代行方法
CN117561523A (zh) 与机器学习一起使用的数据准备
Wu et al. Toward an opensocial life science gateway
Maechling et al. Seismic hazard analysis using distributed computing in the SCEC community modeling environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120330

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130528

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee