블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 

'클라우드 컴퓨팅 & NoSQL/IIS'에 해당되는 글 3

  1. 2010.06.09 IIS의 새로운 동영상 Streaming 기술 Smooth Streaming (2)
  2. 2010.05.08 IIS의 Asynchronous 처리. (1)
  3. 2010.05.06 IIS Process 구조
 
요즘 서버쪽 보다는 동영상이나 모바일 같은 미디어쪽 기술을 보게 되는군요. 참 이것저것 많이 봅니다.
오늘은 IIS의 재미있는 기술을 하나 발견해서 소개합니다

IIS7 Media Pack에 포함된 Smooth Streaming이라는 기술입니다.
동영상 Streaming 기술은 크게 3가지 정도로 구분이 되는데

Traditional Streaming
기존의 RTSP,Adobe의 RTMP등이 이 기술에 속합니다. 미리 인코딩 된 동영상을 TCP나 UDP 세션에 따라서 클라이언트 버퍼 크기 만큼 쭈욱 Streaming해주는 거지요. 그래서 버퍼만큼 받기 때문에 뒤돌리기나 앞으로 돌리기가 안됩니다. 

Progressive Streaming
YouTube나 MSN,MySpace등이 사용하는 기술로 HTTP download를 이용합니다. HTTP로 다운로드 하면서 Play하고 forward나 rewind 또는 절대 위치 지정시에 HTTP Server에 전송 block을 다시 요청할 수 있기 때문에 앞,뒤로 돌리기가 가능합니다. HTTP를 사용하기 때문에 Cache를 사용할 수 도 있고, FireWall 제약에서도 벗어날 수 있습니다. 단 문제가 10분짜리 동영상을 보는데, 약 1분만 보고 꺼버렸다... 이런경우 전체 동영상이 다 다운로드 되어 있을 수 있습니다. 그말은 즉 NETWORK Bandwidth가 낭비된다는 겁니다. 통신망 사업자 입장에서는 bandwidth가 돈이져

그래서 새롭게 소개된 방식이
HTTP based Adaptive Streaming이라는 방식입니다. 위의 두 장점을 다 합해서 버퍼 크기만큼만 다운로드를 할 수 있게 합니다. 그래서 Progressive Streaming처럼 중간에 끊더라도 band width가 낭비될 염려가 없습니다. 이건 클라이언트의 다운로드 상황을 체크해서 내려보내기 때문에 가능한건데.. 다운로드 상황뿐만 아니라 네트워크 bandwidth, 클라이언트의 CPU상황, 해상도에 맞춰서 그때그때 마다 최적화된 형태로 Encoding해서 내려보내기 때문에 끊기지 않는 동영상을 일반 인터넷망에서도 제공할 수 있습니다. 우리가 집에서 쓰는 IPTV들은 통신사와 집간에 Qos (일정 수준의 Bandwidth를 보장하도록 설계 되었습니다.) 그래서 망 사업자가 아니더라도 HD급의 화질 서비스가 가능하게 됩니다.  이것이 IIS7 MeidaPack에 포함된 Smooth Streaming이라는 서비스입니다. 공짜입니다.!! 중요하져... 이말은 즉, 상당히 저비용으로 HD급 인터넷 방송 서비스를 만들 수 있다는 이야기가 됩니다.
사실 이외에도 여러가지 Feature가 있습니다만 오늘은 말이 잘 정리 안되는 관계로 여기 까지...

참고로 기술적 SPEC은 클라이언트는 SilverLIght를 지원하고 MP4 방식으로 인코딩을 합니다. Non-Windows Platform에서는 Linux 기반의 Open source인 moonlight라는 패키지가 있으니 이를 이용해서 클라이언트를 만들 수 잇습니다.


참고하세요

==
참고 사항 : 세계 1위의 CDN 업체인 Akamai가 Smooth Streaming을 지원합니다.
Smooth Streaming 데모는 http://www.smoothhd.com에서 확인 가능합니다.

저작자 표시
신고

'클라우드 컴퓨팅 & NoSQL > IIS' 카테고리의 다른 글

IIS의 새로운 동영상 Streaming 기술 Smooth Streaming  (2) 2010.06.09
IIS의 Asynchronous 처리.  (1) 2010.05.08
IIS Process 구조  (0) 2010.05.06

IIS의 Asynchronous 처리.

클라우드 컴퓨팅 & NoSQL/IIS | 2010.05.08 23:07 | Posted by 조대협
확인을 좀 해봐야알겠지 IIS의 Request 처리 메카니즘은 Java 기반의 WAS 보다 뛰어난것 같다.
일단 Asynchronous IO 처리라는 것이 되는데, 이는 WebLogic Server에서 최근에 추가된 Future Servlet과 유사한듯 하다.

보통 WAS는 Request를 받으면, 해당 Request를 처리하는 Thread가 Allocation이 되고, Response를 보낼때 까지 Thread를 잡고 있는데, DB나 외부 시스템을 호출하는 IO가 있을 경우 IO 처리 시간동안 Thread를 점유하는 비효율적인 메카니즘이 생겨나고, 이는 실제 처리할 수 있는 Request 수를 줄인다. 이를 보강하는 방법인 일단 Request를 받은 후에, 처리가 완료될때까지 Thread를 Release했다가, 처리가 끝나면 (DB IO등의) 다시 Thread가 Allocation되서 Response 처리를 하는 방법이다.

IIS에서는 Request가 오면 IIS Thread가 직접 이 요청을 받고 ASP.NET이 관리하는 Thread로 Request를 바로 넘긴다 (offload)그리고, IIS Thread는 바로 Release된다. ASP.NET이 관리하는 Thread가 요청 처리를 끝내면 Call back 메카니즘에 의해서, IIS Thread에 response를 보내는 Thread가 다시 재할당된다. 
이렇게 하면 ASP.NET쪽 AP Logic에 문제가 생겨도 IIS 가Thread 가 Stuck되는 일은 없을 것같고, 자원 처리 효율면에서도 상당히 뛰어나다.

제대로 이해했는지 모르겠는데, 예전에 적용된 아키텍쳐 치고는 상당히 앞서있는 듯..


시간 나면 디테일하게 다시한번 살펴봐야 쓰겄다.

참고 :

The ISAPI extension runs requests asynchronously. In this mode the ISAPI extension immediately returns on the calling worker process or IIS thread, but keeps the ECB for the current request alive. The ECB then includes a mechanism for letting ISAPI know when the request is complete (via ecb.ServerSupportFunction) which then releases the ECB. This asynchronous processing releases the ISAPI worker thread immediately, and offloads processing to a separate thread that is managed by ASP.NET.

ASP.NET receives this ecb reference and uses it internally to retrieve information about the current request such as server variables and POST data as well as returning output back to the server. The ecbstays alive until the request finishes or times out in IIS and ASP.NET continues to communicate with it until the request is done. Output is written into the ISAPI output stream (ecb.WriteClient()) and when the request is done, the ISAPI extension is notified of request completion to let it know that the ECB can be freed. This implementation is very efficient as the .NET classes essentially act as a fairly thin wrapper around the high performance, unmanaged ISAPI ECB.
.


저작자 표시
신고

'클라우드 컴퓨팅 & NoSQL > IIS' 카테고리의 다른 글

IIS의 새로운 동영상 Streaming 기술 Smooth Streaming  (2) 2010.06.09
IIS의 Asynchronous 처리.  (1) 2010.05.08
IIS Process 구조  (0) 2010.05.06

IIS Process 구조

클라우드 컴퓨팅 & NoSQL/IIS | 2010.05.06 17:29 | Posted by 조대협

IIS 6.0 기준이고, 5.0은 구조가 다르다.


  1. HTTP.SYS 라는 커널 레벨의 디바이스드라이버에서 HTTP Request를 받는다.
  2. 어떤 AP인지 식별한 다음에, AP POOL에서 W3WP.EXE를 Invoke해서 사용한다.
  3. W3WP.EXE에서 aspnet_isapi.dll을 호출하여, 컴파일된 ASP의 DLL을 수행한다.
일반적인 웹서버 아키텍쳐와 같은데,
각 Request를 Thread가 아니라 Process가 핸들링 하는 형태이고
상용 WAS와 유사하게 AP별로 POOL을 나눠서 관리하고, POOL별로 AP을 디플로이 할 수 있다.

저작자 표시
신고

'클라우드 컴퓨팅 & NoSQL > IIS' 카테고리의 다른 글

IIS의 새로운 동영상 Streaming 기술 Smooth Streaming  (2) 2010.06.09
IIS의 Asynchronous 처리.  (1) 2010.05.08
IIS Process 구조  (0) 2010.05.06