개발자에게 SharePoint Services 란 무엇인가? 송재두 선임 (SharePoint MVP) ㈜닷넷엑스퍼트 컨설팅 사업부 http://sharepoint.egloos.com
Session 1 SharePoint Architecture 이해하기 SharePoint Execution 모델
1. SharePoint Architecture 이해하기
SharePoint 물리적 아키텍처 – Server roles SharePoint Farm 에서 서버 Role 요소 Web Front-End Application / SSP Index Query / Search Excel Calculation Server Forms Server Database Server
SharePoint 물리적 아키텍처 - Topology SharePoint Farm 토폴로지 Stand-Alone Server Small Server Farm Medium Server Farm Large Server Farm
SharePoint 물리적 아키텍처 - Topology Stand-Alone server 모든 SharePoint 서비스와 데이터베이스가 하나의 서버에 설치 사용자 Small server farm 하나의 SharePoint 서버에 모든 서비스들이 설치되고 다른 하나의 서버에는 데이터베이스 가 설치 사용자
SharePoint 물리적 아키텍처 - Topology Medium server farm 최소 구성 시 하나의 Web-Front-End 서버 , 하나의 Application 서버 그리고 하나의 Database 서버가 설치 최대 구성 시 두대의 Web-Front-End 서버 , 하나의 Application 서버 그리고 두대의 Database 서버가 설치 최대 구성 시에는 Network load balancing 구성 사용자
SharePoint 물리적 아키텍처 - Topology Large server farm Large server farm 은 Medium server farm 의 형태와 유사함 두대 이상의 Web-Front-End 서버를 구성하며 Application role 을 담당하는 서버를 여러대로 분산 사용자
SharePoint 물리적 아키텍처 - Topology Large server farm Large server farm 은 Medium server farm 의 형태와 유사함 두대 이상의 Web-Front-End 서버를 구성하며 Application role 을 담당하는 서버를 여러대로 분산 사용자 Scaled-up 과 Scaled-out 비교 Scaled-up 업그레이드 하드웨어 이미 존재하는 서버에 혹은 좀더 강력한 모델로 대체 Scaled-out 새로운 서버를 추가 하거나 업무량을 공유하여 각각의 서버가 전체적으로 균형이 맞도록 설계하는것 게다가 특정한 서버에 특정한 롤을 할당 할 수 있음. Fram-Architecture 문서참조
SharePoint 물리적 아키텍처 – Scaled out 1.단일서버구성(SQL or SQL Express (basic)) 2.1 WFE/Query/Calc/Index, 1 SQL 3.1 WFE/Query/Calc, 1 WFE/Calc/Index –1 SQL * 4.2 WFE/Query/Calc, 1 Index, 1 SQL 5.2 WFE/Query/Calc, 1 Index, 2 SQL (HA) 6.2 WFE/Query, 1 Calc, 1 Index, 2 SQL 7.failover 팜고려… (Db 미러링 또는SQL Log Ship) 20. 10 WFE/Calc, 4 Query, 1 Index, 3 -2 Node SQL (A/P) * 자료 출처 : SharePoint Korea Conference 2007
SharePoint 논리적 아키텍처 SharePoint Logical Architecture 구성요소 Server farm 논리적 단위의 최상위 요소 Web application IIS 에서의 Web Site 에 해당되는 구성요소 중앙관리에서 사이트에서 관리 여러 개의 컨텐츠 데이터 베이스를 가짐 Site Collection 사이트와 하위 사이트들에 대한 모음 IIS 에서 최상위 가상 디렉토리의 개념 하나의 사이트 컬렉션은 하나의 컨텐츠 데이터 베이스에 저장된 하나의 Web application 에서는 다수의 Site Collection을 호스팅 할 수 있음 사이트 컬렉션은 실제 IIS 의 가상 디렉토리와는 맵핑 되지 않음
SharePoint 논리적 아키텍처 SharePoint Logical Architecture 구성요소 Site 사이트의 진입구 IIS 의 최상위 가상 디렉토리의 하위 폴더 개념 각 사이트는 자신의 하위 사이트를 갖을 수 있음 List / Library 데이터 베이스에 비유하자면 테이블에 해당 리스트와 라이브러리는 반드시 자신을 포함하고 있는 사이트가 존재함 Item / Document List/Library 의 레코드에 해당
2. SharePoint Execution Model 2-1. SharePoint 와 IIS 2-2. ASP.NET 2.0 과의 통합 2-3. SharePoint Execution Model
SharePoint 와 IIS IIS 의 역할 HTTP Request 에 대한 진입로 어떤 인증을 사용할 것인지 판단 가상 디렉터리와 물리적 파일의 경로를 맵핑 HTTP.SYS 에서 어떤 Application Pool 을 사용할 것 라우팅
ASP.NET Integration Windows SharePoint Services “Version 2” Windows 9/23/2018 ASP.NET Integration Windows SharePoint Services “Version 2” Windows SharePoint Services “Version 3”
SharePoint Execution Model SharePoint 페이지에 대한 Request 는 ASP.NET 엔진이 처리
QnA
Coffee Break
Session 2 WSS 3.0 이 MOSS 2007 에서 차지하는 영역 SharePoint Object Model 이해하기
1. WSS 3.0 이 MOSS 2007 에서 차지하는 영역 1-1. WSS 3.0 과 MOSS 2007
WSS 3.0 과 MOSS 2007 의 개발요소 WSS 3.0 과 MOSS 2007 의 개발요소 비교 Application & Services More declarative development More solution development, integration work Room to extend with components, client UI Collaboration Content Mgmt. Portal Search Business Process Mgmt Business Intelligence Project Core Workspace Services More code-intensive development More component, feature development Storage Security Mgmt Topology Site Model APIs Operating System Services ASP.NET: Web Parts , Personalization , Master Pages , Provider Framework , Security Database Services Search Workflow
WSS 3.0 의 개발요소 Windows SharePoint Services 의 개발요소 데이터 스토리지 컨텐츠 관리 서비스 사용자 인터페이스 커스터마이징 SharePoint Object Model 지원
WSS 3.0 의 개발요소 User Interface Master Page / Layout Page Web Parts SharePoint Controls Check-In/Out Data Storage Security (Role / Permission) List / Library / Folder File / Item Field Alert / RSS Timer Jobs Work Item Services Contents Management Versioning Site Model Import / Export Schema Management Programmability Object Model Events Changelog
2. SharePoint Object Model 이해하기
SharePoint Object Model 이해하기 개발자가 WSS 를 컨트롤 하기 위한 API(Application Programming Interface) 개발자는 API 를 이용하여 기존 SharePoint 기능을 확장 하거나 수정 할 수 있음 개발시 DLL 참조를 통하여 OM 을 통하여 접근 ( DLL 위치 : systempath:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI ) Administration Data Storage Service / User Interface
SharePoint Object Model 이해하기 Microsoft.SharePoint.Administration SharePoint 의 관리 및 운영 요소와 관련 데이터 베이스 및 사이트 백업 / 복원과 관련된 작업 시 유용 Administration Microsoft.SharePoint.Administration SPService SPServiceInstance SPDatabase ServiceInstance SPFarm SPServer SPConfiguration Database SPContentDatabase SPWebService SPWindows Service SPWebApplication
SharePoint Object Model 이해하기 Microsoft.SharePoint.Administration OM 을 이용하여 특정 컨텐츠 데이터베이스에 사이트 컬렉션 생성 하는 예제 foreach (SPWebApplication webApp in SPWebService.ContentService.WebApplications) { if (webApp.Name == “SharePoint - 80") foreach (SPContentDatabase cdb in webApp.ContentDatabases) if (cdb.Name == "WSS_ContentsDB_NewSite") cdb.Sites.Add("siteUrl", "ownerlogin", "ownerEmail"); break; }
SharePoint Object Model 이해하기 Microsoft.SharePoint 사이트 컬렉션 부터 리스트의 아이템에 이르기 까지 일련의 작업을 지원하기 위한 OM Data Storage Microsoft.SharePoint Site Document Library Lists Features SPSiteCollection SPDocumentLibrary SPList SPFeatureDefinition SPSiteAdministration SPPictureLibrary SPListItemCollection SPElementDefinition SPSite SPListItem SPFeatureScope Security SPWeb SPFeature SPRoleDefinition SPRoleAssignment
SharePoint Object Model 이해하기 Service / User Interface SharePoint 웹사이트의 Import/Export 지원 Email 및 기타 서비스 제어를 지원 웹파트와 사용자 인터페이스 제어를 지원 Service / User Interface Microsoft.Sharepoint.deployment / Microsoft.SharePoint.Utilities Microsoft.SharePoint.WebPartpages / Microsoft.SharePoint.Webcontrols Import/Export Email / Alerts Web Parts / Pages User Interface / Navi SPImport SPEmailEventReceiver SPWebPartManager SPNavigation SPExport SPAlert ToolPart SPNavigationNode SPAlertTemplate WebPartZone WebPartPage
SharePoint Object Model 이해하기 Microsoft.SharePoint.Deployment OM 을 이용하여 특정 사이트 컬렉션을 Export 하는 예제 SPExportSettings settings = new SPExportSettings(); settings.SiteUrl = "http://servername:80"; settings.FileLocation = @"c:\exportdata"; settings.BaseFileName = "exportfile.cmp"; settings.FileCompression = true; settings.ExportMethod = SPExportMethodType.ExportAll; SPExport export = new SPExport(settings); export.Run();
QnA
Reference Microsoft SharePoint Products and Technologies http://msdn2.microsoft.com/en-us/library/bb931739.aspx Microsoft SharePoint Team Blog http://blogs.msdn.com/sharepoint/default.aspx
감사합니다.