Inside SharePointOffice 응용 프로그램 통합

Pav Cherny

목차

Office 응용 프로그램 통합
SharePoint UI 확장
Office OpenDocuments 컨트롤 사용
SharePoint와 통신
사용자 지정 OpenControl 솔루션 구현
요약

Microsoft Windows SharePoint Services(WSS) 3.0과 Microsoft Office SharePoint Server(MOSS) 2007은 2007 Microsoft Office system의 데스크톱 응용 프로그램과 완벽하게 통합되어 문서, 스프레드시트, 일정, 연락처 정보 등에 대한 공동 작업의 효율성을 향상시킵니다.실제로 완벽하게 통합이 이루어지기 때문에

2007 Office system은 하나의 통합된 사무용 솔루션 플랫폼이라 할 수 있습니다.

따라서 정보 근로자의 생산성을 높이기 위해 Microsoft® Office 기술에 역점을 두고 있는 조직에 안성맞춤입니다.그러나 상이한 포트폴리오의 Office 응용 프로그램을 구축한 조직에서는 동일한 수준의 상호 운용성을 즉시 이용할 수는 없습니다.2007 Office system은 필요한 통합 기능을 제공하지만, 인터페이스와 구성 요소가 모든 상황에서 작동하지는 않으며 관련 설명서도 최소한으로 제공됩니다.이로 인해 타사 공급업체는 SharePoint® 기술을 자신의 응용 프로그램에 통합하기가 쉽지 않으며 해당 고객들이 정보 근로자들에게 통합된 환경을 제공하는 것은 더욱 더 어렵습니다.

이 칼럼에서 필자는 Office 응용 프로그램과 SharePoint를 통합하고 서로 통신하는 방법을 소개하는 한편, 동일한 방법을 통해 타사 응용 프로그램과 SharePoint를 통합하는 방법에 대해서도 설명하고자 합니다.먼저 완벽한 통합을 구현하는 데 사용되는 서버 구성 설정, 클라이언트 쪽 구성 요소 및 통신 프로토콜에 대해 간략히 살펴보겠습니다.

그런 다음 SharePoint의 기본 지원 기능 없이 이루어지는 응용 프로그램 통합에 대해 살펴보겠습니다.이러한 과정에서 필자는 SharePoint 서버에서 검색 기능을 확장하고 사용자 지정 아이콘을 추가할 수 있도록 IFilter 구성 요소 구현에 중점을 두는 일반적인 수준과는 다른 접근 방법을 사용할 것입니다.적절한 아이콘을 이용해 검색을 확장하고 결과를 반환한다고 해서 응용 프로그램이 완벽하게 통합되는 것은 아닙니다. 또한 사용자는 SharePoint 사용자 인터페이스 내에서 직접 이러한 문서를 열어야 할 수도 있습니다.

이것은 매우 복잡한 양상으로 나타납니다.워크스테이션에 Office를 배포하지 않은 경우에는 즉시 이용할 수 없는 클라이언트 쪽 구성 요소가 필요할 수 있습니다.그러나 Office를 배포했더라도 SharePoint의 사이트 토폴로지와 구성에 따라서는 이 구성 요소가 안정적으로 작동하지 않는 경우도 있을 수 있습니다.

이러한 문제를 해결하기 위해 필자는 Office 배포 요구 사항 없이 메모장, Adobe Reader 또는 Autodesk AutoCAD 등 응용 프로그램을 통합할 수 있는 사용자 지정 솔루션을 만들었습니다.또한 이러한 사용자 지정 솔루션을 통해 표준 Office 구성 요소를 기반으로 한 응용 프로그램 통합이 상황에 따라 실패하는 이유를 설명할 수 있습니다..com의 코드 다운로드 섹션에서 얻을 수 있는 이 칼럼의 첨부 자료에서 이 솔루션은 물론, 단계별 배포 및 구성 지침도 확인할 수 있습니다.

Office 응용 프로그램 통합

