KR100827280B1 - 포탈 서버로부터 세션 정보를 릴레이하기 위한 방법 및장치 - Google Patents

포탈 서버로부터 세션 정보를 릴레이하기 위한 방법 및장치 Download PDF

Info

Publication number
KR100827280B1
KR100827280B1 KR1020057005849A KR20057005849A KR100827280B1 KR 100827280 B1 KR100827280 B1 KR 100827280B1 KR 1020057005849 A KR1020057005849 A KR 1020057005849A KR 20057005849 A KR20057005849 A KR 20057005849A KR 100827280 B1 KR100827280 B1 KR 100827280B1
Authority
KR
South Korea
Prior art keywords
portlet
application
user
portlets
session
Prior art date
Application number
KR1020057005849A
Other languages
English (en)
Other versions
KR20050055746A (ko
Inventor
조아나 엔쥐
로히트 카푸르
레호 니굴
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20050055746A publication Critical patent/KR20050055746A/ko
Application granted granted Critical
Publication of KR100827280B1 publication Critical patent/KR100827280B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/954Navigation, e.g. using categorised browsing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 웹 애플리케이션에 액세스하려는 사용자의 요청에 응답하는 관련된 포틀릿들의 집합을 관리하는 웹 포탈 시스템을 위한 다음을 포함하는 장치 및 방법을 제공한다: 관련된 포틀릿들의 사용자 요청으로부터의 파라미터들을 저장하기 위한 포틀릿 애플리케이션 세션 객체; 및, 상기 관련된 포틀릿들과 상기 웹 애플리케이션 사이에서 통신하여 상기 관련된 포틀릿으로부터 수신된 사용자 요청들을 상기 웹 애플리케이션에 전달하기 위한, 상기 포틀릿 애플리케이션 세션 수단에 링크된 포틀릿 애플리케이션 통신 클라이언트.

Description

포탈 서버로부터 세션 정보를 릴레이하기 위한 방법 및 장치{METHOD AND APPARATUS FOR RELAYING SESSION INFORMATION FROM A PORTAL SERVER}
본 발명은 인터넷에 관한 것으로, 더 상세하게는 향상된 능력을 웹 사이트에 제공하는 웹 애플리케이션에서 포탈들(portals) 및 포틀릿들(portlets)을 생산하고 사용하기 위한 방법 및 장치에 관한 것이다.
월드 와이드 웹(World Wide Web)은 그래픽 정보를 사용자에게 보내어, 인터넷 상의 통신에 패러다임의 변화를 가져왔다. 웹의 출현으로 통신가능성(communicability) 및 광역 접속성(broad connectivity)을 증가하기 위한 요구가 있었고 이 요구들은 여전히 존재한다.
(웹 포탈로 미리 알려진) 포탈은 인터넷 공간에서 주요 패러다임 변화를 가져왔다. 이메일, 포럼, 서치엔진, 데이터베이스 또는 다른 정보들과 같은 리소스들의 배열 또는 서비스들을 제공하는 웹 사이트는 포탈로 생각될 것이다. 최초의 포탈은 온라인 서비스들이었을 것이다. 최초에, 인터넷 서핑을 하는 사용자들은, 조합되고 다양한 사이트로부터의 들어오는 정보를 제공하는 웹 페이지를 월드 와이드 웹에서 볼 수 있었지만, 집합의 구조(aggregation's constitution)는 사용자에게 투명하였다. 전형적인 웹 브라우저를 사용하는 사용자는 응집한(cohesive) 웹 페이지가 디스플레이되는 것을 본다. 보이는 웹 사이트와 관련되지 않는 다양한 웹 사이트들로부터의 페이지의 서로 다른 부분들의 근원(origination)은 쉽게 명확해지지 않는다. 이 부분들은 포틀릿들로 불린다.
포틀릿들은 눈에 보이는 활동적인 구성들이고 이 구성들을 종단 사용자들이 포탈 페이지에서 보게 된다. 데스크탑 PC의 윈도우와 유사하게, 각 포틀릿들은 브라우저의 일부 또는 결과를 디스플레이하는 개인 디지탈 장치 스크린의 일부를 갖는다.
사용자의 관점에서, 포틀릿은 콘텐트(content) 채널 또는 사용자가 가입하고, 개인 포탈 페이지에 추가하며, 또한 개인화된 콘텐트를 보여주도록 배열하는 애플리케이션이다.
콘텐트 제공자의 관점에서, 포틀릿은 콘텐트를 사용가능하게 만드는 수단이다.
포탈 관리자의 관점에서, 포틀릿은 포탈로 등록되어, 사용자들이 가입할 수 있는 콘텐트 컨테이너이다.
포탈의 관점에서, 포틀릿은 페이지들 중 하나로 렌더링(rendering)되는 구성이다.
기술적 관점에서, 포틀릿은 하나의 코드 또는 포탈 서버 상에서 실행되고 포탈 페이지들에 포함되어야 하는 콘텐트를 제공하는 작은 애플리케이션이다. 간단하게는, 포틀릿은 포탈 내에서 동작하는 자바 서브릿(JAVATM servlet)일 수 있다.
(전형적으로 월드 와이드 웹의 서로 다른 장소로부터 나온) 주어진 페이지의 각 부분(포틀릿)은 동일한 페이지의 또 다른 부분(포틀릿)과 협력하여 사용자의 서핑 또는 페이지 액세스를 위한 더 높은 성능을 달성할 수 있다. 따라서, 포탈은 복수의 채널을 경유하여 복수의 정보 소스들로의 다중 사용자들을 위한 액세스의 한 점(single point)이 된다.
포틀릿들은 기업과 고객간의 비지니스, 기업 간의 비지니스 등의 다양한 비지니스 모델들에 적용될 수 있다. 포탈 패러다임을 빨리 채택하기 위한 열쇠는 무결절성(seamless) 방식으로 기존의 웹 애플리케이션 데이터를 포탈 프레임워크(framework)로 통합하는 능력을 강화하는 것이다.
그러나, 포탈로의 무결절성 웹 애플리케이션 통합을 위하여 다양한 기술적 장애물들이 존재한다.
사용자들이 포탈 페이지에 액세스하는 경우, 각 사용자에 대한 원시 HTTP 요청 포탈 서버로 향한다. 각 포틀릿들은 포틀릿 세션으로 불리는 자신의 독립된 세션을 갖는다. 포틀릿이 주어진 웹 애플리케이션으로부터 나오는 정보를 렌더링할 필요가 있는 경우, 웹 애플리케이션의 뷰 포인트로부터 하나의 응집된 HTTP 세션으로서, 다양한 포틀릿들로부터 주어진 웹 애플리케이션까지 생성되는 다중 HTTP 요청을 유지하는 메커니즘이 존재하지 않는다. 또한, 다중 포틀릿 세션 사이의 세션 정보를 웹 애플리케이션 세션에 릴레이하는 메커니즘은 존재하지 않는다. 웹 애플리케이션이 정확하게 렌더링하기 위하여 포틀릿들로부터의 세션 정보는 웹 애플리케이션에 포워딩될 필요가 있다. 포틀릿 세션으로부터 웹 애플리케이션까지의 포 워딩에 필요한 중요한 세션 정보의 예는 위치 정보, 사용자 에이전트, 및 세션 타임아웃 정보를 포함한다.
종래 기술에서는 다음의 포탈 가공물들(artifacts)이 기존의 웹 애플리케이션과 함께 협력하는 방법에 관계된 한계들이 있다. 포탈 아키텍쳐로의 웹 애플리케이션 통합의 구현은 잘 정의되지 않는다. 이 엔터티들은 다음을 포함한다:
포탈에 대한 원시(original) HTTP 요청;
포탈 내의 포틀릿 세션;
관련된 웹 애플리케이션에 대한 포탈로부터의 HTTP 요청.
서로 다른 사용자들이 포탈 페이지에 액세스하는 경우, 각 사용자에 대한 원시 HTTP 요청은 포탈 서버(a)를 향한다. 또한 각 사용자에 대한 원시 HTTP 세션은 전체적으로 포탈 서버가 소유한다. 각 포틀릿들은 포틀릿 세션으로 불리는 독립적인 세션을 갖는다. 포틀릿이 주어진 웹 애플리케이션(b)으로부터 오는 정보를 렌더링할 필요가 있는 경우, 전형적으로 다음의 기술적 장애물들이 존재한다:
i. 포틀릿이 백엔드 웹 애플리케이션에 대한 또는 백엔드 웹 애플리케이션으로부터의 HTTP 요청들 및 응답들을 생성하는 기존의 메커니즘이 없다.
j. 백엔드 웹 애플리케이션(및 웹 애플리케이션의 세션)에 대한 다중 요청들 및 응답들을 호출 포틀릿(및 포틀릿 세션)에 대한 다중 요청들 및 응답들에 정확히 매핑하도록 관리하는 기존의 메커니즘이 없다. 각각(포틀릿 및 웹 애플리케이션 모두)은 그에 따른 사용자 세션을 유지한다.
다중 포틀릿들이 동일한 웹 애플리케이션을 호출하는 경우, 동일한 웹 애플 리케이션 세션 내에서 이러한 다중 포틀릿들의 요청들을 취급하는 웹 애플리케이션으로는 상기 문제는 어려워진다.
k. 다중 포틀릿 세션들과 웹 애플리케이션 세션 사이의 세션 정보를 릴레이(relay)하는 기존의 메커니즘은 없다.
동일한 포틀릿 애플리케이션 내의 잘 정의된 포틀릿들의 세트가 백엔드의 하나의 웹 애플리케이션과 협력하는 경우, 애플리케이션으로부터 렌더링된 정보가 포틀릿들의 포탈 정보의 설정과 일치하도록 참여하는 모든 포틀릿들은 정확한 세션 정보를 백엔드의 웹 애플리케이션에 검색 및 포워딩할 수 있어야 한다. 그러한 설정의 예는 위치(locale) 정보, 특정 액세스의 사용자 에이전트(agent) 등을 포함한다. 예를 들면, 웹 애플리케이션이 송신한 응답들은 그것을 디스플레이하는 포탈 서버 내의 포틀릿과 동일한 위치를 사용하고 잇어야 한다.
포탈 사용자의 자격이 백엔드 웹 애플리케이션에 의하여 요구되지 않는 한번의 사인온(single sign on)에 대한 기존의 메커니즘은 없다. 이것은 중요한 요구사항이다. 포틀릿들은 서로 다른 근원들 및 식별 요구사항들을 가지기 때문에, 이러한 메커니즘이 없다면 사용자가 웹 페이지의 한 부분에서 동일한 웹 페이지의 다른 부분으로 이동하는 경우 사용자의 자격이 요구될 것이다.
주어진 포틀릿 애플리케이션과 관련된 웹 애플리케이션 백엔드의 포틀릿들 사이에서 다중 요청들 또는 응답들의 동기화에 대한 기존의 메커니즘은 없다.
종래 기술은 동일한 애플리케이션 내의 다중 포틀릿들이, 동적으로 정의되지 않은 다양한 통합 웹 애플리케이션뿐만 아니라, (동일한 콘텍스트를 공유하는) 하 나의 또 다른 웹 애플리케이션과 협력할 수 있는 방법에 관한 한계가 있었다.
동일한 '콘텍스트'를 동적으로 공유함으로써 협력하는 다중 포틀릿들을 포함하는 하나의 사용 시나리오는 개념적으로 한계를 예시할 것이다.
동일한 포탈 웹 페이지상에 디스플레이되는 3개의 포틀릿들로:
- 제1 포틀릿은 계정들의 리스트를 디스플레이함으로써 계정 요약을 보여준다
- 제2 포틀릿은 주어진 계정들의 미결 요금 청구서 리스트를 보여준다.
- 제3 포틀릿은 주어진 계정의 주문 기록 요약을 보여준다.
제2 및 제3 포틀릿들은 개념적으로 제1 포틀릿에 동적으로 종속되어 있고, 미결 요금 청구서(제2 포틀릿) 및 주문 기록(제3 포틀릿)을 반영하여 제1 포틀릿의 계정 리스트로부터 선택된 계정과 동기화된다.
종래 기술의 한계들:
i. 협력적으로 동작할 포틀릿 애플리케이션 내의 포틀릿들의 서브 그룹핑을 정의하는 메커니즘은 존재하지 않는다.
j. 주어진 포틀릿 애플리케이션 내의 포틀릿들의 서브 그룹 사이에서 공유되는 (동적으로 변화될 수 있는) 콘텍스트를 정의하는 메커니즘은 존재하지 않는다: 여기서의 콘텍스트의 예는 포틀릿 1에서 선택된 계정이고, 그 계정 선택은 동적으로 변화될 수 있다.
k. 콘텍스트의 변화를 동적으로 검출하는 메커니즘은 존재하지 않는다: 상기 예의 포틀릿 1의 계정 리스트의 하나의 계정부터 또 다른 계정까지의 선택 변화의 예.
l . 동일한 콘텍스트를 공유하는 포틀릿들의 서브 그룹 내의 참여하는 각 포틀릿들에 대하여 미리 정의된 액션(또는 응답들)을 등록(register)하는 메커니즘은 존재하지 않는다: 콘텍스트가 (포틀릿 1에서 하나의 계정 선택으로부터 또 다른 것으로) 변화되는 경우 미결의 요금 청구서(포틀릿 2의 액션)의 리스트를 디스플레이하는 예.
m. 동적 콘텍스트를 관련된 통합 웹 애플리케이션들로 릴레이하는 메커니즘은 존재하지 않는다.
종래 기술에는 포틀릿 애플리케이션 내의 포틀릿들의 그룹을 위한 리프레쉬(refresh) 시퀀스를 정의하는 메커니즘이 존재하지 않는다.
i. 오늘날, 디스플레이되고 있는 포틀릿들의 주어진 세트 리프레쉬 순서를 포탈 디자이너가 특정하는 규정(provision)은 없다.
상기 시나리오에서, 제2 및 제3 포틀릿들이 자동적으로 리프레쉬되도록, 포탈 디자이너는 제1 포틀릿(계정 리스트)을 첫번째로 리프레쉬하고, 제2 포틀릿을 두번째로 리프레쉬하는 것 등을 원할 것이다. (포틀릿이 배치된 경우) 정의된 액션들은 정확한 시퀀스로 일어난다.
포탈의 아키텍처에는 비지니스 룰(rule)에 기초한 포틀릿들의 집합(aggregation) 및 사용자들의 롤(role)을 포함하는 사용자의 프로파일링 정보를 지원하는 잘 정의된 메커니즘이 부족하다.
i. 비지니스 룰에 기초하여 사용자마다 포탈 리소스들의 집합을 정의하는 메 커니즘이 존재하지 않는다.
예: 모든 십대 포탈 사용자들은 포틀릿들의 하나의 그룹을 보고, 모든 연장자 포탈 사용자들은 포틀릿들의 또 다른 그룹을 본다.
j. 런타임에 동적으로 수행되는 룰 기반 및 사용자 기반 포틀릿들의 집합을 위한 메커니즘이 존재하지 않는다.
관련된 통합 백엔트 웹 애플리케이션들은 포탈 레벨의 비지니스 룰 및 사용자 프로파일 정보를 공유하지 않는다.
룰 또는 사용자 구분(segmentation)이 포탈과 통합 백엔드 웹 애플리케이션 사이에서 일치하도록 하는, 통합 웹 애플리케이션에서의 비지니스 룰 또는 사용자 구분 정보의 공유는 없다. 예를 들면, 십대의 연령 범위를 정의하는 룰이 있는 경우, 그 룰은 일관성을 위하여 통합 웹 애플리케이션에 가시적이고(visible) 적용할 수(applicable) 있어야 한다.
전문용어
포틀릿
포틀릿은 종단 사용자들이 포탈 웹 페이지들 내에서 볼 수 있는 가시적인 능동적(active) 구성이다. 데스크탑 PC의 윈도우와 유사하게, 각 포틀릿은 포틀릿의 특정 정보를 디스플레이하는 브라우저 또는 PDA(개인 디지털 기기) 스크린의 일부를 소유한다.
포틀릿 애플리케이션
포틀릿은 또한 포틀릿 애플리케이션에서 함께 그룹화될 수 있다. 포틀릿 애 플리케이션들은 웹 아카이브(archive) 파일들(WAR)을 사용하여 분배 및 배치된다. 표준 웹 애플리케이션 배치 디스크립터(deployment descriptor)로의 포틀릿의 특정한 확장이 있다.
포틀릿 메시지
포틀릿 액션들 및 포틀릿 메시지들을 사용하여 2개의 포틀릿 사이에서 통신을 하기 위하여 포틀릿 메시지들이 사용된다. 송신하는 포틀릿은 포틀릿 액션을 생성하고, 액션을 URL로 인코딩한다. 예컨대, 업무를 수행하려는 사용자가 URL을 써 넣은 경우 액션 리스너(listener)가 호출되고 필요한 데이터를 송신하는 포틀릿 메시지를 송신한다.
포틀릿 세션
포틀릿 세션은 각 사용자 및 각 포틀릿 인스턴스에 대하여 세션 정보를 유지하도록 로그온하는 각 사용자 및 각 포틀릿 인스턴스에 대하여 생성된다.
본 발명의 다양한 실시예들은 종래 기술의 하나 이상의 결점들을 언급한다.
본 발명은 관련된 포틀릿들에 대한 포탈로부터의 세션 정보를 백엔드 웹 애플리케이션들에 릴레이하는 방법을 제공한다. 이것은 세션 정보를 포탈로부터 백엔드 웹 애플리케이션까지 릴레이를 가능케 하여, 웹 애플리케이션이 포탈에 의해 제공되는 세션 정보에 따라 동일하게 행동하는 것을 가능하게 만든다.
본 발명의 실시예는 사용자 세션 정보를 저장하기 위한 사용자 세션 정보 저장부(매핑 테이블)를 제공한다. 관련된 포틀릿들은 포틀릿들에 대한 사용자 요청으로부터 데이터 및 명령들을 저장하는 포틀릿 요청 파라미터 맵들을 갖는다. 포틀릿 요청들로부터의 파라미터들은 상기 포틀릿으로부터 웹 애플리케이션 백엔드까지 HTTP 요청들에 대하여 릴레이된다.
위치, 세션 타임아웃 정보 등의 중요한 세션 정보는 이제 백엔드 웹 애플리케이션에 릴레이될 수 있다.
본 발명의 실시예로서, 이제 포틀릿 서버와 백엔드 웹 애플리케이션 사이의 공통 세션 데이터의 공유를 위한 세션 릴레이를 구현할 수 있으므로, 포탈 서버의 응답들과 동기화된 백엔드 웹 애플리케이션 응답들로서, 백엔드 웹 애플리케이션은 포탈 서버로부터 정보를 수신하여, 백엔드 웹 애플리케이션에 의하여 그 정보가 이용되는 것을 가능케 한다.
본 발명의 하나의 실시예는 웹 애플리케이션에 대하여 사용자에게 웹 포탈을 디스플레이하는, 다음을 포함하는 장치를 제공하는데, 상기 웹 포탈은 복수의 관련된 포틀릿들을 디스플레이하고, 상기 사용자의 액세스가 가능한 정보를 서로 공유한다: 웹 애플리케이션으로의 액세스를 제공하도록 웹 포탈을 동작하기 위한 포탈 서버; 관련된 포틀릿들의 집합을 관리하기 위한 포탈 서버 상에서 동작하는 포틀릿 애플리케이션; 상기 포틀릿 애플리케이션은 다음을 포함한다: 웹 애플리케이션에 액세스하려는 사용자의 요청들에 대하여 포틀릿들을 시작하는 수단; 포틀릿들에 대한 포틀릿 애플리케이션 세션을 관리하는 수단; 및, 포틀릿 애플리케이션 세션 객체와 포틀릿들을 관련시키기 위하여 사용자의 요청들로부터의 파라미터들을 저장하기 위한, 포틀릿 애플리케이션 세션 객체가 제어하는 포틀릿 애플리케이션 세션 객체 데이터 저장부를 제공한다.
본 발명의 장치는 포틀릿 애플리케이션 세션 객체와 웹 애플리케이션 사이에서 통신을 하여 관련된 포틀릿들로부터 수신된 사용자 요청을 웹 애플리케이션에 전달하기 위하여 포틀릿 애플리케이션에서 포틀릿 애플리케이션 통신 클라이언트를 포함한다. 포틀릿 애플리케이션은 공통 키를 포틀릿 애플리케이션 세션 객체와 관련된 각 포틀릿에 할당할 수 있다.
본 발명의 또 다른 실시예는 복수의 사용자들에게 웹 애플리케이션에 대한 웹 포탈을 디스플레이하는, 다음을 포함하는 장치를 제공하는데, 상기 웹 포탈은 사용자의 액세스가 가능한 정보를 공유하는 복수의 포틀릿들을 디스플레이한다: 웹 애플리케이션으로의 액세스를 제공하도록 웹 포탈을 동작하기 위한 포탈 서버; 복수의 각 사용자들에 대하여 관련된 포틀릿들의 집합을 관리하기 위한, 복수의 각 사용자들에 대하여 포탈 서버 상에서 동작하는 포틀릿 애플리케이션; 상기 각 포틀릿 애플리케이션은 다음을 포함한다: 웹 애플리케이션에 액세스하려는 복수의 사용자 중 한 명의 요청들에 대하여 포틀릿들을 시작하는 수단; 포틀릿들에 대한 포틀릿 애플리케이션 세션 객체를 관리하는 수단; 및, 포틀릿 애플리케이션 세션 객체와 포틀릿들을 관련시키기 위하여 사용자의 요청들로부터의 파라미터들을 저장하기 위한, 포틀릿 애플리케이션 세션 객체가 제어하는 포틀릿 애플리케이션 세션 객체 데이터 저장부.
본 발명의 또 다른 실시예는 복수의 웹 애플리케이션들에 대하여 사용자에게 웹 포탈을 디스플레이하는 다음을 포함하는 장치를 제공하는데, 상기 웹 포탈은 사용자의 액세스가 가능한 정보를 공유하는 복수의 관련된 포틀릿들을 디스플레이한다: 웹 애플리케이션으로의 액세스를 제공하도록 웹 포탈을 동작하기 위한 포탈 서버; 포틀릿 서버 상에서 동작하기 위한 복수의 웹 애플리케이션들과 각각 관계있는 복수의 포틀릿 애플리케이션들, 상기 각 포틀릿 애플리케이션은 관련된 포틀릿들의 집합을 관리하는 것으로 적합화된다; 상기 각 포틀릿 애플리케이션은 다음을 포함한다: 복수의 웹 애플리케이션 중 하나에 액세스하려는 사용자의 요청에 대하여 포틀릿들을 시작하는 수단; 포틀릿들에 대한 포틀릿 애플리케이션 세션 객체를 관리하는 수단; 및, 포틀릿 애플리케이션의 포틀릿들을 포틀릿 애플리케이션 세션의 포틀릿 애플리케이션 세션 객체와 관련시키기 위하여 사용자의 요청들로부터의 파라미터들을 저장하기 위한, 포틀릿 애플리케이션 세션 객체가 제어하는 포틀릿 애플리케이션 세션 객체.
본 발명의 장치의 또 다른 태양은 포틀릿 애플리케이션 세션 객체로 다중 웹 애플리케이션들에 접속하도록 적합화된 사용자 세션 정보 테이블을 포함한다.
본 발명의 또 다른 실시예는 웹 애플리케이션에 대하여 사용자에게 웹 포탈을 디스플레이하는, 다음을 포함하는 장치를 제공하는데, 상기 웹 포탈은 사용자의 액세스가 가능한 정보를 서로 공유하는 복수의 관련된 포틀릿들을 디스플레이한다: 웹 애플리케이션으로의 액세스를 제공하기 위한 웹 포탈을 동작하는 포탈 서버; 관련된 포틀릿들을 관리하기 위한, 포탈 서버 상에서 동작하는 포틀릿 애플리케이션; 상기 포틀릿 애플리케이션은 다음을 포함한다: 웹 애플리케이션에 액세스하려는 사용자의 요청에 대하여 제1 포틀릿을 시작하는 수단; 사용자를 위하여 제1 포틀릿에 대한 포틀릿 애플리케이션 세션 객체를 생성하는 수단; 요청으로부터의 파라미터들을 저장하는 수단; 웹 애플리케이션에 액세스하려는 사용자의 추가적인 요청에 대하여 제1 포틀릿과 관련된 추가적인 포틀릿들을 생성하는 수단; 추가적인 포틀릿들을 포틀릿 애플리케이션 세션 객체와 관련시키기 위하여 저장된 파라미터를 사용하기 위한, 포틀릿 애플리케이션 세션 객체가 제어하는 포틀릿 애플리케이션 세션 객체 데이터 저장부; 및, 포틀릿 애플리케이션 세션 객체와 웹 애플리케이션이 통신을 하여 제1 및 추가적인 포틀릿들로부터 수신한 사용자 요청들을 웹 애플리케이션에 보내기 위한 포틀릿 애플리케이션 통신 클라이언트(HTTP 클라이언트)를 생성하는 수단.
상기 장치는 포틀릿 애플리케이션 세션 객체와 웹 애플리케이션 사이에서 통신을 하여 관련된 포틀릿들로부터 수신된 사용자 요청들을 웹 애플리케이션에 보내기 위하여 포틀릿 애플리케이션에서 포틀릿 애플리케이션 통신 클라이언트를 포함할 수 있다.
바람직하게는, 상기 포틀릿 애플리케이션은 포틀릿 애플리케이션 세션 객체와 관련된 각 포틀릿에 공통 키를 할당한다.
포틀릿 애플리케이션 세션 객체로 다중 웹 애플리케이션에 접속하도록 적합화된 사용자 세션 정보 테이블이 제공될 수 있는 장점이 있다.
본 발명의 또 다른 실시예는 웹 애플리케이션에 대하여 사용자에게 웹 포탈을 디스플레이하는 다음을 포함하는 장치를 제공하는데, 상기 웹 포탈은 사용자의 액세스가 가능한 정보를 서로 공유하는 복수의 관련된 포틀릿들을 디스플레이한다: 웹 애플리케이션으로의 액세스를 제공하도록 웹 포탈을 동작하는 포탈 서버; 관련된 포틀릿들의 집합을 관리하기 위하여, 포탈 서버 상에서 동작하는 포틀릿 애플리케이션; 상기 포틀릿 애플리케이션은 다음을 포함한다: 웹 애플리케이션에 액세스하려는 사용자의 요청들에 대하여 포틀릿들을 시작하는 수단; 포틀릿들에 대한 포틀릿 애플리케이션 세션 객체를 관리하는 수단; 및, 포틀릿들을 포틀릿 애플리케이션 세션 객체와 관련시키기 위하여 사용자 요청들로부터의 파라미터들을 저장하기 위한, 포틀릿 애플리케이션 세션 객체가 제어하는 포틀릿 애플리케이션 세션 객체 데이터 저장부를 포함한다.
본 발명의 또 다른 태양은 웹 포탈에서 복수의 관련된 포틀릿들 사이에서 정보를 공유하는, 다음을 포함하는 방법을 제공한다: 복수의 관련된 포틀릿들 각각에 대하여 포틀릿 데이터 저장부에 액세스를 부여하는 단계; 복수의 관련된 포틀릿들 각각이 포틀릿 데이터 저장부에 데이터를 기록(write)하고 포틀릿 데이터 저장부로부터 저장된 데이터를 읽도록 허용하는 단계를 포함한다.
상기 방법은, 상기 관련된 포틀릿들이 데이터 프로세싱 시스템 상에서 동작하도록 적합화된 포틀릿 애플리케이션에 의하여 관리되고; 상기 포틀릿 데이터 저장부는 포틀릿 애플리케이션의 관련된 포틀릿들 사이에서 데이터의 교환을 허용하여, 데이터 저장부에서 관련된 포틀릿들에 의하여 데이터의 판독 및 기록을 제어하는 포틀릿 애플리케이션 세션 객체에 의하여 관리되는 포틀릿 애플리케이션 스토리지를 포함하는 시스템을 유리하게 제공할 수 있다.
본 발명의 또 다른 태양은 웹 포탈에서 관련된 다중 포틀릿들 사이의 정보 공유를 위한 다음을 포함하는 장치를 제공한다: 관련된 다중 포틀릿들을 관리하기 위한 포틀릿 애플리케이션; 포틀릿 애플리케이션 데이터 저장부; 포틀릿들이 서로 데이터를 교환할 수 있도록 관련된 다중 포틀릿들에 데이터 저장부에 대한 판독/기록 액세스를 부여하는 수단을 포함한다.
본 발명의 또 다른 태양은 웹 포탈에서 관련된 다중 포틀릿들을 호스팅하기 위한 포탈 상에서 동작가능한 다음을 포함하는 포틀릿 서버를 제공한다: 관련된 다중 포틀릿들을 관리하기 위한 수단; 포틀릿 애플리케이션 세션 객체를 관리하기 위한 수단; 관련된 포틀릿들이 서로 데이터를 교환할 수 있도록 관련된 다중 포틀릿들에 데이터 저장부에 대한 판독/기록 액세스를 부여하는 포틀릿 애플리케이션 세션 객체가 관리하는 포틀릿 애플리케이션 데이터 저장부를 제공한다.
본 발명의 또 다른 태양은 웹 포탈에서 관련된 다중 포틀릿들을 호스팅하기 위한 포탈 서버 상에서 동작이 가능한 다음을 포함하는 포틀릿(애플리케이션) 서버를 제공한다: 관련된 다중 포틀릿들을 관리하기 위한 수단; 포틀릿 애플리케이션 세션 객체를 생성 및 관리하기 위한 수단; 관련된 포틀릿들이 서로 데이터를 교환할 수 있도록 관련된 다중 포틀릿들에 데이터 저장부에 대한 판독/기록 액세스를 부여하는 포틀릿 애플리케이션 세션 객체가 생성하고 관리하는 포틀릿 애플리케이션 데이터 저장부를 제공한다.
유리하게는, 상기 포틀릿 애플리케이션은 공통 키를 포틀릿 애플리케이션 세션 객체와 관련된 각 포틀릿에 할당한다.
본 발명의 또 다른 태양은 사용자의 액세스가 가능한 웹 포탈에서 관련된 다중 포틀릿들을 호스팅하기 위한 포탈 서버 상에서 동작이 가능한 다음을 포함하는 포틀릿 애플리케이션을 제공한다: 관련된 다중 포틀릿들을 관리하기 위한 포틀릿 애플리케이션 수단; 사용자에 대한 포틀릿 애플리케이션 세션 객체를 관리하기 위한 포틀릿 애플리케이션 수단; 포틀릿 애플리케이션 객체로의 액세스를 제어하기 위하여 관련된 각 포틀릿에 키를 부여하는 포틀릿 애플리케이션 수단을 제공한다.
본 발명의 또 다른 태양은 사용자의 액세스가 가능한 웹 포탈에서 관련된 다중 포틀릿들을 호스팅하기 위한 포탈 서버 상에서 동작이 가능한 다음을 포함하는 포틀릿 애플리케이션을 제공한다: 관련된 다중 포틀릿들을 관리하기 위한 포틀릿 애플리케이션 수단; 사용자에 대한 포틀릿 애플리케이션 세션을 생성 및 관리하기 위한 포틀릿 애플리케이션 수단; 사용자를 위하여 포틀릿 애플리케이션 세션 객체에 대한 키를 생성 및 관리하는 포틀릿 애플리케이션 수단; 포틀릿 애플리케이션 객체으로의 액세스를 제어하기 위하여 관련된 각 포틀릿에 키를 부여하는 포틀릿 애플리케이션 수단을 제공한다.
유리하게는, 하나의 포틀릿 애플리케이션이 각 사용자에 할당되고, 하나의 키가 각 사용자에 대하여 각 포틀릿 애플리케이션에 대한 각 포틀릿 애플리케이션 객체들에 개별적으로 할당된다.
본 발명의 또 다른 태양은 웹 애플리케이션에 대하여 사용자에게 웹 포탈을 디스플레이하기 위한 다음을 포함하는 장치를 제공한다: 사용자에게 웹 애플리케이션으로의 액세스를 제공하는 웹 포탈을 동작하기 위한 포탈 서버; 포탈 서버 상에서 동작하기 위한, 관련된 포틀릿들의 집합을 관리하기 위한 포틀릿 애플리케이션; 사용자를 위한 관련된 포틀릿들에 대한 포틀릿 애플리케이션 세션 객체; 포틀릿 애플리케이션 세션 객체에 의하여 제어되는 포틀릿 애플리케이션 세션 객체 데이터 저장부; 관련된 포틀릿과 웹 애플리케이션 사이에서 통신하여 관련된 포틀릿들로부터 수신된 사용자 요청들을 웹 애플리케이션에 보내기 위한 포틀릿 애플리케이션 데이터 저장부에 링크된 포틀릿 애플리케이션 통신 클라이언트; 상기 통신 클라이언트는 통신 클라이언트가 웹 애플리케이션에 동기화되도록 관련된 포틀릿들로부터의 요청들을 저장 및 동기화하기 위한 요청 버퍼를 가진다.
바람직하게는, 상기 포틀릿 애플리케이션 통신 클라이언트는 네트워크 상의 요청들을 포함하는 정보를 웹 애플리케이션에 송신하고 웹 애플리케이션으로부터의 요청들에 대한 응답들을 포함하는 정보를 수신하도록 적합화된다.
본 발명의 또 다른 태양은 웹 애플리케이션에 대하여 사용자에게 웹 포탈을 디스플레이하기 위한 다음을 포함하는 장치를 제공한다: 웹 애플리케이션으로의 사용자의 액세스를 제공하도록 웹 포탈을 동작하기 위한 포탈 서버; 관련된 포틀릿들의 집합을 관리하기 위한, 포탈 서버 상에서 동작하기 위한 포틀릿 애플리케이션; 사용자를 위한 관련된 포틀릿들에 대한 포틀릿 애플리케이션 세션 객체; 포틀릿 애플리케이션 세션 객체에 의하여 제어되는 포틀릿 애플리케이션 세션 객체 저장부; 관련된 포틀릿들과 웹 애플리케이션 사이에서 통신하여 관련된 포틀릿들로부터 수신된 사용자 요청들을 웹 애플리케이션에 보내기 위하여 포틀릿 애플리케이션 데이터 저장부에 링크된 포틀릿 애플리케이션 통신 클라이언트; 상기 통신 클라이언트는 통신 클라이언트가 웹 애플리케이션에 나열되어 생성하도록 관련된 포틀릿들로부터의 요청들을 저장하고 나열하기 위한 요청 버퍼를 갖는다.
바람직하게는, 상기 포틀릿 애플리케이션 통신 클라이언트는 네트워크 상의 요청들을 포함하는 정보를 웹 애플리케이션 또는 웹 애플리케이션 서버에 송신하고 웹 애플리케이션으로부터의 요청들에 대한 응답들을 포함하는 정보를 수신하도록 적합화된다.
웹 애플리케이션으로의 액세스를 제공하도록 웹 포탈을 동작하는데 적합화된 포탈 서버를 위한 본 발명의 또 다른 태양은 관련된 포틀릿들의 집합을 관리하기 위한, 포탈 서버 상에서 동작하는 포틀릿 애플리케이션을 갖는다. 상기 포틀릿 애플리케이션은 다음을 포함한다: 웹 애플리케이션에 액세스하려는 사용자의 요청들에 대하여 포틀릿들을 시작하는 수단; 포틀릿들에 대한 포틀릿 애플리케이션 세션 객체를 관리하는 수단; 및, 포틀릿들과 포틀릿 애플리케이션 세션 객체를 관련시키기 위하여 사용자의 요청들로부터의 파라미터들을 저장하기 위한, 포틀릿 애플리케이션 세션 객체가 제어하는 포틀릿 애플리케이션 세션 객체 데이터 저장부. 상기 장치는 다음을 포함한다: 관련된 포틀릿들과 웹 애플리케이션 사이에서 통신을 하여 관련된 포틀릿으로부터 수신된 사용자 요청들을 웹 애플리케이션에 보내기 위한 포틀릿 애플리케이션 데이터 저장부에 링크된 포틀릿 애플리케이션 통신 클라이언트(HTTP 클라이언트); 사용자 세션 정보를 대응하는 웹 애플리케이션의 세션에 매핑하기 위하여, 상기 포틀릿 애플리케이션 통신 클라이언트는 다음의 사용자 세션 정보의 세트로부터 선택된 정보를 포함하는 사용자 세션 정보를 저장하는 사용자 세션 정보 저장부(매핑 테이블)을 갖는다: 사용자 ID, 사용자 적격, 언어 우선순위(preference), 세션 타임아웃 정보, 세션 ID, 등.
바람직하게는, 상기 세션 타임아웃 정보는 포탈 서버 및 웹 애플리케이션의 세션 타임아웃 정보를 포함한다.
본 발명의 또 다른 태양은 포탈에서 관련된 포틀릿들의 집합을 관리하고, 웹 애플리케이션으로의 액세스를 사용자에 제공하는 서버 상에서 동작하기 위한, 포틀릿 애플리케이션을 제공한다; 상기 관련된 포틀릿들은 사용자 요청들로부터의 명령들 및 데이터를 포틀릿들에 저장하는 포틀릿 요청 파라미터 맵들을 갖는다; 사용자를 위한 관련된 포틀릿들에 대한 포틀릿 매플리케이션 세션 객체; 포틀릿 애플리케이션 세션 객체에 의하여 제어되는 포틀릿 애플리케이션 세션 데이터 저장부; 관련된 포틀릿들과 웹 애플리케이션 사이에서 통신하여 관련된 포틀릿들로부터 수신된 사용자 요청들을 웹 애플리케이션에 전달하기 위한 포틀릿 애플리케이션 데이터 저장부에 링크된 포틀릿 애플리케이션 통신 클라이언트(HTTP 클라이언트); 상기 통신 클라이언트는 상기 통신 클라이언트가 웹 애플리케이션에 데이터 및 명령들을 제공할 수 있도록 관련된 포틀릿들의 포틀릿 요청 파라미터 맵들로부터 요청들을 저장하기 위한 요청 버퍼를 갖는다.
본 발명의 또 다른 태양은 관련된 포틀릿들과 웹 애플리케이션 사이에서 통신하여 관련된 포틀릿들로부터 수신된 사용자 요청들을 웹 애플리케이션에 전달하기 위하여 포탈 애플리케이션 데이터 저장부에 링크된 포틀릿 애플리케이션 통신 클라이언트(HTTP 클라이언트)를 제공한다; 사용자 세션 정보를 대응하는 웹 애플리케이션의 세션에 매핑하기 위하여, 상기 포틀릿 애플리케이션 통신 클라이언트는 다음의 사용자 세션 정보의 세트로부터 선택된 정보를 포함하는 사용자 세션 정보를 저장하기 위한 사용자 세션 정보 저장부(매핑 테이블)을 갖는다: 사용자 ID, 사용자 적격, 언어 우선순위, 세션 타임아웃 정보, 세션 ID 등.; 상기 세션 타임아웃 정보는 포탈 서버 및 웹 애플리케이션의 세션 타임아웃 정보를 포함한다.
바람직하게는, 상기의 예는 웹 애플리케이션이 포탈 서버보다 먼저 타임아웃하는 경우 사용자를 재인증함으로써 포탈 서버 및 웹 애플리케이션 사이의 세션 타임아웃을 매칭하기 위한 포틀릿 애플리케이션 통신 클라이언트에 대한 동기화 수단을 포함한다.
본 발명의 또 다른 태양은 사용자의 액세스가 가능한 웹 포탈에서 관련된 다중 포틀릿들을 호스팅하기 위한 포탈 서버 상에서 동작이 가능한 포틀릿 애플리케이션을 제공하는데, 상기 포탈 서버는 관련된 포틀릿들이 서로 메시지를 보낼 수 있도록 하기 위하여 다음을 포함하는 메시징 수단을 제공한다: 관련된 다중 포틀릿들을 관리하기 위한 포틀릿 애플리케이션 수단; 콘텍스트 이름들을 설명하는 포틀릿 디스크립터를 각각 갖는 관련된 포틀릿; 콘텍스트 값을 정의하는 대응하는 콘텍스트 이름들을 갖는 포틀릿들의 협력 그룹들을 포함하는 상기 관련된 포틀릿들; 마스터 포틀릿과 하나 이상의 슬레이브 포틀릿을 각각 포함하는 상기 포틀릿들의 그룹; 상기 포틀릿들의 그룹 각각은 공통적인 콘텍스트 이름들을 공유한다; 마스터 포틀릿의 콘텍스트 값들의 변화를 마스터 포틀릿의 슬레이브 포틀릿들에 방송 통신(broadcasting communicating)하기 위한 포탈 서버내의 수단; 마스터 포틀릿의 콘텍스트 값들에 매칭하도록 슬레이브 포틀릿들의 콘텍스트 값들을 방송으로 변화하기 위한 위한 포탈 서버의 수단을 제공한다.
본 발명의 또 다른 태양은 사용자의 액세스가 가능한 웹 포탈에서 관련된 다중 포틀릿들을 호스팅하기 위한 포탈 서버 상에서 동작 가능한 다음을 포함하는 포틀릿 애플리케이션을 제공하는데, 상기 포탈 서버는 포틀릿 리프레쉬 능력을 갖는다: 관련된 다중 포틀릿들을 관리하기 위한 포틀릿 애플리케이션 수단; 포틀릿 디스크립터를 각각 가지는 관련된 포틀릿; 포틀릿들에 대한 리프레쉬 우선순위 설명을 각각 포함하는 포틀릿 디스크립터; 포틀릿들의 협력 그룹들을 포함하는 관련된 포틀릿들; 마스터 포틀릿 및 하나 이상의 슬레이브 포틀릿을 포함하는 포틀릿들의 그룹; 리프레쉬 우선순위의 순서에 따라 포틀릿들을 리프레쉬하기 위한 포틀릿 애플리케이션 수단 내의 수단을 제공한다.
본 발명의 또 다른 태양은 사용자의 액세스가 가능한 웹 포탈에서 관련된 다중 포틀릿들을 호스팅하기 위한, 포탈 서버 상에서 동작 가능한 다음을 포함하는 포틀릿 애플리케이션을 제공하는데, 상기 포탈 서버는 포틀릿 리프레쉬 능력을 갖는다: 포틀릿들의 협력 그룹들을 포함하는 관련된 포틀릿들; 관련된 다중 포틀릿들을 관리하기 위한 포틀릿 애플리케이션 수단; 포틀릿 디스크립터를 각각 가지는 관련된 포틀릿; 포틀릿에 대한 리프레쉬 우선순위 설명, 및 그 그룹의 포틀릿이 멤버인 포틀릿들의 그룹에 대한 리프레쉬 설명 우선순위를 각각 포함하는 포틀릿 디스크립터; 마스터 포틀릿 및 하나 이상의 슬레이브 포틀릿을 각각 포함하는 상기 포틀릿들의 그룹; 우선순위의 순서에 따라 포틀릿들을 리프레쉬하기 위한 포틀릿 애플리케이션 수단 내의 수단; 그룹 리프레쉬 우선순위의 순서에 따라 포틀릿들의 협력 그룹들을 리프레쉬하기 위한 포틀릿 애플리케이션 수단 내의 수단을 제공한다.
상기 마스터 포틀릿들은 슬레이브 포틀릿들보다 더 높은 우선순위를 갖는다.
바람직하게는, 상기 포틀릿 애플리케이션은 그룹 우선순위의 순서에 따라 먼저 그룹들을 리프레쉬하고, 그 후에 우선 순위에 따라 각 그룹 내에서 리프레쉬한다.
본 발명의 또 다른 태양은 사용자에게 웹 애플리케이션에 대한 웹 페이지 세션을 디스플레이하는 다음을 포함하는 장치를 제공하는데, 상기 웹 페이지 세션은 복수의 관련된 협력 포틀릿들을 디스플레이한다: 웹 애플리케이션으로의 액세스를 제공하도록 웹 포탈을 동작하기 위한 포탈 서버; 포탈 서버 상에서 동작하고, 관련된 포틀릿들의 집합을 관리하기 위한 포틀릿 애플리케이션; 룰 데이터베이스에 액세스하는 액세스 수단; 포틀릿들, 페이지들, 페이지 그룹들의 세트들을 사용자들에게 디스플레이하는 것을 제어하는 룰을 포함하는 룰; 사용자(정보 특성들)에 의하여 제공되는 정보에 기초하여 사용자에게 디스플레이되는 포틀릿들, 페이지들 및 페이지 그룹들의 세트를 선택하는 선택 수단을 제공한다.
본 발명의 또 다른 변형에서, 선택 수단은 플러거블 룰 엔진, 룰 데이터베이스, 및 포틀릿들, 페이지들, 페이지 그룹들을 선택하고 선택된 것들을 사용자에게 디스플레이하는데 룰을 적용하는 포틀릿 애플리케이션 집합 엔진을 포함한다.
본 발명의 또 다른 태양은 사용자에게 웹 애플리케이션에 대한 웹 페이지 세션을 디스플레이하는 다음을 포함하는 장치를 제공하는데, 상기 웹 페이지 세션은 서로 사용자의 액세스가 가능한 정보를 공유하는 복수의 관련된 협력 포틀릿들을 디스플레이한다: 웹 애플리케이션으로의 액세스를 제공하도록 웹 포탈을 동작하기 위한 포탈 서버; 포탈 서버 상에서 동작하고, 관련된 포틀릿들의 집합을 관리하기 위한 포틀릿 애플리케이션; 롤 데이터베이스을 액세스하는 롤 액세스 수단; 사용자의 롤에 기초하여 포틀릿들, 페이지들, 페이지 그룹들의 세트들을 사용자들에게 디스플레이하는 것을 제어하는 룰을 포함하는 롤; 사용자의 식별된 롤에 기초하여 사용자에게 디스플레이될 포틀릿들, 페이지들 및 페이지 그룹들의 세트를 선택하는 롤 선택 수단을 제공한다.
본 발명의 다른 태양들은 다음을 포함하는 제품(article)을 제공한다: 컴퓨터 판독 가능한 신호 베어링(bearing) 매체; 상술한 본 발명 실시예들의 방법을 수행하도록 적합화된 매체 상에 저장된 컴퓨터 프로그램 코드 수단을 제공한다.
본 발명의 다른 태양들은 다음을 포함하는 제품을 제공한다: 컴퓨터 판독 가능한 신호 방위 매체; 상술한 본 발명 실시예의 장치를 구현하도록 적합화된 매체 상에 저장된 컴퓨터 프로그램 코드 수단을 제공한다.
상기 매체는 자기적, 광학적, 생물학적 및 원자력 데이터 스토리지 매체들로 구성되는 그룹들로부터 적절하게 선택될 수 있다.
상기 매체는 변조된 캐리어 신호일 수 있다.
상기 신호는 네트워크 상에 전송일 수 있다.
본 발명의 실시예들은 다음의 도면들을 참조하여, 예시하는 방법으로 설명될 것이다.
도 1은 동적 콘텍스트 연쇄 모델을 나타낸다.
도 2는 포탈로의 웹 애플리케이션 통합을 나타낸다.
도 3은 통합 구조도를 나타낸다.
도 4는 통합 흐름도를 나타낸다.
도 5는 웹 애플리케이션으로의 포탈 통합을 위한 구조도를 나타낸다.
도 6은 통합을 위한 흐름도를 나타낸다.
도 7은 포틀릿들에 대한 동적 콘텍스트 그룹들의 예를 나타낸다.
도 8은 정의 인스턴스에 정의된 동적 콘텍스트에 대한 포틀릿 애플리케이션 개시를 나타낸다.
도 9는 동적 콘텍스트 포틀릿 그룹의 런타임 흐름을 나타낸다.
도 10은 롤 기반의 동적 집합 구성의 구조 맵을 나타낸다.
도 11은 룰 기반의 동적 집합 구성의 구조 맵을 나타낸다.
도 12는 롤 기반의 동적 집합의 흐름도를 나타낸다.
도 13은 웹 애플리케이션들에 대한 포틀릿 요청들의 취급을 나타낸다.
도 14는 동기화 모델 도면을 나타낸다.
도 15는 시퀀스 인식 포탈 집합 엔진에 대한 흐름도를 나타낸다.
도 16은 "MaleTeen"으로 불리는 동적 그룹을 정의하고 사용자들을 그룹에 할당하는 것을 나타낸다.
도 17은 룰 데이터베이스 콘텐트 그룹 선택 액션을 동적 사용자 그룹에 할당하는 것을 나타낸다.
도 18은 "MaleTeenAction"으로 불리는 새로운 액션을 생성하는 것을 나타낸다.
이 섹션은 본 발명의 바람직한 실시예들을 기술한다.
A.1 포탈 및 웹 애플리케이션들의 통합 가능성
도 2는 웹 포탈 서버로 본 발명의 사용을 예시하는 본 발명의 바람직한 실시예를 예시한다.
A.1.1 포틀릿 애플리케이션 HTTP 클라이언트
(백엔드 웹 애플리케이션에 HTTP 요청들을 만드는) 포틀릿은 포틀릿 애플리케이션 HTTP 클라이언트(209)를 사용하여 백엔드 웹 애플리케이션 서버(210)에서 실행되는 백엔드 웹 애플리케이션에 HTTP 접속을 개방한다. 백엔드 웹 애플리케이션은 포틀릿 애플리케이션 HTTP 클라이언트(209)가 다중 요청 및 응답들, 쿠키 취급 및 한번의 사인온(SSO) 로직 상에서 세션 지원을 제공하는 것을 필요로 한다. 동일한 포틀릿 애플리케이션 내의 모든 포틀릿들은 동일한 포틀릿 애플리케이션 HTTP 클라이언트 객체(209)를 사용하여, 하나 이상의 백엔드 웹 애플리케이션들에 접속한다. 각 포틀릿 애플리케이션(204)에는 하나의 포틀릿 애플리케이션 HTTP 클라이언트(209)가 있다.
A.1.2 포틀릿 애플리케이션 세션
포틀릿 애플리케이션 세션 객체(208)는 주어진 포틀릿 애플리케이션의 모든 포틀릿들에 공유될 수 있는 통합된 데이터 저장 객체이다. 이 객체는 각 사용자 및 각 포틀릿 애플리케이션에 존재한다. 포틀릿 애플리케이션 세션 객체(208)는 기반 구성을 제공하여, 주어진 포틀릿 애플리케이션의 다중 포틀릿들은 독립적인 (포틀릿 세션들(204,205,206)로 불리는) 사용자 세션들을 가질 것이고, 동일한 포틀릿 애플리케이션 세션을 공유하고, 하나의 웹 애플리케이션 세션을 가진 백엔드 애플리케이션 서버(210) 상의 웹 애플리케이션과 통신할 것이다.
A.1.3 포틀릿 애플리케이션 세션 콘텍스트
포틀릿 애플리케이션 세션 콘텍스트는 각 사용자 및 각 포틀릿 애플리케이션의 정보를 제공한다. 이것은 동일한 포틀릿 애플리케이션(204, 203) 내의 모든 포틀릿들은 이제 그것들 사이의 공통 정보를 공유하는 방법을 가질 수 있다는 것을 의미한다.
A.1.4 세션 릴레이 메커니즘(320)
세션 릴레이 메커니즘은 포탈 서버에 있는 원시 HTTP 세션으로부터 백엔드 HTTP 세션으로 포틀릿 애플리케이션의 HTTP 클라이언트에 의하여 생성되는 정보의 패싱(passing)을 가능하게 한다. 이 메커니즘은 다음의 기반 구성을 사용한다.
쿠키 테이블(305) 및 쿠키 룩업 키
쿠키 테이블(205, 사용자 세션 정보 테이블)은 포탈 서버 쿠키들을 백엔트 웹 애플리케이션 세션 쿠키들로 매핑하기 위한 주요 엔터티이다. 포탈 서버로의 HTTP 요청들의 쿠키와 하나의 주어진 웹 애플리케이션으로의 포틀릿 애플리케이션 HTTP 클라이언트의 쿠키의 매핑 관계는 일대일이다. 그러나, 주어진 포틀릿 애플리케이션 HTTP 클라이언트는 독립된 세션들을 유지하는 각 웹 애플리케이션으로 서 로 다른 웹 애플리케이션들에 HTTP 요청들을 만들 수 있다. 그것에 관하여, 포탈 서버 세션 쿠키 및 백엔드 웹 애플리케이션들의 쿠키 사이의 매핑은 (다중 백엔드 웹 애플리케이션 서버들 때문에) 일대다(one to many)일 수 있다.
도 13은 이 매핑을 나타내는데, 여기서 몇 개의 아이템들이 예시된다:
RQ1: 사용자의 에이전트(브라우저)의 HTTP 요청으로부터 포탈 서버로의 쿠키
RQA: 포틀릿 HTTP 애플리케이션 클라이언트의 HTTP 요청으로부터 웹 애플리케이션 A로의 쿠키
RQB: 포틀릿 HTTP 애플리케이션 클라이언트의 HTTP 요청으로부터 웹 애플리케이션 B로의 쿠키
포틀릿 애플리케이션 HTTP 클라이언트(209)는 이 테이블을 사용하여 백엔드 웹 애플리케이션 서버(210)에서 실행되는, 백엔드 웹 애플리케이션으로 매칭하는 쿠키를 룩업(look up)한다.
쿠키 매핑 테이블(305)의 존재는 포탈 서버 세션이 만료하는 경우 백엔드 웹 애플리케이션 세션의 자동 만료(automatic expiration)를 가능하게 한다.
쿠키 룩업 키
포틀릿 애플리케이션 HTTP 클라이언트(209)는 각 포틀릿 애플리케이션마다 생성된다. 쿠키 룩업 키는 동일한 포틀릿 애플리케이션 내의 모든 포틀릿들에 액세스가 가능한 포탈 애플리케이션 세션 객체에 저장된다. 쿠키 룩업 키는 백엔드 웹 애플리케이션의 HTTP 세션으로 포탈 서버의 HTTP 세션을 매칭하는 것을 담당한다.
쿠키 룩업 키의 사용은 동일한 HTTP 클라이언트 키를 공유하는 주어진 포틀릿 애플리케이션의 모든 포틀릿들이 현재 로그인된 사용자에 대한 백엔드 웹 애플리케이션 정보의 세트를 정확하게 검색하고 포워딩하는 것을 가능케 하여, 동일한 포틀릿 애플리케이션 내의 모든 포틀릿들이 동기화되어, 사용되고 있었던 백엔드 웹 애플리케이션을 업데이트할 수 있다. 종단 사용자는 다중 포틀릿들을 통하여 백엔드 웹 애플리케이션의 통합된 뷰를 본다는 것이 효과이다.
포틀릿 요청 파라미터 맵
포틀릿 요청 파라미터 맵(308)은 각 포틀릿, 각 포틀릿 서버 세션 마다 생성된 공유 애플리케이션 세션 데이터 저장부에 저장된 메모리 객체에 존재한다. 포틀릿 요청 파라미터 맵은 인입되는 사용자 요청으로부터의 모든 요청 파라미터들을 특정 포틀릿에 저장하는데 사용된다.
A.2 포틀릿들의 동적 콘텐트 동기화
A.2.1 동적 콘텍스트 정의 템플릿
도 5는 백엔드 웹 애플리케이션으로의 포탈의 통합을 예시한다. 도 5에 대한 참조는 다음을 위하여 유용할 것이다:
동적 콘텍스트 정의 템플릿(503)은 각 동적 콘텍스트 그룹에 대하여 다음을 정의한다.
- 콘텍스트 및 콘텍스트의 타입(이전의 예에서, 콘텍스트는 계정 ID이다.)
- 정의된 콘텍스트의 값을 변화시킬 수 있는 마스터 포틀릿
- 정의된 콘텍스트가 변화되는 경우 통지될 슬레이브 포틀릿(들)
- 콘텍스트 변화 통지시 슬레이브 포틀릿(들)의 등록된(registered) 응답(또는 액션)
- 옵션으로 슬레이브 포틀릿들의 리프레쉬 시퀀스를 정의한다.(마스터는 항상 주어진 그룹 내에서 최초로 리프레쉬된다.)
하나의 동적 콘텍스트 정의 템플릿(503)은 하나 이상의 동적 콘텍스트 그룹(들)을 포함할 수 있다. 그러나 각 동적 콘텍스트 그룹은 단지 다음을 가질 수 있다:
- 하나의 마스터 포틀릿
- 하나의 정의된 콘텍스트
- 하나 이상의 슬레이브 포틀릿들
주석: 주어진 포틀릿은 각 그룹에서 서로 다른 롤들을 가지고 하나 이상의 동적 콘텍스트 그룹들에 참가할 수 있다.
A.2.2 동적 콘텍스트 포틀릿 그룹핑 생성 도구
이 도구(501)는 동적 콘텍스트 정의 템플릿(503)에서 리드인(read in)하고, 그에 대응하여 포틀릿 배치 디스크립터들(502)를 업데이트함으로써 특정된 정의에 따라서 모든 동적 콘텍스트 그룹들을 위한 동적 콘텍스트 마스터 포틀릿 및 슬레이브 포틀릿들을 생성한다.
A.2.3 동적 콘텍스트 그룹
동적 콘텍스트 그룹은 동일한 콘텍스트를 공유하고 하나의 동적 콘텍스트 그룹 하에서 그룹핑되는 포틀릿들의 서브세트이다. 주어진 포틀릿은 하나 이상의 동 적 콘텍스트 그룹에 속할 수 있다.
동적 콘텍스트 그룹의 정의 다큐먼트 인스턴스(504)는 특정한 동적 콘텍스트 그룹의 동적 콘텍스트를 정의하는데 사용된다.
동적 콘텍스트 마스터 포틀릿
동적 콘텍스트 마스터 포틀릿은
- 콘텍스트 상태 변화를 검출 및
- 모든 슬레이브 포틀릿들에 콘텍스트 상태 변화를 통지하는 것을 담당한다.
동적 콘텍스트 슬레이브 포틀릿(들)
동적 콘텍스트 슬레이브 포틀릿들은 다음을 수행한다:
- 마스터 포틀릿에 의하여 통지된 콘텍스트 변화를 위한 풀링(pulling)
- 콘텍스트 변화의 통지시 대응하는 백엔드 웹 애플리케이션을 지향하는 등록된 액션을 수행
동적 콘텍스트 모델들
서로 관련된 포틀릿들을 위하여 사용될 수 있는 동적 콘텍스트 모델들에는 2가지 타입들이 있다:
A.2.4 동기 모델
도 14에 나타나는 동기 모델에서, 마스터 포틀릿(101)은 동적 콘텍스트 마스터 포틀릿의 콘텍스트 상태 변화를 슬레이브들(1701~1703)에 알려준다. 모든 슬레이브들은 마스터의 콘텍스트 상태 변화와 동기화하기 위하여 미리 정의된 응답에 기초한 액션들을 수행할 것이다.
동기 모델 도면
A.2.5 연쇄 모델
도 1에 표시된 연쇄 모델에서, 마스터 A(101)의 상태 변화가 슬레이브 A(102)의 응답 액션을 초래하고, 슬레이브 A는 또한 마스터 포틀릿 B이며, 콘텍스트 B의 상태 변화를 가져오고, 슬레이브 B(103)의 콘텍스트 변화 응답을 초래하며, 슬레이브 B는 또한 동적 콘텍스트 그룹 C의 마스터 포틀릿이고, 슬레이브 C의 액션 응답을 초래한다.
A.2.6 포틀릿 트랜잭션 관리자:
도 15를 참조하는 시퀀스 인식 포탈 집합 엔진 확장에서, 포틀릿 트랜잭션 관리자(1802)는 포틀릿 요청들, 응답들 및 세션들의 생성을 포함하는 포틀릿들의 런타임 리프레쉬 시퀀스를 관리하는 일을 담당하는 구성이다.
1. 어떤 포틀릿 애플리케이션에 대하여 리프레쉬될 최초의 포틀릿은 주어진 사용자를 위하여 모든 포틀릿들 사이에서 최초로 리프레쉬될 포틀릿으로 정의된다. 주어진 페이지 내의 포틀릿들의 리프레쉬 시퀀스를 정의하는 기존의 메커니즘은 없다.
따라서, 우리는 런타임에서 동적으로 마스터 포틀릿을 식별할 수 있는 일정한 로직이 필요하다. 본 발명에서 우리는 각 포틀릿이 리프레쉬되는 모든 경우에 마크를 만드는 간단한 스크래치보드(scratchboard)를 사용한다. 최초에 포틀릿은 그것이 제1 또는 마스터 포틀릿임을 표시하는 마크를 스크래치보드에 만든다. 이 리스트상에 마크를 만든 이후의 포틀릿은 이미 다른 포틀릿이 스크래치보드 위에 마크를 만들었고 그 포틀릿이 마스터 포틀릿이 아니라는 것 등을 알 수 있다. 다음에 포털 페이지는 리프레쉬되고, 이 리스트 상에 더블 마크를 만든 제1 포틀릿은 마스터 포틀릿이 된다. 그리고, 마스터 포틀릿은 모든 다른 포틀릿들의 마크를 제거함으로써 이 리스트 및 다음 요청을 위한 더블 마크들의 하나를 재개시한다. 이 알고리즘은 포틀릿들의 포탈 서버로부터 요청이 들어오는 모든 경우 우리가 동적으로 마스터 포틀릿을 검출할 수 있게 한다.
제1 포틀릿이 리프레쉬된 후에, 트랜잭션 관리자는 동적 콘텍스트 그룹의 마스터 및 슬레이브 포틀릿 매핑에서 미리 정의된 시퀀스로 다른 포틀릿들을 리프레쉬한다.
2. 시퀀스 소터(sorter): 시퀀스 소터 모듈(1804)은 리프레쉬 시퀀스 순서로 포틀릿들을 소팅(sorting)하는데 사용된다. 시퀀스 소터는 포틀릿 배치 디스크립터를 사용하여 각 포틀릿의 리프레쉬 순서를 식별하고 요청 디스패칭 엔진에 대하여 포틀릿들을 소팅 아웃한다.
3. 시퀀스 인식 요청 디스패칭 엔진 확장: 이 엔진(1805)은 요청들을 포틀릿에 디스패칭하고 포탈 집합 엔진에 우선하는데 사용된다. 엔진의 롤은 상거래 포탈 애플리케이션에서 모든 포틀릿에 대한 포틀릿 세션 뿐만 아니라, 관련된 포틀릿 요청 및 응답 객체들을 구성하는 것이다. 엔진은 트랜잭션 관리자에 의하여 실제적으로 포틀릿들을 리프레쉬하는데 사용된다.
4. 트랜잭션 관리자 캐싱 유닛: 트랜잭션 관리자 캐싱 유닛(1806)은 포틀릿들이 응답 디스패칭 엔진에 의하여 리프레쉬되면서 포틀릿들에 의하여 생성된 응답 들을 트랜잭션 관리자(1802)가 캐싱하는데 사용된다. 포탈 집합 엔진이 포틀릿 리프레쉬을 요청하는 경우, 캐싱된 응답들이 트랜잭션 관리자에 의하여 그것에 다시 송신하는 것이 필요하다. 이것은 인입하는 포털 요청 각각에 대한 더블 리프레쉬의 문제를 예방한다.
A.3 룰 기반 및 롤 기반 집합
도 11은 본 발명의 바람직한 실시예의 룰 기반의 동적 집합 구성 구조 맵을 예시한다. 예시된 실시예의 구성들 및 구성들의 동작 설명은 다음과 같다:
포탈 리소스 변환 모듈
포탈 리소스 변화 모듈(1015)은 포틀릿들, 페이지들 및 페이지 그룹들을 포함하는 포탈 리소스들의 세트를 외부 룰 엔진(1022)에 의하여 파싱(parsing) 및 처리될 수 있는 형태로 변환하는 것을 담당한다.
데이터베이스
룰 데이터베이스(1001)는 포탈 집합 엔진(1006)을 위하여 비지니스 관리자가 정의한 룰들을 홀딩(holding)한다.
사용자 리소스 변화 모튤
사용자 리소스 변환 모듈(1013)은 사용자 리소스들 및 다양한 사용자의 특성들을 외부 룰 엔진에 의하여 파싱 및 수행될 수 있는 형태로 변환한다.
플러거블 룰 엔진
룰 엔진(1022)은 (본 발명의 실시예에서) 웹스피어TM 개인화 엔진(WEBSPHERE PERSONAIZATION ENGIN)과 같은 외부의, 플러거블(pluggable) 룰 엔진이고, 동적 룰 파싱 및 실행에 사용된다. 엔진의 실행은 비지니스 사용자 및 현재 사용자의 특성들에 의하여 정의된 비지니스 룰들에 기초하여 사용자가 볼 수 있는 포탈 리소스들의 세트를 생성한다.
포탈 롤 기반 개인화 엔진
포탈 롤 기반의 개인화 엔진(1008)은 사용자 조직의 멤버쉽에 기초하여 사용자에게 액세스가 허용되지 않는 포탈 리소스들의 리스트 및 사용자에게 액세스가 허용되는 포탈 리소스들의 리스트를 추출하는데 사용되는 롤 기반 리소스 선택 모듈이다.
롤 기반 엔진(1008)은 롤 데이터베이스(1007)에 액세스함으로써 먼저 사용자의 조직을 본다. 사용자의 조직이 한번 판단되면, 사용자의 롤은 그 조직의 롤과 동일한 것이라고 생각된다. 그 후에 롤 기반 개인화 엔진(1008)은 이 조직에 비지니스 사용자의 액세스가 가능 및 불가능한 것으로 정의되었던 리소스들의 리스트를 추출한다. 이 리스트가 한번 판단 되었으면, 이 모듈은 또 다른 프로세싱을 위하여 포탈 집합 엔진의 집합화된 리소스 변환 서브시스템에 리스트을 포워딩(forwarding)한다.
롤 DB
롤 DB(1007)는 포탈 서버를 위한 조직 데이터를 홀딩한다. 롤 DB는 다양한 사용자들에 대한 조직의 멤버쉽 정보 및 롤들에 기초하여 조직 멤버들이 액세스 가능 또는 불가능한 포탈 리소스들의 리스트를 홀딩한다.
리소스 변환 서브시스템을 집합화한 포탈 집합 엔진
이 모듈(1004)은 룰 및 롤 기반 개인화 엔진들에 기초하여 현재의 사용자가 볼 수 있는 포탈 리소스들(이것은 포틀릿들, 페이지들, 및 페이지 그룹들을 포함한다)의 마스터 리스트를 생성하는 것을 담당한다. 이 모듈은 또한 실제적인 포탈 집합 엔진을 위한 어댑터(adapter)이다. 모듈의 역할은 마스터 리스트를 생성하는 것뿐만 아니라, 종단 사용자를 위한 최종 웹 사이트 생성을 위하여 실제적인 포탈 집합이 액세스 가능한 형태로 마스터 리스트를 변환하는 것이다.
파트 B: 동작 설명
B.1 포탈 및 웹 애플리케이션의 통합 인에이블링 설명
B.1.1 전체적인 집합 구조도 및 흐름도
도 2, 도 3 및 도 4는 각각 포탈을 가진 웹 애플리케이션 통합, 통합 구조도, 및 통합 흐름도를 나타낸다.
B.1.2 상세한 설명
도 2를 참조하면, 백엔드 웹 애플리케이션이 포탈 서버로 통합되는 경우, 백엔드 웹 애플리케이션(221)은 포틀릿들을 통하여 포탈 서버(201)로부터 요청들을 수신한다. 백엔드 웹 애플리케이션(221)은 응답들을 만드는 포틀릿에 응답들을 다시 보낸다.
웹 애플리케이션(221)로부터의 응답은 포탈 서버(201)의 포틀릿을 통하여 포틀릿에 액세스하는 사용자에게 렌더링(rendering)된다.
포탈 애플리케이션 HTTP 클라이언트(209)의 구현으로, 백엔드 웹 애플리케이 션에 대한 다중 요청들 및 응답들이 백엔드 웹 애플리케이션에 의하여 응집한 세션들로서 인식된다. 포탈 애플리케이션 HTTP 클라이언트(209)는 백엔드 웹 애플리케이션(221)로의 HTTP 통신 접속들을 개방하는데 사용된다. 백엔드 웹 애플리케이션은 포탈 애플리케이션 HTTP 클라이언트(209)가 세션 지원, 쿠키 취급 및 한번의 사인온(SSO) 능력을 제공하도록 요구한다. 포탈 애플리케이션 HTTP 클라이언트(209)로, 포틀릿들은 웹 애플리케이션과 효율적으로 통신할 수 있다. (포틀릿 애플리케이션(205)와 같은) 포틀릿 애플리케이션 내의 모든 포틀릿들은 백엔드 웹 애플리케이션(221)의 하나의 포틀릿 애플리케이션 세션 객체(211)로 액세스하는 것을 필요로 하는데, 이것은 포탈 애플리케이션 HTTP 클라이언트(209)가 동일한 포털 애플리케이션 내의 모든 포틀릿들에 의하여 공유되어야 함을 의미한다.
이와 같은 공유가 가능하기 위하여, 우리는 주어진 포탈 애플리케이션 내의 모든 포틀릿들이 공유할 수 있는 통합된 세션 객체가 필요하다고 판단했다. 그러한 객체를 제공하기 위하여 본 발명은 포틀릿 애플리케이션 세션 객체(208)을 제공한다. 포틀릿 애플리케이션 세션 객체(208)는 상거래 포틀릿 애플리케이션에 의하여 생성되는 객체이다. 포틀릿 애플리케이션 세션 객체(208)는 (포틀릿 애플리케이션 1 내의 포틀릿들 204, 205, 206, 및 207과 같은) 주어진 포틀릿 애플리케이션 내의 모든 포틀릿이 액세스할 수 있다. 포틀릿 애플리케이션 세션 객체(208)가 없으면, 주어진 포탈 애플리케이션 내의 다중 포틀릿들은 모두 독립된 사용자 세션들을 갖게 되고 세션에 관련된 정보를 공유할 수 없을 것이다.
포틀릿 애플리케이션 HTTP 클라이언트(209)는 포틀릿 애플리케이션 세션 (208)에 저장되고, 동일한 포틀릿 애플리케이션 내의 포틀릿들 사이에서 포틀릿 애플리케이션 세션 객체를 공유하는 것을 가능하게 만든다. 이 포틀릿 애플리케이션 세션 객체가 없다면, 포틀릿들이 백엔드 상의 하나의 웹 애플리케이션 세션과 통신하는 것이 가능하지 않을 것이다.
포탈 애플리케이션 세션 객체(208) 내에 저장되는 모든 데이터는 포탈 애플리케이션 세션 콘텍스트를 표현하고 각 사용자 및 각 포탈 애플리케이션 마다 존재한다.
포틀릿 애플리케이션 HTTP 클라이언트(209)가 백엔드 웹 애플리케이션(221)에 대한 모든 세션 정보를 홀딩한 후에는, 세션 정보가 도 3에 나타난 세션 릴레이 메커니즘(320)에 대한 기본으로 사용된다.
세션 릴레이는 전체 포탈 서버(201)에 특정된 (언어 정보, 사용자 에이전트 정보 등과 같은) 세션 정보가 백엔드 웹 애플리케이션(221)의 세션 정보로 릴레이되는 것을 가능케 한다. 이것은 송신된 원시 요청에 포함되는 모든 요청들에 따르는 데이터 표현을 백엔드 웹 애플리케이션(221)이 사용자에 의하여 포탈 서버에 전달할 수 있다는 것을 의미한다.
예를 들면, 사용자가 "프랑스어"로 설정된 디폴트 언어 위치를 가진, WAP(무선 애플리케이션 프로토콜) 가능한 이동 장치를 사용하여 포탈에 액세스하는 경우, 포탈 서버(201)로의 원시 HTTP 요청은 ITS 언어 파라미터를 "프랑스어"로, 또한 HTTP 헤더의 사용자-에이전트 필드를 "WAP"으로 설정하게 할 것이다. 세션 릴레이 메커니즘(320)은 이 정보를 웹 애플리케이션(221)로 릴레이하고 웹 애플리케이션은 프랑스어의 사용자 이동 장치에 디스플레이하기 적합한 프랑스어로 응답을 리턴한다. 세션 릴레이가 존재하지 않는 경우, 웹 애플리케이션은 디폴트 장치(예컨대, 인터넷 브라우저)에 적합한 디폴트 언어(예켠대, 영어)로 정보를 리턴할 것이다. 이 경우 사용자의 이동 장치와 호환되지 않으므로 ,사용자는 검색된 정보를 볼 수 없을 것이다.
도 3의 구조도에 있는 요소들을 참조하여, 열거한 단계들에 의하여 도 4의 프로세스 단계들이 표시될 것이다.
1. 단계 401, 컴퓨터 마우스를 사용하여 링크 또는 사용자의 웹 브라우저 상의 포틀릿에 디스플레이된 객체를 클릭함에 의한 인스턴스에 대하여, 사용자는 웹 포탈과 상호 작용한다. 각 포틀릿은 자신의 포틀릿 세션(310)(포틀릿 세션은 종래 기술임)을 가진다. 사용자 상호 작용의 일부로서, 원격 요청(306)은 백엔드 웹 애플리케이션(307)에서 만들어지고 있다.
2. 단계 403, 포틀릿 세션 내의 모든 파라미터들을 백엔드 웹 애플리케이션에 정확하게 패싱하기 위하여, 각 포틀릿 요청의 파라미터 리스트는 포틀릿 요청 파라미터 맵(#8, 308)에 저장된다. 파라미터들은 원격 백엔드 요청에 패싱된다.
3. 단계 404, 상거래 포틀릿은 HTTP 클라이언트 키(301)를 사용하여 포틀릿 애플리케이션 데이터 저장부(#4, 302)에 액세스함으로써 이미 기존의 포틀릿 애플리케이션 세션 객체(208) 및 포틀릿 애플리케이션 HTTP 클라이언트(303)가 존재하는지를 판단한다. 단계 405, 발견되지 않는 경우, 동일한 포틀릿 애플리케이션 내의 모든 포틀릿들을 위하여 새로운 것을 생성한다. (단계 407, 발견되는 경우, 기존의 것이 대신 사용될 것이다.)
4. 단계 406, 원시 포틀릿 세션으로부터의 각 사용자 자격이 쿠키 테이블(305)에 저장된다.
5. 단계 408, 쿠키 테이블(305)로부터의 사용자 자격 및 포틀릿 요청 파라미터 맵(308)에 미리 저장된 파라미터는 백엔드 웹 애플리케이션에 대한 새로운 HTTP 요청을 구성한다.
6. 단계 409, 원격 웹 애플리케이션(307)에 호출한다.
7. 단계 410, 원격 웹 애플리케이션(307)은 디스플레이할 포틀릿을 위한 호출에 대하여 응답을 리턴한다.
B.2 포틀릿들의 동적 콘텍스트 동기화
B.2.1 개발 시간(development time) 설명
백엔드 웹 애플리케이션과 함께하는 포탈 통합의 구조도를 나타내는 도 5를 참조하면, 포탈 개발자는 동적 콘텍스트 포틀릿 그룹핑 도구(501)을 사용하여 새로운 동적 그룹 정의 인스턴스(504)를 생성한다는 것을 알 수 있다. 이 인스턴스는 관련된 포틀릿들의 그룹이고 어떤 포틀릿들이 슬레이브이고 어떤 포틀릿이 슬레이브들의 마스터인지를 정의한다. 동적 그룹 정의의 필요한 요소는 동적 콘텍스트 그룹 정의 템플릿(503)에서 특정된다.
사용자는 동일한 도구(501)를 사용하여 기존의 동적 콘텍스트 그룹 정의를 업데이트한다.
사용자가 가장 최근의 동적 콘텍스트 그룹 정의를 제공한 후에, 동적 콘텍스 트 포틀릿 그룹핑 도구(501)는 관련된 포틀릿 애플리케이션 배치 디스크립터(502)를 업데이트하여 그룹에 정의된 관계들을 반영한다.
도 6을 참조하면, 상기 프로세스의 포탈 통합 단계들을 표현하는 흐름도를 명확히 볼 수 있을 것이다.
사용자가 동적 콘텍스트 그룹을 생성(608) 또는 업데이트(609)하기를 원하는 경우, 사용자는 그룹핑 도구(501, 도 5)를 이용할 수 있다.
단계 601, 동적 콘텍스트 그룹핑 도구는 동적 콘텍스트 그룹 정의 템플릿(503)에 특정된 것에 기초하여 사용자 입력을 촉구하거나, 또는 동적 콘텍스트 그룹핑 도구를 업데이트하는 경우 기존의 동적 콘텍스트 그룹 인스턴스를 읽어서, 정의 템플릿(503)으로 인스턴스를 확인한다.
단계 603, 사용자는 동적 콘텍스트 그룹을 정의 또는 업데이트하는데 필요한 정보를 특정한다.
단계 605, 동적 콘텍스트 그룹 인스턴스(504)가 생성된다.
단계 606, 모든 관련된 포틀릿들의 배치 디스크립터가 업데이트된다.
동적 콘텍스트 그룹핑
도 7은 포틀릿들에 대한 동적 콘텍스트를 예시한다. 동적 그룹(701)은 마스터 포틀릿(704), 슬레이브 포틀릿(705), 및 슬레이브 포틀릿(707)을 포함한다.
그룹(703)은 마스터 포틀릿(705), 슬레이브 포틀릿(706), 및 슬레이브 포틀릿(707)을 포함한다.
동적 그룹(702)은 마스터 포틀릿(704) 및 슬레이브 포틀릿(708)을 포함한다.
포틀릿 애플리케이션 내의 포틀릿들이 표현하는 데이터가 백엔드 웹 애플리케이션 레벨에 동기화되면, 포틀릿들은 단지 웹 애플리케이션으로부터 데이터를 검색함에 의하여 데이터의 대등한(coordinated) 뷰를 전달한다. 그러나, 모든 포틀릿의 상호 작용들은 백엔드 웹 애플리케이션에서 변화를 초래하지 않는다. 동적 콘텍스트는 '유리(glass)에서' 동기화를 제공한다. 콘텍스트의 변화가 서로 다른 쿼리를 필요로 하는 경우 가장 효율적이다. 예컨대, 계정 리스트로부터 다른 계정을 선택하는 것은 선택된 계정과 함께 리프레쉬되는 요금청구서(invoice) 정보의 디스플레이를 필요로 한다.
종래 기술 시스템에서 포틀릿들은 일반적으로 서로 독립적이었다. 본 발명은 포틀릿들 서로의 관계들을 매핑하고 포틀릿 애플리케이션의 배치 및 구성시에 그것들의 의존관계를 명확히 하는 방법 및 장치를 제공한다. 포틀릿들은 변화될 필요가 없다.
포틀릿들 사이의 의존 관계는 마스터 및 슬레이브의 관계가 정의된 동적 콘텍스트 관계 템플릿(503)에 정의될 수 있다.
동적 콘텍스트 관계 템플릿(503)은 바람직하게 다음을 정의하는 XML 데이터 표현으로 인코딩된다:
- 동적 콘텍스트 그룹을 구성하는 포틀릿들의 서브세트
- 동적 콘텍스트 그룹의 마스터 포틀릿
- 동적 콘텍스트 그룹의 슬레이브(들) 포틀릿
- 슬레이브(들)가 콘텍스트 상태 변화시 수행해야 하는 슬레이브 액션
- 동적 콘텍스트 그룹의 모든 구성들이 공유하는 콘텍스트
통적 콘텍스트 그룹 정의 인스턴스의 예는 다음과 같다:
< DynamicContextGroup >
< DynamicContextGroupName > OrderRelatedPortletGroup
< /DynamicContextGroupName >
< DynamicContextMasterPortlet >
OrderItems
< /DynamicContextMasterPortlet >
< DynamicContext > itemName
< /DynamicContext >
< DynamicContextSlavePortlet >
< DynamicContextSlavePortletName > UPSTracking
< /DynamicContextSlavePortletName >
< SlavePortletAction >
http://inventoryserver.com/inStock/
< /SlavePortletAction >
< /DynamicContextSlavePortlet >
< /DynamicContextGroup >
< DynamicContextGroup >
< DynamicContextGroupName > StockInventoryPortletGroup
< /DynamicContextGroupName >
< DynamicContextMasterPortlet >
InStockInventory
< /DynamicContextMasterPortlet >
< DynamicContext > itemSKUnumber
< /DynamicContext >
< DynamicContextSlavePortlet >
< DynamicContextSlavePortletEame > OrderedItems
< /DynamicContextSlavePortletName >
< SlavePortletAction >
http://myserver.com/lastOrdered/
< /SlavePortletAction >
< /DynamicContextSlavePortlet >
< /DynamicContextGroup >
하나의 동적 콘텍스트 그룹 정의는 하나의 인스턴스라는 것을 주목하라. 그러나, 다중 동적 콘텍스트 그룹 정의들은 3개의 포틀릿들로 구성되는 포틀릿 애플리케이션에서 2개의 포틀릿 세트들로 상기에서 정의된 다중 인스턴스들을 정의하기 위하여 하나의 파일로 통합될 수 있다.
제1 동적 콘텍스트 그룹에서, 포틀릿들 사이에 공유되는 동적 콘텍스트는 itemName이고, OrderedItems로 명명된 포틀릿은 동적 콘텍스트 마스터 포틀릿으로 서비스되고, 포틀릿 UPSTracking 및 InStockInventory는 동적 콘텍스트 슬레이브 포틀릿들로 서비스된다.
제2 동적 콘텍스트 그룹에서, 포틀릿들 사이에 공유되는 동적 콘텍스트는 itemSkuNumber이고, InstockInventory로 명명된 포틀릿은 동적 콘텍스트 마스터 포틀릿으로 서비스되고, 포틀릿 OrderedItems는 동적 콘텍스트 슬레이브 포틀릿들로 서비스된다.
각 동적 콘텍스트 마스터 포틀릿은 사용자 HTTP 요청을 관찰하고 동적 콘텍스트를 찾는다. 동적 콘텍스트가 요청에서 발견되는 경우, 동적 콘텍스트 포틀릿은 (HTTP 요청에서 이름 및 값 쌍의 파라미터인) 동적 콘텍스트를 슬레이브 포틀릿들에 송신한다.
예를 들면, 포틀릿 OrderedItems가 "PentiumⅣ"로 설정된 특성 ItemName을 가진 요청을 받은 경우, 포틀릿 OrderedItems는 동적 콘텍스트를 포틀릿 UPSTracking 및 InStockInventory에 보내어 값 "PentiumⅣ"를 가진 콘텍스트 ItemName은 이제 동적 콘텍스트에 설정되었음을 통지한다.
각 동적 콘텍스트 슬레이브 포틀릿은 동일한 동적 콘텍스트 그룹의 모든 슬레이브 포틀릿들에 대한 마스터의 통지를 듣는다. 마스터의 통지를 받으면, 동적 콘텍스트를 특성 'SlavePortletAction' 하의 동적 콘텍스트 그룹 정의 인스턴스에서 정의된 액션 URL에 동적 콘텍스트를 추가함으로써 대응하는 슬레이브 액션을 불러온다.
예를 들면, inStockInventory 포틀릿이 동적 콘텍스트 타입 "ItemName' 및 값 "PentiumⅣ"를 가진 OrdeItems 포틀릿으로부터 동적 콘텍스트를 받은 경우, inStockInventory 포틀릿은
http://inventoryserver.com/inStock/itemName=PentiumⅣ URL로부터 데이터를 검색할 것이다.
동적 콘텍스트 그룹 정의 템플릿 코딩의 예는 다음과 같다:
< xsd : schema
xmlns: xsd="http://www. w3.org/2001/XMLSchema"
xmlns : cep=
"http://www. ibm. com/WebsphereCommerceEnabledPortal/DynamicContex
tGroupDefinitionSchema" >
< annotation >
< documentation xml: lang="en" >
Schema for Websphere Commerce Enabled Portal Dynamic Context
Group Definition
Copyright 2002 IBM Corporation
< documentation >
< /annotation >
< !-Dynamic Context Group Instance-- >
< xsd: elementname=DynamicContextGroup"
type="DynamicContextGroupDefinitionTemplate",
minOccurs="l/ >
< !-Dynamic Context Group Definition Template Schema _
< xsd :complexType name="DynamicContextGroupDefinitionTemplate" >
< xsd: sequence >
< xsd:element name="DynamicContextGroupName"
type="xsd: string"/ >
< xsd: elementname="DynamicContextMasterPortlet"
type="PortletName"/ >
< !- only one dynamic context per dynamic context group ->
< xsd: elementname="DynamicContext" type="ContextParameter"
maxOccurs="l"/ >
< xsd: elementname="DynamicContextSlavePortlet"
type="SlavePortlet"
minOccurs="1"/ >
< /xsd : sequence >
< /xsd: complexType >
< xsd:complexType name="SlavePortlet" >
< xsd :sequence >
< xsd: elementname="DynamicContextSlavePortlet"
type="PortletName"/ >
< xsd: elementname="SlavePortletAction"type="xsd : string"/ >
< xsd: elementname="SlavePortletRefreshPriority"
type="xsd : decimal",
minOccurs="0"/ >
<!- master's context is in the slave action url if slave param
map is absent -->
< xsd: elementname="SlaveParamMapToContext"
type="ContextParameter" ,
minOccurs="0"/ >
< /xsd:sequence >
< /xsd:complexType >
< xsd: simpleTypename="PortletName" >
< xsd: string >
< /xsd : simpleType >
< !- name of the parameter in master's requesturl-- >
< xsd: simpleType name="ContextParameter" >
< xsd:string >
< /xsd: simpleType >
< /xsd: schema >
B.2.2 런 타임
이 섹션은,
도 8 : 정의 인스턴스에 특정된 동적 콘텍스트를 위한 포틀릿 애플리케이션 개시, 및
도 9 : 동적 콘텍스트 포틀릿 그룹 런타임 흐름을 참조하면 잘 이해될 수 있을 것이다.
동적 콘텍스트의 런타임 태양들을 취급하는 2개의 중요한 구성이 있다:
1) 동적콘텍스트액션리스너(포틀릿 액션 리스너, 904) - 이것은 마스터 포틀릿에서의 동적 콘텍스트 변화를 듣는다. 모든 동적 콘텍스트 포틀릿 그룹 내의 마스터 포틀릿은 부속된 동적콘텍스트액션리스너를 갖는다.
2) 동적콘텍스트메시지리스너(포틀릿 메시지 리스너, 906) - 메시지 리스너는 특정 동적 콘텍스트가 정의되는 그룹의 마스터로부터 통지를 듣는다. 동적 콘텍스트 포틀릿 그룹 내의 모든 슬레이브 포틀릿은 부속된 동적콘텍스트메시지리스 너를 갖는다.
런타임 흐름의 단계별 설명
포틀릿 개시 시간(도 8: 단계 801), 모든 마스터 포틀릿들은 포틀릿 디스크립터(단계 802, 805)에 기초하여 정의된 동적 콘텍스트를 마스터 포틀릿의 액션 리스너에 추가한다(단계 806). 모든 슬레이브 포틀릿들에 대한 동적 콘텍스트 타입; 액션 URL; 파라미터 매핑 및 리프레쉬 시퀀스는 포틀릿 디스크립터(단계 802, 809)로부터 검색되고 슬레이브의 포틀릿 메시지 리스너에 추가될 것이다(단계 810).
1) 동적 콘텍스트 포틀릿 그룹의 마스터 포틀릿과의 사용자 상호 작용은 동적 콘텍스트의 변화를 초래한다(단계 901).
2) 마스터의 포틀릿 동적콘텍스트액션리스너는 사용자의 액션을 검출한다(단계 902).
3) 동적콘텍스트액션리스너는 마스터 포틀릿의 요청 객체내의 동적 콘텍스트에 대응하는 이름/값 쌍을 설정한다(단계 904).
4) 마스터 포틀릿은 동적 콘텍스트의 값을 획득하고 동일한 동적 포틀릿 그룹 내의 모든 슬레이브 포틀릿들에게 값을 통지한다(단계 905).
5) 주어진 마스터에 대한 슬레이브 포틀릿과 관련된 동적콘텍스트메시지리스너는 통지(동적 콘텍스트의 값)를 수신한다(단계 906).
6) 동적콘텍스트메시지리스너는 슬레이브 포틀릿의 포틀릿 요청 객체 내의 동적 콘텍스트의 값을 설정한다(단계 907).
7) 슬레이브 포틀릿은 동적 콘텍스트의 값을 획득한다(단계 1008).
8) 슬레이브 포틀릿은 콘텍스트와 일부 파라미터 사이의 매핑이 특정된 경우, 주어진 슬레이브 포틀릿에 대하여 정의된 액션을 수정한다(단계 1009).
9) 매핑이 특정되지 않은 경우, 동적 콘텍스트의 이름/값 쌍이 슬레이브의 포틀릿 액션에 추가된다.
10) 슬레이브 포틀릿은 동적 콘텍스트 그룹 인스턴스 정의에 정의된 액션을 수행한다(단계 1011, 1012)
B.3 룰 기반 및 롤 기반의 동적 집합
이 섹션에서는 다음과 같은 많은 도면들이 참조된다:
도 10: 롤 기반의 동적 집합 구성의 구조도
도 11: 룰 기반의 동적 집합 구성의 구조도; 및
도 12: 룰 기반의 동적 집합 흐름도
포틀릿 서버를 위한 롤 및 룰 기반의 동적 집합 구성들은 룰 및 롤 데이터베이스들 및, 각 롤과 룰에 대한 콘텐트(content)의 개념에 기초한다.
룰에 대한 콘텐트 그룹들은 도 10의 도시된 룰 DB 구성(1001)에서 유지된다. 유사하게 롤 콘텐트 그룹들은 도 10에 도시된 롤 DB 구성(1007)에 정의된다. 각 콘텐트 그룹은 특정한 롤 또는 룰 범위 아래로 떨어지는 것으로 평가된 사용자가 액세스하는 포탈 서버 리소스들의 세트로 구성된다.
이 방식에서 또 다른 주요 구성은 플러거블 룰 엔진(1022)이다. 이 엔진의 업무는 변환된 사용자 특성들을 읽고 사용자의 특성에 기초하여 특정한 미리 정해 진 사용자 그룹의 맴버십 자격이 있는 사용자들의 세트를 런타임에서 동적으로 결정하는 것이다. 또한 이 엔진은 이 동적 사용자 그룹들의 세트를 롤 및 룰 DB에 정의된 콘텐트 그룹들의 세트로 매핑한다. 바람직하게 플러거블 룰 엔진은 이 업무를 관리하는 GUI를 갖는다. 도 16에 도시된 스크린 화면은 우리가 웹스피어 개인화 서버 엔진을 사용하여 업무들을 관리하는 방법을 예시한다.
예를 들면, 도 16은 "MaleTeen"으로 불리는 동적 그룹을 정의하고 16~19세 사이의 모든 남성 사용자를 이 그룹에 할당하는 방법을 예시한다.
도 17에서 나타나는 바와 같이, 특성들에 기초하여 십대 남자들인 것으로 동적으로 평가된 모든 사용자들이 이제 그들을 위하여 실행되는 "maleteenaction" 명령을 갖는데, 이 명령들은 동적 룰 및 롤 기반의 포탈 집합 엔진(1022)이 롤 DB(1007)로부터 십대 남자에 대한 콘텐트 리소스를 선택하도록 명령한다.
개발시에, 페이지들, 포틀릿들 등의 포탈 리소스들의 세트를 롤 및 룰 DB의 특정 콘텐트 그룹에 할당하는 것이 비지니스 관리자의 업무이다. 이것은 현재 룰 및 롤 DB를 직접적으로 로딩하는 SQL 스크립트를 사용함으로써 수행된다.
B.3.1 룰 기반 및 롤 기반의 동적 집합 런타임 가능 설명
런타임에서 포탈 사용자에 대하여 실행하는 최초의 명령은 룰 기반 엔진에 대한 래퍼(wrapper) 명령이다. 이 명령은 실제적으로 사용자 특성들의 평가를 실제적인 플러거블 룰 엔진에 의하여 시작하는 프럭시(proxy)이다.
다음 단계에서 룰 엔진은 사용자의 특성들을 저장된 프로파일로부터 읽고, 사용자 리소스 변환 모듈을 이용함으로써 특성들을 이해될 수 있는 형태로 변환한 다.
도 18은 "maleteengrp"로 불리는 콘텐트 그룹에 정의된 모든 포탈 리소스들을 룰 DB에서 선택하는 "MaleTeenAction"으로 불리는 새로운 액션을 생성하는 것을 예시한다.
도 17은 동적 사용자 특성들에 기초하여 "MaleTeens"를 분류하기 위하여 이전에 생성된 룰의 범위 아래로 떨어지는 모든 사용자에 대한 "maleteengrp"의 콘텐트들을 선택하도록 집합 모튤에 명령하는 동적 집합 모듈 명령을 생성하는 것을 예시한다.
도 17은 그 분류 아래로 떨어지는 일정한 사용자의 특성들로 주어진 사용자를 위하여 집합되는 콘텐트를 판단하는데 주어진 비지니스 룰(예컨대, maleteen 그룹을 구성하는 것을 정의하는 비지니스 룰)이 어떻게 영향을 미치는지를 예시한다.
사용자의 특성들을 읽은 후, 플러거블 룰 엔진은 이 사용자의 동적 그룹 멤버십을 도 18에 도시된 다양한 동적 그룹들을 위하여 정의된 룰들에 기초하여 평가한다.
이 사용자에 대한 동적 그룹들의 설정이 한번 확정되면, 룰 엔진은 도 18에 도시된 바와 같이, 동적 그룹을 위하여 정의된 액션 상에서 콘텐트 선택을 실행함으로써 이 사용자를 위한 관련된 포탈 콘텐트를 선택한다. 실행시에 액션들은 액션들에 대하여 정의된 콘텐트 그룹들로부터 포탈 리소스들의 세트를 룰 DB에 리턴한다.
다음의 실행 단계는 룰 엔진에 의하여 사용자에 할당되는 롤들의 평가이다. 롤 엔진은 (사용자 프로파일 특성들로부터 추출된) 조직의 멤버십을 사용하여 롤 DB로부터 사용자의 롤에 대한 콘텐트 리소스들의 세트를 추출한다. 이 리소스들은 이전의 세트에서 생성된 룰 기반 포탈 리소스들의 기존 리스트에 추가된다.
그 후, 리스트는 실행을 위하여 동적 포탈 집합 엔진에 포워딩된다. 동적 포탈 집합 엔진은 리스트에 의하여 식별되는 포탈 리소스들을 선택하여 현재의 사용자를 위한 디폴트 포탈 뷰를 설정완료(set up)한다.
요약
1. 공통 백엔드 웹 애플리케이션의 통합 구현
포틀릿 애플리케이션 HTTP 클라이언트 및 포틀릿 애플리케이션 세션으로, 공통 백엔드 웹 애플리케이션 통합 모델을 갖는 것이 이제 가능하다. 이것은 동일한 포틀릿 애플리케이션 내의 다중 포틀릿들이 동일한 웹 애플리케이션 백엔드와 통신하는 것을 가능케 하는데 사용될 수 있다.
본 발명의 이런 구현은 다음을 가능하게 한다:
ⅰ. 분리된 브라우저들을 런칭(launching)하지 않고, 또한 동일한 백엔드 웹 애플리케이션을 액세스하기 위하여 사용자 ID 및 암호에 대한 필요한 여러 번의 촉구없이도, 고유 포틀릿 통합을 가지고;
ⅱ. 다중 요청들을 만들고 세션 관리로 백엔드 애플리케이션에/로부터의 응답들을 수신하는 것.
2. 간단한 도구화를 유도하는 간단한 공통 시스템
본 발명은 백엔드 서버에서 동작하는 기존의 웹 애플리케이션; 및 포틀릿 애플리케이션의 배치 디스크립터에서 단지 관련된 백엔드 웹 애플리케이션의 URL의 특정을 필요로 함으로써, 포틀릿 애플리케이션들을 통합하는 쉽고 빠른 방법을 제공한다. 이것으로, 통합의 공통 업무를 처리하는 도구를 만드는 것이 가능하다.
3. 포틀릿 애플리케이션 공유 공통 세션 내의 포틀릿들 및 세션 데이터
포틀릿 애플리케이션 세션 객체의 구현은 동일한 포틀릿 애플리케이션의 포틀릿들이 포틀릿 애플리케이션 사이에서 포틀릿 애플리케이션 내의 유일한, 동시에 포탈 서버의 원시 HTTP 세션의 정보와는 다른 공통 데이터를 공유하는 것을 가능케 한다. 이것은 동일한 포틀릿 애플리케이션 내의 포틀릿 사이에서 유일한 데이터의 공유를 쉽게 한다.
4. 포탈 세션 및 백엔드 세션의 공통 세션 데이터 공유
세션 릴레이의 구현은 포탈 서버와 백엔드 웹 애플리케이션 사이의 공통 세션 데이터의 공유를 가능하게 만든다. 이것은 백엔드 웹 애플리케이션이 포탈 서버로부터 정보를 수신하는 것을 가능하게 하고, 웹 애플리케이션의 비지니스 로직이 포탈 서버로부터 패싱된 정보를 이용할 수 있게 한다.
예를 들면: 백엔드 웹 애플리케이션이 단지 정보의 요약 버전을 보내는 포틀릿의 정상적인 뷰와는 다르게, 현재의 포틀릿 상태가 포틀릿의 최대화된 뷰를 디스플레이하는 경우, 백엔드 웹 애플리케이션은 정보를 수신하고 상세화된 비지니스 정보를 다시 보냄으로써 정보를 이용할 수 있다.
5. 포틀릿 애플리케이션 세션, 포틀릿 애플리케이션 세션 객체, 포틀릿 HTTP 클라이언트, 및 세션 릴레이 메커니즘을 가진 포탈 서버와 다른 응집한 백엔드 웹 애플리케이션 세션
백엔드 웹 애플리케이션은 여전히 포탈 서버의 세션을 가진 동일한 쿠키를 공유하면서, 이제 포탈 서버와 다른 세션을 저장할 수 있다. 백엔드 웹 애플리케이션은 이제 독립적이고 정확하게 동작할 수 있고, 포탈의 다양한 포틀릿들로부터 포틀릿 요청들을 인식하며, 백엔드 웹 애플리케이션과 응집한 세션을 인에이블링(enabling)할 수 있다.
6. 교차하는 포탈 서버 및 백엔드 웹 애플리케이션 상의 한번의 사인온
세션 릴레이 실행은 포탈 서버에 한번 로그인했던 사용자가, 관련된 백엔드 웹 애플리케이션에 로그인하기 위하여 사용자 자격을 다시 제출할 필요가 없도록 하는 한번의 사인온(sign-on) 능력을 제공한다. 이것은 포탈로의 HTTP 세션 및 포틀릿 HTTP 클라이언트부터 백엔드 웹 애플리케이션까지의 HTTP 세션 사이의 일대일 매핑을 가진 쿠키 테이블 수단에 의하여 가능하다.
7. 포탈 서버와 동기화된 백엔드 웹 애플리케이션 비해이비어(behavior)
세션 릴레이 실행은 포탈 세션으로부터의 세션 정보를 백엔드 웹 애플리케이 션의 세션에 릴레이함으로써 백엔드 웹 애플리케이션의 비해이비어를 동기화함에 의하여 인에이블링된 무결절성(seamless) 통합을 가능하게 한다.
다음은 몇 가지의 예들이다:
포탈 서버에서 언어 및 위치 설정은 이제 백엔드 웹 애플리케이션에 패싱되어 이제 포탈 서버의 위치+언어 설정에 기초한 응답 메시지를 백엔드 웹 애플리케이션이 구성할 수 있다.
또 다른 예로, 포탈 서버로부터의 세션 만료 정보는 이제 백엔드 웹 애플리케이션 세션에 패싱되어 포탈 세션이 타임 아웃됨과 동시에 백엔드 웹 애플리케이션 세션이 타임 아웃될 수 있다. 백엔드 웹 애플리케이션은 이제 포탈 서버로부터 릴레이된 포탈의 상태 및 이벤트들에 응답할 수 있다.
8. 동일한 포탈 페이지 내에 동기화된 콘텐트
동적 콘텍스트 포틀릿 그룹핑은 동일한 동적 콘텍스트 그룹내의 포틀릿들 사이의 협력을 가능케 하여 비지니스 프로세스 및 정보 통합, 동기화를 달성할 수 있다.
각 포틀릿은 다중의 동적 콘텍스트 그룹들에 참여하는 것이 허용된다. 이것은 매우 개방되고 간단한 프로그래밍 모델을 포탈 관리자에 제공하여, 포탈 관리자는 포틀릿들을 동적 콘텍스트 포틀릿 그룹들로 그룹핑한다.
동적 콘텍스트 정의의 간단한 구조는 각 그룹핑을 위한 슬레이브 포틀릿들 및 동적 콘텍스트 마스터의 자동 생성을 위하여 만들어진 간단한 도구화(tooling) 를 가능하게 한다.
동적 콘텍스트 정의 구현, 동적 콘텍스트 그룹, 마스터 포틀릿 및 (슬레이브 업무들, 슬래이브 콘텍스트 맵을 포함한) 슬레이브 포틀릿 구현은 본 발명의 장점들을 제공하는데 도움이 된다.
9. 포틀릿들의 리프레쉬 시퀀스를 정의하는 능력
트랜잭션 관리자는 최초로 포틀릿들의 리프레쉬 시퀀스를 정의하는 능력을 제공한다. 포틀릿들의 리프레쉬 시퀀스를 정의하는 능력은 포탈/포틀릿 아키텍쳐를 사용하여 순차적 비지니스 로직의 적합한 구현을 가능하게 한다. 트랜잭션 관리자; 리소스 소터; 응답들의 캐싱(caching)은 본 발명의 장점들을 제공하는데 도움이 된다.
10. 룰 기반 및 롤 기반의 집합
양호한 레벨의 포탈 개인화는 현재 동적 집합에 의하여 달성될 수 있다. 본 발명에 따라 적용되는 포틀릿들, 페이지들 또는 페이지 그룹들의 형식적(formal) 개념이 없다는 점에서 정상적인 웹 애플리케이션들의 종래 기술 구현과는 명백하게 다르다. 양호한 레벨의 개인화는 포탈 시장이 활성화 되고, 양호한 레벨의 캠페인 목표에 대한 사용자의 필요 등이 도래하면서 점점 더 중요해질 것이다.
본 발명의 실시예들은 다음과 같은 많은 장점들을 제공한다.
1. 우리의 접근에 의하여 달성될 수 있는 개인화의 레벨은 훨씬 더 양호하게 정제(grained)된다. 포틀릿 운영 장치들은 오늘날 포탈 서버에 의하여 제공된다. 오늘날 사용가능한 포틀릿 운영 장치들은 고유(nature) 메뉴얼 구성에 의한다. 한번 구성되면, 정적이고 런타임에 변하지 않는다. 본 발명은 룰에 기초한 포탈 리소스들을 렌더링(rendering)하는 동적 능력을 제공한다.
2. 포탈 집합 모듈은 동적 엔터티이므로, 그것에 직접 룰 및 롤 엔진들을 묶는 것은 인간의 어떠한 간섭없이도 실시간의 동적 집합 능력들을 우리가 달성하게 한다.
3. 페이지들 및 페이지 그룹들과 같은 조잡한 포탈 리소스들의 개인화는 우리가 동적 레이아웃을 수행하게 한다.
4. 훨씬 더 효율적인 캠페인, 계약 등이 설정될 수 있다. 이것은 전자상거래 소매 및 B2B 조직들에 매우 중요하다.
5. 본 발명은 정상적인 콘텐트 개인화보다 매우 높은 정도의 개인화를 가능하게 한다. 예를 들면, 우리는 실제적으로 룰들에 기초한 웹페이지 전체의 섹션들을 불가능하게 할 수 있다. 이것은 보통의 개인화에 의하여는 수행될 수 없다. 또한, 동적 집합은 리소스가 관련되지 않은, 콘텐트인 정상적인 개인화의 영역에 적용되지 않는다.

