기능 및 성능

Windows Server AppFabric 호스팅 기능은 다음과 같은 기능을 제공하여 WAS(Windows Process Activation Service)에서 .NET Framework 버전 4 WCF(Windows Communication Foundation) 및 Windows WF(Workflow Foundation) 서비스 호스팅 기능을 향상시킵니다.

  • WAS에서 호스팅되는 WCF 및 WF 서비스의 간소화된 배포 및 관리

  • 지속성 있는 워크플로에 대한 간소화된 지속성 구성

  • 필요한 데이터만을 캡처할 수 있는 사용자 지정 가능한 추적 프로필

  • 추적된 데이터에 대한 전용 쿼리 가능 저장소

  • 사용자 지정 관리 스크립트를 만들 수 있는 Windows PowerShell cmdlet

  • 호스팅된 서비스의 사용자 지정 가능한 모니터링

  • Windows IPv6 스택을 통한 IPv6(인터넷 프로토콜 버전 6) 지원

  • 서비스 대기 시간을 최소화하기 위해 응용 프로그램 자동으로 시작

    참고

    이 기능을 사용하려면 Windows Server 2008 R2 또는 Windows® 7이 필요합니다.

AppFabric 캐싱 기능은 확장 가능하고, 사용 가능하고, 성능이 우수한 응용 프로그램 개발을 위한 분산된 메모리 내 캐시 플랫폼을 제공합니다. AppFabric 캐싱 기능의 주요 기능은 다음과 같습니다.

  • 직렬화할 수 있는 CLR 개체 캐시 및 간단한 캐시 API를 통해 액세스 제공

  • 엔터프라이즈 지원: 10 ~ 100대의 컴퓨터

  • 네트워크에서 액세스하는 서비스로 실행하도록 구성 가능

  • 일반 캐시 구성 지원

  • 새 노드를 추가하여 동적 크기 조정 지원

  • 별도의 캐시 호스트에 캐시된 데이터 복사본을 저장하여 해당 데이터의 지속적인 가용성을 지원하는 고가용성 기능

  • 자동 부하 분산

  • ETW(Windows용 이벤트 추적) 및 System Center와 같은 관리 및 모니터링 도구와의 통합.

  • 소스 데이터베이스에 기록할 필요 없이 캐시의 ASP.NET 세션 데이터를 캐시할 수 있도록 ASP.NET과의 견고한 통합 제공. 또한 전체 웹 팜에서 응용 프로그램 데이터를 캐시할 수 있도록 응용 프로그램 데이터에 대한 캐시로도 사용할 수 있습니다.

지원되지 않는 시나리오 및 구성

.NET Framework 4에서는 XAML(eXtensible Application Markup Language)을 사용하여 워크플로 서비스를 정의할 수 있습니다. AppFabric은 .NET Framework 4 워크플로 서비스와 작동하도록 설계되었습니다. 여기에는 SVC 파일을 사용하여 활성화되거나 웹 서비스가 SVC 파일 없이 활성화하도록 허용하는 새 구성 기반 활성화 기능을 통해 활성화된 워크플로 서비스가 포함됩니다. 구성 기반 활성화에 대한 자세한 내용은 구성 기반 활성화를 참조하십시오.  XAML을 사용하여 워크플로를 서비스로 정의하는 방법에 대한 자세한 내용은 .NET Framework 4.0과 “Dublin”의 WCF 및 WF 서비스를 참조하십시오.

그러나 WAS(Windows Process Activation Service)에서 호스팅된 WCF 및 WF 서비스는 AppFabric에서 지원되지 않는 다음과 같은 서비스 활성화 및 구성 옵션을 제공합니다.

  • 미리 컴파일된 웹 응용 프로그램의 일부인 서비스는 지원되지 않습니다. 미리 컴파일은 ASP.NET에서 웹 사이트 성능을 향상시키기 위해 사용하는 메커니즘입니다. ASP.NET 컴파일러 도구가 첫 번째 요청에 있는 웹 응용 프로그램의 리소스와 만나면 활성화에 사용되는 일반 파일 형식 콘텐츠(예: ASPX 또는 SVC)가 어셈블리로 컴파일됩니다. 그런 다음 자동 생성된 텍스트로 교체됩니다. 이는 파일이 해당 콘텐츠가 더 이상 필요하지 않더라도 물리적 활성화 진입점(및 URL)을 남겨 두도록 합니다. AppFabric 도구는 서비스 구성 검색 및 관리를 위해 SVC 파일 콘텐츠의 구문 분석에 의존합니다. SVC 콘텐츠가 ASP.NET 컴파일러에 의해 자동 생성된 텍스트로 교체된 후에는 더 이상 이러한 서비스를 나열 및 관리하는 데 AppFabric을 사용할 수 없습니다. 이전에 언급한 것처럼, 미리 컴파일된 ASP.NET 응용 프로그램의 일부인 XAML을 사용하여 정의된 .NET Framework 4 워크플로 서비스는 계속해서 Windows Server AppFabric에서 작동합니다. 자세한 내용은 ASP.NET Web Site Pre-compilation(영문)을 참조하십시오.

  • RouteTable.Routes.Add() 기능을 사용하여 런타임에 등록 및 활성화된 서비스는 지원되지 않습니다. .NET Framework RouteTable 클래스는 응용 프로그램에 대한 URL 경로를 저장하는 데 사용됩니다. ASP.NET 응용 프로그램이 요청을 처리할 때 응용 프로그램은 URL 요청 형식과 일치하는 첫 번째 경로를 찾기 위해 Routes 속성의 경로 컬렉션을 반복합니다. 자세한 내용은 RouteTable 클래스를 참조하십시오.

    참고

    서비스 등록에 RouteTable을 사용하는 것은 기본 REST 스타일 URL을 필요로 하는 REST 스타일 서비스의 일반적인 패턴입니다. 예를 들어 https://server/AutoService/Car/123-345-678입니다.

AppFabric 호스팅 기능

AppFabric 호스팅 기능은 WAS에 의존하여 WCF 및 WF 서비스용 호스팅 환경을 제공하고 IIS 관리 콘솔을 확장하여 WAS 호스팅 서비스에 대한 관리 및 구성 도구를 제공합니다. WAS에서 호스팅되는 기존 WCF 또는 WF 서비스가 있는 경우 AppFabric 호스팅 서비스를 사용하여 이러한 서비스를 열거하고 관리할 수 있습니다. 하지만 관리되는 Windows 서비스 또는 독립 실행형 응용 프로그램에서 서비스가 호스팅되는 경우 해당 서비스를 WAS 호스팅 환경으로 마이그레이션해야 이러한 서비스와 함께 AppFabric 호스팅 기능을 사용할 수 있습니다.

현재 WAS가 아닌 호스트에서 서비스를 호스트하는 경우 WAS로 서비스를 이동하기 전에 AppFabric의 기능 및 WAS 호스팅 환경의 기능을 신중히 평가하는 것이 좋습니다. WCF 및 WF 서비스의 호스팅 옵션에 대한 자세한 내용은 서비스 호스팅(https://go.microsoft.com/fwlink/?LinkId=166423)을 참조하십시오.

응용 프로그램 배포

현재 응용 프로그램은 Xcopy를 사용하거나 Windows Installer와 같은 기술을 기반으로 하는 배포 패키지를 사용하여 배포할 수 있습니다. Xcopy는 가상 디렉터리에 해당하는 폴더에서 대상 폴더로 응용 프로그램 아티팩트를 이동합니다. 배포 패키지는 인증서, 응용 프로그램 풀과 연결된 사용자 계정, 레지스트리 설정 및 데이터베이스 데이터와 같은 추가적인 아티팩트를 배포하는 데 사용됩니다. 기존 배포 기술은 단일 서버 배포에 적합하더라도 Windows Installer 패키지 만들기가 너무 복잡한 경우가 많고 배포를 위한 특정 개발 지식을 필요로 할 수 있지만, Xcopy는 대부분 매우 단순합니다. 둘 다 확장 목적을 위해 서버 팜에 서비스를 배포하는 데 특별히 적합한 것은 아닙니다.

IIS 웹 배포 도구인 MSDeploy는 명령줄, IIS 관리 콘솔, 또는 Visual Studio 2010에서 사용할 수 있는 간단한 패키지 기반 배포 기능을 제공합니다. MSDeploy는 한 컴퓨터를 다른 컴퓨터에 동기화하는 데에도 사용할 수 있습니다.

MSDeploy에 대한 자세한 내용은 IIS7용 웹 배포 도구(https://go.microsoft.com/fwlink/?LinkId=127069)(영문)를 참조하십시오.

응용 프로그램 구성

응용 프로그램 관리 효율성의 주요 구성 요소는 기본 코드를 변경하지 않고 응용 프로그램 동작에 영향을 주는 구성 옵션을 적용하는 기능입니다. AppFabric은 호스팅된 응용 프로그램 및 서비스의 구성에 대한 다음과 같은 기능을 제공합니다.

단순화된 응용 프로그램 구성: AppFabric 호스팅 기능에서 사용되는 원칙은 관리를 위해 Web.config 파일의 구성 설정만 사용한다는 것입니다. 소스 코드에 정의된 설정은 액세스할 수 없고 AppFabric 관리 도구에서 수정할 수 없습니다. 이 원칙은 C#과 같은 명령적 코드 및 XAML과 같은 선언적 코드 모두에 적용됩니다. XAML과 같이 코드를 쉽게 볼 수 있는 경우에도 설정은 계속 잠겨진 것으로 처리되고 액세스할 수 없습니다.

구성 관리를 단순화하기 위해 AppFabric은 설치 프로그램이 구성하는 각 서버 노드에 대한 기본 설정을 적용합니다. 이러한 설정은 루트 Web.config 파일에 정의되고 호스팅된 응용 프로그램이 사용할 수 있습니다. 또한 관리자는 호스팅된 응용 프로그램에 대한 지속성 동작이나 보다 정밀한 추적을 적용하기 위해 사이트 또는 응용 프로그램 Web.config 파일을 통해 사이트 또는 응용 프로그램별 구성 설정을 적용할 수도 있습니다.

IIS 관리 콘솔을 통해 제공되는 WCF 구성 옵션: WCF 서비스 구성 편집기 도구(SvcConfigEditor.exe)를 사용하는 현재 WCF 구성은 개발자 및 IT 전문가 모두에게 과제를 제공합니다. 특히 서비스 구성 편집기를 사용하려면 WCF 서비스 모델에 대한 철저한 이해가 필요합니다. 이는 IT 전문가에게 추가적인 오버헤드를 가져옵니다.

AppFabric은 가장 일반적인 구성 작업을 수행하기 위해 WCF 및 WF에 대한 IIS 관리자 확장 기능을 사용하여 익숙한 IIS 관리 콘솔을 확장함으로써 이러한 환경을 향상시킵니다. 예를 들어 추적 사용, 응용 프로그램 제한 매개 변수 정의 및 IIS 관리자 확장 기능을 사용하여 수행할 수 있는 모든 실행 중인 서비스 열거가 있습니다. 기타 구성 옵션은 AppFabric 구성 마법사 또는 IIS 7.0에서 사용 가능한 IIS 구성 편집기를 사용하여 적용할 수 있습니다.

WF 지속성 구성: 장기 실행 비즈니스 프로세스에 대한 지속성 있는 워크플로 개념을 지원하기 위해 WF 서비스는 메시지 받기와 같은 특정 이벤트가 발생하는 경우 지속성 저장소로 유지하고 처리를 다시 시작할 수 있습니다. 하지만 여전히 지속성은 대부분 수동으로 구성해야 하며, 지속성 있는 저장소 메커니즘에서 지원하는 지속성 서비스를 만들어야 합니다.

워크플로 지속성 구성을 단순화하고 서버 팜 구성을 지원하기 위해 AppFabric 호스팅 서비스는 WAS 내에서 호스팅되는 지속성 있는 워크플로에서 활용할 수 있는 SQL Server 기반 지속성 저장소 및 SQL 지속성 공급자를 지원합니다. AppFabric에서는 선택한 사용자 지정 지속성 저장소 및 공급자를 사용할 수도 있습니다. AppFabric은 모든 호스팅된 응용 프로그램에서 상속받은 기본 지속성 설정 또는 개별 응용 프로그램 관련 지속성 설정의 구성을 허용합니다.

Windows PowerShell cmdlet: IIS 관리 콘솔 내에서 구성 및 관리 옵션 제공은 호스팅된 응용 프로그램을 쉽게 관리할 수 있게 하지만 여러 단계 구성 및 관리 시나리오를 자동화하는 스크립트를 만드는 것이 효과적인 경우가 많습니다.

스크립팅 솔루션 만들기를 지원하기 위해 AppFabric 호스팅 기능에는 Windows Powershell의 ApplicationServer 모듈이 포함되어 있습니다. 여기에는 호스트된 응용 프로그램의 구성 및 관리에 대해 IIS 관리 콘솔에서 제공되는 도구와 동일한 액세스 수준을 제공하는 cmdlet이 포함되어 있습니다.

응용 프로그램 모니터링

호스팅된 서비스의 배포, 관리 및 구성을 단순화하는 것뿐만 아니라 AppFabric 호스팅 서비스는 런타임 시 내보낸 추적 정보를 캡처하고 모니터링 데이터베이스에 이 정보를 저장하여 응용 프로그램을 쉽게 모니터링할 수 있게 합니다. 캡처된 이 정보는 IIS 관리 콘솔의 대시보드 기능에서 사용하거나 모니터링 데이터베이스에서 직접 사용할 수 있습니다.

응용 프로그램에서 수집한 정보는 작업 상태(시작, 중지, 오류 발생), 워크플로 내에 있는 특정 변수의 콘텐츠 또는 사용자 지정 추적 레코드를 사용하여 응용 프로그램이 내보낸 사용자 지정 추적 정보와 같은 정보를 캡처하기 위해 추적 프로필을 사용하여 사용자 지정할 수 있습니다.

응용 프로그램 호스팅

AppFabric 호스팅 서비스는 중간 계층 WCF 및 WF 응용 프로그램에 대한 강력한 호스팅 환경을 제공하기 위해 WAS와 함께 작동합니다. WAS에서 제공하는 일부 기능은 다음과 같습니다.

  • 응용 프로그램 및 작업자 프로세스의 메시지 기반 활성화. 응용 프로그램이 HTTP 및 비 HTTP 네트워크 프로토콜을 사용하여 도착하는 들어오는 작업 항목에 대한 응답으로 동적으로 시작하고 중지합니다.

  • 실행 중인 응용 프로그램의 상태를 유지 관리하기 위한 강력한 응용 프로그램 및 작업자 프로세스 재활용.

  • 중앙 집중식 응용 프로그램 구성 및 관리.

WAS에서 일반적으로 제공하는 기능과 함께 .NET Framework 4는 호스팅된 서비스 활성화 영역에서 향상된 기능을 제공합니다. .NET Framework 3.5를 사용하여 작성된 서비스를 활성화하려면 서비스와 함께 배포해야 하는 별도의 "서비스 파일"(.svc 확장자)을 만들어야 합니다. 또한 서비스에서 WF를 사용하는 경우 추가 XAML(Extensible Application Markup Language) 파일(.xaml 확장자)을 만들고 서비스와 함께 배포해야 합니다. .NET Framework 4는 별도의 .svc 파일을 만들고 배포할 필요 없이 WF 서비스의 직접적인 활성화를 조정합니다. 연결된 WF 응용 프로그램의 직접적인 활성화를 호스트가 조정할 수 있도록 XAML 파일의 확장자는 .xamlx여야 합니다. WCF 및 WF 응용 프로그램 모두 별도의 .svc 파일이 필요하지 않은 상태에서 Web.config 파일에서 직접 활성화할 수 있습니다. WAS 호스팅 환경의 해당 기능 및 다른 기능에 대한 자세한 내용은 호스팅(https://go.microsoft.com/fwlink/?LinkId=166403)을 참조하십시오.

호스팅된 서비스의 단순화된 활성화에는 서비스 파일이 필요하지 않지만 WAS에서 사용하는 메시지 기반 활성화 기술은 지정하지는 않습니다. 서비스가 WAS에서 호스팅되는 경우 서비스로 주소가 지정된 메시지를 받을 때까지 서비스 인스턴스가 만들어지지 않습니다. 즉, 서비스가 처음 시작될 때 새 인스턴스를 초기화해야 합니다(예: 메모리 할당, 라이브러리 로드 및 개체 만들기). 응용 프로그램이 시간별 데이터를 처리하는 경우 개별 서비스에서 이 지연은 허용되지 않을 수 있습니다. 시간별 데이터를 처리하지 않는 경우에도 메시지 기반 활성화에 대한 의존하는 경우 메시지 기반 활성화에는 WAS 활성자가 필요한 것처럼 서비스가 데이터를 받는 방법에 대한 제한이 발생합니다. 초기부터 .NET은 다음 프로토콜에 대한 활성자를 제공합니다.

  • http: HTTP activation for both IIS 7.0 및 WCF 모두에 대한 HTTP 활성화를 제공합니다.

  • net.tcp: TCP 포트 기반 활성화를 제공합니다.

  • net.pipe: 명명된 파이프 활성화를 제공합니다.

  • net.msmq: WCF 기반인 MSMQ(메시지 큐)에서 사용됩니다.

  • msmq.formatname: 기존 MSMQ 응용 프로그램과의 이전 버전 호환성을 제공합니다.

메시지 기반 활성화의 제한을 해결하려면 AppFabric 호스팅 서비스는 활성화 메시지를 기다리는 대신 배포되면 즉시 WAS 호스팅 서비스를 자동으로 시작하기 위해 Windows Server 2008 R2 및 Windows 7에서 제공하는 IIS 자동 시작 기능을 활용할 수 있습니다.

AppFabric 캐싱 기능

AppFabric 캐싱 서비스는 여러 컴퓨터에서 메모리를 혼합하여 응용 프로그램에 대한 단일한 통합된 캐시 뷰를 제공합니다. 개체가 저장되는 위치에 관계없이 응용 프로그램은 직렬화할 수 있는 CLR 개체를 저장할 수 있습니다. 필요할 때 컴퓨터를 추가하기만 하면 확장성을 해결할 수 있습니다. 또한 AppFabric 캐싱 서비스를 사용하면 클러스터 전체에서 데이터 복사본을 저장할 수 있습니다. 따라서 오류가 발생해도 데이터를 보호할 수 있습니다. AppFabric 캐싱 서비스에는 데이터베이스에 기록할 필요 없이 분산 캐시에 ASP.NET 세션 개체를 저장할 수 있는 ASP.NET 세션 공급자가 포함되어 있습니다. 따라서 ASP.NET 응용 프로그램의 성능과 확장성이 향상됩니다.

AppFabric 캐싱 기능에 대한 자세한 내용은 Windows Server AppFabric에서의 캐싱 소개(https://go.microsoft.com/fwlink/?LinkId=164828)(영문)를 참조하십시오.

  2011-12-05