KR20080109828A - 사용권한들에 기초하여 사용자 인터페이스를 모핑하는 방법, 이를 위한 컴퓨터 실행가능 코드를 포함하는 컴퓨터 판독가능 매체 및 컴퓨터 시스템 - Google Patents

사용권한들에 기초하여 사용자 인터페이스를 모핑하는 방법, 이를 위한 컴퓨터 실행가능 코드를 포함하는 컴퓨터 판독가능 매체 및 컴퓨터 시스템 Download PDF

Info

Publication number
KR20080109828A
KR20080109828A KR1020087024408A KR20087024408A KR20080109828A KR 20080109828 A KR20080109828 A KR 20080109828A KR 1020087024408 A KR1020087024408 A KR 1020087024408A KR 20087024408 A KR20087024408 A KR 20087024408A KR 20080109828 A KR20080109828 A KR 20080109828A
Authority
KR
South Korea
Prior art keywords
objects
displayed
computer executable
executable code
forms
Prior art date
Application number
KR1020087024408A
Other languages
English (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 마이크로소프트 코포레이션
Publication of KR20080109828A publication Critical patent/KR20080109828A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

사용권한 또는 라이센스가 이용 불가능한 객체가 표시되지 않도록, 사용권한에 기초하여 폼이 모핑될 수 있다. 적절한 코드가 표에 대한 사용권한이 이용가능한지 여부를 판정하기 위하여 분석될 수 있고, 표에 대한 사용권한이 이용 불가능하면, 그 표에 종속되는 객체는 그 모핑된 폼에 포함되지 않는다.
Figure P1020087024408
모핑, 사용권한, 라이센스, 디스플레이 폼, 객체, 객체들의 리스트

Description

사용권한들에 기초하여 사용자 인터페이스를 모핑하는 방법, 이를 위한 컴퓨터 실행가능 코드를 포함하는 컴퓨터 판독가능 매체 및 컴퓨터 시스템{USER INTERFACE MORPH BASED ON PERMISSIONS}
컴퓨터는 정보를 수집(gathering)하고 분석하고 표시하는 데 매우 유용하다. 그러나, 소정의 시스템 상의 모든 애플리케이션들 또는 컨트롤들을 보는 것이 모든 사용자들에게 허용되는 것은 아니다. 따라서, 라이센스(license)되지 않은 아이템 또는 완전히 설치되지 않았던 아이템을 사용자가 선택하면, 아무 일도 일어나지 않아, 사용자를 실망시킬 수 있다.
<본 발명의 개요>
사용 권한(permission)에 기초하여 사용자 인터페이스를 모핑(morphing)하는 것이 개시되어 있다. 본 방법은 복수의 객체를 표시하기 위한 디스플레이 폼(display form)을 생성할 수 있고, 개별적인 객체를 표시하기 위한 사용 권한을 획득하기 위하여 객체를 사용할 수 있으며, 표시될 객체에 대하여 사용 권한이 수신되면, 표시될 객체들의 리스트에 객체를 추가하고, 표시될 객체에 대하여 사용 권한이 수신되지 않으면, 표시될 객체들의 리스트에 객체를 추가하는 것이 억제되고, 표시될 객체들의 리스트에 객체를 표시하는 모핑된 디스플레이 폼을 생성할 수 있다.
도 1은 청구 범위에 따라 동작될 수 있는 컴퓨팅 시스템의 블록도.
도 2는 청구 범위에 따른 방법의 상위 수준 예를 도시하는 도면.
도 3은 청구 범위에 따른 방법의 보다 상세한 예를 도시하는 도면.
도 4는 청구 범위에 따른 방법의 보다 상세한 예를 도시하는 도면.
도 5는 모핑될 디스플레이의 예를 도시하는 도면.
이하에서는 다수의 상이한 실시예에 대한 상세한 설명을 개시하지만, 이러한 설명의 법률적 범위는 본 명세서의 끝 부분에 개시되는 특허청구범위의 용어들에 의해 제한된다는 점이 이해되어야 한다. 상세한 설명은 단지 예시적인 것으로 고려되어야 하고, 모든 가능한 실시예들을 설명하는 것은 아니며, 이는 모든 가능한 실시예들을 설명한다는 것은 비록 불가능하지 않더라도 실용적이지 않기 때문이다. 현재의 기술 또는 본 특허의 출원일 이후에 개발된 기술들을 사용하여 다수의 대안적인 실시예들이 구현될 수 있지만, 이러한 것들도 역시 본 발명의 특허청구범위의 범위에 포함되는 것이다.
"본 명세서에서 사용될 때, 용어 '____'는 ...을 의미하도록 여기에서 정의된다"라는 문장 또는 이와 유사한 문장을 사용하여 본 명세서에서 명시적으로 정의되지 않는 한, 이러한 용어는 명시적으로든 또는 암시적으로든, 그것의 일반적인 의미 또는 보통의 의미 이상으로, 그 용어의 의미를 제한하려는 의도는 아니며, 이 러한 용어가 본 명세서의 임의의 섹션에 있는 임의의 문장(청구항의 언어가 아니라)에 기초하여 범위가 제한되도록 해석되어서는 안 된다는 것 또한 이해할 것이다. 본 명세서의 끝 부분에 있는 청구범위에 언급된 임의의 용어가 단일 의미로 일관된 방식으로 본 명세서에서 지칭되는 점에서, 이는 단지 독자들을 혼동시키지 않도록 단순 명료하게 기술한 것으로, 이러한 청구범위의 용어가 암시적으로든 또는 다르게든, 그 단일 의미로 제한되는 것은 아니다. 마지막으로, 임의의 구조의 언급 없이 "수단"이라는 단어와 기능을 언급함으로써 청구항의 구성요소가 정의되지 않는다면, 임의의 청구항의 구성요소의 범위가 U.S.C.§112, 6번째 항의 적용에 기초하여 해석되어야 하는 것은 아니다.
도 1은 청구 대상 방법의 단계들 및 장치를 위한 시스템이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 청구범위의 방법 또는 장치의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
청구 대상 방법의 단계들 및 장치는 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 청구 범위의 방법 또는 장치와 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마 이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
청구 대상 방법의 단계들 및 장치는 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 방법 및 장치는 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시되도록 설계될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
도 1과 관련하여, 청구 대상 방법의 단계들 및 장치를 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standard Association) 로컬 버스, 그리고 메자닌 버스(Mezzanine Bus)로도 알려진 PCI(Peripheral Component Interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유 선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 1은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 마이크(163) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 또 하나의 퍼스널 컴퓨터, 핸드-헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함하지만, 메모리 저장 장치(181)만이 도 1에 도시되어 있다. 도 1에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121) 에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 원격 컴퓨터(180)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
도 2는 사용자 인터페이스를 모핑하는 방법의 상위 수준 블록도이다. 블록(200)에서는, 표시될 객체가 수집된다. 객체는 컨트롤 객체일 수 있다. 예를 들면, 객체는 추가적인 모듈의 일부일 수 있는 인사 기록(personnel record)을 보기 위한 디스플레이 버튼일 수 있다. 일부 회사들은 인사 모듈을 사용하고, 다른 회사들은 옵션(option)인 인사 모듈을 사용하기 위한 권한을 구매하지 않았을 수 있다.
블록(210)에서, 메소드는 구매된 라이센스를 검토할 수 있다. 예를 들면, 일부 회사는 인사 모듈에 대한 라이센스를 구매하였지만, 다른 회사들은 인사 모듈을 구매하지 않았을 수 있다. 이 정보가 수집되고 저장된다. 정보는 표시될 아이템이 포지티브 리스트에 추가되는 포지티브 파일(positive file)로서 저장될 수 있다. 다른 실시예에서, 정보는 표시되지 않을 객체가 저장되는 네거티브 파일(negative file)에 저장될 수 있다. 또 다른 실시예에서는, 네거티브 리스트 및 포지티브 리스트 모두가 사용될 수 있다.
블록(220)에서는, 디스플레이 객체 및 라이센스 정보가 모핑 프로그램에 전 달된다. 모핑 프로그램은 라이센스 정보를 취하고, 수신된 라이센스 데이터에 기초하여, 표시되어야 하는 객체와 표시되지 않아야 하는 객체를 결정할 수 있다. 그리고, 모핑 프로그램은 디스플레이가 여전히 적절하게 보이도록 표시될 객체들을 논리 배열(logical arrangement)로 배열할 수 있다. 예를 들면, 일부 객체가 표시되지 않으면서 이 객체가 태스크 바의 좌측을 정상적으로 차지하는 경우, 표시될 아이템들 중 일부의 아이템이 태스크 바를 고르게 차지하도록 이동되지 않는 한, 디스플레이는 균형을 잃은 것(lopsided)으로 보일 수 있다.
도 3은 청구범위에 따른 방법의 상세한 블록도이다. 블록(300)에서, 베이스(base) 객체가 수집된다. 객체는 Microsoft사의 Navision과 같은 디스플레이 프로그램으로부터 수집될 수 있다. 블록(310)에서, 추가적인 객체가 추가될 수 있다. 추가적인 객체는 새로운 어시스턴스(new assistance) 관련 객체 등과 같은 기 개발된 새로운 피쳐(feature)일 수 있다. 블록(320)에서, 블록(300)으로부터의 베이스 객체와 블록(310)으로부터의 추가적인 객체는 표시될 수 있는 모든 가능한 객체들이 단일의 파일에 있도록 조합될 수 있다.
블록(330)에서, 라이센스 정보가 수집될 수 있다. 라이센스는 물리적인 라이센스가 아니라, 표시된 애플리케이션에 포함될 애플리케이션 그래뉼(application granule)들의 리스트일 수 있다. 연관된 라이센스를 가질 필요가 없는 다른 프로그램 그래뉼이 포함될 수 있다. 그래뉼은 인사 모듈이 총계정 원장(General Ledger) 베이스 프로그램의 최상위에 추가되는 것처럼 베이스 프로그램에 추가적인 기능을 추가하는 프로그램 부분(program parts)으로서 생각될 수 있다.
블록(340)에서, 예외(execption)들의 리스트가 획득될 수 있다. 예외들의 리스트는 모핑 알고리즘이 식별할 수 없는 필드 및 기타 컨트롤 전부, 또는 피쳐 또는 객체가 노출되지 않을 것이기 때문에 불필요한 컨트롤을 포함할 수 있다.
블록(350)에서, 모핑 툴이 실행될 수 있다. 모핑 툴은 Microsoft사의 Navision과 같은 통상적인 디스플레이 프로그램에 대한 추가물일 수 있다. 블록(330)으로부터 이용가능한 라이센스에 기초하여, 관련있지는 않지만 여전히 라이센스 내에 있는 필드의 리스트가 유도된다. 이와 함께, 엑스트라(extra) 컨트롤이 숨겨져야 하는 것에 대한 예외들의 리스트를 이용하여, 모핑 애플리케이션은 관련없는 필드가 제거된 폼의 버전을 생성하였다.
블록(360)에서, 모핑 툴은 폼에 대한 모핑된 객체들의 세트를 출력할 수 있다. 이 객체들은 소프트웨어의 다음 빌드(build)에 포함될 수도 있고, 또는 런타임 시에 원본 폼(original form) 대신에 사용될 수도 있다. 모핑된 객체는 데이터베이스에 저장될 수도 있고, 또는 모핑된 객체는 새로운 객체로서 저장될 수도 있다. 블록(370)에서, 모핑 툴은 포지티브 리스트(positive list)로서 보일 수 있는 모든 필드들을 열거하는 필드들의 포지티브 리스트를 출력할 수 있다. 또한, 툴은 네거티브 리스트로서 숨겨져 있는 필드들의 리스트를 출력할 수 있다. 또한, 네거티브 리스트는 필드가 숨겨진(hidden) 이유, 예를 들면 라이센스가 이용불가함, 예외가 발생하였음 등과 같은 것을 나타낼 수 있다. 리스트 내의 샘플 엔트리는 폼 번호, 컨트롤 번호, 컨트롤 유형(텍스트 박스, 메뉴 버튼, 입력 필드 등)을 포함할 수 있다.
도 4는 청구범위에 따른 방법의 보다 상세한 또 다른 도면이다. 블록(400)에서, 메소드는 라이센스 테스트 툴을 시작할 수 있다. 라이센스 테스트 툴은 사용자가 폼에 대한 효과를 볼 수 있도록 하는 사용 권한의 시뮬레이션(simulation)에 의해 라이센스가 정확히 구성되는 것을 보장할 수 있다. 테스트 데이터의 임포트(importation)는 사용자 지식없이도 발생할 수 있다. 또한, 프로그램 그래뉼(405)은 라이센스 데이터(410)처럼 라이센스 테스트 툴(400)에 공급될 수 있다. 라이센스 데이터(410)는 모핑 사용 권한에 대한 기초로서 사용될 라이센스 규정(license definition)을 임포트할 수 있다. 이 데이터가 임포트된 후에, 사용자 사용 권한 기록이 특정 사용자에 대하여 셋업될 수 있다. 샘플 라이센스 파일은 이하와 같다.
파일 포맷은 이하와 같다(CSV - 세미콜론 구분됨).
Figure 112008069701713-PCT00001
Figure 112008069701713-PCT00002
콤마 구분된 파일(comma separated file)은 값들 간의 구분 기호(separator)로서 세미콜론 또는 콤마를 이용하여 파일 포맷된다. 각 라인은 하나의 기록에 대한 값들로 이루어지고, 라인은 캐리지 리턴 줄바꿈(carriage return linefeed)으로 구분된다. CSV 파일은 조작을 위하여 용이하게 Excel로부터 엑스포트(export)되고 Excel로 임포트될 수 있다. 블록(415)에서, 메소드는 예외를 임포트할 수 있다. 예외는 컨트롤 예외(417) 및 메뉴 예외(419)일 수 있다. 예외는 CSV(comma separated value)로서 저장될 수 있고, 다음과 같은 폼으로 될 수 있다.
Form number(정수(integer); x; x; x; ControlNumber(정수); x; x; x; Hide(yes/). 여기서 "x"는 무시되지만 사용자에게 유용한 정보를 포함할 수 있다.
블록(420)에서, STX(System terminology file) 파일 내의 키워드가 식별되고 다언어(multi-language) 상황에서 사용될 수 있도록, STX 파일이 임포트될 수 있다. STX 파일은 시스템이 언어에 독립하여 운영시키는 데 필요한 텍스트 상수를 포함하는 파일일 수 있다. STX 파일은 시스템 표에 대해 예(yes), 아니오(no) 및 필드명에 대한 규정을 포함할 수 있다. 모핑 툴이 오로지 객체 및 객체 속성만을 사용하므로, 이하의 단편 이외의 다언어 요구사항이 존재하지 않을 수 있다.
Figure 112008069701713-PCT00003
블록(430)에서, 페이지 및 열 등과 같이 컨트롤을 위해 메타데이터가 추출된다. 컨트롤 이동을 위한 메소드가 컨트롤을 이동시키기 위한 장소를 찾기 위해서는, 컨트롤이 배치된 장소를 알 필요가 있다. 따라서, 디스플레이가 열 및 행으로 분해된다. 도 5는 이러한 분해의 하나의 예일 수 있다. 예를 들면, "No" 엔트리 객체(500)는 제1 열의 제1 행에 있을 수 있다. 또한, 제1 행, 제1 열은 4개의 객체, 즉 "No."에 대한 라벨(505), No.에 대한 텍스트 박스(510), 코멘트에 대한 비트맵(연필 모양 그림)(515), 및 코멘트 버튼 그 자체(520)를 포함할 수 있다. 단, 어시스트 에디트 버튼(525)은 별도의 객체가 아니라 텍스트 박스 컨트롤의 일부이다. 만약 컨트롤이 오버랩되면, 메소드는 이 상황을 감지하고, 컨트롤을 이동시키는 것을 억제할 수 있다.
알고리즘이 라이센스 내에 소정의 컨트롤이 있는지 여부를 입증하기 위해서는, 컨트롤이 사용 중인 객체들이 어느 것인지를 찾고, 그 모든 객체들이 해당 라이센스 내에 있는지 여부를 판정할 필요가 있다. 분석은 3 단계를 포함할 수 있다. 우선, 컨트롤과 필드 간의 관계에 대한 표가 생성될 수 있다. 둘째, 필드와 객체 간의 관계에 대한 표가 만들어질 수 있다. 마지막으로, 컨트롤과 다른 객체 간의 관계에 대한 표가 만들어질 수 있다. 메소드는 폼에 대한 임의의 컨트롤 간의 관계를 표로 분석할 수 있고, 사용자가 사용 권한을 갖지 않는 표에 컨트롤이 액세스만 하면, 코드 분석기는 그 컨트롤을 제거한다. 메타데이터는 객체가 포함되어야 하는지 아니면 포함되지 않아야 하는지를 나타내는 데 사용될 수 있다.
조작되는 컨트롤을 찾는 것은 런타임 시에 폼의 속성을 변화시키는 현재 폼 내의 모든 코드, 즉 뒤에 ".", "," 또는 공백(blank)과 같은 다른 코드 구분 기호가 오는 단편 currform.* 또는 RequestOptionsForm.*을 포함한 코드를 찾는 것으로 이루어질 수 있다. 그리고, 메소드는 텍스트 단편*이 그 폼에 대하여 유효한 컨트롤명인지 여부를 조사할 수 있다. 조작되는 모든 컨트롤은 표에 객체 유형, 객체 번호, 컨트롤 번호 및 컨트롤명으로 열거될 수 있다. 또한, 컨트롤의 조작은 메타데이터를 사용하여, 즉 실행 시에 평가되는 컨트롤 상의 속성을 갖는 것에 의해 획득될 수 있으며, 이 속성은 컨트롤의 외관(appearance)을 제어하는 데 사용된 다(Manipulation of controls may also be obtained using metadata that is by having properties on the controls that are evaluated at execution time and then these properties are used to control the appearance of controls). 그리고, 조작되는 컨트롤을 찾는 것은 외관의 런타임 변화로 이끄는 유형의 메타데이터를 갖는 컨트롤을 찾는 것으로 이루어질 수 있다(Finding the manipulated controls may then consist of finding the controls with metadata of the type that leads to run time changes of appearance).
다음, 메소드는 관련없거나 예외를 갖는 컨트롤을 숨길 수 있다. 그리고, 보다 관련있는 나머지 컨트롤이 그 폼 상에서 이동될 수 있다. 또한, 숨겨진 부모(parent)의 자식(child) 컨트롤도 숨겨질 수 있다. 숨겨진 컨트롤은 별도의 표에 열거되어야 한다. 필드가 다중 관계를 갖는 경우, 모든 관계가 부적절하면, 그 필드에 대한 컨트롤이 숨겨질 수 있다.
블록(450)에서, 메소드는 숨겨진 컨트롤을 제거할 수 있다. 컨트롤이 조작되지 않고 단지 예외 리스트에서만 숨겨진 것으로 마크되지 않으면, 컨트롤이 숨겨질 수 있다. 삭제될 컨트롤이 자식 컨트롤을 갖는 텍스트 박스, 이미지, 그림, Boolean 또는 기타 컨트롤이면, 자식 컨트롤 역시 삭제될 수 있다.
이와 관련하여, 액티브 컨트롤을 포함하지 않는 탭 페이지와 같은 컨트롤이 삭제될 수 있다. 탭 페이지는 탭 페이지가 선택한 경우에 새로운 페이지를 여는 컨트롤일 수 있다. 탭 페이지 상에 있는 컨트롤은 탭 페이지가 삭제될 수 있기 전에 이동되어야 하고, 따라서 탭 페이지 상에 숨겨진 컨트롤은 탭 페이지가 삭제될 수 있기 전에 다른 탭 페이지로 이동되어야 한다. 메소드는 비어있는 탭을 삭제하고, 숨겨져있기는 하지만 삭제되지 않은 컨트롤을, 이용가능한 제1 탭으로 이동시킬 수 있다.
메소드는 관련없는 메뉴 아이템을 디스에이블(disable)시키거나 삭제할 수 있다. 메뉴 아이템이 라이센스 외부에 있는 객체에 대하여서만 관계를 가지면, 메뉴 아이템은 삭제될/숨겨질 수 있다. 마찬가지로, 관련없는 메뉴가 디스에이블되거나 삭제될 수 있다. 구분 기호 외에 메뉴 내에 있는 모든 메뉴 아이템이 디스에이블되거나 삭제되면, 메뉴는 사용자에게 아무런 기능이 없는 것으로 보이므로, 삭제하여야 한다. 메뉴 간의 공간이 유지되도록, 다른 메뉴가 수직 글루(glue) 속성처럼 그 속성의 방향으로 이동될 수 있다.
블록(460)에서, 새로운 객체가 생성될 수 있다. 빌드 프로세스의 주요 부분은 베이스 객체를 획득하기, 모핑 객체를 획득하기, 객체를 새롭게 생성된 데이터베이스로 임포트하기, 라이센스 및 그래뉼과 같은 모든 필요한 파일을 임포트하고 폼을 생성/모핑하는 모핑 매니저를 실행하기, 모핑된 객체를 텍스트로서 엑스포트하기 및 모핑된 객체를 이용하여 빌드 프로세스를 실행하기일 수 있다.
또한, 메소드가 적절하게 동작 중인 것을 보장하고 그 메소드에 의해 행해진 변화를 문서화(document)하기 위하여 테스트 데이터(470)가 생성될 수 있다. 숨겨진 필드에 대한 데이터는 이하의 폼으로 엑스포트될 수 있다.
Figure 112008069701713-PCT00004
Figure 112008069701713-PCT00005
예:
Figure 112008069701713-PCT00006
이 예는, 라이센스 내의 필드를 통해 액세스되지 않기 때문에 Bill of Materials 체크박스가 제거되어야 함을 나타낸다. 또한, 두 번째 Yes는 이 컨트롤이 삭제되어야 함을 말하는 예외가 있다는 것을 의미한다. Control은 제1 탭 페이지 상의 위치이다.
Column 손상(column breakage):
또한, 로그는 오버랩 때문에 컨트롤이 이동될 수 없거나 열 규정이 손상된 경우의 상황이 유지될 수 있다. 리스트는 Column 규정을 손상시키게 하는 (CSV 세미콜론 구분된) 컨트롤들의 리스트이다.
Form no, Control No
또한, 메소드는 베이스와 모핑된 폼 간의 차이를 계속해서 추적할 수 있다. 이러한 방식에서, 모핑 방법에 대한 개선점이 추적될 수 있다. 일 실시예에서, 폼이 XML 파일로서 저장되면, 상이한 버전의 모핑된 폼과 비교하는 데 XML diff가 사용된다.
또한, 폼을 벗어나서 모핑되었던 필드는 기록 요청 폼 필터 필드로부터 벗어나서 모핑되어야 한다. Morphing에 대한 이전 프로세스는 폼, 컨트롤 no, Table no 및 필드 no 및 Field명을 이용하여 표를 생성하였다. 이 표도 역시 요청 필터 필드를 제거하는 데 사용될 수 있다. 표는 라이센스 체크에 의해 찾아진 필드 및 임포트된 수동 예외를 포함할 수 있다. 임의의 폼이 표로부터 필드를 갖는 컨트롤을 제거하였으면, 이 필드는 임의의 기록 요청 필터 필드에 보이지 않아야 한다.
그 필드가 데이터베이스로부터 삭제된 것이 아니기 때문에, 사용자는 여전히 요청 필터 필드에 그 필드 또는 다른 필드를 추가할 수 있다. 이러한 피쳐의 목적은 단지 어떠한 기록도 모핑된 필드를 필터의 리스트에 디폴트로 보여주지 않음을 보장하기 위한 것이다.
구현에서, 벗어나서 모핑될 컨트롤(controls to be morphed away)은 CSV 파일로부터 판독될 수 있다. 이 컨트롤은 정상적인(normal) 폼에서의 컨트롤과 마찬가지 방식으로 옵션 폼으로부터 제거될 수 있다. 조작된 컨트롤은 마치 정상적인 폼에서처럼 숨겨져야 하고, 삭제되지는 않는데, 이는 컴파일 오류(compilation error)를 발생시킬 것이기 때문이다.
옵션 폼은 "공란(hole)"을 피하고 폼의 설계에 대한 가이드 라인을 따르기 위하여 정상적인 폼과 동일한 방식으로 재배열되어야 한다. Option 폼이 비게 되면(남겨진 컨트롤이 없음), 옵션 폼은 자동으로 사라진다. 이는, 소정의 컨트롤이 코드로 조작되기 때문에 비시각적인 것으로 설정되는 경우, Option Form이 결국에는 비게 되어 시각적인 컨트롤을 갖지 않게 된다는 것을 의미한다.
일 실시예에서, 본 메소드는 Microsoft Corporation사의 Navision에서 사용된다. Navision은 회사들이 금융, 제조, 배포, 고객 관계 관리 및 전자 금융 데이터를 통합하는 데 도움을 준다. 다시 도 3을 참조하면, 베이스 객체(300)는 Navision으로부터의 객체일 수 있다. 추가적인 객체(310)는 특히 Navison을 위해 피쳐 팀(feature team), 또는 제3 자에 의해 개발된 추가적인 객체일 수 있다. 베이스 객체(300)와 추가적인 객체(310)는 조합될 수 있고, 모핑을 위한 베이스 객체(320)로 될 수 있다. 블록(330)에서, 라이센스 규정이 저장될 수 있다. 라이센스 규정은 정상적인 물리적 라이센스가 아니라, Navision 애플리케이션과 함께 포함될 애플리케이션 그래뉼들의 리스트일 수 있다. 라이센스 규정은 폼 설계자와 같은 시스템 그래뉼을 포함할 필요 없이, 그래뉼들 및 그 그래뉼들이 포함하는 사용 권한의 리스트를 포함할 수 있다. 블록(340)에서는, Morph 알고리즘이 식별할 수 없는 필드 및 기타 컨트롤 전부, 또는 피쳐가 노출되지 않을 수 있으므로 불필요한 컨트롤일 수 있는 예외가 저장될 수 있다. 블록(350)은 모핑 기능을 갖는 Navision Developers Toolkit일 수 있다. 블록(330)으로부터의 라이센스 데이터를 사용하여, 관련은 없지만 여전히 라이센스 내에 있는 필드들의 리스트가 도출될 수 있다. 어떤 엑스트라 컨트롤을 숨길 지에 대한 예외들의 리스트와 함께, 모핑 프로그램은 관련없는 필드가 제거된 버전의 폼들을 생성한다. 블록(360)에서, 모핑 툴의 출력은 폼에 대한 모핑된 객체의 세트일 수 있고, 일일 빌드(daily build)에 포함될 수 있다. 블록(370)에서, Navision에 의해 표시될 필드들의 포지티브 리스트 및 네거티브 리스트가 생성될 수 있다.
응용에서, Navision 클라이언트와 Navision Development Tollkit은 데이터베이스를 공유할 수 있다. 데이터베이스는 Morph 프로세스에 대한 정상적인 객체, 임포트된 객체의 리프리젠테이션을 저장하는 Navison Development Toolkit으로부터 의 객체 및 Morph 툴에 의해 필요로 되는 기타 정보를 포함할 수 있다. 모핑된 객체는 객체로서가 아니라 데이터베이스에 기록으로서 저장될 수 있다. 일일 Navision 빌드가 발생하면, 시스템은 모든 Nafision Development Toolkit 객체를 얻고, 공유된 데이터베이스로부터 모든 모핑 객체를 얻고, 새로운 데이터베이스로 그 객체들을 임포트할 수 있다. Navision Development Toolkit은 베이스 객체를 임포트하고, 모핑 매니저가 라이센스 및 그래뉼 파일과 같은 모든 필요한 파일을 임포트하고, 모핑된 폼을 생성할 수 있다. 모핑된 객체는 텍스트로서 엑스포트될 수 있고, Navision은 모핑된 객체를 사용하여 빌드 프로세스를 실행할 수 있다.
전술한 텍스트는 여러 가지 다른 실시예들에 관해 상술하고 있지만, 본 특허 출원의 범위는 본 특허 출원의 마지막에 기재된 청구범위의 용어에 의해 규정됨을 이해하여야 한다. 위의 상세한 설명은 단지 예시로서만 해석되는 것이며, 모든 가능한 실시예를 설명하는 것이 비록 불가능하지는 않더라도 비실용적이기 때문에, 모든 가능한 실시예를 설명하지는 않는다. 현재 기술 또는 본 특허 출원의 출원일 이후에 개발되는 기술을 사용하여 여러 가지 다른 실시예들이 구현될 수 있으며, 이는 여전히 청구범위의 범주 내에 속한다.
따라서, 본 특허 출원의 청구범위의 사상 및 범주를 벗어나지 않고도 여기서 기재되고 도시된 기술 및 구조에 여러 가지 수정 및 변형을 행할 수 있다. 따라서, 여기서 설명되는 방법 및 장치는 단지 예시적인 것이며, 청구범위의 범위에 제한을 가하는 것이 아님을 이해하여야 한다.

Claims (20)

  1. 사용권한(permission)들에 기초하여 사용자 인터페이스를 모핑(morphing)하는 방법으로서,
    복수의 객체들을 표시하기 위한 디스플레이 폼들을 생성하는 단계(200);
    개별적인 객체들을 표시하기 위한 사용권한들을 획득하기 위하여 상기 객체들을 사용하는 단계(210);
    표시될 제1 객체에 대하여 사용권한이 수신되면, 표시될 객체들의 리스트에 상기 제1 객체를 추가하는 단계(220);
    표시될 제1 객체에 대하여 사용권한이 수신되지 않으면, 표시될 객체들의 리스트에 상기 제1 객체를 추가하는 것을 억제하는 단계(220); 및
    표시될 상기 객체들의 리스트에 상기 객체들을 표시하는 모핑된 디스플레이 폼을 생성하는 단계(230)
    를 포함하는 사용자 인터페이스를 모핑하기 위한 방법.
  2. 제1항에 있어서,
    상기 객체는 컨트롤 객체인(200), 사용자 인터페이스를 모핑하기 위한 방법.
  3. 제1항에 있어서,
    상기 객체는 메타데이터를 포함하고, 상기 사용권한들이 상기 메타데이터에 저장되는(430), 사용자 인터페이스를 모핑하기 위한 방법.
  4. 제1항에 있어서,
    상기 객체로부터 상기 메타데이터를 추출하는 단계(430)를 더 포함하는, 사용자 인터페이스를 모핑하기 위한 방법.
  5. 제4항에 있어서,
    상기 메타데이터를 추출하는 단계는, 사용자가 어떤 표들에 대하여 액세스 권한을 갖는지를 특정하는 라이센스 정보가, 사용자가 액세스 권한을 갖지 않아야 하는 폼들 및 필드들을 찾는 데 사용될 수 있도록, 다른 관련된 표들 및 폼들에 필드들을 연결하는 단계(430)를 더 포함하는, 사용자 인터페이스를 모핑하기 위한 방법.
  6. 제1항에 있어서,
    폼들에 대한 임의의 컨트롤들 간의 관계를 표들로 분석하기 위하여 코드 분석기를 사용하고,
    컨트롤이 사용자가 사용권한을 갖지 않는 표에 액세스하는 경우에만, 상기 코드 분석기가 그 컨트롤을 제거하는 단계(450)를 더 포함하는, 사용자 인터페이스를 모핑하기 위한 방법.
  7. 제1항에 있어서,
    라이센스가 제2 객체에 대하여 이용가능한지 여부를 판정하고,
    상기 제2 객체에 대한 라이센스가 이용가능하면, 표시될 객체들의 리스트에 상기 제2 객체를 추가하는 단계(330)를 더 포함하는, 사용자 인터페이스를 모핑하기 위한 방법.
  8. 제1항에 있어서,
    런타임시에, 상기 폼들을 생성하는 단계(360)를 더 포함하는, 사용자 인터페이스를 모핑하기 위한 방법.
  9. 제1항에 있어서,
    복수의 폼들을 생성하고, 상기 사용권한들에 기초하여 상기 복수의 폼들 중 하나의 폼을 표시하는 단계(360)를 더 포함하는, 사용자 인터페이스를 모핑하기 위한 방법.
  10. 제1항에 있어서,
    객체가 라이센스가 존재하지 않는 표를 사용하는지 여부를 판정하기 위하여 코드를 분석하고, 라이센스가 존재하지 않으면, 상기 객체를 제거하는 단계(330)를 더 포함하는, 사용자 인터페이스를 모핑하기 위한 방법.
  11. 제1항에 있어서,
    프로그램 그래뉼(granule)들로 로드하고, 상기 그래뉼들 내의 객체들이 필요한지 여부를 분석하고, 모핑된 폼들을 생성하는(330), 사용자 인터페이스를 모핑하기 위한 방법.
  12. 사용권한들에 기초하여 사용자 인터페이스를 모핑하기 위한 컴퓨터 실행가능 코드를 저장하는 컴퓨터 판독가능 매체로서,
    복수의 객체들을 표시하기 위한 디스플레이 폼들을 생성하는(200) 컴퓨터 실행가능 코드 - 객체는 메타데이터(430)를 포함하고, 상기 사용권한들이 상기 메타데이터(430)에 저장됨 - ;
    개별적인 객체들을 표시하기 위한 사용권한들을 획득하는 데 상기 객체들을 사용하는(210) 컴퓨터 실행가능 코드;
    표시될 제1 객체에 대하여 사용권한이 수신되면, 표시될 객체들의 리스트에 상기 제1 객체를 추가하는(220) 컴퓨터 실행가능 코드;
    표시될 제1 객체에 대하여 사용권한이 수신되지 않으면, 표시될 객체들의 리스트에 상기 제1 객체를 추가하는 것을 억제하는(220) 컴퓨터 실행가능 코드; 및
    표시될 상기 객체들의 리스트에 상기 객체들을 표시하는 모핑된 디스플레이 폼을 생성하는(230) 컴퓨터 실행가능 코드
    를 포함하는 컴퓨터 판독가능 매체.
  13. 제12항에 있어서,
    상기 객체로부터 상기 메타데이터를 추출하기 위한(430) 컴퓨터 실행가능 코드를 더 포함하는 컴퓨터 판독가능 매체.
  14. 제13항에 있어서,
    상기 메타데이터를 추출하기 위한(430) 컴퓨터 실행가능 코드는, 사용자가 어떤 표들에 대하여 액세스 권한을 갖는 지를 특정하는 라이센스 정보가, 사용자가 액세스 권한을 갖지 않아야 하는 폼들 및 필드들을 찾는 데 사용될 수 있도록, 다른 관련된 표들 및 폼들에 필드들을 연결하는 컴퓨터 실행가능 코드를 더 포함하는 컴퓨터 판독가능 매체.
  15. 제12항에 있어서,
    폼들에 대한 임의의 컨트롤들 간의 관계를 표들로 분석하고, 컨트롤이 사용자가 사용권한을 갖지 않는 표에 액세스하는 경우에만, 상기 컨트롤을 제거하기 위한(450) 컴퓨터 실행가능 코드를 더 포함하는 컴퓨터 판독가능 매체.
  16. 제12항에 있어서,
    라이센스가 제2 객체에 대하여 이용가능한지 여부를 판정하고, 상기 제2 객체에 대한 라이센스가 이용가능하면, 표시될 객체들의 리스트에 상기 제2 객체를 추가하는(330) 컴퓨터 실행가능 코드를 더 포함하는 컴퓨터 판독가능 매체.
  17. 컴퓨터 시스템으로서,
    프로세서(120),
    메모리(130) 및
    입출력 장치(133)
    를 포함하며,
    상기 프로세서(120)는 컴퓨터 실행가능 명령어들을 실행할 수 있고,
    상기 메모리(130)는 컴퓨터 실행가능 명령어들을 저장할 수 있으며,
    상기 프로세서(120)는 복수의 객체들을 표시하기 위한 디스플레이 폼들을 생성하는 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있고, 객체는 메타데이터를 포함하고 사용 권한이 상기 메타데이터에 저장되어 있으며,
    상기 프로세서(120)는 개별적인 객체들을 표시하기 위한 사용권한들을 획득하기 위하여 상기 객체들을 사용하는(210) 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있고,
    상기 프로세서(120)는, 표시될 제1 객체에 대하여 사용권한이 수신되면, 표시될 객체들의 리스트에 상기 제1 객체를 추가하는(210) 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있고,
    상기 프로세서(120)는, 표시될 제1 객체에 대하여 사용권한이 수신되지 않으면, 표시될 객체들의 리스트에 상기 제1 객체를 추가하는 것을 억제하는(220) 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있고,
    상기 프로세서(120)는 표시될 상기 객체들의 리스트에 상기 객체들을 표시하는 모핑된 디스플레이 폼을 생성하는(230) 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있는 컴퓨터 시스템.
  18. 제17항에 있어서,
    상기 프로세서가 상기 메타데이터(430)를 추출하기 위한 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있는 경우에, 상기 객체로부터 상기 메타데이터를 추출하기 위한 컴퓨터 실행가능 코드는,
    상기 프로세서(120)가, 사용자가 어떤 표들에 대하여 액세스 권한을 갖는 지를 특정하는 라이센스 정보가, 사용자가 액세스 권한을 갖지 않아야 하는 폼들 및 필드들을 찾는 데 사용될 수 있도록, 다른 관련된 표들 및 폼들에 필드들을 연결하는(430) 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있는 것을 더 포함하는 컴퓨터 시스템.
  19. 제17항에 있어서,
    상기 프로세서(120)가, 폼들에 대한 임의의 컨트롤들 간의 관계를 표들로 분석하고, 컨트롤이 사용자가 사용권한을 갖지 않는 표에 액세스하는 경우에만, 그 컨트롤을 제거하기 위한(450) 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있는 것을 더 포함하는 컴퓨터 시스템.
  20. 제17항에 있어서,
    상기 프로세서(120)가, 라이센스가 제2 객체에 대하여 이용가능한지 여부를 판정하고, 상기 제2 객체에 대한 라이센스가 이용가능하면, 표시될 상기 객체들의 리스트에 상기 제2 객체를 추가하는(330) 컴퓨터 실행가능 코드를 실행하도록 프로그래밍되어 있는 것을 더 포함하는 컴퓨터 시스템.
KR1020087024408A 2006-04-07 2007-01-29 사용권한들에 기초하여 사용자 인터페이스를 모핑하는 방법, 이를 위한 컴퓨터 실행가능 코드를 포함하는 컴퓨터 판독가능 매체 및 컴퓨터 시스템 KR20080109828A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/400,513 2006-04-07
US11/400,513 US20070239653A1 (en) 2006-04-07 2006-04-07 User interface morph based on permissions

Publications (1)

Publication Number Publication Date
KR20080109828A true KR20080109828A (ko) 2008-12-17

Family

ID=38576691

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087024408A KR20080109828A (ko) 2006-04-07 2007-01-29 사용권한들에 기초하여 사용자 인터페이스를 모핑하는 방법, 이를 위한 컴퓨터 실행가능 코드를 포함하는 컴퓨터 판독가능 매체 및 컴퓨터 시스템

Country Status (7)

Country Link
US (1) US20070239653A1 (ko)
EP (1) EP2013697A4 (ko)
KR (1) KR20080109828A (ko)
CN (1) CN101416143A (ko)
BR (1) BRPI0709017A2 (ko)
RU (1) RU2008139610A (ko)
WO (1) WO2007117349A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332746B2 (en) * 2008-06-26 2012-12-11 Microsoft Corporation Transformation of physical and logical layout forms to logical layout pages
US10169599B2 (en) * 2009-08-26 2019-01-01 International Business Machines Corporation Data access control with flexible data disclosure
US9224007B2 (en) * 2009-09-15 2015-12-29 International Business Machines Corporation Search engine with privacy protection
US8839186B2 (en) * 2009-11-05 2014-09-16 Sap Ag Entity morphing in metamodel-based tools
US9600134B2 (en) 2009-12-29 2017-03-21 International Business Machines Corporation Selecting portions of computer-accessible documents for post-selection processing
US20110202384A1 (en) * 2010-02-17 2011-08-18 Rabstejnek Wayne S Enterprise Rendering Platform
US9195853B2 (en) 2012-01-15 2015-11-24 International Business Machines Corporation Automated document redaction
US9892278B2 (en) 2012-11-14 2018-02-13 International Business Machines Corporation Focused personal identifying information redaction
WO2014142830A1 (en) * 2013-03-13 2014-09-18 Unify Gmbh & Co. Kg Method, device, and system for communicating a changeability attribute
US8955148B1 (en) 2013-10-18 2015-02-10 GB & Smith SARL Matrix security management system for managing user accounts and security settings
CN110187934B (zh) * 2019-05-29 2022-06-28 柴森森 应用控制方法、终端及计算机可读存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381526A (en) * 1992-09-11 1995-01-10 Eastman Kodak Company Method and apparatus for storing and retrieving generalized image data
US5812995A (en) * 1993-10-14 1998-09-22 Matsushita Electric Industrial Co., Ltd. Electronic document filing system for registering and retrieving a plurality of documents
US6029145A (en) * 1997-01-06 2000-02-22 Isogon Corporation Software license verification process and apparatus
US6539388B1 (en) * 1997-10-22 2003-03-25 Kabushika Kaisha Toshiba Object-oriented data storage and retrieval system using index table
US6509913B2 (en) * 1998-04-30 2003-01-21 Openwave Systems Inc. Configurable man-machine interface
US6697824B1 (en) * 1999-08-31 2004-02-24 Accenture Llp Relationship management in an E-commerce application framework
US7080037B2 (en) * 1999-09-28 2006-07-18 Chameleon Network Inc. Portable electronic authorization system and method
US6985955B2 (en) * 2001-01-29 2006-01-10 International Business Machines Corporation System and method for provisioning resources to users based on roles, organizational information, attributes and third-party information or authorizations
US20050091191A1 (en) * 2003-09-24 2005-04-28 Greg Miller System and method for managing and utilizing information
US20050240857A1 (en) 2004-04-02 2005-10-27 Jason Benedict Methods and systems of information portal construction

Also Published As

Publication number Publication date
EP2013697A1 (en) 2009-01-14
CN101416143A (zh) 2009-04-22
BRPI0709017A2 (pt) 2011-06-21
EP2013697A4 (en) 2011-01-26
RU2008139610A (ru) 2010-04-20
US20070239653A1 (en) 2007-10-11
WO2007117349A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
KR20080109828A (ko) 사용권한들에 기초하여 사용자 인터페이스를 모핑하는 방법, 이를 위한 컴퓨터 실행가능 코드를 포함하는 컴퓨터 판독가능 매체 및 컴퓨터 시스템
US7865873B1 (en) Browser-based system and method for defining and manipulating expressions
US20100262577A1 (en) Method and system for automated security access policy for a document management system
US20140013297A1 (en) Query-Based Software System Design Representation
Wightman et al. Snipmatch: Using source code context to enhance snippet retrieval and parameterization
US20090055799A1 (en) System and method for source code sectional locking for improved management
CA2684822A1 (en) Data transformation based on a technical design document
JP2006178944A (ja) 文書を表すファイル・フォーマット、その方法、およびコンピュータ・プログラム製品
US8359568B2 (en) Method and system for automatically adding generic change log to legacy application
JP4777459B2 (ja) コンテンツ管理システム用のセキュリティアーキテクチャ
US9613089B2 (en) Form template refactoring
US8032858B2 (en) Method and system for navigationally displaying HTTP session entry and exit points
US20150161090A1 (en) Analyzing document content and generating an appendix
US8359658B2 (en) Secure authoring and execution of user-entered database programming
Weisinger Alfresco 3 Records Management
de Lima Salgado et al. Six usable privacy heuristics
US20060136438A1 (en) Process server array for processing documents and document components and a method related thereto
US20140129934A1 (en) Dynamic model-based management tooling
US20140129532A1 (en) Packaging, storing and distributing guidance packages
Babur et al. Language usage analysis for EMF metamodels on GitHub
Schulman Managing your patients' data in the neonatal and pediatric ICU: an introduction to databases and statistical analysis
Sudarsan et al. Metamodel search: Using XPath to search domain-specific models
Hartel et al. Enhancing quality of retrieval through concept edit history
US7478378B2 (en) Semantically consistent adaptation of software applications
Wittek et al. XML processing in the cloud: large-scale digital preservation in small institutions

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid