COM 구조화 스토리지

COM Structured Storage

COM Structured Storage(COM 구조화 스토리지 또는 OLE 구조화 스토리지라고도 함)는 단일 파일에 계층 데이터를 저장하기 위해 마이크로소프트윈도우즈 운영 체제의 일부로 개발한 기술입니다.엄밀히 말하면, 구조화 스토리지라는 용어는, 특정의 실장이나 특정의 파일 형식이 아니고, 준거한 실장이 제공할 필요가 있는 COM 인터페이스 세트를 가리킵니다(실제로 구조화 스토리지 실장에서는 데이터를 파일에 보존할 필요는 없습니다).구조화된 스토리지는 데이터의 계층 구조를 제공할 뿐만 아니라 데이터 액세스를 위한 트랜잭션 지원의 제한된 형식을 제공할 수도 있습니다.Microsoft는 트랜잭션을 지원하는 구현과 지원하지 않는 구현(심플 모드 스토리지라고 함)을 제공합니다. 후자의 구현은 다른 측면에서도 제한되지만 성능은 향상됩니다.

구조화 스토리지는 Microsoft Office 어플리케이션에서 널리 사용되고 있지만, 새로운 릴리스(Office 2007 이후)에서는 기본적으로 XML 기반의 Office Open XML이 사용됩니다.또한 COM 및 관련 OLE(Object Linking and Embedding) 테크놀로지 모두에서 중요한 부분입니다.구조화 스토리지의 다른 주목할 만한 애플리케이션으로는 SQL Server, Windows 쉘 및 많은 서드파티 CAD 프로그램이 있습니다.

동기

구조화된 스토리지는 단일 파일에 여러 데이터 개체를 저장하는 데 따르는 몇 가지 고유한 문제를 해결합니다.한 가지 문제는 업데이트로 인해 파일에 유지되는 개체의 크기가 변경될 때 발생합니다.파일을 읽고 쓰는 응용 프로그램이 파일 내의 오브젝트가 일정한 순서로 유지되기를 기대하는 경우, 파일 내의 오브젝트 표현에 이은 모든 것은 오브젝트가 커지면 공간을 확보하기 위해 뒤로 이동하거나 오브젝트가 작아지면 남은 공간을 채우기 위해 앞으로 이동해야 할 수 있습니다.파일이 크면 비용이 많이 드는 작업이 발생할 수 있습니다.물론 이 문제를 해결할 수 있는 방법은 여러 가지가 있지만, 응용 프로그램 프로그래머는 바이너리 파일 형식과 같은 낮은 수준의 세부 사항을 다루기를 원하지 않는 경우가 많습니다.

구조화된 스토리지는 인터페이스로 표현되는 스트림이라고 하는 추상화를 제공합니다.IStream스트림은 개념적으로 파일과 매우 유사합니다.IStreaminterface는 파일 입력/출력과 유사한 읽기 및 쓰기 방법을 제공합니다.구현에 따라 스트림은 메모리, 파일, 다른 스트림 등에 존재할 수 있습니다.또 하나의 중요한 추상화는 인터페이스로 표현되는 스토리지의 추상화입니다.IStorage스토리지는 개념적으로 파일 시스템디렉토리와 매우 유사합니다.스토리지는 스트림뿐만 아니라 다른 스토리지도 포함할 수 있습니다.

응용 프로그램이 여러 데이터 개체를 파일에 유지하려는 경우, 이를 위한 한 가지 방법은 다음과 같습니다.IStorage파일 내용을 나타내며 단일 내에 각 개체를 저장합니다.IStream후자를 실현하기 위한 한 가지 방법은 표준 COM 인터페이스를 사용하는 것입니다.IPersistStream. OLE는 문서 내에 객체를 포함하기 위해 이 모델에 크게 의존합니다.

포맷

Microsoft 의 실장에서는, 복합 파일이라고 불리는 파일 형식을 사용하고 있습니다.또, 널리 전개되고 있는 구조화된 스토리지 실장에서는, 모두 이 형식을 읽고 씁니다.복합 파일은 FAT와 같은 구조를 사용하여 저장소와 스트림을 나타냅니다.섹터라고 불리는 파일 청크는 새로운 스트림을 추가하고 기존 스트림의 크기를 늘리기 위해 필요에 따라 할당됩니다(이러한 청크는 기본 파일 시스템의 섹터에 대응하거나 대응하지 않을 수 있습니다.스트림이 삭제되거나 축소되어 할당되지 않은 섹터가 남아 있는 경우 해당 섹터를 새 스트림에 재사용할 수 있습니다.

다음 응용프로그램은 OLE 구조화 저장소(복합 문서 형식)를 사용합니다.

네이티브 구조화 스토리지

Windows 2000의 베타 테스트 단계에서는 Structured Storage 문서를 저장하기 위한 NSS(Native Structured Storage)라는 이름의 기능이 포함되었습니다(바이너리 Microsoft Office 형식 및thumbs.db Windows 탐색기에서 미리 보기를 캐시하는 데 사용하는 파일)을 참조하십시오. 스트림은 별도의 NTFS 데이터 스트림에 저장된 문서를 구성합니다.여기에는 일반 구조화 스토리지 문서의 스트림을 NTFS 데이터 스트림으로 자동으로 분할하는 유틸리티가 포함되어 있습니다.단, 이 기능은 다른 OS 컴포넌트와의 비호환성으로 인해 베타 3 이후 폐지되었으며, NSS 파일은 자동으로 단일 데이터 스트림 [1]형식으로 변환됩니다.

실장

  • Microsoft 의 경우.네트워크:
    • OpenMCDF – 무료.OLE 구조화 저장소 파일에 액세스하기 위한 NET 구성 요소, MPL 라이센스.
  • Linux의 경우:
  • Windows/MacOSX/Linux용 크로스 플랫폼 C++:
  • Java의 경우:
  • Perl의 경우:
  • JavaScript의 경우:
    • js-cfb – OLE 2 Compound Document 형식의 JavaScript 구현.
  • Python의 경우:
    • compound files : Microsoft Compound File Binary(CFB) 형식의 Python 구현.

레퍼런스

  1. ^ "What is Native Structured Storage?". Archived from the original on 2007-09-27. Retrieved 2007-12-03.

외부 링크