KR101520109B1 - 공유된 스프레드시트의 개인 시트 - Google Patents

공유된 스프레드시트의 개인 시트 Download PDF

Info

Publication number
KR101520109B1
KR101520109B1 KR1020097019064A KR20097019064A KR101520109B1 KR 101520109 B1 KR101520109 B1 KR 101520109B1 KR 1020097019064 A KR1020097019064 A KR 1020097019064A KR 20097019064 A KR20097019064 A KR 20097019064A KR 101520109 B1 KR101520109 B1 KR 101520109B1
Authority
KR
South Korea
Prior art keywords
sheet
personal
server
public
remote
Prior art date
Application number
KR1020097019064A
Other languages
English (en)
Other versions
KR20100015319A (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 KR20100015319A publication Critical patent/KR20100015319A/ko
Application granted granted Critical
Publication of KR101520109B1 publication Critical patent/KR101520109B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Abstract

스프레드시트와 같은 공유 컴퓨터 애플리케이션의 개인 시트가 개시된다. 일 실시예에서, 공용 시트는 제1 클라이언트 및 제2 클라이언트에게 액세스 가능하고, 개인 시트는 제2 클라이언트에게만 액세스 가능하다. 개인 시트는 공용 시트의 콘텐츠를 액세스하도록 구성되지만, 공용 시트는 개인 시트의 콘텐츠에 액세스할 수 없다. 이러한 방식으로, 사용자들은 개인 시트를 한 측에서 계산 및 모델링을 하는데 사용하면서, 공용 시트에서는 다른 사용자들과 협동할 수 있다. 다른 일 실시예에서, 공용 시트에 가해진 변경들은, 그러한 변경들이 개인 시트에 의해 공용 시트의 콘텐츠로 참조되는 경우, 개인 시트에 반영될 수 있다. 그러나, 개인 시트에 가해진 변경들은 공용 시트에 반영되지 않는다. 기타 다수의 다른 특정 실시예들(개인 시트가 공용 시트로부터의 값들을 액세스하지만 공식은 액세스하지 않는 것 등)이 또한 개시된다.
Figure R1020097019064
스프레드 시트, 개인 시트, 공용 시트, 공유 컴퓨터 애플리케이션

Description

공유된 스프레드시트의 개인 시트{PRIVATE SHEETS IN SHARED SPREADSHEETS}
현재 개시되는 청구대상은 컴퓨팅 분야, 보다 구체적으로는 스프레드시트 애플리케이션의 분야에 관한 것이지만, 여기에 한정되지는 않는다.
본 개시의 일부분은 저작권 보호의 대상인 자료를 포함할 수 있다. 저작권의 소유자는 누구든지 특허청의 포대 또는 기록에 나타난 대로 특허 문서 또는 특허 공개를 복제하는 것에 반대하지 않지만, 그렇지 않은 경우에는 모든 저작권을 유지한다. 다음 공지가 본 문서에 적용된다: Copyright ® 2006, 2007 Microsoft Corp.
스프레드시트 애플리케이션은 사용자들이 가정 시나리오(what-if senario) 또는 몇몇 단순한 마이크로-모델링(실제 데이터 내의 정보 검증 등)에 관하여 생각하도록 돕는 빠른 계산을 용이하게 하는 기능을 사용자들에게 제공한다. 사람들이 협동적으로 편집할 수 있도록 하기 위해 스프레드시트가 서버 상에 위치될 때, 그러한 편집은 잠재적으로 서로 간에 모순될 수 있다. 게다가, 사용자들이 실제 데이터의 왼쪽 또는 오른쪽 영역을 메모장(scratch pad)으로 사용하는 것이 일반적이다. 협동할 때, 그 정보 또한 공유되어, 다른 사용자들에게 잠재적인 "노이즈"를 추가한다.
따라서, 스프레드시트의 다른 부분들과 똑같이 동작하지만(계산할 수 있도록 하는 것 등) 워크북의 나머지에게는 보이거나 액세스되지 않는 "개인(private)" 영역을 갖는 것이 이로울 것이다. 나아가, 메모장으로 사용될 수 있는 개인 영역을 가지고, 스프레드시트로 작업하는 권한을 모두 이용하면서도, 나머지 사용자들에게 데이터를 전파시키지 않는 것이 이로울 것이다.
여기에 개시되는 다양한 실시예에서, 시스템, 방법, 컴퓨터 판독가능 매체 등이 공유 컴퓨터 애플리케이션(스프레드시트 등)에 개인 영역(또는 하나의 비-한정적인 예에서, "시트")을 제공하기 위해 개시된다. 예를 들어, 일 실시예에서, 공용 시트는 제1 클라이언트 및 제2 클라이언트에게 액세스 가능하고, 개인 시트는 (제1 및 제2 클라이언트 중) 제2 클라이언트에게만 액세스 가능하다. 개인 시트는 공용 시트의 콘텐츠를 액세스하도록 구성되지만, 공용 시트는 개인 시트의 콘텐츠를 액세스하는 것이 방지된다. 이러한 방식으로, 사용자들은 개인 시트를 한 측에서 계산 및 모델링을 하는데 사용하면서, 공용 시트에서는 다른 사용자들과 협동할 수 있다.
다른 일 실시예에서, 공용 시트에 가해진 변경들은, 그러한 변경들이 개인 시트에 의해 공용 시트의 콘텐츠로 참조되는 경우, 개인 시트에 반영될 수 있다. 예를 들어, 공용 시트에서 변경된 값은, 그러한 값이 개인 시트에 의해 갱신되도록 표시되거나 참조된 경우에는 대응하여 개인 시트에 변경될 것이다. 그러나, 개인 시트에 가해진 변경들은 공용 시트에 반영되지 않는데, 이는 개별 사용자들에 의한 개인적 변경들이 나머지 사용자들에 의한 공공의 협동적인 노력에 영향이 없어야 하기 때문이다.
또 다른 실시예들에서, 공용 시트는 제1 및 제2 클라이언트에게 서비스를 제공하도록 구성되는 서버 상에 상주할 수 있다. 따라서, 각자 개인 시트를 갖는 클라이언트들은 공용 시트를 호스팅하는 서버를 사용하여 협동적인 세션을 수행할 수 있다. 그러나, 선택적으로, 개시되는 청구대상은 피어-투-피어 네트워크(클라이언트-서버 네트워크와 대조적으로)에도 용이하게 구현될 수 있다. 최종 구현이 어떻든지, 다른 세부사항들이 다른 실시예들에 사용될 수 있다. 예를 들어, 개인 시트는 제1 클라이언트에게 액세스 가능하지 않은 것(위의 논의에 따라)에 더해, 제1 클라이언트에게 보이지 않을 수 있다. 애플리케이션에 따라, 공용 시트 및 개인 시트는 동일한 스프레드시트 애플리케이션의 부분일 수 있다. 이러한 이유로, 개인 시트가 공용 시트로부터 값들을 액세스하지만 공식들은 액세스하지 않도록 구성하는 것과 같은 일정한 규칙들이 강제될 수 있다.
본 요약은 이하 상세한 설명에서 추가로 설명되는 단순한 형태의 개념의 선택을 소개하기 위해 제공된다. 본 요약은 청구되는 청구대상의 중요한 특징 또는 본질적인 특징을 식별하도록 의도되지 않았고, 청구되는 청구대상의 범위를 결정하는데 도움을 주는 것으로 사용되도록 의도되지도 않았다.
이전의 요약 및 이하의 상세한 설명은 첨부된 도면들과 함께 읽었을 때 더 잘 이해된다. 본 개시를 설명하기 위해, 본 개시의 다양한 실시예가 도시되었다. 그러나, 본 개시는 도시된 특정 실시예들에 한정되지 않는다. 다음 도면들이 포함된다:
도 1은 클라이언트들이 공통의 만남의 장소(서버 등)를 사용함으로써 애플리케이션에서 협동할 수 있는 종래 기술의 시스템을 도시하는 도면.
도 2는 시트들 내의 셀들이 다양한 참조, 의존성, 및 다른 셀들로의 액세스 포인트를 생성할 수 있는, 도 1의 추가적인 상세 특징을 도시하는 도면.
도 3은 워크북 내의 일부 시트들이 일부 클라이언트에게만 보이고/보이거나 액세스될 수 있고, 다른 클라이언트들에게는 그렇지 않을 수 있다는 것을 도시하는 도면.
도 4는 클라이언트들이 그들 자신의 개인 시트들 및 임의의 공용 시트들에 변경을 가할 수 있지만, 다른 클라이언트들의 개인 시트에는 그럴 수 없다는 것을 도시하는 도면.
도 5는 도 4를 참조하여 논의된 변경들이 어떻게 개인 및 공용 시트들 사이에 영향을 받는지 도시하는 도면으로, 도 5는(특히 도 6과 함께) 그러한 시트들 사이의 영향의 흐름이 어떻게 비대칭적인지 도시하는 도면.
도 6은 도 5에 반해, 개인 시트들의 변경들이 공용 시트들의 콘텐츠에 영향을 주지 않을 수 있다는 것을 도시하는 도면.
도 7은 일반적인 네트워크 환경에서 개인 시트 저장 및 실행의 장소를 도시하는 도면.
도 8은 현재 개시되는 청구대상의 예시적이고 비-한정적인 하나의 실시예를 위해 피어-투-피어 네트워크를 포함하는 시나리오를 도시하는 도면(클라이언트-서버 구조를 갖는 도 1에 도시된 특징에 반해, 현재 개시되는 청구대상의 다른 실시예들에서 사용될 수 있음).
도 9는 현재 개시되는 청구대상의 예시적이고 비-한정적인 하나의 구현을 위한 순서도를 블록도의 형태로 도시하는 도면.
도 10은 현재 개시되는 청구대상의 다양한 실시예와 함께 사용될 예시적인 PC를 도시하는 도면.
도 11은 스프레드시트 애플리케이션이 도 9에 도시된 다수의 PC들 사이에 공유될 수 있는 하나의 예시적인 네트워크 환경을 도시하는 도면.
이 상세한 설명에서, 현재 개시되는 청구대상의 예시적이고 비-한정적인 실시예가 상세하게 고찰된다. 그러나, 스프레드시트의 맥락에서 개인 시트(private sheets)에 초점을 맞추는 이 실시예는 "시트" 또는 "스프레드시트"에 한정되지 않는다. 당업자는 "페이지"와 "워드 프로세싱 프로그램" 또는 "팔레트"와 "드로잉/드래프팅 프로그램" 등도 용이하게 논의될 수 있다고 이해할 것이다. 현재 개시되는 청구대상은 거의 모든 컴퓨터 애플리케이션에 적용될 수 있다. 그러나, 간결성을 위해, 그리고 현재 개시되는 청구 대상을 구체화하기 위해, 스프레드시트의 개인 시트의 다양한 실시예가 아래에서 논의된다.
따라서, 여기서 개시되는 것은 컴퓨터 프로그램(즉, 스프레드시트)의 개인 시트이다. 아래에서 상세하게 논의되는 일 실시예에 의하면, 공용 시트는 제1 클 라이언트 및 제2 클라이언트에게 액세스 가능하다. 게다가, 개인 시트는 제2 클라이언트에게만 액세스 가능하다. 개인 시트는 공용 시트의 콘텐츠를 액세스하도록 구성되지만, 공용 시트는 개인 시트의 콘텐츠를 액세스할 수 없다. 이러한 방식으로, 사용자들은 개인 시트를 한 측에서 계산 및 모델링을 하는데 사용하면서, 공용 시트에서는 다른 사용자들과 협동할 수 있다. 역시 아래에서 상세하게 고찰되는 다른 일 실시예에 의하면, 공용 시트에 가해진 변경들은, 그러한 변경들이 개인 시트에 의해 공용 시트의 콘텐츠로 참조되는 경우, 개인 시트에 반영될 수 있다. 그러나, 개인 시트에 가해진 변경들은 공용 시트에 반영되지 않는다. 기타 다수의 다른 특정 실시예들(개인 시트가 공용 시트로부터의 값들을 액세스하지만 공식들은 액세스하지 않는 것 등)이 또한 개시된다.
스프레드시트의 개인 시트의 특징들
스프레드시트의 맥락에서, 애플리케이션 "워크북"은 하나 이상의 "워크시트"를 포함하는 파일일 수 있는데, 워크시트는 다양한 종류의 관련 정보를 조직하는데 사용될 수 있다. 데이터는 몇몇 워크시트에서 동시에 입력되고 편집될 수 있고, 계산은 하나 이상의 워크시트로부터의 데이터에 기초하여 수행될 수 있다. 예를 들어, 차트가 생성될 때, 차트는 관련 데이터와 동일한 워크시트 또는 별개의 차트 시트 상에 위치될 수 있다. 당업자는 다양한 치환의 일반적인 스프레드시트 프로그램이, "시트" 및 "워크북" 등과 같은 주어진 개념을 가질 수 있다고 쉽게 이해할 것이다.
이제 첫 번째 도면을 보면, 도 1은 클라이언트들이 공통의 만남의 장소(서버 등)를 사용함으로써 애플리케이션에서 협동할 수 있는 종래 기술의 시스템을 도시한다. 구체적으로, 클라이언트 A(100)는 어떤 네트워크(여기에서 고려되는 네트워크의 종류에 관한 광범위한 논의는 이하를 참조)를 통하여 서버(110)와 통신할 수 있다. 이 클라이언트 A(100)는 개인용 컴퓨터(PC)뿐 아니라 임의의 컴퓨팅 장치(핸드헬드, 휴대전화 등)(여기에서 고려되는 컴퓨터 장치의 종류에 관한 광범위한 논의가 아래에 제공된다)일 수 있다는 것에 주목하자.
다른 하나의 클라이언트, 즉, 클라이언트 B(105)도 이 서버(110)와 통신할 수 있다. 따라서, 이러한 방식으로, 클라이언트 A(100) 및 B(105) 모두는 서버(110) 상에서 "만남"으로써 어떤 프로젝트에서 협동할 수 있다. 예를 들어, 클라이언트 A(100) 및 B(105)는 서버(110) 상에서 실행되는 애플리케이션(145) 상에서 협동할 수 있다. 이 애플리케이션(145)은 복수의 워크북 및 이 워크북들의 복수의 시트를 가질 수 있다. 구체적으로, 워크북 A(115)는 시트 C(120) 및 D(125)를 가질 수 있고, 워크북 B(130)는 시트 E(135) 및 F(140)를 가질 수 있다. 클라이언트 A(100) 및 B(105)는 이 워크북들(115, 130) 및 그 안에 있는 시트들(120, 125, 135, 140) 중 임의의 것에서 함께 또는 독립적으로 동작할 수 있다.
더 나아가, 도 2는 도 1의 추가적인 상세 특징을 도시하는데, 여기서 시트들 내의 셀들은 다양한 참조, 의존성, 및 다른 셀들로의 액세스 포인트를 생성할 수 있다. 여기에 사용된 "참조," "의존성," 및 "액세스"라는 용어들은 셀들이 서로 가질 수 있는 다양한 관계를 넓게 의미하는 것으로 이해해야 한다. 예를 들어, 제 1 시트의 하나의 셀 내의 값은 제2 시트 내의 제2 셀의 값에 의존할 수 있다. 유사하게, 셀들은 값들(또는 공식과 같은 다른 콘텐츠)에 대해 다른 셀들을 참조할 수 있다. 아무튼, 당업자는 적절한 맥락에서, 이 용어들이 무엇을 의미하는지 쉽게 이해할 것이다. 다른 말로 하면, 이 용어들은 어떤 특별한 한정적인 의미를 주는 것이 아니고, 반대로 사용자가 일반적으로 컴퓨팅 프로그램(스프레드시트 등)을 사용하면서 관여하는 다양한 시나리오를 포함한다.
다음으로, 도 3은 워크북 내의 일부 시트들이 일부 클라이언트에게만 보이고/보이거나 액세스될 수 있고, 다른 클라이언트들에게는 그렇지 않을 수 있다는 것을 도시한다. 도 3에서, 클라이언트 A(100)는 시트 C(120)를 보고/보거나 액세스할 수 있다. 이 시트(120)는 다른 클라이언트들에 의해 보이고/보이거나 액세스될 수 있기 때문에 "공용 시트"이다. 시트들은 (1) 보이거나 보이지않고/보이지않거나 (2) 액세스되거나 액세스되지 않을 수 있다는 것에 주목하자. 전자의 시나리오에서, 다른 사용자들이 개인 시트들을 볼 수 있게 하지만(그러한 개인 시트들이 존재한다는 것을 보지만 사용자들이 그 콘텐츠를 읽게 허용하지는 않는 의미) 액세스(예를 들어, 편집)할 수는 없게 하는 것은, 이들을 처음부터 보여주지 않는 것만큼 유용하지는 않을 수 있지만, 사용자의 필요에 따라 그 정도는 구현의 상세사항이다. 후자의 시나리오에서, "액세스"는 적어도 데이터를 판독 및/또는 기록하는 기능을 수반하는 것으로 이해된다. 그러나, 이는 또한 다른 셀들로부터 값들 및/또는 공식들을 획득할 수 있다는 것을 의미하기도 한다(그러나 이에 제한되지는 않음).
시트 C(120)에 반해, 시트 D(125)는 클라이언트 B(105)에 의하여만 보이고/보이거나 액세스 가능하다. 사실, 시트 C(120) 및 시트 D(125) 모두는 클라이언트 B(105)에게 보이고/보이거나 액세스 가능하다. 그러나, 클라이언트 A(100)는 시트 C(120) 만을 보고/보거나 액세스할 수 있다. 점선들(300, 305)은 이러한 개념을 도시하는 것인데, 안쪽의 점선(300)은 클라이언트 A(100)의 시야 및/또는 액세스를 시트 C(120)로 한정하고, 바깥쪽의 점선(105)은 클라이언트 B(105)가 시트들(120, 125)을 모두 보고/보거나 액세스하도록 허용한다.
다음으로, 도 4는 클라이언트들이 그들 자신의 개인 시트들 및 임의의 공용 시트들에 변경을 가할 수 있지만, 다른 클라이언트들의 개인 시트에는 그럴 수 없다는 것을 도시한다. 도 4에서, 클라이언트 A(100)는 클라이언트 A(100)의 개인 시트인 시트 G(145)에(추가적으로 공용 시트 C(120)에) 변경들(즉, 기록과 같은 변경)을 가할 수 있다. 유사하게, 클라이언트 B(105)는 그 자신의 개인 시트 D(125) 및 공용 시트 C(120)에 변경을 가할 수 있다. 그러나, 클라이언트 A(100)는 클라이언트 B(105)의 개인 시트 D(125)에는 변경들을 가할 수 없으며, 클라이언트 B(105)는 클라이언트 A(100)의 개인 시트 G(145)에는 변경을 가할 수 없다. 물론, 위의 논의에 대해, 그러한 제한은 변경에만 적용되는 것이 아니고, 클라이언트들이 단지 다른 클라이언트들의 개인 페이지들을 판독하는 기능, 또는 심지어 다른 클라이언트들이 처음부터 개인 페이지를 가진다는 지식에까지 적용될 수 있다. 시트들(145, 125)에 대한 보안 및 프라이버시의 수준은 사용자 및/또는 시스템 및/또는 애플리케이션 상세에 따라 설정될 수 있다. 아무튼, 점선의 박스들(400, 405)은 이전과 마찬가지로 클라이언트들이 동작할 수 있는 범위를 정하기 위한 것이다: 클라이언트 A(100)는 시트 G(145) 및 C(120) 상에서 동작할 수 있고, 클라이언트 B(105)는 시트 C(120) 및 D(125) 상에서 동작할 수 있다.
개인 시트들은 존속하거나 존속하지 않을 수 있다는 점에도 주목하자. 다른 말로 하면, 개인 시트들은 사용자들이 특정 작업, 세션, 또는 워크북의 사용을 끝냈을 때 삭제되는 진정한 메모장일 수 있다. 반면, 개인 시트들은 유지되고 해당 워크북의 구성 부분으로 통합되기에 충분할 정도로 중요하거나 관련이 있다고 여겨질 수도 있다.
다음으로, 도 5는 도 4를 참조하여 논의된 변경들이 어떻게 개인 및 공용 시트들 사이에 영향을 받는지 도시하는 도면으로, 도 5는(특히 도 6과 함께) 그러한 시트들 사이의 영향의 흐름이 어떻게 비대칭적인지 도시한다. 이는, 예를 들어, 공용 시트들의 변경들이 개인 페이지들로 퍼지는 것이 바람직한 경우 그렇게 퍼질 수 있지만, 개인 시트들의 변경들은 공용 시트들로 퍼지지 않을 수 있다는 것을 의미한다. 도 5는 워크북 A(115)의 공용 시트 C(120) 내의 셀 A(500)이 그 범위 내의 다른 하나의 셀(즉, 마찬가지로 시트 C(120) 내에 있는 셀 B(505))에 어떤 영향을 줄 수 있다는 것(화살표 [1]로 도시됨)을 도시한다. 만약 셀 B(505)이 셀A(500)에 의해 영향을 받는다면, 이어서 도 5는 개인 시트 내의 셀 C(510)도 셀 B(505)에 의해 영향을 받을 수 있다는 것(화살표 [2]로 도시됨)을 도시한다. 예를 들어, 이는 셀 C(510)이 그 값에 대해 셀 B(505)를 참조하는 경우에 일어날 수 있다.
하나의 구체적인 시나리오를 제공하기 위해, 셀 A(500)는 "100"(도시 생략)의 초기값을 가질 수 있고, 셀 B(505)는 이값을 가지고 두 배를 하여 "200"을 얻을 수 있으며, 나아가 셀 C(510)는 이값을 가지고 어떤 다른 값("1"이라 하자)을 더해 "201"이라는 최종 결과를 얻을 수 있다. 이제, 만약 셀 A(500)가 그 값을, 말하자면 "10"으로 변경하면, 셀 B(505)는 그에 따라 그 값을 "20"으로 변경할 것이고, 셀 C(510)는 그 값을 "21"로 변경할 것이다. 여기서 포인트는, 공용 시트(시트 C(120) 등)의 변경들이 일부 개인 시트들(시트 D(125) 등)의 값에 영향을 미칠 수 있다는 것(그렇지만 다른 개인 시트들(시트 G(145) 등)에는 영향을 주지 않는다는 것)이다.
도 5에 반해, 도 6은 개인 시트들의 변경들이 공용 시트들의 콘텐츠에 영향을 주지 않을 수 있다는 것을 도시한다. 따라서, 어떤 사용자의 개인 시트일 수 있는 시트 G(145)는 공용 시트들(시트 C(120) 등)에 영향을 주지 않는 것(또는 데이터를 변경하는 기능을 갖지 않는 것)으로 도시되어 있다. 유사하게, 시트 C(120) 상에서 협동하는 다른 사용자들로부터의 다른 개인 시트들(시트 D(125)) 또한 시트 C(120)의 콘텐츠를 변경하지 못한다. 그렇게 하는 다양한 이유가 있을 수 있는데, 하나는 공용 공간(120)의 데이터가 복수의 사용자들 중 하나의 사용자만이 액세스할 수 있는 장소(145, 125)에서의 변경의 영향을 받아서는 안 되기 때문이다. 아무튼, "X"가 있는 화살표들(-X-> 및 <-X-)은 이 개념을 시각적으로 도시하기 위한 것이다. 이 맥락에서 구현되지 않도록 방지되는 변경들의 종류는 값들만이 아니라 공식들도 포함할 수 있다.
현재 개시되는 청구대상의 다른 일 실시예에서, 도 7은 일반적인 네트워크 환경에서 개인 시트 저장 및 실행의 장소를 도시한다. 도 1을 참조하여 이미 논의된 바와 같이, 일반적인 협동 시나리오에서는, 복수의 클라이언트가 어떤 프로젝트에 대해 협동할 수 있도록 하는 서버가 존재할 수 있다. 개인 시트들의 도입(공용 시트들에 추가로)에 따라, 그러한 개인 시트들이 어디에 저장되고 실행되어야 하는지에 대한 의문이 생긴다. 하나의 시나리오에서, 그러한 개인 시트들은 클라이언트들 상에서 로컬로 저장 및/또는 실행되고, 임의의 공용 시트들은 서버 측에 저장된다.
이제 도 7을 보면, 개인 시트인 시트 G(145)가 사용자를 위한 로컬 컴퓨팅 장치(720)인 클라이언트 A(700)에 저장되어 있는(또는 상주하고/상주하거나 실행되는) 것을 볼 수 있다. 유사하게, 개인 시트 D(125)는 다른 사용자를 위한 로컬 컴퓨팅 장치(720)인 클라이언트 B(710)에 저장되어 있다(또는 상주하고/상주하거나 실행된다). 임의의 협동하는 사용자들 사이에 공유되는 컴퓨팅 장치(725)(즉, 서버(705))는 임의의 공용 시트들(시트 C(120) 등)을 저장 및/또는 실행한다. 따라서, 요컨대, 이 실시예에서, 개인 시트들은 로컬 컴퓨팅 장치들(클라이언트들)에 저장 및/또는 실행되고, 공용 시트들은 공유 컴퓨팅 장치들(서버들)에 저장 및/또는 실행된다.
그러나, 이것이 현재 개시되는 청구대상의 바람직한 실시예일 수 있을지라도, 개인 시트들이 공유 컴퓨팅 장치들에도 저장되는 것을 쉽게 상상할 수 있다(그러한 시나리오에서는, 사용자들이 다른 사용자들의 개인 시트들을 보고/보거나 변 경할 수 없도록 보장하기 위해 안전 메커니즘이 구현되어야 할 것이다). 게다가, 피어-투-피어 네트워크에서, 서버들이 협동을 위한 만남의 장소로 사용되지 않을 것이므로, 공용 시트들은 엄밀히 말해 로컬 컴퓨팅 장치들에 저장될 것이다(서버들은 분명 라우팅/게이트웨이 용량에 사용될 수 있다).
사실, 도 8은 현재 개시되는 청구대상의 예시적이고 비-한정적인 하나의 실시예를 위한 피어-투-피어 네트워크를 포함하는 시나리오를 도시한다(클라이언트-서버 구조를 갖는 도 1에 도시된 특징에 반해, 현재 개시되는 청구대상의 다른 실시예들에서 사용될 수 있다). 도 8에서, 개인 시트 G(145)는 피어 컴퓨팅 장치 A(800)에 상주/실행될 수 있고, 개인 시트 D(125) 및 공용 시트 C(120)는 모두 피어 컴퓨팅 장치 B(805)에 상주/실행될 수 있다. 물론, 당업자는 현재 개시되는 개인 시트/공용 시트 청구대상에 대한 다른 구조적 시나리오(클라이언트-서버 및 피어-투-피어 시나리오 외)를 쉽게 인식할 것이다. 예를 들어, 하이브리드 피어-투-피어 구성이 사용될 수 있는데, 여기서 중앙 서버는 피어들에 대한 정보를 유지하고 그 정보에 대한 요청들에 응답하지만, 피어들이 이용가능한 자원들의 호스팅을 담당하여(중앙 서버가 이용가능한 자원들을 가지지 않기 때문에), 피어들이 공유하고자 하는 자원들을 중앙 서버가 알게끔 하고, 이를 요청하는 피어들에게 공유가능한 자원들이 이용가능하게 한다.
도 9는 현재 개시되는 청구대상의 예시적이고 비-한정적인 하나의 구현을 위한 순서도를 블록도 형태로 도시한다. 블록(900)에서 시작하여, 서버 상의 공용 시트가 유지되는데, 여기서 공용 시트는 제1 클라이언트 및 제2 클라이언트에게 액 세스 가능하다. 이어서, 블록(905)에서, 개인 시트가 제2 클라이언트에 유지되는데, 여기서 개인 시트는 제1 클라이언트와 제2 클라이언트 중 제2 클라이언트에게만 액세스 가능하고, 개별 시트는 공용 시트의 콘텐츠를 액세스하도록 구성되지만, 공용 시트는 개인 시트의 콘텐츠를 액세스하는 것이 방지된다. 이는 개인 및 공용 시트들 사이에 비대칭적인 액세스 가능성으로 여겨질 수 있다.
다음으로, 블록(910)에서, 공용 시트에 가해진 변경들은, 그러한 변경들이 개인 시트에 의해 공용 시트 내의 콘텐츠로 참조되는 경우, 개인 시트에 갱신된다(그러나 위에서 상세하게 설명된 바와 같이 그 역은 성립하지 않는다). 이 시나리오는 위에서 이미 도 5를 참조하여 논의되었는데, 여기서 공용 시트들의 변경들은, 그러한 변경들이 셀 수준에서 참조되었기 때문에 개인 시트들로 퍼진다. 예를 들어, 공용 시트의 셀 X의 변경은 개인 시트의 셀 Y에 갱신될 수 있는데, 이는 개인 시트 셀 값이 공용 시트 값에 의존할 수 있기 때문이다. 일부 실시예에서, 그러한 참조는 값들에만 한정되고, 다른 실시예들에서는 공식들을 포함할 수 있다. 또 다른 실시예들에서, 공식들은 명시적으로 배제될 수 있다(즉, 개인 시트들은 그러한 공용 시트로부터의 값들에 액세스할 수 있지만, 공식들에는 액세스할 수 없다).
개인 시트에 가해진 임의의 변경은 공용 시트로 퍼지는 것이 방지될 수 있다고 이미 언급되었다. 이 개념은 블록(910)에 공용 시트에 가해진 변경들"만"을 갱신함(그러나 그 역은 아님)에 의해 표현된다. 이러한 유지 및 갱신의 일반적인 메커니즘은, 블록(910)으로부터 블록(900)으로 되돌아가는 피드백 화살표에 의해 도시된 바와 같이 계속해서 수행될 수 있다. 마지막으로, 공용 시트 및 개인 시트는 스프레드시트 애플리케이션의 부분으로서 호스팅될 수 있지만, 위에 설명된 바와 같이, 그러한 호스팅은 스프레드시트 애플리케이션에 한정되지 않고, 사실 임의의 기타 컴퓨팅 애플리케이션(페이지를 갖는 워드 프로세싱 프로그램, 또는 팔레트를 갖는 드로잉 프로그램 등)에 열려 있다.
스프레드 시트와 사용하기 위한 예시적인 PC 및 네트워킹 특징들
이어서, 도 10으로 넘어가면, 위에서 개시된 청구대상을 구현하는데 사용되기에 적합한 예시적인 컴퓨팅 장치를 나타내는 블록도가 도시되어 있다. 예를 들어, 스프레드시트에 개인 시트들을 제공하기 위한 프로세스 및 방법을 실행하는 컴퓨터 실행가능 명령어들은 도 10에 도시된 것과 같은 컴퓨팅 환경에 상주 및/또는 실행될 수 있다. 컴퓨팅 시스템 환경(220)은 적합한 컴퓨터 환경의 단지 하나의 예이고, 현재 개시되는 청구대상의 사용 또는 기능의 범위에 관해 어떠한 한정도 제시하도록 의도되지 않았다. 컴퓨팅 환경(220)은 예시적인 동작 환경(220)에 도시된 임의의 구성요소 또는 구성요소들의 조합에 관한 어떠한 의존성 또는 요구사항을 갖는 것으로 해석되지 않아야 한다.
현재 개시되는 청구대상의 특징들은 다수의 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경 또는 구성으로 동작할 수 있다. 본 청구대상에 사용하기에 적합할 수 있는 종래의 컴퓨팅 시스템, 환경, 및/또는 구성의 예들은 개인용 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레 임 컴퓨터, 상기 시스템 또는 장치 중 임의의 것을 포함하는 분산 컴퓨팅 환경 등을 포함하지만, 이에 한정되지는 않는다.
현재 개시되는 청구대상의 특징들은 프로그램 모듈과 같이 컴퓨터에 의해 실행되는 컴퓨터-실행가능 명령어들의 일반적인 맥락으로 구현될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 구성요소, 데이터 구조 등을 포함한다. 현재 개시되는 청구대상의 특징들은 또한 작업들이 통신 네트워크를 통해 연결된 원격 프로세싱 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 컴퓨터 저장 매체(메모리 저장 장치를 포함함) 모두에 위치될 수 있다.
현재 개시되는 청구대상의 특징들을 구현하기 위한 예시적인 시스템은 컴퓨터(241)의 형태로 범용 컴퓨팅 장치를 포함한다. 컴퓨터(241)의 구성요소들은 프로세싱 유닛(259), 시스템 메모리(222), 및 시스템 메모리를 포함하는 다양한 시스템 구성요소를 프로세싱 유닛(259)에 연결하는 시스템 버스(221)를 포함할 수 있지만, 이에 한정되지는 않는다. 시스템 버스(221)는 버스 구조들의 몇몇 종류들 중의 임의의 것일 수 있는데, 이는 메모리 버스 또는 메모리 제어기, 주변장치 버스, 및 다양한 버스 구조 중 임의의 것을 사용하는 로컬 버스를 포함한다. 한정이 아닌 예시의 방법으로, 그러한 구조들은 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌 버스(Mezzanine bus)라 고도 알려진 PCI(Peripheral Component Interconnect) 버스를 포함한다.
컴퓨터(241)는 일반적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(241)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있고, 휘발성 및 비휘발성 매체, 이동식 및 비-이동식 매체를 포함한다. 한정이 아닌 예시의 방법으로, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 이동식 및 비-이동식 매체를 모두 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD 또는 기타 광학 디스크 저장소, 자기 카세트, 자기 테이프, 자기 디스크 장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨터(241)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되지는 않는다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 변조된 데이터 신호(반송파(carrier wave) 또는 기타 전송 메커니즘 등)로 포함하고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 하나 이상의 특성 세트(characteristics set)를 갖거나 신호 안에 정보를 인코딩하는 방식으로 변경된 신호를 의미한다. 한정이 아닌 예시의 방법으로, 통신 매체는 유선 매체(유선 네트워크 또는 직접 유선 연결 등) 및 무선 매체(어쿠스틱, RF, 적외선 및 기타 무선 매체 등)를 포함한다. 상기의 임의의 매체의 조합 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(222)는 ROM(223) 및 RAM(260)과 같은 휘발성 및/또는 비휘발성 메모리의 형태로 컴퓨터 저장 매체를 포함한다. 시작 과정 등에서 컴퓨터(241) 내의 요소들 사이에 정보 전달을 돕는 기본 루틴들을 포함하는 BIOS(224)는 일반적으로 ROM(223)에 저장된다. RAM(260)은 일반적으로 프로세싱 유닛(259)에게 즉시 액세스될 수 있고/있거나 프로세싱 유닛(259)에 의해 현재 동작되는 데이터 및/또는 프로그램 모듈을 포함한다. 한정의 아닌 예시의 방법으로, 도 10은 운영체제(225), 애플리케이션 프로그램(226), 기타 프로그램 모듈(227), 및 프로그램 데이터(228)를 도시한다.
컴퓨터(241)는 또한 기타 이동식/비-이동식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 예시적일 뿐인 방법으로, 도 10은 비-이동식, 비휘발성 자기 매체에 기록하거나 판독하는 하드디스크 드라이브(238), 이동식, 비휘발성 자기 디스크(254)에 기록하거나 판독하는 자기 디스크 드라이브(239), 및 이동식, 비휘발성 광학 디스크(253)(CD-ROM 또는 기타 광학 매체 등)에 기록하거나 판독하는 광학 디스크 드라이브(240)를 도시한다. 예시적인 동작 환경에서 사용될 수 있는 기타 이동식/비-이동식, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하지만, 이에 한정되지는 않는다. 하드디스크 드라이브(238)는 일반적으로 비-이동식 메모리 인터페이스(인터페이스(234) 등)를 통해 시스템 버스(221)에 연결되고, 자기 디스크 드라이브(239) 및 광학 디스크 드라이브(240)는 일반적으로 이동식 메모리 인터페이스(인터페이스(235) 등)를 통해 시스템 버스(221)에 연결된 다.
위에서 논의되었고 도 10에 도시된 드라이브 및 관련 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터(241)를 위한 기타 데이터의 저장을 제공한다. 도 10에는, 예를 들어, 하드디스크 드라이브(238)가 운영체제(258), 애플리케이션 프로그램(257), 기타 프로그램 모듈(256), 프로그램 데이터(255)를 저장하는 것으로 도시되어 있다. 이 구성요소들은 운영체제(225), 애플리케이션 프로그램(226), 기타 프로그램 모듈(227), 및 프로그램 데이터(228)와 동일하거나 상이할 수 있다. 운영체제(258), 애플리케이션 프로그램(257), 기타 프로그램 모듈(256), 프로그램 데이터(255)에는 적어도 그들이 서로 다른 카피라는 것을 도시하기 위해 서로 다른 번호가 주어졌다. 사용자는 키보드(251) 및 포인팅 장치(252)(일반적으로 마우스, 트랙볼 또는 터치 패드라고 불림)와 같은 입력 장치를 통해 컴퓨터(241)로 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)는 마이크, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이러한 입력 장치 및 기타 입력 장치들은 종종 시스템 버스에 연결된 사용자 입력 인터페이스(236)를 통해 프로세싱 유닛(259)에 연결되지만, 병렬 포트, 게임 포트 또는 USB와 같은 기타 인터페이스 및 버스 구조에 의해 연결될 수 있다. 모니터(242) 또는 다른 종류의 디스플레이 장치가 또한 인터페이스(비디오 인터페이스(232) 등)를 통해 시스템 버스(221)에 연결된다. 모니터에 더해, 컴퓨터는 스피커(244) 및 프린터(243)와 같은 기타 출력 주변장치들을 포함할 수도 있는데, 이들은 출력 주변장치 인터페이스(233)를 통해 연결된다.
컴퓨터(241)는 원격 컴퓨터(246)와 같은 하나 이상의 원격 컴퓨터로의 논리 연결을 사용하여 네트워킹된 환경에서 동작할 수 있다. 원격 컴퓨터(246)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 일반적인 네트워크 노드일 수 있고, 도 10에는 메모리 저장 장치(247)만이 도시되어 있지만, 일반적으로 위에서 컴퓨터(241)에 관해 설명된 요소들의 전부나 대부분을 포함한다. 도 10에 도시된 논리 연결은 LAN(245), WAN(249)을 포함하지만, 다른 네트워크들도 포함할 수 있다. 그러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적이다.
LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(241)는 네트워크 인터페이스 또는 어댑터(237)를 통해 LAN(245)에 연결된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(241)는 일반적으로 모뎀(250) 또는 기타 WAN(249)(인터넷 등) 상의 통신을 설정하기 위한 수단을 포함한다. 내부장치 또는 외부장치일 수 있는 모뎀(250)은 사용자 입력 인터페이스(236) 또는 기타 적합한 메커니즘을 통해 시스템 버스(221)에 연결될 수 있다. 네트워킹된 환경에서, 컴퓨터(241)에 관해 도시된 프로그램 모듈, 또는 그 일부는 원격 메모리 저장 장치에 저장될 수 있다. 한정이 아닌 예시의 방법으로, 도 10은 원격 애플리케이션 프로그램(248)을 메모리 장치(247)에 상주하는 것으로 도시한다. 도시된 네트워크 연결은 예시적이며, 컴퓨터들 사이의 통신 링크를 설정하기 위한 다른 수단이 사용될 수 있다고 이해될 것이다.
여기에 설명된 다양한 기술은 하드웨어 또는 소프트웨어, 또는 적합한 경우 이들의 조합으로 구현될 수 있다. 따라서, 현재 개시되는 청구대상의 방법 또는 기구, 또는 그 일부 특징 또는 부분은 유형의 매체에 포함되는 프로그램 코드(즉, 명령어)의 형태를 취할 수 있는데, 유형의 매체는 플로피 디스켓, CD-ROM, 하드드라이브, 또는 임의의 머신-판독가능 저장 매체 등일 수 있고, 프로그램 코드가 머신(컴퓨터 등)에 의해 로딩되고 실행되었을 때 머신은 현재 개시되는 청구대상을 실시하기 위한 기구가 된다. 프로그램 가능한 컴퓨터 상에서의 프로그램 코드 실행의 경우, 컴퓨팅 장치는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비-휘발성 메모리 및/또는 저장 요소들을 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함한다. 하나 이상의 프로그램이, 예를 들어, API 또는 재사용가능 콘트롤 등의 사용을 통해 현재 개시되는 청구대상에 관해 설명된 프로세스를 구현하거나 이용할 수 있다. 그러한 프로그램은 컴퓨터 시스템과 통신하기 위해 바람직하게는 고레벨의 절차적 또는 객체 지향적 프로그래밍 언어로 구현된다. 그러나, 프로그램(들)은 바람직한 경우에는 어셈블리 또는 머신 언어로 구현될 수 있다. 어떤 경우든, 언어는 컴파일되거나 인터프리팅된 언어일 수 있고, 하드웨어 구현과 조합될 수 있다.
예시적인 실시예들은 현재 개시되는 청구대상의 특징들을 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 이용하는 것을 말할 수 있지만, 상기 청구대상은 그렇게 한정적인 것은 아니고, 임의의 컴퓨팅 환경(네트워크 또는 분산 컴퓨팅 환경)과 관련하여 구현될 수 있다. 더 나아가, 현재 개시되는 청구대상의 특징들은 복수의 프로세싱 칩 또는 장치에 걸쳐 또는 이들 안에 구현될 수 있고, 저장은 복수 의 장치에 걸쳐 유사하게 이루어질 수 있다. 그러한 장치는 개인용 컴퓨터, 네트워크 서버, 핸드헬드 장치, 슈퍼컴퓨터, 또는 자동차 및 비행기와 같은 기타 시스템에 통합되는 컴퓨터를 포함할 수 있다.
도 10에 제공된 일반적인 프레임워크에 따라 만들어질 수 있는 다양한 컴퓨팅 환경을 고려하여, 여기에 제공된 시스템 및 방법은 특정 컴퓨팅 구조에 어떠한 방법으로도 한정되는 것으로 해석될 수 없다. 대신, 현재 개시되는 청구대상은 어떤 하나의 실시예에 한정되어서는 안 되고, 첨부된 특허청구범위에 따른 범위로 해석되어야 한다.
마지막으로, 도 11을 참조하면, 많은 컴퓨터화된 프로세스들이 위에서 설명된 프로세스를 수행하도록 구현될 수 있는 예시적인 네트워킹된 컴퓨팅 환경이 도시되어 있다. 즉, 이 네트워크 환경은 사용자로 하여금 위에서 논의된 다양한 프로젝트에서 협동할 수 있도록 한다. 예를 들어, 병렬 컴퓨팅은 도 11의 네트워크 상의 다양한 클라이언트가 풍부한 구조화된 타입(rich structured type)으로부터 검색 속성들의 플랫 리스트(flat list)의 정의 및 추출을 사용 및/또는 구현하는 그러한 네트워킹된 환경의 부분일 수 있다. 당업자는 네트워크가 임의의 컴퓨터 또는 기타 클라이언트 또는 서버 장치를 연결할 수 있고, 또는 분산 컴퓨팅 환경으로 연결할 수 있다는 것을 이해할 것이다. 이 점에서, 임의 개수의 프로세싱, 메모리, 또는 저장 유닛, 및 동시에 발생하는 임의 개수의 애플리케이션 및 프로세스를 가진 임의의 컴퓨터 시스템 또는 환경은 제공된 시스템 및 방법과 함께 사용하기에 적합하다고 여겨진다.
분산 컴퓨팅은 컴퓨팅 장치들 및 시스템들 사이의 교환에 의해 컴퓨터 자원 및 서비스의 공유를 제공한다. 이 자원 및 서비스는 정보, 캐시 저장소 및 파일을 위한 디스크 저장소의 교환을 포함한다. 분산 컴퓨팅은 클라이언트들이 전체 기업을 이롭게 하는 집합적인 힘을 이용할 수 있도록 하여, 네트워크 연결성의 장점을 갖는다. 이 점에서, 다양한 장치는 여기에 설명된 프로세스를 포함할 수 있는 애플리케이션, 오브젝트 또는 자원을 가질 수 있다.
도 11은 예시적인 네트워크 또는 분산 컴퓨팅 환경의 개략도를 제공한다. 환경은 컴퓨팅 장치들(271, 272, 276, 및 277)뿐 아니라 오브젝트들(273, 274, 및 275), 및 데이터베이스(278)를 포함한다. 이 엔티티들(271, 272, 273, 274, 275, 276, 277 및 278)의 각각은 프로그램, 방법, 데이터 저장, 프로그램가능 로직 등을 포함하거나 이용할 수 있다. 엔티티들(271, 272, 273, 274, 275, 276, 277 및 278)은 동일 또는 상이한 장치(PDA, 오디오/비디오 장치, MP3 플레이어, 개인용 컴퓨터 등)의 부분들을 채울(span) 수 있다. 각각의 엔티티(271, 272, 273, 274, 275, 276, 277 및 278)는 다른 엔티티(271, 272, 273, 274, 275, 276, 277 및 278)와 통신 네트워크(270)를 통하여 통신할 수 있다. 이 점에서, 임의의 엔티티가 데이터베이스(278) 또는 기타 저장 요소의 유지 및 갱신을 담당할 수 있다.
이 네트워크(270)는 도 3의 시스템에 서비스를 제공하는 다른 컴퓨팅 엔티티들을 그 자체로 포함할 수 있고, 다수의 상호연결된 네트워크를 그 자체로 나타낼 수 있다. 현재 개시되는 청구대상의 일 실시예에 의하면, 각각의 엔티티(271, 272, 273, 274, 275, 276, 277 및 278)는 하나 이상의 다른 엔티티(271, 272, 273, 274, 275, 276, 277 및 278)의 서비스를 요청하기 위해 API, 또는 기타 오브젝트, 소프트웨어, 펌웨어 및/또는 하드웨어를 이용할 수 있는 개별 기능적 프로그램 모듈을 포함할 수 있다.
오브젝트(오브젝트(275) 등)는 다른 컴퓨터 장치(276)에 호스팅될 수 있다고 이해될 수 있다. 따라서, 도시된 물리적 환경은 연결된 장치들을 컴퓨터로 도시할 수 있지만, 그러한 도시는 단지 예시적인 것이며, 물리적 환경은 선택적으로 다양한 디지털 장치(PDA, 텔레비전, MP3 플레이어 등), 소프트웨어 오브젝트(인터페이스 등), COM 오브젝트 등을 포함하는 것으로 도시되거나 설명될 수 있다.
분산 컴퓨팅 환경을 지원하는 다양한 시스템, 구성요소, 및 네트워크 구성이 존재한다. 예를 들어, 컴퓨팅 시스템은 유선 또는 무선 시스템에 의해, 로컬 네트워크 또는 넓게 분산된 네트워크에 의해 서로 연결될 수 있다. 현재, 많은 네트워크가 인터넷에 연결되는데, 이는 넓게 분산된 컴퓨팅에 대한 기반구조를 제공하며 많은 상이한 네트워크를 포함한다. 임의의 그러한 기반구조는, 인터넷에 연결되든 되지 않든, 제공되는 시스템 및 방법과 함께 이용될 수 있다.
네트워크 기반구조는 클라이언트/서버, 피어-투-피어, 또는 하이브리드 구조와 같은 네트워크 토폴로지의 호스트를 가능하게 할 수 있다. "클라이언트"는 관련되지 않은 다른 집단 또는 그룹의 서비스를 사용하는 집단 또는 그룹의 구성원일 수 있다. 컴퓨팅에서, 클라이언트는 다른 프로그램에 의해 제공되는 서비스를 요청하는 프로세스(즉, 대략 한 세트의 명령어 또는 작업)이다. 클라이언트 프로세스는 다른 프로그램 또는 서비스 자신의 세부적인 동작을 "알" 필요 없이 요청된 서비스를 이용한다. 클라이언트/서버 구조(특히 네트워킹된 시스템)에서, 클라이언트는 보통 다른 컴퓨터(예를 들어, 서버)에 의해 제공되는 공유 네트워크 자원에 액세스하는 컴퓨터이다. 도 11의 예에서, 임의의 엔티티(271, 272, 273, 274, 275, 276, 277 및 278)는 환경에 따라 클라이언트, 서버, 또는 양쪽 모두로 고려될 수 있다.
서버는 필수적인 것은 아니지만 일반적으로 원격 또는 로컬 네트워크(인터넷 등)를 통해 액세스 가능한 원격 컴퓨터 시스템이다. 클라이언트 프로세스는 제1 컴퓨터 시스템에서 동작할 수 있고, 서버 프로세스는 제2 컴퓨터 시스템에서 동작할 수 있는데, 이들은 통신 매체를 통해 서로 통신하여, 분산된 기능을 제공하고 다수의 클라이언트가 서버의 정보-수집 기능(information-gathering capabilities)을 이용할 수 있도록 한다. 임의의 소프트웨어 오브젝트가 다수의 컴퓨팅 장치 또는 오브젝트들에 걸쳐 분산될 수 있다.
클라이언트(들) 및 서버(들)는 프로토콜 레이어(들)에 의해 제공되는 기능을 이용하여 서로 통신한다. 예를 들어, HTTP(HyperText Transfer Protocol)은 WWW(World Wide Web) 또는 "웹"에서 사용되는 일반적인 프로토콜이다. 일반적으로, 인터넷 프로토콜(IP) 주소와 같은 컴퓨터 네트워크 주소 또는 URL(Universal Resource Locator)과 같은 기타 레퍼런스가 서버 또는 클라이언트 컴퓨터를 서로에게 식별하는데 사용될 수 있다. 네트워크 주소는 URL 주소라고 불릴 수 있다. 통신은 통신 매체를 통하여 제공될 수 있는데, 즉, 클라이언트(들) 및 서버(들)는 고-용량 통신을 위한 TCP/IP 통신(들)을 통해 서로 연결될 수 있다.
도 11에 제공되는 일반적인 프레임워크에 따라 만들어질 수 있는 다양한 컴퓨팅 환경 및 도 11의 것과 같은 네트워크 환경의 컴퓨팅에서 발생할 수 있는 추가적인 다양화를 고려하여, 여기에 제공되는 시스템 및 방법은 특정 컴퓨팅 구조 또는 운영체제에 어떤 방법으로도 제한되도록 해석될 수 없다. 대신, 현재 개시되는 청구대상은 어떤 하나의 실시예에 한정되어서는 안 되고, 첨부된 특허청구범위에 따른 범위로 해석되어야 한다.
마지막으로, 여기에 설명된 다양한 기술은 하드웨어 또는 소프트웨어, 또는 적합한 경우 이들의 조합으로 구현될 수 있다. 따라서, 현재 개시되는 청구대상의 방법, 컴퓨터 판독가능 매체, 및 시스템, 또는 그 일부 특징 또는 부분은 유형의 매체에 포함되는 프로그램 코드(즉, 명령어)의 형태를 취할 수 있는데, 유형의 매체는 플로피 디스켓, CD-ROM, 하드드라이브, 또는 임의의 머신-판독가능 저장 매체 등일 수 있고, 프로그램 코드가 머신(컴퓨터 등)에 의해 로딩되고 실행되었을 때 머신은 청구대상을 실시하기 위한 기구가 된다.
프로그램 가능한 컴퓨터 상에서의 프로그램 코드 실행의 경우, 컴퓨팅 장치는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비-휘발성 메모리 및/또는 저장 요소들을 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함한다. 본 발명의 도메인-특정 프로그래밍 모델 특징들의 생성 및/또는 구현을 (예를 들어, 데이터 프로세싱 API 등의 사용을 통해) 이용할 수 있는 하나 이상의 프로그램은 바람직하게는 컴퓨터 시스템과 통신하기 위해 고레벨의 절차적 또는 객체 지향적 프로그래밍 언어로 구현된다. 그러나, 프로그램 (들)은 바람직한 경우에는 어셈블리 또는 머신 언어로 구현될 수 있다. 어떤 경우든, 언어는 컴파일되거나 인터프리팅된 언어일 수 있고, 하드웨어 구현과 조합될 수 있다.
마지막으로, 본 개시는 다양한 도면에 도시된 바람직한 실시예들과 함께 설명되었지만, 다른 유사한 실시예들이 사용될 수 있거나, 본 개시의 범위를 벗어나지 않고 본 개시와 동일한 기능을 수행하기 위해 설명된 실시예들에 변경 또는 추가가 이루어질 수 있다. 예를 들어, 본 개시의 다양한 실시예에서, 스프레드시트의 개인 시트가 논의되었다. 그러나, 이 설명된 실시예들과 동등한 다른 메커니즘들도 여기의 교시에 의해 생각될 수 있다. 그러므로, 본 개시는 어떤 하나의 실시예에 한정되어서는 안 되고, 첨부된 특허청구범위에 따른 범위로 해석되어야 한다.

Claims (20)

  1. 서버로서,
    상기 서버 상에 유지되는 공용 시트 및 제1 개인 시트를 포함하는 스프레드시트 워크북을 포함하되,
    상기 공용 시트는 상기 서버에 의해 수신되는 제1 원격-발신 요청(remotely-originated request)에 응답하여 판독 및 기록 접근성(accessibility)을 제공하고,
    상기 공용 시트는 상기 서버에 의해 수신되는 제2 원격-발신 요청에 응답하여 판독 및 기록 접근성을 제공하고,
    상기 제1 개인 시트는 상기 서버에 의해 수신되는 상기 제2 원격-발신 요청에 응답하여 판독 및 기록 접근성을 제공하고,
    상기 제1 개인 시트는 상기 서버에 의해 수신되는 상기 제1 원격-발신 요청에 응답하여 판독 및 기록 접근성을 거부하고,
    상기 제2 원격-발신 요청을 통해 상기 제1 개인 시트에 가해진 변경은 상기 공용 시트에 반영되지 않고,
    상기 공용 시트에 가해진 변경은 상기 제1 개인 시트에 반영될 수 있는
    서버.
  2. 제1항에 있어서,
    상기 공용 시트 내의 제1 셀을 상기 제1 개인 시트 내의 제2 셀이 참조하는 경우, 상기 공용 시트 내의 상기 제1 셀에 포함된 값(value)으로서 상기 제1 셀과 연관된 공식(formula)이 아닌 것을 상기 제1 개인 시트 내의 상기 제2 셀에서 액세스할 수 있도록, 상기 제1 개인 시트가 상기 공용 시트 내의 값에는 액세스하되 공식에 액세스하는 것은 배제되며,
    상기 공용 시트에 가해진 변경은, 그러한 변경이 상기 제1 개인 시트에 의해 상기 공용 시트 내의 콘텐츠로 참조되는 경우, 상기 제1 개인 시트에 반영되는
    서버.
  3. 제1항에 있어서,
    상기 제1 개인 시트는 메모장(scratch pad)이고, 상기 메모장은 상기 공용 시트가 상기 메모장의 콘텐츠에 액세스하는 것을 방지하도록 구성되는
    서버.
  4. 제1항에 있어서,
    상기 제1 원격-발신 요청은 제1 클라이언트 장치로부터 발신되고, 상기 제2 원격-발신 요청은 제2 클라이언트 장치로부터 발신되며, 상기 서버는 상기 제1 클라이언트 장치 및 상기 제2 클라이언트 장치로 네트워크를 통해 서비스를 제공하는
    서버.
  5. 제3항에 있어서,
    상기 메모장은 협동적 애플리케이션의 종료시 삭제되는 비-지속적 메모장인
    서버.
  6. 제1항에 있어서,
    상기 서버 상에 상기 스프레드시트 워크북의 일부로서 제2 개인 시트가 유지되고, 상기 제2 개인 시트는 상기 제1 원격-발신 요청을 통해서만 액세스할 수 있고 상기 제2 원격-발신 요청을 통해서는 액세스할 수 없는
    서버.
  7. 제4항에 있어서,
    상기 제1 개인 시트는 상기 제1 클라이언트 장치에서 액세스할 수 없는 것에 더해, 상기 제1 클라이언트 장치에게 보이지 않는(invisible)
    서버.
  8. 제1항에 있어서,
    상기 공용 시트 및 상기 제1 개인 시트는 동일한 스프레드시트 애플리케이션 파일의 일부인
    서버.
  9. 공용 시트 및 개인 시트를 포함하는 스프레드시트 워크북을 서버 상에 유지하는 단계를 포함하는 방법으로서,
    상기 공용 시트는 상기 공용 시트의 편집을 협동적 작업의 일부로서 수행하도록 상기 서버에 의해 수신되는 제1 및 제2 원격-발신 요청 각각을 통해 판독 및 기록 액세스를 제공하는 편집 가능한 시트이고,
    상기 개인 시트는 상기 서버에 의해 수신되는 상기 제2 원격-발신 요청을 통해서만 액세스할 수 있고 상기 서버에 의해 수신되는 제1 원격-발신 요청을 통해서는 액세스할 수 없으며,
    상기 공용 시트에 가해진 변경은 상기 개인 시트에 반영될 수 있고,
    상기 개인 시트에 가해진 변경은 상기 공용 시트에 반영되지 않는
    방법.
  10. 제9항에 있어서,
    상기 공용 시트 내의 제1 셀을 상기 개인 시트 내의 제2 셀이 참조하는 경우, 상기 공용 시트 내의 상기 제1 셀에 포함된 값으로서 상기 제1 셀과 연관된 공식이 아닌 것을 상기 개인 시트 내의 상기 제2 셀에서 액세스할 수 있도록, 상기 개인 시트가 상기 공용 시트 내의 값에는 액세스하되 공식에 액세스하는 것은 배제되며,
    상기 방법은, 상기 공용 시트에 가해진 변경이 상기 개인 시트에 의해 상기 공용 시트 내의 콘텐츠로 참조되는 경우, 그러한 변경을 상기 개인 시트에 갱신하는(updating) 단계를 더 포함하는
    방법.
  11. 제9항에 있어서,
    상기 개인 시트에 가해진 임의의 변경을 갱신하는 것이 상기 공용 시트에서의 변경에 영향을 미치는 것을 방지하는 단계
    를 더 포함하는 방법.
  12. 제9항에 있어서,
    상기 제1 원격-발신 요청은 제1 클라이언트 장치로부터 발신되고, 상기 제2 원격-발신 요청은 제2 클라이언트 장치로부터 발신되며,
    상기 방법은, 상기 개인 시트가 상기 제1 클라이언트에게 보이는 것을 방지하는 단계를 더 포함하는
    방법.
  13. 제9항에 있어서,
    상기 공용 시트 및 상기 개인 시트를 적어도 하나의 스프레드시트 애플리케이션의 일부로서 호스팅하는 단계
    를 더 포함하는 방법.
  14. 삭제
  15. 컴퓨팅 시스템 상에 상주하는 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령어는 공용 시트 및 개인 시트를 포함하는 스프레드시트 워크북을 제1 컴퓨팅 장치 상에 유지하는 제1 명령어를 포함하되,
    상기 공용 시트는 상기 제1 컴퓨팅 장치 상의 상기 공용 시트의 수정을 협동적 작업의 일부로서 수행하도록 상기 제1 컴퓨팅 장치에 의해 수신되는 제1 및 제2 원격-발신 요청 각각을 통해 편집할 수 있고,
    상기 공용 시트에 가해진 변경은 상기 개인 시트에 반영될 수 있으며,
    상기 개인 시트에 가해진 변경은 상기 공용 시트에 반영되지 않고,
    상기 공용 시트 내의 제1 셀을 상기 개인 시트 내의 제2 셀이 참조하는 경우, 상기 공용 시트 내의 상기 제1 셀에 포함된 값으로서 상기 제1 셀과 연관된 공식이 아닌 것을 상기 개인 시트 내의 상기 제2 셀에서 액세스할 수 있도록, 상기 개인 시트가 상기 공용 시트 내의 값에는 액세스하되 공식에 액세스하는 것은 배제되는
    컴퓨터 판독가능 저장 매체.
  16. 제15항에 있어서,
    상기 공용 시트에 가해진 변경이 상기 개인 시트에 의해 상기 공용 시트 내의 콘텐츠로 참조되는 경우, 그러한 변경을 상기 개인 시트에 갱신하는 제2 명령어
    를 더 포함하는 컴퓨터 판독가능 저장 매체.
  17. 제16항에 있어서,
    상기 개인 시트에 가해진 임의의 변경을 갱신하는 것이 상기 공용 시트에서의 변경에 영향을 미치는 것을 방지하는 제3 명령어
    를 더 포함하는 컴퓨터 판독가능 저장 매체.
  18. 제15항에 있어서,
    상기 제1 컴퓨팅 장치는 서버이고,
    상기 제1 원격-발신 요청은 제1 클라이언트 장치로부터 발신되며,
    상기 제2 원격-발신 요청은 제2 클라이언트 장치로부터 발신되고,
    상기 컴퓨터 판독가능 저장 매체는
    상기 서버에 의해 수신되는 제2 원격-발신 요청에 응답해서는 상기 개인 시트에 대한 판독 및 기록 접근성을 제공하되, 상기 서버에 의해 수신되는 제1 원격-발신 요청에 응답해서는 판독 및 기록 접근성을 거부하는 제2 명령어와,
    상기 개인 시트가 상기 제1 클라이언트 장치에 보이는 것을 방지하는 제3 명령어
    를 더 포함하는
    컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서,
    상기 공용 시트 및 상기 개인 시트를 적어도 하나의 스프레드시트 애플리케이션의 일부로서 호스팅하도록 허용하는 제4 명령어
    를 더 포함하는 컴퓨터 판독가능 저장 매체.
  20. 제3항에 있어서,
    상기 메모장은 협동적 애플리케이션의 종료시 상기 스프레드시트 워크북 내로 통합되는
    서버.
