Категорія: Blogs
Що собою являє Railo Enterprise Bundle?
Цей текст є перекладом оригінальної публікації Шона Корфілда What is the Railo Enterprise Bundle?
Я отримав кілька запитань щодо Railo Enterprise Bundle, тому вирішив, що буде непогано написати відповідь для всіх до блогу.
Зазвичай питання ставляться у формі "що є в корпоративній версії, чого немає у безкоштовній?", але зважаючи на відомі типи комплектації та рівні цін від Adobe та New Atlanta, не є дивним сприйняття Railo Enterprise Bundle як трохи іншого типу "комплектації" серверу, котрий коштує грошей (та, відповідно, має більше можливостей).
Можливо, ми обрали трохи неточне ім'я для неї, але "пакунок" (bundle) якраз це й означає: набір речей, котрі ви можете придбати разом, але за зменшеною ціною. Отже, що входить до цього набору?
- FusionReactor Enterprise Server Monitor
- FusionDebug Interactive Step Debugger
- Всі поточні комерційні додатки Railo
На додаток, ви отримаєте рік Срібної (Silver) підтримки від Railo та рік супроводу (maintenance) від FusionReactor та FusionDebug. І ви економите гроші, ніж купуючи компоненти окремо.
Давайте розберемо набір докладніше...
Набір включає ліцензію на FusionReactor Enterprise з річним супроводом, що зазвичай коштує $799. Це звичайний продукт, що ви можете придбати у Intergral, розробників FusionReactor.
Набір також включає серверну ліцензію FusionDebug. Це трохи відрізняється від того, що ви можете придбати у Integral на сьогодні. Вони пропонують ліцензію для одного клієнта (за $399 з роком супроводу) та 5 клієнтських ліцензій (за $1495 з роком супроводу). В наборі ж Railo ви отримуєте серверну ліцензію FusionDebug, що не має обмежень на кількість клієнтів. Цінність цього залежить від кількості ваших розробників, котрі матимуть потребу виконувати сесії налагоджування (debug) на сервері, де буде встановлено набір :)
З огляду на те, що налагоджування відбувається на рівні JVM серверу, ви можете мати тільки одне активне з'єднання в даний момент, але кількість розробників, що можуть встановити FusionDebug та приєднатися до серверу, не обмежена.
Які ж є комерційні додатки до Railo:
- CFVIDEO - $100 / server
- Amazon S3 - $100 / server
- URL Spidering for CFSEARCH - $100 / server
- Cluster Scope - $200 / server
- Administrator Synchronization - $200 / server
- Caching (memcached, ehCache, distributed caching etc) - $200 / server
Ціна всих додатків складає $900, також ви отримуєте кожне оновлення та виправлення для додатків протягом року.
І на додаток до цього ви отримуєте місяць Silver Support для вашого серверу, що включає чотири години консультацій, та, як і в інших пакетах підтримки, гарантований договором про підтримку (SLA) час відповіді на проблеми, а також знижку на будь-які додаткові консультації, що можуть вам знадобитися. Silver Support зазвичай коштує $999 за сервер.
Повертаючись до найпершого питання, єдиною чисто корпоративною "можливістю" в наборі Railo є прив'язка до серверної ліцензії для FusionDebug, так що ви можете мати необмежене чисто клієнтів для налагоджування на сервері (зазвичай FusionDebug ліцензується якраз за кількістю клієнтів). В решті, Railo сервер є тим самим Railo сервером -- з тою самою підтримкою CFML та функціональністю, тою самою швидкодією, тими самими інноваційними можливостями, що ви знайдете у вільній відкритій версії.
З Railo Enterprise Bundle йдеться про вигідний за ціною шлях отримання найкращих в галузі засобів для моніторингу та налагоджування, додатків для складних, великих веб сайтів, та про рік підтримки та супроводу з можливістю додаткового консультування зі знижкою.
Очікуйте більше публікацій наступними тижнями від команди Railo щодо FusionReactor Server Monitor та FusionDebug CFML Debugger, а також докладніший розгляд можливостей комерційних додатків.
Переклад українською: Сергій Галашин.
FuseNG -- ненароджене дитя
Незважаючи на певний оптимізм, проявлений спільнотою кілька місяців тому з приводу спроби переродження Fusebox, породжений заявою головного розробника останнього Адама Хаскеля про початок роботи над FuseNG, мріям не було суджено здійснитися. Суть подій була в тому, що компанія Teratech гальмувала розвиток Fusebox, через що фреймворк поступово відставав від розвитку подій в галузі, тому Адам зробив спробу витворити гілку проекту, повністю підтримувану спільнотою, аби надати проектові другий шанс.
На жаль, виявилися правими скептики, що не вірили в успіх цієї ініціативи.
Як повідомив Адам в своєму блозі, він не має наснаги підтримувати фреймворв, котрим сам не користується.
Фактично це означає поступове вмирання Fusebox, точніше продовження цього без особливих шансів на воскресіння.
Шкода, він досі є моїм першим та улюбленим фреймворком.
Application.cfc на CFScript
Всі CF-розробники знають про Довідку з Application.cfc від Рея Кемдена, що довгий час є дороговказом для учасників спільноти.
Стів Блейдс зробив аналогічну річ для CF9, написану на чистому CFScript.
Новини CF-OpenSource v7
Андреа Камполоньї повідомив про реліз його додатку, що реалізує EM-парадігму (events based) для CFML.
Update to CFML Framework Skeletons – Eclipse Plugin
Роберт Бернс повідомив про оновлення свого корисного додатку для Eclipse, що допомагає створювати скелети проектів для різних фреймворків. В цьому релізі були додані FW/1 та LightFront.
ColdBricks 1.1 Update: Custom Resource Libraries & Extension Modules
Оскар Еревало повідомив про деякі оновлення ColdBricks CMS, котрі є підготовкою до стабільного релізу 1.1.
Випущено оновлення популярного CF-блогу, багато з яких зачіпають клієнтську (JavaScript) частину.
Розширення для Adobe ColdFusion Administrator, що дозволяє виконувати прямі запити (тут -- queries) до колекцій Verity та Solr (в залежності від версії серверу)
Спроба реалізації CRUD-додатку, з доволі широким спектром можливостей.
CFML кастом теґ-обгортка для включення на сторінку FLV, MP3, MP4 та AAC файлів з використанням JW FLV Player.
Дуже рання версія схожого продукту, з опису навіть докладно не зрозумілі його можливості :)
Проста реалізація REST апі для Fusion Reactor, фактично поки підтримує тільки читання метрик сервера в XML форматі.
Реалізація кешування в CFWheels за допомогою додатку Cachebox.
Простий та маленький wiki-двигунець.
Клон рубі-фреймворку Sinatra, поки в ранній стадії розробки.
Що обрати для Client Storage: Registry чи Datasource
Марк Кругер докладно розповів про те, чому потрібно запобігати використанню реєстру для зберігання клієнтських змінних (client variables).
Він навів приклад, коли за кілька місяців (за умовчанням 90 днів) Adobe ColdFusion починає періодично очищувати реєстр (знову-таки, за умовчанням кожні 67 хвилин), що призводить до несподіваних "залипань" сервера.
Цікаво, що ця проблема стосується й Linux, де реєстр просто емулюється в текстовому файлі (/coldfusion8/registry/cf.registry).
Він слушно зауважив про те, що напевно запобігти використанню цих змінних дуже складно, навіть якщо розробник запевняє, що не користується ними.
Тож він пропонує використати окрему базу (MySQL чи SQL Server цілком підійдуть) та відповідне джерело даних (datasource) для зберігання клієнтських змінних -- з прикладами, та наводить кілька порад щодо ефективного використання цьго методу.
Насамкінець він розповідає про кілька проблем, що можуть спіткати на шляху впровадження цієї оптимізації, особливо коли це стосується налаштувань вже робочого серверу.
Про все це докладно та з прикладами читайте в дописі Марка.
Вектор Script Injection атаки
Марк Кругер (Mark Kruger) знову робить корисну справу: досліджує можливість проведення Script Injection атаки через завантаження (upload) шкідливого скрипта.
Він розглядає послідовність кроків для "обману" скрипта завантаження, котрий хоч і проводить перевірку даних, але має розповсюджену вразливість, на котру рідко звертають увагу: завантаження відразу відбувається в публічно доступну директорію. Завдяки затримкам між етапами обробки є можливість виконати шкідливий скрипт до того, як його буде видалено.
Також приводяться кілька порад (здавалося б, очевидних для досвідченого розробника) щодо покращення загальної безпеки ресурсів з можливістю завантаження файлів користувачами.
Про все це дещо докладніше в Script Injection Attack: Smoking Gun?
Найбільшою проблемою дослідження наслідків такої атаки є труднощі з ідентифікацією шкідливих скриптів, адже вони вже не існують пост-фактум. Особисто я використовую два обробники помилок 404 в Application.cfc: один слугує для запису помилок, перенапрямлених з веб-серверу (фейкова сторінка 404.cfm), інший -- для заптів до недозволених cfm-сторінок (дозволені зазвичай index.cfm та wsdl.cfm - для веб-сервісів). Це дає деяку інформацію у випадку спроб дослідження додатку через навмисні запити до неіснуючих сторінок.
Відповіді на поширені питання щодо ORM в ColdFusion 9
Теренс Райян (Terrence Ryan) відповідає на деякі поширені питання щодо ORM в CF9. Зокрема пояснює базову різницю між паттернами Data Mapper та Active Record, чому для ColdFusion було обрано саме паттерн перший з них та розкриває деякі особливості його реалізації.
Новини CF-OpenSource v5
Невеличкий огляд на сьогодні
Як повідомляє автор, цей фреймворк для кешування майже "дозрів" до релізу.
Майже те саме можна зауважити про вже відомий нам фреймворк CFWheels.
Додаток до Fusebox, що дозволяє швидко інтегрувати існуючі рішення з кешування для CF, зокрема вищезгаданий CacheBox, а також cfMemcached та навіть EHCache з комплекту CF9.
Анонімний автор повідомив про початок розробки аналога WordPress на CF. Сподіваюся, що з нього вийде добрий конкурент існуючим рішенням.
Чому Railo кермує як платформа для Saas
Розробники з компанії Straker зробили свій внесок до популярної теми для обговорення в спільноті: Railo vs ColdFusion.
Вони стверджують, що в одному з аспектів Railo є безумовним лідером. Як платформа для Software as a Service рішень.
Переваги було згруповано за чотирма категоріями: масштабованість, безпека, ціна, оновлення.
В коментарях було слушно зауважено, що суттєвим мінусом є складність розгортання, особливо на тонко налаштованих системах. Також там відмітився Адам Леман, продукт менеджер ColdFusion, з альтернативними думками щодо кожного пункту.
Докладно про всі ці речі читаємо в Why Railo kicks butt for ColdFusion based SaaS.
Анонсовано The For ColdFusion Foundation (4CFF)
На минулій CFUnited Джейсон Делмор анонсував 4CFF, пізніше про це також повідомив у своєму блозі.
Маніфест фонду звучить наступним чином.
The For ColdFusion Foundation (4CFF) є некомерційною організацією, покликаною допомогата ColdFusion спільноті в будь-якій доступній формі. Первинними напрямками роботи є: створення співтовариства професіоналів світового рівня; надання підтримки OpenSource спільноті задля створення гарного програмного забезпечення на ColdFusion.
Якщо ви зацікавлені дізнатися про те, хто ми є та як плануємо допомагати, завітайти до розділу "Про нас" та "ЧаПи". Якщо ви зацікавлені в тому, щоб приєднатися до фонду, долучіться до груп обговорення і ми надішлемо вам дані щодо приєднання відразу як підготуємо їх. Якщо ви бажаєте стати спонсором, зв'яжіться з нами.
Більше можна буде прочитати на сайті 4CFF, зокрема побачити, що серед організаторів присутні чимало знайомих облич.
Чекатимемо на розвиток подій, сподіваюся з цього вийде щось путнє.
Про Adobe MAX 2009 з гумором
Щойно вляглися хвилі відгуків після CFUnited, а спільнотає вже починає готуватися до нової великої події: Adobe MAX 2009. Як водиться, Бен Форта опублікував список доповідей про CF 9.
Серед інших виділився Філіп Керман (Phillip Kerman), котрий зроби відео-пародію Бівіс та Батхед їдуть на MAX.
Статті про основи ORM/Hibernate в ColdFusion 9
Марк Мендел (Mark Mandel, compoundtheory.com) опублікував цикл статей, що висвітлюють основи ORM в Centaur.
- Introducing ORM in Adobe ColdFusion 9 beta на Adobe DevNet.
- ColdFusion 9 ORM - Explaining Hibernate Sessions
- ColdFusion 9 ORM - More on Flushing Hibernate Sessions
- ColdFusion 9 ORM - Explaining Hibernate Object State
Сподіваюся, на цьому етапі він не закінчить цю справу та продовжить висвітлювати цю перспективну та цікаву тему.
Найміть Community Expert працювати
Цікаве питання про роботу в галузі було підняте в пості Шона Корфілда (Sean Corfield).
Крім обговорення загальної ситуації та порад було визначено кілька причин того, чому компанії побоюються пропонувати роботу добре відомим учасникам спільноти (Community Expert в термінах Adobe).
Зокрема було сказано, що вони дуже багато часу приділяють спільноті :)
Мається на увазі, що вони багато виступають на конференціях, пишуть в блоґи/twitter, беруть участь у відкритих проектах і тому не мають часу працювати. Звісно, малося на увазі працювати повний робочий день, як це роблять "звичайні" програмісти.
Крім того, виявляється, є побоювання щодо того, що такий експерт почне навчати програмістів всіляким новим технологіям та методикам та навіть "кидати виклик" керівництву компанії в сенсі зміни принціпів управління.
І все це замість того, щоб просто радісно ковбасити код разом з колегами-програмістами ("work happily with their peers and code like a demon").
Мабуть, така позиція роботодавців має право на існування, хоча є й дещо спірною. Зокрема, варто подумати над тим, які позитивні рухи та оновлення може принести в компанію подібний спеціаліст. Як програміст, я б із задоволенням попрацював би в компанії такої людини, бо це дуже добрий шанс отримати гарний досвід.
На цій оптимістичній ноті започатковуємо нову категорію Subjective.
Пропозиція щодо нового OSS проекту від Hal Helms
Гол Гелмс (Hal Helms) нещодавно виніс на розгляд спільноти пропозицію розробки відкритого e-commerce рішення на базі ColdFusion та AJAX.
Долучитися до обговорення можна в його блозі, в повідомленнях Update on "Ideas" та Project Serenity.
Учасники UACFUG також розмірковують над тим, щоб долучитися до цієї, без сумнівів, корисної та цікавої ініціативи.
Підміна MIME типу при завантаженні .cfm файлів на сервер
Днями прокотилася хвиля серйозних порушень роботи сайтів та навіть цілих ColdFusion серверів, пов'язана з використанням вразливості, коли підміна MIME типу завантажуваного файлу дозволяла залити .cfm скрипт та виконати його.
Ось простий приклад як це можна зробити:
<cfhttp url="http://target.example.com/upload" method="post">
<cfhttpparam file="#ExpandPath("badstuff.cfm")#"
mimetype="image/gif"
type="file"
name="photo">
</cfhttp>
Така проста конструкція легко дозволяє обійти вбудовану перевірку типу:
<cffile action="upload"
filefield="photo"
accept="image/gif,image/jpeg"
destination="#ExpandPath("./photos/")#">
Приклади було взято з посту Піта Фрейтаґа (Pete Freitag), в якому він наводить рекомендації щодо захисту від подібних атак.
Зокрема, можна використати вбудовані функції IsImageFile("path") (з урахуванням вже описаної проблеми) та IsPDFFile("path"), використовувати окремий сервер (простіше кажучи, окремий домен - скажімо з nginx - для швидкодії) для статичного вмісту (як то Amazon S3), користуватися можливостями Sandboxing (якщо у вас CF Enterise), відключати можливість виконання скриптів для тек завантаження та іншими методиками.
Ці та інші поради описані у вищевказаному повідомленні, також варто звернути увагу на коментарі до нього, там теж є слушні поради.
Також варто звернути увагу на аналогічне повідомлення Брента Фрая (Brent Frye), котрий зазнав серйозних неприємностей через описану проблему, тому теж уклав список порад для її обходу.
Fig Leaf запустила блоґ
Big Leaf – одна з найстаріших та найвідоміших компаній, що багато років займається розробкою на ColdFusion, створє веб-сайти для сенаторів, державних установ та відомств США, займається сертифікацією CF-програмістів та іншими корисними проектами.
Отже, компанія цього тижня запустила власний блоґ, з огляду на озвучені плани, має бути цікаво.
Робота з таблицями Excel в ColdFusion 9
Вчора Бен Форта розкрив ще одну новинку з CF Centaur.
Цей пост є вільним перекладом оригінальної замітки Working With Spreadsheets In ColdFusion.
Таблиці Excel (далі просто "таблиці" - прим. перекл.) дуже важливі для багатьох компаній та організацій, тому ColdFusion програмісти давно прагнули працювати з ними програмно. Справа в тому, що ColdFusion підтримував доступ до таблиць різними шляхами, навіть можна було їх читати через ODBC драйвер, також можна було створювати їх за допомогою CFReport, а ще створювати HTML і CSV файли та встановлювати потрібний MIME-тип щоб оглядач міг корректно відкрити їх в Excel.
Але програмісти прохали про більше, про більші можливості контролю, в тому числі про роботу зі специфічними частинами файлів таблиць. Як було показано в моїй (Б.Ф. - прим. перекл.) презентації минулого тижня, це вже заплановано в ColdFusion "Centaur".
Так само як це було з малюнками, робота з таблицями в ColdFusion відбувається за допомогою теґів чи функцій, або їх комбінацією. Теґ <CFSPREADSHEET> призначено для читання (до об'єкту таблиці, query, CSV рядка чи HTML), запису до XLS файлів, а також додавання до них сторінок. Більш ніж 30 функцій, таких як SpreadsheetSetCellValue(), SpreadsheetAddRow() та SpreadsheetSetCellFormula() призанчено для дрібніших маніпуляцій, та може бути використано разом з допоміжними функціями, як то SpreadsheetNew() для створення об'єкту таблиці, SpreadsheetInfo() для діставання заголовку, листів та інших атрибутів.
Ось деякі приклади з моїх (Б.Ф. - прим. перекл.) презентацій.
Перший приклад читає всю таблицю до query та друкує її зміст (dumps the contents - прим. перекл.).
<!--- Read spreadsheet --->
<cfspreadsheet action="read"
src="Sales.xls"
query="myQuery">
<cfdump var="#myQuery#">
Другий приклад читає конкретну ячейку таблиці до змінної.
<!--- Read a spreadsheet cell --->
<cfspreadsheet action="read"
src="Sales.xls"
name="myVar"
sheet="1"
rows="C"
columns="3">
<cfdump var="#myVar#">
<CFSPREADSHEET> також використовується для запису (чи перезапису) файлу таблиці:
<!--- Write spreadsheet --->
<cfspreadsheet action="write"
overwrite="true"
filename="Sales.xls"
name="sObj" />
Щоб оновити вміст ячейки вам потрібно прочитати, оновити її та записати файл:
<!--- Read spreadsheet --->
<cfspreadsheet action="read"
src="Sales.xls"
name="sObj" />
<!--- Set cell value --->
<cfset spreadsheetSetCellValue(sObj, FORM.sales, FORM.row, FORM.col)>
<!--- Write spreadsheet --->
<cfspreadsheet action="write" overwrite="true"
filename="Sales.xls"
name="sObj" />
Цей приклад використовує дані з форми для оновлення ячейки.
Звісно, є ще багато інших можливостей, але ідея зрозуміла.
Також, <CFSPREADSHEET> підтримує таблиці Excel та OpenOffice.
Також, питання підіймалося кілька разів, тому варто про нього згадати. Так само як в інших випадках доступу до файлу (наприклад, використання <CFFILE> чи <CFIMAGE>), вам би не хотілося одночасного доступу, тому варто використовувати <CFLOCK>, блокування для читання при читанні, повне блокування для запису, використання іменованих блоків (скажімо, з ім'ям файлу таблиці в якості імені блоку).