언제 OWIN Katana를 사용해야합니까?
저는 OWIN과 Katana를 처음 사용합니다. OWIN을 사용해야하는 이유는 모르겠지만을 사용할 수는 있습니다 IIS
. 단순화하기 위해 내 질문은 : OWIN 학습을 건너 뛰고 웹 사이트에 IIS를 사용하면 무엇을 잃게됩니까?
나는 봤지만 간단한 설명이 없습니다. 이 몇 가지 정보는 여기에 ,하지만 난 그것을 이해할 수 없다, 그래서 그들은 일부 전문 용어의 문구를 사용합니다.
asp.net WebApi v2에서 OWIN 파이프 라인이 기본값이됩니다. 결국 모든 asp.net 프로젝트에서 표준 파이프 라인이 될 것입니다.
나는 여기에 쓰여진 것보다 더 잘 넣을 수 없다 : http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
"OWIN (Open Web Interface for .NET)" 섹션 은 OWIN의 목표를 완벽하게 설명합니다.
OWIN이 없으면 asp.net 비트는 IIS가 응용 프로그램과 통신하는 방식에 연결됩니다. OWIN은 웹 서버 및 프레임 워크 구성 요소를 추상화합니다. 즉, 애플리케이션 코드는 이제 OWIN 인터페이스를 인식하지만 요청을 제공하는 웹 서버는 인식하지 못합니다.
그 결과, 호스트와 전체 플랫폼 / 운영 체제간에 응용 프로그램을보다 쉽게 이식 할 수 있습니다. 예를 들어, 콘솔이나 프로세스에서 응용 프로그램을 호스팅 할 수있는 기능을 통해 Mono는 아무런 노력 없이도 응용 프로그램을 호스팅 할 수 있습니다 ... (Raspberry Pi anyone)
두 번째 측면은 파이프 라인으로 작동한다는 것입니다.
웹 서버와 애플리케이션 사이에 미들웨어 (및 원하는만큼)를 연결할 수 있습니다.
이것은 더 많은 모듈 솔루션을 허용합니다. 애플리케이션에 대한 요청 / 응답에 영향을 줄 수있는 재배포 가능 미들웨어를 개발할 수 있지만 이러한 모듈을 애플리케이션 코드와 분리하여 유지하십시오.
이 모듈 식 접근 방식의 장점을 설득하려면 OWIN에서 사용할 수있는 너겟 패키지를 살펴보십시오. http://www.nuget.org/packages?q=owin
이러한 많은 패키지는 이전에는 핵심 asp.net 기능이었으며 미들웨어로 추출되었습니다.
예를 들어, 다양한 OAuth 제공자를 사용하여 로그인 지원을 추가하면 인프라 문제 (미들웨어)가되며 더 이상 애플리케이션 코드의 일부일 필요는 없습니다.
- http://www.nuget.org/packages/Microsoft.Owin.Security.Google/
- http://www.nuget.org/packages/Microsoft.Owin.Security.Facebook/
- http://www.nuget.org/packages/Microsoft.Owin.Security.ActiveDirectory/
...
또는 웹 사이트의 모든 이미지를 귀여운 고양이 이미지로 자동으로 바꾸려면 투명하게 수행 할 수도 있습니다.
https://github.com/serbrech/Owin.Catify
편집 : 이제 너겟 패키지로 사용할 수 있습니다 : Owin.Catify !
public interface OWIN
{
void ListenHttpCallAndServeWebPage();
}
namespace Microsoft.OWIN
{
public class Katana : OWIN
{
public void ListenHttpCallAndServeWebPage()
{
// listen to a port for HTTP call and serve web page
}
}
}
네 맞습니다. OWIN은 인터페이스 이고 Katana는 Microsoft 의 OWIN 인터페이스 구현 입니다 . 따라서 우리는이 두 단어 (OWIN / KATANA)를 함께 듣고이 두 용어의 차이점을 혼동합니다. 따라서 Katana는 Microsoft의 OWIN 인터페이스 구현입니다. 자신 만의 OWIN 구현을 만들고자하는 BIG-BOSS라는 다른 회사가 있다고 말하면,이를 구현하고 이름을 'BATANA'로 지정하고 OWIN / BATANA와 같은 문구를 광고 할 수 있습니다.
그래서 왜 OWIN !!!
이동할 수있는 유일한 차량이 트럭 인 국가를 생각해보십시오. 다른 건 없어 차량을 사고 싶다면 트럭을 사십시오. 글쎄, 그것은 좋은 서비스를 제공했지만 사람들은 항상 트럭이 필요하지 않다는 것을 깨닫기 시작했습니다. 특히 영화를 보거나 우유를 사러 가고 싶을 때 무거운 트럭을 운전할 때 연료가 많이들뿐만 아니라 운전에 스트레스를 추가하십시오. 그러나 그렇습니다. 무거운 물건을 많이 가지고 다니려면 트럭이 그 목적을 잘 수행합니다.
그런 다음 해당 국가의 정부는 차량 제조업체를위한 사양을 제시했습니다. 사양은 다음과 같습니다.
- 차량에는 4 개의 바퀴가 있어야합니다
- 차량에는 조향 장치가 있어야합니다.
- 차량에는 전조등과 신호등이 있어야합니다.
따라서 이러한 사양에 따라 누구나 필요에 따라 차량을 만들 수 있으며 그에 따라 차량 이름을 지정할 수 있습니다. 따라서 세단, 픽업 트럭, SUV, VAN 등 모든 종류의 차량이 시장에 나타났습니다. 누군가가 항상 무거운 물건을 가지고 다닐 필요가없고, 단지 직장에 가기 위해 차량이 필요한 경우, 작은 세단 형 자동차를 살 수 있습니다. 전력이 조금 더 필요한 사람은 SUV를 구입할 수 있습니다.
Based on the above example, we can say that our ASP.NET Web application uses System.Web Assembly which is heavily loaded (like a truck) and if we want to make a little Web Application where our purpose is just to serve some files based on a little set of requests, we are bound to use that heavy System.Web assembly (truck). Now, OWIN shows up. OWIN is a set of specification (we can call it interface) that defines a Server. Based on that specification, someone (like a vehicle maker) can make various kind of servers based on specific problem domains / application needs. Microsoft created their own Implementation for OWIN named Katana in the same way which can serve Web API. As WebAPI is a light weight technology, which does not need full blown System.Web things, a light weight Server implementation (like Katana) can boost the performance heavily when you use Web Api hosted on Katana.
이제 당신이 묻는다면, ' 필요한가?'? 대답은 '성능의 필요에 달려 있습니다'입니다. 영화를 보러도 트럭 운전에 신경 쓰지 않는다면 아마도 OWIN이 필요하지 않을 것입니다. 그러나 가벼운 세단 형 자동차 만 있으면 도시, 작은 거리에서 운전하거나 영화 등을 볼 수 있습니다. 예, 시장에서 어떤 OWIN 구현을 사용할 수 있는지 확인할 수 있습니다. Katana는 OWIN의 구현 중 하나이므로 Katana가 제공하는 것을 확인할 수 있습니다. Katana뿐만 아니라 다른 회사가 특정 도메인 (예 : 최신 의약품 정보를 다운로드 할 의료 기기 서버)에 따라 OWIN을 구현하고 의사 인 경우 OWIN 구현을 확인할 수 있습니다. 또한 특정 틈새 시장을 대상으로 OWIN 구현을 직접 만들 수도 있습니다.
웹 응용 프로그램과 관련하여 간단한 웹 개발자 인 경우 클라이언트를위한 사용자 지정 웹 사이트를 개발하는 경우 IIS가 균형 잡힌 방식으로 서비스를 제공하므로 OWIN의 사용자 지정 구현에 대해 걱정할 필요가 없습니다. 웹 API 프로젝트를 빌드하면 Visual Studio-> 새 프로젝트에서 Katana 기반 템플릿을 준비 할 수 있으므로 Katana 관련 기술을 배우는 것 외에는 걱정할 필요가 없습니다. 현재 Katana는 ASP.NET MVC 용 IIS의 필요성을 완전히 대체 할만큼 성숙하지는 않았지만 앞으로는 그럴 것입니다.
그렇다면 언제 나만의 OWIN 구현을 작성해야합니까?
답변 : 예를 들어 백그라운드에서 서버로 실행되고 포트 번호 XXXX를 수신해야하는 Windows 응용 프로그램을 개발했다고 가정 해보십시오. 서버는 다음과 같은 일부 요청에만 응답합니다.
- 재고 확보
- 인벤토리 ID 삭제 = 4
- PUT 재고 ID = 5
그게 다야. 그리고 다른 것은 없습니다. 그렇다면이 작은 작업을 위해 왜 완전한 IIS 웹 서버가 필요할까요? 이 경우 고유 한 OWIN 구현을 만들 수 있습니다. (아마도 당신은 Katana를 사용할 것입니다)
좋아, ASP.NET MVC 웹 사이트를 만들고 싶다면 IIS를 대체 할 수있는 옵션이 없다고 생각합니다.이 시점에서 왜 Katana에 대해 알아야합니까?
대답 : Katana가 IIS의 필요성을 대체 할만큼 성숙하지는 않았지만 Katana에서 ASP.NET MVC 웹 사이트를 직접 호스팅 할 수는 있지만 Katana는 OWIN의 멋진 인터페이스를 많이 구현하여 이러한 기능 측면을 활용할 수 있습니다. 옆에. 예를 들어, 사용자가 Facebook, Google, Twitter 등을 사용하여 로그인하도록 허용하는 것은 이전에는 쉽지 않았습니다. Katana는 많은 후크 (미들웨어)를 제공하므로 Katana가 배관 코드를 작성하지 않고도 외부 소셜 미디어 기반 인증을 쉽게 처리 할 수 있습니다. Katana를 사용하면이 기술을 사용할 때 알아볼 수있는 다른 많은 이점이 있습니다.
그 대답의 간단한 버전은 Katana가 System.Web 어셈블리와 이전 ASP.NET 파이프 라인을 완전히 대체 할 수 있다는 점입니다. 이는 더 나은 유연성 (더 많은 시나리오에서 사용하고 원하는 부분 만 사용)과 성능을 모두 제공합니다.
따라서 모든 사람은 지금 진화를보고 마침내 완료되면 전환 할 준비가되어 있어야합니다.
아래는 Microsoft 가이 기사 에 포함시키지 않은 세부 사항을 채우기 위해 그린 다이어그램 입니다.
OWIN은 응용 프로그램 프레임 워크를 실행하고 그 아래의 모든 것을 잊게하는 표준입니다. 반면에 OWIN 자체는 다양한 호스트 어댑터를 사용하여 기본 웹 서버 (IIS 및 기타 여러 서버)와 통신 할 수 있도록합니다.
저는 Jexus 웹 서버 제작자와 함께 OWIN / Katana와 Jexus를 연결하기 위해 호스트 어댑터를 작성하는 방법을 조사하고 있습니다. 우리는 OWIN이 유연하고 사용자 정의가 가능하다는 것을 알게되어 기쁩니다.
참조 : http://blog.lextudio.com/2014/06/why-owin-matters-a-lot-for-asp-net-developers/
IIS를 사용할 수 있는데 왜 OWIN을 사용해야합니까?
OWIN은 작업중인 프레임 워크에서 웹 서버를 분리하도록 설계되었습니다. 믹싱 프레임 워크와 서버를 위해 응용 프로그램을 가볍고 휴대 가능하게 만들 수 있습니다.
Katana는 Microsoft의 OWIN 구성 요소 구현입니다.
지난 몇 년 동안 Microsoft는 계획이 진행됨에 따라 웹 도구를보다 민첩하고 신속하게 만들었습니다. 예를 들어 ASP.Net MVC 및 ASP.Net Web API의 개발. 그들은 지금 생각하는 큰 부담 인 System.Web dll에 의존하지 않습니다. 이점은 두 가지 개발 방식으로시기 적절하게 수정 프로그램을 제공 할 수 있으며주기가 그 어느 때보 다 빠릅니다. 또한 개발자는 OWIN 구현에 대한 참조 인 사용자 지정 OWIN 호스트 또는 Katana에 이러한 응용 프로그램을 배포 할 수 있습니다.
결국 요점이 뭐야?
마이크로 소프트는`헬리오스 (Helios) '라는 IIS 기반의 경량 OWIN 기반 웹 호스트 프로젝트를 발표했다. 목표는 OWIN 사양을 구현하는 웹 호스트에서 독립적으로 실행, 설치 및 관리 할 수있는 독립적 인 작은 구성 요소를 제공하여 ASP.NET/IIS 관계를 피하는 것입니다.
핵심 이유 중 하나는 성능 요소입니다. Helios는 표준 ASP.Net 애플리케이션보다 2x-3x 더 많은 처리량을 달성 할 수 있습니다. 메모리 소비 측면에서 Helios는 System.Web dll보다 훨씬 낫습니다. 벤치 마크에서 Helios 아키텍처를 통해 샘플 애플리케이션은 표준 ASP.Net 애플리케이션에 비해 약 1GB 적은 오버 헤드로 50000 개의 동시 요청을 달성 할 수있었습니다.
OWIN은 웹 응용 프로그램과 호스팅 플랫폼 간의 추상화입니다. OWIN을 사용하여 웹 응용 프로그램을 작성하는 경우 IIS에 연결되어 있지 않은 경우 원하는 경우 다른 호스트를 사용할 수 있습니다.
IIS 대신 OWIN을 사용하는 이유를 물었지만 서로 대체 할 수는 없습니다. OWIN은 IIS와 응용 프로그램 사이에 있으므로 응용 프로그램을 다시 작성하지 않고도 IIS를 전환 할 수 있습니다.
이 페이지를 확인하실 수도 있습니다 https://github.com/Bikeman868/OwinFramework/wiki/OWIN
참고 URL : https://stackoverflow.com/questions/21308585/when-should-i-use-owin-katana
'Programing' 카테고리의 다른 글
셸 별칭에 명령 줄 인수를 전달하는 방법은 무엇입니까? (0) | 2020.03.28 |
---|---|
SHOW PROCESSLIST에서 전체 쿼리를 보는 방법 (0) | 2020.03.28 |
AWS Lambda 함수가 다른 함수를 호출 할 수 있습니까 (0) | 2020.03.28 |
IPython Notebook에서 LaTeX를 작성하는 방법은 무엇입니까? (0) | 2020.03.28 |
Epoch 시간을 날짜 / 시간으로 변환 (0) | 2020.03.28 |