사용자 입장에서 볼 때 SharePoint 메뉴는 Windows® 시작 메뉴와 비슷하게 작동하는 것처럼 보입니다.문서 라이브러리에서 새 문서를 작성하는 것은 간단합니다.새로 만들기를 클릭하고 새 문서를 클릭하면 Microsoft Office Word 2007이 시작됩니다.기존 문서를 편집하는 것도 마찬가지로 간단합니다.문서에 마우스를 놓고 ECB(편집 컨트롤 상자) 드롭다운 메뉴를 연 다음 Word에서 편집을 클릭합니다.사용자는 JavaScript를 통해 웹 페이지에서 Word 2007을 시작했고, SQL Server® 데이터베이스에서 멀리 떨어진 위치에 해당 문서가 있는 상태에서 응용 프로그램을 로컬로 실행하고 있으며, 웹 서버는 그림 1과 같이 데이터 액세스 경로 내에 존재한다는 사실을 잊어버리기 쉽습니다.

fig01.gif

그림 1 SharePoint에서 Word 문서로 작업 (더 크게 보려면 이미지를 클릭하십시오.)

이러한 복잡성에도 불구하고 2007 Office system이 설치된 Windows 워크스테이션에서 사용자는 원활한 작업을 수행할 수 있습니다.SharePoint 라이브러리에서 여러 문서로 작업하는 일은 로컬 파일 또는 네트워크 공유상의 파일로 작업하는 것과 상당히 비슷합니다.

그러나 Office 2003 또는 2007 Office system이 설치되어 있지 않은 Windows 워크스테이션의 경우 UI에는 차이가 있습니다.새 문서 또는 Word에서 편집을 클릭하면 Windows SharePoint Services 호환 응용 프로그램을 사용할 수 없다는 내용의 대화 상자가 나타납니다.

이것은 결코 놀라운 것이 아닙니다.Office 사용자들이 이용하는 통합된 환경을 제공하기 위해 함께 작동해야 할 몇 가지 요소가 있습니다.SharePoint에서는 새로 만들기 및 ECB 메뉴에서 원하는 명령을 실행할 수 있도록 문서 라이브러리에서 유지되는 콘텐츠 형식을 알고 있어야 합니다.이들 명령을 마우스로 클릭하면 JavaScript 코드가 실행되어 연결된 응용 프로그램을 시작한 후 문서 경로를 따라 이동해야 합니다.이 부분은 워크스테이션 구성과 상관없이 독립적으로 진행되지는 않는데 그 이유는 JavaScript 코드가 로컬로 실행되기 때문입니다.그뿐만 아니라 연결된 응용 프로그램은 파일을 읽고 쓰기 위해 SharePoint와 통신해야 합니다.이것은 SharePoint와 응용 프로그램을 통합하려는 경우 함께 고려해야 할 요소들입니다.

반면에 SharePoint와 데이터베이스 서버 간 통신은 응용 프로그램에는 드러나지 않게 수행되고, 검색 효율성을 높이기 위한 웹 서버상의 인덱싱 프로세스도 마찬가지로 투명하게 실행됩니다.따라서 본 칼럼에서는 이러한 측면들을 자세히 다루지는 않지만, Microsoft 기술 자료 문서 "Windows SharePoint Services 3.0에 Microsoft Filter Pack을 등록하는 방법"(support.microsoft.com/kb/946338)에 설명된 Microsoft Filter Pack 관련 내용을 살펴보는 것이 좋습니다.이제 명령 추가, 필요한 클라이언트 쪽 구성 요소 구현 및 응용 프로그램 통신 효율화에 대해 더 자세히 살펴보겠습니다.

SharePoint UI 확장

SharePoint의 사용자 인터페이스와 기능을 확장하는 데 사용할 수 있는 옵션은 매우 많습니다.사이트 디자인을 변경하고 ASP.NET 페이지를 사용자 지정하며 웹 파트를 개발하거나 WSS 및 MOSS에 포함된 JavaScript 코드를 변경하여 응용 프로그램을 직접 시작할 수 있습니다.

텍스트 편집기에서 Ows.js 파일을 열고(이 파일은 사용 중인 SharePoint 프런트 엔드 서버의 COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\Template\Layouts\1033 폴더에서 확인할 수 있음) createNewDocumentWithProgIDCore, editDocumentWithProgIDNoUI 및 DispDocItem 함수가 작동하는 방식을 얼마든지 변경할 수 있습니다.다만 지원되지 않는 방식으로 WSS 코드 베이스를 변경할 필요가 없는 더 좋은 방법도 있는데 바로콘텐츠 형식와 문서 형식 매핑을 사용하는 방법이 그것입니다.

"사용자 지정 콘텐츠 형식을 이용한 데이터 관리의 표준화"(2008년 2월호 TechNet Magazine, technet.microsoft.com/magazine/cc194408.aspx 참조) 칼럼에서 필자는 SharePoint 문서 라이브러리와 목록에서 다양한 문서 및 기타 콘텐츠를 관리하기 위해 전역 및 사이트별 콘텐츠 형식을 작성하는 방법을 설명했습니다.또한 이 칼럼의 첨부 자료에서 Text Content Type.pdf 워크시트를 확인할 수도 있는데, 이 자료에서는 .txt 파일을 위한 새로운 콘텐츠 형식을 작성해 이 콘텐츠 형식을 문서 라이브러리와 연결하는 방법에 대해 설명합니다.그 결과, Word 문서에 대해 문서 명령을 사용하는 것과 마찬가지로 새로 만들기 메뉴에서 텍스트 콘텐츠 명령을 선택할 수 있습니다(그림 2 참조).

fig02.gif

그림 2 SharePoint UI의 사용자 지정 콘텐츠 형식 (더 크게 보려면 이미지를 클릭하십시오.)

ECB 메뉴도 마찬가지로 확장이 가능합니다.사용자들은 ECB 메뉴에서 콘텐츠 형식이 인식될 것으로 기대할 수도 있지만 이는 최신 WSS 버전에서 이 메뉴를 구현하는 방식은 아닙니다.대신 사용자는 Docicon.xml에서 해당 문서 형식을 등록해야 합니다(Docicon.xml 파일은 모든 SharePoint 프런트 엔드 서버의 %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\Template\Xml 폴더에서 확인할 수 있습니다).

예를 들어 Docicon.xml의 <ByExtension> 섹션에 다음과 같은 문서 형식 매핑을 추가하면 SharePoint에서는 메모장에서 편집 명령을 표시합니다(자세한 지침은 Text Content Type.pdf 파일 참조).

<Mapping Key="text" Value="ictxt.gif" 
  EditText="Notepad"
  OpenControl="SharePoint.OpenDocuments"/>

Key 매개 변수는 파일 이름 확장명을 나타내고, Value 매개 변수는 사용자 인터페이스에 표시할 문서 아이콘을 정의하며, EditText 매개 변수는 SharePoint가 "다음 응용 프로그램에서 편집" 명령에 추가하는 문자열을 정의하고, OpenControl 매개 변수는 클라이언트 쪽 COM 구성 요소의 ProgID를 지정합니다.이것은 SharePoint JavaScript 함수가 COM 개체를 인스턴스화하기 위한 ActiveXObject 호출로 전달하는 ProgID이며(자세한 내용은 Ows.js 참조), 여기서 COM 개체는 그 자체가 응용 프로그램이거나 연결된 파일 형식을 기반으로 응용 프로그램을 시작하는 도우미 컨트롤일 수 있습니다.

SharePoint 제품 및 기술 웹 사이트

SharePoint.OpenDocuments라는 이름의 OpenControl은 최신 버전의 Office와 함께 제공되는 ActiveX® 컨트롤(%PROGRAMFILES%\Microsoft Office\Office12\Owssupp.dll)을 가리킨다는 사실에 유의하십시오.이 파일이 사용자의 워크스테이션에 존재하며 지정된 문서 아이콘(Value 매개 변수)이 사용자의 SharePoint 서버에 있는 %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\Template\Images 폴더에 있을 경우 필요한 통합 작업은 대부분 완료된 것으로 볼 수 있습니다.

Windows SharePoint Services 3.0 SDK에는 OpenDocuments 컨트롤을 비롯하여 2007 Office system과 함께 제공되는 클라이언트 쪽 API에 관한 몇 가지 정보가 포함되어 있습니다.자세한 내용은 msdn2.microsoft.com/ms440037의 "클라이언트 쪽 API 참조" 섹션을 참조하십시오.

Office OpenDocuments 컨트롤 사용

OpenDocuments 컨트롤은 중요한 응용 프로그램 통합 작업의 대부분 처리하지만 Office 2003 또는 2007 Office system이 있어야 하며 그 기능은 다소 제한됩니다.새로 만들기 메뉴에 있는 명령들은 항상 작동하는 것은 아니며 간혹 사용자가 오해할 수도 있는 내용을 표시하기도 합니다.

그림 3에서 볼 수 있는 것처럼 OpenDocuments 컨트롤은 필수 응용 프로그램이 제대로 설치되지 않았거나 서식 파일을 열 수 없다는 것을 사용자에게 알려 줍니다.다음 응용 프로그램에서 편집 기능에도 몇 가지 문제가 있습니다.그림 3의 포그라운드에 표시되는 두 번째 오류 메시지는 자주 볼 수 있습니다.이 메시지는 필자도 늘 경험하는 것인데 그 이유는 SharePoint 전문가들조차도 오해하게 되기 때문입니다. 잠시 후 이 메시지에 대해 자세히 설명하기로 하겠습니다.

fig03.gif

그림 3 OpenDocuments 컨트롤의 잘못된 오류 메시지 (더 크게 보려면 이미지를 클릭하십시오.)

그럼에도 불구하고 OpenDocuments 컨트롤은 모든 워크스테이션에 최신 버전의 Office가 설치된 환경에서 유용하게 사용할 수 있습니다.무엇보다도, 문서 라이브러리 설정을 표시하고 새로 만들기 단추 순서 및 기본 콘텐츠 형식 변경을 클릭한 다음, 문제가 되는 모든 콘텐츠 형식에 대해 표시 확인란의 선택을 취소하는 방법을 사용하여 새로 만들기 메뉴에서 콘텐츠 형식을 숨길 수 있기 때문에 사용자들에게는 첫 번째 오류 메시지가 표시되지 않게 됩니다.또한 사이트 토폴로지를 간단하게 유지하여 WebDAV(Web-based Distributed Authoring and Versioning) 통신 문제를 피할 수도 있습니다. 이렇게 하면 두 번째 오류 메시지도 나타나지 않습니다.

SharePoint와 통신

지금까지 필자는 OpenDocuments 컨트롤을 이용해 SharePoint UI를 확장하고 응용 프로그램을 시작하는 것까지 해 봤습니다. 다만 필자의 응용 프로그램에는 SharePoint와 통신하여 데이터에 액세스할 방법이 여전히 필요합니다.SharePoint에서는 이러한 작업을 수행하기 위해 Microsoft Office FrontPage® Server Extensions, WSS RPC(원격 프로시저 호출), WebDAV, 웹 서비스 등 다양한 방법을 지원합니다.실제로 Word 2007과 같은 Office 응용 프로그램에서는 문서에 액세스하는 방법(웹 폴더를 통한 액세스, 매핑된 네트워크 드라이브를 통한 액세스 또는 SharePoint UI를 통한 액세스)에 따라 이러한 통신 방법 중 일부 또는 전체를 사용할 수 있습니다.

SharePoint 클라이언트/서버 통신에는 HTTP가 기본 프로토콜로 사용됩니다.예를 들어 FrontPage와 WSS RPC는 모두 SharePoint 서버의 %COMMONPROGRAMFILES%\Microsoft Shared\Web Server Extensions\12\ISAPI 폴더 및 해당 하위 폴더에 있는 ISAPI 확장을 대상으로 하는 HTTP POST 및 HTTP GET 요청을 사용합니다.

가장 중요한 ISAPI 확장 중 하나는 Owssvr.dll인데 이 파일은 무엇보다도 목록 및 문서 라이브러리와 함께 작동하는 기능을 구현합니다.그림 4에서는 URL 요청(https://sharepoint/HR/Administration/_vti_bin/owssvr.dll?dialogview=FileSave&location=Shared%20Documents&FileDialogFilterValue=*.docx)을 통해 직접 열리는 브라우저(오른쪽) 및 Word 2007(왼쪽)에서의 SharePoint 저장 대화 상자를 보여 줍니다.두 스크린 샷은 여러 면에서 확실히 비슷합니다.

fig04.gif

그림 4 Word 2007 및 Internet Explorer의 SharePoint 저장 대화 상자 (더 크게 보려면 이미지를 클릭하십시오.)

그 밖의 중요한 ISAPI 확장으로는 Author.dll을 들 수 있는데, 이 파일은 문서의 업로드, 이름 바꾸기, 삭제와 같은 클라이언트 쪽 편집 작업을 위해 FrontPage 및 WSS RPC를 구현합니다. Admin.dll은 사이트를 관리하고 수많은 관리 작업을 수행하는 데 사용되며, Shtml.dll은 HTML 양식 제출을 지원하는 데 사용됩니다.

일반적으로 소스 코드에 액세스하지 않은 상태에서 FrontPage 및 WSS RPC 지원 기능을 기존 응용 프로그램(예: 메모장 또는 Adobe Reader)에 추가할 수는 없지만,Windows에 포함된 웹 클라이언트 기능을 이용해 필요한 통신 기능을 제공할 수는 있습니다.

또한 SharePoint는 %WINDIR%\System32\Inetsrv\ 폴더에 있는 Httpext.dll을 통해 WebDAV를 지원하지만 여기서는 클라이언트 쪽을 중심으로 살펴보겠습니다.Windows Server® 2008 또는 Windows Vista®를 실행하는 컴퓨터에는 웹 클라이언트 기능이 기본으로 설치됩니다.제어판의 관리 도구에 있는 서비스 애플릿에서 해당 WebClient 서비스를 찾을 수 있습니다.Windows XP와 Windows Server 2003에서는 웹 클라이언트를 명시적으로 설치해야 합니다.어떤 경우든 WebClient 서비스가 시작되었고 서비스 시작 유형이 자동으로 설정되어 있는지 확인해야 합니다.

그림 5에서는 웹 클라이언트의 아키텍처를 보여 줍니다.WebClient 서비스는 서비스 제어 관리자가 Svchost.exe 호스트 프로세스에 로드하는 사용자 모드 DLL(Webclnt.dll)에서 구현됩니다.Webclnt.dll은 I/O가 아닌 작업(예: WebDAV 액세스에 대한 사용자 인증, SharePoint 사이트를 네트워크 드라이브로 탑재, SharePoint 사이트, 목록 및 문서 라이브러리를 네트워크 리소스로 열거, 탑재된 드라이브 분리 등)에 대한 네트워크 공급자 인터페이스를 제공합니다.

fig05.gif

그림 5 WebDAV 클라이언트 리디렉터 아키텍처 (더 크게 보려면 이미지를 클릭하십시오.)

이 작업을 수행하기 위해 Webclnt.dll은 실제 리디렉터 기능을 제공하는 커널 모드 파일 시스템 드라이버와 통신합니다.WebDAV 클라이언트 리디렉터 드라이버(Mrxdav.sys)는 원격 파일 시스템의 서비스를 제공하기 위해 I/O 관리자 및 다른 커널 구성 요소와 통합되는 RDBSS(Redirected Drive Buffering Subsystem)를 기반으로 합니다.Mrxdav.sys는 SharePoint 사이트 및 문서 라이브러리에 대한 파일 시스템 수준의 액세스를 지원하기 위해 WebDAV 통신 기능을 구현합니다.

네트워크 리디렉터를 통해 SharePoint 사이트 및 문서 라이브러리에 액세스할 경우 사용자 응용 프로그램에서 FrontPage 및 WSS RPC를 지원할 필요가 없습니다.네트워크 드라이브는 문서 라이브러리(예: net use x:http://wss/doclib/Shared%20Documents)에 매핑할 수 있으며 UNC 경로를 통해서도 SharePoint 리소스에 액세스할 수 있습니다.

URL http://wss/doclib/Shared%20Documents는 \\wss\doclib\Shared%20Documents로 매핑됩니다.따라서 응용 프로그램에서 문서를 열 수 있는 것입니다.예를 들어 HTTP 경로인 http://wss/doclib/Shared%20Documents/New%20Text%20Document.txt 또는 UNC 경로인 \\wss\doclib\Shared%20Documents\New%20Text%20Document.txt를 이용해 메모장에서 문서를 열 수 있습니다.

웹 클라이언트 기능은 아쉽지만 몇 가지 제약이 있습니다.사용자 지정 TCP 포트를 사용하는 사용자 지정 속성 또는 웹 응용 프로그램에는 액세스할 수 없습니다.또한 첨부 자료의 WebDAV Access.pdf에 설명된 것처럼 계층 구조 내의 상위 사이트에 대한 액세스 권한이 사용자에게 없는 경우 Windows Vista와 함께 제공되는 웹 클라이언트는 작동하지 않습니다.

https://sharepoint/HR/Administration/Shared%20Documents/ 경로에는 존재하지 않는 루트 사이트(즉, https://sharepoint)가 포함되며, 웹 클라이언트는 루트에 액세스하지 않은 상태에서는 웹 서버의 기능을 확인할 수 없습니다.웹 서버는 상태 코드가 401인 웹 클라이언트의 OPTIONS 요청을 거부하는데, 이 코드는 액세스가 허용되지 않음을 의미하므로 결과적으로 웹 클라이언트는 사용자가 사이트 모음 SharePoint/HR 및 모든 해당 하위 사이트에 대한 관리 권한을 갖고 있더라도 그림 6에 설명된 것처럼 사용자 자격 증명을 요청하는 메시지를 계속 표시합니다.

fig06.gif

그림 6 실패한 WebDAV 액세스 (더 크게 보려면 이미지를 클릭하십시오.)

OpenDocuments 컨트롤을 사용할 경우 웹 클라이언트가 문서를 열지 못하면 그림 3과 같은 오류 메시지가 표시됩니다.응용 프로그램은 사용할 수 있으며 문서 형식 매핑은 올바릅니다.이 문서는 WebDAV 리디렉터를 통해 액세스할 수 없는 문서입니다.

사용자 지정 OpenControl 솔루션 구현

일반적으로 웹 클라이언트의 단점을 해결하는 방법은 2가지가 있습니다.즉, Microsoft에서 웹 클라이언트의 업데이트 버전을 제공할 때까지 기다리거나 현재 상황을 해결할 수 있는 사용자 지정 OpenControl 솔루션을 구현하면 됩니다.사용자 지정 OpenControl을 구현하는 것은 결코 간단한 작업은 아니지만, 이 방법을 활용할 경우 사용자의 워크스테이션에서 Office를 사용할 필요가 없고 새로 만들기 명령과 다음 응용 프로그램에서 편집 명령을 보다 유용하게 처리할 수 있으며 웹 클라이언트가 작동하지 않을 때 문제를 해결할 수 있습니다.

이러한 문제점들을 해결하기가 어려울 경우 첨부 자료에 수록된 AppStart 소스 코드를 확인하십시오.이 코드를 통해 Microsoft .NET Framework 어셈블리에서 SharePoint JavaScript 코드가 호출할 수 있는 OpenControl COM 인터페이스를 제공하는 방법을 확인할 수 있습니다.또한 AppStart 소스 코드에서 WebDAV를 통해 직접 액세스를 할 수 없는 경우 파일 액세스 가능 여부를 확인하고 HTTP를 통해 로컬 컴퓨터로 파일을 다운로드하는 방법을 확인할 수 있습니다.마지막으로 AppStart 소스 코드는 콘텐츠 형식에 연결된 서식을 로컬 컴퓨터에 다운로드하여 새로 만들기 명령에 응답하기 때문에 사용자는 문서 작업을 시작할 수 있습니다.워크시트인 Text Content Type.pdf와 Adobe Reader Support.pdf에는 이러한 OpenControl 솔루션을 배포하는 방법이 간략히 정리되어 있습니다.

그림 7에 표시된 다이어그램에서는 AppStart 아키텍처를 보여 줍니다.필자의 사용자 지정 OpenControl 구성 요소(Biblioso.dll)는 SharePoint JavaScript가 새 문서를 작성하거나 편집할 기존 문서(Biblioso.AppStart.2 및 Biblioso.AppStart.3)를 열기 위해 호출하는 2개의 동일한 COM 인터페이스를 제공합니다.

fig07.gif

그림 7 AppStart 아키텍처 (더 크게 보려면 이미지를 클릭하십시오.)

편집할 문서가 열려 있는 경우 Biblioso.dll은 해당 파일이 존재하는지 여부를 확인하며 WebDAV를 통해 파일에 직접 액세스할 수 있는 경우 해당 문서의 경로와 함께 관련 응용 프로그램을 시작합니다.파일에 액세스할 수 없는 경우 Biblioso.dll은 OpenDocsUtility.dll을 로드하는 Out-of-Process COM 서버를 시작하여 HTTP를 통해 파일을 다운로드하고 다운로드된 문서의 경로와 함께 응용 프로그램을 시작합니다.

이 솔루션에서는 Out-of-Process COM 서버를 사용함으로써 보호 모드에서 임시 인터넷 폴더로 다운로드를 제한하는 Internet Explorer® 프로세스로부터 벗어날 수 있습니다.사용자는 보호 모드의 제약 없이 파일을 다운로드할 수 있어야 하며, 응용 프로그램 중개자 역할을 담당하는 Out-of-Process COM 서버는 그 방법을 제공합니다.

.NET에서의 Out-of-Process COM 서버 개발은 지원되지 않기 때문에 필자는 이 실행 파일에 대해 C/C++로 전환했습니다.필자는 꼭 필요한 내용으로만 구성된 다른 이름으로 저장 대화 상자를 C++로 구현했습니다.가능한 한 솔루션을 간단하게 유지하고 개발 비용 부담을 낮추기 위해 .NET 어셈블리로 실제 다운로드 코드를 배치했는데(OpenDocsUtility.dll), 이후 이 코드는 다른 COM 인터페이스를 통해 호출됩니다.

좀 더 쉽게 배포하기 위해 솔루션에 설치 프로젝트를 추가했습니다.무엇보다도, 설치 루틴은 모든 COM 구성 요소를 등록하고 응용 프로그램 관련 설정을 HKEY_LOCAL_MACHINE\SOFTWARE\Biblioso\AppStart에 기록합니다.AllowedApps 및 AllowedFileTypes는 가장 중요한 매개 변수입니다.AppStart 솔루션은 이들 매개 변수에서 사용자가 명시적으로 지정해야 하는 응용 프로그램 및 파일 형식만 이용해 작업을 수행합니다.

또한 설치 루틴은 Out-of-Process COM 서버에 대해 권한 상승 정책을 만들기 때문에 Internet Explorer 프로세스에서 Biblioso.dll은 보안 경고를 트리거하지 않고 AppBrokerEngine.exe를 실행할 수 있습니다.Internet Explorer 보호 모드에 관한 자세한 내용과 응용 프로그램 개발 과정에서 이 모드를 처리하는 방법에 대해 알고 싶은 경우 Marc Silbey와 Peter Brundrett의 기사인 "보호 모드의 Internet Explorer 이해 및 작업"(msdn2.microsoft.com/bb250462)을 읽어볼 것을 추천합니다.

AppStart 구성 요소를 검사할 때는 이 솔루션이 단지 수행 가능한 작업만 표시하도록 개발되었다는 점에 유의하십시오. 이 솔루션은 프로덕션 환경에 대비해 설계되지는 않았고,소스 코드 주석는 차치하더라도 코드를 최적화하고 솔루션을 철저히 테스트하거나 기능을 문서화할 만한 시간적 여유가 부족했습니다.

이 솔루션을 사용하는 데 따른 모든 책임은 해당 사용자에게 있습니다.자신만의 고유한 솔루션을 만들기 위해 소스 코드를 공부하고 싶다면 Biblioso 코드 프로젝트에서 AppStart.cs로 시작하십시오.이 파일은 OpenControl COM 인터페이스 및 Ows.js에서의 JavaScript 호출을 위한 진입점을 구현합니다.

요약

WSS 3.0 및 MOSS 2007은 SharePoint 문서 라이브러리 및 목록에 있는 문서 및 기타 항목을 이용해 작업할 때 완벽한 사용자 환경을 제공하기 위한 광범위한 응용 프로그램 통합 기능을 제공합니다.2007 Office system의 데스크톱 응용 프로그램은 이러한 기능을 매우 생생하게 보여 주며 Office 이외의 다른 응용 프로그램에서도 동일한 수준의 통합 및 유용성을 실현할 수 있습니다.

응용 프로그램 통합 아키텍처의 중심에는 COM 구성 요소가 있으며 SharePoint JavaScript 함수는 이러한 COM 구성 요소를 문서 경로와 함께 사용해 응용 프로그램을 시작합니다.2007 Office system은 Office 고유의 응용 프로그램 요구에 맞게 최적화된 몇 가지 COM 구성 요소를 제공하며, 타사 응용 프로그램을 통합하도록 Office OpenDocuments 컨트롤을 다시 사용할 수도 있습니다.OpenDocuments 컨트롤은 가장 기본적인 요구 사항을 충족합니다.보다 높은 수준의 응용 프로그램 통합 요구 사항에 대해서는 사용자 지정 컨트롤을 구현할 수 있습니다.

SharePoint와 응용 프로그램을 완전히 통합하려면 검색 및 표시 기능을 확장하기 위해 IFilter 구성 요소와 문서 아이콘을 설치해야 할 뿐만 아니라 SharePoint 서버에서 사용자 지정 콘텐츠 형식과 문서 형식 매핑을 만들어서 SharePoint 사용자 인터페이스에 적절한 새로 만들기 및 다음 응용 프로그램에서 편집 명령을 제공해야 합니다.이러한 명령은 OpenControl 구성 요소를 통해 제공되는 메서드를 호출하는 JavaScript 함수를 호출합니다.OpenControl 구성 요소는 워크스테이션에서도 사용할 수 있어야 합니다.

한편, Windows Vista에 포함되어 있으며 기본적으로 설치되는 웹 클라이언트도 중요한 부분을 차지합니다.웹 클라이언트는 WebDAV 리디렉터 및 원격 파일 시스템 드라이버를 구현하기 때문에 모든 응용 프로그램은 네트워크에서의 파일 공유와 마찬가지로 SharePoint 목록 및 문서 라이브러리의 리소스에 액세스할 수 있습니다.Windows Vista와 함께 제공되는 웹 클라이언트는 여러 가지 단점을 갖고 있지만 응용 프로그램 통합에서는 없어서는 안 될 중요한 부분을 차지합니다.

또한 WebDAV 지원은 타사 워크스테이션 및 SharePoint에서 실행되는 응용 프로그램들 간의 차이를 좁히는 역할을 합니다.COM 및 ActiveX 제어 기술은 일반적으로 이러한 운영 체제에서는 사용할 수 없기 때문에 응용 프로그램을 자동으로 시작하는 데 OpenControl 구성 요소를 사용할 수는 없습니다. 그러나 대부분의 운영 체제에는 WebDAV 리디렉터가 포함되어 있으므로 사용자들은 로컬 워크스테이션에 파일을 다운로드하지 않고도 최소한 문서 라이브러리에서 문서에 직접 액세스할 수 있습니다.

WSS 3.0 및 MOSS 2007은 2007 Office system의 성공을 위한 초석이며 타사 Office 기반 응용 프로그램의 사용자들은 SharePoint의 장점을 동일한 방법으로 활용할 수 있습니다.통합 기능은 Office 그 이상의 범주에까지 적용됩니다.SharePoint의 장점을 십분 활용함으로써 Office 및 타사 소프트웨어에 대해 동일한 사용자 환경을 제공하는 통합 사무용 솔루션 플랫폼을 구축할 수 있으며, 그 결과 정보 근로자들의 생산성은 증대됩니다.

Pav Cherny는 공동 작업 및 통합 커뮤니케이션을 위한 Microsoft 기술을 전문으로 하는 IT 전문가이자 저술가입니다.IT 운영과 시스템 관리를 주로 다루는 백서, 제품 설명서 및 서적 등을 출간한 Pav는문서 관리 및 지역화 서비스를 전문으로 하는 Biblioso Corporation의 사장입니다.

© 2008 Microsoft Corporation 및 CMP Media, LLC.All rights reserved. 이 문서의 전부 또는 일부를 무단으로 복제하는 행위는 금지됩니다.