KR1020097019064A 2007-03-15 2008-02-28 공유된 스프레드시트의 개인 시트 KR101520109B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/724,988 US20080229184A1 (en) 2007-03-15 2007-03-15 Private sheets in shared spreadsheets
US11/724,988 2007-03-15
PCT/US2008/055310 WO2008112442A1 (en) 2007-03-15 2008-02-28 Private sheets in shared spreadsheets

Publications (2)

Publication Number Publication Date
KR20100015319A KR20100015319A (ko) 2010-02-12
KR101520109B1 true KR101520109B1 (ko) 2015-05-18

Family

ID=39759906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097019064A KR101520109B1 (ko) 2007-03-15 2008-02-28 공유된 스프레드시트의 개인 시트

Country Status (6)

Country Link
US (1) US20080229184A1 (ko)
EP (1) EP2130134A4 (ko)
JP (1) JP5075922B2 (ko)
KR (1) KR101520109B1 (ko)
CN (1) CN101632073B (ko)
WO (1) WO2008112442A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048368A (ko) * 2017-10-31 2019-05-09 최재호 공유폴더 파일 관리 장치 및 방법

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10133719B2 (en) * 2007-09-28 2018-11-20 Microsoft Technology Licensing, Llc Spreadsheet workbook part libraries
US8006175B2 (en) * 2007-10-29 2011-08-23 Microsoft Corporation Calculation of spreadsheet data
US20090135444A1 (en) * 2007-11-26 2009-05-28 Steven Francis Best Method to protect sensitive data fields stored in electronic documents
US9721030B2 (en) * 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
KR102022094B1 (ko) * 2012-08-14 2019-09-17 삼성전자주식회사 콘텐트를 수정하는 전자 장치 및 방법
US9286285B1 (en) 2012-10-30 2016-03-15 Google Inc. Formula editor
US10372808B1 (en) * 2012-12-12 2019-08-06 Google Llc Passing functional spreadsheet data by reference
US9311289B1 (en) 2013-08-16 2016-04-12 Google Inc. Spreadsheet document tab conditional formatting
US9875226B1 (en) 2013-12-20 2018-01-23 Google Llc Performing server-side and client-side operations on spreadsheets
US9959265B1 (en) 2014-05-08 2018-05-01 Google Llc Populating values in a spreadsheet using semantic cues
CN105311030B (zh) * 2014-06-06 2020-03-24 正大天晴药业集团股份有限公司 用于抗肿瘤的螺取代化合物
KR102194923B1 (ko) * 2014-07-22 2020-12-24 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법
US20160110321A1 (en) * 2014-10-17 2016-04-21 Karol Kalisz Application customization through linked embedded areas
US9798889B1 (en) 2015-08-12 2017-10-24 Workday, Inc. Spreadsheet shared region and cell permissions
US10552530B1 (en) * 2015-08-12 2020-02-04 Workday, Inc. Spreadsheet shared region and cell formula templating
US10789378B1 (en) 2015-08-12 2020-09-29 Workday, Inc. User interface for region and cell sharing
US10572584B1 (en) * 2015-08-12 2020-02-25 Workday, Inc. Spreadsheet region and cell sharing
US10642991B2 (en) * 2016-10-14 2020-05-05 Google Inc. System level virtual reality privacy settings
US10445523B2 (en) 2016-10-14 2019-10-15 Google Llc Information privacy in virtual reality
CN112883696A (zh) * 2021-02-03 2021-06-01 维沃移动通信有限公司 表单填写方法、表单分享方法、装置、设备及存储介质
US20230259590A1 (en) * 2022-02-13 2023-08-17 Uab 360 It Automating discovery of patentable subject matter

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496870B1 (en) * 1997-01-31 2002-12-17 Sun Microsystems, Inc. System, method and article of manufacture for collaboration with an application
US20040148290A1 (en) * 2000-05-02 2004-07-29 International Business Machines Corporation Method, system and program product for private data access or use based on related public data
KR20060046285A (ko) * 2004-06-01 2006-05-17 마이크로소프트 코포레이션 데이터 소스로서 워크북 범위를 노출하기 위한 방법,시스템 및 장치
WO2006095365A2 (en) * 2005-03-11 2006-09-14 Suresh Sambandam A system and method of defining a hierarchical datamodel and related computation and instruction rules using spreadsheet like user interface

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255356A (en) * 1989-05-31 1993-10-19 Microsoft Corporation Method for hiding and showing spreadsheet cells
US5253362A (en) * 1990-01-29 1993-10-12 Emtek Health Care Systems, Inc. Method for storing, retrieving, and indicating a plurality of annotations in a data cell
US5293615A (en) * 1990-11-16 1994-03-08 Amada Carlos A Point and shoot interface for linking database records to spreadsheets whereby data of a record is automatically reformatted and loaded upon issuance of a recalculation command
GB2303946A (en) * 1995-07-29 1997-03-05 Ibm Data conferencing system
US6157934A (en) * 1995-10-24 2000-12-05 Ultimus, L.L.C. Method and apparatus for using distributed spreadsheets in a client/server architecture for workflow automation
US6006239A (en) * 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US6920443B1 (en) * 1999-09-21 2005-07-19 International Business Machines, Corporation Method, system, program, and data structure for transforming database tables
AU2001236901A1 (en) * 2000-02-11 2001-08-20 David A Keeney Jr. Method and system for distributing and collecting spreadsheet information
US6341292B1 (en) * 2000-05-30 2002-01-22 Outlooksoft Corporation Spreadsheet-based network information exchange with two-part cache
WO2002005065A2 (en) * 2000-07-11 2002-01-17 Juice Software, Inc. A method and system for integrating network-based functionality into productivity applications and documents
US6988241B1 (en) * 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US8255791B2 (en) * 2000-11-29 2012-08-28 Dov Koren Collaborative, flexible, interactive real-time displays
US20020143831A1 (en) * 2001-03-28 2002-10-03 Bennett Paul W. System and method for calculation using spreadsheet lines and vertical calculations in a single document
US7353252B1 (en) * 2001-05-16 2008-04-01 Sigma Design System for electronic file collaboration among multiple users using peer-to-peer network topology
US20020188629A1 (en) * 2001-05-21 2002-12-12 Burfoot Daniel C. System, protocol, and methods for the creation of distributed spreadsheets
US7272816B2 (en) * 2002-07-31 2007-09-18 Sap Aktiengesellschaft Transformations between private and shared workflows
US20040103365A1 (en) * 2002-11-27 2004-05-27 Alan Cox System, method, and computer program product for an integrated spreadsheet and database
US7523395B1 (en) * 2003-05-30 2009-04-21 Oracle International Corporation Web application generator for spreadsheet calculators
US8127366B2 (en) * 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US20090235087A1 (en) * 2004-06-24 2009-09-17 Geoffrey David Bird Security for Computer Software
US20060010118A1 (en) * 2004-07-09 2006-01-12 Juergen Sattler System and method for role-based spreadsheet data integration
US7213199B2 (en) * 2004-07-16 2007-05-01 Cognos Incorporated Spreadsheet user-interface for an enterprise planning system having multi-dimensional data store
US7991804B2 (en) * 2004-07-30 2011-08-02 Microsoft Corporation Method, system, and apparatus for exposing workbooks as data sources
US8578399B2 (en) * 2004-07-30 2013-11-05 Microsoft Corporation Method, system, and apparatus for providing access to workbook models through remote function cells
US9009582B2 (en) * 2004-11-19 2015-04-14 Google Inc. Converting spreadsheet applications to web-based applications
US20070220415A1 (en) * 2006-03-16 2007-09-20 Morgan Mao Cheng Excel spreadsheet parsing to share cells, formulas, tables or entire spreadsheets across an enterprise with other users
US20070219956A1 (en) * 2006-03-16 2007-09-20 Milton Michael L Excel spreadsheet parsing to share cells, formulas, tables, etc.
US8307119B2 (en) * 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496870B1 (en) * 1997-01-31 2002-12-17 Sun Microsystems, Inc. System, method and article of manufacture for collaboration with an application
US20040148290A1 (en) * 2000-05-02 2004-07-29 International Business Machines Corporation Method, system and program product for private data access or use based on related public data
KR20060046285A (ko) * 2004-06-01 2006-05-17 마이크로소프트 코포레이션 데이터 소스로서 워크북 범위를 노출하기 위한 방법,시스템 및 장치
WO2006095365A2 (en) * 2005-03-11 2006-09-14 Suresh Sambandam A system and method of defining a hierarchical datamodel and related computation and instruction rules using spreadsheet like user interface

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048368A (ko) * 2017-10-31 2019-05-09 최재호 공유폴더 파일 관리 장치 및 방법
KR102024527B1 (ko) 2017-10-31 2019-11-04 최재호 공유폴더 파일 관리 장치 및 방법

Also Published As

Publication number Publication date
WO2008112442A1 (en) 2008-09-18
JP2010521743A (ja) 2010-06-24
US20080229184A1 (en) 2008-09-18
CN101632073A (zh) 2010-01-20
EP2130134A1 (en) 2009-12-09
CN101632073B (zh) 2013-06-19
KR20100015319A (ko) 2010-02-12
EP2130134A4 (en) 2017-11-22
JP5075922B2 (ja) 2012-11-21

Similar Documents

Publication Publication Date Title
KR101520109B1 (ko) 공유된 스프레드시트의 개인 시트
US10191898B2 (en) Representation of people in a spreadsheet
US11416676B2 (en) Using text messages to interact with spreadsheets
KR101608103B1 (ko) 구조화된 공동 저작
US7454462B2 (en) Distributed computing services platform
US8082308B1 (en) Online collaboration and planning system transparently integrated with e-mail
US8805774B2 (en) Method and system for role based situation aware software
US20130073621A1 (en) Enforcing communication policy rules on shared documents
US10331907B2 (en) User photo handling and control
US20130080545A1 (en) Automatic access settings based on email recipients
US20090055415A1 (en) Dynamic and versatile notepad
US8631316B2 (en) Systems and methods for generating sitelets using information assets
US8195792B2 (en) Interfacing distinct services for providing web based document manipulation access
MX2014006002A (es) Habilitacion de caracteristicas de servicio dentro de aplicaciones de productividad.
Wei et al. A behavior-aware profiling of smart contracts
US8984425B2 (en) Web service user experience without upfront storage expense
Calancea et al. A SwarmESB Based Architecture for an European Healthcare Insurance System in Compliance with GDPR
Cho et al. An approach to privacy enhancement for access control model in web 3.0
US10176155B2 (en) Modifying a document graph to reflect information relating to a document it represents
Campbell-Verduyn The Distributions of Distributed Governance: Power, Instability and Complexity in Polycentric Data Ordering
Gouvas et al. Computer Security Security and Cryptology: ESORICS 2020 International Workshops, DETIPS, DeSECSys, MPS, and SPOSE, Guildford, UK, September 17-18, 2020, Revised Selected Papers
Macfadyen In a world of text, is the author king? The revolutionary potential of Wiki (open content) technologies
Meinel et al. Continent of Corporate-Blogs: Use Case–SAP Blog
Enterprise et al. Software+ Services
Arias et al. RESOURCES RELATIONSHIPS IN THE DESIGN OF COLLABORATIVE WEB APPLICATIONS

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee