Кіріспе
Жедел веб-қосымшаларды әзірлеу платформасы
Adobe серверлік платформасы
the Adobe server platform
Adobe ColdFusion – 1995 жылы J. J. Allaire жасаған коммерциялық, жылдам веб-қосымшаларды әзірлеуге арналған есептеу платформасы. (Осы платформамен қолданылатын бағдарламалау тілі де жиі ColdFusion деп аталады, бірақ дәлірек айтқанда CFML деп белгіленеді.) ColdFusion бастапқыда қарапайым HTML беттерін дерекқорына қосуды оңайлату мақсатында жасалған. 2-ші нұсқасында (1996) ол толыққанды сценарий тілімен қатар IDE-ді де қамтитын толық платформаға айналды.
Шолу
ColdFusion-ның ерекшеліктерінің бірі – оның қоса берілген скрипт тілі, ColdFusion Markup Language (CFML). CFML мақсаттары мен мүмкіндіктері тұрғысынан ASP, JSP және PHP скрипттерінің компоненттерімен салыстырылады, бірақ оның тегтік синтаксисі HTML-ге, ал скрипт синтаксисі JavaScript-ке жақын. ColdFusion көбінесе CFML-мен бір мағынада қолданылады, бірақ ColdFusion-нан өзге CFML қолданба серверлері де бар, және ColdFusion CFML-ден басқа да бағдарламалау тілдерін қолдайды, мысалы, серверлік Actionscript және CFScript деп аталатын, JavaScript-ке ұқсас тілде жазылған кіріктірілген скрипттер. Алғашында Allaire компаниясының өнімі ретінде 1995 жылдың 2 шілдесінде жарық көрген ColdFusion-ды Джозеф Дж. Аллаир мен Джереми Аллаир ағайындылары жасаған. 2001 жылы Allaire компаниясын Macromedia сатып алды, ал 2005 жылы Macromedia компаниясы Adobe Systems Inc компаниясымен біріктірілді. ColdFusion көбінесе деректерге негізделген веб-сайттар мен интранеттер үшін қолданылады, бірақ REST қызметтері, WebSockets, SOAP веб-қызметтері немесе Flash қашықтықтан басқару сияқты қашықтық қызметтерін жасау үшін де пайдаланылуы мүмкін. Ол әсіресе клиенттік Ajax үшін серверлік технология ретінде өте ыңғайлы. ColdFusion сондай-ақ ColdFusion MX 7 Enterprise Edition нұсқасында қолжетімді шлюз интерфейсі арқылы SMS және жылдам хабарламалар сияқты асинхронды оқиғаларды өңдей алады.
Басқа ерекшеліктері
6.0 нұсқасына дейінгі ColdFusion-ның барлық нұсқалары Microsoft Visual C++ тілінде жазылған. Бұл ColdFusion-ның негізінен Microsoft Windows жүйесінде жұмыс істеуімен шектелгенін білдірді, алайда Allaire компаниясы 3.1 нұсқасынан бастап ColdFusion-ды Sun Solaris жүйесіне сәтті көшірді. Allaire компаниясы Macromedia-ға, ал кейін Macromedia Adobe компаниясына сатылды. Алдыңғы нұсқалар 4.0 нұсқасынан бастап қолжетімді нұсқаларға қарағанда сенімді болған жоқ. ColdFusion MX 6.0 нұсқасының шығуымен қозғалтқыш Java тілінде қайта жазылды және өзінің жеке орындалу ортасын қолдады, оны конфигурация параметрлері арқылы Sun компаниясының орындалу ортасымен оңай алмастыруға болды. 6.1 нұсқасы Macromedia Flash-ты кодтау және түзету мүмкіндігін қамтиды.
Суық қорыту 3
1997 жылғы маусымда шыққан 3-ші нұсқасы Verity іздеу тетігіне негізделген cfsearch/cfindex/cfcollection мүмкіндіктерін, серверлік кеңістікті және шаблондық кодтауды (кейін "шифрлау" деп аталды) қосты. 1998 жылғы қаңтарда шыққан 3.1 нұсқасы RDS қолдауын, сондай-ақ Sun Solaris операциялық жүйесіне бейімдеуді (порттауды) ұсынды, ал ColdFusion студиясы беттің тікелей алдын ала қарауын және HTML синтаксис тексеру құралын алды.
Суық қорыту 4
1998 жылғы қарашада жарық көрген 4-ші нұсқасында атау "Cold Fusion" дегеннен "ColdFusion" деп өзгертілді, бұл мүмкін салқын ядролық синтез теориясынан ерекшелеу үшін жасалды. Бұл нұсқа cfscript-тің алғашқы іске асырылуын, құлыптауды қолдауды (cflock), транзакцияларды (cftransaction), иерархиялық қателерді өңдеуді (cftry/cfcatch), қауіпсіздік пешін (sandbox security), сондай-ақ cfstoredproc, cfcache, cfswitch сияқты көптеген жаңа тегтер мен функцияларды қосты.
Суық қорыту 4.5
1999 жылы қарашада шыққан 4.5 нұсқасы COM және CORBA сияқты сыртқы жүйелік ресурстарға қол жеткізу мүмкіндігін кеңейтті, сондай-ақ Java интеграциясын бастапқы деңгейде қолдады (EJB, Pojo, servlet және Java CFX-терді қоса алғанда). Бұған қоса, getmetricdata функциясы (жұмыс өнімділігі туралы ақпарат алу үшін), бетті жөндеу кезіндегі шығыста қосымша өнімділік туралы ақпарат, жақсартылған жол түрлендіру функциялары және қалау бойынша бос орындарды жою мүмкіндігі қосылды.
Суық қорыту 5
5-ші нұсқа 2001 жылғы маусымда жарық көрді, күшейтілген сұраныс қолдауы, жаңа есептемелер мен графиктік мүмкіндіктер, пайдаланушылар анықтаған функциялар және жақсартылған әкімшілік құралдары қосылды. Бұл нақты бір платформа үшін жасалған соңғы классикалық кодталған нұсқа және 2001 жылдың 16 қаңтарында жарияланған Allaire Corporation компаниясын сатып алғаннан кейін Macromedia компаниясынан шыққан алғашқы жаңартпа болды.
ColdFusion MX 6 (Қалдықтану)
2000 жылға дейін Эдвин Смит, JRun-дегі Allaire сәулетшісі, кейіннен Flash Player, Том Харвуд және Клемент Вонг "Neo" кодовый атымен жобаны бастады. Бұл жоба кейіннен Java тілінде толығымен қайта жазылған ColdFusion Server екені белгілі болды. Бұл портативтілікті жеңілдетіп, Java Runtime Environment ішінде жұмыс істегендіктен серверде қауіпсіздік қамтамасыз етті. 2002 жылдың маусым айында Macromedia өнімнің 6.0 нұсқасын сәл өзгеше атаумен – ColdFusion MX деп шығарды, бұл өнімді Macromedia брендімен де, оның бастапқы брендімен де байланыстыруға мүмкіндік берді. ColdFusion MX толығымен жаңадан құрылды және Java EE платформасына негізделді. ColdFusion MX, сонымен қатар Flash Remoting арқылы Macromedia Flash-пен үйлесімді жұмыс істеу үшін жасалған. ColdFusion MX шығарылымымен бірге CFML тілінің API-ы объектіге бағытталған интерфейспен (OOP интерфейсі) бірге жарияланды.
ColdFusion MX 7 (Қалқымалы-қозғалтқыш)
2005 жылдың 7 ақпанында ColdFusion 7.0 нұсқасы шығартылып, атау белгілеу қағидасы өзгертілді, өнімнің атауы "Macromedia ColdFusion MX 7" (CFMX7-нің кодтық атауы "Blackstone") болды. CFMX 7 Flash және XForms негізіндегі веб-формаларды, сондай-ақ Adobe PDF, FlashPaper, RTF және Excel пішімдерінде шығаруға болатын есептерді құрастыру құралын қосты. Adobe PDF шығысын кез келген HTML бетіне қаптама ретінде де қолдануға болады, бұл бетті сапалы басып шығаруға болатын құжатқа айналдырады. Кәсіптік нұсқада Gateways қосылды, олар HTTP емес сұрау қызметтерімен, мысалы IM қызметтері, SMS, Directory Watchers және асинхронды орындаумен өзара әрекеттесуді қамтамасыз етеді. Бұл нұсқада XML қолдауы кеңейтіліп, схемаларды тікелей тексеру мүмкіндігі қосылды. ColdFusion MX 7.0.1 (кодтық атауы "Merrimack") Mac OS X қолдауын, Flash формаларын жақсартуды, CFReport үшін RTF қолдауын, Java/CFC интеграциясы үшін жаңа CFCPRoxy мүмкіндігін және тағы да басқаларын қосты. ColdFusion MX 7.0.2 (кодтық атауы "Mystic") Adobe Flex 2 бағдарламасымен жұмыс істеуге арналған кеңейтілген мүмкіндіктерді, сондай-ақ CF Report Builder құралын жақсартуды қамтыды.
Adobe ColdFusion 8 бағдарламасы
2007 жылдың 30 шілдесінде Adobe Systems ColdFusion 8 бағдарламасын шығарды, атауынан "MX" деген сөзді алып тастады. Бета-тестілеу кезінде қолданылған кодтық атау "Скорпион" (зодиактың сегізінші белгісі және коммерциялық өнім ретінде ColdFusion-ның сегізінші нұсқасы) болды. Бета-тестілеу процесіне әлем бойынша 14 000-нан астам әзірлеуші қатысты, бұл Adobe Systems бастапқыда күткен 5 000 тестілеушіден әлдеқайда көп. ColdFusion әзірлеу тобы Ньютон/Бостон (Массачусетс штаты) және Бангалор (Үндістан) қалаларындағы әзірлеушілерден тұрды. Жаңа мүмкіндіктердің ішінде Adobe Acrobat формаларымен интеграцияны қамтамасыз ететін CFPDFFORM тегі, кейбір кескіндерді өңдеу функциялары, Microsoft .NET интеграциясы және Adobe Acrobat Connect (бұрын Macromedia Breeze деп аталған) веб-қосымшасы арқылы динамикалық презентациялар жасауға мүмкіндік беретін CFPRESENTATION тегі бар. Сонымен қатар, ColdFusion әкімшісінің Enterprise нұсқасы серверді бақылау мүмкіндігімен бірге келеді. ColdFusion 8 Linux, Mac OS X және Windows Server 2003 сияқты бірнеше операциялық жүйеде қолжетімді. ColdFusion 8-ге енгізілген басқа да жаңа мүмкіндіктер: Ajax виджеттері, файлдық архивтерді өңдеу (CFZIP), Microsoft Exchange серверімен интеграция (CFEXCHANGE), кескіндерді өңдеу, соның ішінде автоматты CAPTCHA генерациясы (CFIMAGE), көп жіптілік, қолданбаға арналған параметрлер, Atom және RSS ағындары, есеп беру мүмкіндіктерін жақсарту, күшті шифрлау кітапханалары, массивтер мен құрылымдарды жақсарту, деректер базасымен өзара әрекеттесуді жақсарту, өнімділіктің айтарлықтай жоғарылауы, PDF құжаттарын өңдеу және біріктіру мүмкіндігі (CFPDF), интерактивті түзету, Apache Derby базалық дерекқорымен кіріктірілген қолдау және ECMAScript стандартына сәйкес келетін CFSCRIPT. ColdFusion қолданбаларын әзірлеу үшін бірнеше құралдар бар: ең алдымен Adobe Dreamweaver CS4, Macromedia HomeSite 5.x, CFEclipse, Eclipse және басқалары. Осы қолданбаларға жаңа ColdFusion 8 мүмкіндіктерін қосу үшін "Tag updaters" қолжетімді.
Adobe ColdFusion 9 бағдарламасы
ColdFusion 9 (кодтық атауы: Centaur) 2009 жылдың 5 қазанында жарық көрді. CF9-дың жаңа мүмкіндіктері: ColdFusion Components (CFCs) компоненттерін толықтай CFScript-те кодтау мүмкіндігі. Функцияның басында жергілікті айнымалыларды міндетті түрде жариялау қажеттілігін жойған "жергілікті" ауқым. CFC үшін автоматты getter/setter әдістері. "init" әдісі немесе CFC-мен бірдей аталы әдіс арқылы автоматты конструкторлар. Жаңа CFFinally тегі қателерді өңдеу үшін және CFFContinue тегі бақылау ағыны үшін. Объектілік реляциялық бейнелеу (ORM) Hibernate (Java) арқылы дерекқормен интеграция. Серверлік cfc файлы, onServerStart және onServerEnd әдістерімен. Adobe Flex және Adobe AIR-мен жақын интеграция. Word, Excel, SharePoint, Exchange және PowerPoint сияқты маңызды Microsoft өнімдерімен интеграция. Жадты басқару немесе виртуалды файлдық жүйе: қатты дискіні пайдаланудың орнына жадтағы мазмұнды пайдалану мүмкіндігі. Қызметтер ретінде ұсынылған: сервер функцияларына сырттан қауіпсіз қол жеткізу мүмкіндігі.
Ability to code ColdFusion Components (CFCs) entirely in CFScript. An explicit "local" scope that does not require local variables to be declared at the top of the function. Implicit getters/setters for CFC. Implicit constructors via method called "init" or method with same name as CFC. New CFFinally tag for Exception handling syntax and CFContinue tag for Control flow. Object relational mapping (ORM) Database integration through Hibernate (Java). Server. cfc file with onServerStart and onServerEnd methods. Tighter integration with Adobe Flex and Adobe AIR. Integration with key Microsoft products including Word, Excel, SharePoint, Exchange, and PowerPoint. In Memory Management or Virtual File System: an ability to treat content in memory as opposed to using the HDD. Exposed as Services an ability to access, securely, functions of the server externally.
Даму жол картасы
2017 жылдың қыркүйегінде Adobe 2018 және 2020 жылдары күтілетін жол картасын жариялады. 2016 жылғы шығарылымда күтілген негізгі мүмкіндіктердің қатарында жаңа өнімділік мониторы, асинхронды бағдарламалауды жақсарту, жаңартылған REST қолдауы және API менеджерін жақсарту, сондай-ақ 2024 жылға дейін қолдау көрсетуге жоспарланған CF2016 болды. 2020 жылғы шығарылымға қатысты, сол кезде (2017 жылы) күтілген мүмкіндіктер CF қосымша қызметтерінің конфигурациялануы (модульдік құрылымы), жаңартылған скрипттер және объектіге бағытталған қолдау, сондай-ақ API менеджерін одан әрі жетілдіру болды.
PDF- файлдар құру
ColdFusion стандартты HTML-ді пайдаланып PDF құжаттарын жасауға мүмкіндік береді (яғни, басып шығаруға арналған құжаттарды жасау үшін қосымша кодтау қажет емес). CFML авторлары HTML және CSS кодтарын cfdocument тегтерінің (немесе ColdFusion 11 нұсқасында жаңа cfhtmltopdf тегтерінің) арасына орналастырады. Содан кейін жасалған құжатты дискіге сақтауға немесе клиенттің браузеріне жіберуге болады. ColdFusion 8 сонымен қатар PDF нысандарымен қоса PDF құжаттарын басқаруға және PDF файлдарын біріктіруге мүмкіндік беретін cfpdf тегін ұсынды. Алайда, бұл тегтер Adobe-нің PDF қозғалтқышын пайдаланбайды, cfdocument коммерциялық JPedal Java PDF кітапханасы мен ашық кодты Java iText кітапханасының үйлесімін, ал cfhtmltopdf кіріктірілген WebKit орындалысын қолданады.
Салқын қорыту компоненттері (объектілер)
ColdFusion бастапқыда PHP 3 және одан төмен нұсқалары сияқты объектіге бағытталған бағдарламалау тілі болмаған. ColdFusion көптеген мұрагерлікті қолдамайтын ОО тілдерінің санатына жатады (Java, Smalltalk сияқты). MX (6+) нұсқасымен ColdFusion, ОО тілдеріндегі кластарға ұқсас компоненттік тіл құрылымы арқылы негізгі ОО функционалдығын енгізді. Әрбір компонентте кез келген қасиеттер мен әдістер болуы мүмкін. Бір компонент екіншісінен мұрагерлікке өтуі мүмкін (Мұрагерлік). Компоненттер тек бір ғана мұрагерлікті қолдайды. Объектілерді басқару мүмкіндіктері мен өнімділікті жақсарту келесі нұсқаларда жүзеге асты. ColdFusion 8 нұсқасымен Java стиліндегі интерфейстер қолдауға алынды. ColdFusion компоненттері .cfm шаблондарынан ажырату үшін .cfc файл кеңейтімін пайдаланады.
Алыстан шығару
Компоненттік әдістер қосымша кодтау мен конфигурациялаусыз веб-қызметтер ретінде қолжетімді болуы мүмкін. Бұл үшін тек әдістің кіруі "алыстан" деп жариялануы керек. ColdFusion компоненттің URL-да автоматты түрде WSDL-ді мына түрде жасайды: http://path/to/components/Component.cfc?wsdl. SOAP-тан басқа, қызметтер Flash Remoting бинарлық форматында ұсынылады. "Алыстан" деп жарияланған әдістерді HTTP GET немесе POST сұранысы арқылы шақыруға болады. Мысалы, GET сұранысын қарастырайық: http://path/to/components/Component.cfc?method=search&query=your+query&mode=strict. Бұл компоненттің іздеу функциясын шақырып, "your query" және "strict" аргументтерін жібереді. Мұндай шақыру Ajax қолданбалары үшін өте қолайлы. ColdFusion 8 клиенттік жағында пайдалану үшін ColdFusion дерек құрылымдарын JSON форматына түрлендіру мүмкіндігін енгізді. ColdFusion сервері компоненттің URL-іне өтіп, компоненттің декларациясына тиісті кодты қоссаңыз, компонент үшін құжаттаманы автоматты түрде жасайды. Бұл ColdFusion компоненттерін әзірлейтінтерге қолжетімді компоненттік интроспекцияның бір қолданысы. Компонент құжаттамасына қол жеткізу үшін пароль талап етіледі. Әзірлеуші ColdFusion серверіне белгілі барлық компоненттердің құжаттамасын ColdFusion URL-і арқылы көре алады. Бұл интерфейс Java кластарының Javadoc HTML құжаттамасына ұқсас.
This will invoke the component's search function, passing "your query" and "strict" as arguments. This type of invocation is well suited for Ajax enabled applications. ColdFusion 8 introduced the ability to serialize ColdFusion data structures to JSON for consumption on the client. The ColdFusion server will automatically generate documentation for a component if you navigate to its URL and insert the appropriate code within the component's declarations. This is an application of component introspection, available to developers of ColdFusion components. Access to a component's documentation requires a password. A developer can view the documentation for all components known to the ColdFusion server by navigating to the ColdFusion URL. This interface resembles the Javadoc HTML documentation for Java classes.
Өзіндік белгілер
ColdFusion-да арнайы таңбалау тілінің тегтерін, яғни негізгі ColdFusion тілінде жоқ тегтерді іске асырудың бірнеше тәсілі бар. Бұл тегтер, әсіресе HTML-мен таныс, бірақ императивті бағдарламалауды білмейтін веб-дизайнерлер мен мазмұн авторлары үшін таныс интерфейс ұсыну үшін өте пайдалы. Дәстүрлі және ең көп таралған тәсіл – CFML қолдану. Стандартты CFML беті тег ретінде қарастырылуы мүмкін, онда тег атауы файл атауымен сәйкес келеді және алдынан "cf" префиксі қойылады. Мысалы, IMAP.cfm файлы "cf imap" тегі ретінде қолданылуы мүмкін. Тег ішінде қолданылатын атрибуттар тегтің іске асырылу бетіндегі ATTRIBUTES ауқымында қолжетімді. CFML беттеріне шақырушы бетпен бірге сол каталогта, ColdFusion веб-қосымшасындағы арнайы каталог арқылы немесе шақырушы беттегі CFIMPORT тегі арқылы қол жеткізуге болады. Соңғы тәсіл міндетті түрде "cf" префиксін қажет етпейді. Екінші тәсіл – Java немесе C++ қолданып CFX тегтерін жасау. CFX тегтері "cfx" префиксімен беріледі, мысалы "cfx imap". Тегтер ColdFusion орындау ортасына ColdFusion әкімшісі арқылы қосылады, онда JAR немесе DLL файлдары арнайы тегтер ретінде тіркеледі. Соңында, ColdFusion JSP 2.0 тілінің ерекшеліктеріне сәйкес JSP тегтер кітапханаларын қолдайды. JSP тегтерін CFML беттеріне CFIMPORT тегін пайдаланып қосуға болады.
ColdFusion және Java
ColdFusion стандартты орнату ColdFusion-ды WAR файлы немесе EAR файлы түрінде Macromedia JRun және IBM WebSphere сияқты дербес қолданба серверлеріне орналастыруға мүмкіндік береді. ColdFusion Apache Tomcat және Mortbay Jetty сияқты сервлет контейнерлеріне де орналастырылуы мүмкін, бірақ бұл платформалар ColdFusion-ды ресми түрде қолдамайтындықтан, оның көптеген мүмкіндіктері қолжетімсіз болады. ColdFusion 10 нұсқасынан бастап Macromedia JRun Apache Tomcat-пен алмастырылды. ColdFusion Java EE қолданбасы болғандықтан, ColdFusion кодын Java сыныптарымен біріктіріп, әртүрлі қолданбалар жасауға және қолданыстағы Java кітапханаларын пайдалануға болады. ColdFusion барлық Java кластарына қол жеткізе алады, JSP-нің арнайы тегтер кітапханаларын қолдайды және JSP беттік контекстін (GetPageContext) алғаннан кейін JSP функцияларын пайдалана алады. ColdFusion 7.0.1 нұсқасына дейін ColdFusion компоненттерін Java немесе .NET арқылы тек веб-қызметтер ретінде жариялап қана пайдалануға болады еді. Бірақ ColdFusion MX 7.0.1 нұсқасынан бастап, ColdFusion компоненттерін CFCProxy класын қолдана отырып, Java сыныптарында тікелей пайдалануға болады. Соңғы кезде Jython, Groovy және JRuby сияқты балама тілдерді пайдаланып Java-ны дамытуға қызығушылық артып келеді. ColdFusion осы Java дамыту стилін қолдауға мүмкіндік берген алғашқы скрипт платформаларының бірі болды.
ColdFusion және .NET
ColdFusion 8 CFML синтаксисінде NET-ті түпнұсқа түрде қолдайды. ColdFusion әзірлеушілері ешқандай өзгеріс немесе қайта компиляциялау қажеттілігінсіз кез келген NET жинастығын шақыра алады. Дерек түрлері ColdFusion мен NET арасында автоматты түрде аударылады (мысалы: NET DataTable → ColdFusion Query). Java EE өнімдерін ұсынатын компаниялар үшін ерекше мүмкіндік ретінде, ColdFusion 8 прокси арқылы (NET Remoting пайдаланбай) NET жинастықтарына қашықтықтан қол жеткізуге мүмкіндік береді. Бұл ColdFusion қолданушыларына Windows операциялық жүйесіне орнатпастан NET-ті пайдалануға болады.
Қысқартылған сөздер
ColdFusion Markup Language сөзінің аббревиатурасы CFML болып табылады. ColdFusion үлгілері дискіге сақталғанда, оларға әдетте cfm немесе cfml кеңейтімі беріледі. cfc кеңейтімі ColdFusion компоненттері үшін қолданылады. Алғашқы кеңейтім DBM немесе DBML болған, ол Database Markup Language дегенді білдірген. ColdFusion туралы әңгіме қозғалғанда, көптеген қолданушылар CF аббревиатурасын пайдаланады, және ол пайдаланушылар топтары (CFUG) және сайттар сияқты көптеген ColdFusion ресурстары үшін қолданылады. CFMX – ColdFusion 6 және 7 нұсқаларының жиі қолданылатын аббревиатурасы (әлде ColdFusion MX).