Кіріспе
Ашық кодты веб-қосымшалар фреймворкі графикалық драйвер бағдарламалық құралы. Catalyst – Perl тілінде жазылған ашық кодты веб-қосымшалар фреймворкі. Ол модель-көрініс-басқарушы (MVC) архитектурасын ұстанады және бірнеше тәжірибелік веб-үлгілерін қолдайды. Ол Perl үшін заманауи объектілік жүйе болып табылатын Moose арқылы жазылған. Оның дизайны Ruby on Rails, Maypole және Spring сияқты фреймворктердің ықпалында жасалған. Catalyst веб-қосымшаларды әзірлейтін мамандарға барлық веб-қосымшалар үшін ортақ кодты басқаруға көмектеседі. Ол беттерге келіп түсетін сұрауларды қабылдау, оларды өңдеу үшін әзірлеуші жазған кодқа жіберу және нәтижелерді қайтару үшін интерфейс ұсынады. Catalyst деректер модельдері, аутентификация, сессияларды басқару және басқа да веб-қосымшалардың жиі қолданылатын элементтері үшін стандартталған интерфейс береді. Бұл элементтердің барлығы жалпы интерфейстер жиынтығына плагиндер ретінде енгізілген, бұл әзірлеушіге қолданылатын нақты әдісті өзгертуге мүмкіндік береді (мысалы, сессияны ортақ жадта немесе деректер базасының кестесінде сақтау, FastCGI немесе Apache-дің mod_perl ішінде жұмыс істеу). Catalyst конфигурациясын өзгерту арқылы, қосымша кодты өзгертпей-ақ басқа плагинді пайдалануға болады. Catalyst негізінен Perl кітапханалары мен қосымшаларын таратудың ресми арнасы болып табылатын CPAN арқылы таратылады.
the graphic driver software
Catalyst is an open source web application framework written in Perl. It closely follows the model–view–controller (MVC) architecture and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring. Catalyst can be used by web application developers to deal with code common to all web applications. It provides an interface for receiving page requests, dispatching page requests into developer written code to process, and return of the requests. Catalyst also provides a standardised interface for data models, authentication, session management and other common web application elements. All of these elements are implemented as plugins to a set of common interfaces, allowing the developer to change the specific method used (e. g. a session storing in shared memory versus as a database table, or using FastCGI versus operating as an within Apache's mod perl) by changing the configuration of Catalyst to use a different plugin without altering the application code. Catalyst is primarily distributed through the CPAN, which is the official distribution channel for Perl libraries and applications.
Тарих
Maypole – Perl бағдарламалау тілі үшін MVC үлгісіне негізделген алғашқы веб-қосымшалар фреймворктерінің бірі болды; оның негізгі авторы Саймон Козенс. Catalyst бастапқыда Maypole-дың бұтағы ретінде пайда болды, ол Maypole 3.0 нұсқасына айналуы тиіс еді. Алайда, Maypole-дың дамуы 2008 жылдың сәуіріндегі соңғы шығарылымымен тоқтатылды, ал Catalyst оның қазіргі қолдау көрсетілетін баламасына айналды. Catalyst-тің алғашқы даму нұсқасы 2005 жылдың 28 қаңтарында жарық көрді. Алғашқы ресми нұсқасы 2005 жылдың 16 ақпанында CPAN-да жарияланды. 2011 жылдың маусымына дейін Catalyst жобасына 201 тіркелген үлес қосушы қатысты.
Философия
Catalyst "өзін-өзі қайталамау" (DRY) принципіне негізделген, яғни анықтамалар бір рет ғана жасалуы керек. Catalyst деректер қорынан автоматты түрде класты жүктеуге мүмкіндік беретін көптеген жүктеу модульдерінің бірі арқылы қолданылуы мүмкін, бұл деректер қоры қабаты үшін код жазу қажеттігін жояды. Алайда, егер сізге барлық нәрсені қолмен басқарудың икемділігі қажет болса, ол да мүмкін. Catalyst-тің тағы бір басшылық принципі – икемділік. Catalyst қазірдің өзінде веб-қосымшалардың көптеген мәселелерін жақсы шешетін Perl модульдерін қайта пайдалануға көмектеседі. Модель бөлігі DBIx::Class, Plucene, Net::LDAP және басқа модель кластары арқылы жүзеге асырылады. Көрініс қабаты Template Toolkit, Mason немесе HTML::Template сияқты құралдармен басқарылады. Ал контроллер қабатын әрбір қолданба авторы жазады. Контроллер функционалдығының үлкен бөлігін Catalyst плагиндерінің біріне (мысалы, Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery және т.б.) жүктеуге болады. Сонымен қатар, Catalyst ағынды басқаруды және URL-ді контроллер әдістерімен байланыстыруды жеңілдету үшін бірқатар көмекші құралдар ұсынады. Catalyst-те көптеген плагиндер бар. Мысалы, Catalyst::Plugin::Prototype модулі (Prototype – Ajax фреймворкі) көмегімен Ajax және RIAs үшін JavaScript кодты генерациялауға болады. Плагиндер аутентификация, сессия басқару, HTTP келіссөздері және REST сияқты көптеген салаларды қамтиды. Catalyst jQuery немесе YUI (Yahoo! Пайдаланушы интерфейсі кітапханасы) сияқты басқа Ajax фреймворктерімен де қолданылуы мүмкін.
Веб-серверді қолдау
Даму және сынақ жүргізу үшін Catalyst-те қарапайым HTTP сервері орнатылған. Өндірістік қолдану үшін Apache, lighttpd, Hiawatha, Cherokee немесе Nginx серверлері FastCGI немесе mod perl қолдауымен ұсынылады, бірақ CGI немесе FastCGI қолдауын қамтамасыз ететін кез келген веб-сервер жұмыс істейді. Apache-де mod perl өнімділіктің артуына елеулі үлес қосады, алайда оны пайдалану қиындық тудыруы мүмкін, себебі mod perl-де бірнеше қосымшаны бірге пайдалану қауіпті болуы мүмкін. 2008 жылдың басынан бері Catalyst қосымшаларын HTTP::Prefork қозғалтқышы арқылы, жеке веб-серверді қажет етпейтін, жоғары өнімді Catalyst қосымшаларын орнатуға болады. Catalyst 5.9 нұсқасынан бастап Catalyst PSGI спецификациясын қолдайды, сондықтан оны кез келген Plack серверінде, сондай-ақ PSGI спецификациясын қолдайтын кез келген сервермен немесе протоколмен, Mongrel2 сияқты, іске асыруға болады.
Деректер қорын қолдау
Catalyst Perl-дің DBI қолдауындағы кез келген деректер қорын пайдалана алады (мұнда CSV файлы да қоса алғанда, кез келген нәрсе болуы мүмкін), бірақ тиісті RDBMS немесе ODBMS ұсынылады. Деректер қорына қол жеткізу бағдарламашы үшін толығымен абстракцияланған, ал Catalyst өзінің модель кластарының бірі арқылы барлық деректер қорына қол жеткізуді автоматты түрде басқарады – бірақ қажет болған жағдайда тікелей SQL сұраныстарын қолдануға болады. Бұл деректер қорына тәуелсіздік, әртүрлі деректер қоры жүйелеріне қолданбаларды тасымалдау мүмкіндігі және Catalyst қолданбаларын дамытқанда бұрыннан бар деректер қорынан барынша пайдалануға мүмкіндік береді, бірақ RDBMS жүйелерінің әртүрлі мүмкіндіктеріне байланысты, бұл мүмкіндік тек қана шеңбермен толық қамтамасыз етілмейді. MySQL, PostgreSQL, SQLite, IBM Db2, Oracle және Microsoft SQL Server сияқты бірнеше RDBMS жүйелері қолдау көрсетіледі. ODBMS жүйелері үшін Catalyst::Model::KiokuDB арқылы KiokuDB-ға арнайы қолдау бар. Модель абстракциясы кез келген деректер қорына Catalyst::Model::Adaptor арқылы қол жеткізуге мүмкіндік береді. Көптеген Catalyst негізіндегі жобалар SQL сұраныстарын одан әрі абстракциялайтын, кез келген қосылымдарды және басқа мүмкіндіктерді қолдайтын нәтижелер жинағына негізделген API ұсынатын DBIx::Class-ті ORM қабаты ретінде пайдаланады.
Қолданылуы
Catalyst негізінде жұмыс істейтін веб-сайттарға Magazines.com, bbc.co.uk iPlayer серверлік бөлігі, DuckDuckGo-ның Қоғамдық платформасы, http://flexibase.io және Tripwolf.com кіреді. MojoMojo вики-қозғалтқышы Catalyst қолданылып жазылған. YouPorn 2012 жылға дейін Catalyst-ты пайдаланған.