Claims (21)

  1. 적어도 하나의 포틀릿 애플리케이션을 포함하고, 사용자 세션 정보를 릴레이하기 위하여 관련된 포틀릿들의 집합을 관리하기 위한 포탈 서버 시스템으로서, 포틀릿은 포탈 페이지의 가시적인 활성 구성요소인, 포탈 서버 시스템에 있어서,
    상기 포틀릿 애플리케이션은:
    웹 애플리케이션에 액세스하기 위한 사용자의 요청에 응답하여, 제1 포틀릿(205)을 개시하기 위한 수단과;
    상기 제1 포틀릿에 대한 상기 사용자를 위한 포틀릿 애플리케이션 세션 오브젝트(208)를 생성하기 위한 수단과;
    상기 요청으로부터 파라미터들을 저장하기 위한 수단(308)과;
    상기 웹 애플리케이션에 액세스하기 위한 상기 사용자의 추가 요청에 대하여, 상기 제1 포틀릿과 연관되는 추가 포틀릿들을 생성하기 위한 수단과;
    상기 저장된 파라미터들을 사용하여 상기 추가 포틀릿들을 상기 포틀릿 애플리케이션 세션 오브젝트와 관련시키기 위해, 상기 포틀릿 애플리케이션 세션 오브젝트에 의해 제어되는 포틀릿 애플리케이션 세션 오브젝트 데이터 저장부(302)와;
    상기 제1 포틀릿 및 상기 추가 포틀릿들로부터 수신된 사용자 요청들을 상기 웹 애플리케이션으로 전달하기 위하여, 상기 포틀릿 애플리케이션 세션 오브젝트 및 상기 웹 애플리케이션과 통신하기 위한 포틀릿 애플리케이션 통신 클라이언트(209)를 생성하기 위한 수단
    을 포함하고,
    상기 사용자 세션 정보는, 상기 사용자 세션 정보를 상기 웹 애플리케이션의 대응 세션에 매핑하기 위한 사용자 세션 정보를 포함하는 것인, 포탈 서버 시스템.
  2. 제1항에 있어서, 상기 포틀릿 애플리케이션 통신 클라이언트는 사용자 세션 정보를 저장하는 것인, 포탈 서버 시스템.
  3. 제1항에 있어서, 사용자 요청들로부터의 데이터 및 지시들을 상기 관련된 포틀릿들에 저장하기 위해, 포틀릿 요청 파라미터 맵이 이용되는 것인, 포탈 서버 시스템.
  4. 제1항에 있어서, 상기 사용자 세션 정보는, 상기 사용자 세션 정보를 상기 웹 애플리케이션의 대응 세션에 매핑하기 위하여,
    사용자 ID;
    사용자 적격(credential)들;
    언어 우선순위(preference)들;
    세션 타임아웃 정보;
    세션 ID
    를 포함하는 세트로부터 선택되는 것인, 포탈 서버 시스템.
  5. 제1항에 있어서, 상기 포틀릿 애플리케이션 통신 클라이언트는, 상기 통신 클라이언트가 상기 웹 애플리케이션 용 데이터 및 지시들을 제공할 수 있도록 상기 관련된 포틀릿들로부터의 요청들을 저장하는 요청 버퍼를 갖는 것인, 포탈 서버 시스템.
  6. 제5항에 있어서, 상기 포틀릿 애플리케이션 통신 클라이언트는, 상기 포틀릿 애플리케이션 통신 클라이언트가 상기 웹 애플리케이션용 데이터 및 지시들을 제공할 수 있도록, 상기 관련된 포틀릿들의 포틀릿 요청 파라미터 맵들로부터의 요청들을 저장하는 요청 버퍼를 갖는 것인, 포탈 서버 시스템.
  7. 웹 애플리케이션에 액세스하기 위한 사용자 요청에 응답하여 관련된 포틀릿들의 집합을 관리하여 상기 관련된 포틀릿들과 상기 웹 애플리케이션 간에 사용자 세션 정보를 릴레이하기 위한 포탈 서버 시스템용 방법으로서,
    웹 애플리케이션에 액세스하기 위한 사용자의 요청에 응답하여, 제1 포틀릿(205)을 개시하는 단계와;
    상기 제1 포틀릿에 대한 상기 사용자를 위한 포틀릿 애플리케이션 세션 오브젝트(208)를 생성하는 단계;
    상기 요청으로부터 파라미터들을 저장하는 단계;
    상기 웹 애플리케이션에 액세스하기 위한 상기 사용자의 추가 요청에 대하여, 상기 제1 포틀릿과 연관되는 추가 포틀릿들을 생성하는 단계;
    상기 저장된 파라미터들을 사용하여 상기 추가 포틀릿들을 상기 포틀릿 애플리케이션 세션 오브젝트와 관련시키기 위해, 상기 포틀릿 애플리케이션 세션 오브젝트에 의해 제어되는 포틀릿 애플리케이션 세션 오브젝트 데이터 저장부(302)를 이용하는 단계;
    상기 제1 포틀릿 및 상기 추가 포틀릿들로부터 수신된 사용자 요청들을 상기 웹 애플리케이션으로 전달하기 위하여, 상기 포틀릿 애플리케이션 세션 오브젝트 및 상기 웹 애플리케이션과 통신하기 위한 포틀릿 애플리케이션 통신 클라이언트(209)를 생성하는 단계
    을 포함하고,
    상기 사용자 세션 정보는, 상기 사용자 세션 정보를 상기 웹 애플리케이션의 대응 세션에 매핑하기 위한 사용자 세션 정보를 포함하는 것인, 포탈 서버 시스템용 방법.
  8. 컴퓨터상에서 실행되어 제7항의 방법을 수행하기 위한 컴퓨터 프로그램 코드를 기록한 컴퓨터 판독가능 기록매체.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020057005849A 2002-10-04 2003-10-01 포탈 서버로부터 세션 정보를 릴레이하기 위한 방법 및장치 KR100827280B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA2,406,713 2002-10-04
CA002406713A CA2406713C (en) 2002-10-04 2002-10-04 Method and apparatus for relaying session information from a portal server

Publications (2)

Publication Number Publication Date
KR20050055746A KR20050055746A (ko) 2005-06-13
KR100827280B1 true KR100827280B1 (ko) 2008-05-07

Family

ID=32046581

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057005849A KR100827280B1 (ko) 2002-10-04 2003-10-01 포탈 서버로부터 세션 정보를 릴레이하기 위한 방법 및장치

Country Status (12)

Country Link
US (1) US10880391B2 (ko)
EP (1) EP1552428B1 (ko)
JP (1) JP4218759B2 (ko)
KR (1) KR100827280B1 (ko)
CN (1) CN100492354C (ko)
AT (1) ATE380369T1 (ko)
AU (1) AU2003269214A1 (ko)
CA (1) CA2406713C (ko)
DE (1) DE60317917T2 (ko)
ES (1) ES2295625T3 (ko)
TW (1) TWI251755B (ko)
WO (1) WO2004031882A2 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4650792B2 (ja) * 2003-12-03 2011-03-16 日本電気株式会社 セッション中継装置、セッション中継方法及びセッション中継プログラム
US8181112B2 (en) * 2004-05-21 2012-05-15 Oracle International Corporation Independent portlet rendering
GB0420673D0 (en) * 2004-09-17 2004-10-20 Ibm Data sharing system, method and software tool
US20060242249A1 (en) * 2005-04-26 2006-10-26 International Business Machines Corporation Method for the display of visual sequencing of message communications between application portlets and task page relationship information in a web-base environment
US7493564B2 (en) * 2005-04-26 2009-02-17 International Business Machines Corporation Method for the display of visual sequencing of launched application portlets and task page relationship information in a web-base environment
US20070245334A1 (en) * 2005-10-20 2007-10-18 The Trustees Of Columbia University In The City Of New York Methods, media and systems for maintaining execution of a software process
US8280944B2 (en) * 2005-10-20 2012-10-02 The Trustees Of Columbia University In The City Of New York Methods, media and systems for managing a distributed application running in a plurality of digital processing devices
US8549646B2 (en) * 2005-10-20 2013-10-01 The Trustees Of Columbia University In The City Of New York Methods, media and systems for responding to a denial of service attack
US20070233880A1 (en) * 2005-10-20 2007-10-04 The Trustees Of Columbia University In The City Of New York Methods, media and systems for enabling a consistent web browsing session on different digital processing devices
US7577672B2 (en) * 2006-03-09 2009-08-18 Sap Ag Systems and methods for providing a portal including multiple windows
US7996855B2 (en) * 2006-09-15 2011-08-09 Oracle International Corporation Personal messaging application programming interface for integrating an application with groupware systems
US8463852B2 (en) * 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US8656413B2 (en) * 2006-10-24 2014-02-18 Sap Ag On-demand wrappers of application data
CN101227488A (zh) * 2007-01-17 2008-07-23 华为技术有限公司 一种注册式门户程序通信系统、通信装置和方法
US8032858B2 (en) * 2007-08-28 2011-10-04 International Business Machines Corporation Method and system for navigationally displaying HTTP session entry and exit points
US8607197B2 (en) * 2007-08-28 2013-12-10 International Business Machines Corporation Displaying HTTP session entry and exit points
US9129031B2 (en) 2007-08-29 2015-09-08 International Business Machines Corporation Dynamically configurable portlet
EP2048852B1 (en) * 2007-10-08 2016-01-27 Fifthplay NV Service aggregation system and method
US20090138609A1 (en) * 2007-11-27 2009-05-28 General Instrument Corporation Method and Apparatus for Maintaining User Sessions Across User Devices and Portals
US9817822B2 (en) 2008-02-07 2017-11-14 International Business Machines Corporation Managing white space in a portal web page
US8683073B2 (en) * 2008-12-11 2014-03-25 Microsoft Corporation Participating with and accessing a connectivity exchange
CN102447726A (zh) * 2010-10-15 2012-05-09 中兴通讯股份有限公司 页面访问方法及系统
US8781811B1 (en) * 2011-10-21 2014-07-15 Google Inc. Cross-application centralized language preferences
US9632988B2 (en) * 2012-07-12 2017-04-25 International Business Machines Corporation Autonomous gadget management system
US10051019B1 (en) 2012-11-09 2018-08-14 Wells Fargo Bank, N.A. System and method for session management
US9658836B2 (en) 2015-07-02 2017-05-23 Microsoft Technology Licensing, Llc Automated generation of transformation chain compatible class
US9712472B2 (en) 2015-07-02 2017-07-18 Microsoft Technology Licensing, Llc Application spawning responsive to communication
US10198252B2 (en) 2015-07-02 2019-02-05 Microsoft Technology Licensing, Llc Transformation chain application splitting
US10261985B2 (en) 2015-07-02 2019-04-16 Microsoft Technology Licensing, Llc Output rendering in dynamic redefining application
US9860145B2 (en) 2015-07-02 2018-01-02 Microsoft Technology Licensing, Llc Recording of inter-application data flow
US9733993B2 (en) 2015-07-02 2017-08-15 Microsoft Technology Licensing, Llc Application sharing using endpoint interface entities
US9785484B2 (en) 2015-07-02 2017-10-10 Microsoft Technology Licensing, Llc Distributed application interfacing across different hardware
US9733915B2 (en) 2015-07-02 2017-08-15 Microsoft Technology Licensing, Llc Building of compound application chain applications
US10198405B2 (en) 2015-07-08 2019-02-05 Microsoft Technology Licensing, Llc Rule-based layout of changing information
US10031724B2 (en) 2015-07-08 2018-07-24 Microsoft Technology Licensing, Llc Application operation responsive to object spatial status
US10277582B2 (en) 2015-08-27 2019-04-30 Microsoft Technology Licensing, Llc Application service architecture
CN110311895B (zh) * 2019-05-28 2022-07-08 深圳壹账通智能科技有限公司 基于身份验证的会话权限校验方法、系统及电子设备
CN111045749B (zh) * 2019-12-18 2021-06-08 青岛海信传媒网络技术有限公司 应用程序启动方法及设备
JP7377832B2 (ja) * 2021-05-21 2023-11-10 フリー株式会社 プログラム、情報処理装置及び方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2233620A (en) * 1939-10-09 1941-03-04 Commerical Solvents Corp Process for improving the thermal stability of nitroparaffins
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
US6049820A (en) * 1996-06-03 2000-04-11 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
US6006266A (en) * 1996-06-03 1999-12-21 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
US6304893B1 (en) * 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US5884316A (en) * 1996-11-19 1999-03-16 Microsoft Corporation Implicit session context system with object state cache
US5915087A (en) * 1996-12-12 1999-06-22 Secure Computing Corporation Transparent security proxy for unreliable message exchange protocols
US5941988A (en) * 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
US6041357A (en) * 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US6061741A (en) * 1997-05-28 2000-05-09 International Business Machines Corporation Method and apparatus for synchronization of connectionless applications across a network by using simple encryption tokens
US6170012B1 (en) * 1997-09-12 2001-01-02 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with cache query processing
US5941954A (en) * 1997-10-01 1999-08-24 Sun Microsystems, Inc. Network message redirection
US6301011B1 (en) * 1997-11-07 2001-10-09 Xerox Corporation Dynamic plug and play interface for output device
US6286060B1 (en) * 1998-06-26 2001-09-04 Sun Microsystems, Inc. Method and apparatus for providing modular I/O expansion of computing devices
US6219706B1 (en) * 1998-10-16 2001-04-17 Cisco Technology, Inc. Access control for networks
US6412073B1 (en) * 1998-12-08 2002-06-25 Yodiee.Com, Inc Method and apparatus for providing and maintaining a user-interactive portal system accessible via internet or other switched-packet-network
US6424979B1 (en) * 1998-12-30 2002-07-23 American Management Systems, Inc. System for presenting and managing enterprise architectures
US6401085B1 (en) * 1999-03-05 2002-06-04 Accenture Llp Mobile communication and computing system and method
US6356905B1 (en) * 1999-03-05 2002-03-12 Accenture Llp System, method and article of manufacture for mobile communication utilizing an interface support framework
JP3764016B2 (ja) 1999-05-10 2006-04-05 財団法人流通システム開発センタ− 統合ip転送網
US7275086B1 (en) * 1999-07-01 2007-09-25 Intellisync Corporation System and method for embedding a context-sensitive web portal in a computer application
AU1221001A (en) 1999-11-04 2001-05-14 Abilizer Solutions, Inc. Employee portal and method of use therefor
EP1117220A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Method and system for protocol conversion
EP1117050A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Individual data representation
US6735586B2 (en) * 2000-02-08 2004-05-11 Sybase, Inc. System and method for dynamic content retrieval
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
US7051069B2 (en) * 2000-09-28 2006-05-23 Bea Systems, Inc. System for managing logical process flow in an online environment
US7502833B2 (en) * 2001-05-11 2009-03-10 International Business Machines Corporation Method for dynamically integrating remote portlets into portals
WO2003009177A1 (en) * 2001-07-16 2003-01-30 Dh Labs, Inc. Web site application development method using object model for managing web-based content
US6922695B2 (en) * 2001-09-06 2005-07-26 Initiate Systems, Inc. System and method for dynamically securing dynamic-multi-sourced persisted EJBS
US6985939B2 (en) * 2001-09-19 2006-01-10 International Business Machines Corporation Building distributed software services as aggregations of other services
WO2003036490A1 (en) * 2001-10-24 2003-05-01 Bea Systems, Inc. System and method for xml data representation of portlets
US7062511B1 (en) * 2001-12-31 2006-06-13 Oracle International Corporation Method and system for portal web site generation
US6871197B1 (en) * 2002-02-25 2005-03-22 Oracle International Corporation Method and mechanism for a web based knowledge management tool
US20030187956A1 (en) * 2002-04-01 2003-10-02 Stephen Belt Method and apparatus for providing access control and content management services
WO2003093964A1 (en) * 2002-05-01 2003-11-13 Bea Systems, Inc. Enterprise application platform
US7103844B2 (en) * 2002-06-26 2006-09-05 International Business Machines Corporation Portal/portlet application data synchronization
CA2406569C (en) * 2002-10-04 2011-03-22 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for enabling associated portlets of a web portal to collaborate for synchronized content display
CA2406876A1 (en) * 2002-10-04 2004-04-04 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for managing a collection of portlets in a portal server
US7523174B2 (en) * 2002-10-15 2009-04-21 International Business Machines Corporation Dynamic portal assembly
EP1568189B1 (en) * 2002-12-02 2015-06-17 Sap Se Session-return enabling stateful web applications
US6917975B2 (en) * 2003-02-14 2005-07-12 Bea Systems, Inc. Method for role and resource policy management
US7536714B2 (en) * 2003-07-11 2009-05-19 Computer Associates Think, Inc. System and method for synchronizing login processes
US7349968B2 (en) * 2003-07-31 2008-03-25 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US7380009B2 (en) * 2003-08-07 2008-05-27 Interantional Business Machines, Incorporated Method, system and program product for delayed disconnection of a client from a server
US7376739B2 (en) * 2004-02-11 2008-05-20 International Business Machines Corporation Persistence of inter-application communication patterns and behavior under user control
US20050262075A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for collaboration shared state management
US20060069714A1 (en) * 2004-09-08 2006-03-30 Blount Marion L System enhancement using client context information
US8204931B2 (en) * 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
java servlet programming

Also Published As

Publication number Publication date
JP2006502477A (ja) 2006-01-19
DE60317917T2 (de) 2008-11-27
TWI251755B (en) 2006-03-21
JP4218759B2 (ja) 2009-02-04
WO2004031882A2 (en) 2004-04-15
AU2003269214A8 (en) 2004-04-23
US10880391B2 (en) 2020-12-29
CA2406713C (en) 2009-06-30
ES2295625T3 (es) 2008-04-16
EP1552428A2 (en) 2005-07-13
AU2003269214A1 (en) 2004-04-23
ATE380369T1 (de) 2007-12-15
CN100492354C (zh) 2009-05-27
CN1703699A (zh) 2005-11-30
EP1552428B1 (en) 2007-12-05
US20060089990A1 (en) 2006-04-27
KR20050055746A (ko) 2005-06-13
CA2406713A1 (en) 2004-04-04
WO2004031882A3 (en) 2005-04-14
DE60317917D1 (de) 2008-01-17
TW200413968A (en) 2004-08-01

Similar Documents

Publication Publication Date Title
KR100827280B1 (ko) 포탈 서버로부터 세션 정보를 릴레이하기 위한 방법 및장치
KR100843828B1 (ko) 포탈 서버에서 포틀릿들의 집합을 관리하기 위한 방법 및장치
KR100819021B1 (ko) 동기화된 콘텐트 디스플레이를 위하여 웹 포탈의 관련된포틀릿들이 협력할 수 있도록 하는 방법 및 장치
US20060235935A1 (en) Method and apparatus for using business rules or user roles for selecting portlets in a web portal
EP1117220A1 (en) Method and system for protocol conversion
JP2009531793A (ja) ウェブコミュニティおよびウェブアプリケーションのデータを変換するシステムおよび方法
US8621092B2 (en) Remote portlet consumer with enhanced resource URL processing
Shah et al. Global soa: Rss-based web services repository and ranking

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130327

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee