KR100576487B1 - 컴포넌트화된 콘텐츠를 유지하기 위한 시스템 및 방법 - Google Patents

컴포넌트화된 콘텐츠를 유지하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR100576487B1
KR100576487B1 KR1020047012290A KR20047012290A KR100576487B1 KR 100576487 B1 KR100576487 B1 KR 100576487B1 KR 1020047012290 A KR1020047012290 A KR 1020047012290A KR 20047012290 A KR20047012290 A KR 20047012290A KR 100576487 B1 KR100576487 B1 KR 100576487B1
Authority
KR
South Korea
Prior art keywords
component
content
document
components
website
Prior art date
Application number
KR1020047012290A
Other languages
English (en)
Other versions
KR20040082419A (ko
Inventor
로버트데이비드주니어 브래드쇼
케빈 빈센트 코크레인
잭실리안 지아
브리트 박
메일리 종
Original Assignee
인터우븐 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터우븐 인코포레이티드 filed Critical 인터우븐 인코포레이티드
Priority claimed from PCT/US2003/003952 external-priority patent/WO2003067475A1/en
Publication of KR20040082419A publication Critical patent/KR20040082419A/ko
Application granted granted Critical
Publication of KR100576487B1 publication Critical patent/KR100576487B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

저장 공간을 절약하고, 콘텐츠를 효율적으로 조작 및 유지하기 위해 컴포넌트를 생성하기 위한 시스템 및 방법이 제공된다. 한 실시예에서, 시스템은 공통 콘텐츠를 공유하는 엔티티 내의 콘텐츠의 컴포넌트화(802)를 관리하도록 구성된다. 시스템은 콘텐츠가 변형(606) 또는 변이(610)되는 지의 여부 및 시간과 같은 상태 및 콘텐츠의 편집(236)을 관리하도록 구성된 콘텐츠 제어(118) 모듈을 포함한다. 대안적으로, 시스템은 컴포넌트(704)의 인덱싱(702) 및 서치를 관리하도록 구성된 저장소(700)를 포함할 수 있다.
콘텐츠, 컴포넌트, 엔티티, 저장소, 태그, 스토리지, 렌더링, 웹사이트, 맵핑, 문서 골격

Description

컴포넌트화된 콘텐츠를 유지하기 위한 시스템 및 방법{System and method for maintaining componentized content}
본 발명은 일반적으로 문서 저장 시스템, 특히 문서를 저장 및 유지하기 위한 시스템 및 방법에 관한 것이다.
인터넷 웹사이트를 개발 및 유지하도록 특별히 맞춰진 애플리케이션은 웹사이트 개발 분야에서는 공지되어 있다. 이들 많은 애플리케이션은 웹사이트를 설계 및 유지하기 위한 간략화된 방법을 제공한다. 이들 방법은 웹 콘텐츠 및 관련 정보의 수신, 저장 및 배열을 용이하게 하여, 호스트 웹사이트에 사용된 서버에 이들을 전달하는 단계를 포함할 수 있다. 좀 더 향상된 시스템에서는, 애플리케이션 프로그램 및 관련 시스템들의 다른 향상된 기능들이 특정 정보를 운영할 수 있고 정보에 액세스할 수 있도록 정보는 다중 위치 및 다른 파일에 저장되어야 한다. 따라서, 문서 보유 및 제어는 관리하기가 어렵다.
많은 개발 콘트리뷰터(contributor)들의 노력들을 조정할 필요가 있기 때문에, 의욕적으로 문서 및 이들 콘텐츠의 개발 및 구성이 이루어진다. 더욱이, 많은 문서들이 자주 변형될 필요가 있는데, 이는 이들 문서들을 전형적으로 ad hoc 프로세스에서 변형시키는 여러 콘트리뷰터들에 의해 보통 이루어진다. 개별적인 워크 스테이션의 유저들이 문서 내의 동일한 정보를 갱신하도록 시도할 때 문제가 발생하는데, 이는 프로세스를 혼동시키게 한다. 이러한 문제가 제기되므로써, 그러한 문서들의 개발 및 유지에 의존하는 많은 사업들은 매일, 시간 또는 분 단위로, 그리고 다양한 콘트리뷰터들마다 갱신을 요구한다. 그리고, 콘트리뷰터들의 수가 증가함에 따라, 콘텐츠의 사용 뿐만 아니라, 콘텐츠의 부피가 커지고 복잡하게 된다. 정보가 생성되면, 이 정보는 모든 콘트리뷰터들에 의해 저장되어야 하는데, 이 콘트리뷰터들은 적당한 데이터 보존 절차를 유지하는데 있어서 성실하거나 그렇지 않을 수 있다. 그 결과, 효율성 및 품질 제어를 위한 문서 파일들의 관리는 어렵게 된다.
이들 문제에 대응하기 위하여, 시스템 애플리케이션들이 웹사이트 개발 관리를 위해 개발되어 왔다. 이들 몇몇 애플리케이션은 소프트웨어 구성 관리 시스템, 문서 관리 시스템 및 데이터베이스 출판 시스템을 포함한다. 그러한 한가지 애플리케이션에서, 웹사이트를 개발 및 관리하는데 사용된 문서는 개별 웹사이트 개발자가 콘텐츠의 개별 부분들을 구성 또는 유지하는 곳의 작업 영역 내에서 작업될 수 있다. 이는 웹사이트 개발의 태스크를 다수의 사람들에게 유포시키는데 도움이 된다. 각 개발자로부터의 최종 콘트리뷰션(contribution)들은 통합된 문서 또는 문서들 내로 짜 넣어져 결합된 다음, 웹사이트를 호스팅하는데 문서를 사용하는 프로덕션 서버에 전개된다.
이러한 시스템과 관련된 몇가지 단점이 존재한다. 예를 들면, 그러한 문서의 유지가 대다수 사람들의 노력을 필요로 하는 경우, 다양한 콘텐츠 콘트리뷰터들 이 작업을 병렬로 하는 것이 바람직하다. 소프트웨어 구성 관리 시스템은 콘트리뷰터들이 동일한 콘텐츠에 대해 동시에 변경하지 못하도록 한다. 그리고, 종래의 시스템은 전형적으로, 웹사이트에 전개 및 출판하지 않고는, 개별 콘트리뷰터들이 그들 고유 작업을 개별적으로 테스트하지 못하게 한다. 그 결과는 개별 콘트리뷰터들이 그들의 콘트리뷰션이 다른 콘트리뷰션들과 결합될 때 그 효과를 예견할 수 없다는 것이다. 또한, 웹사이트 콘텐츠의 개발은 종종 개발 프로세스 자체에 걸쳐 작은 제어로 행해진다. 그 결과, 변경 충돌(conflicting changes)은 웹사이트에 퍼져, 콘텐츠들에 오류를 발생시키고,웹사이트의 보전에 손상을 끼칠 수 있다.
문제가 복잡해짐에 따라, 대부분의 개발 시스템은 웹사이트 유지 용도의 프로덕션 서버에 전개하기 위한 다중 문서들을 포함한다. 이들 문서들은 개별적으로 유지되어야 하는데, 이들 문서는 문서 내에 포함된 콘텐츠 전부를 포함한다. 여러 유형의 종래 문서 저장 및 유지 시스템은 그러한 애플리케이션을 위해 존재하나, 모두 방해가 되어, 모든 개별 문서의 변형을 필요로 한다. 이러한 시스템에서, 문서들은 태그 또는 메타데이터와 같은 문서 정보에 따라 저장 시스템에 저장된다. 각 문서 내의 콘텐츠는 변형되어야 하는데, 그렇지 않으면, 개별적으로 유지되어 그 내부에 포함된 콘텐츠를 변경시킨다. 따라서, 문서 내에 위치한 소정의 텍스트, 그래픽 또는 다른 콘텐츠는 문서 단위로 문서 상에 갱신되어야 하는데, 이는 일관성을 유지하기 어렵게 만든다.
그러나, 많은 애플리케이션에서, 공통 콘텐츠는 다중 문서 내에 상주할 수 있다. 예를 들면, 저작권 정보, 법적 거부권, 상표 로고 및 다른 정보와 같은 보 편적 정보에 속하는 콘텐츠는 다중 웹페이지에 존재한다. 이들 문서는 일관적으로 및 보편적으로 유지된다. 웹사이트 유지 및 개발 용도로 이들 문서의 전개를 위해서는, 소정의 보편적 콘텐츠에 대한 변경이 페이지 단위로, 따라서 문서 단위로 유지되어야 한다. 따라서, 그러한 보편적 콘텐츠를 효율적으로 변형하기 위한 시스템 또는 방법을 개발하는 것이 유용하다. 후술하는 바와 같이, 본 발명은 멋진 방식으로 달성된다.
도1은 본 발명에 따라 웹사이트 개발을 위한 컴퓨터 네트웍 시스템을 도시한다.
도2는 본 발명에 따른 도1의 문서 콘텐츠 제어 애플리케이션의 상세도를 도시한다.
도3은 본 발명의 따라 컴포넌트화된 문서의 예를 도시한다.
도4는 본 발명에 따른 렌더링 프로세스를 도시하는 흐름도이다.
도5는 본 발명에 따른 인코딩 프로세스를 도시하는 흐름도이다.
도6은 본 발명에 따른 제출 및 전개 프로세스를 도시하는 흐름도이다.
도7은 본 발명에 따른 컴포넌트 저장소를 도시한다.
도8은 본 발명에 따른 인덱싱 프로세스를 도시하는 흐름도이다.
도9는 본 발명에 따른 검색 프로세스를 도시하는 흐름도이다.
본 발명은 콘텐츠 컴포넌트를 생성 및 유지하기 위한 시스템 및 방법을 제공 한다. 한 실시예에서, 시스템은 공통 콘텐츠를 공유하는 엔티티 내에 콘텐츠의 컴포넌트화를 관리하도록 구성된다. 이 시스템은 시스템 용도의 콘텐츠를 관리하도록 구성된 콘텐츠 제어 모듈을 포함한다. 시스템은 또한 후술되는 바와 같이, 콘텐츠의 편집을 관리하도록 구성된 편집 애플리케이션, 및 변형 또는 변이 여부 및 시기와 같은 상태 뿐만 아니라 컴포넌트를 관리하도록 구성된 컴포넌트 제어 모듈을 포함한다. 대안적으로, 시스템은 컴포넌트의 인덱싱 및 검색을 관리하도록 구성된 저장소(repository)를 포함할 수 있다. 저장소는 개별 컴포넌트와 관련된 태그에 따른 컴포넌트의 인덱싱을 관리하도록 구성된 인덱스 모듈, 및 컴포넌트의 상태 및 버전을 나타내도록 구성된 버전 모듈을 포함한다. 저장소는 또한 컴포넌트의 검색을 관리하도록 구성된 질의 모듈을 포함하는데, 이 질의 모듈은 컴포넌트를 검색하기 위한 파라미터를 셋팅하도록 구성된 질의 룰(query rules)을 포함한다.
시스템은 콘텐츠를 컴포넌트화하도록 구성될 수 있으며, 렌더링(rendering)시에 문서 내에 삽입될 컴포넌트화된 콘텐츠를 식별하는 태그들 및 콘텐츠를 갖는 문서 골격으로 이루어진 문서를 개발하도록 구성될 수 있다. 시스템이 웹사이트 콘텐츠를 컴포넌트화하도록 구성되면, 시스템은 웹사이트 콘텐츠를 갖는 문서를 개발하도록 구성된 개발 서버를 더 포함하는데, 여기서 문서는 렌더링시에 문서 내에 삽입될 컴포넌트화된 콘텐츠를 식별하는 태그들 및 콘텐츠를 갖는 문서 골격으로 이루어진다.
본 발명의 실시예들은 웹사이트 유지 및 관리 애플리케이션의 문맥 내에서 도시 및 기술되는데, 여기서 문서는 웹 콘텐츠를 생성 및 유지하기 위해 애플리케 이션 내의 공유 사용을 위해 컴포넌트화된다. 본 분야의 숙련자들은 본 발명의 한가지 실시예만이 도시되더라도, 이는 그러한 좁은 애플리케이션에 국한되지 않음을 알 수 있다. 반면에, 본 발명은 청구범위에 정의된 바와 같이, 좀 더 넓은 범위를 갖는다.
본 발명의 실시예들은 또한 전자 문서의 문맥 내에서 기술된다. 문서는 XML 언어와 같은 특정 언어로 되어 있는 형식적인 정의를 갖는다. 그러나, 본 발명은 XML, 문서 관리 또는 다른 좁은 개념하의 문서에 국한되지 않는다. 더우기, 본 발명은 텍스트, 이미지, 비디오 및 애플리케이션에 관련된 다른 형태의 표현을 가질 수 있는 관련 데이터를 포함하는 소정의 엔티티로 확장된다. 예를 들면, 온라인 학습 코스는 문서로서 정의될 수 있고, 각각은 컴포넌트로서 학습된다. 다른 예로서, 회사는 제품 카달로그를 만들 수 있는데, 카달로그 자체는 문서이고, 각 제품 및 제품군들은 문서의 컴포넌트 및 서브 컴포넌트일 수 있다. 본 분야의 숙련자들은 문서로서 기술된 엔티티가 본 발명의 설명 용도로 일반적임을 알 수 있고, 이는 후술되는 청구범위로 정의된 본 발명의 정신 및 범위에 제한되지 않는다.
이들 문서는 웹사이트 개발 및 유지를 위한 웹사이트 페이지를 정의하기 위해 프로덕션 서버에 전개될 수 있다. 그러나, 본 발명은 다양한 애플리케이션을 위한 문서의 컴포넌트화가 유용한 경우에 좀 더 광범위한 애플리케이션을 갖는 것이 예상된다. 컴포넌트는 콘텐츠의 유지를 지배하는 특정 컴포넌트화 룰에 따라 식별 및 분리될 수 있다. 이러한 룰은 컴포넌트를 위치시키기 위한 배치 파라미터, 컴포넌트의 버전을 유지하기 위한 버전 룰, 및 컴포넌트로의 액세스를 지배하 기 위한 액세스 룰을 포함할 수 있다.
본 분야의 숙련자들은 문서와 관련하여 전체적으로 더 큰 부분인 컴포넌트를 이해하게 된다. 본 발명에 따르면, 컴포넌트는 가능한 다중 문서 내에서 컴포넌트의 재사용을 허용하도록 구성된다. 본 분야의 숙련자들은 또한, 렌더링의 일반적인 개념이 작은 부분들 중 일부의 구성에 관한 것임을 알 수 있다. 본 발명의 문맥에서, 렌더링은 컴포넌트 콘텐츠를 갖는 문서 내에 위치한 컴포넌트 레퍼런스를 재배치하는 프로세스에 관련된다. 그러한 구성에서, 문서는 동일한 레퍼런스를 갖는 다른 문서와 공유되는 콘텐츠를 포함하는 컴포넌트에 대한 레퍼런스를 갖도록 구성된다. 또한, 본 발명은 다른 문서와 컴포넌트를 공유하는 능력을 제공한다. 한 실시예에서, 적당한 특권을 갖는 유저에 의해 변형될 수 있는 컴포넌트의 한가지 단일 카피가 존재한다. 이는 컴포넌트화된 콘텐츠가 단일 위치에 저장될 수 있지만, 다중 위치에 적용될 수 있기 때문에, 저장 공간 상에서 절약된다. 따라서, 컴포넌트는 컴포넌트에 대한 레퍼런스와 마찬가지로, 문서 특정 콘텐츠를 포함할 수 있는 골격 문서 내에서 참조된다. 문서가 렌더링될 때, 문서 골격은 검색되고, 컴포넌트화된 콘텐츠는 골격 문서 내에 삽입된다. 문서가 어셈블될 때의 이러한 렌더링은 시스템이 개별 문서 엔티티를 개별적으로 저장하게 하여, 재사용가능한 컴포넌트를 한번만 저장하므로써 공간을 절약한다.
또한, 컴포넌트가 갱신되면, 컴포넌트를 참조하는 모든 문서는 컴포넌트를 통해 자동적으로 갱신된다. 따라서, 컴포넌트를 포함하는 각 문서는 수동으로 갱신될 필요가 있는 종래의 애플리케이션과는 달리, 개별적으로 갱신될 필요는 없다.
데이터량을 관리하는 컴퓨터 시스템에서, 데이터는 문서 또는 파일의 형태로 컴퓨터 메모리에 저장된다. 예를 들면, 웹사이트, 엑스트라넷 사이트 또는 인트라넷 사이트에 관한 콘텐츠를 유지하고 콘텐츠에 대한 변경을 실행하기 위한 시스템에서, 물리적 메모리는 작업 영역, 스테이징 영역 및 편집 영역에 대해 할당될 수 있다. 웹 개발 및 유지 시스템의 한 예에서, 작업 영역은 개별 콘트리뷰터 또는 콘트리뷰터 그룹에 의해 콘텐츠에 행해질 진행중(in-progress) 변경을 저장할 수 있다. 저장은 프로세싱 명령과 함께 작업 영역 내에서 개발 또는 유지되는 파일을 포함하는 백킹 저장일 수 있다. 종래의 시스템과는 달리, 이러한 예는 콘텐츠를 유지 및 개발하는 유저에 투명하거나 투명하지 않을 수 있는 방식으로 이들 진행중 변경으로부터 완결되는 콘텐츠를 자동적으로 검색, 전개 및 저장하도록 구성될 수 있다. 본 발명에 따르면, 메모리에 저장된 문서는 보편적 애플리케이션의 콘텐츠를 포함하고 시스템 내에 위치한 다중 문서 내에 사용하는 컴포넌트를 포함할 수 있다. 이들 컴포넌트는 렌더링되거나 그렇지 않으면 액세스될 때 다중 문서 내에 삽입될 수 있다.
컴포넌트의 한가지 목적은 보편적 애플리케이션의 일정한 콘텐츠를 제공하고, 문서 내에 사용될 때 사용하게 하는 것이다. 따라서, 이들 컴포넌트는 컴포넌트로의 공유 액세스를 제한하거나 배타적인 엔티티 또는 유저에 의해 집중적으로 제어되어야 한다. 이는 일반적인 웹사이트 콘텐츠가 개발 및 유지되는 경우에 작업 영역 내의 유저에 의해 액세스될 수 있는 다른 골격 콘텐츠로부터 콘텐츠를 구별하게 한다. 따라서, 컴포넌트 내의 콘텐츠는 다른 콘텐츠와는 액세스 권리 및 특성이 다를 수 있다. 이들은 동일할 수도 있다. 문서 소유자, 즉 특권을 갖는 자는 문서의 콘텐츠를 변형할 수 있고, 또 컴포넌트의 소유자일 수 있다. 다른 실시예에서는, 또한, 컴포넌트와 관련된 특권과는 다른 문서와 관련된 특권을 가질 수 있다. 예를들면, 특정 애플리케이션 내에서 중앙 권한이 보편적으로 적용되는 컴포넌트의 콘텐츠를 제어할 수 있게 된다. 가격 정보가 컴포넌트 내에 구성되면, 가격 계산에서의 균일성을 보장하도록, 그리고 단일 컴포넌트 변형으로부터 순간적 변경이 가능하게 하도록 중심적으로 제어된다. 이들 컴포넌트는 특별한 특성에 따른 문서 내의 다른 콘텐츠와 구별될 수 있다. 한가지 방법은 렌더링될 때, 컴포넌트화된 콘텐츠가 골격 콘텐츠와 같이, 다른 콘텐츠와 대조를 이루어 나타나는 방식이다. 이는 뷰될 때 문서의 비주얼 디스플레이 내에 적용하는 것이 유용하다. 예를 들면, 문서가 작업 영역 내에서 유저에 의해 렌더링될 때, 문서의 비주얼 레프리젠테이션은 유저의 모니터 상에 나타난다. 콘텐츠의 레프리젠테이션은 그래픽 뿐만 아니라 텍스트 정보를 포함할 수 있다. 이러한 정보는 최종 제품에서 균일성을 보전하기 위해서 템플릿 포맷에 따라 디스플레이될 수 있다. 컴포넌트화된 콘텐츠는 다른 콘텐츠와는 다르게 나타날 수 있는데, 이는 콘텐츠가 액세스가능하지않을 수 있다는 것을 나타낸다. 컴포넌트화된 콘텐츠를 디스플레이하는 시스템은 또한, 시도되는 경우 유저에 의한 변경을 간단히 받아들이지 않을 수 있다.
일단, 변경이 작업 영역 내에서 이루어지면, 변경된 콘텐츠는 스테이징 영역 또는 영역들에 제출될 수 있다. 스테이징 영역에서, 콘텐츠 변경들은 조합될 수 있다. 스테이징 영역으로부터, 변경된 콘텐츠는 편집 영역 또는 영역들로 전달될 수 있다. 편집 영역은 웹사이트, 엑스트라넷 사이트 또는 인트라넷 사이트에 대한 콘텐츠의 버전 또는 편집을 저장할 수 있다. 그 다음, 데이터는 그러한 콘텐츠를 이용할 수 있는 디바이스 또는 시스템에 전개될 수 있다. 본 발명의 한 실시예에서, 컴포넌트화된 콘텐츠가 제출된 콘텐츠 내에 채택되면, 변형된 컴포넌트만이 제출될 필요가 있다.
한 실시예에서, 변이된 문서는 컴포넌트가 변형된 경우의 문서이지만, 문서의 나머지는 동일하게 남아 있고, 변형된 문서는 문서의 골격, 또는 비컴포넌트화된 콘텐츠가 변형된 경우의 문서이다. 컴포넌트가 변경되는 경우에, 컴포넌트의 보편적 애플리케이션은 필연적으로, 다양한 문서들이 변형된 컴포넌트를 채택하므로써 변경되게 한다. 컴포넌트화된 콘텐츠 내에서의 변경들만을 갖는 문서는 변이된 문서로 간주된다. 그러한 문서는 반드시 스테이징 및 편집 영역들에 제출될 필요는 없다. 단지 변이된 파일은 반드시 제출될 필요는 없다. 따라서, 문서가 변경되나, 문서가 포함하는 컴포넌트가 변경되지 않으면, 컴포넌트는 문서와 제출될 필요는 없다. 원본의, 미변형된 컴포넌트는 자동적으로 사용된다. 이는 마찬가지로 서브-컴포넌트를 갖는 파일로 확장될 수 있다.
변형된 파일 대 변이된 파일의 예로서, 문서 X가 컴포넌트 A & B를 포함하는 것으로 가정하면, 가정된 컴포넌트 B는 차례로 서브-컴포넌트 C & D를 포함한다. D를 변형하면, X & B는 변이되고, 반면에 A & C는 완전히 변경되지 않는다. D가 단지, 실제로 변형된 파일이기 때문에, D는 단지, 스테이징 영역에 제출될 필요가 있는 파일이다. 그러나, 하나의 양호한 실시예에서, 이러한 콘텐츠를 외부의 웹 서버 (등등)에 전개하는 시간이 되면, 변이된 파일은 변형된 파일들 이외에도 전개될 필요가 있다. 그 경우, X, B & D는 D가 단지 변형된 파일이더라도 전개될 필요가 있다.
전개 시나리오에서는, 웹사이트 제작 서버 또는 웹사이트를 호스팅하는 다른 엔티티에 작업 영역 콘텐츠를 전송하기 위한 기준이 설정되어야 한다. 일반적인 룰로서, 오직 변형된 파일들만이 스테이징 영역에 제출된다. 그리고, 변경들은 최종적으로 공개되기 전에 편집 영역에 최종적으로 제출될 수 있다. 그러나, 본 발명에 따르면, 양호한 실시예에서, 컴포넌트화된 콘텐츠는 통상의 작업 영역에서 변형되지 않고, 다르게 처리된다. 컴포넌트화된 콘텐츠는 변경 권한을 갖는 특권의 유저에 의해 보통 변형된다. 컴포넌트를 변형시키는 권한은 특별한 애플리케이션에 따라 허여되고 공유될 수 있다. 이들 변경은 문서 콘텐츠 내에 채택된 각각의 컴포넌트를 갖는 문서 내에 순차적으로 채택된다. 따라서, 컴포넌트에 대한 소정의 변경은 보편적인 애플리케이션을 갖는다.
컴포넌트들은 또한, 이들을 채택하는 소정의 문서들로부터 개별적으로 전개될 수 있다. 이들은 웹사이트 개발의 정상적인 프로세스에서 작업 영역에 의해 제출되지 않을 수 있다. 따라서, 이들 컴포넌트들은 동일한 방식으로 전개될 필요는 없다. 웹사이트 유지 애플리케이션의 양호한 실시예에서, 모든 파일은 스테이징 또는 편집 영역으로부터 전개되어야 한다. 그들의 공유된 특성 때문에, 컴포넌트들은 다른 승인 프로세스를 거치지만, 이들은 여전히 스테이징 또는 편집 프로세스에 영향을 받게 되는데, 여기서 컴포넌트는 문서 내에서 참조되고, 렌더링시 문서 내에 채택된다. 한 실시예에서, 그 일부가 컴포넌트화되지 않은 문서의 변형된 골격은, 컴포넌트 자체가 변형되지 않은 경우에 컴포넌트를 제출하지 않고 스테이징 및 편집 영역에 제출될 수 있다. 이 경우, 컴포넌트는 문서 골격과 동일한 시간에 스테이징 또는 편집 영역에 제출될 필요는 없는데, 그 이유는 이들이 이미 제출된 것 같기 때문이다.
양호한 실시예에서, 스테이징 또는 편집 영역에 실제로 저장된 문서의 일부만이 문서 골격이고, 내부에 포함된 컴포넌트에 대한 레퍼런스만이지, 컴포넌트 콘텐츠 자체는 아니다. 이 실시예에서, 변이된 문서, 즉 컴포넌트만이 변형된 문서는 스테이징 영역에 제출될 필요는 없는데, 그 이유는 문서 골격 자체는 변경되지 않기 때문이다. 따라서, 스테이징 영역에 문서를 카피하는 것은 무의미한데, 그 이유는 변이된 문서의 문서 골격이 이미 스테이징 영역에 저장된 것과 동일하기 때문이다.
이는 컴포넌트가 태그 또는 다른 식별자에 의해 문서 내에서 식별될 수 있기 때문인데, 이로써, 인용하기는 하나, 콘텐츠 제출 엔티티 또는 다른 유저와 합작할 필요는 없는 컴포넌트의 현재 콘텐츠를 이용하여 태그 또는 식별자를 간단히 대체하므로써 시스템이 변경을 채택할 수 있게 한다. 이는 작업 영역 내의 콘텐츠에 대해 변형을 겪은 문서와 대비되는데, 여기서 그러한 문서는 변형되는 것으로 간주되며, 다른 제출된 콘텐츠와 결합되어야 한다. 또한, 변이된 문서를 전개할 시에, 컴포넌트만이 프로덕션 서버에 전개될 필요가 있다. 그 다음, 컴포넌트는 다른 곳에 위치한 문서에 사용할 용도로 갱신될 수 있다. 다른 실시예에서, 컴포넌트는 태그 또는 식별자를 변경하기 보다는, 새로운 컴포넌트로 대체될 수 있다.
다른 실시예에서, 단지 문서 골격과는 달리, 완전히 렌더링된 문서가 스테이징 또는 편집 영역에 저장되도록 실행이 변경되면, 변이의 개념은 없고, 컴포넌트에 대해 변경하는 것은 컴포넌트를 포함하는 각 문서의 콘텐츠를 변형할 것을 요구한다. 그리고, 문서 내에 포함된 바이트가 이 경우 실제로 변경되기 때문에, 각 문서는 정상적으로 변형되고, 그래서 스테이징 영역에 새로이 제출될 필요가 있다.
다시 한번 문서의 전개에 관해서, 개발 시스템은 변형의 시간 행적에 따라 변형된 문서를 전개할 수 있다. 시스템은 다른 시간에 변형된 콘텐츠의 버전을 지킬 수 있고, 적절한 시간 행적에 따라 웹사이트를 호스팅하는 서버 상에 프로덕션에 대한 콘텐츠의 새로운 그리고 오래된 버전을 전개할 수 있다. 본 발명에 따르면, 문서는 이제 2개의 시간 행적을 갖는데, 하나는 문서가 일단 변형되었을 때를 나타내고, 다른 하나는 최종 변이되었을 때를 나타낸다. 따라서, 웹사이트 내에서 호스팅되는 콘텐츠를 정의하는 문서가 작업 영역에서 변형되었을 때, 그 시간 행적은 갱신되고, 스테이징 영역에 제출된다. 문서의 버전은 여전히 존재하고, 개발 서버의 필요에 따라 복귀될 수 있다. 예를 들면, 항공사가 웹사이트 상의 감소된 운임을 실수로 공개했을 경우, 이는 웹사이트 상에 옛날 운임으로 다시 배정하기 위해서 시간 행적에 따라 문서의 이전 버전으로 다시 복귀하기를 원할 수 있다. 마찬가지로, 변이 시간은 개별 시간 행적에 의해 나타날 수 있기 때문에, 개발 시스템은 변이된 문서가 프로덕션 서버 상에서 적절히 갱신되었는 지의 계속 알 수 있다. 일단, 문서가 스테이징 및 편집 영역에서 처리되면, 웹 페이지 또는 페이지들을 갱신하기 위해서 프로덕션 서버에 전개될 수 있다. 다른 실시예에서, 컴포넌트는 변형된 운임을 포함할 수 있다. 이 경우, 컴포넌트는 스테이징 영역에 제출될 수 있다. 그 결과, 변형된 컴포넌트를 포함하는 문서는 변이된다. 이 경우, 문서는 프로덕션 서버에 재전개될 필요가 있다.
문서의 변형 및 변이 상태에 따라, 다른 방식으로 전개될 수 있다. 웹사이트 개발 애플리케이션에서의 변형된 문서의 전개는 반드시, 스테이징 영역 및 후속 편집 영역에 제출될 문서를 필요로 한다. 애플리케이션의 특성이 웹사이트의 프로덕션에 사용하기 위한 용도로 콘텐츠를 합작하기 때문에, 이들 프로세스는 프로세스에 어려움을 줄 수 있다. 반면에, 본 발명에 따르면, 변이된 문서, 즉 변형된 컴포넌트를 포함하는 문서의 전개는 동일한 시스템을 통해 처리될 필요는 없다. 문서를 컴포넌트화하는 한가지 장점은 어느정도 공개 프로세스를 회피할 수 있다는 것이고, 다중 문서 내에서 보편적 애플리케이션을 위한 컴포넌트를 제작 및 전개할 수 있다는 것이다. 전개 시에, 본 발명의 한 실시예에서, 시스템은 프로덕션 서버를 갱신하기 위해서 변형 또는 변이된 문서를 전개할 수 있다. 대안적으로, 컴포넌트들은 이들이 채택되는 문서 내로 삽입을 위해 개별적으로 전개될 수 있다.
한 실시예에서, 개발 서버는 컴포넌트 및 다른 콘텐츠의 사용을 허용하고 제어하도록 구성된 문서 콘텐츠 제어(후술됨)를 포함한다. 개발 서버는 완전히 렌더링된 버전의 문서를 프로덕션 서버로 전송하도록 한다. 그와 같이, 렌더링은 파일이 개발 서버의 스테이징 영역으로부터 프로덕션 서버로 전개됨과 동시에 발생한다. 변이의 개념은 시스템이 컴포넌트가 변형되었을 때를 알게 하여, 문서를 변이 시킨다. 일단, 변이가 결정되면, 파일이 변이되었을 경우에, 변형되는 것과는 반대로, 파일은 소정의 파일이 그 자체로 변형되지 않았을 경우에도 프로덕션 서버로 전개될 수 있다. 예를 들면, 10개의 문서에 사용되는, 예를 들면 장려 항공 운임을 포함하는 컴포넌트에 변경이 행해지는 경우, 하나의 컴포넌트는 스테이징 영역에 제출될 수 있다. 이는 컴포넌트를 포함하는 10개의 문서가 변이되는 것으로 나타나게 하여, 문서가 프로덕션 서버로 전개될 필요가 있음을 신호화한다. 이는 운임을 디스플레이하기 위해 웹사이트를 호스팅하는 다른 기하학적 위치에 있는 몇몇 프로덕션 서버로 전개되는 항공 운임의 형태를 취할 수 있다. 따라서, 컴포넌트인 유저의 변경에 응답하여, 10개의 문서는 프로덕션 서버로의 전개에 대해 자동적으로 갱신 및 식별될 수 있다.
본 발명에 따르면, 웹사이트 개발 시스템은 문서가 렌더링되는 방식의 컴포넌트로부터 상당히 유리하게 될 수 있다. 문서가 파일 시스템 내에 상주하는 파일 내에 저장되면, 소정의 컴포넌트는 비워져서, 문서 및 다른 특성 정보 내의 위치와 함께, 컴포넌트를 식별하는 태그로 대체될 수 있다. 그 다음, 문서가 시스템 내의 위치로부터 검색되고 렌더링되면, 컴포넌트는 문서 내로 끌어 넣어질 수 있다. 이는 소정의 유저로부터 투명하게 발생할 수 있다. 예를 들면, 파일로부터 문서를 끌어 당기는 유저는 유저의 특별한 운영 시스템 내의 문서를 렌더링한다. 문서는 변형될 수 없는 컴포넌트 뿐만 아니라, 작업 영역 내에서 변형될 수 있는 콘텐츠를 포함하는 모든 콘텐츠로 나타난다. 마찬가지로, 프로덕션 서버는 메모리로부터 문서를 검색할 수 있고, 웹사이트 호스팅을 위해 문서를 렌더링한다. 문서는 렌더링 되고, 문서의 콘텐츠 및 컴포넌트 모두를 포함하는 호스팅된 웹사이트 상에 나타난다.
도1를 참조하면, 웹사이트 개발 및 유지를 위한 시스템 내에 채택된 애플리케이션의 블럭도가 도시되어 있다. 웹사이트는 워크스테이션(102)을 점유하는 유저에 의해 유지된다. 유저는 다른 영역으로부터 개별적으로 저장되는, 개별 작업 영역 내의 웹사이트 내에서의 사용을 위해 특별한 영역을 개발한다. 작업 영역 내의 유저 작업이 웹사이트용 타스크를 완료하면, 유저는 리뷰용 스테이징 영역에 콘텐츠를 제출할 수 있다. 스테이징 영역은 다중 작업 영역으로부터 웹사이트 내의 영역에 속하는 정보를 보유하도록 구성된다. 웹사이트로의 제안된 변경은 최종 웹사이트 내에 공개되기 전에 리뷰용 스테이징 영역에 디스플레이될 수 있다. 변경이 스테이징 영역에서 승인되면, 변경은 웹 콘텐츠를 전개하므로써 공개될 수 있고, 웹사이트는 변형된다.
이러한 기능성에 따라 콘텐츠의 개발을 수행하기 위해서, 다른 형태의 데이터의 적절한 전개가 달성되어야 한다. 전개의 개념은 특별한 위치, 아마도 다중 위치에 특별한 방식으로 다른 형태의 데이터의 이전을 포함한다. 웹 콘텐츠와 같은 파일 데이터는 웹 콘텐츠가 웹 브라우저에 디스플레이되는 경우에 프로덕션 서버와 같은 타겟 파일 시스템으로 이전될 수 있다. 웹 콘텐츠 또는 다른 파일 데이터와 관계되는 메타데이터 및 탬플릿 데이터는 이들이 사용되는 경우에 특정 데이터베이스에 전개될 수 있다.
특별한 정보를 적절히 저장하기 위해서는, 종래의 방법을 이용하는 유저는 전형적으로, 작업 영역 내에 생성된 변경들을 파일 내로 컴파일시켜야 하고, 이 파일을 데이터베이스에 저장하여야 한다. 작업 영역 내에 생성된 방대하고 다양한 정보를 고려하면, 이는 실행을 위해 상당한 시간을 요구하는 힘든 타스크일 수 있다. 물론, 이는 웹사이트를 생성하고 유지하는 타스크로부터 귀중한 시간을 빼앗는다. 문서의 컴포넌트화는 웹사이트의 개발 및 유지 시에 막대한 시간을 절약할 수 있다. 이는 다중 문서 내에 보편적 애플리케이션을 갖는 컴포넌트를 설정하므로써 달성된다.
웹사이트 개발 및 유지 솔루션 내의 스크립트의 전개에 관련된 본 발명의 한 실시예를 이해하기 위해서, 그러한 솔루션의 예를 이해하는 것이 유용하다. 도1은 그러한 시스템의 예를 도시한다. 도1을 다시 참조하면, 하나 이상의 개발 워크스테이션(102)에서, 웹사이트 개발자는 웹사이트용 파일을 추가, 제거, 편집 및 시험할 수 있다. 개발 워크스테이션은 종래의 개인용 컴퓨터, UNIX 워크스테이션, 또는 콘텐츠를 개발하도록 구성될 수 있는 다른 워크스테이션을 포함할 수 있다. 개발 워크스테이션(102)은 인터넷 또는 LAN과 같은 컴퓨터 네트워크(106)를 통해 개발 서버(104)에 접속될 수 있다.
개발 서버(104)는 웹 브라우저에 콘텐츠를 제공하는 웹 서버(108), 및 웹사이트 콘텐츠의 버전을 저장하기 위한 백킹 스토리지(111)를 포함할 수 있다. 웹 서버(108)은 웹사이트 콘텐츠 (예를 들면, 파일)를 위한 개발 워크스테이션(102)으로부터의 HTTP 요청을 처리한다. 웹사이트 파일은 마이크로소프트 회사로부터 상 업적으로 얻을 수 있는 WINDOWS NT 파일링 시스템과 같이, 종래의 것일 수 있는 백킹 스토리지(111) 내에 물리적으로 저장될 수 있다. 백킹 스토리지는 생성되고, 이전되거나, 그렇지 않으면 시스템 내에 유지된 모든 데이터를 저장하기 위해 중앙 위치로서의 역할을 할 수 있다. 데이터의 스토리지는 유저에 투명하게 실행될 수 있다.
개발 서버(104)는 프로세서(110)가 메모리(112) 내에 저장된 소프트웨어 코드(116)를 실행하므로써 본 발명의 웹사이트 개발 방법을 구현하는 경우에 종래의 메모리(112) (예를 들면, RAM)을 포함할 수도 있다. HTTP 프로토콜 가상화 모듈(117)은 프로세서(110)에 의해 실행될 수 있어, 개발 서버(104)가 다중 서버인 경우에 동작하게 한다. 좀 더 상세히 후술될, 문서 콘텐츠 제어(118)는 본 발명에 따라 콘텐츠의 개발 및 편집을 제어 및 허용하기 위한 코드를 포함한다.
전개 데몬(119)은 개발 서버(104) 내에 포함되어, 뷰의 개발 서버 포인트로부터의 전개를 주관 및 모니터링 가능하게 할 수 있다. 그러한 애플리케이션은 개발 서버 상에서 실행될 수 있는 스크립트를 포함할 수 있다. 이는 또한, 스크립트를 실행하기 위해 데이터의 전개와 관련된 엔티티 또는 다른 디바이스에 보내질 수 있는 코맨드를 포함할 수 있다. 커스텀 시스템은 프로덕션 서버에 의해 사용될 구성 파일 또는 다른 파일을 생성하도록 기록될 수 있다.
개발 서버(104)는 네트워크(123)를 통해 웹사이트 프로덕션 웹 서버(124)에 결합될 수 있다. 네트워크(123)는 LAN과 같이, 네트워크(106) 또는 다른 네트워크와 동일한 네트워크일 수 있다. 웹 서버(124)는 인터넷 또는 인트라넷(126)에 결합될 수도 있다. 웹사이트가 월드 와이드 웹 또는 인트라넷 상에 공표될 준비가 되면, 개발 서버(104)는 시스템 구성에 따라, 인터넷 또는 인트라넷 액세스를 웹사이트에 제공하는 프로덕션 웹 서버(124)에 웹사이트 콘텐츠를 전송한다. 네트워크(123)는 개발 서버(104) 내에 발생된 고객 데이터베이스(136)에 데이터를 전개할 수 있다.
시스템은 원격 사이트에 위치하고 네트워크에 접속될 수 있는 고객 시스템(128)을 포함할 수 있다. 고객 시스템은 웹사이트가 유지 및 호스트되는 경우의 고객 위치에 위치한 서버 또는 개인용 컴퓨터일 수 있는 고객 프로세서(130)을 포함할 수 있다. 프로세서는 LAN, 무선 또는 다른 네트워크와 같은 네트워크를 통해 다른 컴퓨터 또는 디바이스에 접속되거나 그렇지 않으면 이들과 통신할 수 있다. 프로세서는 고객 시스템이 웹사이트 프로덕션 서버(124)를 제어할 수 있게 하기 위해서 데이터를 전개하도록 구성되고 메모리 내에 저장된 고객 전개 애플리케이션(132)을 포함할 수 있다. 고객 웹서버 애플리케이션(134)은 고객 데이터베이스에 액세스하고 고객 프로세서에 데이터베이스 카탈로그, 컴포넌트, 델타 테이블, 베이스 테이블 및 다른 콘텐츠를 포함하는 데이터를 제공하도록 구성된다.
데이터 전개 데몬(119)은 메타데이터 및 탬플릿된 데이터를 고객 데이터베이스(136)에 전개할 수 있게 하도록 구성될 수도 있다. 이 예에서, 탬플릿 및 메타데이터는 델타 테이블 및 베이스 테이블이 유지되는 경우에 데이터베이스 콘텐츠로서 고객 시스템에 이전될 수 있다. 탬플릿된 데이터는 개발 서버(104) 내에서 개발된 컴포넌트를 포함할 수 있다. 그 다음, 이들 탬플릿 및 메타데이터는 웹사이트의 유지 시에 고객에 의해 사용될 수 있다.
고객 시스템(128)은 웹사이트의 개발 및 유지 시에 사용된 델타 테이블, 베이스 테이블, 카탈로그 및 컴포넌트 콘텐츠를 포함하는 데이터베이스 콘텐츠(138)를 포함할 수 있다. 본 발명의 한 실시예에서, 컴포넌트화 프로세스는 프로덕션 서버 내에 사용되는 방식과 사실상 유사하게 고객 시스템 내에서 발생한다. 다른 실시예에서, 컴포넌트화 프로세스는 컴포넌트가 다른 웹사이트 콘텐츠로 공개될 때 문서 내에 채택되는 경우에, 프로덕션 서버 내에서 발생한다. 본 발명은 발생할 컴포넌트화에 대한 특별한 위치에 국한되지 않는다. 실시예들은 애플리케이션에 따라 변할 수 있다.
베이스 테이블은 고객 데이터베이스(136) 내에 설정될 수 있다. 베이스 테이블은 개발 서버(104) 내에 위치한 스테이징 영역의 스냅 사진일 수 있다. 이들 베이스 테이블은 스테이징 영역이 또 다른 데이터 전개를 통해 변경될 때 갱신될 수 있다. 고객 시스템(128)은 고객이 웹사이트를 변경할 수 있도록 구성된 데이터베이스 고객 웹서버 애플리케이션(134)을 포함할 수 있다. 이는 개발 서버가 서비스하는 자체 웹사이트 또는 다른 애플리케이션을 고객이 유지하게 한다. 이 점에서, 델타 테이블은 유저가 고객 시스템(128) 내에서 만들 수 있는 변경을 보전하도록 데이터베이스(136) 내에 설정될 수 있다. 이 점에서, 델타 테이블 및 베이스 테이블은 스테이징 영역에 변경을 전송하는 개발 워크스테이션(102)의 기능과 유사한 고객 애플리케이션과 함께 운영된다. 이 점에서, 고객 애플리케이션은 워크스테이션으로서 작동할 수 있다. 델타 및 베이스 테이블 내의 변경은 작업 영역 및 스테이징 영역 내의 대응하는 콘텐츠를 모방한다. 이러한 구성의 장점은 웹사이트 의 유지가 개발 서버의 제어하에 있게 될 수 있거나, 고객 데이터베이스와 관련하여 개별적으로 고객 애플리케이션의 제어하에 있을 수 있다는 것이다.
고객 시스템은 또한 웹사이트 상의 디스플레이를 위한 컴포넌트를 포함하는 관련 정보 및 콘텐츠를 수신 및 전개하는 것과 같이, 고객 시스템의 내부 작업을 제어하기 위한 고객 프로세서(130)를 포함할 수 있다. 고객 프로세서(130)는 전개 데몬(119)과 상호작용하도록 구성될 수 있는 고객 전개 애플리케이션(132)을 포함할 수 있는데, 전개 애플리케이션은 개발 서버 내에 위치한다. 함께, 전개 애플리케이션은 개발 서버 및 고객 시스템이 전개 프로세스를 모니터 및 제어할 수 있게 한다. 컴퓨터는 고객 위치로부터 제공된 웹사이트를 유지하도록 구성될 수 있다. 고객 컴퓨터는 정보를 다른 목적지로 전송하기 위한 네트워크(123)에 접속된 모뎀 및 컴퓨터의 내부 작업을 제어하기 위한 CPU를 포함한다. 고객 컴퓨터는 또한 사용된 데이터를 자주 저장하기 위한 캐시를 더 포함할 수 있다. CPU에 의해 제어된 메모리는 종래의 메모리일 수 있고, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 또는 디지털 데이터를 저장 및 전송하도록 구성된 소정의 다른 메모리일 수 있다. 메모리는 개발 서버 상에 위치한 디렉토리들의 집합으로서 정의될 수 있는, 따라서 내부의 개별 컴퓨터가 아닌 자체의 작업 영역을 1개 이상 포함할 수 있다. 따라서, 작업 영역은 단지, 고객 또는 개발 컴퓨터에 있는 유저가 액세스 권한을 갖는 한 세트의 파일로서 정의될 수 있다.
만약, 개별 컴퓨터 상에서는, 고객 프로세서가 종래의 것이고 다양한 변형들 이 그 프로세서에 이루어질 수 있다는 것은 명백하다. 데이터는 데이터베이스에 저장될 수 있고, 선택적으로 데이터 파일 내에 저장될 수 있는데, 이는 데이터를 저장하기 위한 조직된 방식을 유저에 제공한다. 고객 프로세서는 또한 개발 및 유지를 더 하도록 개발 서버로부터 콘텐츠를 수신하기 위한, 원도우즈와 같은 종래의 운영 시스템을 포함한다.
웹사이트는 일반적으로 임의 파일 시스템의 콘텐츠로 구성된다. 본 발명의 웹사이트 개발 시스템(100)은 계층 파일 시스템을 포함할 수 있다. 본 발명의 그러한 각각의 파일 시스템은 개별 파일들을 관리 및 조작하기 위한 환경을 제공한다. 일단 실행되면, 웹사이트 개발 소프트웨어(116)는 파일의 관리 및 조작을 허용한다. 백킹 스토리지(111)는 파일 및 대응하는 메타데이터가 물리적으로 저장될 수 있는 곳에 있다. 메타데이터는 일반적으로, 작업 콘텐츠에 관련되는 데이터이다. 몇몇 예들은 예를 들어, 콘텐츠 소유자 식별, 그룹 식별자, 액세스 제어, 파일 명칭, 변형 시간, 생성 시간, 확장형 속성(EA), 콘텐츠와 관련된 웹사이트 주소, 및 콘텐츠와 관련된 다른 정보를 포함한다.
본 발명의 계층 파일 시스템은 "영역"으로서 본 분야에서 인용될 수 있다. 작업 영역, 스테이징 영역 및 편집 영역을 포함하는 다른 형태의 영역들이 있을 수 있다. 작업 영역은 웹사이트 내에서 최종 사용하기 위한 작업 파일 내의 웹 콘텐츠를 생성 및 유지하는 사람들에 의해 사용되는 변형가능한 파일 시스템일 수 있다. 스테이징 영역은 이들 작업 파일들로부터의 콘텐츠가 공개되기 전에 어셈블되는 경우의 영역일 수 있다. 웹마스터와 같은 중앙 제어 사람은 스테이징 영역 또 는 편집 영역 내의 작업 영역으로부터 제출된 콘텐츠를 리뷰할 수 있다. 작업 영역이 일반적으로 콘텐츠를 배타적으로 생성하고 관리하기 위한 영역이기 때문에, 스테이징 및 편집 영역은 콘텐츠를 어셈블하고 디스플레이하는 것만으로 제한될 수 있다. 그 다음, 설계에 의해, 이들은 판독 전용 파일 시스템으로서 구성될 수 있다. 그 다음, 콘텐츠에 대한 소정의 변형은 필요할 수 있는 소정의 변경을 수행하기 위해 가능하면 편집기로부터 다시 워크스테이션으로 전송될 필요가 있다. 이는 콘텐츠의 보전을 관리하고 프로세스를 단순화시키는 것을 도운다. 그러나, 비즈니스는 편집자와 같은 다른 사람들이 콘텐츠를 공개되기 전에 변형할 수 있게 하는 좀 더 유연성 있는 시스템(100)을 원할 수 있다. 특정 이벤트의 발생 시에 데이터의 가능한 변형 및 자동 저장은 웹사이트의 개발 및 유지 중에 생성된 또는 그렇지 않으면 변형된 데이터를 보전하기 위해서 바람직할 수 있다. 이러한 방식, 즉 다른 버전의 콘텐츠는 보전될 수 있고, 시간 행적이 남을 수 있어, 개발자 및 가능한 편집자 및 관리자의 능력이 다른 버전의 콘텐츠로 다시 복귀시킬 수 있게 한다.
본 발명의 한 실시예에서, 컴포넌트 및 서브컴포넌트는 이들이 변형될 때를 나타내는 시간 행적을 가질 수도 있다. 컴포넌트가 보편적으로 통합되면, 이들은 그들의 생성 및 변형 시간에 따라 갱신될 수 있다. 양호한 실시예에서, 컴포넌트의 시간 행적은 변형 시간과 변이 시간 둘 다에 대해 유지된다. 이는 컴포넌트가 서브컴포넌트를 포함할 수 있기 때문이다. 또한, 문서, 즉 골격 콘텐츠가 변형되지 않으나 하나 이상의 서브컴포넌트가 변형 또는 변이되는 동일한 방식으로 컴포넌트가 변이되게 하는 것이 가능하다. 컴포넌트 또는 문서의 변이 시간은 모든 서 브컴포넌트의 변이 및 변형 시간을 시험한 다음 가장 최근의 것을 선택하므로써 계산될 수 있다. 문서 및 컴포넌트가 몇몇은 깊게 네스트된(nested) 서브컴포넌트들을 포함할 수 있기 때문에, 이는 순환 프로세스이다. 문서의 변이 시간을 찾기 위해서, 시스템은 컴포넌트 각각의 변이 시간을 알 필요가 있다. 그리고, 컴포넌트의 변이 시간을 찾기 위해서, 서브컴포넌트 등의 변이 시간을 알 필요가 있다.
컴포넌트가 변경되기 때문에, 문서 또는 컴포넌트의 변이 시간은 문서 또는 컴포넌트 자체, 또는 실제로 그들의 골격 콘텐츠가 변형되지 않았더라도, 변경될 수 있다. 이론적으로, 이러한 변이 시간은 유저가 컴포넌트 또는 문서를 요청할 때마다 문서 또는 컴포넌트에 대해 재계산될 필요가 있다. 이는 잠재적으로 느린 프로세스이다. 그러나, 많은 소프트웨어 애플리케이션들은 시간 행적과 같이, 파일에 대한 속성 정보를 모으는 것이 비교적 빠른 연산인 것으로 추정한다. 따라서, 그러한 애플리케이션들은 일단 시간 행적들에 대해 문의하고 후속 재사용에 대해 국부적으로 결과의 카피를 보유하는 어려움이 있게 하기 보다는, 시간 행적에 대해 시스템에 반복적으로 문의할 수 있다. 따라서, 시간 행적에 대한 사용 패턴이 공통이기 때문에, 시스템은 잠재적으로 느린 변이 시간 계산의 결과를 저장할 수 있어, 속성에 대해 반복적으로 문의하는 프로그램은 성능 저하를 견딜 수 없게 된다.
컴포넌트, 서브 컴포넌트 또는 다른 문서 콘텐츠는 리뷰를 위해 작업 영역으로부터 스테이징 영역으로 제출될 수 있다. 데이터의 제출이 발생할 시, 그러한 콘텐츠와 관련된 메타데이터는 오리지날 버전으로부터 만들어진 변경을 구별하기 위해서 변형될 수 있다. 이러한 방식, 다른 버전들은 보존 및 조직될 수 있다. 공간을 절약하기 위해서, 델타만이, 또는 실제 변경이 각 버전으로부터 저장될 수 있다. 이는 웹사이트의 일상 운영에 유용할 수 있다. 예를 들면, 항공사는 다른 운임을 온라인으로 공시할 수 있는데, 구매자는 비행기마다 티켓을 주문할 수 있다. 계획된 것보다 훨씬 낮은 운임과 같은, 운임의 공시 시에 에러가 발생할 수 있어, 구매자에게 횡재를 제공할 수 있다. 그 다음, 웹사이트 관리자는 이전의 웹사이트로 다시 복귀할 수 있고, 너무 많이 낮은 운임을 판매하므로써 돈의 손실을 방지할 수 있다. 따라서, 오래된 버전의 콘텐츠를 갖는 것은 특정 비즈니스에 결정적일 수 있다.
또한, 애플리케이션은 델타 테이블 내에 메타데이터 및 탬플릿 데이터 변경을 유지하도록 구성될 수 있는데, 이는 스테이징 영역 내의 대응하는 콘텐츠를 모방한다. 트랙킹 테이블 (도시안됨)은 각각의 고객 작업 영역에 의해 제안된 변경에 응답하여 변형되고 고객의 권한에 의해 받아들여질 수 있을 때 웹사이트용으로 제안된 다른 변경들을 트랙킹한다. 트랙킹 테이블은 베이스 테이블과 같이, 생성된 다양한 테이블을 트랙킹하도록, 또한 다양한 테이블 간의 상호 관계를 트랙킹하도록 구성된다. 트랙킹 테이블은 생성되는 시간 및 날자와 같은 다른 테이블의 특성, 즉 베이스 테이블이 다른 델타 테이블과 왕래하는 것과 같은 테이블들의 상호 관계, 및 다른 특성의 트랙을 유지할 수 있다. 그러한 구성에서, 데이터는 개발 서버로부터 웹서버로 전개될 수 있다.
본 발명의 한 실시예는 컴포넌트화된 콘텐츠 데이터의 개발, 유지 및 전개를 시스템 전체에 걸쳐 제어 및 모니터하는 능력에 관한 것이다. 본 발명에 따르면, 컴포넌트화된 콘텐츠는 몇몇 관점에서, 작업 영역 내에서 변형된 콘텐츠와 관련하여 앞에서 논의된 공개 프로세스에서 다르게 처리될 수 있다. 이는 집중된 변형 및 제어가 컴포넌트를 요구하기 때문이다. 컴포넌트화된 콘텐츠는 컴포넌트에 대해 보편적 제어가 집중되는 경우와 같이, 좀 더 제한적인 액세스 제어를 가질 수 있다. 컴포넌트는 또한 다른 작업 흐름 및 프로세스에 영향을 받을 수 있다. 그러한 작업 흐름 체계 또는 프로세스는 컴포넌트를 제출 또는 전개하기 전에 추가 리뷰 및 프로세싱을 필요로 할 수 있다.
도2를 참조하면, 메모리(112)(도1) 내에 저장된 문서 컴포넌트 제어 애플리케이션(118)이 좀 더 상세히 설명된다. 애플리케이션(118)은 또한 시스템 내에 모듈로서 존재할 수 있고, 컴포넌트화된 콘텐츠를 이용하는 시스템을 증대시키도록 동작할 수 있다. 이러한 설명에서, 문서 컴포넌트 제어 애플리케이션의 기능을 정의하는 다른 형태의 코드에 대해 다양한 참조가 존재한다. 그러한 코드는 근본적으로, 프로세서에 의해 실행될 때 서버에 의해 수행될 기능들을 정의 및 주관하는 전자 소프트웨어이다. 애플리케이션은 작업 영역 내에서 변형될 수 있는 콘텐츠의 개발 및 유지를 주관하도록 구성된 골격 콘텐츠 제어 코드(202)를 포함한다. 그러한 골격 콘텐츠는 텍스트 콘텐츠(204) 및 그래픽 콘텐츠(206)를 포함할 수 있다. 편집 애플리케이션(208)은 작업 영역 내의 콘텐츠의 편집을 제어 및 허용하도록 구성된다. 편집 애플리케이션은 작업 영역 내의 골격 콘텐츠의 편집을 제어 및 허용하도록 구성되는 골격 제어 코드(210)를 포함할 수 있다.
골격 콘텐츠는 다른 위치에 저장될 수 있는 컴포넌트 및 서브 컴포넌트에 대한 레퍼런스 뿐만 아니라, 콘텐츠를 포함하는 골격 문서와 동일하다. 이러한 골격은 파일 또는 문서 내의 소정의 특별한 콘텐츠에 국한되는 것을 의미하지 않지만, 컴포넌트화되지 않은 콘텐츠에 인용되는 것을 의미한다. 몇몇 애플리케이션에서, 유저들은 컴포넌트 내에 포함되는 콘텐츠 뿐만 아니라 문서의 골격 내에 포함되는 콘텐츠에 대한 특권을 중복시킬 수 있다. 본 발명은 컴포넌트가 다수의 문서들과 파일들 중에 보편적으로 공유되는 경우에, 문서의 컴포넌트화에 관한 것이다. 컴포넌트는 주로 보편적 애플리케이션 때문에, 골격과는 다르게 처리된다.
골격 제어 코드는 텍스트 콘텐츠의 편집을 주관하는 텍스트 룰(212)을 정의하는 소프트웨어 코드를 포함할 수 있다. 텍스트 룰은 텍스트 콘텐츠에 대한 특별한 포맷을 정의하는 포맷 코드(214)를 포함할 수 있다. 마찬가지로, 그래픽 룰(216)을 정의하는 소프트웨어 코드는 작업 영역 내의 그래픽 콘텐츠의 편집을 제어 및 허용한다. 그래픽 룰은 다른 그래픽 콘텐츠 포맷을 정의하기 위한 그래픽 포맷 코드(218)를 포함할 수 있다.
도2를 다시 참조하면, 문서 콘텐츠 제어 애플리케이션 또는 모듈(118)은 문서 내의 컴포넌트의 편집 및 사용을 제어 및 허용하는 코드로 구성된 컴포넌트 제어 모듈(220)을 포함한다. 컴포넌트 제어 코드는 문서 내의 컴포넌트의 배치를 제어 및 허용하기 위한 컴포넌트 배치 코드(222)를 포함한다. 배치 코드는 선정된 룰에 따라 문서 내의 특정 배치에 대해 제한을 둘 수 있는 특권 코드(224)를 포함할 수 있다. 특권은 컴포넌트의 배치를 정의하기 위한 다양한 특권을 다른 유저 또는 엔티티에 제공할 수 있고, 그러한 특권을 공유하거나 그렇지 않으면 정의하기 위한 룰을 정의할 수 있다. 마찬가지로, 문서 또는 문서 그룹으로부터 컴포넌트의 제거를 제어 및 허용하기 위한 컴포넌트 제거 코드(226)가 포함될 수 있다. 제거 코드는 다른 유저 또는 엔티티가 콘텐츠를 제거할 수 있는 방식을 정의하는 특권 코드(228)를 포함할 수도 있다.
상술한 바와 같이, 본 발명의 한 실시예에서, 태그는 저장된 문서 내에 배치될 수 있다. 이들 태그는 컴포넌트가 특별한 문서 내에 렌더링될 수 있음을 그리고 그것이 위치하는 곳을 나타낸다. 태그 제어 코드(230)는 태그를 식별하고 내부에 태그를 배치하기 위한 문서 내의 태그 사용을 제어 및 허용하도록 구성된다. 태그 제어 코드는 컴포넌트의 사용을 나타내기 위해 문서 내의 태그와 같은 증표의 배치를 제어 및 허용하도록 구성된 증표 배치 코드(232)를 포함할 수 있다. 컴포넌트에 콘텐츠를 맵핑하기 위한 코드(234)는 문서 내의 증표에 의해 표시되는 컴포넌트 콘텐츠를 검색하기 위해 메모리 위치에 대한 맵핑을 제어 및 허용하도록 구성된다. 컴포넌트는 시스템 내에서 메모리 어드레스에 간단히 위치한 콘텐츠로서 정의될 수 있는데, 여기서 어드레스는 콘텐츠를 편집 또는 달리 변형하기 위한 특권, 및 다른 제한과 같은 컴포넌트 파라미터에 따라 액세스가능하다. 본 발명에 따르면, 이들 컴포넌트는 콘텐츠 맵핑 코드에 의해 주관된 맵핑 위치의 파라미터에 의해 정의된다. 컴포넌트의 위치들은 특별한 애플리케이션에 따라 변할 수 있다. 도2의 실시예에서, 컴포넌트는 데이터베이스에 위치할 수 있는데, 여기서 컴포넌트는 유지 및 조직된다. 컴포넌트는 도7에 도시된 바와 같이, 그리고 후술하는 바와 같이, 저장소와 같은, 컴포넌트 제어 모듈에 근접한 위치, 또는 사용에 편리한 다른 위치에 위치할 수도 있다.
편집 코드(236)는 컴포넌트의 편집을 제어 및 허용하도록 구성된다. 컴포넌트가 유일한 특성을 갖기 때문에, 본 발명은 그러한 특성을 허용하기 위해 특별한 코드를 제공한다. 특권 코드(238)는 유저들 간의 컴포넌트들을 액세스하기 위한 특권을 설정하기 위해 제공된다. 이 코드는 컴포넌트에 배타적 또는 제한된 액세스를 제공하도록 구성될 수 있는데, 이는 특정 유저가 컴포넌트를 개발 및 변형하게 한다. 보안 코드(240)는 컴포넌트에 대한 액세스를 주관하는 보안 프로토콜을 제공하기 위해 포함된다. 패스워드 보호 코드(242) 및 특권 공유 코드(244)와 같은 보안 엔티티는 그들의 액세스 특권을 보호할 필요가 있는 유저들에게 보호를 제공하기 위해 포함된다. 콘텐츠 룰 코드(246)는 컴포넌트 내에 존재할 수 있는 텍스트 및 그래픽 콘텐츠를 포함하는 컴포넌트의 편집을 제어 및 허용하기 위해 제공된다. 특권 코드(248)는 콘텐츠 룰을 변형하거나 그렇지 않으면 개발하기 위해 포함될 수도 있다.
도3을 참조하면, 본 발명에 따른 컴포넌트를 갖는 샘플 문서(300)의 다이어그램이 도시된다. 문서 내의 어느 곳이든 나타날 수 있는 골격 콘텐츠(306)는 작업 영역 및 다른 권한 있는 유저에 의해 액세스가능하다. 컴포넌트(310)는 서브 컴포넌트(316, 318)를 포함하고, 컴포넌트(312)는 서브 컴포넌트를 포함하지 않는다. 동작 시에, 컴포넌트 및 서브 컴포넌트가 변경되면, 문서는 변이되나, 반드시 변형되지는 않는다. 문서가 변이되면, 컴포넌트만이 변경된다. 골격 콘텐츠는 변경되 지 않는다. 따라서, 문서는 소정의 스테이징 또는 편집 영역에 제출될 필요는 없다. 반면에, 소정의 골격 콘텐츠가 예를 들어, 작업 영역 내에서 변경되면, 문서는 변형된 것으로 간주되고, 스테이징 또는 편집 영역에 반드시 제출되어야 한다.
도2를 다시 참조하면, 렌더링 코드(250)는 컴포넌트와 관련하여 문서의 렌더링을 제어 및 허용하기 위해 포함될 수 있다. 상술한 바와 같이, 본 분야의 숙련자들은 렌더링의 일반적 개념이 작은 부분들 중에서 일부를 구성하는 것과 관련되어 있음을 이해한다. 본 발명의 문맥에서, 렌더링은 문서 내에 위치한 컴포넌트 레퍼런스를 컴포넌트 콘텐츠로 대체하는 프로세스와 관련되어 있다. 그러한 구성에서, 문서는 동일한 레퍼런스를 갖는 다른 문서와 공유되는 콘텐츠를 포함하는 컴포넌트에 대한 레퍼런스를 포함하도록 구성된다. 본 발명에 따르면, 문서의 렌더링은 다양한 방식으로 발생할 수 있고, 다른 시스템 내에서 발생할 수도 있다. 예를 들면, 작업 영역은 이 작업 영역에 의해 액세스가능한 파일 시스템으로부터 문서에 대응하는 파일을 검색하므로써 문서를 렌더링할 수 있다. 문서를 수신할 시에, 유저는 모니터 상의 관측을 위해 문서를 끌어 온다. 본 발명의 한 실시예에서, 문서의 렌더링 시에, 골격 콘텐츠와 컴포넌트 둘 다는 문서 내에 포함되고 관측자에게 나타난다. 문서는 컴포넌트화된 콘텐츠가 골격 콘텐츠로부터 다르게 나타나도록 구성될 수 있다. 컴포넌트는 다른 콘텐츠로부터 구별가능한 다른 폰트 또는 이탤릭체로 나타나므로써 구별될 수 있다. 이들은 다른 콘텐츠로부터 컴포넌트화된 콘텐츠를 구별하기 위해 다른 컬러 또는 음영으로서 나타날 수도 있다.
본 발명에 따르면, 컴포넌트의 상태는 렌더링 시에 확인될 수 있다. 종래의 시스템과는 달리, 본 발명은 문서가 현재의 컴포넌트 콘텐츠로 렌더링되게 한다. 컴포넌트가 변형 또는 변이되면, 그러한 변경을 나타내는 증표를 포함한다. 몇몇 애플리케이션에서, 컴포넌트는 서브 컴포넌트를 포함할 수 있고, 문서 및 컴포넌트의 가계(ancestries)는 몇몇 층(ayer)들의 출처를 깊이 있게 파헤칠 수 있다. 컴포넌트가 계보(ancestry chain) 내에서 변형 및 변이된 경우, 이는 변형 또는 변이된 문서 또는 컴포넌트를 채택하는 컴포넌트들의 층들에 영향을 끼친다. 여기서, 컴포넌트 및 서브 컴포넌트와 같은 문서 및 그들의 자손은 자동적으로 렌더링 시에 뿐만 아니라, 그에 따라 갱신될 있다.
마찬가지로, 웹사이트 제작 서버는 웹사이트 제공 시에 문서를 렌더링할 수 있다. 그러한 렌더링 시에, 문서는 다른 콘텐츠로부터 컴포넌트화된 콘텐츠를 그다지 구별하지 않고, 실제로도 가능하면 변형을 위해 제공되지 않는다. 몇몇 웹사이트에서, 대화식 형태가 웹 브라우저에 제공될 수 있다. 그러한 애플리케이션에서, 웹 브라우저에 의해 변형될 수 있지만, 개별적으로 취급되는 콘텐츠가 존재한다. 컴포넌트화된 콘텐츠는 판독 전용을 기초로 그러한 유저에게 여전히 액세스만이 가능하다. 이 점에 있어서,본 분야의 숙련자들은 본 발명의 정신 및 범위를 벗어나지 않고도 본 발명의 구현 시에 다른 버전이 가능함을 알 수 있다.
본 발명의 한 실시예, 즉 컴포넌트를 배치하는 제1 구현에 있어서, 컴포넌트는 태그, 즉 메모리 내의 컴포넌트의 현 위치, 및 컴포넌트가 문서 상에 나타나는 위치를 포함하는, 컴포넌트를 식별하는 증표로 대체될 수 있다. 이는 컴퍼넌트 및 유일한 식별 코드의 카테고리와 같은 컴포넌트의 특성으로서 표현될 수 있다. 따라서, 태그는 컴포넌트를위한 장소를 보유하고, 렌더링 시의 사용을 위해 문서 내에 상주한다. 렌더링 코드는 문서의 렌더링 시에 문서 전체 걸쳐서 반복적으로 발생할 수 있는 태그를 위치시키도록 구성된 태그 로케이터 코드(252)를 포함한다. 렌더링 시에, 컴포넌트는 웹사이트 제작 서버와 같은 엔티티 또는 작업 영역 내에서와 같이, 유저에 의한 관측을 위해 문서 내로 삽입될 수 있다.
다른 실시예, 즉 컴포넌트를 배치하는 제2 구현에 있어서, 문서 내의 컴포넌트 대신에, 공백(void)이 남는다. 컴포넌트를 식별하기 위해서, 1) 컴포넌트의 오프셋 및 2) 컴포넌트의 길이 모두가 필요하다. 렌더링 시에, 렌더링 코드는 좌표 맵핑에 따른 위치로부터 컴포넌트를 끌어 오도록 구성될 수 있다.
예를 들면, 프로그램은 문서의 오프셋에서 시작하는 몇몇 데이터를 판독하도록 요청된다. 제1 구현에서, 시스템은 전체 문서를 시험하고 모든 컴포넌트 레퍼런스를 실제 컴포넌트 파일로 대체하며, 파일의 인코딩을 적절한 인코딩으로 번역한 다음 (트랜스코딩과 관련하여 후술됨), 최종 데이터의 오프셋을 찾을 필요가 있다. 이들 모든 스텝들을 일단 수행한 다음, 장래 액세스를 위해서 최종 파일을 버퍼시키는 것이 유용하다. 제2 구현에서, 버퍼링은 불필요하다. 문서 내의 각각의 컴포넌트의 오프셋, 길이 및 위치를 포함하는 맵이 계속 유지된다. 오프셋에서의 데이터가 후속적으로 요청되면, 오프셋은 렌더링된 문서의 일부를 파일이 포함하는 것을 정확하게 결정하기 위해서 맵 내에서 간단히 찾아질 수 있고, 데이터는 직접 판독될 수 있다. 컴포넌트 정보의 맵의 빌딩은 문서를 렌더링하는 만큼 많은 자원을 취하고, 렌더링된 문서보다 적은 스토리지 공간을 취한다.
컴포넌트 삽입 코드(254)는 렌더링 시에 문서 내로 컴포넌트의 삽입을 제어 및 허용하도록 구성된다. 삽입 코드는 컴포넌트가 렌더링 시에 검색될 수 있도록 저장되는 위치에 대해 맵핑하도록 구성된 코드(256)를 포함할 수 있다. 버퍼 액세스 코드(258)는 최근 버전의 컴포넌트를 저장하는 버퍼에 액세스를 허용하도록 구성된다. 버퍼는 버퍼 파일의 형태일 수 있는데, 여기서 컴포넌트는 저장 및 갱신되고, 컴포넌트의 버전이 저장된다. 갱신 코드(260)는 컴포넌트의 시간 행적, 가능하면 문서 내로 끌어 넣어질 컴포넌트를 식별하는 태그의 시간 행적에 따라 렌더링 시에 컴포넌트의 변경을 검색하도록 구성될 수 있다.
컴포넌트 갱신 코드(262)는 컴포넌트의 변경을 제어 및 허용하도록 구성된다. 새로운 기술에 따르면, 컴포넌트는 문서 내에서 변형될 수 있는 다른 콘텐츠와 동일하게 취급되지 않는다. 그리고, 다중 문서에 대한 그들의 보편적 애플리케이션의 결과로서, 컴포넌트의 변경은 특정 컴포넌트를 채택하는 모든 문서들을 적절히 갱신하기 위해서 독특한 프로토콜을 반드시 가져야 한다. 상술한 바와 같이, 최근 변경(264)은 버퍼 파일로서 메모리 내에 저장될 수 있다. 이들은 특별한 애플리케이션에 따라 다양한 위치에 저장될 수도 있다. 컴포넌트 및 다른 콘텐츠에 대한 변경이 적절한 특권을 갖는 엔티티 또는 유저에 의해 개발 서버 상에서 발생할 수 있다. 이들은 고객 위치에서 특권을 갖는 엔티티 또는 유저에 의해, 도1의 고객 시스템(128) 상에서 발생할 수도 있다. 위치하는 곳이 어디든, 컴포넌트의 최종 변경은 효율적 액세스를 위해 저장될 수 있다.
본 발명에 따르면, 특정 애플리케이션에서 액세스 및 검색을 위한 다른 버전의 컴포넌트를 보유하는 것이 유용할 수 있다. 이는 다른 컴포넌트 버전으로의 복귀를 가능케 한다. 복귀 코드(266)는 오래된 버전의 콘텐츠로의 복귀를 허용하도록 구성되고, 역사적 콘텐츠 코드(268)를 통해 역사적 콘텐츠로의 액세스를 포함한다. 오래된 컴포넌트로의 복귀는 예를 들어, 제한된 장려 또는 판매 제안에 대해 유용할 수 있는데, 여기서는 제안된 광고를 정의하는 한 세트의 콘텐츠가 웹페이지를 정의하는 다양한 문서에 대해 보편적으로 방송된다. 여기서, 콘텐츠는 필요할 때 쉽게 그리고 효율적으로 해제 및 철회될 수 있다. 역사적 데이터는 상술한 시간 행적을 사용하여 조직될 수 있다.
컴포넌트의 변경 시에, 컴포넌트를 포함하는 문서를 갱신하는 것이 중요하다. 문서의 렌더링 시에, 갱신 코드(260)는 가장 최근의 콘텐츠로 컴포넌트를 렌더링하도록 구성될 수 있다. 그러나, 컴포넌트가 작업 영역 외부에서, 예를 들면 공개적으로 뷰될 수 있는 제작 서버 내에서 사용되면, 특별한 갱신 기술이 필요하다. 전파 코드(propagate code;270)는 컴포넌트를 포함하는 문서를 통해 컴포넌트의 갱신을 전파하도록 구성될 수 있다. 예를 들면, 컴포넌트가 갱신되고, 웹페이지를 정의하는 문서가 제작 시에 있으면, 문서 내의 다른 콘텐츠가 아무 것도 갱신되지 않더라도, 즉 문서가 변이되었더라도, 웹페이지로 변경하게 하는 것이 유용하다. 전파 코드는 갱신된 컴포넌트를 포함하는 문서들을 트랙킹하고, 따라서 문서들을 갱신하도록 구성될 수 있다.
도4를 참조하면, 본 발명의 한 실시예의 렌더링 동작(400)을 설명하는 흐름 도가 도시된다. 렌더링은 스템(402)에서 시작하는데, 여기서는 요청이 문서를 렌더링하기 위해 유저 또는 엔티티에 의해 주장된다. 골격 콘텐츠는 스텝(404)에서 검색되는데, 여기서 골격 콘텐츠는 예를 들어, 작업 영역 또는 프로덕션 서버에서, 컴포넌트를 변형하기 위한 권한이 없을 수 있는 유저 또는 엔티티에 의해 변형될 수 있는 콘텐츠를 포함한다. 이 스텝에 이어서 스텝(406)에서 컴포넌트를 검색되도록 위치시킨다. 이는 컴포넌트를 식별하는 태그, 또는 컴포넌트를 위치시키는 오프셋을 위치시키게 할 수 있다. 컴포넌트가 발견되면, 컴포넌트는 예를 들어, 시스템이 컴포넌트를 위치시키게 하기 위해 사용하는 유일한 ID 및 카테고리에 의해 단계(408)에서 식별된다. 단계(410)에서, 문서는 위치를 맵핑하므로써 메모리 위치에 위치한다. 시스템은 컴포넌트의 버전을 버퍼시키도록 구성될 수 있다. 한 실시예에서, 컴포넌트를 식별하는 태그는 이 태그를 찾는 파일 데이터를 통해 근본적으로 스캐닝하므로써 발견된다. 데이터가 XML이면, XML 파서는 트리의 개별 노드가 XML 데이터 또는 태그들 중 하나를 나타내는 트리 데이터 구조로 XML 데이터를 해체하는데 사용될 수 있다. 그 다음, 트리는 특별한 태그 노드를 찾기 위해 트래버스될 수 있다. 그 다음, 태그 노드는 인용하는 컴포넌트의 트리 레프리젠테이션으로 대체될 수 있다. 모든 태그 노드들이 이런 방식으로 대체되면, 전체 랜더링된 문서를 나타내는 트리 구조가 결과로서 생긴다. 표준 알고리즘은 트리 구조를 플랫 파일(flat file)로 변환하는데 적용될 수 있다.
버퍼는 스텝(412)에서 체크되어, 원하는 컴포넌트가 버퍼 내에 위치하는 지의 여부를 판정한다. 만약 그렇다면, 버퍼는 원하는 콘텐츠 버전이 스텝(414)에서 버퍼 내에 있는 지의 여부를 판정하기 위해 체크된다. 그렇지 않다면, 프로세스는 스텝(416)으로 진행하여, 원하는 컴포넌트 버전이 위치하는 메모리 위치를 맵핑한다. 마찬가지로, 단계(412)에서, 원하는 컴포넌트가 버퍼 내에 있지 않다는 것으로 판정되면, 프로세스는 스텝(416)으로 진행하여, 메모리 내의 그 위치에서 원하는 컴포넌트 버전을 맵핑한다. 어느 한 경우에, 원하는 버전의 컴포넌트가 위치하면, 스텝(418)에서 검색된다. 그 다음, 프로세스는 단계(420)으로 진행되고, 여기서 문서 내의 모든 컴포넌트가 위치하고 처리되었는 지가 문의된다. 그렇지 않다면, 프로세스는 스텝(406)으로 복귀되어, 또 다른 위치된 컴포넌트로 진행시킨다. 모든 컴포넌트들이 위치 및 처리되면, 프로세스는 단계(422)에서 종료된다.
종래와 달리, 본 발명은 컴포넌트를 포함하는 문서의 관측자에게 완전히 투명하게 될 컴포넌트의 모방을 가능케 한다. 본 발명은 또한, 특정 목표를 달성하기 위해서 컴포넌트가 변형될 수 있도록 갱신 및 렌더링 프로세스 중에 로버스트 제어를 가능케 한다. 본 발명은 다른 시스템으로 작업에 대한 가용성을 가능케 하여, 특별한 시스템에 컴포넌트 관련 동작을 적응시킨다.
몇몇 애플리케이션에서, 컴포넌트 및 다른 부류의 콘텐츠는 다른 인코딩 프로토콜을 이용하여 다른 시스템들 간에 전송된다. 예를 들면, 컴포넌트가 제1 인코딩 하에 개발 서버에서 제1 워크스테이션으로부터 수신되고, 제2의 비호환성 인코딩 하에 동작하는 제2 워크스테이션으로 전송되면, 충돌이 존재한다. 따라서, 보편적으로 적용될 수 있도록 그러한 인코딩을 번역하기 위한 수단을 제공하는 것이 유용하다. 본 발명의 선택적 특징으로서, 트랜스코더는 그러한 인코딩 번역을 수행하도록 제공된다. 동작 시에, 컴포넌트는 한 서버에서 수신되고, 보편적 인코딩으로 번역될 수 있다. 그 다음, 컴포넌트는 운영되고, 변형, 갱신 그렇지 않으면 변경되어, 저장된다. 다른 서버로의 전송이 바람직한 경우, 컴포넌트는 타겟 서버의 인코딩으로 번역된 다음 전개될 수 있다.
본 발명의 한 실시예에 따르면, 컴포넌트는 이를 포함하는 각각의 문서의 인코딩과는 독립적으로 그리고 자동적으로 트랜스코드될 수도 있다. 예를 들면, 컴포넌트 X가 문서 A 및 B 내에 포함되고, A 및 B 둘 다 각각은 다른 인코딩을 갖는 것으로 가정하자. 문서 A가 렌더링되면, 컴포넌트 X 내에 포함되는 데이터는 문서 A의 인코딩을 사용하여 문서 A 내에 나타난다. 한편, 문서 B가 문서 A와 동일한 시간에 렌더링되면, 컴포넌트 X로부터의 데이터는 문서 B의 인코딩을 사용하여 문서 B 내에 나타난다. 사실상, 컴포넌트 X로부터의 데이터는 2개의 다른 인코딩으로 자체를 동시에 명시할 수 있다, 더구나, 컴포넌트 X 자체의 실제 콘텐츠는 이를 달성하기 위해서 변형될 필요는 없고, 문서 A 및 B의 렌더링된 버전만이 컴포넌트 X의 트랜스코드된 형태를 포함한다. 따라서, 디스크 공간은 컴포넌트 X의 다양한 인코딩에 대해 소비되지 않는다.
도5를 참조하고, 도4의 단계(418)를 참조하면, 본 발명에 따른 인코딩 체계(500)의 한 예가 도시된다. 컴포넌트 콘텐츠가 단계(418)에서의 위치로부터 검색되면, 타겟 문서의 인코딩 체계는 단계(502)에서 식별된다. 이는 문서의 골격 내의 태그의 형태일 수 있거나, 문서의 인코딩 체계를 식별하는 다른 선정된 식별 구성일 수 있다. 그러한 식별 기술은 본 분야에서 공지되어 있다. 일단 식별되면, 컴포넌트 콘텐츠는 단계(504)에서 문서의 체계에 따라 인코딩된다. 인코딩 기술 및 체계는 본 분야에서 공지된 기술이고, 본 발명은 특별한 인코딩 기술 또는 체계에 국한되지 않는다. 그 다음, 인코딩된 컴포넌트 콘텐츠는 단계(506)에서 타겟 문서 내에 채택된다.
상술한 바와 같이, 변이되고 변형된 문서의 제출 프로세스는 개별 처리를 수신할 수 있다. 도6을 참조하면, 그러한 한가지 프로세스, 즉 프로세스(600)가 도시된다. 프로세스는 단계(602)에서 시작하는데, 여기서 문서의 전개가 초기화된다. 단계(604)에서, 변형 또는 변이된 파일이 식별된다. 이는 문서 또는 다른 객체의 특성을 식별하기 위해, 파일과 관련된 식별 태그에 의해, 또는 공지된 다른 방법에 의해 달성될 수 있다. 단계(606)에서, 파일이 변형되면, 프로세스는 단계(608)로 진행되는데, 여기서 파일은 스테이징 영역에 제출된다. 그러한 파일은 컴퍼넌트를 포함하는지에 대해 변형된 소정의 파일로서 처리된다. 파일이 변형되지 않으면, 프로세스는 단계(610)로 진행하는데, 여기서 파일이 변이되었는 지가 판정된다. 그렇지 않다면, 프로세스는 단계(604)로 복귀되어, 변형되거나 변이된 파일을 다시 식별한다. 파일이 변이된 경우에, 또는 단계(608) 이후에, 파일은 단계(612)에서 전개된다. 따라서, 본 발명에 따르면, 변형된 파일은 전개되기 전에 스테이징 영역에 제출된다.
일단 저장된 컴포넌트가 설정되면, 이들은 서치 및 검색을 위해 인덱스될 수 있다. 컴포넌트는 유저가 저장된 컴포넌트를 사용하여 새로운 문서를 구성하게 하는 방식으로 조직될 수 있다. 인덱싱은 유저가 컴포넌트화된 콘텐츠를 쉽게 서치 할 수 있게 하고, 문서 골격 내에 콘텐츠를 채택할 수 있다. 도7을 참조하면, 인덱싱 및 질의 저장소(700)가 도시된다. 저장소는 문서 콘텐츠 제어 모듈(118)(도1)의 일부로서 구현될 수 있고, 컴포넌트에 대해 인덱싱, 서칭, 및 다른 제어를 제어하도록 구성되며, 웹사이트 개발 시스템 내에서 구현될 수 있다. 이는 또한 상술한 다른 엔티티에 대한 컴포넌트화된 콘텐츠를 제어하기 위한 좀 더 일반적인 제어 모듈로서 구현될 수 있다. 저장소는 컴포넌트 자체를 관리 및 유지하는 것뿐만 아니라, 컴포넌트의 인덱싱 및 서칭을 관리 및 유지하도록 구성되는 소프트웨어 애플리케이션이다.
저장소는 컴포넌트의 인덱싱을 관리하기 위한 인덱스 모듈(702), 및 저장소 내에 또는 이에 의해 저장된 컴포넌트에 대한 서치를 관리하도록 구성된 질의 모듈(704)를 포함한다. 인덱스 모듈은 인덱싱이 행해진 내부의 파라미터를 정의하는 인덱싱 룰(706)을 포함한다. 한 실시예에서, 컴포넌트는 라이브러리 내에 저장되고 식별 태그와 같은 방식으로 식별된다. 다른 태깅 기술은 본 분야의 숙련자들에게는 잘 알려져 있고, 문서 및 파일을 태깅하기 위한 방법도 있다. 태그 룰(708)은 질의 모듈에 의해 서치된 컴포넌트를 식별하는데 사용될 수 있는 다른 태그를 정의한다. 그 다음, 컴포넌트는 본 발명에 따른 문서 골격 내에 사용될 수 있다. 웹사이트 및 관리 애플리케이션에서, 태그 룰은 콘텐츠의 컴포넌트화가 바람직한 다른 영역 및 작업 영역 내에서 사용되는 컴포넌트에 관련된다. 그러한 태그는 예를 들면, 재정 정보와 같은 특정 그룹의 콘텐츠를 식별하는 태그 그룹을 포함한다. 영역 태그는 웹사이트 유지 시스템의 특별한 영역에 사용되는 컴포넌트를 지정한 다. 태그는 또한, 요소 명칭, 속성 명칭 및 값, 문자 값 및 데이터, 그리고 컴포넌트와 관련되고, 서치 기준으로서 유용하게 역할을 하는 다른 특성들을 지정할 수 있다. 서치 필드(710)는 질의 모듈에 의해 서치된 다른 필드들을 관리하기 위해 정의될 수 있다. 필드는 영역 정의 뿐만 아니라, 카테고리 정의에 의해 제한될 수 있고 정의될 수 있다. 따라서, 필드는 특별한 카테고리 및 작업 또는 스테이징 영역들에 국한될 수 있어, 이들 필드로부터 특별한 유저들을 제한한다. 벌크 인덱서(712)는 컴포넌트를 벌크 형태로 인덱스하도록 구성될 수 있는데, 여기서 컴포넌트들은 몇몇 방식으로 서로 관련된다. 그러한 인덱서는 대량의 공통 컴포넌트를 함께 처리하므로써 인덱싱 프로세스를 가속시킬 수 있다.
버전화 모듈(versioning module;714)은 컴포넌트의 버전을 그에 따라 인덱싱하므로써 컴포넌트의 버전을 주관하도록 구성된다. 컴포넌트가 본 발명에 따라 변형 또는 변이될 수 있기 때문에, 이들은 저장소 내에 저장 및 인덱스될 때 다른 버전을 반드시 갖는다. 변형 상태(716)는 특별히, 자주 변형되는 컴포넌트를 재사용할때, 이들 다른 버전의 중요한 식별자이다. 상술한 바와 같이, 변형 또는 변이된 컴포넌트는 다른 컴포넌트 또는 문서와는 다르게 처리되고, 스테이징 및 전개와 같이, 다른 시스템 이벤트에 영향을 끼칠 수 있다. 버전과 특별히 관련된 한가지 식별 태그는 날자 스탬프이다. 날자 스탬프 모듈(718)은 컴포넌트의 날자 스탬프를 처리하도록 구성된다. 그러한 날자 스탬프는 태그의 형태를 취할 수 있고, 상술한 태그 룰과 관련하여 작업할 수 있다. 컴포넌트를 서치하면, 유저는 이들이 컴포넌트의 변형 상태 및 최근 버전의 날자 스탬프를 알고 있을 때 최상의 컴포넌트를 사 용할 수 있다. 일부가 변형 또는 변이되고 다른 것들이 변형 또는 변이되지 않게 되면, 유저는 새로운 문서에 대한 컴포넌트를 좀 더 양호하게 선택할 수 있다.
질의 모듈(704)은 서치 활동을 주관하도록 구성되고, 그러한 서치의 파라미터를 설정하기 위한 질의 룰(720)을 포함한다. 질의 룰은 특정 유저에 의해 특별한 컴포넌트의 서칭을 제한하기 위한 특권 코드를 포함한다. 룰은 또한, 서치 범위를 제한하거나 그렇지 않으면 정의한다. 컴포넌트가 특별한 유저에게 제한될 수 있기 때문에, 컴포넌트 콘텐츠가 다른 용도로 사용되더라도, 많이 제한될 수 있다는 것은 필연적이다. 일부 컴포넌트는 인덱스될 수 있고, 또는 대안적으로, 다양한 애플리케이션 이유에 대한 서칭을 위해 인덱스되지 않을 수 있다. 질의 모듈은 또한 유저 인터페이스 애플리케이션(724)에 따라 서치 기준을 입력할 수 있는 유저의 서치 기준에 기초한 컴포넌트를 서치하도록 구성된 서치 엔진(722)을 포함한다. 본 발명에 따라, 서치는 인덱싱 모듈 내에 생성되는 컴포넌트와 관련된 인덱스 탭의 식별 기준을 서치하므로써 수행된다. 따라서, 컴포넌트는 컴포넌트 내에 위치한 필드 스트링 뿐만 아니라, 컴포넌트 내에 포함되어 있는 텍스트 스트링에 따라 서치될 수 있다. 예를 들면, 데이터 필드는 문서 내에 지정될 수 있고, 일반적인 컴포넌트는 특별한 날자 필드에 따라 서치될 수 있다. 예를 들어, 저작권 날자와 같은 날자 필드가 변경되면, 그 날자 필드를 포함하는 모든 컴포넌트는 인덱스 및 서치될 수 있고, 또한 보편적 애플리케이션에 대해 변형될 수 있다. 그러한 서치 엔진은 공지된 기술이다.
저장소는 또한 자주 액세스된 정보를 임의 저장하기 위한 영구 스토리지 (726)를 포함한다. 이벤트 전달 모듈(728)은 저장소와 시스템의 레스트(rest) 사이에 인덱싱 및 질의 이벤트를 전달하도록 구성된다. 양호한 실시예에서, 전달 모듈은 인덱스되기 전에 문서를 렌더링하도록 구성되어, 인덱스 룰에 따라 모든 필드 및 데이터가 인덱스되도록 한다. 컴포넌트 및 다른 콘텐츠의 보편적 사용이 주어지면, 그러한 인덱싱 기술의 결과로서 중복성 인덱싱이 존재할 수 있다. 그러나, 시스템은 컴포넌트 레벨에서와 같이, 컴포넌트를 식별하고, 그들을 한번만 인덱싱하므로써 그러한 중복성을 방지하도록 구성될 수 있다. 전달 모듈은 프로세싱 중에 컴포넌트 및 관련 데이터를 저장하기 위한 영구 스토리지를 사용한다. 예를 들면, 질의 전달 시에, 전달 모듈은 프로세싱 중에 서치 정보를 영구 메모리에 저장할 수 있다. 또한, 인덱스 전달에도 도움이 된다. 전달 모듈은 프로세싱 중에 자주 변경되는 컴포넌트 뿐만 아니라, 영구 메모리에 벌크 형태로 전송되는 컴포넌트를 임의 저장할 수 있다. 전달 모듈은 이벤트의 전달을 중지시키도록 구성된 전달 중지 모듈을 포함한다. 예를 들면, 아이템은 점진적으로 인덱스되고, 여기서 단일 아이템은 연속하여 여러번 갱신될 필요가 있다. 또는, 큰 배치(batch)는 작업 영역, 스테이징 영역 등과 같은 전체 영역의 벌크 리-인덱싱(bulk re-indexing)을 필요로 할 수 있다. 이러한 환경에서, 이들 타스크를 달성하기 위해서는 전달 이벤트를 중지하는 것이 도움이 된다.
컴포넌트 스토리지(730)는 유저에 의한 서칭 및 검색을 위해, 인덱스되거나 또는 인덱스되지 않은 컴포넌트를 저장하도록 구성된다. 컴포넌트는 대안적으로 컴포넌트 데이터베이스(732) 내에 저장될 수 있다. 그와 같이, 컴포넌트는 쉬운 서칭 및 검색을 위해 데이터베이스 형태로 저장될 수 있다.
도8을 참조하면, 본 발명에 따른 컴포넌트 인덱싱 방법(800)의 예가 도시된다. 단계(802)에서, 컴포넌트는 저장소에서와 같이, 수신된다. 그 다음, 인덱싱 모듈은 단계(804)에서 컴포넌트의 인덱싱 인테이크(indexing intake)를 수행한다. 그 다음, 컴포넌트의 특성은 적절한 인덱싱 식별이 수행될 수 있도록 단계(806)에서 시험된다. 단계(808)에서, 컴포넌트가 이전 버전으로부터 변형되었는 지가 판정된다. 변형되었다면, "변형" 식별 태그가 배치되거나 컴포넌트와 관련된다. 다음, 단계(808)로부터 변형되지 않았다면, 프로세스는 단계(812)로 진행하여, 컴포넌트가 변이되었는 지가 판정된다. 만약 변이되었다면, 단계(814)에서 "변이" 태그가 배치되거나 컴포넌트와 관련된다. 다음, 단계(812)로부터 변이되지 않았다면, 프로세스는 단계(816)로 진행하여, 컴포넌트의 영역이 작업 영역, 스테이징 영역, 또는 다른 영역인 지가 판정된다. 그 다음, 컴포넌트는 단계(818)에서 컴포넌트의 영역을 나타내는 태그와 관련된다. 단계(820)에서, 중지 이벤트가 표시되는지 또는 계류중인 지가 판정된다. 상술한 바와 같이, 컴포넌트의 전달이 인덱스되는 것과 같이, 전달 프로세스의 중지가 인덱스되는 환경이 존재할 수 있다. 계류중인 중지 이벤트가 존재하면, 프로세스는 단계(822)로 진행하는데, 여기서, 이벤트가 종료될 때까지 프로세스가 중지된다. 프로세스 루프가 단계(820)으로 복귀되고, 여기서, 중지 이벤트가 여전히 계류중인 지가 다시 질의된다. 더 이상 계류중이지 않으면, 인덱싱은 단계(824)에서 착수되고, 프로세스는 또 다른 프로세싱을 위해 단계(802)로 복귀된다.
도9를 참조하면, 본 발명에 따라 구성된 서치 질의 방법(900)의 예가 도시된다. 프로세스는 단계(902)에서 시작하는데, 여기서 컴포넌트에 대해 질의가 제출된다. 그 다음, 질의는 단계(904)에서 분석된다. 선택적으로, 단계(906)에서 액세스가 제한되는 지가 판정될 수 있다. 제한되다면, 제한 이벤트가 단계(908)에서 부가된다. 그러한 제한 이벤트는 서치가 특별한 컴포넌트에 대해 제한되게 한다. 유저가 질의를 수행하는것으로부터 제한된다면, 프로세스는 단계(910)에서 끝날 수 있다. 단계(906 - 910)들은 애플리케이션에 따라 생략될 수 있다. 다른 실시예에서, 제한 단계가 폐기되거나, 질의 시에 검색을 제한하는 특별한 컴포넌트에 대해 태그에 의해 대체될 수 있다. 제한되는 지의 여부에 따라, 프로세스는 단계(912)로 진행하는데, 여기서 컴포넌트 스토리지는 질의에 관한 컴포넌트에 대해 서치된다. 이는 그들 각각의 태그를 판독하는 서치 엔진에 의해 행해진다. 단계(914)에서 태그 매치가 존재하면, 프로세스는 단계(916)에서 컴포넌트를 검색한다. 그렇지 않으면, 그 후에, 프로세스는 단계(918)로 진행하는데, 여기서 컴포넌트로의 액세스가 제한되는 지가 판정된다. 이는 특별한 컴포넌트의 변경을 제한하는데 유용할 수 있는데, 여기서 그러한 변경은 민감할 수 있고, 또는 넓게 뻗는 가지(broad reaching ramifications)를 갖는다. 그러한 제한이 존재한다면, 시스템은 단계(920)에서 질의의 유저에게 결과를 전송하는 것을 억제하고, 다른 경우에는 단계(922)로 진행하는데, 여기서 모든 인덱스된 태그가 서치되었는 지가 판정된다. 서치되지 않았다면, 프로세스는 단계(912)로 다시 돌아가는데, 여기서 컴포넌트는 다시 서치된다. 그렇지 않다면, 프로세스는 단계(924)에서 종료된다.
일반적으로, 본 발명은 전용 프로세서, 브라우저 요청을 수신 및 루팅시키도록 구성된 웹서버, 애플리케이션 서버, 상태 서버, 및 서로 통신하도록 구성되고 기업내 정보 통신망(LAN), 인트라넷 및 인터넷을 포함하는 하나 이상의 네트워크에 접속될 수 있는 다른 형태의 컴퓨터 프로세서들을 이용할 수 있다. 그러나, 본 분야의 숙련자들이라면, 그러한 디바이스 및 시스템의 구현이 본 발명의 이용의 아주작은 부분이고, 본 발명이 하나 이상의 네트워크 내의 데이터의 효율적 루팅 및 프로세싱이 함유된 경우의 많은 다른 애플리케이션에서 더 많이 적용되고 이용될 수 있음을 알 수 있을 것이다. 본 발명을 구체화하는 동등한 구조는 본 발명의 정신 및 범위를 벗어나지 않고도, 그러한 애플리케이션을 위해 구성될 수 있다. 이러한 실시예가 컴퓨터 시스템 또는 네트워크의 유저들 간에 데이터를 교환하기 위한 디바이스 및 시스템의 문맥 내에서 기술 및 설명되었더라도, 본 발명의 적용은 유사한 특징이 유용한 다른 애플리케이션으로 확장된다. 본 발명은 개인용 컴퓨터, 애플리케이션 서버, 상태 서버, 또는 컴퓨터 상에 설계되고 구현되고 본 발명을 실행하기 위해 다른 컴퓨터와의 통신을 위해 네트워크에 접속될 수 있는 인터넷 웹서버를 포함할 수 있다. 본 발명에 따라 동작하도록 구성된 시스템은 개별 모뎀 또는 무선 통신과 같은 다른 통신 수단을 통해 인터넷에 접속된 다수의 개인용 컴퓨터를 포함할 수 있다.
본 발명은 또한 마이크로프로세서와 같은 컴퓨터 프로세서에 의해 수행될 다수의 기능을 포함할 수 있다. 마이크로프로세서는 특별한 타스크를 정의하는 기계 - 판독가능 소프트웨어 코드를 실행시키므로써 특별한 타스크를 수행하도록 구성되는 특화 또는 전용 마이크로프로세서일 수 있다. 마이크로프로세서는 또한 직접 메모리 액세스 모듈, 메모리 스토리지 디바이스, 인터넷 관련 하드웨어, 및 본 발명에 따라 데이터 전송과 관련되는 다른 디바이스와 같은 다른 디바이스들과 동작및 통신하도록 구성될 수 있다. 소프트웨어 코드는 Java, C++, XML (Extensible Mark-up Language) 및 본 발명과 관련된 기능성 동작을 실행하는데 필요한 디바이스들의 동작과 관련되는 기능을 정의하는데 사용될 수 있는 다른 언어를 사용하여 구성될 수 있다. 코드는 다른 형태 및 스타일로 기록될 수 있고, 많은 부분은 본 분야의 숙련자들에게는 공지되어 있다. 다른 코드 포맷, 코드 구성, 소프트웨어 프로그램의 스타일 및 형태, 그리고 본 발명에 따른 마이크로프로세서의 동작을 정의하기 위한 코드를 구성하는 다른 수단은 본 발명의 정신 및 범위를 벗어나지 않는다.
본 발명을 이용하는 컴퓨터 서버와 같은 다른 유형의 컴퓨터 내에서, 본 발명에 따른 기능을 수행하면서 정보를 저장 및 검색하기 위한 다른 유형의 메모리 디바이스가 존재한다. 캐쉬 메모리 디바이스는 자주 저장 및 검색되는 정보에 대한 편리한 스토리지 위치로서 중앙 처리 장치에 의해 사용하기 위한 그러한 컴퓨터 내에 종종 포함된다. 마찬가지로, 영구 메모리는 또한, 중앙 처리 장치에 의해 자주 검색되지만, 캐쉬 메모리와는 달리, 영구 메모리 내에서 자주 변경되지는 않는 정보를 유지하기 위한 컴퓨터에 자주 사용된다. 메인 메모리는 또한, 중앙 처리 장치에 의해 실행될 때 본 발명에 따른 기능을 수행하도록 구성된 데이터 및 소프 트웨어 애플리케이션과 같은 대량 정보를 저장 및 검색하기 위해 보통 포함된다. 이들 메모리 디바이스들은 랜덤 액세스 메모리(RAM), 정적 랜덤 액세스 메모리(SRAM), 동적 액세스 메모리(DRAM), 플래쉬 메모리, 및 정보를 저장 및 검색하기 위해 중앙 처리 장치에 의해 액세스될 수 있는 다른 메모리 스토리지 디바이스로서 구성될 수 있다. 본 발명은 소정의 특별한 형태의 메모리 디바이스, 또는 이들 메모리 디바이스들 각각으로 정보를 저장하고 이로부터 정보를 검색하기 위한 소정의 공통으로 사용된 프로토콜에 국한되지는 않는다.
본 발명의 장치 및 방법은 문서 저장소 내로의 저장을 위해 문서 내의 컴포넌트화된 콘텐츠를 허용 및 제어하기 위한 방법 및 장치를 포함한다. 이는 웹사이트 개발 및 유지 소프트웨어 애플리케이션의 동작과 관련하여 행해질 수 있다. 이러한 실시예가 인터넷 웹사이트를 개발 및 유지하기 위한 소프트웨어 애플리케이션의 문맥 내에서 설명 및 기술되었더라도, 본 발명의 범위는 데이터 소스 또는 목적지에서의 데이터의 유지 및 보전이 유용한 경우에 다른 애플리케이션으로 확장된다. 더구나, 상기 설명은 본 발명의 특별한 실시예를 참조하여 이루어진 것인 반면에, 이들은 본 발명의 설명만을 위한 것이고, 본 발명의 원리를 벗어나지 않고도 그들 실시예에는 변경이 이루어질 수 있음을 알 수 있을 것이다.

Claims (13)

  1. 컴포넌트화된 전자 문서(componentized electronic document)를 동적으로 구성하는 방법에 있어서,
    (a) 컴포넌트에 레퍼런스(reference)되는 태그(tags) 및 엔티티 골격(entity skeleton)을 포함하는 문서를 수신하는 단계;
    (b) 상기 엔티티 골격 내에 컴포넌트 레퍼런스를 위치시키는 단계;
    (c) 컴포넌트 태그에 따라 1개 이상의 컴포넌트를 식별하는 단계;
    (d) 컴포넌트가 변경된 상태인 지를 판정하는 단계;
    (e) 상기 변경된 상태에 기초하여, 상기 판정된 컴포넌트에 대응하는 컴포넌트 콘텐츠를 맵핑하는 단계;
    (f) 메모리 위치로부터 상기 대응하는 컴포넌트 콘텐츠를 검색하는 단계; 및
    (g) 상기 문서 내에 상기 검색된 컴포넌트 콘텐츠를 삽입하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 단계 (c)가
    카테고리 및 유일한 식별 지시자(a unique identification indicator)에 따라 컴포넌트 태그를 분석하므로써 컴포넌트를 식별하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 단계 (e)가
    상기 대응하는 컴포넌트 콘텐츠가 버퍼 내에 위치하는 지를 검사하는 단계;
    상기 대응하는 컴포넌트 콘텐츠가 버퍼 내에 위치하지 않으면, 단계 (f)로 진행하는 단계;
    상기 대응하는 컴포넌트 콘텐츠가 버퍼 내에 위치하면, 상기 대응하는 컴포넌트 콘텐츠가 갱신되었는 지를 판정하는 단계;
    상기 대응하는 콘텐츠가 갱신되면, 상기 버퍼로부터 상기 갱신된 컴포넌트 콘텐츠를 검색하고, 단계(g)로 진행하는 단계; 및
    상기 대응하는 컴포넌트 콘텐츠가 갱신되지 않으면, 단계 (f)로 진행하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 엔티티는 텍스트 및 그래픽 데이터를 포함하는 XML 포맷으로 구성되는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 컴포넌트는 상기 컴포넌트를 삽입하는 문서들 간에 보편적 일관성을 제공하기 위해 다른 엔티티들과 공유되는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 상기 엔티티 골격은 상기 엔티티 골격 내의 선정된 위치에 있는 컴포넌트에 대한 레퍼런스를 포함하도록 구성되는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 엔티티 골격은 상기 엔티티 골격 내에 비컴포넌트화된 콘텐츠(non-componentized content)를 포함하는 것을 특징으로 하는 방법.
  8. 공통 콘텐츠를 공유하는 전자 문서의 콘텐츠 컴포넌트화를 관리하도록 구성된 시스템에 있어서,
    상기 문서들 각각은 컴포넌트화된 콘텐츠 및 상기 컴포넌트화된 콘텐츠를 식별하는 태그로 이루어진 엔티티 골격을 포함하고,
    상기 시스템은
    콘텐츠를 관리하도록 구성된 콘텐츠 제어 모듈;
    콘텐츠 편집을 관리하도록 구성된 편집 애플리케이션;
    컴포넌트를 관리하고 상기 컴포넌트의 상태 변경을 트랙킹하도록 구성된 컴포넌트 제어 모듈 -상기 컴포넌트 각각은 대응하는 콘텐츠를 가짐-;
    상기 컴포넌트의 인덱싱, 서칭 및 검색을 관리하도록 구성된 저장소(repository); 및
    인덱스된 컴포넌트를 저장하도록 구성된 컴포넌트 스토리지를 포함하고,
    컴포넌트가 갱신되면, 상기 갱신된 컴포넌트를 레퍼런스하는 상기 문서들 각각 및 전부는 렌더링 시에 자동으로 갱신되는
    것을 특징으로 하는 시스템.
  9. 제8항에 있어서, 상기 저장소는
    컴포넌트 인덱싱을 관리하도록 구성된 인덱스 모듈, 및
    컴포넌트 서칭을 관리하도록 구성된 질의 모듈(query module)
    을 포함하는 것을 특징으로 하는 시스템.
  10. 제8항에 있어서, 컴포넌트의 상태 정보 및 버전 정보를 나타내도록 구성된 버전 모듈을 더 포함하는 것을 특징으로 하는 시스템.
  11. 제8항에 있어서, 웹사이트 콘텐츠를 갖는 문서를 개발하도록 구성된 개발 서버를 더 포함하고,
    상기 개발 서버는 유저에 의해 액세스될 수 있는 글로벌 네트워크에 통신가능하게 접속되는
    것을 특징으로 하는 시스템.
  12. 제8항에 있어서, 상기 인덱스 모듈은 개별 컴포넌트와 관련된 태그에 따라 컴포넌트 인덱싱을 관리하고,
    상기 질의 모듈은 1개 이상의 질의 룰에 따라 파라미터를 설정하므로써 컴포넌트 서칭을 관리하는
    것을 특징으로 하는 시스템.
  13. 삭제
KR1020047012290A 2002-02-08 2003-02-10 컴포넌트화된 콘텐츠를 유지하기 위한 시스템 및 방법 KR100576487B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US33526102P 2002-02-08 2002-02-08
US60/335,261 2002-02-08
PCT/US2003/003952 WO2003067475A1 (en) 2002-02-08 2003-02-10 System and method for maintaining componentized content

Publications (2)

Publication Number Publication Date
KR20040082419A KR20040082419A (ko) 2004-09-24
KR100576487B1 true KR100576487B1 (ko) 2006-05-10

Family

ID=50072796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047012290A KR100576487B1 (ko) 2002-02-08 2003-02-10 컴포넌트화된 콘텐츠를 유지하기 위한 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100576487B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010045434A3 (en) * 2008-10-15 2010-07-08 Contextweb, Inc. Method and system for displaying internet ad media using etags
KR100971698B1 (ko) 2004-12-24 2010-07-22 한국전자통신연구원 광고들의 조합을 방지하는 방법 및 시스템
WO2010101790A2 (en) * 2009-03-04 2010-09-10 Microsoft Corporation Content rendering on a computer

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594572B1 (ko) * 2004-11-24 2006-06-30 에스케이 텔레콤주식회사 무선인터넷 컨텐츠 품질 관리 방법
KR100600506B1 (ko) * 2004-11-24 2006-07-13 에스케이 텔레콤주식회사 무선 인터넷 컨텐츠 품질 관리 시스템
KR100600679B1 (ko) * 2004-12-07 2006-07-18 에스케이 텔레콤주식회사 무선인터넷 컨텐츠 품질관리를 위한 상/하위 메뉴 검증방법
US20130298012A1 (en) * 2011-01-25 2013-11-07 David Neil Slatter Document Design Capture and Reuse System

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100971698B1 (ko) 2004-12-24 2010-07-22 한국전자통신연구원 광고들의 조합을 방지하는 방법 및 시스템
WO2010045434A3 (en) * 2008-10-15 2010-07-08 Contextweb, Inc. Method and system for displaying internet ad media using etags
WO2010101790A2 (en) * 2009-03-04 2010-09-10 Microsoft Corporation Content rendering on a computer
WO2010101790A3 (en) * 2009-03-04 2011-01-13 Microsoft Corporation Content rendering on a computer
US8347208B2 (en) 2009-03-04 2013-01-01 Microsoft Corporation Content rendering on a computer

Also Published As

Publication number Publication date
KR20040082419A (ko) 2004-09-24

Similar Documents

Publication Publication Date Title
US20050080804A1 (en) System and method for maintaining componentized content
EP2260413B1 (en) Web content management
US8332359B2 (en) Extended system for accessing electronic documents with revision history in non-compatible repositories
JP5367947B2 (ja) 用語データベース拡張のための方法およびシステム
US20060277452A1 (en) Structuring data for presentation documents
US20100036860A1 (en) Data managment apparatus, data editing apparatus, and data reading apparatus and respective methods thereof
KR20010022458A (ko) 컴퓨터 네트워크상의 스토리지 최적 제어 및 컴퓨터프로그램 전송을 위한 시스템 및 그 방법
US10706033B2 (en) Content management system and method for managing ad-hoc collections of content
KR20140065012A (ko) 원격 모듈용 메시지 목록
JP2007102814A (ja) ファイルを定義し管理する方法
WO2015164108A1 (en) Decoupling front end page and back end using tags
US20040225672A1 (en) Method for editing a web site
CN107710202A (zh) 与旧有工具集成的云原生文档
US7058582B2 (en) Method for performing programming by plain text requests
US7836102B2 (en) Method and system for enhancing software documentation and help systems
KR100576487B1 (ko) 컴포넌트화된 콘텐츠를 유지하기 위한 시스템 및 방법
CN107710190B (zh) 使用去耦合的呈现资源来呈现内容
KR20040014671A (ko) 제조 실행 시스템에서 객체 데이터를 익스포트하거나임포트하는 시스템 및 방법
Kolbe et al. 3d city database for citygml
US20070136325A1 (en) Database schema for content managed data
JP5164673B2 (ja) サーバ装置、カタログ処理方法及びプログラム
JP6015546B2 (ja) 情報処理装置、情報処理方法、プログラム
US20060136438A1 (en) Process server array for processing documents and document components and a method related thereto
US8578268B2 (en) Rendering electronic documents having linked textboxes
US6957231B1 (en) System and method of specifying and editing alt attributes

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee