KR100318977B1 - 유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 방법, 장치 및 그 컴퓨터 프로그램 제품 - Google Patents

유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 방법, 장치 및 그 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR100318977B1
KR100318977B1 KR1019990013242A KR19990013242A KR100318977B1 KR 100318977 B1 KR100318977 B1 KR 100318977B1 KR 1019990013242 A KR1019990013242 A KR 1019990013242A KR 19990013242 A KR19990013242 A KR 19990013242A KR 100318977 B1 KR100318977 B1 KR 100318977B1
Authority
KR
South Korea
Prior art keywords
user
execution environment
application
group
context
Prior art date
Application number
KR1019990013242A
Other languages
English (en)
Other versions
KR19990087923A (ko
Inventor
헤이즈켄트필모어주니어
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US09/072,877 priority Critical patent/US6205476B1/en
Priority to US09/072,877 priority
Priority to US9/072,877 priority
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR19990087923A publication Critical patent/KR19990087923A/ko
Application granted granted Critical
Publication of KR100318977B1 publication Critical patent/KR100318977B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Abstract

본 발명은 서버와 복수의 유저 스테이션을 상호 연결하는 네트워크 시스템에 관한 것이다. 본 시스템에서는, 관리자가 유저 애플리케이션을 구성할 수 있도록, 관리자 컨택스트가 아니라 유저 또는 유저 그룹의 컨택스트에서 직접 애플리케이션을 실행시키게 된다. 즉, 애플리케이션을 실행시키고, 애플리케이션을 구성할 목적으로 애플리케이션이 제공하는 옵션을 사용하여 애플리케이션을 구성한 다음, 그 구성을 실제 유저 또는 그룹이 애플리케이션을 실행하고 있는 애플리케이션으로 저장함으로써, 애플리케이션의 구성을 달성하는 것이다.

Description

유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 방법, 장치 및 그 컴퓨터 프로그램 제품{CLIENT-SERVER SYSTEMS WITH CENTRAL APPLICATION MANAGEMENT ALLOWING AN ADMINISTRATOR TO CONFIGURE END USER APPLICATIONS BY EXECUTING THEM IN THE CONTEXT OF USERS AND GROUPS}

본 발명은 일반적으로 퍼스날 컴퓨팅 및 네트워킹 분야에 관한 것이다. 특히, 네트워크 컴퓨팅에서 새롭게 발전하는 분야에 관한 것으로, 데스크탑 컴퓨터 유저가 퍼스날 컴퓨터를 사용하여 가능하다면 디스크 없이 통합 인트라넷, 인터넷과 같은 네트워크나 인터넷 서비스 프로바이더(ISP)에 접속하여 애플리케이션에 접근한 다음 그것을 데스크탑 컴퓨터에서 실행시키는 기술 분야에 대한 것이다. 더욱이, 본 발명은 서버에서 검색하고 데스크탑 컴퓨터에서 실행하는 소프트웨어에 대한 소프트웨어 실행 환경(구성 데이터)을 저장하는 서버-기반 기억 장치에 관한 것이다.

네트워크 컴퓨터 분야는 아직 발전의 초기 단계에 있다. 그러나, 여러 가지 이유로, 특히 통합 환경에서는 급속히 발전할 것으로 예측된다. 회사 및 개인 유저들이 하드웨어 및 소프트웨어의 업그레이드 시점에 도달하면, 종래의 방법에 따라 소프트웨어 애플리케이션을 디스크가 장착된 컴퓨터에 지역적으로 저장하고 관리하는 방법으로 업그레이드하는 것 보다는 이 새로운 분야의 기술을 이용하여 업그레이드 하는 것이 더 효과적이고 비용이 적게 들 것으로 예상된다. 예를 들면, 통합 환경에서 유저는, 가령 인터넷의 TCP/IP 그리고 HTTP 프로토콜을 사용하여 통합 인트라넷에 연결할 수 있고, 네트워크 서버의 소프트웨어 애플리케이션이 데스크탑 컴퓨터상에 직접적으로 필요할 때, 소프트웨어 애플리케이션을 다운로드할 수 있다. 애플리케이션이 유용한 작업을 수행하기 위하여 유저에 의해서 종래의 방법으로 데스크탑 상에서 실행된다. 이 구성의 장점은 네트워크 컴퓨터가 본질적으로 종래의 디스크 장착 컴퓨터보다 덜 비싸다는 것이다. 유저마다 소프트웨어의 개별적인 복사본을 구입하는 것보다, 필요한 수 만큼의 유저들의 소프트웨어 라이센스를 구매하는 것이 비용이 적게 든다. 확실히, 많은 수의 통합 유저들을 참석시키는 소프트웨어의 관리 문제는 실질적으로 감소할 것이다. 현재, 디스크 장착 컴퓨터 또는 워크스테이션의 각 유저는 흔히 효과적으로 그들 자신의 시스템 관리자 역할을 수행하고 있으나, 이 경우 전문 기술의 부족으로 과도한 자원을 종종 소모하게 된다. 많은 유저들이 소프트웨어 설치, 업그레이드 및 컴퓨터 관리 문제와 싸우기보다는 문제를 소수의 서버 관리 전문가에게 효과적으로 떠넘김(offload)으로써 이 문제를 해소하는 것이 큰 장점이 될 것으로 예측된다.

상기한 바와 같이, 퍼스날 컴퓨터의 이러한 미래의 전망은 아직 초기 단계에 있다. 결과적으로, 현존하는 시스템에는 아직 많은 문제와 결점들이 남아 있다.

일반적으로 네트워크 컴퓨터 시스템에서 관리자는 네트워크 서버에 저장되는 유저 프로파일(user profile)을 생성한다. 프로파일은 다른 형식의 정보를 포함할 수 있는데, 가령 유저의 데스크탑 컴퓨터의 실행 환경 및 서버에 내재하는 다른 소프트웨어 애플리케이션으로의 유저 별로 설정된 접속 허가와 같은 것들이다. 유저가 시스템에 로그 온 할 때, 유저는 자신의 ID를 서버에 입력하고, 서버는 유저의 프로파일을 찾아서 유저 컴퓨터로 그 프로파일을 전송한다. 그 프로파일은 컴퓨터를 구성하고 데스크탑을 생성하기 위해 사용된다. 데스크탑은 유저가 접속할 수 있는 애플리케이션을 표시하는 다수의 아이콘을 포함할 수 있다. 프로파일은 또한 컴퓨터 및 데스크탑의 다른 속성(attribute), 가령, 해당 유저 특유의 데스크탑 배경색, 또는 데스크탑에서 사용되는 캐릭터 폰트, 포인트 크기, 또는 데이터 파일 검색 경로 등을 포함한다. 프로파일은 유저가 변경할 수 있거나 변경할 수 없게 만들어질 수 있다.

유저가 그들 자신의 프로파일을 변경할 수 있는 환경에서, 변경된 프로파일은 로그-오프(log-off) 시에 서버로 다시 업로드되고(uploaded), 여기서 그것은 유저가 로그-온(log-on)하는 그 다음 번에 사용하기 위해 저장된다. 몇몇 종래 기술에서는, 우리가 아는 바로는 애플리케이션이 서버에 존재하는지와, 유저가 실제적으로 서버의 애플리케이션으로 접속할 수 있는 허가를 받았는지에 상관없이 유저가 그들의 데스크탑에 원하는 애플리케이션 아이콘의 구성을 만들 수 있다. 로터스 워크플레이스 데스크탑(Lotus Workplace Desktop, 이전에는 Kona Desktop으로 불리었음) 시스템은 이러한 형태의 동작에 대한 예이다. 다른 시스템에서 서버는 그것이 가지고 있는 모든 애플리케이션의 리스트를 유저에게 제공하는데, 여기서 유저는 필요한 것을 고를 수 있다. 이 경우에, 데스크탑에 포함시키기 위해서 리스트에서 선택한 애플리케이션에 대해 유저가 실제로 접속 허가를 가지고 있는지는 보장되지 않는다. 선 핫 자바 뷰 시스템(Sun Hot Java Views system)이 이 시스템 형식의 예이다. 다시 말해서, 종래 기술의 시스템은 유저가 데스크탑 애플리케이션 아이콘의 셋트를 구성할 수 있는 것과 유저가 실제적으로 접속 허가를 가지는 애플리케이션 사이에 연관 관계가 없었다. 그러한 경우에, 유저가 애플리케이션을 실행시키기 위해 아이콘을 클릭할 때, 접속 허가가 없다면, 에러 메시지가 발생할 수 있거나(가령 비인증 접속 메시지), 더욱 나쁜 경우에는 유저 컴퓨터가 다운될 수도 있다.

종래의 기술이 가지는 다른 한계는 유저, 유저 그룹, 단말기 및 단말기 그룹을 모델링 하기 위하여 플랫 데이터 구조(flat data structure)를 사용한다는 것이다. 예컨대, 데스크탑용 로터스 관리 장비(Lotus Administration Facility for Desktops), 마이크로 소프트 윈도우즈 NT 프로파일즈 앤드 폴리시즈(MIcrosoft Windows NT Profiles and Policies), 선 핫 자바 뷰즈(Sun Hot Java Views) 등과 같이 컴퓨터 자원에 대한 유저 접속을 관리하기 위해 일반적인 개념에 따라 모델화되어 있는 네트워크 컴퓨터 구현은 다양한 컨택스트의 소프트웨어 실행 환경(또는 속성)을 관리하기 위해 서버에 플랫 그룹 구조(flat group structure)를 구성한다. 여기서 사용되는 컨택스트(context)란 용어는 개별적인 유저, 유저 그룹, 단말기, 또는 단말기 그룹을 말한다. 서버의 소프트웨어 실행 환경을 관리하기 위한 어떤 그룹 구조는 관리자가 개별 유저 뿐만 아니라 다른 유저 그룹에 대한 실행 환경의 속성을 정의할 수 있게 한다. 그러나, 플랫 시스템은 많은 환경에서, 특히 다수의 유저를 가지는 환경에서 유연하지 않다. 실행 환경 정보의 조직을 지원하는 관리 도구를 계층적 구조(hierarchical structure)로 제공하는 것이 요구되고 있다.

종래의 시스템이 가지는 다른 한계는 관리자 또는 유저가 워크스테이션 데스크탑의 유저 구성을 하는데 있어서 제한적이라는 점이다. 예를 들면, 관리자 프로그램이 유저 애플리케이션과는 독립적이나, 연관이 있는 구성 프로그램을 사용하여 유저 실행 환경을 구성할 것을 필요로 한다. 공급자(vendor)는 오직 하나의 애플리케이션을 제공하는 것이 바람직하다. 공급자로부터 엔드 유저 애플리케이션(end user application)만을 요구하는 것은 중앙 관리자가 유저 또는 유저 그룹의 컨택스트에서 엔드 유저 애플리케이션을 실행시킬 수 있는 것을 필요로 한다. 종래 기술은 동작에 있어서, 이러한 관리의 유연성을 허용하지 않고 있다. 다시 말해서, 종래 기술에 따른 최적의 기술을 보더라도, 관리자는 그 유저 및 애플리케이션에 대한 실행 환경을 셋트하기 위하여 유저의 컨택스트에서 유저 애플리케이션을 작동시킬 능력을 가지고 있지 않다는 것이다. 더욱이, 종래 기술에서는 관리자가 유저 그룹의 컨택스트에서 실행 환경을 셋트하기 위하여 유저 애플리케이션을 작동시킬 수 없었다.

본 발명자들에게 알려진 종래 기술의 또 다른 한계는, 종래 기술에서는 다른 애플리케이션과 관련된 유저 실행 환경을 저장하기 위해 서버 영구 저장 공간을 분할하여 하나의 고유한 공간을 확보한다는 점이다. 본 발명자들이 아는 바에 따르면, 객체를 다른 클래스들로부터 유일하게 확인하고 구별하도록 완전 보장된 클래스 이름으로 객체를 질의할 수 있는 객체 지향 시스템에서, 다른 애플리케이션의 실행 환경 정보가 저장 장치에서 충돌하는 것을 방지하는 문제는, 제1 권한으로 중앙 컴퓨터가 공급자를 유일하게 지정하고, 제2 권한으로 공급자측 컴퓨터가 각 공급자 애플리케이션에 대한 상기 제1 지정과 관련하여 제2 지정을 함으로써 해결된다. 예를 들면, 제1 권한에 의하여 공급자 A가 지정 공급자A로 할당되고, 그 지정은 제1 권한이 작동하는 구조 내에서 고유한 것으로 보장된다. 그리고, 공급자 A의 제2 권한은 그 구조 내에서 그것의 각 애플리케이션에 대하여 제2 지정을 한다. 예를 들면, 공급자 A의 애플리케이션들 중 하나가 지정-공급자A.App1로 지정될 수 있고; 다른 것이 공급자A.App2로 지정될 수 있다. 종래 기술은, 다른 애플리케이션에 대한 실행 환경 데이터가 기억 장치에서 서로 충돌하지 않도록 하기 위해서, 시스템의 각 애플리케이션을 시스템의 영구 기억 장치의 한 위치에 유일하게 저장하도록 맵핑(map)한다. 실행 중인 애플리케이션이 네트워크 컴퓨터 서버에게 그것의 고유 기억 장치의 위치를 통보하면, 다른 컨택스트의 실행 환경 정보와 충돌하지 않으면서 그 실행 환경 정보를 저장하기 위하여 컨택스트(유저, 유저 그룹, 단말기 또는 단말기 그룹)에 따른 시작 위치의 구역을 분할하는 것은 서버의 책임이다. 명백히, 위와 같이 기억 장치의 공간을 관리하는 방법은 부적절하고 바람직하지 않다. 실행 환경 정보의 기억 장치에서의 충돌을 방지할 목적으로 중앙 권한이 고유 지정을 할당토록 하는 것에 의존하지 않고, 또한 저장 위치 정보를 애플리케이션에 코딩하지 않고서도 전술한 객체 지향 애플리케이션에 대한 실행 환경 정보를 저장하기 위해 독특한 저장 위치를 자동적으로 발생시키는 방법을 고안할 필요가 있다.

종래 기술의 또 다른 제한은, 현재 하드웨어 및 애플리케이션에 변화를 주지 않고서 현재의 애플리케이션 및 하드웨어를 중앙 관리 네트워크 컴퓨팅 세계의 새로운 환경으로 변환시키기에는 아직 준비가 부족하다는 점이다. 네트워크 환경에서, 예를 들면 단말기와 같은 현재 하드웨어는 부트-업(boot-up) 시간에 서버에 위치한 특정 포맷의 파일로부터 그것의 구성 정보를 취한다. 단말기는 그 구성 파일에 대한 접속 방법을 알도록 프로그램 된다. 단말기는 서버로부터의 파일에 접속하기 위해서 고유한 확인자(identifier)를 사용한다. 고유 확인자는 종종 단말기의 매체 접속 제어(media access control:MAC) 어드레스이다. 그러나 단말기는 그것의 설계와는 다른 프로토콜 및 API's를 포함하는 새로운 중앙 관리 환경에서는 새로운 환경의 실행 환경 정보에 접속할 수 없고, 그것이 설계된 방법으로만 그것의 구성 파일에 접속할 수 있다. 이런 방식으로 현재 사용되는 디바이스가 많기 때문에 이 문제는 심각하다. 새로운 시스템에서 그것들을 사용할 수 없다는 점이, 유저들이 새로운 시스템으로 변경하는데 방해가 되고 있다.

종래 기술의 또 다른 제한은 관리자와 구성 관리 시스템 사이에서의 인터페이스와 관련이 있다. 여러 유저, 유저 그룹들, 그리고 단말기들, 단말기 그룹들에 대한 실행 환경 정보를 구성하기 위한 관리자 설비 내에 소프트웨어를 구성할 때, 관리 소프트웨어는 그 장치를 작동시키고 있는 관리자에 의하여 셋트된 컨택스트(유저, 유저 그룹, 단말기 또는 단말기 그룹)에서 시작한다. 관리자가 실행 중인 애플리케이션의 컨택스트를 변경할 때, 그 애플리케이션은 새로운 컨택스트에 대한 구성 정보를 로드하기 위해 재 시작될 필요가 있다. 컨택스트가 변경될 때마다 소프트웨어를 재 시작하는 프로세스는 특히 많은 유저를 가진 시스템에서 시간 소비적이고 관리자를 위해서 편리하지 않다. 그러한 시스템에서, 애플리케이션을 구성하는 동안, 관리자가 여러 번 컨택스트를 변경할 것이 예측된다.

본 발명은 클라이언트-서버 환경에서 유저 및 애플릿에 관한 구성 정보를 공통적으로 저장하는 기술에 관한 것이다. 이것을 클라이언트 프로파일 관리라고 한다. 유저는 본 발명의 시스템을 이용하여 로밍, 즉 언제 어느 컴퓨터에서든 로그-인을 해서 실행시 자동적으로 서버에 저장된 유저 실행 환경을 구성할 수 있다. 바람직한 실시예는 자바(JAVA는 Sun Inc.의 상표) 기반 시스템이고, 클라이언트 컴퓨터는 자바 애플리케이션(application)을 실행시킬 수 있는 웹 브라우저 인터페이스(Web browser interface)를 사용한다. 따라서, 바람직한 실시예에서, 유저 애플릿 및 데스크탑 애플릿을 자바 애플릿인 것으로 가정한다. 그러나, 본 발명을 자바 환경으로 제한하는 것은 아니다. 지역적으로 저장된 애플리케이션에 대한 실행 환경은 종래처럼 지역적으로 저장될 수 있고, 서버-기반 애플릿의 실행 환경은 본 명세서에서 기재하는 방법으로 처리될 수 있다.

도1은 본 발명에 따라 관리자 스테이션을 포함하는 네트워크 및 유저 스테이션을 나타내는 도면.

도2는 서버와 통신하는 관리자 스테이션과, 중앙 프로파일 관리 및 실행 환경 관리를 제공하는 관리자 스테이션 및 서버의 구성 요소를 블록도 형태로 나타낸 도면.

도3은 시스템의 유저 그룹 및 유저의 계층 구조를 나타내는 도면. 이 계층 구조는 개별적인 단말기와 단말기 그룹을 포함할 수 있으나; 이것들은 설명의 간단하게 하기 위하여 생략하였다.

도4는 유저와 그 유저가 실행하는 특정한 애플리케이션에 적용하도록, 도3의 계층 구조에서 실행 환경의 셋트를 결정하는데 사용되는 개별적인 유저와 그 그룹 우선 순위의 리스트를 나타내는 도면.

도5는 도2의 관리자 스테이션 및 서버의 상세도.

도6은 유저 단말기로 애플리케이션을 실행시키는 동안 유저 실행 환경을 형성하기 위하여 상호 협동하는, 유저 애플리케이션과, 그 애플리케이션과 다른 구성 요소 사이의 API를 포함하는, 유저 단말기에서 소프트웨어 객체를 나타내는 도면.

도7 내지 도8은 유저 단말기의 데스크탑 실행 환경을 포함하여, 유저 로그-온과 유저 데스크탑의 초기 구축을 위하여 유저 단말기와 서버 2가지 모두의 동작을 나타내는 도면.

도9 내지 도11은 관리자 유저 로그-온, 관리자 데스크탑의 구축 및 보기의 방법에 따른 애플리케이션과 컨택스트 구성의 선택을 위하여, 관리자 단말기 및 서버 2가지 모두의 동작을 나타내는 도면; 상기 보기는 유저 데스크탑을 구성하는 동안 컨택스트의 변화와 결과적인 동작을 설명한다.

도12 내지 도24는 보기에 나타낸 도3의 계층 구조의 구축, 유저의 생성 및 삭제, 애플리케이션에 대한 애플리케이션 실행 환경의 형성 및 실행 환경을 형성하는 동안 컨택스트 변경을 포함하여, 애플리케이션 관리의 여러 단계에서 여러 형태의 실제 관리자 화면 스냅샷(snapshot)을 나타내는 도면.

* 도면의 주요 부분에 대한 설명

506 프로파일 매니저(profile manager)

510 프로파일 관리 특성 P(profile management properties P)

512 이벤트 리스너(event listener)

514 프로파일 매니저 서블렛(profile manager servlet)

518 웹 서버(Web server)

520 익스포트 에이전트(Export Agent)

108 관리자(Administrator)

본 명세서에서 기재하는 시스템은 클라이언트-서버 환경의 모든 유저 및 애플릿에 대한 구성 정보를 공통적으로 저장하는 것을 제공한다. 이것을 클라이언트 프로파일 관리라고 한다. 시스템은, 유저가 로밍, 즉 언제라도 시스템의 어느 컴퓨터에서든지 로그-인해서 실행시에 자동적으로 구성할 수 있도록 한다. 바람직한 실시예는 자바(Java는 Sun Inc.의 상표임) 기반 시스템이고, 클라이언트 컴퓨터는 자바 프로그램을 실행시키기 위한 웹 브라우저 인터페이스를 사용한다.

용어 애플릿(applet) 및 서블렛(servlet)은 자바 프로그램 언어 기술 분야에서 일반적으로 사용되는 용어로서, 그 용어들이 당업자에게 위 프로그램 언어로 이해하게 될 것이기 때문에 본 명세서에서는 그것을 그 의미로 사용하기로 한다. 애플릿(applet)은 자바 가능 웹 브라우저에서 작동하는 독립적인 소프트웨어 모듈을 말한다. 서블렛은 자바 가능 웹 서버에 상주하는 소프트웨어 모듈을 말한다. 본 명세서에서 사용하는 용어 애플릿과 서블렛이 어떤 식으로든 본 발명의 범위를 제한하는 것으로 이해되어서는 아니된다. 명확한 설명을 위해서, 구문 구성 애플릿(configuration applet)은 본 명세서에서 워드 프로세서, 데이터 베이스 매니저 등과 같은 엔드 유저 소프트웨어 애플리케이션에 대한 실행 환경을 구성하기 위해 사용되는 소프트웨어 모듈을 말한다. 소프트웨어 애플리케이션 역시 자바 환경에서는 애플릿이므로, 구문 유저 애플릿 또는 그냥 애플릿은 엔드 유저 애플리케이션을 말한다.

바람직한 실시예에서, 유저 애플릿 및 데스크탑 애플릿은 자바 애플릿이라고 가정한다. 그러나, 본 발명이 자바 환경으로 제한되지는 않는다. 본 발명은 어떠한 클라이언트-서버 시스템에서도 사용될 수 있다. 예를 들면, 어떤 경우 시스템은 독점적인 통신 프로토콜과 소정의 프로그램 언어로 작성되고 컴파일되는 애플리케이션에 사용하도록 설계될 수 있다. 더욱이, 바람직한 자바 기반 환경에서도, 디스크 -기반(disk-based) 컴퓨터는 몇개의 애플리케이션에 지역적으로 접근할 수 있고, 서버의 다른 애플릿에 접속할 수 있다. 지역적으로 저장된 애플리케이션에 대한 실행 환경이 종래의 방법으로 지역적으로 저장될 수 있는 반면, 서버-기반(server-based) 애플릿에 대한 실행 환경은 본 명세서에서 기재하는 방법에 따라 처리될 수 있다. 그러나, 바람직하게는, 지역적으로 저장된 애플리케이션에 대한 실행 환경은 본 명세서에서 기재하는 서버 기반 애플릿에 대한 실행 환경과 함께 프로파일 관리 특성 API( Profile Management Properties API)를 사용하여 서버에 저장된다.

단순 애플리케이션 프로그램 인터페이스(API)는, 애플릿이 유저 또는 관리자에 의하여 실행될 때, API에 기록된 애플릿이 실행 환경 데이터를 용이하게 저장 및 검색할 수 있도록 한다. 애플릿 허가 및 유저 실행 환경은 그룹 구성원과 개인 사용자에 기초하여 정의될 수 있다.

클라이언트 프로파일 관리는 아래의 서비스를 포함한다;

로그-온 지원 - 유저 프로파일로 맵핑(mapping);

유저 지원 - 유저 ID를 생성하고 유저에게 서비스 및 실행 환경을 직접 제공하는 관리 능력;

유저 그룹 지원 - 유저의 계층 그룹을 생성하고 그룹 구성원에 기반한 서비스 및 실행 환경을 제공하는 관리 능력;

유저 애플릿 컨택스트의 자동 결정 - 유저 애플릿 실행의 컨택스트를 자동적으로 결정. 즉, 유저 애플릿을 실행시키고 프로파일 환경을 자동적으로 구축하는 유저 및/또는 그룹 프로파일의 결정;

유저 애플릿 실행 환경 저장 - 유저 애플릿 구성 데이터에 대한 컨택스트-감지(context-sensitive) 서버 저장;

동적 유저 애플릿 실행 환경 상속(inheritance) - 상속이라는 객체 지향의 원리에 의하여 유저 애플릿 실행 환경의 계층적 로드-타임(load-time) 조직화; 및

유저 애플릿 접속 제어 - 그룹 디폴트 구성원 특권에 기반한 유저 애플릿 실행의 제어. 관리자는 디폴트 그룹 특권을 무시할 수 있고 개별적인 유저를 위한 추가적인 접속 특권을 허가하거나 또는 불가할 수 있다.

프로파일 관리는 이 일들이 수행되는 프레임워크를 제공한다. 어떤 일들은, 예컨대 유저/그룹 관리, 애플릿 리스트, 컨택스트 전환, 실행 환경 상속 등과 같이 프로파일 관리에 의하여 직접 지원되는 반면, 유저 애플릿에 특수한 구성 서비스는 일반적으로 클라이언트 프로파일 관리 환경의 시스템 관리자가 불러온 개별적인 구성 애플릿에 의하여 지원된다. 어떤 엔드 유저 애플릿은 엔드 유저 애플릿의 일부로서 구성 능력을 제공할 수 있다. 이 경우라면, 관리자는 그들 유저 및 그룹에 대한 실행 환경을 구성하기 위해 개별 유저 및 그룹 컨택스트에서 엔드 유저 애플릿(개별적인 구성 애플릿과 반대로)을 작동시킬 수 있다.

도 1은 본 발명을 실행하기 위한 바람직한 환경을 나타내는 1단계 도면이다. 네트워크(100)는 예컨대, 데스크탑 퍼스날 컴퓨터(102), 모바일 랩탑 컴퓨터(104), 워크스테이션(106)(예를 들면, RISC 컴퓨터), 관리자 스테이션(108) 및 서버(110)와 같은 복수의 유저 스테이션을 상호 연결한다. 일 실시예에서, 네트워크(100)는 근거리 지역 통신망(local area network:LAN)이 될 수 있다. 다른 실시예에서, 네트워크(100)는 지리적으로 이격되어 있는 사이트를 지니지만 하나의 시스템에 포함되는 회사와 같은 조직체에 대한 광역 통신망(wide area network:WAN)을 포함할 수 있다. 본 발명이 실시되는 환경을 제한할 의도는 없으며, 실제로 많은 형식의 스테이션을 상호 연결하는 어떠한 형식의 네트워크도 실현될 수 있다.

프로파일 업무 관리 운영 환경에 대한 1단계 다이어그램을 도 2에 도시한다. 관리자 클라이언트 네트워크 컴퓨터(200)를 도 2의 좌측에 도시하고 시스템에 대한 서버(202)를 도 2의 우측에 도시한다. 클라이언트 및 서버는 도면 부호(203)으로 표시된 네트워크(203)를 통해 서로 통신한다. 도 2의 특수한 예로서 클라이언트 컴퓨터가 시스템 관리자의 컴퓨터라고 가정한다.

클라이언트측 프로파일 매니저(206)는, 관리자가 유저 및 그룹 레벨 둘 다에서 유저 애플릿 실행 환경을 구성하는 것을 허용한다. 관리자는 새로운 유저 및 그룹 계층을 생성할 수 있고, 유저를 다른 그룹에 추가할 수 있으며, 각 그룹 및 개별적인 유저를 위하여 애플릿 허가 사항을 특정할 수 있다. 그리고, 관리자는 개별적인 유저 또는 그룹의 컨택스트에 애플릿을 구성할 수 있다. 관리자는 유저의 패스워드를 추가, 삭제 및 리셋시킬 수 있다. 프로파일 관리 지원은 일반적인 유저들에게 독립적이다. 관리자는 임의의 유저 또는 그룹의 컨택스트에서 프로파일 매니저 (206)를 불러올 수 있다. 오직 관리자만이 클라이언트(유저) 및 그룹을 관리하기 위하여 그/그녀의 컨택스트으로부터 변경시킬 수 있다. 서버는 관리 권한이 없는 유저가 컨택스트를 전환시키는 것을 허용하지 않을 것이다. 서버로 어떤 요청이 들어올 때, 서버는 그 기능에 접근하려고 하는 유저의 ID가 인증된 것인지를 질의하게 될 것이다. 만약, 유저가 관리 권한을 지니지 않는다면(즉, AllUsers.Administrator group의 구성원이 아니면), 프로파일 매니저 서블렛(214)은 그 요청을 불가할 것이다.

프로파일 매니저(206)는 도 2에 도시하는 애플릿1(208)과 같은 다른 애플릿을 불러온다. 이 실시예에서, 애플릿1은 유저 데스크탑과 관련된 실행 환경을 구성하기 위한 관리 애플릿이 될 수 있다. 또는, 애플릿1은 편집기, 워드 프로세서, 데이터베이스 등과 같은 엔드 유저 애플릿과 관련된 구성 유틸리티가 될 수 있다. 도면 부호(208)와 같은 구성 애플릿들은 그것과 대응하는 유저 애플릿으로부터 분리된 모듈로 존재하는 것이 바람직하지만, 꼭 그럴 필요는 없다. 도 2의 컨택스트에서, 애플릿1은 일반적으로 유저 애플릿에 대한 구성 애플릿이고, 관리자는 그룹 실행 환경 및 허가 디폴트를 설정하기 위한 그룹 컨택스트 하에서 구성 애플릿인 애플릿1을 실행시키거나, 개개인의 유저 애플릿 구성을 맞춤 제작하기 위한 유저 컨택스트에서 구성 애플릿인 애플릿1을 실행시킨다. 애플릿1을 그 유저 애플릿으로부터 분리된 모듈로서 실행시킴으로써, 성능을 개선시킬 수 있다. 왜냐하면, 구성 애플릿1은 유저 애플릿보다 통상 작기 때문이다. 또한, 분리된 구성 애플릿은, 관리자로 하여금 유저 애플릿을 구성하기 위해 엔드 유저의 능력을 제어할 수 있게 한다.

종래의 독립형(stand-alone) 컴퓨터는 그 유저 애플릿과 관련하여 유저 애플릿 구성 정보를 지역적으로 저장한다. 종래의 독립형 자바 기반 컴퓨터는 java.util.Properties 클래스에 의해 제공되는 포맷을 사용하여 유저 애플릿 구성 정보를 저장한다. 위 2가지 장치 모두, 유저 애플릿이 지역 파일의 이름을 특정하여 그 유저 애플릿과 관련된 구성 정보를 저장할 것을 필요로 한다. 다시 말해서, 컴퓨터와 그것에 장착된 유저 애플릿 사이에 관계가 요구된다는 것이다. 본 명세서에서 설명하는 프로파일 관리는 진정한 java.util.Properties 객체에 대하여 잘 알려진 기능을 제공하고, 유저-로밍 기능과 강력 관리자 프레임워크(프로파일 매니저)에 중단없이 접속할 수 있는 기능을 지원하는 부가 장치를 제공한다.

프로파일 관리 특성 P(210)는 애플릿1에 대한 특성 객체로서, 서버가 유저 및 그룹과의 컨택스트에서 애플릿1에 관한 구성 정보를 어디에 저장할 것인가를 결정하도록 하기 위하여 서버와 애플릿1 사이에 API를 제공한다. 프로파일 관리 특성 객체 클래스는 java.util.properties 클래스의 모든 기능을 제공할 수 있고, 나아가 영구 기억 장치로부터 소프트웨어에 관한 구성 정보를 생성, 저장 및 검색을 제공하는 능력을 제공한다. 그러한 정보를 중앙 위치에 저장함으로써 유저 및 그룹 구성의 관리가 가능해진다. 유저가 관리자의 역할을 할 때, 프로파일 관리 특성(210)은, 관리자가 구성 애플릿1에 대응하여 유저 애플릿을 구성하게 하거나, 애플릿1이 엔드 유저 애플릿이면 애플릿1을 구성하게 하고, 적절한 컨택스트에서 서버의 적절한 위치에 구성 정보를 저장하게 한다. 이것은 종래의 시스템과 같이 유저 애플릿과 컴퓨터 사이에 관계를 설정하는 것이 아니라, 유저 애플릿과 유저 사이에 관계를 설정하게 한다. 프로파일 관리 특성(210)은 java.util.Properties 클래스의 확장이다. 이러한 확장은 특성 객체 실행 환경 정보의 키/값(key/value)의 쌍이 java.util.Properties와 마찬가지로, 스트림과 반대로 키와 연관되게 한다. 이것은 다시, 애플리케이션 개발자가 파일 이름과 경로가 아니라 실행 환경 정보의 컨택스트과 관련하여 고유 위치를 특정하기 위해서 키를 사용할 수 있게 한다. 프로파일 관리 특성(210)은 키를 자동적으로 결정한다. 키의 발생은 도8 및 도9를 참조하여 이하 보다 상세하게 설명한다. java.util.Properties 클래스 다음에 프로파일 관리 특성(210)을 모델링함으로써, 시스템은 재귀적 클래스-디폴트 계산을 통해 실행 환경의 상속이라는 잇점을 활용할 수 있다. 따라서, 이 확장된 클래스는, 도 3을 참조하여 설명하는 바와 같이, 현재 컨택스트에서 개시하는 실행 환경을 축적하고, 디폴트에 대한 컨택스트 계층을 순회함으로써 그룹 디폴트(group default) 능력을 제공한다.

서버(202)는, 유저 및 그룹 실행 환경과 유저 애플릿 접속 허가와 같은, 유저 데이터 및 그룹 데이터를 저장하는 데이터베이스(212)를 포함한다. 웹 서버 (218)는 자바 애플릿을 지원하는 일반적인 웹 서버를 나타낸다. 프로파일 매니저 서블렛(214)은 유저와 그룹의 ID를 실행 환경 데이터에 맵(map)시킨다. 프로파일 매니저 서블렛(214)은 또한 서버의 애플리케이션으로 유저가 접속하는 것을 관리하기 위하여 접속 제어 리스트를 보유한다.

유저와 그룹 실행 환경은 도 3에 도시하는 바와 같이 트리(tree) 구조로 저장된다. 시스템의 모든 유저는 자동적으로 최상위 그룹 AllUsers에 속한다. 모든 유저는 AllUsers 그룹에 속하고; 이 그룹은 그 서버의 일부 또는 모든 유저 애플릿에 대하여 디폴트 실행 환경을 포함한다. 도 3에서, 서버가 App3, App4 및 App5로 식별된 적어도 3개의 유저 애플릿을 포함한다고 가정한다. AllUsers 그룹 내에 표시하고 있는 바와 같이, App3에 대한 배경색의 디폴트 값 BG= 파란색이다. 설명을 위하여 다른 실행 환경을 x, y 및 z로 표시한다. 그 디폴트 값은 각각 1, 2 및 3이다. 기호 x, y 및 z는 소정의 실행 환경을 나타내고, 그 디폴트 값 1, 2 및 3은 단지 설명을 위하여 임의로 정한 것이다. 예컨대, x 실행 환경은 데스크탑의 스크린 폰트(screen font)가 될 수 있고; 값 x=1은 타임스-로만(Times-Roman) 글자체의 디폴트 폰트를 호출하는 것이 될 수 있다. 마찬가지로, 모든 유저를 위한 App4의 디폴트 실행 환경은 BG= 회색, x=2, y=2, 그리고 z=2이다.

AllUsers 그룹의 디폴트 값은 소정의 방법으로 다른 유저 그룹과 개별적인 유저의 컨택스트과 같이 다른 컨택스트으로 변경될 수 있다. 실시예의 방법에서는, 도3에 도시하는 AllUsers의 컨택스트에, 4개의 다른 그룹(그룹X, 그룹Y, 그룹Y1 및 그룹Y2)이 추가되어 있다. 또한, 2개의 개별적인 유저1과 유저N이 도시되어 있다. 유저는 1개 그룹 이상의 구성원이 될 수 있다. 도3에서, 유저1은 AllUsers, 그룹X, 그룹Y1의 구성원이고; 유저N은 AllUsers 및 그룹Y2의 구성원이다. 유저가 1개 이상의 그룹(AllUsers에 추가된 다른 그룹)의 구성원이라면, 유저가 소정의 애플릿에 대한 실행 환경을 선택할 수 있도록 그룹의 우선 순위가 정해진다. 관리자는 유저를 위해 그룹 우선 순위를 구성한다. 그룹 우선 순위는 도4에서 설명하고 있다. 도4에서, 유저1은 Allusers의 전체 이름으로 식별되는 그룹X를 지닌다. 그룹X는 그 또는 그녀의 최우선 그룹이다. 유저1의 다음 차례의 우선 그룹은 그룹Y1 (AllUsers.그룹Y.그룹Y1)이다. 유저1의 최하위 우선 그룹은 AllUsers 그룹이다. 유저1이라고 하는 유저가 App3라고 하는 애플릿의 실행을 요청할 때, 유저가 속하는 그룹 또는 그룹들에 따라 도3의 트리 구조로부터 실행 환경이 조직되고, 그에 따라 유저 애플릿이 유저 데스크탑에 구성된다.

어떤 컨택스트에 실행 환경을 조직하는 1단계는 디폴트를 만드는 것이다. 유저를 위한 디폴트가 만약 있다면, 최우선 그룹으로부터 애플릿에 대한 실행 환경 정보를 입수할 수 있고, 그 최우선 그룹으로부터 애플릿에 대한 실행 환경 정보의 세트를 조직하게 된다. 그룹에 대한 디폴트가 만약 있다면, 모그룹(즉, AllUsers 그룹은 AllUsers.그룹X의 모그룹이다)으로부터 애플릿에 대한 실행 환경의 세트를 조직하게 된다. 그룹이 모그룹을 가지고 있지 않다면(즉, 최상위인 AllUsers 그룹이라면), 그 그룹에 대한 디폴트는 없다. 애플릿의 실행 환경을 하나의 컨택스트에 조직하기 위하여, 그 컨택스트에 명백하게 저장된 애플릿의 실행 환경이 그 컨택스트의 애플릿에 대한 디폴트 실행 환경을 덮어쓴다. 따라서, 하나의 그룹 컨택스트에 애플릿에 대한 실행 환경을 디폴트 세트로 조직하기 위하여, 각각의 그룹 노드로부터 AllUsers 그룹에 이르는 재귀적 호출을 만들어서, 애플릿에 대한 각각의 실행 환경 모세트를 요청한다. 아래 보기를 설명하기 위해 도3을 참조한다. 예컨대, 컨택스트가 AllUsers.그룹Y.그룹Y1이면, 그룹Y1의 모그룹인 그룹Y를 호출하여 애플릿에 대한 디폴트 실행 환경을 요청한다. 그룹Y1은 그룹Y의 모그룹인 AllUsers로 재귀적 호출을 한다. AllUsers는 모그룹을 갖지 않기 때문에, AllUsers는, 애플릿에 대한 실행 환경의 세트를 그룹Y의 호출로 복귀시킨다. 이러한 실행 환경 셋트는, 그룹Y에 저장된 애플릿의 실행 환경이 만약 있다면, 그것에 의하여 변경된다. 그것은 이제 그룹Y1의 컨택스트에 대한 애플릿의 실행 환경 디폴트 셋트가 된다. 이러한 디폴트의 실행 환경 셋트는, 그룹Y1에서 그룹Y로 재귀적 호출을 한 결과 그룹Y1으로 복귀된다. 그리고, 변경 요인이 있을 때에는 그룹Y1에서 애플릿의 실행 환경이 변경되고, 위 경우에 실제 사용될 실행 환경의 세트가 된다. 유저에 대한 실행 환경 정보를 입수할 수 있는 최우선 그룹이 디폴트를 입수하게 되는 그룹 컨택스트를 구축하기 위하여 처음으로 사용될 때를 제외하고는, 유저의 컨택스트에 대한 실행 환경 세트를 동일한 방법으로 만들게 된다. 상기한 재귀적 방법을 사용하여 유저에 대한 실제의 실행 환경 세트와 유저가 요청한 애플릿을 구축할 수 있다.

다음의 보기는 도3을 참조하여 상기 실행 환경의 조직화를 설명하고 있다.

보기 1 : 관리자는 그룹 AllUsers.그룹X의 실행 환경을 셋트하기 위해 App3에 대한 애플릿 구성을 실행한다.

AllUsers.그룹X의 컨택스트에서 App3에 대한 실행 환경을 셋트하기 위하여, 현재의 실행 환경 셋트가 결정되어야 한다. AllUsers.그룹X는 그것의 모그룹인 AllUsers에 대한 디폴트를 요청한다. AllUsers가 최상위 그룹이기 때문에, 그것은 App3에 대한 그 실행 환경을 그룹X로 복귀시킨다. 이것들이 그룹X의 컨택스트에서 App3에 대한 디폴트 실행 환경이 된다. 그룹X가 App3에 대한 실행 환경을 가지고 있지 않기 때문에, AllUsers로부터의 디폴트 셋트가 실제 사용될 실행 환경의 세트가 된다. 이 보기에서, AllUsers그룹으로부터의 실행 환경은 : BG=파란색, x=1, y=2, z=3이다. 관리자는, 조직된 실행 환경을 임의의 바람직한 방법으로 변경하여, 구성 애플릿의 용도를 변경시킬 수 있다.

보기 2 : 유저1은 com.ibm.App3의 실행을 요청한다. 실행 환경은, 유저1의 컨택스트에서 com.ibm.App3을 위해 조직되어야 한다.

도4는 유저1에 대한 최우선 그룹이 AllUsers.그룹X임을 나타내고; 그룹 계층의 이 브랜치를 App3에 속하는 실행 환경 정보를 위해 먼저 체크하게 된다. 여기에서, 유저의 워크스테이션에서 App3를 구성하기 위하여 실행 환경의 조직된 세트를 사용한다는 점을 제외하고는, 이 보기 2는 상기 보기 1의 방법과 기본적으로 동일하다. App3에 대한 User1의 컨택스트에 저장된 실행 환경 BG=녹색이 실행 환경 트리의 브랜치인 AllUsers.그룹X로부터 입수하게 되는 디폴트 BG=파란색 보다 우선하기 때문에, 유저1에 대한 App3의 실행 환경은: BG=녹색, x=1, y=2, z=3이 된다.

보기 3 : User1의 컨택스트에 com.ibm.App6에 대한 실행 환경의 조직.

이 보기는 최우선 그룹이 User1의 컨택스트에 대한 조직된 실행 환경을 포함하지 않는 경우에 대한 것이다. 다시 말하면, 유저1에 대한 최우선 그룹은 그룹X이다. 이 그룹과 이것의 모그룹 AllUsers는 App6에 대한 실행 환경을 포함하지 않는다. 따라서, 그 다음의 우선 그룹을 찾는다. User1에 대한 그 다음의 우선 그룹은 그룹Y1이다. 이 그룹에서 App6에 대한 실행 환경 세트를 입수할 수 있다. 보기 1에서 설명하는 바와 같이 실행 환경의 조직화를 진행시킨다. 그룹Y1으로부터 트리 구조 위의 모그룹인 AllUsers 그룹을 향하여 재귀적 호출이 이루어지고, 실행 환경 세트는 재귀적 호출로 다시 트리 구조 아래로 복귀되어, 디폴트 셋트를 구성하기 위한 방법에 따라 변경된다. 그런 다음 이러한 디폴트 셋트는, 그룹Y1에 저장된 실행 환경으로 변경되어, 위 컨택스트에 적용되는 실행 환경의 세트를 조직하게 된다. 간단하게 말하면, AllUsers가 App6에 대한 실행 환경을 가지고 있지 않기 때문에, AllUsers는 빈 세트의 실행 환경을 복귀시킨다. 그룹Y는 값 a=1 및 b=2로 그 빈 세트를 변경시키고, 다시 그 셋트를 디폴트 셋트로서 그룹Y1에 복귀시킨다. 그룹Y1은 a=33으로 디폴트 셋트를 변경시킨다. 이 셋트를 디폴트 셋트로 사용하기 위해 User1의 컨택스트으로 복귀시킨다. User1 컨택스트에 App6에 대한 실행 환경이 저장되어 있지 않기기 때문에, 실행 환경 트리의 그룹Y1 브랜치로부터 입수하게 되는 디폴트는 App6에 대하여 최종적으로 조직된 실행 환경 셋트가 된다. 따라서, 실행 환경의 실제 셋트는 이 컨택스트 a=33, b=2가 된다.

위의 세가지 보기는 소프트웨어에 대한 로드(load)()에 응답하여 실행 환경을 수집하는 것을 설명하였다. 실행 환경 정보가 소프트웨어로서 저장될 때, 저장되어야 할 컨택스트에 명시적으로 기록된 실행 환경은, 실행되는 소프트웨어의 컨택스트와 저장될 소프트웨어 실행 환경의 키의 조합에 의해 특정된 위치인 데이터베이스(212)에 기록될 것이다.

허가에 대해서도 마찬가지로 동작시킬 수 있다: 새로운 그룹은 그것의 슈퍼그룹이 허가하는 모든 애플릿 뿐만 아니라 그 그룹이 허가하는 모든 애플릿 이름으로 접속할 수 있다. 그러나, 자바는 프로그래머가 슈퍼클래스 방법을 무시하는 것을 허용하는 것처럼, 프로파일 관리는 시스템 관리자에게 허가에 관한 상속을 무시하는 능력을 부여한다. 이것을 허가의 무시(overriding a permission)라고 한다.

상속에 관한 자바의 형태에 있어서, 실행 환경 및 허가 상속에 관한 프로파일 관리 형태를 단일 상속(single inheritance)라고 한다. 단일 상속은 각 프로파일 관리 그룹이 오직 하나의 슈퍼그룹을 가질 수 있다는 것(비록 어떤 슈퍼그룹은 복수의 서브그룹을 가질 수 있지만)을 의미한다.

프로파일 관리 유저(leaf node)는 복수의 그룹에 속할 것을 요구할 수 있다. 이때, 장치는 실행 환경 상속을 단일 계층 그룹으로 제한할 필요가 있다. 그것은 그룹 브랜치의 교차 조직화로 인한 호환성이 없는 가변 서브세트의 진입으로 인하여 구성이 변질될 수 있는 가능성을 최소화하기 위한 것이다. 유저의 그룹 구성원에 우선 순위를 매김으로써, 특정의 애플릿과 관련된 실행 환경을 찾을 때 프로파일 관리는 검색 순서를 따를 수 있다. 다시 말해서, 최우선 그룹부터 시작해서, 검색은 그것의 실행 환경을 로드하려는 애플릿에 대한 구성 데이터를 포함하는 첫번째 그룹을 발견했을때 종료한다.

유저는 그룹 구성원으로부터 소프트웨어 허가를 상속한다. 기업 모델링에 주의를 기울여서, 관리자는, 한번에 한 유저씩 패널을 통하여 네비게이트할 필요 없이, 많은 유저의 소프트웨어에 접속하도록 할 수 있다. 프로파일 관리는, 웹 서버가 애플릿으로 접속하는 것을 허가/불가하도록 프로그래밍함으로써 접속을 제어한다. 웹 서버는 접속 제어를 실시한다. 웹 서버는 인증 목적으로 웹 서버로 진입하려는 유저의 ID와 패스워드를 요청하는 방법으로 프로파일 매니저 서블렛을 방어한다. 그것은 요청된 유저 패스워드를 프롬프트하는 표준 브라우저 기능이다.

도5는 도2의 시스템을 더욱 상세하게 나타낸다. 관리자는 구성 애플릿인 애플릿1을 프로파일 관리 프레임워크 내에서 부른다. 애플릿1은, 프로파일 관리 프레임워크 내에서 빽빽하게 집적되기 위하여, 그것의 동작 환경(예컨대, 질의 컨택스트, 컨택스트 변경 이벤트, 이 컨택스트를 위한 질의 접속 제어 리스트 등)에 관한 정보를 질의하기 위해 애플리케이션 프로그램 인터페이스(API)(515)를 실행시킬 수 있으나, 그것은 구성 애플릿의 요구 사항은 아니다. 어떤 이벤트에서 애플릿1의 설계자는 단지 기본적인 API 방법 : java.util.Properties객체로 그리고 그 객체로부터 실행 환경 정보를 주고 받기 위해 사용되는 java.util.Properties객체의 기본적 방법과 함께 인에이블 퍼시스턴스(enable Persistence)(), 로드(), 그리고 세이브()를 이해할 필요가 있다. API(515)는 또한 리스트() 그리고 getContext() 방법을 제공한다. 애플릿1은 오직 프로파일 관리 특성 클래스와 함께 등록시켜서 적당하게 그 방법들을 호출하기만 하면 된다. 로드() 방법은, 관리자가 선택한 유저 또는 그룹의 컨택스트에 구성된 유저 애플릿에 대한 실행 환경의 현재 상태를 검색하기 위해 호출될 수 있다. 관리자는, 원하는 실행 환경을 변경시킬 수 있고, 프로파일 관리 특성 객체의 세이브() 방법을 사용하여 애플릿에서 제공되는 구성 세이브 기능을 사용하여 그것들을 저장할 수 있다. 마찬가지로, 애플릿1이 유저에 의해 접속이 인증된 유저 애플릿의 리스트를 필요로 한다면, 서버에서 그 리스트를 입수하기 위하여 리스트() 방법을 사용할 수 있다. getContext() 방법은, 애플릿이 실행되는 컨택스트의 이름을 표시하기 위하여 또는 애플릿이 특정한 컨택스트에서만 실행된다는 것을 보장하기 위하여 애플릿에 의하여 사용될 수 있다. 즉, 애플릿이 익스포트 에이전트를 사용하여 서버에서 서비스를 구성하려고 할 때, 애플릿을 AllUser 컨택스트에서만 실행시킬 수 있다. 왜냐하면 익스포트되는 구성은 유저-특정과는 반대로 서버-특정이기 때문이다. 프로파일 관리 프레임워크에서 작동하는 애플릿1에 대해, 애플릿에 필요한 모든 것은 그것을 프로파일 관리 특성(410)에 등록하고, java,util.Proerrties class의 확장인 프로파일 관리 특성 클래스를 실시한다는 것이다.

프로파일 매니저(506)는 또한 구성 애플릿에 대한 컨택스트 변화 (API 516)를 제공한다. 애플릿1은 컨택스트 변화 이벤트 리스너(listener)(512)를 실행시킬 수 있다. API(516) 및 이벤트 리스너(512)는, 관리자가 구성 애플릿이 작동하는 동안 정지하거나 재시작하는 일 없이 컨택스트를 변경시키게 할 수 있다. 예를 들면, 애플릿 유저 실행 환경을 구성할 때, 관리자는 그것을 구성하는 동안 여러 차례 컨택스트를 변경시킬 것이다. 구성 애플릿이 그러한 이벤트에 리스너로 등록되어 있으면, 프로파일 매니저(506)는 API(516)을 통해 컨택스트 변화를 통지할 것이다. 이것은, 애플릿1이 각각의 새로운 컨택스트를 구성하기 위해 서버의 실행 환경을 재생시킬 수 있게 한다. 만약 이벤트 리스너(API)가 없다면, 새로운 컨택스트를 위하여 현재 실행 환경 정보를 참조하고 프로파일 관리 애플릿에 의하여 동작이 정지하거나 재시작하는 것을 방지하기 위하여 새로운 컨택스트를 선택한 후에, 애플릿1은 관리자에 의하여 종료하고 재시작되어야 할 것이다. 등록을 위하여, 애플릿1은 프로파일 관리 특성(510)으로 그것의 특성 객체에 대한 방법, 즉 그것을 등록시키기 위한 addContexChangeListner (API 516)를 호출한다. 관리자가 새로운 컨택스트를 설정할 때, 프로파일 매니저(506)는 객체(510)로 셋트 컨택스트(API 516)을 실행한다. 그것은 이벤트 리스너(512)의 리로드(reload) 방법(API 516)의 호출에 응답한 것이다. 이제 이벤트 리스너(512)는 새로운 컨택스트를 위해 서버로부터 새로운 실행 환경 데이터를 얻기 위해 그것의 특성 객체(510)로 로드 특성을 호출하고, 애플릿1이 새로운 실행 환경 정보를 반영하기 위해 그것의 GUI 및 내부 변수를 갱신하게 한다.

구성을 변화시켜서 새로운 컨택스트를 만들기 전에 로드() 하려고 할 때, 위의 기능은 네트워크 관리자가 하나의 컨택스트에서 데이터를 판독하거나 컨택스트를 변화시키거나 또는 우발적으로 세이브()로 덮어쓰기할 수 있는 가능성을 피하게 해준다.

관리자가 컨택스트 변경을 강제할 때, 리스너로 등록하지 않은 애플릿은 프로파일 매니저 애플릿에 의해 정지, 파괴, 리로드 및 재시작될 것이다.

프로파일 관리는 또한 현재 하드웨어 및 소프트웨어를 이 프로파일 관리 환경으로 용이하게 재복귀시킬 수 있도록 특성 익스포트 서비스를 제공한다. 특성 익스포트 서비스는 프로파일 매니저(514)가 유저, 그룹 및 유저 애플리케이션 뿐만 아니라 유저 워크스테이션(물리적인 하드웨어)을 지원할 수 있게 한다. 현재 워크스테이션이 프로파일 관리 특성(510)에 대해서 알지 못하기 때문에, 익스포트 서비스는, 워크스테이션 공급자가 실행 환경 정보를 세이브할 때 서버에서 호출된 익스포트 에이전트(520)를 특정하는 워크스테이션-구성 애플릿을 만들 수 있게 한다. 익스포트 태그(export tag)는, 공급자-공급 클래스(익스포트 에이전트(520) 객체)를 생성시키고, 객체에 호출된 익스포트 방법은 워크스테이션이 구성되는데 필요한 독점 파일 포맷 및 파일 위치가 무엇이든지 간에, 저장되어야 할 워크스테이션 구성 정보를 특정한다.

애플릿1이 현재 단말기에 대하여 공급자가 공급한 구성 애플릿으로, 본 발명에 따른 프로파일 관리 시스템과 호환성이 없는 것이라고 가정한다. 공급자도 익스포트 에이전트(520)를 제공한다. 관리자는 프로파일 매니저(506)를 실행시키고, 공급자가 공급한 단말기의 구성을 세트시키고, 공급자가 공급한 구성 애플릿을 실행시켜서 애플릿을 구성함으로써 본 시스템에서 그 단말기가 동작할 수 있도록 구성할 수 있다. 관리자가 구성을 세이브할 때, 서버로 전송되는 정보의 일부는 단말기가 구성되는 것을 확인하는 특수한 확인자이다. 전형적으로, 그것은 단말기의 매체 접속 제어(MAC; Media Access Control) 어드레스이다. 프로파일 매니저 서블렛 (514)은 익스포트 에이전트가 세이브에서 특정되는지를 검출한다. 프로파일 매니저 서블렛(514)은 익스포트 에이전트에 대한 요구 사항을 특정하는 세이브된 실행 환경 중 하나로부터 그것을 검출한다. 실행 환경은 아래의 키 값 쌍의 형태로 익스포트 태그를 특정한다.

xxxxEXPORT-AGENTxxxx={익스포트 에이전트의 완전 승인된 클래스 이름}

세이브 실행 환경 정보로부터 서버에 하나 또는 그 이상의 파일(522)을 생성시키기 위해 프로파일 매니저 서블렛(514)이 익스포트 에이전트의 익스포트 (Context context, config properties) 방법을 호출한다. 특정한 파일 또는 파일들이 애플릿1으로부터 특성 정보에 부수되는 단말기의 특수한 확인자에 의하여 확인된다. 단말기가 나중에 부트 업(boot up)할 때, 단말기는 그것이 특수한 확인자를 사용하여, 프로파일 관리 시스템과는 독립적으로, 그것이 항상 해왔던 것과 동일한 방법으로 서버의 파일(522)에 그 구성 정보를 위치시키고 그것을 검색한다.

도6은 클라이언트 컴퓨터에서 작동하는 애플릿2를 설명한다. 애플릿2는 워드프로세서와 같은 엔드-유저 애플릿이 될 수 있다. 어떤 이벤트에서, 애플릿2는, 도5의 도면 부호(515)으로 도시하는 바와 같이 소정의 경우, 동일한 몇가지 API 방법의 접속을 가진다. 애플릿2는 실행 환경을 검색하기 위해 로드 방법을 사용하고, 엔드 유저에 의해 변경될 수 있는 임의의 실행 환경을 세이브하기 위해 세이브 방법을 사용한다. 관리자와 관련하여 상기한 바와 같이, 인에이블퍼시스턴스 (EnablePersistence)는 유저와 동일한 컨택스트로 애플릿2에 대한 프로파일 관리 특성 객체를 초기화시키고, 서버 상에서 실행 환경 정보의 저장 위치를 확인하기 위한 특수한 키를 발생시킨다.

도7은 그/그녀의 데스크탑을 구축하는 유저의 상황을 나타낸다. 클라이언트 (700)의 유저는 서버의 데스크탑 애플릿의 URL을 그/그녀의 웹 브라우저에서 지시하고, 단계(704)에서 메시지 (http://server/Desktop.html)를 보낸다. 서버가 Desktop.html 파일을 보호하므로, 단계(706)에서 웹 브라우저에서 클라이언트로 회답을 전송한다. 클라이언트의 웹브라우저는 유저 ID 및 패스워드로 유저를 프롬프팅(prompting)시키는 것으로 응답한다. 클라이언트는 단계(708)에서 유저 ID 및 패스워드 정보를 서버로 송신한다. 유저 ID 및 패스워드는, 이 정보가 웹브라우저 자체에 의해 통과된다는 것을 설명하기 위하여 도7의 단계(708)에서 굵은 글씨체로 도시한다. 이러한 형식의 명칭은 다른 도면에서도 동일한 것을 나타내기 위하여 사용된다. 만약, 유저가 데스크탑 애플릿을 작동시키기 위한 허가를 가지고 있다면, 그 요구는 이루어질 것이다.

데스크탑 애플릿에 대한 코드가 서버로부터 클라이언트로 로드되도록 클라이언트와 서버 사이에 일련의 상호 작용(도시되지 않음)이 있다. 데스크탑 객체가 생성되고 단계(712)에서 실행을 시작한다. 데스크탑 객체는 그것의 실행 환경 정보(즉, 구성 정보)를 필요로 하고, 그에 따라 데스크탑 객체는 그것을 호출하는 엔드 유저를 위한 데스크탑을 맞춤 제작할 수 있다. 결국, 데스크탑 객체의 초기화 프로세스의 일부로서, 데스크탑은 단계(714)에서 프로파일 관리 특성 객체 P를 생성하고, 이 객체는 데스크탑 애플릿을 위해 서버로부터 유저의 실행 환경 정보의 복사본을 로드, 입수, 캐시, 셋트 및 세이브하기 위해 사용된다. 그런 다음, 데스크탑 객체는 단계(716)에서 API 호출 P.인에이블 퍼시스턴스(데스크탑 객체(애플릿))를 실행한다. 단계(716)의 (1)단계에서 데스크탑 객체는 프로파일 매니저 서블렛(214)의 URL과 함께 프로파일 관리 특성 객체 P를 초기화한다. 이러한 URL은, 그전에 서버로부터 로드된 데스크탑 애플릿의 URL로부터 유도된다. 프로파일 관리 특성 객체 P는, 데스크탑 애플릿을 작동시키는 유저를 위한 컨택스트를 입수하기 위해 단계 (718)에서 그러한 요청을 프로파일 매니저 서블렛(214)으로 전송한다. 이 경우에, 컨택스트는 2개의 성분으로 구성되는데, 컨택스트의 이름은 유저의 ID이고, 이 경우에 컨택스트의 형식은 유저이다. 프로파일 매니저 서블렛은 단계(718)의 요청으로부터 유저의 ID를 입수하고, 단계(719)에서 유저의 컨택스트를 복귀시킨다. 단계(716)의 (2)단계에서 프로파일 관리 특성 객체 P는 데스크탑을 작동시키는 유저의 컨택스트로 초기화된다. 단계(716)의 단계(3)에서, 프로파일 관리 특성 객체 P는 그것의 완전 승인된 클래스 이름으로 자바 데스크탑 객체 P를 질의함으로써 데스크탑 소프트웨어를 위한 고유의 키를 발생시킨다. 모든 자바 객체는 그들의 클래스 이름을 안다. 이 고유의 키는 유저의 컨택스트 정보와 결합하여, 데스크탑 애플릿에 대한 유저 특정의 실행 환경 정보를 저장하기 위해 데이터 베이스(212)에 고유의 위치를 특정하는 파라미터를 제공한다. 완전 승인된 클래스 이름과 유저 컨택스트 정보로 구성된 스트링을 데이터 저장 위치에 맵핑시키기 위하여 소정의 방법을 사용할 수 있다. 다음으로, 단계(720)에서 데스크탑 애플릿에 대하여 유저에게 맞춤 제작된 실행 환경 정보를 입수하도록 프로파일 매니저 서블렛(214)에 요청할 수 있다. 컨택스트 및 키는 요청된 실행 환경 정보를 확인하기 위해 요청(720)의 일부로서 통과된다. 프로파일 매니저 서블렛(214)은 단계(722)에서 요청된 실행 환경 정보에 응답하고, 이 정보는 프로파일 관리 특성 객체 P(604)에서 캐시된다.

도8에서 계속하여, 데스크탑 객체(800)는 단계(800)에서 그것의 프로파일 관리 특성 객체 P로부터 실행 환경 정보를 판독하고, 그에 따라 데스크탑을 갱신하는 것을 시작한다(즉, 그것은 화면색을 푸른색으로 세팅할 수 있고, 아이콘의 위치에 관한 정보 등을 취할 수 있다). 데스크탑 객체는, 유저가 접속 허가를 가지는 소프트웨어의 리스트를 입수하기 위해 프로파일 관리 특성 객체 P에 방법을 호출한다. 프로파일 관리 특성 객체 P는 단계(802)에서 프로파일 매니저 서블렛(214)에 정보를 요청하고, 프로파일 매니저 서블렛은 단계(804)에서 요청된 정보에 대한 응답을 발생한다. 유저가 접속을 가지는 각각의 애플릿에 대해, 정보는 친-유저 이름, 애플릿의 URL, 애플릿에 대한 아이콘의 URL(데스크탑 상에서 애플릿을 나타내고 그것을 로드시키고 실행을 시작하는데 데스크탑이 필요한 정보) 등과 본 발명과는 관련이 없는 다른 선택적 요소를 포함한다. 이 정보는 프로파일 관리 특성 객체 P에 저장되고, 데스크탑 객체로 복귀한다. 단계(806)에서, 데스크탑 객체는 애플릿에 대한 폴더를 구축하고, 유저가 접속을 가지는 각각의 애플릿에 대한 아이콘 및 친-유저의 이름을 윈도우에 표시하기 위해 애플릿 정보를 사용한다.

유저에 의한 데스크탑의 이전의 작동에서, 유저가 위에 기재한 바로 그 폴더에 표시된 몇개의 소프트웨어에 대한 아이콘을 끌어다가 드롭시켰다고 가정한다. 이 경우 유저는 폴더에서 데스크탑으로 끌어다가 드롭시킨 애플릿으로 더 이상 접속을 가지지 않을 수도 있다. 그러나, 이 데스크탑 객체는 일반적으로 최종적으로 동작하는 동안 세이브된 유저 실행 환경의 일부가 될 수 있고, 데스크탑에 여전히 표시될 수 있다. 이러한 상황을 피하기 위해, 데스크탑은 그 프로파일 관리 특성 객체 P로부터 실행 환경을 검사하여, 구성된 애플릿이 유저가 접속을 지니는 모든 애플릿을 표시하도록 생성된 윈도우의 바깥에 나타나는지를 체크한다. 도8은 생성된 애플릿 윈도우의 바깥에 오직 하나의 애플릿이 있다고 가정한다. 애플릿 윈도우의 바깥에 그러한 애플릿이 하나 이상 있다면, 이어지는 프로시저는 각각의 그러한 애플릿을 위해 루프(loop)될 것이다. 단계(810)에서, 데스크탑은 이러한 각각의 애플릿이 유저가 접속을 가지는 서버의 애플릿의 리스트에 대항하여 애플릿 윈도우의 바깥에 나타나는지를 체크한다. 리스트에 애플릿이 나타나면, 애플릿에 대한 아이콘은 단계(810)에서 그 이전과 동일한 위치에 데스크탑에 배치된다. 유저가 애플릿으로의 접속을 더 이상 가지지 않는다면, 애플릿은 단계(814)에서 데스크탑의 실행 환경으로부터 제거되고, 프로파일 관리 특성 객체 P로부터 제거된다. 어떤 애플릿이 이러한 프로세스의 일부로서 제거되면, 데스크탑은 단계(816)에서 프로파일 관리 특성 객체 P에게 실행 환경을 세이브하도록 요청한다. 프로파일 관리 특성 객체 P는 단계(818)에서 데이터베이스(212)에 새로운 실행 환경 정보를 세이브하기 위하여 실행 환경, 키 및 컨택스트 정보에 대한 요청을 프로파일 매니저 서블렛(214)으로 전송한다. 서버는, 단계(820)에서 프로파일 관리 특성 객체 P에 그 요청이 성공적으로 완료되었음을 통지하는 응답을 프로파일 관리 특성 객체 P로 전송한다.

도9는 다른 유저 또는 다른 유저 그룹에 대한 애플릿의 실행 환경을 구성하기 위해 구성 애플릿을 작동시키는 관리자의 상태를 설명한다. 본 명세서에서 설명하는 원리가 단말기 또는 단말기 그룹을 구성하는데 일반적으로 사용된다는 것을 알 수 있다. 클라이언트(900)의 관리자는 실행되어야 할 서버의 프로파일 매니저 서블렛(214)의 URL에 그/그녀의 웹 브라우저를 지시한다. URL은 단계(904)에서 서버로 전송된다. ProfileManager.html은 서버가 보호하는 파일이므로, 단계(906)에서 클라이언트의 웹 브라우저로 회답을 재전송한다. 웹 브라우저는, 유저 ID 및 패스워드로 관리자를 프롬프팅시키는 것으로 응답한다. 단계(908)에서 메시지에 포함된 유저 ID 및 패스워드 정보와 함께 Profile Manager.html을 얻기 위한 요청을 반복한다. 만약, 관리자가 프로파일 매니저를 작동시킬 허가를 지니고 있다면, 요청이 받아들여져서 프로파일 매니저 애플릿은 단계(910)에서 관리자 단말기로 다운로드된다. 프로파일 매니저 애플릿에 대한 코드가 서버로부터 클라이언트로 로드되는 경우, 클라이언트와 서버 사이에는 일련의 상호 작용이 있다(도시되지 않음). 단계(912)에서 프로파일 매니저 객체가 생성되고 그 실행을 시작한다.

프로파일 관리 특성_비컨택스트 플로팅(non Context Floating)은 일반적인 프로파일 관리 특성 객체 대신에 프로파일 매니저에 의해 사용된다. 그것은 한가지 점을 제외하고는 프로파일 관리 특성 객체와 동일한 행동을 가진다: 그 한가지 예회는, 실행 환경이 로드되고 세이브될 때, 그 실행 환경은, 관리자가 구성하는 컨택스트(즉 유저 또는 유저 그룹)로 그리고 그 컨택스트로부터 로딩하고 세이빙하는 것과는 반대로, 프로파일 매니저를 작동시키는 관리자의 컨택스트로 그리고 그 컨택스트로부터 로드되고 세이브된다.

프로파일 매니저 객체는 그것의 실행 환경 정보(즉, 구성 정보)를 필요로 하고, 그에 따라 관리자가 실행 환경 정보를 호출하도록 프로파일 매니저를 맞춤 제작할 수 있다. 결국, 프로파일 매니저 객체의 초기화 프로세스의 일부로써, 프로파일 매니저는 단계(914)에서 프로파일 관리 특성_비컨택스트 플로팅 객체 P_NCF를 생성한다. 이 프로파일 관리 특성_비컨택스트 플로팅 객체 P_NCF는 프로파일 매니저 애플릿에 대해 서버로부터 관리자의 실행 환경 정보의 카피를 로드하고, 입수하고, 캐시하고, 세트시키고, 세이브하는데 사용된다. 그런 다음 프로파일 매니저 객체는 P_NCF.enablePersistence(프로파일 매니저 객체 (애플릿))를 호출한다. 이 P_NCF.enablePersistence는 단계(916)의 단계(1)에서 프로파일 매니저 서블렛(214)의 URL과 함께 프로파일 관리 특성_비컨택스트 플로팅 객체 P_NCF를 초기화시킨다. 이 URL은 프로파일 매니저 애플릿의 URL로부터 유도된다. 프로파일 관리 특성_비컨택스트 플로팅 객체 P_NCF는 단계(918)에서 관리자 및 컨택스트 형식(USER)의 컨택스트 이름(ID)을 얻기 위한 요청을 프로파일 매니저 서블렛(214)으로 전송한다. 프로파일 매니저 서블렛은 요청(918)으로부터 관리자의 ID를 얻는다. 웹 브라우저는 메시지의 관리자 ID 및 패스워드를 프로파일 관리 특성_비컨택스트 플로팅 객체 P_NCF에 의해 송신된 정보와 같이 통과시킨다. 프로파일 관리 특성_비컨택스트 플로팅 객체 P_NCF는 단계(916)의 단계(2)에서 애플릿을 작동시키는 관리자의 컨택스트와 함께 초기화된다. 단계(916)의 단계(3)에서, 프로파일 관리 특성_비컨택스트 플로팅 객체 P_NCF는, 그것의 완전 승인된 클래스 이름(즉, ProfileManagerObject. getClass()getName())을 위하여 자바 프로파일 매니저 객체라는 객체(Java profile ManagerObject)(enablePersistence 호출에서 변수로 통과됨)를 질의함으로써 프로파일 매니저 애플릿에 대한 고유의 키를 발생시킨다. 관리자의 컨택스트 정보와 결합된 이러한 고유의 키는, 프로파일 매니저 애플릿에 대한 관리자 특유의 실행 환경 정보를 위한 데이터베이스(212)에서 고유한 위치를 특정하기 위하여 맵핑된다.

요청(922)은, 관리자를 위해 구성된 바와 같이 프로파일 매니저 애플릿을 위해 맞춤 제작된 실행 환경 정보를 얻기 위하여 프로파일 매니저 서블렛(214)으로 전송된다. 요청(922)은 적절한 실행 환경 정보를 확인하기 위하여 적당한 컨택스트 이름과 형식 및 키 정보를 포함한다. 프로파일 매니저 서블렛(214)은 요청된 실행 환경 정보에 응답(924)하고, 이 정보 프로파일 관리 특성_비컨택스트 플로팅 객체 P_NCF에 캐시된다. 프로파일 매니저는 프로파일 관리 특성_비컨택스트 플로팅으로부터 그것의 실행 환경 정보를 판독하고, 그에 따라 그 자신을 갱신한다(즉, 예를 들면, 바탕색을 푸른색으로 세팅함).

동작은 도10에서 계속된다. 프로파일 매니저는 프로파일 매니저 서블렛(214)으로부터 현재 유저, 유저 그룹 및 소프트웨어에 대한 정보를 요청하고, 단계 (1002)에서 프로파일 매니저 구성 윈도우의 왼쪽 패널에 트리 구조를 만든다. 관리자의 왼쪽 패널에 대한 예를 도13 내지 도24에 도시한다. 이 단계(1004)에서, 관리자는 왼쪽 패널 트리로부터 유저 또는 그룹을 클릭함으로써, 구성을 위한 소정의 컨택스트를 선택한다. 프로파일 매니저는 P_NCF.setContext(선택된 컨택스트)를 호출함으로써 프로파일 관리 특성 객체에 대한 컨택스트를 설정한다. 도13에서는 모든 시스템 유저의 그룹을 말하는 유저 그룹의 컨택스트 선택을 도시하고 있고, 도18은 개발(Develpoment)의 그룹 컨택스트가 선택되는 것을 도시하고 있으며, 도21은 콜렌드(collend)의 유저 컨택스트가 선택되는 것을 도시한다. 다음으로, 단계(1006)에서, 관리자는 서버의 모든 애플릿의 리스트으로부터 구성되어야 할 애플릿을 선택한다. 애플릿을 선택하는 것의 예를 도17에 도시한다. 단계(1008)에서, 관리자는 구성을 위하여 선택된 애플릿을 작동시키기 위하여 작동/맞춤 제작(Run/Customize) 버튼을 클릭한다. 이러한 애플릿은 엔드 유저 애플릿을 위한 별개의 구성 애플릿이 될 수 있거나, 또는 엔드 유저 애플릿 그 자체가 될 수 있다. 선택된 애플릿은 단계(1009 및 1011)에서 서버로부터 요청되고 로드된다. 단계(1010)에서, 구성 애플릿 객체가 생성되고 그 실행을 시작하여 그것의 프로파일 관리 특성 객체 P를 발생시킨다.

애플릿이 엔드 유저 애플릿에 대한 개별적인 구성 애플릿이라고 가정하면, 단계(1012)에서, 애플릿은 p.enablePersistence(구성되어야 할 애플릿의 완전 승인된 클래스 이름인 구성 애플릿 객체)를 호출한다. 반면, 애플릿이 개별적인 구성 애플릿이 아니라 유저 애플릿이라면, 호출은 p.enablePersistence(엔드 유저 애플릿 객체)가 될 수 있다. 왜냐하면, 유저 애플릿은 다른 애플릿의 실행 환경 정보와는 반대로 자신의 고유한 실행 환경 정보를 구성하기를 원하기 하기 때문이다. 현재의 컨택스트는 관리자의 프로파일 관리 특성_비컨택스트 플로팅 객체 PM_NCF를 통하여 관리자에 의하여 이미 셋트 되어 있기 때문에, 현재의 컨택스트는 프로파일 관리 특성 객체 P에 의하여 이미 알려져 있다. enablePersiste가 프로파일 매니저인 프로파일 관리 특성_비컨택스트 플로팅 객체 PM_NCF에서 호출되었을 때, 프로파일 매니저 서블렛(214)의 위치는 그 이전에 이미 발생되어 있었다. 구성 애플릿의 경우, 애플릿에 대한 고유의 키가 enablePersistence 호출에서 프로파일 관리 특성 객체 P로 구성 애플릿에 의하여 통과되기 때문에, 애플릿에 대한 고유의 키를 발생시킬 필요가 없다.

단계(1014)에서, 구성 애플릿은 컨택스트 변경 리스너로서 그것의 프로파일 관리 특성 객체와 함께 그 자신을 등록한다. 상기한 바와 같이, 이것은, 애플릿의 프로파일 관리 특성 객체가, 애플릿이 새로운 컨택스트에서 종료하거나 재착수하는 것을 필요로 하지 않고, 애플릿이 새로운 컨택스트를 위한 실행 환경 정보를 로드할 수 있고, 새로운 구성 정보를 반영하여 그래픽 유저 인터페이스를 갱신할 수 있도록 하기 위해, 관리자가 컨택스트

변화를 만드는지 여부를 통지할 수 있게 한다.

동작은 도11에서 계속된다. 단계(1104)에서, 구성 애플릿은, 프로파일 관리 특성 객체 P에게 애플릿을 구성하기 위하여 현재의 컨택스트로부터 실행 환경을 로드하도록 지시한다. 요청(1105)은 애플릿을 구성하기 위하여, 관리자에 의해 이미 선택된 컨택스트로 맞춤 제작된 실행 환경 정보를 얻기 위하여 프로파일 매니저 서블렛(214)으로 전송된다. 요청(1105)은 적당한 실행 환경 정보의 위치를 특정하기 위하여 적당한 컨택스트 이름(관리자가 선택한 컨택스트)과 컨택스트 형식(USER, USER_GROUP, 또는 ALL_USERS_GROUP이 적당함)과 키 정보를 포함한다. 프로파일 매니저 서블렛(214)은 단계(1106)에서 요청된 실행 환경 정보로 응답하고, 프로파일 관리 특성 객체 P에 캐시된다. 구성 애플릿은 프로파일 관리 특성 객체 P로부터 실행 환경을 입수하고, 그에 따라 그것의 그래픽 유저 인터페이스를 갱신시킨다.

관리자는, 단계(1107)에서, 예를 들면, 애플릿에 의해 제공되는 SAVE 버튼을 클릭함으로써, 애플릿을 구성하고 변경된 실행 환경을 세이브한다. 이 동작의 결과로써, 구성 애플릿은 그것의 프로파일 관리 특성 객체 P에서 SAVE() 방법을 호출한다. 프로파일 관리 특성 객체 P는 구성되어야 할 애플릿에 대한 실행 환경과 고유의 키 및 현재의 컨택스트를 특정하는 정보를 프로파일 매니저 서블렛(214)으로 전송한다. 프로파일 매니저 서블렛은 컨택스트 및 키에 의해 특정되는 위치의 데이터베이스(212)에 실행 환경 정보를 저장한다

단계(1108)은 구성 애플릿이 작동하는 중에, 관리자가 현재의 컨택스트를 변경시키는 예이다. 관리자는 유저 또는 유저 그룹을 클릭함으로써 새로운 컨택스트를 선택한다(예컨대 도18의 좌측 스크린 패널의 새로운 컨택스트 참조). 컨택스트 변경의 결과, 프로파일 매니저(506)는 P_NCF.setContext(선택된 새로운 컨택스트)를 호출함으로써 셋트 컨택스트 메시지를 프로파일 관리 특성 객체 P(510)로 전송하고, P_NCF.setContext는 객체 P가 리로드(512) 특성 API(515)을 통하여 다시 이벤트 리스너(512)에게 컨택스트 변화를 통지하도록 만든다. 이것은 단계(1110)에서 발생한다. 단계(1112)에서, 이벤트 리스너(512)는 새로운 컨택스트를 위한 실행 환경을 검색하기 위해 로드() 호출을 수행하고, 객체 P는 단계(1118)에서 새로운 실행 환경과 함께 갱신된다. 이제 관리자는, 필요시 새로운 컨택스트를 위한 새로운 실행 환경을 변경시키는 처리를 할 수 있고, 필요시 그것들을 세이브시킬 수 있으며, 상기와 같이 필요시 새로운 컨택스트로 변화된 데에서 처리를 할 수 있는 것이다.

나머지 도12 내지 도24는, 프로파일 매니저(206)를 실행시키는 동안 관리자 워크스테이션의 실제 화면의 스냅샷(snapshot)을 나타낸다.

주구성 윈도우(1200)가 도12에 도시되어 있다. 윈도우의 좌측에 있는 트리 뷰 패널(1202)은 서버에서 활용 가능한 여러 가지 서비스 중의 하나로 프로파일 관리(1204)를 도시한다. 이 항목(1204)은 도12에 도시하는 바와 같이 선택될 때, 주윈도우의 우측 패널(1205)이 프로파일 관리 서비스에 대한 환영 메시지를 디스플레이한다. 도면 부호(1208)과 같은 확장(expand) 및 수축(contract) 아이콘(1208)이, 어떤 항목의 부항목이 존재할 때에, 그것의 표시를 제어하기 위하여 사용된다. 기호 +(1208)은 확장 아이콘이라고 하는 것으로서, 프로파일 관리(Profile Management) 아래에 부항목이 있다는 것을 나타낸다. 관리자는 확장 아이콘(1208)을 클릭함으로써 그 부항목을 디스플레이할 수 있고, 그것은 다시 수축 아이콘 (-)이 될 것이다.

도13은 도12에서 프로파일 관리 항목(1208)의 확장을 설명한다. 도13에서 세가지 디폴트 부항목, 즉 애플릿(1300), 유저 그룹(1302) 및 유저(1304)를 디스플레이한다. 확장 아이콘은 이러한 항목이 또 확장될 수 있다는 것을 나타낸다. 애플릿(1300)은 관리자가 서버(202)에서 활용 가능한 유저 애플릿을 정의하게 하고, 유저 그룹(1302)은 관리자가 도3의 유저 그룹 트리를 생성하여 유저를 모으고, 그룹 실행 환경을 세팅하게 한다. 유저(1304)는 관리자가 새로운 유저들을 생성하고 그들의 실행 환경을 세팅하거나 또는 이미 존재하는 유저의 실행 환경을 변경시키게 한다. 도13의 예에서, 애플릿(1300)이 선택된다. 이 항목이 선택되면, 윈도우의 우측에 있는 패널(1305)은 시스템에서 이미 정의된 유저 애플릿의 리스트(1306)을 디스플레이한다. 리스트(1306)에서 선택된 애플리케이션의 속성이 도면 부호(1308)에서 나타내어진다. 관리자는 리스트(1306)에서 NEW를 선택하고 도면 부호(1308)에서 요청되는 이름 및 위치 정보를 입력함으로써 새로운 애플릿을 정의한다. 현재 애플릿 데이타베이스 익스플로러가 리스트(1306)에서 선택되어 도시된다. 도면 부호(1308)에서, 애플릿 이름 필드는 그 애플릿 이름을 디스플레이한다. URL 필드는 서버(202)에서 그 애플릿의 인트라넷 또는 인터넷 웹 어드레스를 디스플레이한다. 필드 html 파일의 완전한 경로(Complete path of html file)는 서버(202)의 디스크 디렉토리 구조에서 애플릿의 디렉토리 경로 및 파일 이름을 디스플레이한다. 필드 완전 승인된 클래스 이름은 애플릿의 완전 승인된 클래스 이름을 디스플레이한다. 필드 아이콘 URL은 유저 데스크탑에서 애플릿의 아이콘을 발생시키기 위해 사용되는 이미지 파일의 웹 어드레스를 디스플레이한다. 나머지 필드는 호출 즉시 소프트웨어에 의해 요청될 수 있는 선택적인 정보를 위한 것이다. 커맨드 버튼(1310), 파일로부터 애플릿 리스트를 수입하라(Import Applet List from File)는, 관리자가 현재 텍스트 파일로부터 현재 리스트(1306)으로 애플릿의 정의를 추가시키게 한다. 버튼(1310)이 클릭되면, 도14에서 도시하는 윈도우는 팝-업(pop-up)하고, 관리자가 추가되는 애플릿 정의를 포함하는 텍스트 파일의 경로 및 파일 이름을 입력시키게 한다. 모든 계속되는 변화를 세이브하기 위하여, 관리자는 파일(1312)을 클릭하고 세이브한다(도시되지 않음).

좌측 패널에서, 유저 그룹 항목(1302)은 도3의 AllUsers 그룹에 대응한다(본 명세서에서 유저 그룹 및 AllUsers는 같이 사용됨). 유저 그룹 항목(1302)이 선택되면, 도15는 우측 패널에 관리자 스테이션을 도시한다. 도15에서, 노트북 패널은, 우측에 3개의 탭, 즉 구성원 탭(1514), 서브 그룹 탭(1516), 그리고 애플릿 허가 탭(1518)을 포함하여 디스플레이된다. 구성원 탭이 도15에서 선택된다. 구성원 패널은 시스템에서 정의된 모든 구성원의 로그-온 식별의 리스트(1520)을 포함한다. 새로운 유저를 생성시키기 위해(현재 선택된 그룹 컨택스트에서 자동적으로 구성원이 되는 유저 그룹), 관리자는 리스트(1520)에서 NEW를 선택하고, 진입 필드 (1522)의 리스트의 우측에 적당한 정보를 입력하고, 생성 버튼(1522)을 클릭한다. 현재 구성원이 리스트(1520)에서 선택되면, 그 유저에 대해서 이미 세이브된 속성이 필드(1522)에 디스플레이된다. 그 속성은 선택된 구성원의 전체 이름, 구성원의 시스템 ID, 패스워드와 소정의 코멘트를 포함한다. 변경 버튼(1524)을 클릭함으로써 ID를 제외한 속성을 편집하거나 변화시킬 수 있고(그러나, 세이브되지는 않음), 또는 삭제 버튼(1526)을 클릭함으로써 유저는 시스템으로부터 완전히 탈퇴할 수 있다. 리스트(1520)의 진입을 선택하고 Undo 버튼(1528)을 클릭하면 어떠한 계속되는 변화도 반영되지 않게 된다.

도16은, 서브 그룹 탭(1516)이 선택될 때, 디스플레이되는 관리자의 우측 패널을 나타낸다. 서브 그룹 리스트(1620)은 좌측 패널에서 선택된 항목의 서브 그룹으로서 현재 존재하는 그룹을 도시하고, 이 예에서 그것은 유저 그룹(User Group)이 된다. 그러므로, 리스트(1620)은 AllUsers 그룹의 모든 직속 서브 그룹을 디스플레이한다. 좌측 패널에서, 유저 그룹이 확장된다. 리스트(1620)에 도시된 서브 그룹은 또한 좌측 패널의 유저 그룹 아래에서 항목을 확장시킨 것이 된다. 리스트(1620)에서, 상태 필드는 !삭제(!delete), !변경(!Modify), 그리고 !생성(!Create)과 같은 각 서브 그룹의 현재의 상태를 나타낸다. 리스트(1620)에서 빈 상태 필드는 서브 그룹이 존재하고, 어떠한 행위도 세이브되기 위해 취해지지 않았음을 나타낸다. 기호 !는 상태가 계속중임(아직 세이브되지 않음)을 나타낸다. 리스트(1620)에서 선택된 서브 그룹의 속성은 리스트(1622)에 나타난다. 이들 속성은 서브 그룹 이름 및 서브 그룹에 관한 소정의 코멘트를 포함한다. 새로운 서브 그룹을 생성하기 위해, 관리자는 리스트(1620)에서 NEW를 선택하고, 리스트(1622)에서 서브 그룹 이름 및 소정의 코멘트를 입력하고, 생성 버튼(1628)을 클릭한다. !생성서브 그룹 이름(!createsubgroupname)의 진입은 계속되는 행위로서 리스트 (1620)에 나타난다. 모든 계속되는 변화를 세이브하기 위해, 관리자는 탑 메뉴 바의 파일 버튼을 클릭한 다음 SAVE(도시되지 않음) 버튼을 클릭한다.

도17은, 애플릿 허가 탭(1518)이 선택될 때, 디스플레이되는 우측 패널을 도시한다. 리스트(1720)은 시스템에서 정의된 모든 애플릿의 모든 이름을 나타내고, 좌측 패널에서 선택된 그룹 또는 서브 그룹(현재의 컨택스트)에 대한 각각의 애플릿에 할당된 허가 상태(접속 허가 또는 접속 불가)를 나타낸다. 다른 노트북 페이지에서 기재하고 있는 바와 같이, 감탄 부호는 SAVE가 보류된 상태의 변화를 나타낸다. 도17에서, 그룹 유저 그룹은 좌측 패널에서 도시하는 트리에서 선택되고, 그것은 도3에 도시하는 AllUsers 그룹과 대응한다. 시스템의 모든 유저가 유저 그룹이라는 그룹의 구성원이기 때문에, 리스트(1720)은 시스템에서 정의된 각각의 애플릿에 대한 모든 시스템 유저에 대하여 전체적인 디폴트 허가를 보여준다. 예를 들면, 애플릿 데이타베이스 익스플로러에 대한 디폴트 허가 상태는 AllUsers 그룹에 대한 허가(permit)이고(접속이 허가됨을 의미); 마찬가지로, 애플릿 TFTP의 모든 유저에 대한 디폴트 허가 상태는 불가(deny)이다(접속이 불가됨). 관리자는 리스트(1720)에서 그것을 선택하고 그룹 접속 허가(Permit group access) 버튼(1730) 또는 그룹 접속 불가(Deny group access) 버튼(1732)을 클릭함으로써 애플릿의 허가 상태를 변경시킬 수 있다. 또한, 선택된 컨택스트에 대한 애플릿의 허가 상태와 관계없이, 관리자는 리스트(1720)에서 애플릿을 선택할 수 있고 작동/맞춤 제작 버튼(1734)을 클릭하여 선택된 컨택스트 상황에서 유저 애플릿을 실행시킬 수 있다. 현재의 컨택스트에 대한 노트북을 도시하는 패널 구역은 새로 실행되는 유저 애플릿으로 바뀐다. 유저 애플릿이 다른 소프트웨어에 대한 구성 애플릿이라면, 관리자는 소프트웨어의 실행 환경을 세이브시키는 기능을 실행시키기 위하여 제공된 구성 애플릿 고유의 장치를 사용하여 소프트웨어 실행 환결을 세이브시킬 수 있다. 그것은 또한 선택된 컨택스트의 소프트웨어 디폴트 실행 환경으로 세이브될 것이다. 애플릿이 엔드 유저 애플릿이라면, 엔드 유저 애플릿이 개별적인 소프트웨어의 실행 환경이 아니라 그 자신의 실행 환경을 로드하고 세이브한다는 점을 제외하고는, 기능이 동일하다.

도18은 좌측 패널에서 유저 그룹 아래에 있는 관리자의 서브 그룹 트리를 완전히 확장시킨 것이다. 유저 그룹 바로 아래에, 2개의 서브 그룹이 있다. 그 하나는 제거될 수 없는 디폴트 서브 그룹인 관리자(Administrators)이고, 다른 하나는 관리자에 의해 정의되는 서브 그룹인 IBM이다. IBM 서브 그룹은 또한 확장되어서 3개의 서브 그룹, 하드웨어, 서비스, 그리고 소프트웨어를 포함한다. 소프트웨어 서브 그룹은 확장되어서, 적어도 한 개의 서브 그룹, 개발 (Development)을 포함한다. 개발 서브 그룹은 적어도 한 개의 서브 그룹, NCoD를 포함한다. 서브 그룹 NCoD는 아이가 없는 ConfigFW58과 같은 다수의 서브 그룹을 포함한다. 또한 이 예에서, 서브 그룹 개발은 확장된 트리에서 선택된다. 개발이 트리 계층 구조의 최상부(AllUser 그룹)에 있지 않으므로, 유저 그룹이 선택되었을 때에는 우측 패널에 도시하는 노트북은 도15에 도시하는 것과 다소 상이할 수 있다. 왜냐하면, 그것이 유저 그룹이라면 모든 유저가 유저가 자동적으로 개발의 구성원이 될 것이기 때문이다. 리스트(1820)은 모든 시스템 구성원의 로그-온 시스템 ID를 디스플레이한다. 리스트(1820)에서 각 유저 ID 외의 상태는 유저가 개발 서브 그룹의 구성원인지 여부를 나타낸다. yes 상태는 유저가 개발 서브 그룹의 구성원인 것을 나타내고, no는 유저가 개발 서브 그룹의 구성원이 아닌 것을 나타낸다. 그리고 상속은 유저가 트리 구조 아래에 있는 적어도 하나의 개발 서브 그룹에 속함으로써 개발 그룹 내에 구성원인 것을 상속받는다는 것을 나타낸다. 서브 그룹에 대한 유저의 구성원 상태는, 리스트(1820)에서 유저를 선택하고 그룹 추가 버튼(1836) 또는 그룹 제거 버튼(1838)을 클릭함으로써 관리자에 의해 변경된다. 관리자가 새로운 시스템 유저를 생성하거나, 또는 현재 구성원을 변경 또는 삭제하기를 원한다면, 관리자는 생성/변경/삭제 유저 버튼 (1840)을 클릭한다. 이 행위는 도19에 도시하는 노트북 페이지를 만든다. 도19의 우측 패널은 도15의 우측 패널과 유사하며, 관리자가 리스트(1920)에서 NEW를 선택하고 생성 버튼을 클릭함으로써 새로운 시스템 유저를 생성하게 한다. 마찬가지로, 관리자는 리스트(1920)에서 적당한 유저를 선택하고 적당한 버튼 변경 또는 삭제를 클릭함으로써 현재 시스템 유저를 변경 또는 삭제할 수 있다. 어떠한 서브 그룹 컨택스트(예를 들면, 개발)에서 생성된 유저는 유저 그룹 안에서 소정의 구성원 자격을 얻을 뿐만 아니라, 자동적으로 선택된 서브 그룹의 구성원이 된다. 시스템 유저 리스트의 변경은 우측 패널의 탑 메뉴 바에서 파일을 클릭한 다음 세이브를 클릭함으로써(도시되지 않음) 세이브된다.

도20은, 도19에 도시하는 그룹과 서브 그룹의 루트를 사용하지 않고, 바로 시스템 유저의 리스트를 편집하는 방법을 도시한다. 도20에 이르기 위해, 관리자는 예를 들면 도13의 좌측 패널의 유저(1304)를 선택한다. 도20에 도시하는 우측 패널에서, 관리자는 상기한 바와 같이 그룹 또는 서브 그룹의 컨택스트를 지니지 않고, 새로운 유저를 생성하고 현재의 유저를 변경하고 삭제할 수 있다.

도21에서, 관리자는, ID가 콜렌드(collend)인 유저에 해당하는 정보에 직접 작업하기를 원한다. 이것을 하기 위해, 관리자는, 예를 들면, 도21의 좌측 패널에서 유저를 확장시킨 다음, 도시하는 바와 같이 콜렌드를 선택한다. 우측 패널이 나타나는데, 그것은 콜렌드의 시스템 정보에 따른 것이다. 우측 패널은 세 가지 탭을 포함한다. 제1 탭인 유저 정보는 디폴트로 선택된다. 이 탭에서, 관리자는 콜렌드에 속하는 이름, ID, 패스워드, 그리고 코멘트를 변경시킬 수 있다.

도22는, 관리자가 제2 탭인 그룹 구성원을 선택하는 경우 우측 패널을 도시한다. 리스트(2220)은 콜렌드가 구성원인 모든 서브 그룹을 도시한다. 서브 그룹은 콜렌드에 대해 서브 그룹 우선 순위에 따라 이 리스트에 나타내어진다. 관리자는, 서브 그룹을 선택하고 리스트(2220)의 우측에 있는 위, 아래 화살표를 사용하여 선택된 서브 그룹을 원하는 대로 리스트의 위 또는 아래로 움직이게 함으로써 콜렌드의 서브 그룹 우선 순위를 변경시킬 수 있다. 관리자가 도22의 추가/제거 그룹 구성원 버튼(2242)을 클릭하면, 우측 패널은 도23의 컨텐츠를 보여준다. 도23의 우측 패널은, 관리자로 하여금 콜렌드가 구성원인 서브 그룹을 변경시키게 한다. 관리자는 소정의 서브 그룹에 해당하는 적절한 박스(box)를 클릭함으로써 그것을 수행한다. 박스가 깨끗하다면(콜렌드가 현재 구성원이 아님을 의미), 체크 표시가 서브 그룹에 콜렌드를 포함시킬 수 있도록 박스에 더해진다. 역으로, 서브 그룹 박스가 이미 체크된 경우에는, 박스를 클릭하면 검사 표시가 사라지고, 서브 그룹으로부터 콜렌드가 제거된다.

도24는, 도22의 애플릿 허가 탭이 관리자에 의해 선택되는 경우, 우측 패널을 도시한다. 이 우측 패널에서, 리스트(2420)은 시스템에서 정의된 모든 애플릿을 디스플레이한다. 관리자는, 리스트(2420)에서 애플릿을 선택한 다음 유저 접속 허가 버튼(2430)을 클릭함으로써 애플릿으로 콜렌드에 의한 접속을 허가할 수 있고; 또한 유저 접속 불가 버튼(2432)을 클릭함으로써 콜렌드의 접속이 거절될 수 있다. 관리자는 작동/맞춤 제작 버튼(2434)을 클릭함으로써 콜렌드의 컨택스트에 애플릿을 실행시킬 수 있다. 이것이 이루어질 때, 리스트(2420)에서 선택된 애플릿은 우측 패널에서 실행된다. 관리자는 애플릿이 허용하는 임의의 실행 환경을 변경시킬 수 있고 애플릿에서 제공되는 방법으로 실행 환경을 세이브할 수 있다. 여기서 통상 시나리오는 관리자가 구성 애플릿을 실행시켜서 다양한 실행 환경 필드를 채운다는 것이다. 그러나, 개별적인 구성이 유저 애플릿을 위해 제공되지 않는다면, 관리자가 유저의 컨택스트에 유저 애플릿을 실행시킬 수 있고 유저 애플릿으로부터 실행 환경을 세팅할 수 있다. 여기서 통상 시나리오는 상기한 바와 같이 관리자가 그룹 또는 유저 컨택스트를 선택한 다음 유저 애플릿을 실행시키는 것이다. 그렇게 되면, 관리자는 통상 옵션 메뉴로부터 실행 환경을 변경시킬 수 있고, 유저 애플릿에 의해 제공되는 방법으로 그들을 저장할 수 있다. 예를 들면, 통상 유저 실행 환경은 옵션 대화가 끝날 때 저장되거나, 유저 애플릿은 실행 환경을 저장하는 다른 방법을 제공할 수 있다. 임의의 이벤트에 있어서, 이 예에서는, 관리자가 콜렌드의 컨택스트에서 애플릿을 작동시키므로, 세팅된 실행 환경은 마치 콜렌드가 애플릿을 실행시켜서 직접 진입한 것과 같이 서버에 저장된다.

유저가 유저 애플릿에 속하는 어떤 실행 환경을 변경시킬 수 있는 시나리오는 도면에 도시되어 있지 않다. 예를 들면, 유저 애플릿은 유저가 윈도우 배경색 또는 폰트 그리고 폰트 크기를 선택할 수 있게 하고, 그에 따라 각 시스템 유저는 유저 애플릿이 유저 데스크탑에서 실행될 때 어느 정도 애플릿을 개별화시킬 수 있다. 이 경우, 유저 변경된 실행 환경은, 관리자가 유저 애플릿을 작동시킬 때, 그것이 세이브되는 것과 동일한 방법으로 세이브된다. 그러나, 한 가지 차이는, 관리자는 그룹 컨택스트에서 실행 환경을 세팅하기 위하여 유저 애플릿을 작동시킬 수 있는 반면, 유저는 단지 그 개별적인 컨택스트의 실행 환경만을 다룰 수 있다는 것이다.

상기 장치는 단지 본 발명의 원리를 설명하기 위한 것이다. 당업자라면, 본 발명의 기술적 사상의 범위를 벗어나지 않는 다른 다양한 장치를 고안해 낼 수 있을 것이다.

본 발명의 원리에 따르면, 관리자와 유저간의 네트워킹(networking) 환경에서 유저(user) 또는 유저 그룹(user group)의 관계에서 직접적으로 애플리케이션(application)을 작동시킴으로써 관리자가 유저 애플리케이션을 구성(configuration)하는 것이 가능하며, 즉 애플리케이션의 구성이, 애플리케이션을 실행하고, 이에 의해 제공되는 옵션을 실행하고, 그리고 구성을 저장함으로써 수행되는 이점을 얻을 수 있다.

Claims (6)

  1. 서버와 복수의 유저 스테이션을 상호 연결하는 네트워크를 포함하는 네트워크 시스템에서, 유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 방법에 있어서,
    관리자 스테이션에서 프로파일 매니저를 제공하는 단계와,
    관리자가 시스템 유저의 다른 그룹의 컨택스트에서 제1 엔드 유저 애플리케이션의 실행 환경의 구성을 특정할 수 있도록 하기 위하여, 프로파일 매니저가 제1 엔드 유저 애플리케이션에 대한 개별적인 구성 애플리케이션을 실행시킬 수 있도록 프로파일 매니저를 배열하는 단계와,
    상기 제1 엔드 유저 애플리케이션의 실행 환경 구성을 서버에 저장하는 단계와,
    상기 관리자 스테이션에서 제2 엔드 유저 애플리케이션을 실행시킴으로써 다른 그룹의 컨택스트에서 상기 제2 엔드 유저 애플리케이션의 실행 환경 구성을 특정할 목적으로, 프로파일 매니저가 다른 유저 그룹의 컨택스트에서 엔드 유저 애플리케이션을 실행시킬 수 있도록 프로파일 매니저를 배열하는 단계와,
    상기 제2 엔드 유저 애플리케이션의 실행 환경 구성을 서버에 저장하는 단계
    를 포함하는 방법.
  2. 서버와 복수의 유저 스테이션을 상호 연결하는 네트워크를 포함하는 네트워크 시스템에서, 유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 방법에 있어서,
    관리자 스테이션에서 프로파일 매니저가 디스플레이 장치에 유저 그룹의 트리 구조를 디스플레이하도록, 관리자 스테이션에서 프로파일 매니저를 실행시키는 단계와,
    모니터에서 하나의 그룹을 선택한 것에 응답하여, 그 선택된 그룹의 컨택스트에서 서버가 알고 있는 애플리케이션의 리스트와 각 애플리케이션에 속하는 접근 허가 상태를 모니터에 디스플레이하는 단계로, 여기에서 각 애플리케이션은 해당하는 유저 애플리케이션 또는 하나의 유저 애플리케이션에 대하여 개별적인 구성 애플리케이션이 될 수 있게 하는, 디스플레이 단계와,
    선택된 구성 애플리케이션 또는 유저 애플리케이션을 실행시키라는 요청에 응답하여, 관리자 스테이션에서 애플리케이션을 실행시키고 그 실행 애플리케이션의 컨택스트를 선택된 그룹의 컨택스트로 구축하는 단계로, 여기에서 구성 애플리케이션은 관리자가 그 구성 애플리케이션에 해당하는 유저 애플리케이션의 실행 환경 구성을 세팅할 수 있게 하는 장치를 제공하고, 유저 애플리케이션은 그 유저 애플리케이션의 실행 환경 구성을 세팅할 수 있게 하는 장치를 제공하는, 애플리케이션의 실행 및 컨택스트 구축 단계와,
    관리자의 요청에 응답하여, 관리자가 선택한 그룹 컨택스트의 실행 환경을 저장하는 것을 포함하여, 유저 애플리케이션으로 관리자가 구축한 실행 환경을 서버에 저장하는 단계
    를 포함하는 방법.
  3. 서버와 복수의 유저 스테이션을 상호 연결하는 네트워크를 포함하는 네트워크 시스템에서, 유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 장치에 있어서,
    제1 엔드 유저 애플리케이션에 대한 개별적인 구성 애플리케이션을 실행시키는 수단과, 제2 엔드 유저 애플리케이션을 실행시키는 수단을 포함하고, 관리자가 제2 엔드 유저 애플리케이션을 실행시킴으로써 시스템 유저의 다른 그룹의 컨택스트에서 제1 및 제2 엔드 유저 애플리케이션의 실행 환경 구성을 특정할 수 있게 하는, 관리자 스테이션의 프로파일 매니저와,
    제1 및 제2 엔드 유저 애플리케이션에 대한 실행 환경 구성을 서버에 저장하는 수단
    을 포함하는 장치
  4. 서버와 복수의 유저 스테이션을 상호 연결하는 네트워크를 포함하는 네트워크 시스템에서, 유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 방법에 있어서,
    관리자 스테이션에서 프로파일 매니저를 제공하는 단계와,
    관리자 스테이션에서 엔드 유저 애플리케이션을 실행시킴으로써 다른 그룹에서 엔드 유저 애플리케이션의 실행 환경 구성을 특정할 목적으로, 프로파일 매니저가 다른 유저 그룹의 컨택스트에서 엔드 유저 애플리케이션을 실행시킬 수 있도록, 프로파일 매니저를 배열하는 단계와,
    엔드 유저 애플리케이션의 실행 환경 구성을 서버에 저장하는 단계와,
    유저가 소정의 컨택스트에서 다운로드하기를 요청한 경우, 소정의 컨택스트로 저장된 한 세트의 실행 환경을 워크스테이션에 다운로드시키는 단계
    를 포함하는 방법.
  5. 서버와 복수의 유저 스테이션을 상호 연결하는 네트워크를 포함하는 네트워크 시스템에 사용하기 위하여, 유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 장치에 있어서,
    관리자 스테이션의 프로파일 매니저와,
    관리자 스테이션에서 엔드 유저 애플리케이션을 실행시킴으로써 다른 그룹에서 엔드 유저 애플리케이션의 실행 환경 구성을 특정할 목적으로, 다른 유저 그룹의 컨택스트에서 엔드 유저 애플리케이션을 실행시키기 위한, 프로파일 매니저의 실행 수단과,
    엔드 유저 애플리케이션의 실행 환경 구성를 서버에 저장하는 수단과,
    유저가 소정의 컨택스트에서 다운로드하기를 요청한 경우, 소정의 컨택스트로 저장된 한 세트의 실행 환경을 워크스테이션에 다운로드시키는 수단
    을 포함하는 장치.
  6. 네트워크에서 엔드 유저 애플리케이션에 대한 유저 구성의 실행 환경을 생성하고 관리하기 위한 컴퓨터 인스트럭션을 기록하기 위한 기록 매체를 포함하는 컴퓨터 프로그램 제품에 있어서,
    관리자 스테이션에서 사용하기 위한 프로파일 매니저와,
    다른 유저 그룹의 컨택스트에서 엔드 유저 애플리케이션을 실행시키기 위한 프로파일 매니저의 제1 코드 세그먼트와,
    하나의 그룹의 컨택스트에서 엔드 유저 애플리케이션에 대한 실행 환경 구성을 특정하기 위하여, 관리자가 그 그룹의 컨택스트에서 엔드 유저 애플리케이션을 실행시킬 수 있게 하는, 프로파일 매니저의 제2 코드 세그먼트와,
    엔드 유저 애플리케이션에 대한 실행 환경 구성을 서버에 저장하기 위한 제3 코드 세그먼트와,
    유저가 소정의 컨택스트에서 다운로드하기를 요청한 경우, 소정의 컨택스트로 저장된 한 세트의 실행 환경을 워크스테이션에 다운로드하기 위한 제4 코드 세그먼트
    를 포함하는 컴퓨터 인스트럭션을 기록하기 위한 기록 매체를 포함하는 컴퓨터 프로그램 제품.
KR1019990013242A 1998-05-05 1999-04-15 유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 방법, 장치 및 그 컴퓨터 프로그램 제품 KR100318977B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US09/072,877 US6205476B1 (en) 1998-05-05 1998-05-05 Client—server system with central application management allowing an administrator to configure end user applications by executing them in the context of users and groups
US09/072,877 1998-05-05
US9/072,877 1998-05-05

Publications (2)

Publication Number Publication Date
KR19990087923A KR19990087923A (ko) 1999-12-27
KR100318977B1 true KR100318977B1 (ko) 2002-01-04

Family

ID=22110283

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990013242A KR100318977B1 (ko) 1998-05-05 1999-04-15 유저 스테이션에서 실행하는 애플리케이션에 대한 유저 구성의 실행 환경을 관리하는 방법, 장치 및 그 컴퓨터 프로그램 제품

Country Status (4)

Country Link
US (1) US6205476B1 (ko)
JP (1) JP3940239B2 (ko)
KR (1) KR100318977B1 (ko)
GB (1) GB2340273B (ko)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377971B1 (en) * 1996-02-23 2002-04-23 Citrix Systems, Inc. Method and apparatus for installing and executing a single user task in a multi-user environment
US6842897B1 (en) * 1998-07-31 2005-01-11 International Business Machines Corporation Method and apparatus for selecting classes using a browser for use by a virtual machine in a data processing system
US6757895B1 (en) * 1998-07-31 2004-06-29 International Business Machines Corporation Method and apparatus to selectively define java virtual machine initialization properties using a browser graphical user interface
US6651095B2 (en) * 1998-12-14 2003-11-18 International Business Machines Corporation Methods, systems and computer program products for management of preferences in a heterogeneous computing environment
US6650347B1 (en) * 1999-02-24 2003-11-18 Cisco Technology, Inc. Heirarchical GUI representation for web based network management applications
US7062532B1 (en) * 1999-03-25 2006-06-13 Autodesk, Inc. Method and apparatus for drawing collaboration on a network
US6993556B1 (en) * 1999-04-07 2006-01-31 Sentillion, Inc. Context administrator
US7346648B1 (en) * 1999-05-28 2008-03-18 Sentillion, Inc. Context management server appliance
US6446071B1 (en) * 1999-04-26 2002-09-03 International Business Machines Corporation Method and system for user-specific management of applications in a heterogeneous server environment
US6381568B1 (en) * 1999-05-05 2002-04-30 The United States Of America As Represented By The National Security Agency Method of transmitting speech using discontinuous transmission and comfort noise
US6505238B1 (en) * 1999-08-19 2003-01-07 International Business Machines Corporation Method and system for implementing universal login via web browser
US6807666B1 (en) * 1999-12-15 2004-10-19 Microsoft Corporation Methods and arrangements for providing multiple concurrent desktops and workspaces in a shared computing environment
US7031263B1 (en) * 2000-02-08 2006-04-18 Cisco Technology, Inc. Method and apparatus for network management system
US6697806B1 (en) * 2000-04-24 2004-02-24 Sprint Communications Company, L.P. Access network authorization
US6845451B1 (en) * 2000-05-04 2005-01-18 International Business Machines Corporation System, method and program for implementing logon assignments and preferences for users in a heterogeneous network
US7729943B1 (en) 2000-05-31 2010-06-01 Leglise Claude M Remotely managing and controlling a consumer appliance
US7933968B1 (en) * 2000-06-20 2011-04-26 Koninklijke Philips Electronics N.V. Token-based personalization of smart appliances
US6944857B1 (en) * 2000-10-12 2005-09-13 International Business Machines Corporation Method, system, computer program product, and article of manufacture for updating a computer program according to a stored configuration
US7089553B1 (en) * 2000-10-12 2006-08-08 International Business Machines Corporation Method, system, computer program product, and article of manufacture for downloading a remote computer program according to a stored configuration
US7703092B1 (en) * 2000-10-12 2010-04-20 International Business Machines Corporation Method, system, computer program product, and article of manufacture for installation and configuration of a computer program according to a stored configuration
US6834301B1 (en) * 2000-11-08 2004-12-21 Networks Associates Technology, Inc. System and method for configuration, management, and monitoring of a computer network using inheritance
US7958237B2 (en) * 2001-01-23 2011-06-07 Pearl Software, Inc. Method for managing computer network access
US6836786B1 (en) * 2001-04-30 2004-12-28 Microsoft Corporation Method and apparatus for terminal server addressability via URL specification
US6996602B2 (en) * 2001-06-18 2006-02-07 Ford Global Technologies, Llc Server-side page table framework for client application definition and execution
KR20030060884A (ko) * 2001-06-28 2003-07-16 주식회사 라스트원 웹 운영체제 및 웹 데스크탑
US7809807B2 (en) * 2001-08-08 2010-10-05 Canon Kabushiki Kaisha Image forming system, image forming method, and server
US20030093508A1 (en) * 2001-10-18 2003-05-15 Seiko Epson Corporation System for installing and launching network applications
US8266124B2 (en) 2001-12-18 2012-09-11 Caldvor Acquisitions Ltd., Llc Integrated asset management
JP3862652B2 (ja) * 2002-12-10 2006-12-27 キヤノン株式会社 印刷制御方法及び情報処理装置
US7111245B2 (en) * 2002-12-17 2006-09-19 International Business Machines Corporation System and method for smart graphical components
US7203905B2 (en) 2002-12-17 2007-04-10 International Business Machines Corporation System and method for platform independent desktop lockdown
US7117448B2 (en) * 2002-12-17 2006-10-03 International Business Machines Corporation System and method for determining desktop functionality based on workstation and user roles
US7310775B2 (en) * 2002-12-17 2007-12-18 International Business Machines Corporation System and method for restoring desktop components using distributed desktop packages
US20040113950A1 (en) * 2002-12-17 2004-06-17 International Business Machines Corporation System and method for centrally managed self-contained desktops
US7243336B2 (en) * 2002-12-17 2007-07-10 International Business Machines Corporation System and method of extending application types in a centrally managed desktop environment
US7209961B2 (en) * 2002-12-26 2007-04-24 Lenovo (Singapore) Pte, Ltd. Autonomic context-dependent computer management
US20040148370A1 (en) * 2003-01-23 2004-07-29 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
US9003295B2 (en) * 2003-03-17 2015-04-07 Leo Martin Baschy User interface driven access control system and method
US7447785B2 (en) * 2003-03-31 2008-11-04 Microsoft Corporation Dependent context trees for related network offerings
US20050025349A1 (en) * 2003-07-30 2005-02-03 Matthew Crewe Flexible integration of software applications in a network environment
US7822831B2 (en) * 2003-07-31 2010-10-26 International Business Machines Corporation Method, system and program product for preserving and restoring mobile device user settings
US20050060659A1 (en) * 2003-09-11 2005-03-17 Dell Products L.P. System, method and software for communicating the effects of user preference settings in an information handling system
US7472350B2 (en) * 2003-10-02 2008-12-30 International Business Machines Corporation Displaying and managing inherited values
US7941521B1 (en) 2003-12-30 2011-05-10 Sap Ag Multi-service management architecture employed within a clustered node configuration
US7725572B1 (en) 2003-12-30 2010-05-25 Sap Ag Notification architecture and method employed within a clustered node configuration
US7756968B1 (en) 2003-12-30 2010-07-13 Sap Ag Method and system for employing a hierarchical monitor tree for monitoring system resources in a data processing environment
US7822826B1 (en) 2003-12-30 2010-10-26 Sap Ag Deployment of a web service
WO2005083563A2 (en) * 2004-02-25 2005-09-09 Siemens Medical Solutions Health Services Corporation An executable application configuration system
US20050216585A1 (en) * 2004-03-26 2005-09-29 Tsvetelina Todorova Monitor viewer for an enterprise network monitoring system
US7526550B2 (en) * 2004-03-26 2009-04-28 Sap Ag Unified logging service with a log viewer
US7721266B2 (en) * 2004-03-26 2010-05-18 Sap Ag Unified logging service with a logging formatter
US7529818B2 (en) * 2004-05-20 2009-05-05 Bea Systems, Inc. System and method for performing validation of a configuration
US7660824B2 (en) * 2004-05-20 2010-02-09 Bea Systems, Inc. System and method for performing batch configuration changes
JP2006092314A (ja) * 2004-09-24 2006-04-06 Konica Minolta Business Technologies Inc 装置管理システム及び管理サーバ
US7788226B2 (en) * 2004-12-30 2010-08-31 Sap Ag Monitoring availability of applications
US9176934B2 (en) 2005-05-06 2015-11-03 Leo Baschy User interface for nonuniform access control system and methods
US9129088B1 (en) 2005-06-04 2015-09-08 Leo Martin Baschy User interface driven access control system and methods for multiple users as one audience
WO2007030796A2 (en) * 2005-09-09 2007-03-15 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US20070061428A1 (en) * 2005-09-09 2007-03-15 Autodesk, Inc. Customization of applications through deployable templates
US20070067384A1 (en) * 2005-09-21 2007-03-22 Angelov Dimitar V System and method for web services configuration creation and validation
US8185819B2 (en) 2005-12-12 2012-05-22 Google Inc. Module specification for a module to be incorporated into a container document
US9202068B2 (en) * 2006-03-29 2015-12-01 Leo M. Baschy User interface for variable access control system
US8185830B2 (en) * 2006-08-07 2012-05-22 Google Inc. Configuring a content document for users and user groups
US8019720B2 (en) * 2006-10-02 2011-09-13 Salesforce.Com, Inc. Asynchronous method and system for performing an operation on metadata
US8572057B2 (en) * 2006-10-02 2013-10-29 Salesforce.Com, Inc. Method and system for applying a group of instructions to metadata
US20080250050A1 (en) * 2007-04-05 2008-10-09 Cracchiolo Martin J Method and system for developing a desired set of configuration profiles for an application program and storage medium for storing a set of computer instructions which effectuate the method
US8176411B2 (en) * 2008-07-16 2012-05-08 International Business Machines Corporation Integrating an applet into a multi-page or multi-tasking web application to enable applet state to be automatically saved and restored
CN102272720A (zh) * 2009-01-09 2011-12-07 日本电气株式会社 服务提供设备、服务提供系统、服务提供方法、和存储介质
US20100229188A1 (en) * 2009-03-03 2010-09-09 International Business Machines Corporation Presenting Data Files to an Application Based on a Characteristic of the Application and the Files
US8528037B2 (en) 2009-08-28 2013-09-03 CSC Holdings, LLC Dynamic application loader for set top box
US20110307831A1 (en) * 2010-06-10 2011-12-15 Microsoft Corporation User-Controlled Application Access to Resources
US9977671B2 (en) * 2015-07-20 2018-05-22 Google Llc Methods for multi-source configuration of mobile applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4885770A (en) 1987-09-04 1989-12-05 Digital Equipment Corporation Boot system for distributed digital data processing system
US5410691A (en) * 1990-05-07 1995-04-25 Next Computer, Inc. Method and apparatus for providing a network configuration database
US5844553A (en) * 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
EP0706129A4 (en) * 1994-04-25 1999-09-22 Sony Corp Information memory processor
US5724530A (en) * 1994-07-25 1998-03-03 Apple Computer, Inc. Supervisory control system for networked multimedia workstations that provides remote launching of files
US5941947A (en) * 1995-08-18 1999-08-24 Microsoft Corporation System and method for controlling access to data entities in a computer network
US5838907A (en) * 1996-02-20 1998-11-17 Compaq Computer Corporation Configuration manager for network devices and an associated method for providing configuration information thereto
US5933646A (en) * 1996-05-10 1999-08-03 Apple Computer, Inc. Software manager for administration of a computer operating system
US5991807A (en) * 1996-06-24 1999-11-23 Nortel Networks Corporation System for controlling users access to a distributive network in accordance with constraints present in common access distributive network interface separate from a server
US5923885A (en) * 1996-10-31 1999-07-13 Sun Microsystems, Inc. Acquisition and operation of remotely loaded software using applet modification of browser software
US5875327A (en) * 1997-02-18 1999-02-23 International Business Machines Corporation Hierarchy of preferences and preference groups
US6029196A (en) * 1997-06-18 2000-02-22 Netscape Communications Corporation Automatic client configuration system
US6041347A (en) * 1997-10-24 2000-03-21 Unified Access Communications Computer system and computer-implemented process for simultaneous configuration and monitoring of a computer network

Also Published As

Publication number Publication date
GB2340273B (en) 2002-11-13
US6205476B1 (en) 2001-03-20
JPH11338823A (ja) 1999-12-10
KR19990087923A (ko) 1999-12-27
GB9909895D0 (en) 1999-06-30
JP3940239B2 (ja) 2007-07-04
GB2340273A (en) 2000-02-16

Similar Documents

Publication Publication Date Title
US6021496A (en) User authentication from non-native server domains in a computer network
Sapuntzakis et al. Virtual Appliances for Deploying and Maintaining Software.
US7546633B2 (en) Role-based authorization management framework
Dearle Software deployment, past, present and future
US6256031B1 (en) Integration of physical and virtual namespace
EP0660234B1 (en) Method and system for executing code remotely
US6185611B1 (en) Dynamic lookup service in a distributed system
US6871221B1 (en) Method and apparatus to manage network client logon scripts using a graphical management and administration tool
JP4777587B2 (ja) プロトコール・スタック
US7340444B2 (en) Dynamic symbolic link resolution
US6449643B1 (en) Access control with just-in-time resource discovery
US6138238A (en) Stack-based access control using code and executor identifiers
US6209101B1 (en) Adaptive security system having a hierarchy of security servers
US6920615B1 (en) Method and system for service-enablement gateway and its service portal
US6311321B1 (en) In-context launch wrapper (ICLW) module and method of automating integration of device management applications into existing enterprise management consoles
US5778222A (en) Method and system for managing access to objects
US6792462B2 (en) Methods, systems and computer program products for rule based delegation of administration powers
US6092199A (en) Dynamic creation of a user account in a client following authentication from a non-native server domain
US6275944B1 (en) Method and system for single sign on using configuration directives with respect to target types
US7072807B2 (en) Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US6950866B1 (en) XML-based integrated services parsing
US7647407B2 (en) Method and system for administering a concurrent user licensing agreement on a manufacturing/process control information portal server
US6567852B2 (en) Web user interface session and sharing of session environment information
US9716751B2 (en) Method and system for sharing web components between web sites
EP1473618B1 (en) Uniform modular framework for a host computer system

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee