Wprowadzenie do Railo Open Source
Railo to serwer aplikacji Java o otwartym kodzie źródłowym, który implementuje CFML (ColdFusion Markup Language), język oparty na tagach z komercyjnego produktu Adobe “ColdFusion.”Jego wydajność jest doskonała i zawiera funkcje, które znacznie zwiększają produktywność.
Railo jest stosunkowo nowym graczem, ale ostatnio robi wrażenie w branży. Ten artykuł jest wstępem do niektórych krytycznych zalet Railo i dlaczego warto poważnie przyjrzeć się tworzeniu aplikacji internetowych.
czy ColdFusion nie umarł?
kilka lat temu opublikowano artykuł wymieniający 10 technologii, które były martwe lub umierające, i ku zaskoczeniu wielu ludzi, ColdFusion znalazł się na tej liście. To wywołało wiele fal. Jedna rzecz o programistach CFML-są pasjonatami swojego języka programowania!
ColdFusion odniósł umiarkowany sukces na określonych rynkach wertykalnych, ale został dobrze przyjęty przez rząd USA. W porównaniu z dominującymi językami rozwojowymi, CFML nigdy nie znalazł prawdziwej przychylności wśród mas. Ponieważ ColdFusion został przeprojektowany tak, aby działał w całości w Javie, a wraz z pojawieniem się Adobe Flex kilka lat temu, który integruje Flash i ColdFusion, sytuacja ta uległa znacznej zmianie. Produkt Adobe ColdFusion tak dobrze integruje się z flexem, że wzbudził nowe zainteresowanie.
jedną z największych skarg dotyczących Adobe ColdFusion zawsze była cena. Z doświadczenia wiem, że programiści CFML uważają się za branżowych rówieśników programistów LAMP (Linux, Apache, MySQL, PHP), którzy używają wszystkich narzędzi open source. Większość programistów LAMP uważa swoje umiejętności za znacznie wyższe niż programistów CFML. To tylko karmiło furię przez lata programistów CFML, którzy twierdzą, że inwestycja w zakup ColdFusion jest szybkim zwrotem z inwestycji, ponieważ CFML jest o wiele bardziej wydajny.
teraz pojawia się Railo, oferujące bezpłatne i otwarte rozwiązanie dla programistów CFML. Nie tylko jest darmowy, ale także działa fantastycznie, jest stabilny i jest aktualizowany dość często. To dobra wiadomość dla CFML, który jest, moim zdaniem, bardzo niedoceniany, głównie ze względu na słabe punkty marketingowe i sprzedażowe na przestrzeni lat. CFML jest w rzeczywistości dość potężnym i zaskakująco wydajnym językiem i został zaprojektowany jako narzędzie RAD (Rapid Application Development). Stał się znacznie lepszym produktem i z pewnością zasługuje na większy szacunek niż miał. Ale dość o CFML, porozmawiajmy o tym, dlaczego uważam, że Railo jest tak imponujące i co wyróżnia się na tle konkurencji.
co można zrobić z Railo?
być może najlepszym sposobem na odpowiedź jest powiedzenie: “czego nie możesz zrobić z Railo?”Język CFML jest zasadniczo dużą biblioteką znaczników java. CFML z biegiem lat stał się imponującą biblioteką, A Railo obsługuje wszystko, co obsługuje produkt Adobe, który jest w powszechnym użyciu. (Istnieje pewna różnica między wsparciem, ponieważ zarówno Railo, jak i Adobe wydają nowe wersje swoich produktów).
podstawowe cechy języka Railo zapewniają łatwe do nauczenia tagi dla wszystkiego, od zapytań do bazy danych, wysyłania dynamicznych wiadomości e-mail do połączeń skryptowych z ftp i Amazon S3 storage. Prawie wszystko, co możesz zrobić z PHP, możesz zrobić z Railo. Oto haczyk-ogólnie rzecz biorąc, wdrożenie rozwiązania przy użyciu CFML zajmuje mniej czasu niż w przypadku PHP, ASP.net albo czysta Java.
użyj CFML dla podstaw; Rozszerz używając Javy.
podczas gdy Railo daje Ci wiele wbudowanych funkcji, prawdziwa prawda jest taka, że jest to Java pod maską. Wszystkie znaczniki i funkcje są ostatecznie kompilowane i uruchamiane jako kod bajtowy Javy. Język jest jednak dobrze zaprojektowany, aby można było łączyć i dopasowywać kod CFML i Java.
na przykład, jeśli chcesz czytać w pliku tekstowym, możesz użyć wbudowanego znacznika cffile:
<cffile action= "read" file = " C: webmessage.txt "variable=" strContent " ></cffile>
odczytuje zawartość pliku tekstowego i zapisuje go w podanej zmiennej.
aby wyświetlić tę zawartość w przeglądarce internetowej, wyprowadzisz ją w ten sposób:
< cfoutput> #strContent # </cfoutput>
aby zilustrować, jak Java może być używana bezpośrednio w kodzie, to samo zadanie można wykonać przy użyciu obiektów Java zamiast wbudowanych tagów CFML w ten sposób:
<cfobject type = "Java" class=" java.io.FileReader"Action=" Create"name = "myFileReader" ><Cfset Result = fileReader.init ("c: webmessage.txt");<cfoutput> # strContent # < / Cfoutput>
te dwa małe fragmenty kodu osiągają te same cele. Chodzi mi o to, że język CFML nie jest ograniczony tylko do CFML, możesz tworzyć instancje i używać dowolnego obiektu Java w dowolnym miejscu w kodzie.
to sprawia, że język jest niezwykle elastyczny, ponieważ możesz używać znaczników CFML do szybkich i łatwych zadań, a w razie potrzeby używać Javy do ciężkich zadań.
środowiska wdrożeniowe i programistyczne
wszystkie wersje Railo można pobrać jako wdrożenie “express”, “server” lub “custom”. Wersja express jest niezwykle łatwa dla programistów do uruchomienia i zwykle polega na dekompresji pliku zip na lokalnym systemie i uruchomieniu go. Pakiet serwera zawiera Caucho Resin, bardzo wydajny serwer aplikacji java. (Uwaga-Niektóre narzędzia zawarte w żywicy są również imponujące, w tym ich całkowicie java implementacja PHP!). Niestandardowy pakiet wdrożeniowy służy do uruchamiania Railo na innych kontenerach Java servlet, takich jak Tomcat lub Weblogic.
skonfigurowanie Railo na serwerze produkcyjnym nie było trudne, co prawda jest to nieco bardziej zaangażowane niż instalacja rpm-ów ulubionej wersji PHP, ale dokumentację można było łatwo znaleźć na stronie Railo i innych stronach znalezionych przez Google.
podobnie jak produkt Adobe, Railo zawiera narzędzia administracyjne do zarządzania ustawieniami i zasobami serwera i aplikacji. Jest to duży krok naprzód w świecie PHP i Linuksa, gdzie zwykle musisz skonfigurować wiele ustawień swojej aplikacji (na przykład źródła danych) w plikach konfiguracyjnych. Administrator Railo wychodzi również kilka kroków poza Adobe i udostępnia Konsole administracyjne specyficzne dla kontekstu, dzięki czemu poszczególne aplikacje i strony internetowe mogą definiować własne źródła danych w piaskownicy, mapowania wirtualne i inne. Jest to naprawdę miły akcent i od dawna pożądana funkcja.
gdzie Railo świeci
przejrzałem już niektóre powody, dla których Railo robi wrażenie. Oprócz tego, że jest bardzo potężny RAD, z wydajnością, która konkuruje lub bije Adobe, Railo wyróżnia się jeszcze bardziej imponującymi funkcjami.
wirtualne systemy plików i mapowania
jako programiści wszyscy mieliśmy do czynienia z zarządzaniem zdalnymi lub skompresowanymi plikami w tym czy innym czasie. Ta funkcja w Railo robi za pomocą kilku kliknięć myszką to, co zajmuje setki linii kodu. Railo pozwala mapować zdalne systemy plików, takie jak FTP, udziały dyskowe, a nawet wiadra Amazon S3 i przypisać je do wirtualnej ścieżki w aplikacji! Oznacza to, że możesz użyć prostych wbudowanych funkcji do manipulacji plikami i traktować te pliki tak, jakby znajdowały się bezpośrednio w lokalnym systemie plików. Wsparcie idzie jeszcze dalej i pozwala mapować pliki Java jar i .pliki zip, dzięki czemu można dynamicznie odwoływać się i uruchamiać kod znajdujący się wewnątrz skompresowanych archiwów.
konfigurowanie nowych mapowań jest sprawą typu point-and-click w administratorze Railo lub można to zrobić programowo.
dystrybucja aplikacji i bezpieczeństwo kodu źródłowego
świat Javy zawsze był o krok (w porządku, kilka kroków) przed programistami aplikacji internetowych w pakowaniu i dystrybucji aplikacji. Wielu programistów ma własne metody wdrażania witryny, a wiele aplikacji do tworzenia stron internetowych, takich jak Dreamweaver, ma metodę wdrażania opartą na FTP. Ostatecznie zazwyczaj oznacza to przekazanie niezabezpieczonego kodu źródłowego.
rozwój CFML był taki sam (tak, Adobe miał sposób na kompilację .szablony cfm, ale moje badania pokazują, że jest zarówno niezdarny w użyciu, jak i niezbyt popularny). Railo wprowadza wdrożenie pakietu “Java world” do CFML development. Możesz skompilować całą aplikację do kodu bajtowego Java, skompresować go do pliku jar i wdrożyć na dowolnym innym serwerze Railo. Railo jest nawet wystarczająco inteligentny, aby umożliwić mapowanie zdalnego pliku jar na witrynie FTP i uruchamianie go jako lokalnej aplikacji internetowej. Oznacza to, że masz wszystkie narzędzia potrzebne do wdrażania aplikacji internetowych i nie ujawniać źródła.
Wbudowana obsługa AMF dla aplikacji Flex/Flash
od czasu, gdy Adobe open-source udostępniło swoje narzędzia BlazeDS AMF, Railo zintegrowało je, tworząc łatwy w użyciu system, który “po prostu działa” z aplikacjami Flash.
integracja między aplikacjami, manipulacja plikami PDF i wideo
CFML ma już duże możliwości integracji z ogromną liczbą systemów bazodanowych i może być rozszerzony do wykorzystania dowolnego z ogromnej liczby projektów Java open source.
Railo może być używany do rozmów z Amazon Web Services, takimi jak EC2 i S3 w aplikacjach cloud computing. Railo ma również wbudowane funkcje konwersji plików, takie jak dynamiczne generowanie plików PDF oraz programowa Edycja i konwersja formatu cyfrowego wideo. Kilka prostych linii kodu może konwertować pliki wideo do różnych formatów, wyodrębniać miniatury do podglądów internetowych, a następnie można je upuścić na Amazon S3, aby były obsługiwane z chmury. Bardzo fajna sprawa i warto zajrzeć do niektórych przykładów na stronie Railo.
patrząc na kod, który wykorzystuje te funkcje, wygląda to dość prosto i niesamowite jest, że Railo sprawia, że wyglądają jak dziecinnie proste, ale za kulisami dzieje się poważna integracja między systemami. Railo sprawia, że bardzo łatwo dodać te możliwości do dowolnej aplikacji internetowej.
nieskończenie rozszerzalny w Javie
jak wspomniano powyżej, łatwo jest wywoływać klasy Javy ze stron CFML. Ponieważ Railo działa w kontenerze Java, oznacza to, że wszystkie klasy lub kod ze świata Java mogą być zintegrowane i używane z aplikacją Railo.
moje doświadczenie w budowaniu projektu Railo
moja firma wykorzystała ColdFusion do kilku projektów. Jeden z naszych komercyjnych produktów jest zbudowany na nim i został pierwotnie zaprojektowany dla Adobe ColdFusion. Nasz produkt wykonuje wiele ciężkich zadań z bazami danych, internacjonalizacją, konwersją formatów dokumentów, podglądami PDF i wieloma innymi.
na początku 2009 roku dokonaliśmy całkowitej konwersji źródła NA kompatybilne z Railo. Były tylko Pomniejsze obszary, w których nasz kod musiał się zmienić, a większość z nich była z niestandardowym kodem Java, który napisaliśmy, który po prostu potrzebował aktualizacji do kompatybilności z bibliotekami Java Railo. Miła niespodzianka przyszła, gdy skończyliśmy i zauważyliśmy znaczny wzrost wydajności na Railo.
podsumowanie
podsumowując, jestem pod wrażeniem Railo. Jest napędzany przez społeczność; ludzie w Railo reagują i naprawdę dbają o społeczność programistów, a produkt naprawdę zapewnia to, co twierdzi. Zapewnili platformę rozwoju aplikacji, która jest zarówno kompatybilna z branżą, jak i innowacyjna. Myślę, że wszyscy doświadczeni twórcy aplikacji internetowych będą w stanie docenić to, co Railo ma do zaoferowania. Wierzę, że tak potężna integracja wykonana tak łatwo za pomocą zaledwie kilku linijek kodu przyciągnie wiele uwagi. Jest to zdecydowanie technologia, na którą powinieneś mieć oko.
Leave a Reply