본문 바로가기
ASP.NET MVC

ASP.NET MVC] OWIN, KATANA

by Fastlane 2023. 2. 7.
728x90
반응형

ASP.NET Framework는 10년 이상 사용되며, 수많은 웹 사이트 및 서비스를 개발할 수 있게 해주었으며, ASP.NET MVC 및 ASP.NET Web API과 같은 기술로 한 단계씩 발전할 수 있었다. 

 

내부적으로 ASP.NET은 System.Web을 사용한다. IIS가 System.Web에 의존하고 있기 때문에, System.Web의 기능이 필요하지 않은 경우에도, 사용할 수 밖에 없다. System.Web은 ASP부터 존재해왔고, 내부적으로 많은 것을 담고있어, Application을 느리게 만든다. 이러한 강한 결합과 의존성은 작은 수정에도 새로운 framework의 출시를 매우 어렵고 시간이 오래 걸리게 했다. 

 

web world의 많은 변화에 따라, application 개발에도 변화가 있었다. 현대 web application은 가볍고, 모듈화 되어 있고, 하드웨어 호환제공이 필요하다. MVC에서는 부분적으로 Nuget package를 사용하기 시작했다. 

 

따라서, MS에서는 OWIN, KATANA를 소개하였다. 

 

 

OWIN(Open Web Interface for .NET)

  • .NET web server와 web application 사이의 standard interface 사양이다.
  • OWIN의 목적은 server와 application의 decouple이다.
  • OWIN에 대해 알게되면, 다른 web development framework(node.js의 Express, Ruby의 Rack)를 이해하기 쉬워진다. 
  • OWIN 구현으로, server 구동에 소요되는 비용을 절감할 수 있다. 
  • Windows 보다 저렴한, Unix 기반 서버를 사용할 수 있다. 
  • component와 modules의 구성으로 request pipeline을 설정할 수 있다.
  • 새로운 개발을 할 때는, ASP.NET Core를 사용해야 하며, ASP.NET Core가 Microsoft.Owin.* libraries를 대체했기 때문에 .NET Core에서 Microsoft.Owin.* libraries는 유효하지 않다.

KATANA - OWIN 구현

  • KATANA는 MS에서 만든 open source OWIN component set이다.
  • OWIN 기반 웹 개발에 사용된다.  
  • 새로운 개발을 할 때는, ASP.NET Core를 사용해야 하며, ASP.NET Core가 Microsoft.Owin.* libraries를 대체했기 때문에 .NET Core에서 Microsoft.Owin.* libraries는 유효하지 않다. 
  • OWIN은 specification이고 KATANA는 .NET library이다. 
  • Nuget에서 KATANA를 사용할 수 있다. 
  • 새로운 components로 대체가 쉬워졌다. 
  • third party frameworks가 ms server에서 정상 동작하고, ms frameworks가 third party servers, hosts에서 동작이 가능해졌다. 
  • KATANA에서 components는 경량이고 기능 집중화 되어 있어, components 사용여부 결정이 쉬워졌다. 
  • KATANA 앱은 computing resource를 적게 소비하여, 더 많은 로드를 다룰 수 있다. 
728x90

KATANA - 장점

  • Portable
  • Modular
  • Flexible
  • Lightweight
  • Performance
  • Scalable

KATANA - Architecture

application을 네가지 logical layers 또는 components로 나눈다. 

  • Application
  • Middleware : HTTP request pipeline을 통해 request와 response를 handle하는 small application components 
  • Server : network socket open, listen for request, pipeline of OWIN components를 통과한 response를 user에게 보낸다. 
    • Microsoft.Owin.Host.SystemWeb
    • Microsoft.Owin.Host.HttpListener
  • Host : manageing the underlying process
    • IIS/ASP.NET
    • Custom Host
      • Microsoft.Owin.SelfHost
    • OwinHost : OWIN.exe 

KATANA - Request pipeline

  • ASP.NET 5는 OWIN 기반 서버의 IIS에서 host될 수 있는 HTTP request pipeline을 소개했다. 
  • Browser는 server로 request를 보내고, server는 그 request를 host에 보낸다. 
  • hosting환경은 Windows의 IIS가 될 수도 있고, Linux or Windows의 self host환경이 될 수도 있다. 
  • hosting환경은 첫번째 middleware로 시작하는 application pipeline을 실행한다. 
  • 일반적으로 ASP.NET Web API, SignalR과 같은 크기가 큰 middleware는 pipeline 마지막에 등록한다. 

KATANA (OWIN) - 요약

아래와 같이 구성할 수 있다. 

  • Application -> Middleware(MVC) -> Server(SystemWeb) -> Host(IIS)
  • Application -> Middleware(WEBAPI) -> Server(WebListener) -> Host(OWIN HOST)
  • Application -> Middleware(SignalR) -> Server(HTTPListener) -> Host(CONSOLE)

 

728x90
반응형

댓글