KR101007681B1 - Method of Evaluation of Predicates for Access Control - Google Patents

Method of Evaluation of Predicates for Access Control Download PDF

Info

Publication number
KR101007681B1
KR101007681B1 KR1020080058520A KR20080058520A KR101007681B1 KR 101007681 B1 KR101007681 B1 KR 101007681B1 KR 1020080058520 A KR1020080058520 A KR 1020080058520A KR 20080058520 A KR20080058520 A KR 20080058520A KR 101007681 B1 KR101007681 B1 KR 101007681B1
Authority
KR
South Korea
Prior art keywords
node
conditional
conditional expression
result value
value
Prior art date
Application number
KR1020080058520A
Other languages
Korean (ko)
Other versions
KR20090132320A (en
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 KR1020080058520A priority Critical patent/KR101007681B1/en
Publication of KR20090132320A publication Critical patent/KR20090132320A/en
Application granted granted Critical
Publication of KR101007681B1 publication Critical patent/KR101007681B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

접근 제어를 위한 조건식 계산 방법이 개시된다. 접근 제어를 위한 조건식 계산 방법은 조건식 그래프에서 제1 조건식에 상응하는 제1 노드가 검출되는 단계, 제1 노드의 결과값이 결정되었는지 판단하는 단계 및 제1 노드의 결과값이 결정된 경우 제1 노드의 결과값이 제1 조건식의 결과값으로써 추출되는 단계를 포함할 수 있다. 본 발명에 따르면 동일한 부분 조건식이 반복하여 계산되는 것을 방지하여 전자 장치에 가해지는 부하를 줄이고 접근 제어 규칙에 소요되는 시간을 단축하는 효과가 있다.

Figure R1020080058520

XML, XForms, XPath, 접근 제어, 조건식

Disclosed are a conditional calculation method for access control. The method of calculating a conditional expression for access control includes detecting a first node corresponding to the first conditional expression in a conditional graph, determining whether a result value of the first node is determined, and determining a result value of the first node. And extracting the resultant value as the result value of the first conditional expression. According to the present invention, the same partial conditional expression is prevented from being repeatedly calculated, thereby reducing the load on the electronic device and reducing the time required for the access control rule.

Figure R1020080058520

XML, XForms, XPath, Access Control, Conditional Expression

Description

접근 제어를 위한 조건식 계산 방법{Method of Evaluation of Predicates for Access Control}Conditional expression calculation method for access control {Method of Evaluation of Predicates for Access Control}

본 발명은 접근 제어를 위한 조건식 계산 방법에 대한 것으로, 상세하게는 접근 제어를 위한 공유 조건식의 반복적 계산을 피하여 효율적으로 계산하는 방법에 대한 것이다.The present invention relates to a method of calculating a conditional expression for access control, and more particularly, to a method of efficiently calculating avoiding iterative calculation of a shared conditional expression for access control.

XML(eXtensible Markup Language) 접근 제어(access control)는 사용자에게 한정된 데이터 접근만을 허용하는 것으로 주로 서버에서 처리되었다. 그러나 최근에는 사용자 인터페이스 요소를 접근 제어의 대상으로 하여 선별적인 액션(action)을 허용하는 개념이 웹 기반 시스템을 중심으로 도입되었다. 특히 웹사이트에서 사용자 권한에 맞는 페이지의 생성을 위해 접근 제어 기법이 많이 사용된다. XML 트리(tree)에 대한 질의 언어인 XPath를 이용한 접근 제어 규칙을 통해 XML 데이터에 대한 접근 제어를 기술하고 이를 통해 웹 페이지를 생성하는 서버 기반 기법이 알려져 있다.  XML (eXtensible Markup Language) access control was handled mainly on the server, allowing only limited data access to the user. Recently, however, the concept of allowing selective actions with user interface elements as the target of access control has been introduced around the web-based system. In particular, access control techniques are often used to create pages that match the user's rights in a website. A server-based technique for describing access control on XML data through an access control rule using XPath, a query language for XML trees, and generating a web page is known.

한편, 서비스 기반 아키텍처(architecture)가 보급되면서 차세대 웹 폼(web form) 언어 표준인 XForms 기반의 클라이언트 설계 방법이 웹 서버와의 통신을 기술하는데 유용한 방법으로 등장하였다. XForms 페이지는 XML 모델 인스턴스(instance)에 대한 질의(query)의 집합으로 볼 수 있으며 브라우저나 클라이언트 애플리케이션이 인터페이스 요소의 순서에 따라 질의를 처리하는 것으로 볼 수 있다.Meanwhile, with the spread of service-based architecture, XForms-based client design method, the next generation web form language standard, has appeared as a useful method for describing communication with web servers. An XForms page can be viewed as a set of queries for an XML model instance, and can be viewed as a browser or client application processing the query in the order of the interface elements.

종래의 방식에 따르면 XPath를 이용한 접근 제어 규칙을 적용하기 위해 조건식을 계산함에 있어서, 동일한 부분 조건식이 여러 조건식의 일부로 사용되더라도 각 조건식의 계산 때마다 반복하여 계산되어 중앙처리장치나 기타 구성부에 부담이 될 수 있으며, 접근 제어 규칙의 적용이 완료되기까지 요구되는 시간이 지연되는 문제가 있었다.According to the conventional method, in calculating a conditional expression to apply an access control rule using XPath, even if the same partial conditional expression is used as part of several conditional expressions, it is calculated repeatedly for each conditional expression, thereby burdening the central processing unit or other components. There is a problem that the time required until the application of the access control rule is completed is delayed.

본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로, 동일한 부분 조건식이 반복하여 계산되는 것을 방지하여 전자 장치에 가해지는 부하를 줄이고 접근 제어 규칙에 소요되는 시간을 단축하고자 하는 데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problem, and an object thereof is to reduce the load on the electronic device and shorten the time required for an access control rule by preventing the same partial conditional expression from being repeatedly calculated.

본 발명의 일측면에 따르면 접근 제어를 위한 조건식 계산 방법이 제공된다.According to one aspect of the invention there is provided a conditional calculation method for access control.

본 발명의 일 실시예에 의한 접근 제어를 위한 조건식 계산 방법은 조건식 그래프에서 제1 조건식에 상응하는 제1 노드가 검출되는 단계, 제1 노드의 결과값이 결정되었는지 판단하는 단계 및 제1 노드의 결과값이 결정된 경우 제1 노드의 결과값이 제1 조건식의 결과값으로써 추출되는 단계를 포함할 수 있다.According to an exemplary embodiment of the present invention, a method of calculating a conditional expression for access control includes detecting a first node corresponding to a first conditional expression in a conditional graph, determining whether a result value of the first node is determined, and When the result value is determined, the method may include extracting a result value of the first node as a result value of the first conditional expression.

본 발명에 따르면 동일한 부분 조건식이 반복하여 계산되는 것을 방지하여 전자 장치에 가해지는 부하를 줄이고 접근 제어 규칙에 소요되는 시간을 단축하는 효과가 있다.According to the present invention, the same partial conditional expression is prevented from being repeatedly calculated, thereby reducing the load on the electronic device and reducing the time required for the access control rule.

이하, 본 발명에 따른 XML 데이터 접근 제어를 위한 공유 조건식 계산 방법의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of a method for calculating a shared conditional expression for XML data access control according to the present invention will be described in detail with reference to the accompanying drawings. In the following description with reference to the accompanying drawings, the same or corresponding components are the same drawings. The numbering and duplicate description thereof will be omitted.

도 1a는 태스크 리스트 XML 트리의 예시도이다.1A is an exemplary diagram of a task list XML tree.

도 1b는 DTD 트리의 예시도이다.1B is an illustration of a DTD tree.

예제 태스크 리스트 XML 트리(100)와 예제 DTD 트리(150)는 서로 상응하는 구조로 되어 있다.The example task list XML tree 100 and the example DTD tree 150 have structures corresponding to each other.

편의상 예제 태스크 리스트 XML 트리에서 인스턴스 노드의 속성과 노드의 이 름은 구분이 가능한 경우 앞의 한두 글자만 표현하였다. @는 속성을 나타낸다.For convenience, the attributes of the instance node and the name of the node in the example task list XML tree are only represented by the first one or two letters. @ Represents an attribute.

예를 들어 DTD 트리의 @author 노드(151)와 XML 인스턴스 트리의 @author 노드(111)는 서로 대응될 수 있다.For example, the @author node 151 of the DTD tree and the @author node 111 of the XML instance tree may correspond to each other.

예제 태스크 리스트 XML 트리(100)의 타원 내부에는 속성 이름(attribute name)이나 요소 이름(element name)이 적혀 있고 그 원 밖에는 상응하는 속성값(attribute value)이나 요소 내용(element content)이 적혀있다.Example Task List In the ellipse of the XML tree 100, an attribute name or an element name is written, and a corresponding attribute value or element content is written outside the circle.

제1 태스크(110)의 자식 노드인 @author 노드(111)는 author 속성(151)을 나타내고 제1 태스크(110)의 author 속성은 'seo'의 값을 갖는다.The @author node 111, which is a child node of the first task 110, represents the author attribute 151 and the author attribute of the first task 110 has a value of 'seo'.

제1 태스크(110)의 자식 노드인 description 노드(112)는 description 요소(element)(152)를 나타내고, 제1 태스크(110)의 description 요소는 'SU-'로 시작하는 내용을 가진다.A description node 112, which is a child node of the first task 110, represents a description element 152, and the description element of the first task 110 has content starting with 'SU-'.

XML 데이터 인스턴스는 트리이며 트리 T XML = ( N XML , E XML )로 표현될 수 있다. N XML 은 XML 인스턴스 트리에 포함된 노드(node)를 나타내고 E XML 는 XML 인스턴스 트리에 포함된 에지(edge)를 나타낸다. 노드 x ∈ N XML text ()를 가지는 노드(텍스트 노드, 내용이 텍스트인 노드)인 터미널 노드(terminal node, 말단 노드)이거나 내부 노드(internal node)일 수 있다. 속성(attribute)은 터미널 노드로 취급될 수 있다.XML data instance is a tree and tree T XML It can be expressed as = ( N XML , E XML ) . N XML represents a node included in the XML instance tree, and E XML represents an edge included in the XML instance tree. Node x ∈ N XML can be either a terminal node that is a node with text () (a text node, a node whose content is text) or an internal node. Attributes can be treated as terminal nodes.

스키마(schema)는 DTD(Document Type Definition) 트리 D = ( N DTD , E DTD )로 정 의될 수 있다. N DTD 는 DTD 트리의 노드이고 E DTD 는 DTD 트리의 에지이다. DTD의 재귀적(recursive) 요소 정의는 DTD 트리의 경로를 XML 인스턴스 트리와 동일한 깊이만큼 확장하여 제거할 수 있다. 이 방법은 DTD 트리가 재귀(recursion)를 갖지 않으면서 깊이가 XML 인스턴스 트리의 깊이를 넘지 않는 것을 보장할 수 있다.Schema can be defined as DTD (Document Type Definition) tree D = ( N DTD , E DTD ) . N DTD is a node of the DTD tree and E DTD is an edge of the DTD tree. The recursive element definition of a DTD can be removed by extending the path of the DTD tree to the same depth as the XML instance tree. This method can ensure that the depth does not exceed the depth of the XML instance tree without the DTD tree having recursion.

집합 L이 트리 D에서 정의된 노드 레이블(lable)의 집합이라고 할 수 있다. XML 인스턴스 트리의 노드 x와 DTD 트리의 노드 v에 대해 노드 레이블로의 매핑(mapping) l이 정의되어서 l(x) ∈ L이고 l(v) ∈ L라고 할 수 있다. 노드 레이블의 연속 p ∈ L*를 경로라 하고 XML 트리와 DTD 트리의 노드 xv에 대해 루트로부터의 경로를 각각 path (x)path (v)라 할 수 있다. 여기서 '*'는 정규식(regular expressions)에서 사용되는 클레이니 스타(Kleene star) 또는 클레이니 클로저(Kleene closure)로 사용되었다. 주어진 경로 p ∈ L*에 대해 트리에서의 후손 노드 집합을 descend 함수로 정의하며 descend (v, p) ⊂ N DTD , descend (x, p) ⊂ N XML 로 표시할 수 있다. 트리 T가 트리 D에 대해 유효한 트리이면 N XML 에 대해 매핑 M X->D (x) = {v ∈ D | path (v) = path (x), x ∈ N XML } 가 정의될 수 있다.The set L can be said to be a set of node labels defined in the tree D. Mapping l to node label is defined for node x in XML instance tree and node v in DTD tree, so l (x) ∈ L and l (v) ∈ L. The consecutive p ∈ L * of the node labels are called paths, and the paths from root for paths x and v in the XML and DTD trees are path (x) and path (v) , respectively. Here '*' is used as the Kleene star or Kleene closure used in regular expressions. A set of descendant nodes in the tree can be defined with the descend function for a given path p descend L * and expressed as descend (v, p) ⊂ N DTD , descend (x, p) ⊂ N XML . If tree T is a valid tree for tree D, then map to N XML M X-> D (x) = {v ∈ D | path (v) = path (x), x ∈ N XML } can be defined.

도 2a 및 도 2b 는 본 발명의 일 실시예에 따라 제공되는 사용자 인터페이스 화면의 예시도이다.2A and 2B are exemplary views of a user interface screen provided according to an embodiment of the present invention.

접근 규칙이 주어졌을 때 브라우저 시스템은 허용된 데이터 아이템만 보여주 거나, 입력 컨트롤을 쓰기 권한이 없고 읽기 권한만 있는 경우 그냥 텍스트로 보여주는 등 권한에 따라 화면을 구성할 수 있다. 추가나 삭제 등의 버튼을 권한이 허용되는 경우에만 활성화할 수 있다.Given the access rules, the browser system can configure the screen according to the permissions, such as showing only the data items that are allowed, or just text if the input control does not have write permission and only read permission. Buttons such as add or delete can only be activated if the permission is granted.

도 2a 및 도 2b에서 SU 태스크는 사용자 seo와 kim에게 모두 보이지만 seo는 모든 필드를 수정할 수 있고 kim은 읽기만 가능하다. 또한, seo는 BOU 태스크를 읽을 수만 있으면서 의견 추가(comment)는 가능하다.2A and 2B, the SU task is visible to both user seo and kim, but seo can modify all fields and kim can only read. In addition, seo can only read BOU tasks, but can add comments.

XForms는 W3C(World Wide Web Consortium)의 표준으로 XForms는 웹을 위한 폼(forms)의 다음 세대를 표현하는 XML 애플리케이션이다. 전통적 XHTML(Extensible HyperText Markup Language) 폼을 XForms 모델, 인스턴스 데이터, 사용자 인터페이스의 세 부분으로 나눔으로써 표현을 콘텐트로부터 분리하였고, 재사용을 허용하였을 뿐 아니라 장치 독립성을 제공하고 스크립팅의 필요성을 줄였다.XForms is the World Wide Web Consortium (W3C) standard. XForms is an XML application that represents the next generation of forms for the Web. By dividing the traditional Extensible HyperText Markup Language (XHTML) form into three parts: the XForms model, instance data, and the user interface, the expression was separated from the content, allowing reuse, providing device independence and reducing the need for scripting.

XForms는 혼자서 사용되는 문서 유형이 아니고 XHTML이나 SVG(Scalable Vector Graphics)와 같은 다른 마크업 언어(markup languages)와 함께 사용되도록 의도되었다.XForms is not a document type used by itself, but is intended to be used with other markup languages such as XHTML or Scalable Vector Graphics (SVG).

XForms에 대한 자세한 설명은 웹 페이지 http://www.w3.org/TR/xforms에서 얻을 수 있다.A detailed description of XForms is available on the web at http://www.w3.org/TR/xforms.

XForms 요소가 XML 인스턴스 요소에 바인드(bind) 될 때 접근 권한에 의해 그 액션이 허용될지 여부가 결정될 수 있다. 그 요소들은 화면에 등장하는 순서로 권한 계산이 이루어질 수 있다. 하나의 XForms 요소가 사용자나 컨텍스트 변수 값에 따라 또는 XML 인스턴스 요소의 값에 따라 허용되거나 금지될 수 있다.When an XForms element is bound to an XML instance element, access rights can determine whether the action is allowed. The elements can be computed in the order in which they appear on the screen. An XForms element can be allowed or prohibited depending on the value of a user or context variable or on the value of an XML instance element.

XPath(XML Path Language)는 W3C의 표준으로 확장 생성 언어 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어이다. XML 표현보다 더 쉽고 약어로 되어 있으며, XSL(eXtensible Stylesheet Language) 변환(Translation)과 XML 지시자 언어(XPointer)에 쓰이는 언어이다. XPath는 XML 문서의 노드를 정의하기 위하여 경로식을 사용하며, 수학 함수와 기타 확장 가능한 표현들이 있다.XPath (XML Path Language) is a W3C standard that describes how to construct and process items using the syntax specified above the path through the structure of an extension-generated language document. It is easier and abbreviated than the XML representation, and is the language used for eXtensible Stylesheet Language (XSL) translation and XML Pointer Language (XPointer). XPath uses path expressions to define the nodes of an XML document, including mathematical functions and other extensible expressions.

XPath에 대한 자세한 설명은 웹 페이지 http://www.w3.org/TR/xpath20/에서 얻을 수 있다.A detailed description of XPath is available on the web at http://www.w3.org/TR/xpath20/.

이 명세서에서 사용되는 XPath 수식은 다음과 같이 정의될 수 있다.The XPath formula used in this specification may be defined as follows.

XPath p는 다음과 같이 정의될 수 있다.XPath p can be defined as:

p = p | p '*' | p '//',p = p | p '*' | p '//',

p := p '/' p | l[ expr ] | l,  l ∈ L p : = p '/' p | l [ expr ] | l, l ∈ L

조건식 expr은 다음과 같이 정의될 수 있다. Expr condition can be defined as follows:

expr := expr op expr | term , term := p | value | variable, expr : = expr op expr | term , term : = p | value | variable ,

여기서 op은 논리 또는 비교 연산자이고 value variable은 각각 리터 럴(literal) 값과 $로 시작되는 변수 이름을 나타낼 수 있다.Where op is a logical or comparison operator value and variable can represent literal values and variable names starting with $, respectively.

'*'는 XPath에서의 정의에 따라 와일드카드(wildcard)의 의미로 사용되었다.'*' Is used to mean wildcards as defined by XPath.

예를 들어 /A/*는 A의 모든 자식 노드를 가리킬 수 있다.For example, / A / * can refer to all child nodes of A.

'//'는 XPath에서의 정의에 따라 자기 자신 또는 그 후손을 가리킨다.'//' refers to itself or its descendants, as defined by XPath.

예를 들어 /A//는 A와 A의 모든 후손을 가리킬 수 있다.For example, / A // can refer to A and all descendants of A.

변수는 조건식에서 시스템 정의 값을 참조하기 위해 사용된다. 예를 들어 사용자 아이디, 날짜, 시간 등을 변수로 사용할 수 있다. 변수는 보통 XPath 계산 전에 값이 결정되므로 계산 과정에서는 리터럴 값과 동일하게 취급될 수 있다. Variables are used to refer to system-defined values in conditional expressions. For example, user ID, date, and time can be used as variables. Variables are usually determined before their XPath calculation, so they can be treated the same as literal values.

이하 편의상 XPath의 마지막에 나타나는 * 또는 //를 'tail'로 표시한다.For convenience, the * or // appearing at the end of the XPath is indicated as 'tail'.

경로 p = p 0 e0 p 1 p k e k tail에 대해 결과 노드의 집합을 target (p) = {v ∈ N DTD | path (v) matches p 0 p 1 p k tail }로 표시하고 조건부 수식은 expr (p) = e 0 and e 1 and e k 로 표시할 수 있다. XPath p에 의해 표현되는 노드 집합을 answerset(p) 라 할 수 있다. 주어진 XML 노드 x에 대해 부분조건식이 모두 만족하여야 x가 p를 만족하므로 다음과 같이 표현할 수 있다. Path p = p 0 e0 p 1 . p k e k Set the result set of nodes for tail target (p) = {v ∈ N DTD | path (v) matches p 0 p 1 . p k tail } and the conditional formula is expr (p) = e 0 and e 1 . and e k Can be displayed as The set of nodes represented by XPath p can be called answerset (p) . It must satisfy all the condition part for a given XML node x x satisfies p can be expressed as follows.

answersetanswerset (p) = {x | (p) = {x | MM XX →D→ D (x) ∈ (x) ∈ targettarget (p)이고 (p) exprexpr (p)가 x에 대해 참이다.}(p) is true for x}

조건식 e i 에 대응하는 DTD 노드의 집합은 base ( e i ) = {w ∈ N DTD | p 0 p 1 … pi = path(w)}로 표시될 수 있다.The set of DTD nodes corresponding to the conditional expression e i is base ( e i ) = {w ∈ N DTD | p 0 p 1 . pi = path (w)} .

접근 제어를 기술하기 위하여 규칙은 액션 유형과 대상 노드 집합으로 표현될 수 있다. 규칙은 일반적으로 XML 인스턴스의 값과 컨텍스트 변수의 값을 이용하는 조건식을 통해 허용 조건을 기술한다.To describe access control, rules can be expressed in terms of action type and target node set. A rule typically describes an allowable condition through a conditional expression that uses the value of an XML instance and the value of a context variable.

접근 제어를 위한 액션 유형은 T = {Read, Update, Create, Delete}로 정의될 수 있다. Read는 해당 노드에 대한 읽기 권한을 의미할 수 있다. Update는 해당 노드에 대한 갱신 권한을 의미할 수 있다. Create는 해당 노드의 생성 권한을 의미할 수 있다. Delete는 해당 노드의 삭제 권한을 의미할 수 있다.The action type for access control may be defined as T = {Read, Update, Create, Delete}. Read may mean read permission for the node. Update may mean an update authority for the node. Create may mean create permission of the node. Delete may mean the right to delete a node.

접근 제어 규칙은 r = (t, p)로 표시될 수 있는데, 여기서 t ∈ T, p는 XPath이다. 접근 제어 규칙의 집합은 접근 제어 정책이라 불리고 P로 표시될 수 있다. An access control rule can be represented by r = (t, p) , where t ∈ T, p is XPath. The set of access control rules is called an access control policy and can be denoted by P.

접근 제어 정책은 제한되는 모든 연산을 나열하는 것으로 가정할 수 있다. 기본적으로 모든 노드에 대한 모든 접근이 허용되며, 접근 제어 정책에 포함된 접근 제어규칙을 만족하는 노드만 접근이 제한되는 것이다.The access control policy can be assumed to list all operations that are restricted. By default, all access to all nodes is allowed, and access is restricted only to nodes that meet the access control rules included in the access control policy.

일정한 우선 순위 정책을 가지고 일부 접근 제어 규칙은 그 규칙을 만족하는 노드에 대한 접근이 허용되고, 나머지 접근 제어 규칙은 그 규칙을 만족하는 노드에 대한 접근이 제한되는 것으로 가정할 수도 있다.It is also possible to assume that some access control rules with a certain priority policy allow access to nodes that satisfy those rules, while others restrict access to nodes that satisfy those rules.

이하에서는 편의상 접근 제어 정책은 허용되는 모든 연산을 나열하는 것으로 가정한다. 기본적으로 모든 노드에 대한 모든 접근이 제한되며, 접근 제어 정책에 포함된 접근 제어규칙을 만족하는 노드만이 접근이 허용되는 것으로 가정한다.For convenience, it is assumed below that the access control policy lists all allowed operations. Basically, all access to all nodes is restricted, and it is assumed that only nodes satisfying the access control rules included in the access control policy are allowed access.

표 1은 도 1a의 XML 트리에 대한 접근 정책의 예이다.Table 1 is an example of an access policy for the XML tree of FIG. 1A.

r1 = (Create, /list/task)
r2 = (Delete, /list/task[@author=$user])
r3 = (Read, /list/task[@level=1 | @author=$user or (@level!=3 and (group/user=$user | @super=$user))]/*)
r4 = (Update, /list/task[@author=$user]/{@type, @duedate, description, @level})
r5 = (Create, /list/task[@author=$user | (@level!=3 & (group/user=$user | @super=$user))]/comments/comment)
r9 = (Read, /list/task[@author=$user | (@level!=3 & (group/user=$user | @super=$user))]/comments/comment/*)
r1 = (Create, / list / task)
r2 = (Delete, / list / task [@ author = $ user])
r3 = (Read, / list / task [@ level = 1 | @ author = $ user or (@level! = 3 and (group / user = $ user | @ super = $ user))] / *)
r4 = (Update, / list / task [@ author = $ user] / {@ type, @duedate, description, @level})
r5 = (Create, / list / task [@ author = $ user | (@level! = 3 & (group / user = $ user | @ super = $ user))) / comments / comment)
r9 = (Read, / list / task [@ author = $ user | (@level! = 3 & (group / user = $ user | @ super = $ user))] / comments / comment / *)

r1은 list 노드의 자식인 task를 생성하는 것이 허용되는 것을 의미한다.r1 means that it is allowed to create tasks that are children of the list node.

r2는 list 노드의 자식인 task를 삭제하려는 경우 그 task의 author 속성값이 현재 사용자(웹 페이지 로그인 등으로 구현될 수 있음)와 같은 경우 삭제 권한이 허용되는 것을 의미한다.r2 means that if you want to delete a task that is a child of the list node, delete permission is allowed if the task's author property value is the same as the current user (which can be implemented as a web page login, etc.).

r3 내지 r9 규칙도 XPath 표준에 따라 r1 및 r2와 같이 이해할 수 있다.The r3 to r9 rules can also be understood as r1 and r2 according to the XPath standard.

XForms는 사용자 인터페이스를 기술하는 언어로 액션 템플릿을 작성할 수 있다. 액션 템플릿은 사용자 액션에 대한 템플릿 명세이며 XForms 페이지는 액션 템플릿의 집합이라고 볼 수 있다. 액션 템플릿은 접근 규칙과 같은 방식으로 at = (t, p)와 같이 표현될 수 있다.XForms lets you write action templates in a language that describes the user interface. An action template is a template specification for user actions, and an XForms page is a collection of action templates. An action template can be expressed as at = (t, p) in the same way as an access rule.

XForms 페이지에서 input, select, output 같은 사용자 인터페이스 요소들이 액션 템플릿이다. 또한, insert, delete 등의 액션 요소도 액션 템플릿을 표현한다. XForms 요소와 액션 유형의 관계는 다음과 같다.In the XForms page, user interface elements such as input, select, and output are action templates. In addition, action elements such as insert and delete also represent action templates. The relationship between XForms elements and action types is as follows:

XForms 요소 e에 대해 대응하는 액션 유형 e. type은 다음과 같이 표현될 수 있다.Type of action to respond to XForms elements e e. type can be expressed as:

l(e) = output이면 e. type = Read , if l (e) = output e. type = Read ,

l(e) = input , select , textarea이면 e. type = Update , if l (e) = input , select , textarea e. type = Update ,

l(e) = delete이면 e. type = Delete , If l (e) = delete, e. type = Delete ,

l(e) = insert이면 e. type = Create . if l (e) = insert e. type = Create .

XForms 요소와 액션 유형 간에 관계를 단순화하기 위하여 여기서는 trigger 대신 insert와 delete 요소를 액션 템플릿으로 정하였다. 일반적으로 insert, delete 요소는 trigger나 submit의 자식 요소로 등장한다.In order to simplify the relationship between XForms elements and action types, we've chosen insert and delete elements as action templates instead of triggers. In general, insert and delete elements appear as child elements of a trigger or submit.

그 이외에 group이나 repeat 같은 인터페이스 요소들은 인스턴스 트리를 순회하는 구조를 표현한다. 액션 템플릿 요소들은 이 구조 요소의 자식으로 나타나는데, 구조 요소에 대응하는 DTD 노드들을 템플릿 베이스 노드라 할 수 있다. XForms의 액션 템플릿 요소들은 ref, 또는 nodeset 속성으로 컨텍스트 베이스 노드로부터의 상대 경로를 표시한다. XForms 언어에서 정의되는 액션 템플릿은 액션 타입 t, 템플릿 베이스 노드 v b , 그리고 상대 경로 ref에 대해 at = (t, v b , ref )로 표현될 수 있다.In addition, interface elements such as group and repeat represent a structure that traverses the instance tree. Action template elements appear as children of this structure element. DTD nodes corresponding to the structure element may be referred to as template base nodes. Action template elements in XForms represent relative paths from the context base node with the ref or nodeset attributes. Action templates defined in the XForms language can be expressed as at = (t, v b , ref ) for the action type t, the template base node v b , and the relative path ref .

표 2는 예제 XForms 페이지 코드의 일부이다.Table 2 shows part of the example XForms page code.

<table>
  <xf:repeat ref = 'task'>
    <tr>
     <td><xf:input ref='@type'></td>
     <td><xf:output ref='@author'></td>
     <td><xf:input ref='description'></td>
     <td><xf:input ref='@state'></td>
     <td><xf:trigger><xf:delete ref='.'/></xf:trigger></td>
    </tr>
  </xf:repeat>
<table>
<xf: repeat ref = 'task'>
<tr>
<td><xf: input ref = '@ type'></td>
<td><xf: output ref = '@ author'></td>
<td><xf: input ref = 'description'></td>
<td><xf: input ref = '@ state'></td>
<td><xf:trigger><xf: delete ref = '.'/></ xf: trigger></td>
</ tr>
</ xf: repeat>

표 2의 XForms 페이지 코드에서는 @type, description, @state의 Update 액션과 @author의 Read 액션, 그리고 task 요소의 삭제 액션을 정의한다. 표 2에서 템플릿 베이스 노드는 'task' 노드이다.The XForms page code in Table 2 defines the @type, description, @state Update and @author Read actions, and the deletion of the task element. In Table 2, the template base node is a 'task' node.

액션 인스턴스는 액션 템플릿과 인스턴스 노드가 바인딩되면서 생성될 수 있다. 같은 액션 템플릿이라도 인스턴스 노드에 따라 접근 허용 여부가 달라질 수 있다. 예를 들면 도 2a 및 도 2b의 화면에서 task 요소의 삭제 버튼이 task에 따라 활성화 또는 비활성화될 수 있다.An action instance can be created by binding an action template with an instance node. Even the same action template may have different access depending on the instance node. For example, the delete button of the task element on the screen of FIGS. 2A and 2B may be activated or deactivated according to the task.

도 3은 도 1a 및 도 1b의 XML 예제 및 표 1의 접근정책에 대한 조건식 그래프의 일부이다.FIG. 3 is part of a conditional graph for the XML example of FIGS. 1A and 1B and the access policy of Table 1. FIG.

XPath의 집합 P에 대해 경로 오토마타 A(P)가 만들어질 수 있다. 이 오토마타에서 각 에지는 조건식이 아닌 노드 테스트 부분의 레이블을 나타낼 수 있다. XPath는 마지막에만 *나 //를 허용하는 것으로 가정하면, 이 오토마타는 DTD 트리의 일부 노드를 가지는 트리가 된다. A(P)에서 각 XPath ptarget (p)에 속하는 노드들을 최종 노드라고 할 수 있다. 다만, XPath의 마지막이 아닌 곳에 *나 //가 포함되어도 본 발명의 적용은 가능할 것이다. A path automata A (P) can be created for a set P of XPaths. In this automata, each edge can represent the label of the node test portion, not the conditional expression. Assuming that XPath only allows * or // at the end, this automata will be a tree with some nodes of the DTD tree. Nodes belonging to target (p) of each XPath p in A (P) may be called final nodes. However, even if * or // is included at the end of the XPath, the present invention may be applied.

XPath의 조건부 수식은 부분조건식의 불리언(Boolean) 연산 and로 나타낼 수 있다. 예를 들어 p1 = /a/b[c='1']/d[e='3']이라면 expr ( p1 ) = (c='1') and (e='3')이 될 수 있다. XML 인스턴스 노드 xanswerset (p)에 포함되려면 x ∈ target(p)이고 xexpr (p)를 만족하여야 한다. xexpr (p)를 만족하는가 여부는 eval(expr(p), x)로 계산되는데 이것은 p를 구성하는 부분식 e i , 1≤i≤m에 대해 ∧ 1≤i≤m eval ( e i , x)일 때 참이다.Conditional expressions in XPath can be represented by Boolean operations and in subconditions. For example, if p1 = / a / b [c = '1'] / d [e = '3'], then expr ( p1 ) = (c = '1') and (e = '3') . For an XML instance node x to be included in answerset (p) , x ∈ target (p) and x must satisfy expr (p) . whether or not x is satisfies the expr (p) is eval (expr (p), x ) is calculated in this subexpression e i, for 1≤i≤m 1≤i≤m constituting the p True when eval ( e i , x)

조건부 수식의 상당 부분이 XPath 규칙들 간에 공통될 뿐 아니라 XML 인스턴스 노드들 간에도 조건부 수식의 계산 결과가 재사용될 수 있는 경우가 많다. 예를 들어 표 1에서 접근 규칙의 XPath들이 @level 속성의 값에 대한 조건식 부분을 공유한다.Not only do a large portion of conditional formulas be common between XPath rules, but the results of conditional formulas can often be reused between XML instance nodes. For example, in Table 1, the XPaths of the access rules share the conditional part of the value of the @level attribute.

여기서는 부분조건식의 계산결과를 최대한 재사용할 수 있도록 하기 위하여 공통되는 조건식 부분을 모두 표현하는 조건식 그래프가 제시될 수 있다.In this case, a conditional graph representing all common conditional expression parts may be presented in order to reuse the calculation result of the partial conditional expression as much as possible.

조건식 그래프는 경로식에 대응하는 경로 노드(도 3의 육각형 노드), 조건식의 연산자에 대응하는 연산자 노드 및 리터럴이나 변수에 대응하는 밸류 노드를 포함할 수 있다.The conditional graph may include a path node corresponding to the path expression (hexagonal node of FIG. 3), an operator node corresponding to the operator of the conditional expression, and a value node corresponding to the literal or variable.

조건식 그래프는 연산자 노드로부터 그 연산자 노드의 연산자의 피연산자 부분트리의 루트에 대응되는 노드로 향하는 에지를 포함할 수 있다. 조건식 그래프는 트리가 아니지만 하나의 노드에서 에지 방향을 따라서만 확장하는 경우 트리로 확장이 될 수 있고, 조건식 그래프는 이러한 트리 여러 개의 합성으로 볼 수 있다. 피연산자 부분 트리는 이러한 관점에서 바라본 트리를 말한다.The conditional graph may include an edge from the operator node to the node corresponding to the root of the operand subtree of the operator node of that operator node. A conditional graph is not a tree, but can be expanded into a tree if it only extends along the edge direction at one node, and the conditional graph can be viewed as a composite of several of these trees. Operand subtree refers to the tree from this point of view.

연산자 노드의 결과값은 그 연산자 노드의 연산자를 연산자로 하고 피연산자 부분트리의 루트 노드의 결과값을 피연산자로 하여 계산한 값이 될 수 있다.The result of an operator node can be a value calculated by using the operator of that operator node as an operator and the result of the root node of the operand subtree as an operand.

조건식 그래프의 각 노드는 그 노드의 결과값을 보유할 수 있다. Each node in the conditional graph can hold the result of that node.

연산자 노드의 결과값은 그 연산자 노드로부터 에지 방향을 따라 확장한 트리가 나타내는 조건식의 값이 될 수 있다. The result of an operator node can be the value of a conditional expression represented by a tree extending from the operator node along the edge direction.

경로 노드의 결과값은 현재 컨텍스트 노드에서 경로 노드의 경로식이 가리키는 경로에 위치한 노드의 값이 될 수 있다. 밸류 노드의 값은 리터럴 자체나 변수값 자체가 될 수 있다. 컨텍스트 노드는 현재 접근 제어에 사용되는 노드를 말한다. 예를 들어 제1 태스크(110)의 속성이나 엘리먼트에 대한 접근 제어 판단이 이루어지는 경우 컨텍스트 노드는 제1 태스트(110) 노드이다.The result of the path node may be the value of the node located in the path indicated by the path expression of the path node in the current context node. The value node can be a literal itself or a variable value itself. The context node refers to the node currently used for access control. For example, when an access control decision on an attribute or an element of the first task 110 is made, the context node is the first task 110 node.

조건식 그래프의 노드는 초기에 그 결과값이 결정되지 않은 상태이며 이를 나타내는 기호로 '⊥'를 쓸 수 있다. 후에 그 노드에 상응하는 조건식이 계산되고 그 노드의 결과값이 결정될 수 있다. 컨텍스트 노드의 변경으로 조건식 그래프의 노드에 포함된 결과값이 유효하지 않게 되면 다시 그 결과값이 결정되지 않은 상태가 될 수 있다.The node of the conditional graph is initially in an undetermined state, and you can use '⊥' as a symbol. Later, the conditional expression corresponding to that node is calculated and the result of that node can be determined. If the result value included in the node of the conditional graph becomes invalid due to the change of the context node, the result value may become undetermined again.

예를 들어 제1 연산자 노드(320)의 연산자는 |(or)이고 그 연산자의 피연산자 부분트리의 루트에 대응되는 노드는 제2 연산자 노드(321), 제3 연산자 노드(310) 및 제4 연산자 노드(322)이다. 그리고 제1 연산자 노드(320)로부터 제2 내지 제4 연산자 노드로 향하는 에지는 제1 에지(323), 제2 에지(324) 및 제3 에지(325)이다.For example, the operator of the first operator node 320 is | (or) and the node corresponding to the root of the operand subtree of the operator is the second operator node 321, the third operator node 310, and the fourth operator. Node 322. The edges from the first operator node 320 to the second to fourth operator nodes are the first edge 323, the second edge 324, and the third edge 325.

XPath p ∈ P에 대해 조건식 expr (p)이 부분조건식 {e 1 , e 2 ,…, e m }를 가진다고 할 때 본 발명의 일 실시예에 따르는 조건식 그래프 G(p) = ( Q p , E p , { q p })가 다음과 같이 정의될 수 있다. The conditional expression expr (p) for XPath p ∈ P { e 1 , e 2 ,... , e m }, the conditional graph G (p) = ( Q p , E p , { q p }) according to an embodiment of the present invention may be defined as follows.

i)  Q p = Q op Q lpath Q value 로 표시되며 수식의 각 연산자와 항에 대해 다음과 같이 노드가 대응될 수 있다.i) Q p = Q op Q lpath Represented by Q value and can be, for each operator and the anti-node of the expression corresponds as follows.

A. Q op = {q | and , or , op의 연산자에 대응하는 노드 q},A. Q op = { q | nodes corresponding to the operators of and , or , op q },

B. Q lpath = {q | lpath 경로식에 대응하는 노드 q},B. Q lpath = { q | lpath The node q } corresponding to the path expression,

C. Q value = {q | 리터럴 값이나 변수 v에 대응하는 노드 q}C. Q value = { q | Node q corresponding to literal value or variable v}

ii) 각 부분수식 e i 에 대해서 ast ( e i ) = ( Q i p , E i p , { q i sp })이고 q ∈ Q i op 이면 이 연산자의 좌우 피연산자 부분트리의 루트를 각각 q l , q r 이라고 할 때 조건식 그래프의 에지로  (q, q l ), (q, q r )∈ E i p 가 추가될 수 있다.ii) for each subexpression e i If ast ( e i ) = ( Q i p , E i p , { q i sp }) and q ∈ Q i op, then the roots of the left and right operand subtrees of this operator are q l and q r , respectively. (Q, q l ), (q, q r ) ∈ E i p can be added as an edge.

iii)  ( q p , q i s ,) E i p , 1 ≤ i ≤ m. iii) ( q p , q i s ,) E i p , 1 ≦ i ≦ m.

여기서 lpath 경로식은 xpath 경로식에서 expr(p) 부분을 제외한 경로식을 말한다. 예를 들어 xpath p1 = /a/b[c='1']/d[e='3'] 의 lpath 경로식은 /a/b/d 가 될 수 있다.Here, the lpath path expression is a path expression except for the expr (p) part of the xpath path expression. For example, the lpath path expression of xpath p1 = / a / b [c = '1'] / d [e = '3'] could be / a / b / d.

여기서 ast는 abstract syntax tree의 약자로 ast(e)는 e의 신택스(syntax, 체계)만을 표시한 트리를 말할 수 있다.Here, ast stands for abstract syntax tree and ast (e) can refer to a tree representing only the syntax of e.

표기상의 편의를 위해 ref (q)와 base (q)는 q ∈ Q lpath 일 때 상대경로와 베이스 컨텍스트 노드를 표시할 수 있다. 여기서 q가 속하는 부분조건식이 e i 라면 base(q) = base ( e i )이다. 예를 들어 도 3에서 base ( l 1 )= v task 이고 base ( l 2 )= v comment 이다. 여기서 l1은 @level 노드(330)이고 l2는 writer 노드(340)이다.For convenience of notation, ref (q) and base (q) can indicate relative paths and base context nodes when q ∈ Q lpath . If the subcondition to which q belongs is e i, then base (q) = base ( e i ) . For example From 3 base ( l 1 ) = v task and base ( l 2 ) = v comment . Where l 1 is an @level node 330 and l 2 is a writer node 340.

한편 q ∈ Q op 일 때 op (q)는 비교 또는 논리 연산자이다.On the other hand, when q ∈ Q op op (q) is a comparison or logical operator.

G( p k ) = ( Q pk , E pk , { q sk }), p k ∈ P일 때 N = ∪ 1≤k≤ m Q pk 라 할 수 있다. 두 노드 q 1 , q 2 ∈ N가 다음과 같은 조건을 만족하면 동치라 하고 q 1 q 2 로 표시할 수 있다. When G ( p k ) = ( Q pk , E pk , { q sk }), p k ∈ P It can be said that N = ∪ 1 k m Q pk . Two nodes q 1 , q 2 ∈ When N meets the following conditions, it is called equal. Q 1 q 2 can be indicated.

i)  base ( q 1 ) = base ( q 2 )이고i) base ( q 1 ) = base ( q 2 ) and

ii)  q 1 , q 2 Q value 이면 value ( q 1 ) = value ( q 2 ), ii) if q 1 , q 2 Q value value ( q 1 ) = value ( q 2 ),

iii)  q 1 , q 2 Q lpath 이면 base ( q 1 ) = base ( q 2 )이고 ref ( q 1 ) = ref ( q 2 ), iii) if q 1 , q 2 Q lpath then base ( q 1 ) = base ( q 2 ) ref ( q 1 ) = ref ( q 2 ),

iv)  q 1 , q 2 Q op 이면 p( q 1 ) = op ( q 2 )이고 q 1 . left q 2 . left이고 q 1 . right q 2 . right . iv) q 1 , q 2 ∈ If Q op, then p ( q 1 ) = op ( q 2 ) and q 1 . left q 2 . left and q 1 . right q 2 . right .

접근 정책이 P = {( t 1 , p 1 ),..., ( t n , p n )}라 할 때 조건식 그래프 G = (Q, E, Q start )는 개별 XPath의 조건식 그래프 G( p k ) = ( Q pk , E pk , { q sk }), 1 ≤ k ≤ n에 대해 Q = ∪ Q pk , E = ∪ E pk , Q start = { Q s1 , ..., Q sn }에서 서로 동치인 노드를 하나로 합친 것이다.When the access policy is P = {( t 1 , p 1 ), ..., ( t n , p n )} , the conditional graph G = (Q, E, Q start ) is the conditional graph G ( p of the individual XPath. k ) = ( Q pk , E pk , { q sk }), Q = ∪ Q pk , E = ∪ E pk , Q start for 1 ≤ k ≤ n = { Q s1 , ..., Q sn } where the nodes are equal to one another.

접근정책이 주어지면 경로 오토마타와 조건식 그래프를 생성할 수 있다.Given an access policy, you can create route automata and conditional graphs.

접근 정책 P = {( t k , p k ) | 1 ≤ k ≤ n}p k 의 조건식 그래프 G( p k )를 통합한 그래프 G가 주어졌다고 하자. 규칙 ( t k , p k )에 대한 조건식 그래프 G( p k )에서 시작노드가 q k 이고 대상노드 집합이 V i = target ( p i )라 하면 해당하는 규칙은 다음과 같이 표시될 수 있다.Access policy P = {( t k , p k ) | Suppose we have a graph G that combines the conditional graph G ( p k ) of 1 ≤ k ≤ n} and p k . In the conditional graph G ( p k ) for the rule ( t k , p k ) , the starting node is q k and the target node set is V i = target ( p i ) , the corresponding rule can be expressed as:

R = {( t k , V k , q k ) | V k = target ( p k ), 1 ≤ k ≤ n}. R = { ( t k , V k , q k ) | V k = target ( p k ), 1 ≦ k ≦ n}.

도 3은 경로 오토마타와 조건식 그래프, 그리고 접근 권한을 함께 표현한 것이다. 여기서 C, D, R, U 로 표시된 사각형은 각각 추가, 삭제, 읽기, 수정 권한 규칙을 나타낸다. 이 액션이 허용되는 DTD 노드에 C, D, R, U로 표시된 사각형이 표시되었다.3 is a representation of a path automata, a conditional graph, and access authority. The rectangles marked C, D, R, and U represent the add, delete, read, and modify permission rules, respectively. The rectangles marked C, D, R, and U are displayed on DTD nodes that allow this action.

이들 규칙의 조건식을 조건식 그래프의 노드로 표시할 수 있다. 이 때 조건식 그래프의 노드는 공통되는 부분 조건식에 대해 공유되고 있음을 볼 수 있다. 한편 조건식 그래프는 연산자 노드(도 3의 원 노드)와 경로 노드(도 3의 육각형 노드), 그리고 리터럴 값을 가지는 노드로 나누어지고 각 규칙에 대해 하나의 시작노드를 가진다. 시작노드는 연산자 노드이다.The conditional expressions of these rules can be represented by nodes in the conditional graph. At this time, it can be seen that the nodes of the conditional graph are shared for the common partial conditional expression. Meanwhile, the conditional graph is divided into an operator node (circular node of FIG. 3), a path node (hexagonal node of FIG. 3), and a node having a literal value, and has one starting node for each rule. The start node is an operator node.

액션의 접근제어는 바인딩된 XML 데이터에 대해 만족되는 접근 규칙이 있는가를 찾는 계산이다. 한편 정적인 접근 제어의 계산은 XML 데이터와 조건식를 고려하지 않고 접근 규칙의 타겟노드와 액션 템플릿의 타겟 노드를 검사하는 것으로 액션 템플릿에 대해 해당하는 규칙이 없다면 접근할 수 없다.The access control of an action is a calculation to find out whether there is an access rule that satisfies bound XML data. On the other hand, the calculation of static access control examines the target node of the access rule and the target node of the action template without considering the XML data and conditional expression. It cannot be accessed without a corresponding rule for the action template.

주어진 액션 템플릿을 at =(t, p)라 하자. 만약 t = t r , target (p) ⊂ V r 를 만족하는 규칙 r=( t r , V r , q r ) ∈ R 이 없다면 at는 어떠한 XML 인스턴스 노드의 경우에도 접근할 수 없다.Let's say that a given action template is at = (t, p) . If no rule r = ( t r , V r , q r ) ∈ R satisfies t = t r , target (p) ⊂ V r, then at will not be accessible to any XML instance node.

액션 템플릿 at = (t, p) 와 XML 인스턴스 x가 주어졌고 M X →D (x) = v라 하자. 액션 인스턴스 at (x)는 다음 조건을 만족하면 허용될 수 있다. Given an action template at = (t, p) and an XML instance x, let M X → D (x) = v . Action instance at (x) can be allowed if the following conditions are met :

(1) t = t r , target (p) ∈ V r 을 만족하는 접근규칙 r = ( t r , V r , q r ) ∈ R이 존재하고(1) an access rule that satisfies t = t r , target (p) ∈ V r, and r = ( t r , V r , q r ) ∈ R

(2) evalExpr ( q r ,x) = true를 만족한다.(2) evalExpr ( q r , x) = true is satisfied.

도 4는 본 발명의 일 실시예를 따르는 클라이언트 시스템의 블록 구성도이다.4 is a block diagram of a client system according to an embodiment of the present invention.

클라이언트 시스템은 브라우저(410) 등과 같은 사용자 인터페이스 생성 모듈과 독립적으로 존재하는 접근 제어 모듈(420)이 있어서 주어진 액션 인스턴스가 허용되는가를 계산하는 역할을 담당할 수 있다. XForms 페이지(430)는 사용자 인터페이스 요소와 서버 통신 정보를 보유할 수 있다. 브라우저(410)는 XForms 요소를 차례로 방문하면서 바인딩되는 모든 XML 데이터(440)에 대해 액션 인스턴스를 생성하게 된다. 이때 각 액션 인스턴스에 대해 네비게이션 정보와 컨텍스트 정보를 제공하여 접근 제어 모듈에게 접근 허용 여부를 질의할 수 있다.The client system may have an access control module 420 that is independent of the user interface generation module, such as the browser 410, and may be responsible for calculating whether a given action instance is allowed. The XForms page 430 can hold user interface elements and server communication information. The browser 410 visits the XForms elements in turn and creates an action instance for all the XML data 440 bound to. In this case, the access control module can be queried whether or not to allow access by providing navigation information and context information for each action instance.

표 3은 본 발명의 일 실시예에 따르는 접근 권한 제어 과정의 알고리즘을 포함한다.Table 3 includes an algorithm of an access right control process according to an embodiment of the present invention.

[알고리즘 1] 접근권한검사(e, x, vb, v)
입력  - e : XForms 요소
  - x : 현재의 컨텍스트 노드
  - vb : 템플릿 베이스 노드
  - v = MX →D(x)
출력 - 액션 인스턴스의 접근이 허용되면 참을 반환하고 아니면 거짓을 반환함
static : xprev ← null
(1)  reset(v, MX →D(xprev) )
(2)  xprev ← x ;
(3)  if e.name ∈ {input, output, delete, insert,...} :
(3-1)   t ← e.type
(3-2)   for all r = (t, Vr, qr) s.t. v ∈ Vr
(3-2-1)   if evalExpr(qr, v, x) return true;
(3-3)   return false;
[Algorithm 1] Access Check (e, x, vb, v)
Input-e: XForms element
x: the current context node
vb: template base node
-v = M X → D (x)
Output-returns true if the action instance is allowed access, false otherwise
static: xprev ← null
(1) reset (v, M X → D (xprev))
(2) xprev ← x;
(3) if e.name ∈ {input, output, delete, insert, ...}:
(3-1) t ← e.type
(3-2) for all r = (t, Vr, qr) st v ∈ Vr
(3-2-1) if evalExpr (qr, v, x) return true;
(3-3) return false;

알고리즘 1에 따라 XForms 요소와 컨텍스트 정보를 이용하여 접근 제어를 계산할 수 있다. 접근권한검사 함수는 DTD 컨텍스트 노드를 xprev 변수에 유지하면서 다음 호출에서 바뀌었는지 검사할 수 있다. 바뀐 경우 reset 함수를 호출하는데 여기서는 새로운 컨텍스트 노드에 대해 기 계산된 임시 결과 중에서 무효가 된 조건식 계산 값들을 리셋할 수 있다(알고리즘 2). 또한 evalExpr 함수는 주어진 인스턴스 노드 x에 대해 조건식 그래프의 노드 qr에 해당하는 조건식 부분을 계산한다. 이 때 재사용 가능한 계산 결과는 다시 계산하지 않는다(알고리즘 3).According to Algorithm 1, access control can be calculated using XForms element and context information. The access check function can check that the DTD context node has been changed in the next call, keeping the xprev variable. If changed, the reset function is called, which can reset the conditional expressions that have been invalidated among the preliminary calculated results for the new context node (algorithm 2). The evalExpr function also computes the conditional part corresponding to node qr in the conditional graph for the given instance node x. At this time, the reusable calculation result is not recalculated (Algorithm 3).

XForms 페이지는 repeat나 group으로 구조화된 액션 템플릿 트리이다. 접근제어의 계산이 XML 인스턴스 트리의 순차적 방문 순서를 따른다면 조건부 수식의 계산 결과가 많은 부분 재사용될 수 있다. An XForms page is a tree of action templates structured as repeats or groups. If the calculation of access control follows the sequential visit order of the XML instance tree, much of the result of the conditional expression can be reused.

액션 템플릿 at = (t, v)과 연속된 바인딩 인스턴스 노드 x 1 , x 2 가 주어졌을 때 qat (x 1 )에 대해 계산되었다면 다음 조건을 만족하면 at (x 2 ) q의 계산 결과를 재사용할 수 있다.Action template at Given q (t, v) and contiguous binding instance nodes x 1 , x 2 , if q is computed for at (x 1 ) , then at (x 2 ) can reuse the computed result of q .

i)  ∃ (t, V, q s ) R s.t. v V, i) ∃ (t, V, q s )R st v V,

ii)  q s q로의 경로를 가지고 있고ii) q s has a path to q

iii)  base (q)가 v의 조상이고 base (q) ≠ v인 경우iii) base (q) is an ancestor of v and base (q) ≠ v

이를 일반화하여 임의의 두 액션 인스턴스에 대해 조건식 노드의 계산 결과를 재사용하기 위한 조건은 다음과 같다.The general conditions for reusing the calculation result of the conditional node for any two action instances are as follows.

액션 템플릿  at 1 = ( t 1 , v 1 )at 2 = ( t 2 , v 2 )가 주어지고 M X →D (x 1 ) = v 1 , M X →D (x 2 ) = v 2 인 바인딩 인스턴스 노드 x 1 , x 2 가 주어졌다고 가정한다. 조건식 노드 qat 1 (x 1 )에 대해 계산되었고 유효할 때 다음 조건을 만족하면 at 2 (x 2 )q의 계산 결과를 재사용할 수 있다.Given the action templates at 1 = ( t 1 , v 1 ) and at 2 = ( t 2 , v 2 ) and M X → D (x 1 ) = v 1 , M X → D (x 2 ) = v 2 Assume that the binding instance nodes x 1 and x 2 are given. If the conditional node q is computed for at 1 (x 1 ) and is valid, then at 2 (x 2 ) can reuse the computed result of q .

i)  ∃ ( t 1 , V 1 , q s1 ), ( t 2 , V 2 , q s2 ) R s.t. v 1 V 1 , v 2 V 2 ,i) ∃ ( t 1 , V 1 , q s1 ), ( t 2 , V 2 , q s2 )R st v 1 V 1 , v 2 V 2 ,

ii)  q s1 q s2 q로의 경로를 가지고 있고ii) q s1 and q s2 have paths to q

iii)  base (q) ≠ v 1 또는 v 1 v 2 이면서 base (q)가 v 1 v 2 의 공통 조상인 경우iii) base (q) ≠ v 1 or v 1 v 2 and base (q) is a common ancestor of v 1 and v 2

그러므로 바인딩 인스턴스 노드가 바뀌었을 때 재사용 가능하지 않은 모든 계산값은 리셋될 수 있다. 즉 조건식 그래프 노드 중에서 베이스 노드가 새로운 노드의 조상이 아닌 경우는 리셋될 수 있다. 중간 계산 결과는 두 종류로 나눌 수 있다. 연산자 노드는 참 또는 거짓을 가지며, 아직 계산되지 않았거나 재사용 가능하지 않은 경우 ⊥을 가진다. 또한 lpath 노드인 경우는 계산된 노드 집합을 가지거나 ⊥을 가질 수 있다. 표현 상의 편의를 위하여 조건식 그래프의 노드에 대해 다음을 정의할 수 있다.Therefore, when a binding instance node changes, all calculations that are not reusable can be reset. That is, when the base node is not the ancestor of the new node among the conditional graph nodes, it may be reset. The intermediate calculation results can be divided into two types. Operator nodes have either true or false, and they have a value if they have not yet been computed or are not reusable. In addition, an lpath node may have a computed node set or have a value. For convenience of expression, the following can be defined for the nodes of the conditional graph.

nodeset (q) ⊂ N XML or nodeset (q) = if q Q lpath nodeset (q) ⊂ N XML or nodeset (q) = if q Q lpath

evalValue (q) {, true , false } if q Q op evalValue (q){, true , false } if q Q op

이상의 결과를 이용하면 컨텍스트 노드가 바뀌었을 때의 리셋 알고리즘이 다음과 같다. 리셋 알고리즘은 원래 컨텍스트 노드 x1과 새로운 컨텍스트 노드 x2에 대응하는 DTD 노드를 입력으로 받을 수 있다. 입력된 두 DTD 노드가 같은 경우는 동일한 액션 템플릿에 대해 다른 인스턴스 노드를 바인딩한 경우이다. 그리고 v1과 v2가 다른 경우는 액션 템플릿이 바뀌거나 repeat 또는 group 등으로 다른 인터페이스 요소로 이동한 경우이다.Using the above result, the reset algorithm when the context node is changed is as follows. The reset algorithm may receive, as input, a DTD node corresponding to the original context node x1 and the new context node x2. The same case of two DTD nodes entered is when another instance node is bound to the same action template. If v1 and v2 are different, the action template is changed or moved to another interface element such as repeat or group.

표 4는 컨텍스트 노드가 바뀌었을 때 리셋이 필요한 조건식 노드를 리셋하는 알고리즘을 포함한다.Table 4 includes algorithms for resetting conditional nodes that need to be reset when the context node changes.

[알고리즘 2] reset(v1, v2)
입력 - 조건식 그래프 G = (Q, E, Qstart),
  - 이전 및 현재의 템플릿 베이스 노드 v1과 v2
출력 - 무효화된 조건식 노드들을 리셋함
(1) if v1 = null or v1 is an ancestor of v2, then return;
(2) if v1 v2, w ← common ancestor node of v1, v2;
(2-1) else w ← v1.parent;
(3) v ← v2;
(4) repeat
(4-1)   for all q ∈ Qlpath s.t. base(q) = v,
(4-1-1)    nodeset(q) ← ⊥;
(4-1-2)    for all q' s.t. (q', q) ∈ E
(4-1-2-1)    evalValue(q') ← ⊥;
(4-2)   v ← v.parent;
(5) until v w;
[Algorithm 2] reset (v1, v2)
Input-conditional graph G = (Q, E, Qstart),
Old and current template base nodes v1 and v2
Output-resets invalidated conditional nodes
(1) if v1 = null or v1 is an ancestor of v2, then return;
(2) if v1 v2, w ← common ancestor node of v1, v2;
(2-1) else w ← v1.parent;
(3) v ← v2;
(4) repeat
(4-1) for all q ∈ Q lpath st base (q) = v,
(4-1-1) nodeset (q) ← ⊥;
(4-1-2) for all q 'st (q', q) ∈ E
(4-1-2-1) evalValue (q ') ← ⊥;
(4-2) v ← v.parent;
(5) until v w;

표 5는 조건부 부분식이 참인지 계산하는 알고리즘을 포함한다. Table 5 contains algorithms for calculating whether conditional subexpressions are true.

주어진 조건식 그래프 노드 q와 컨텍스트 베이스 DTD 노드 v, 그리고 XML 인스턴스 노드 x에 대해서 표 5의 알고리즘은 q에 해당하는 조건부 부분식이 x에 대해 참인가를 계산한다.For a given conditional graph node q , a context-based DTD node v , and an XML instance node x , the algorithm in Table 5 calculates whether the conditional subexpression corresponding to q is true for x .

[알고리즘 3] evalExpr(q, v, x)
입력 - q ∈ V, G = (Q, E, Qstart)는 조건식 그래프임,
  - v ∈ NDTD (템플릿 베이스 노드)
  - x : MX →D(x) = v를 만족하는 XML 인스턴스 노드
출력 - q에 해당하는 부분조건식이 x에 대해 만족되면 참, 아니면 거짓을 반환함
(1)      result ← false;
(2)      if evalValue(q) unknown, return evalValue(q).
(3)      if q ∈ Qstart,
(3-1)       result ← true;
(3-2)       for all q' ∈ next(q),
(3-2-1)        if eval_expr(q', x) = false
(3-2-1-1)         result ← false; break;
(4)      if q ∈ Qlpath,
(4-1)       if nodeset(q) = unknown
(4-1-1)        nodeset(q) ← evalNodeSet(q, x)
(4-2)       result ← (nodeset(q) Φ)
(5)      if q ∈ Qop and op(q) ∈ {and, or},
(5-1)       Let qleft, qright ∈ next(q),
(5-2)       result ← op(q)(evalExp(qleft, x), evalExpr(qright, x)).
(6)      if q ∈ Qop and op(q) is an comparative operator,
(6-1)       pathdiff ← path(v, base(qleft));
(6-2)       for all x' ∈ decsendent(x, pathdiff);
(6-2-1)      for all x" ∈ evalNodeSet(qleft, x')
(6-2-1-1)     if op(q)(x", qright)
(6-2-1-1-1)     result ← true;
(6-2-1-1-2)     break;
(7)      evalValue(q) ← result;
(8)      return result;
evalNodeSet(q, x) = descendents(x, lpath(q))
Algorithm 3 evalExpr (q, v, x)
Input-q ∈ V, G = (Q, E, Q start ) is a conditional graph,
-v ∈ N DTD (Template base node)
x: An XML instance node that satisfies M X → D (x) = v
Output-returns true if the subcondition for q is satisfied for x, false otherwise
(1) result ← false;
(2) if evalValue (q) unknown, return evalValue (q).
(3) if q ∈ Q start ,
(3-1) result ← true;
(3-2) for all q '∈ next (q),
(3-2-1) if eval_expr (q ', x) = false
(3-2-1-1) result ← false; break;
(4) if q ∈ Q lpath ,
(4-1) if nodeset (q) = unknown
(4-1-1) nodeset (q) ← evalNodeSet (q, x)
(4-2) result ← (nodeset (q) Φ)
(5) if q ∈ Q op and op (q) ∈ {and, or},
(5-1) Let q left , q right ∈ next (q),
(5-2) result ← op (q) (evalExp (q left , x), evalExpr (q right , x)).
(6) if q ∈ Q op and op (q) is an comparative operator,
(6-1) pathdiff ← path (v, base (q left ));
(6-2) for all x'∈ decsendent (x, pathdiff);
(6-2-1) for all x "∈ evalNodeSet (q left , x ')
(6-2-1-1) if op (q) (x ", q right )
(6-2-1-1-1) result ← true;
(6-2-1-1-2) break;
(7) evalValue (q) ← result;
(8) return result;
evalNodeSet (q, x) = descendents (x, lpath (q))

위의 알고리즘 1, 2, 3은 다음과 같은 단계로 XForms 요소들을 처리할 수 있다.Algorithms 1, 2, and 3 above can process XForms elements in the following steps:

i)  repeat나 group 노드는 컨텍스트 노드를 새로 설정한다.i) The repeat or group node sets up a new context node.

ii) 컨텍스트 노드가 바뀐 경우 리셋 함수를 통해 무효가 된 계산 결과를 리셋한다.ii) If the context node changes, reset the invalidation result through the reset function.

iii) 액션 템플릿 요소에 대해 XML 노드와 바인딩된 액션 인스턴스의 접근 허용 여부를 계산한다. 이 때 계산된 값을 가진 노드는 그대로 이용한다. iii) Calculate whether or not the action template element is bound to access to the action node for the action template element. At this time, the node with the calculated value is used as it is.

iv)  각 계산 단계에서는 계산 결과를 조건부 그래프 노드에 설정해 둔다.iv) In each calculation step, the calculation result is set in the conditional graph node.

표 6은 표 2의 XForms 페이지 부분과 그림 1의 xml 트리 인스턴스에 대해 XForms 요소 별로 바인딩된 xml 노드에 대해 조건부 노드의 계산 또는 재사용 과정을 보여준다.Table 6 shows the calculation or reuse of conditional nodes for the xml nodes bound by XForms elements for the XForms page portion of Table 2 and the xml tree instance in Figure 1.

  대상 노드
상대 경로
Target node
Relative path
바인딩컨텍스트 노드Binding context node   계산노드Calculation Node 재사용recycle 리셋reset  결과result
repeat taskrepeat task tasktask task SUtask SU             input (*)input (*) @type@type   R4R4 c, dc, d     XX output(**)output (**) @type@type   R3R3 a,b,ea, b, e     OO input input @state@state   R4R4   dd   XX outputoutput @state@state   R3R3   ee   OO outputoutput @author@author   R3R3   ee   OO ...... insertinsert comments/commentcomments / comment   R7R7 f,g,h,k,m,nf, g, h, k, m, n dd   XX deletedelete .. task BPtask BP R2R2   dd   XX       task BPtask BP       a,c,f -> b,d,g,
-> e,h,m,n
a, c, f-> b, d, g,
-> e, h, m, n
 
input input @type@type   R4R4 f,cf, c     XX outputoutput @type@type   R3R3 e,b,ae, b, a     XX

도 5a 내지 도 5c는 본 발명의 일 실시예에 따른 접근 제어 규칙 계산 방법의 성능 실험 결과를 나타낸 그래프이다.5A to 5C are graphs showing performance test results of the method for calculating an access control rule according to an embodiment of the present invention.

도 5a는 접근 제어 규칙의 개수에 따른 조건식 그래프 노드 수를 나타낸다.5A illustrates the number of conditional graph nodes according to the number of access control rules.

도 5b는 접근 제어 규칙의 개수에 따른 조건식 그래프 노드의 공유수를 보여준다.5B shows the number of shares of the conditional graph node according to the number of access control rules.

도 5c는 XForms 페이지의 액션 인스턴스 개수의 증가에 따른 재사용 노드 수 및 비율을 보여준다. 이 그래프에서 보이듯이 제안된 조건부 그래프의 계산 결과는 바인딩 컨텍스트 노드가 바뀔 때 한번 계산된 후 계속 재사용됨을 알 수 있다. 5C shows the number and rate of reuse nodes as the number of action instances of an XForms page increases. As shown in this graph, we can see that the calculation result of the proposed conditional graph is calculated once and then reused when the binding context node changes.

본 발명의 일 실시예에 따른 접근 제어 방법은 적응형 사용자 인터페이스 기법으로 응용이 가능하다. 예를 들면 Update에 대한 액션 템플릿 요소가 접근이 거부된 경우 (표 6의 (*)) Read 연산으로 다시 계산하여 수정 기능은 제공하지 않더라도 데이터를 보여주기만 하는 것은 가능한지 확인할 수 있다(표 6의 (**)). 한편 브라우저에서 group이나 repeat 등에 대해 포함되는 모든 사용자 인터페이스 요소들이 허용되지 않는다면 아예 전체를 숨기는 것이 가능하다. 예를 들어 표 6에서 task BP에 대한 모든 xforms 요소의 액션 인스턴스가 거절되므로 repeat 전체를 생략하는 것이 가능하다. 이것은 브라우저에서 접근제어 모듈을 호출하는 부분을 확장하여 구현될 수 있다.The access control method according to an embodiment of the present invention can be applied as an adaptive user interface technique. For example, if the action template element for Update is denied access (see Table 6 (*)), it can be recalculated with the Read operation to see if it is possible to show the data without providing any modifications. **)). On the other hand, if the browser does not allow all user interface elements to be included for groups, repeats, etc., it is possible to hide the whole. For example, in Table 6, it is possible to omit the entire repeat because the action instances of all xforms elements for task BP are rejected. This can be implemented by extending the call to the access control module in the browser.

본 발명은 XSL(eXtensible Stylesheet Language)이나 XUL(eXtensible User Language), 또는 XML 기반의 다른 사용자 인터페이스 기술 언어에도 적용될 수 있다. 본 발명은 사용자 인터페이스 요소를 액션 템플릿으로 보고 XML 데이터에 대한 접근 권한을 계산하는 시스템 모델에서는 모두 적용 가능하다. 또한 제안된 XPath 기반의 사용자 인터페이스 접근 제어 방법은 적응적인 사용자 인터페이스 생성을 위한 분야에서도 활용될 수 있을 것이다.The present invention can also be applied to an eXtensible Stylesheet Language (XSL), an eXtensible User Language (XUL), or another user interface description language based on XML. The present invention is applicable to all system models that view user interface elements as action templates and calculate access rights to XML data. In addition, the proposed XPath-based user interface access control method can be used in the field for adaptive user interface generation.

도 6은 본 발명의 일 실시예에 따르는 조건식 계산 과정의 순서도이다.6 is a flowchart of a conditional expression calculation process according to an embodiment of the present invention.

단계 S605에서 조건식 그래프에서 제1 조건식에 상응하는 제1 노드가 검출될 수 있다. 검출 방법은 해시 등의 방법을 이용하는 방법을 생각할 수 있다In operation S605, a first node corresponding to the first conditional expression may be detected in the conditional graph. As the detection method, a method using a hash or the like can be considered.

조건식 그래프는 경로식에 대응하는 경로 노드, 조건식의 연산자에 대응하는 연산자 노드, 리터럴이나 변수에 대응하는 밸류 노드 및 상기 연산자 노드로부터 상기 연산자 노드에 상응하는 조건식의 부분식에 상응하는 노드로 향하는 에지(edge)를 포함할 수 있다.The conditional graph includes a path node corresponding to a path expression, an operator node corresponding to an operator of the conditional expression, a value node corresponding to a literal or variable, and an edge from the operator node to a node corresponding to a subexpression of the conditional expression corresponding to the operator node. may include edges.

조건식 그래프의 생성 방법은 상술한 바와 같다.The method of generating the conditional graph is as described above.

단계 S610에서 제1 노드의 결과값이 결정되었는지 판단한다. In operation S610, it is determined whether a result value of the first node is determined.

예를 들어 표 1의 r2의 XPath인 '/list/task[@author=$user]'에서 조건식 '@author=$user'에 상응하는 결과값 노드는 도 3의 제1 노드(310)이다. 제1 노드(310)의 결과값이 결정된 경우 단계 S630으로 진행할 수 있다.For example, the result node corresponding to the conditional expression '@ author = $ user' in '/ list / task [@ author = $ user]' which is the XPath of r2 of Table 1 is the first node 310 of FIG. 3. When the result value of the first node 310 is determined, the process may proceed to step S630.

제1 노드에 포함된 결과값이 ⊥(결정되지 않은 상태)인 경우 단계 S620으로 진행할 수 있다.When the result value included in the first node is ⊥ (not determined), the process may proceed to step S620.

단계 S620에서 제1 조건식이 계산되고 조건식 그래프가 갱신될 수 있다.In operation S620, the first conditional expression may be calculated and the conditional graph may be updated.

도 7은 도 6의 단계 S620의 상세 순서도이다.FIG. 7 is a detailed flowchart of step S620 of FIG. 6.

단계 S710에서 제1 조건식이 리터럴 또는 변수인지 판단한다.In step S710, it is determined whether the first conditional expression is a literal or a variable.

제1 조건식이 'true' 또는 '$user'와 같이 리터럴 또는 변수인 경우 단계 S720으로 진행할 수 있다. 반대의 경우 단계 S730으로 진행할 수 있다.When the first conditional expression is a literal or a variable such as 'true' or '$ user', the process may proceed to step S720. In the opposite case, the process may proceed to step S730.

단계 S720에서 리터럴 값 또는 변수값이 제1 조건식의 결과값으로써 추출될 수 있다.In operation S720, a literal value or a variable value may be extracted as a result value of the first conditional expression.

예를 들어 제1 조건식이 '$user'인 경우 현재 사용자 이름이 제1 조건식의 결과값이 될 수 있다.For example, when the first conditional expression is '$ user', the current user name may be a result value of the first conditional expression.

표 1의 r1의 경우 아무런 조건이 없이 '/list/task'가 주어졌는데 이러한 경우 리터럴 값 'true'(참) 가 조건식으로 주어진 것으로 볼 수도 있다. 이 경우 참값이 제1 조건식의 결과값이 될 수 있다.In the case of r1 in Table 1, '/ list / task' is given without any condition. In this case, the literal value 'true' (true) may be regarded as a conditional expression. In this case, the true value may be a result of the first conditional expression.

단계 S730에서 제1 노드로부터 나오는 에지가 샹하는 노드인 제2 노드가 추출될 수 있다. 제2 노드는 제1 노드의 피연산자 트리의 루트 노드에 대응된다.In operation S730, a second node, which is a node having an edge emerging from the first node, may be extracted. The second node corresponds to the root node of the operand tree of the first node.

제1 조건식은 리터럴이나 변수 자체가 아니므로 연산자를 포함할 수 있다. 여기서 연산자는 and, or 연산자 및 비교 연산자를 포함할 수 있다.Since the first conditional expression is not a literal or the variable itself, it may include an operator. Here, the operator may include an and, or operator and a comparison operator.

예를 들어 'true and false'는 and 연산자를 포함하고 있으며, and에 의하여 'true'와 'false'의 두 부분조건식으로 분할될 수 있다.For example, 'true and false' includes the and operator, and can be split into two subconditions, 'true' and 'false'.

조건식에 연산자가 여러 개 있는 경우 우선 순위가 가장 낮은 연산자를 기준으로 조건식이 분할될 수 있다. 조건식 'A and B or C'에서 and의 우선순위가 or의 우선순위보다 높다면 or를 기준으로 조건식이 분할되어 'A and B'와 'C'의 두 부분조건식으로 분할될 수 있다.If there are multiple operators in the condition, the condition can be split based on the operator with the lowest priority. If the priority of and in the conditional expression 'A and B or C' is higher than the priority of or, the conditional expression may be split based on or and divided into two partial conditional expressions, 'A and B' and 'C'.

우선순위가 동일한 연산자가 여러 개 있다면 세 개 이상의 부분조건식으로 분할될 수도 있다. 조건식 'A or B or C'는 두 or를 기준으로 조건식이 분할되어 'A', 'B' 및 'C'의 세 개의 부분조건식으로 분할될 수 있다.Multiple operators with the same priority may be split into three or more subconditions. The conditional expression 'A or B or C' may be divided into three subconditions of 'A', 'B' and 'C' by dividing the conditional expression based on two or's.

분할된 부분식이 참 또는 거짓의 값을 갖지 않는 경우에도 편의상 부분조건식이라 하겠다.Even when a divided subexpression does not have a value of true or false, it is called a partial condition for convenience.

제2 노드는 제1 노드의 부분조건식에 상응하는 노드이다.The second node is a node corresponding to the subcondition of the first node.

단계 S740에서 제2 노드의 결과값이 계산될 수 있다.In operation S740, a result value of the second node may be calculated.

제2 노드의 결과값은 제1 조건식의 결과값 계산과 같은 방식으로 계산될 수 있다.The resultant value of the second node may be calculated in the same manner as the resultant value calculation of the first conditional expression.

제2 노드가 두 개 이상이더라도 모든 제2 노드의 결과값을 계산할 필요는 없다. 예를 들어 'A or B'의 조건식에 대해 'A'의 결과값이 true(참)이라면 B에 대한 결과값의 계산이 없이도 전체 조건식의 결과값이 true임을 알 수 있기 때문이다.Even if there is more than one second node, it is not necessary to calculate the result of every second node. For example, if the result value of 'A' is true for the conditional expression of 'A or B', it is because the result value of the entire conditional expression is true without calculating the result value for B.

단계 S750에서 제2 노드의 결과값을 기초로 제1 조건식의 결과값이 계산될 수 있다.In operation S750, the result value of the first conditional expression may be calculated based on the result value of the second node.

단계 S760에서 제1 조건식에 상응하는 결과값 결과값이 제1 조건식의 결과값으로 갱신될 수 있다.In operation S760, the result value corresponding to the first conditional expression may be updated with the result value of the first conditional expression.

예를 들어 표 1의 r2 제어규칙에 포함된 '@a=$u' 조건식의 결과값이 계산되었고 그 결과값이 true(참)이라면, 그 조건식에 상응하는 제1 노드(310)의 결과값이 true(참)으로 갱신될 수 있다.For example, if the result value of the '@ a = $ u' conditional expression included in the r2 control rule of Table 1 is calculated and the result value is true, the result value of the first node 310 corresponding to the conditional expression is true. Can be updated to true.

단계 S630에서 제1 노드의 결과값이 제1 조건식의 결과값으로써 추출될 수 있다.In operation S630, a result value of the first node may be extracted as a result value of the first conditional expression.

예를 들어 표 1의 r2 제어규칙에 포함된 '@author=$user' 조건식에 상응하는 제1 노드(310)의 결과값이 true(참)이라면, 그 조건식의 결과값은 true(참)이 될 수 있다. 이 조건식에 대한 계산이 이미 행하여졌으므로 그 결과를 그대로 이용할 수 있다.For example, if the result value of the first node 310 corresponding to the '@ author = $ user' conditional expression included in the r2 control rule of Table 1 is true, the result value of the conditional expression is true. Can be. Since the calculation for this conditional expression has already been performed, the result can be used as it is.

단계 S650에서 컨텍스트 노드가 변경되는 경우 조건식 그래프에 포함된값 노드 중 컨텍스트 노드 변경으로 결과값이 달라질 수 있는 노드의 결과값이 ⊥(결정되지 않은 상태)로 갱신될 수 있다.When the context node is changed in step S650, the result value of the node whose result value may be changed by changing the context node among the value nodes included in the conditional graph may be updated to ⊥ (undetermined state).

예를 들어 도 1a의 제1 태스크(110)에 대하여 조건식 계산을 하고 조건식 그래프를 생성, 갱신하다가 컨텍스트 노드가 다음 태스크인 제2 태스크로 변경되는 경우 컨텍스트 노드의 속성값과 요소 값이 변경될 수 있다. 예를 들어 제1 태스크(110)의 type 속성은 project이지만 제2 태스크(120)의 type 속성은 personal이다. 이 경우 type 속성을 포함하는 조건식의 결과값은 이를 그대로 이용할 수 없으며, 새로 계산되어야 한다. 새로 계산되어야 하는 결과값은 모두 ⊥(결정되지 않은 상태)로 갱신될 수 있다.For example, when the conditional calculation is performed on the first task 110 of FIG. 1A, the conditional graph is generated and updated, and the context node is changed to the next task, the second task, the attribute value and the element value of the context node may be changed. have. For example, the type attribute of the first task 110 is project but the type attribute of the second task 120 is personal. In this case, the result value of the conditional expression containing the type attribute cannot be used as it is, and it must be newly calculated. All newly calculated results can be updated to ⊥ (undetermined).

실시예에 따라 컨텍스트 노드가 변경되면 조건식 그래프의 모든 노드의 결과값을 ⊥(결정되지 않은 상태)로 갱신할 수도 있다.In some embodiments, when the context node is changed, the result values of all nodes of the conditional graph may be updated to ⊥ (undetermined state).

어떤 노드의 결과값이 갱신되어야 하는가는 표 4의 알고리즘과 같은 방식으로 판단될 수 있다.Which node should be updated may be determined in the same manner as the algorithm of Table 4.

액션 템플릿 at = (t, v)과 연속된 바인딩 인스턴스 노드 x 1 , x 2 가 주어졌을 때 qat (x 1 )에 대해 계산되었다면 다음 조건을 만족하면 at (x 2 ) q의 계산 결과를 재사용할 수 있다.Action template at Given q (t, v) and contiguous binding instance nodes x 1 , x 2 , if q is computed for at (x 1 ) , then at (x 2 ) can reuse the computed result of q .

i)  ∃ (t, V, q s ) R s.t. v V, i) ∃ (t, V, q s )R st v V,

ii)  q s q로의 경로를 가지고 있고ii) q s has a path to q

iii)  base (q)가 v의 조상이고 base (q) ≠ v인 경우iii) base (q) is an ancestor of v and base (q) ≠ v

이를 일반화하여 임의의 두 액션 인스턴스에 대해 조건식 노드의 계산 결과를 재사용하기 위한 조건은 다음과 같다.The general conditions for reusing the calculation result of the conditional node for any two action instances are as follows.

액션 템플릿  at 1 = ( t 1 , v 1 )at 2 = ( t 2 , v 2 )가 주어지고 M X →D (x 1 ) = v 1 , M X →D (x 2 ) = v 2 인 바인딩 인스턴스 노드 x 1 , x 2 가 주어졌다고 가정한다. 조건식 노드 qat 1 (x 1 )에 대해 계산되었고 유효할 때 다음 조건을 만족하면 at 2 (x 2 )q의 계산 결과를 재사용할 수 있다.Given the action templates at 1 = ( t 1 , v 1 ) and at 2 = ( t 2 , v 2 ) and M X → D (x 1 ) = v 1 , M X → D (x 2 ) = v 2 Assume that the binding instance nodes x 1 and x 2 are given. If the conditional node q is computed for at 1 (x 1 ) and is valid, then at 2 (x 2 ) can reuse the computed result of q .

i)  ∃ ( t 1 , V 1 , q s1 ), ( t 2 , V 2 , q s2 ) R s.t. v 1 V 1 , v 2 V 2 ,i) ∃ ( t 1 , V 1 , q s1 ), ( t 2 , V 2 , q s2 )R st v 1 V 1 , v 2 V 2 ,

ii)  q s1 q s2 q로의 경로를 가지고 있고ii) q s1 and q s2 have paths to q

iii)  base (q) ≠ v 1 또는 v 1 v 2 이면서 base (q)가 v 1 v 2 의 공통 조상인 경우iii) base (q) ≠ v 1 or v 1 v 2 and base (q) is a common ancestor of v 1 and v 2

그러므로 바인딩 인스턴스 노드가 바뀌었을 때 재사용 가능하지 않은 모든 계산값은 리셋될 수 있다. 즉 조건식 그래프 노드 중에서 베이스 노드가 새로운 노드의 조상이 아닌 경우는 리셋될 수 있다. 중간 계산 결과는 두 종류로 나눌 수 있다. 연산자 노드는 참 또는 거짓을 가지며, 아직 계산되지 않았거나 재사용 가능하지 않은 경우 ⊥을 가진다. 또한 lpath 노드인 경우는 계산된 노드 집합을 가지거나 ⊥을 가질 수 있다.Therefore, when a binding instance node changes, all calculations that are not reusable can be reset. That is, when the base node is not the ancestor of the new node among the conditional graph nodes, it may be reset. The intermediate calculation results can be divided into two types. Operator nodes have either true or false, and they have a value if they have not yet been computed or are not reusable. In addition, an lpath node may have a computed node set or have a value.

단계 S660에서 제1 조건식의 결과값과 액션 템플릿에 따라 액션 인스턴스가 생성될 수 있다.In operation S660, an action instance may be generated according to the result value of the first conditional expression and the action template.

표 2과 같은 액션 템플릿들이 표 1 과 같은 접근 제어 정책의 조건식 결과값에 따라 도 2a 및 도 2b에서 본 바와 같이 수정/읽기/지우기/만들기 등이 사용자에 의하여 수행 가능하거나 수행 불가능한 것으로 사용자 인터페이스에서 표현될 수 있다.According to the conditional expression result of the access control policy as shown in Table 1, the action templates as shown in Table 2 can be modified or read / deleted / created by the user as shown in FIGS. 2A and 2B. Can be expressed.

노드의 결과값이 결정되지 않은 상태를 노드의 삭제로 구현할 수도 있다. 노드의 결과값이 유효하지 않게 되면 그 노드를 삭제하고, 나중에 결과값이 계산되면 해당 노드를 조건식 그래프에 추가하는 방식이다.The deletion of the node may be implemented when the result of the node is not determined. If the result value of a node becomes invalid, the node is deleted. If the result value is calculated later, the node is added to the conditional graph.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise.

본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 발명의 실시예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. Embodiments of the invention may include computer readable media containing program instructions for performing various computer-implemented operations. The computer readable medium may include program instructions, local data files, local data structures, or the like, alone or in combination. The media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.

이제까지 본 발명에 대하여 그 실시예를 중심으로 살펴보았다. 전술한 실시예 외의 많은 실시예들이 본 발명의 특허청구범위 내에 존재한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the present invention with respect to the embodiment. Many embodiments other than the above-described embodiments are within the scope of the claims of the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

도 1a는 태스크 리스트 XML 트리의 예시도이다.1A is an exemplary diagram of a task list XML tree.

도 1b는 DTD 트리의 예시도이다.1B is an illustration of a DTD tree.

도 2a 및 도 2b는 본 발명의 일 실시예에 따라 제공되는 사용자 인터페이스 화면의 예시도이다.2A and 2B are exemplary views of a user interface screen provided according to an embodiment of the present invention.

도 3은 도 1a 및 도 1b의 XML 예제 및 표 1의 접근정책에 대한 조건식 그래프의 일부이다.FIG. 3 is part of a conditional graph for the XML example of FIGS. 1A and 1B and the access policy of Table 1. FIG.

도 4는 본 발명의 일 실시예를 따르는 클라이언트 시스템의 블록 구성도이다.4 is a block diagram of a client system according to an embodiment of the present invention.

도 5a 내지 도 5c는 본 발명의 일 실시예에 따른 접근 제어 규칙 계산 방법의 성능 실험 결과를 나타낸 그래프이다.5A to 5C are graphs showing performance test results of the method for calculating an access control rule according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따르는 조건식 계산 과정의 순서도이다.6 is a flowchart of a conditional expression calculation process according to an embodiment of the present invention.

도 7은 도 6의 단계 S620의 상세 순서도이다.FIG. 7 is a detailed flowchart of step S620 of FIG. 6.

Claims (12)

접근 제어를 위한 조건식 계산 방법에 있어서,In the conditional calculation method for access control, 조건식 그래프에서 제1 조건식에 상응하는 제1 노드(node)가 검출되는 단계;Detecting a first node corresponding to the first conditional expression in the conditional graph; (a) 상기 제1 노드의 결과값이 결정되었는지 판단하는 단계; 및(a) determining whether a result value of the first node is determined; And (b) 상기 제1 노드의 결과값이 결정된 경우 상기 제1 노드의 결과값이 상기 제1 조건식의 결과값으로써 추출되는 단계를 포함하되,(b) if the result value of the first node is determined, extracting the result value of the first node as a result value of the first conditional expression, 상기 조건식 그래프는 경로식에 대응하는 경로 노드, 조건식의 연산자에 대응하는 연산자 노드, 리터럴이나 변수에 대응하는 밸류 노드 및 상기 연산자 노드로부터 상기 연산자 노드에 상응하는 조건식의 부분조건식에 상응하는 노드로 향하는 에지(edge)를 포함하는 조건식 계산 방법.The conditional graph is directed to a path node corresponding to a path expression, an operator node corresponding to an operator of the conditional expression, a value node corresponding to a literal or variable, and a node from the operator node to a node corresponding to a subcondition of the conditional expression corresponding to the operator node. Conditional expression calculation method including edges. 삭제delete 제1항에 있어서,The method of claim 1, (c) 상기 제1 노드의 결과값이 결정되지 않은 경우, 상기 제1 노드로부터 나오는 에지가 향하는 노드인 제2 노드가 추출되는 단계;(c) if the result value of the first node is not determined, extracting a second node, which is a node facing an edge from the first node; (d) 상기 제2 노드의 결과값이 계산되는 단계; 및(d) calculating a result of the second node; And (e) 상기 제2 노드의 결과값을 기초로 상기 제1 조건식의 결과값이 계산되는 단계를 더 포함하는 조건식 계산 방법.(e) calculating a result value of the first conditional expression based on the result value of the second node. 제3항에 있어서 The method of claim 3, 상기 (d) 단계는,The step (d) 상기 제2 노드의 결과값이 결정되었는지 판단하는 단계; 및Determining whether a result value of the second node is determined; And 상기 제2 노드의 결과값이 결정된 경우 상기 제2 노드의 결과값이 상기 부분조건식의 결과값으로써 추출되는 단계;Extracting a result value of the second node as a result value of the subcondition when the result value of the second node is determined; 상기 제2 노드의 결과값이 결정되지 않은 경우, 상기 제2 노드로부터 나오는 에지가 향하는 노드인 제3 노드가 추출되는 단계;If a result value of the second node is not determined, extracting a third node, which is a node facing an edge from the second node; 상기 제3 노드의 결과값이 계산되는 단계; 및Calculating a result value of the third node; And 상기 제3 노드의 결과값을 기초로 상기 제2 노드의 결과값이 계산되는 단계를 포함하는 조건식 계산 방법.And calculating a result value of the second node based on the result value of the third node. 제 3항에 있어서The method of claim 3 상기 (d) 단계는,The step (d) 상기 제2 노드를 상기 제1 노드로 취급하여 상기 (a) 단계 내지 상기 (e) 단계가 재귀적으로 반복하여 수행되는 단계를 포함하는 조건식 계산 방법.Treating the second node as the first node, wherein steps (a) to (e) are recursively performed repeatedly. 제3항에 있어서,The method of claim 3, 상기 조건식 그래프의 상기 제1 조건식에 상응하는 노드의 결과값이 상기 계산된 제1 조건식의 결과값으로 갱신되는 단계를 더 포함하는 조건식 계산 방법.And updating the resultant value of the node corresponding to the first conditional expression in the conditional graph with the calculated resultant value of the first conditional expression. 제3항에 있어서,The method of claim 3, 상기 제1 조건식이 리터럴(literal) 또는 변수인 경우 상기 제1 조건식에 상응하는 노드의 결과값이 상기 추출된 리터럴값이나 변수값으로 갱신되는 단계를 더 포함하는 조건식 계산 방법.And if the first conditional expression is a literal or a variable, updating a result value of a node corresponding to the first conditional expression to the extracted literal value or a variable value. 제1항에 있어서,The method of claim 1, 상기 제1 조건식 계산 중 컨텍스트 노드가 변경되는 경우 상기 조건식 그래프에 포함된 노드의 결과값이 결정되지 않은 상태로 갱신되는 단계를 더 포함하는 조건식 계산 방법.And updating the result value of the node included in the conditional graph to an undetermined state when the context node is changed during the first conditional expression calculation. 제1항에 있어서,The method of claim 1, 상기 제1 조건식 계산 중 컨텍스트 노드가 제1 컨텍스트 노드에서 제2 컨텍스트 노드로 변경되고 상기 제1 컨텍스트 노드의 템플릿 베이스 노드가 상기 제2 컨텍스트 노드의 템플릿 베이스 노드의 조상이 아닌 경우 상기 조건식 그래프에 포함된 노드의 결과값이 결정되지 않은 상태로 갱신되는 단계를 더 포함하는 조건식 계산 방법.Include in the conditional graph when the context node is changed from the first context node to the second context node during the first conditional expression calculation and the template base node of the first context node is not an ancestor of the template base node of the second context node. And updating the result of the determined node to an undetermined state. 제1항에 있어서,The method of claim 1, 상기 제1 조건식 계산 중 컨텍스트 노드가 변경되는 경우 상기 조건식 그래프에 포함된 노드 중 컨텍스트 노드 변경으로 결과값이 달라질 수 있는 노드의 결과값이 결정되지 않은 상태로 갱신되는 단계를 더 포함하는 조건식 계산 방법.If the context node is changed during the first conditional expression calculation, the conditional expression calculation method further comprising updating the resultant value of a node whose resultant value is changed by changing the context node among nodes included in the conditional graph. . 제1항에 있어서,The method of claim 1, 상기 계산된 제1 조건식의 결과값과 액션 템플릿에 따라 액션 인스턴스가 생성되는 단계를 더 포함하는 조건식 계산 방법.And generating an action instance according to the calculated result value of the first conditional expression and the action template. 접근 제어를 위한 조건식 계산 방법을 수행하기 위해 전자장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 전자장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,In the recording medium on which a program of instructions that can be executed by an electronic device is tangibly implemented to perform a conditional calculation method for access control, and in which a program can be read by the electronic device, 제1항, 제3항 내지 제11항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 기록 매체.The recording medium which recorded the program which performs the method of any one of Claims 1-11.
KR1020080058520A 2008-06-20 2008-06-20 Method of Evaluation of Predicates for Access Control KR101007681B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080058520A KR101007681B1 (en) 2008-06-20 2008-06-20 Method of Evaluation of Predicates for Access Control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080058520A KR101007681B1 (en) 2008-06-20 2008-06-20 Method of Evaluation of Predicates for Access Control

Publications (2)

Publication Number Publication Date
KR20090132320A KR20090132320A (en) 2009-12-30
KR101007681B1 true KR101007681B1 (en) 2011-01-13

Family

ID=41691405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080058520A KR101007681B1 (en) 2008-06-20 2008-06-20 Method of Evaluation of Predicates for Access Control

Country Status (1)

Country Link
KR (1) KR101007681B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905984A (en) 1995-01-26 1999-05-18 Thorsen; Hans Verner Computer-implemented control of access to atomic data items
JP2006146424A (en) 2004-11-17 2006-06-08 Toshiba Corp Node importance computing device, node importance computing program and node importance computing method
KR20070057603A (en) * 2005-12-01 2007-06-07 한국전자통신연구원 Xml data stream processing system and method for managing the access control using xpath

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905984A (en) 1995-01-26 1999-05-18 Thorsen; Hans Verner Computer-implemented control of access to atomic data items
JP2006146424A (en) 2004-11-17 2006-06-08 Toshiba Corp Node importance computing device, node importance computing program and node importance computing method
KR20070057603A (en) * 2005-12-01 2007-06-07 한국전자통신연구원 Xml data stream processing system and method for managing the access control using xpath

Also Published As

Publication number Publication date
KR20090132320A (en) 2009-12-30

Similar Documents

Publication Publication Date Title
Buneman et al. Reasoning about keys for XML
US7672946B2 (en) Information processor, database search system and access rights analysis method thereof
US8515999B2 (en) Method and system providing document semantic validation and reporting of schema violations
US7409400B2 (en) Applications of an appliance in a data center
US6487566B1 (en) Transforming documents using pattern matching and a replacement language
US6772165B2 (en) Electronic document processing system and method for merging source documents on a node-by-node basis to generate a target document
US20120110437A1 (en) Style and layout caching of web content
US8938668B2 (en) Validation based on decentralized schemas
US20070028163A1 (en) Lightweight application program interface (API) for extensible markup language (XML)
JP2006351002A (en) Document verifying apparatus, document verifying method and program
AU2007275507B2 (en) Semantic aware processing of XML documents
Maler et al. XML pointer language (XPointer)
EP1513073B1 (en) System and method for validating hierarchically-organized messages
KR101007681B1 (en) Method of Evaluation of Predicates for Access Control
Takata et al. Accessibility verification of WWW documents by an automatic guideline verification tool
Wang et al. Inferring deterministic regular expression with counting
Hasegawa et al. An Algorithm for Transforming XPath Expressions According to Schema Evolution.
Lee et al. Efficient evaluation of shared predicates for XForms page access control
Jo et al. Access Control Mechanism for XML Document
Yang Parsers
Anutariya et al. A Foundation for XML Document Databases: DTD Modeling
Terpo et al. Building dynamic forms with XML, XSLT
Wahid et al. Expressing Dynamic XML Inclusion Dependencies
Nicholus et al. Using and Understanding HTML Element Attributes
Yang et al. Action type based access control model for XML documents

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: 20140106

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141218

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160106

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee