Catalyst(소프트웨어)
Catalyst (software)| 원저작자 | 세바스찬 리델 |
|---|---|
| 안정된 릴리스 | 5.90128 / 2020년 11월 11일, 전([1] |
| 기입처 | 펄 |
| 유형 | 웹 응용 프로그램 프레임워크 |
| 면허증. | PAL 및 GPL |
| 웹 사이트 | http://catalyst.perl.org/ |
Catalyst는 Perl로 작성된 오픈소스 웹 어플리케이션프레임워크로 Model-View-Controller(MVC; 모델뷰컨트롤러) 아키텍처에 밀접하게 준거하여 다수의 실험적인 웹 패턴을 지원합니다.이것은 Perl을 위한 현대적인 객체 시스템인 Moose를 사용하여 작성되었습니다.디자인은 Ruby on Rails, Maypole, Spring 등의 프레임워크에서 많은 영감을 받았습니다.
웹 어플리케이션 개발자는 Catalyst를 사용하여 모든 웹 어플리케이션에서 공통되는 코드를 처리합니다.Catalyst는 웹 서버에 인터페이스를 제공하고 페이지 요구를 수신하며 요청을 처리 및 반환하기 위해 개발자가 작성한 코드에 이러한 인터페이스를 디스패치하고 데이터 모델, 인증, 세션 관리 및 기타 통신용으로 표준화된 인터페이스를 제공합니다.웹 어플리케이션 요소에 있습니다.
이들 요소는 모두 공통 인터페이스 세트에 플러그인으로 구현되므로 개발자는 사용하는 특정 메서드(예를 들어 데이터베이스 테이블이 아닌 공유 메모리에 저장되는 세션 또는 FastCGI를 사용하여 Apache의 mod_perl 내에서 동작하는 것과 같이)를 변경할 수 있습니다.응용 프로그램 코드를 입력합니다.
Catalyst는 주로 CPAN을 통해 배포됩니다.CPAN은 Perl 라이브러리와 응용 프로그램의 공식 배포 채널입니다.
역사
Maypole은 MVC 패턴을 기반으로 한 Perl 프로그래밍 언어를 위한 최초의 웹 애플리케이션 프레임워크 중 하나이며, 주요 저자는 Simon Cozens였습니다.[2]촉매는 메이폴의 포크로 시작되어 메이폴 3.0을 [3]목표로 하고 있습니다.그러나 Maypole 개발은 [4]2008년 4월에 가장 최근에 출시되면서 중단되었고 Catalyst는 현대적인 지원 대상이 되었습니다.
Catalyst의 첫 번째 개발 릴리스는 2005년 1월 28일에 실시되었습니다.첫 번째 공식 버전은 2005년 [5]2월 16일에 CPAN에 배치되었다.2011년 6월 현재 Catalyst에는 201명의 등록 [6]기여자가 있습니다.
철학
Catalyst는 "Don't repeat yourself"(DRY) 원칙을 기반으로 합니다. 즉, 정의는 한 번만 하면 됩니다.Catalyst는 다수의 로더 모듈 중 하나를 통해 데이터베이스에서 자동으로 클래스를 로드할 수 있으므로 데이터베이스 레이어에 코드가 필요하지 않습니다.그러나 모든 작업을 수동으로 수행할 수 있는 유연성이 필요한 경우에는 이 옵션도 선택할 수 있습니다.Catalyst의 또 다른 가이드라인은 유연성입니다.
Catalyst는 이미 일반적인 웹 응용 프로그램 문제를 적절하게 처리하고 있는 기존 Perl 모듈의 재사용을 촉진합니다.
- 모델 부품은 다음 DBIx를 통해 처리됩니다.클래스, Plucene, Net:LDAP 및 기타 모델클래스
- 뷰 레이어는 보통 Template Toolkit, Mason 또는 HTML::Template 등에 의해 처리됩니다.
- 컨트롤러 계층은 물론 각 애플리케이션 작성자에 의해 작성됩니다.컨트롤러 기능의 큰 청크는 보통 여러 Catalyst 플러그인 중 하나로 연기할 수 있습니다(예를 들어 Catalyst:플러그인:Form Validator, Catalyst:플러그인:시제품, Catalyst:플러그인:: 계정::자동 검출 등)
- 마지막으로 Catalyst는 일련의 도우미를 제공하여 흐름 제어 및 URL과 컨트롤러 방식의 매핑을 단순화합니다.
Catalyst에는 다양한 플러그인이 [7]준비되어 있습니다.예를 들어 다음과 같이 Catalyst를 사용하는Ajax 및 RIA용 JavaScript가 있습니다.플러그인:프로토타입 모듈(프로토타입은 Ajax 프레임워크).플러그인은 인증, 세션 관리, HTTP 네고시에이션, REST 등 많은 영역을 커버합니다.
Catalyst는 jQuery 또는 YUI(Yahoo!)와 같은 다른 Ajax 프레임워크에서도 사용할 수 있습니다.사용자 인터페이스 라이브러리.
웹 서버 지원
개발 및 테스트를 위해 Catalyst에는 단순 HTTP 서버가 내장되어 있습니다.프로덕션 용도로는 FastCGI 또는 mod_perl을 지원하는 Apache, lighttpd, Hiawatha, Cherokey 또는 Nginx가 권장되지만 CGI 또는 FastCGI를 지원하는 웹 서버는 모두 작동합니다.Apache에서는 mod_perl을 사용하면 성능이 크게 향상되지만 mod_perl에서 여러 응용 프로그램을 공유하는 것은 안전하지 않기 때문에 mod_perl을 사용하는 것이 문제가 될 수 있습니다.
2008년 초부터 Catalyst 어플리케이션은 HTTP::Prefork[8] 엔진을 사용하여 도입할 수도 있습니다.이 엔진은 별도의 웹 서버 없이 고성능 Catalyst 어플리케이션을 도입할 수 있습니다.Catalyst 5.9 릴리스 이후 Catalyst는 PSGI 사양으로 출력되므로 Mongrel2를 포함한 PSGI 사양을 지원하는 모든 서버 또는 프로토콜과 함께 모든 Plack 서버에서 실행할 수 있습니다.
데이터베이스 지원
Catalyst는 Perl의 DBI에서 지원되는 데이터베이스(이것은 CSV 파일도 거의 모든 것을 의미합니다)를 사용하여 실행할 수 있지만 적절한 RDBMS 또는 ODBMS를 권장합니다.데이터베이스 액세스는 프로그래머의 관점에서 완전히 추상화되어 Catalyst는 모델 클래스 중 하나를 통해 모든 데이터베이스에 대한 액세스를 자동으로 처리합니다.단, 필요에 따라 직접 SQL 쿼리를 사용할 수도 있습니다.이를 통해 데이터베이스 중립성, 다양한 데이터베이스 시스템에서의 애플리케이션 이식성 및 기존 데이터베이스의 Catalyst 애플리케이션 개발을 위한 사용성을 최대한 높일 수 있습니다.단, RDB의 기능 세트가 다르기 때문입니다.MS, 프레임워크만으로는 완전히 보장되지 않습니다.여러 가지 다른 RDBMySQL, Postgre 등 MS 시스템 지원SQL, SQLite, IBM DB2, Oracle 및 Microsoft SQL Server가 있습니다.ODBMS에 대해서는 Kioku에 대한 명확한 지원이 있습니다.Catalyst 경유 DB:모델: Kioku [9]DB.모델 추상화에서는 Catalyst를 통해 모든 종류의 데이터베이스에 액세스할 수 있습니다.모델::어댑터.[10]
많은 Catalyst 기반 프로젝트에서는 DB를 사용합니다.Ix:: ORM 계층으로 클래스는 임의 조인 및 기타 기능을 투과적으로 지원하는 결과 집합 기반 API를 사용하여 SQL 쿼리를 더욱 추상화합니다.
사용하다
Catalyst를 탑재한 웹사이트에는 Magazines.com,[11] bbc.co.uk iPlayer 백엔드,[12] DuckDuckGo의 커뮤니티 플랫폼, http://flexibase.io 및 Tripwolf.com 등이 있습니다.MojoMojo Wiki 엔진은 [13]Catalyst를 사용하여 작성됩니다.
YouPorn은 [15]2012년까지 Catalyst에 의해[14] 가동되었습니다.
「 」를 참조해 주세요.
레퍼런스
- Diment, Kieren. The Definitive Guide to Catalyst. Apress. ISBN 978-1-4302-2365-8. Archived from the original on 2009-09-17. Retrieved 2009-09-09.
- ^ "CPAN Module Release". Catalyst. Retrieved 11 Sep 2020.
- ^ Simon Cozens (2004-04-22). "Rapid Web Application Deployment with Maypole". Perl.
- ^ The Definitive Guide to Catalyst. Apress. p. 2. ISBN 978-1430223658.
- ^ "Maypole". CPAN.
- ^ "Catalyst Changes file". Retrieved 8 August 2018.
- ^ "Catalyst Framework - Contributors". Ohloh. Retrieved 2011-06-06.
- ^ "Search for "Catalyst::Plugin::" - metacpan.org". metacpan.org. Retrieved 8 August 2018.
- ^ "Catalyst::Engine::HTTP::Prefork - High-performance pre-forking Catalyst engine - metacpan.org". metacpan.org. Retrieved 8 August 2018.
- ^ "Catalyst::Model::KiokuDB - use KiokuDB in your Catalyst apps - metacpan.org". metacpan.org. Retrieved 8 August 2018.
- ^ "Catalyst::Model::Adaptor - use a plain class as a Catalyst model - metacpan.org". metacpan.org. Retrieved 8 August 2018.
- ^ ""Catalyst/DBIC/eCommerce Developer job" posting". 2011-05-08. Archived from the original on 2011-05-13. Retrieved 2011-06-06.
- ^ "BBC's iPlayer is powered by a Perl software stack (including Catalyst)".
- ^ Diment, Kieren; Trout, Matt S (2009). "Catalyst Cookbook". The Definitive Guide to Catalyst. Apress. pp. 278–281. ISBN 978-1-4302-2365-8.
- ^ "Biggest porn site on the web YouPorn powered by Perl/Catalyst (top 50 in alexa)". reddit.
- ^ "YouPorn software stack was originally written in Perl + Mysql".
