Railo Server, comumente referido como Railo ((Ry-loh) é um software de código aberto que implementa a linguagem de script comum do lado do servidor CFML, que é frequentemente usada para criar sites dinâmicos, aplicativos da web e sistemas de intranet. CFML é uma linguagem dinâmica que suporta vários paradigmas de programação e é executado na máquina virtual Java (JVM).A Railo foi desenvolvida pela empresa Suíça Railo Technologies GmbH como uma poderosa alternativa ao Adobe ColdFusion. Em 2008, Railo mudou para um modelo de comunidade de código aberto e se tornou um projeto JBoss. O projeto Railo Open Source é liderado pela Railo Technologies. O trabalho de desenvolvimento é financiado por contratos de consultoria e suporte, mas qualquer pessoa pode contribuir com o código para o exame.Railo recebeu o nome de um cão alienígena em Star Trek Enterprise. O cão é realmente chamado Rhylo, mas Foneticamente em alemão é Railo. Assim, Railo pode ser pronunciado como rhy-lo ou como rai-lo-ambos são aceitáveis.Os lançamentos Railo Major têm um codinome de cães notáveis e leais da história.
história
Railo começou em 2002 como um projeto estudantil por Michael Offner e Gert Franz para compilar código CFML em PHP. Esta decisão foi tomada devido à onipresença do PHP. No entanto, verificou-se que isso não deu o desempenho e a estabilidade desejados, e a decisão foi tomada para mudar para a plataforma Java.
o projeto teve tanto sucesso que foi decidido evoluir para um produto completo. Várias versões alfa e beta foram lançadas antes da versão oficial 1.0 em abril de 2006. Railo foi desenvolvido ainda mais, mas era relativamente desconhecido para muitos desenvolvedores de CFML até junho de 2008 na Conferência Scotch on the Rocks em Edimburgo, quando a Railo Technologies usou a palestra do segundo dia para anunciar uma parceria com a JBoss e uma mudança para o código aberto.
em maio de 2012, em cf. Target Conference, foi anunciada a criação da “The Railo Company Ltd”, uma sociedade de Responsabilidade Limitada que inclui a empresa Suíça Railo Technologies GmbH, juntamente com outras cinco empresas que operam no setor de CFML.
Lucee Gabel
Em 29 de janeiro de 2015, o Lucee projeto, um fork do Railo 4.2 codebase, foi anunciado pelo desenvolvedor original do Railo, que declarou que ele não iria continuar a trabalhar no Railo. Os outros desenvolvedores confirmaram que também se concentrarão exclusivamente na Lucee e, embora a empresa Railo não tenha feito uma declaração oficial, o consenso da Comunidade é que o desenvolvimento do projeto Railo é improvável.
em 19 de julho de 2016, a empresa Railo foi dissolvida.
História Da Publicação
Versão Principal (Nome De Código) |
Versão Secundária | Data De Lançamento | Notas |
---|---|---|---|
0 | Alpha 1 | 10.04.2004 | a primeira versão oficial do Motor Railo CFML. |
Alpha 2 | 2004-05-18 | ||
Alpha 3 | 03.08.2004 | ||
Alpha 4 | 2004-10-21 | ||
Beta 1 | 2005-01-16 | A primeira versão beta do Railo. | |
Beta 2 | 2005 | ||
Beta 3 | 2005 | ||
RC1 | 2005-09-23 | O primeiro release candidate do Railo foi apresentado para o alemão CFUG em Munique. | |
1.0 | 1.0.0.000 | 2006-04 | |
2.0 | 2.0.0.000 | 2007-09-10 | |
2.0.1.000 | |||
2.0.2.000 | |||
3.0 | 3.0.0.000 | 2008-09-09 | |
3.0.1.000 | |||
3.0.2.000 | |||
3.0.3.000 | |||
3.1
( Barry) |
3.1.0.000 | 2009-08-12 | Primeiro abra o lançamento da fonte de Railo. |
3.1.1.000 | 2009-08-11 | ||
3.1.2.000 | 2010-11-26 | ||
3.2
( Greyfriars Bobby) |
3.2.1.000 | 2011-12-24 | |
3.2.2.000 | 2011-03-18 | ||
3.2.3.000 | 2011-06-10 | ||
3.3
( Hachiko) |
3.3.1.000 | 2011-11-03 | Adicionado suporte incorporado para ORM e muitos outros recursos. |
3.3.4.003 | 2012-06-25 | ||
4.0
( Appollo) |
4.0.0.013 | 2012-07-02 | |
4.0.5.004 | 09.07.2013 | ||
4.1
( Endal) |
4.1.2.005 | 2013-12-11 | . |
4.2
( Ir) |
4.2.0.009 | 2014-05-14 | |
4.2.1.000 | 2014-05-21 | ||
4.2.2.005 | 18.12.2014 | Atual versão estável do Railo |
Plataformas e Licença
Railo é executado como um servlet na JVM e funciona com qualquer servlet container (e.g. Apache Tomcat, Eclipse Jetty) ou servidores de aplicativos (por exemplo, JBoss AS, GlassFish). É possível conectar um servidor web (por exemplo, Apache, IIS, Nginx, Cherokee) por meio de conectores como mod jk, mod proxy ou um equivalente, mas isso não é necessário para Railo.
Railo tem um instalador Para Linux, macOS e Windows que agrupa Apache Tomcat. Há também um download Railo Express pré-configurado com Cais.
da versão 4.0, Railo tem uma versão de linha de comando que permite que o CFML seja usado como uma linguagem de uso geral fora do ambiente servlet.
Railo foi licenciado como GPL v2.1 desde a v3.1, com o código-fonte está disponível no GitHub
Filosofia
o objetivo primário de Railo foi para oferecer a funcionalidade do ColdFusion com menos recursos e melhor desempenho, e o Railo Tecnologias equipa continua a tratar a “lentidão como um erro” como uma central de filosofia de desenvolvimento. Muitos testes de desempenho mostraram que o Railo funciona mais rápido do que outros motores CFML.Além disso, Railo tenta corrigir muitas inconsistências no CFML tradicional. Estas são alterações de comportamento forçado ou opções configuráveis no Administrador do Railo.
a equipe Railo Technologies sempre esteve aberta a feedback e ativa em eventos da comunidade CFML e quer lembrar às pessoas que Railo é um projeto comunitário.A Railo Technologies também tem fortes parcerias tecnológicas com empresas de software CFML, incluindo a Blue River Interactive Group (desenvolvedora da Mura CMS), a CONTENS Software GmbH (desenvolvedora da CONTENS CMS) e a Intergral GmbH (desenvolvedora da FusionReactor e da FusionDebug) para garantir que seu software funcione bem com a Railo. Além disso, a Railo Technologies oferece “programas de parceiros” formais para soluções (desenvolvimento), hospedagem e treinamento.
o servidor de aplicativos Railo está atualmente em média 7.Baixado (e crescendo) 000 vezes por mês.
Railo é usado por um número de empresas, incluindo:
Propriedades
- Suporta a programação orientada a objetos com herança, mixins e meta-classes
- tipagem Dinâmica e duck typing
- Literal notação de matrizes e estruturas
- a Incorporação de argumentos nomeados por variáveis em strings (interpolação)
- , os argumentos opcionais e os argumentos
- Três níveis da variável de objeto gama: Este (objeto público), variáveis (objeto privado), Local (Função Privada)
- escopo de várias variáveis globais: solicitação, sessão, Cliente, aplicativo, Servidor, Cluster
- vários escopos de variáveis fornecidos pelo Usuário: Formulário (Post), URL(Get), Cookie, CGI
- coleta de lixo Automática (via JVM)
- Globais e locais de manipulação de exceção (via
onError
etry/catch
) - definido pelo Usuário despacho de comportamento (por
onMissingMethod
e implícito getters e setters) - objeto Implícito de conversão (por
_toString
,_toNumeric
,_toBoolean
,_toDate
) - Threads Nativas
- Suporte para Unicode, multi-codificação de caracteres e i18n
- Grande biblioteca padrão cobertura geral de desenvolvimento de web requisitos
- Railo Extensão de Armazenamento e Gerenciador de extensões para facilitar a instalação de softwares adicionais e extensões
- Nativo API de plug-in em CFML ou Java
- Nativo de manipulação de fácil criação e consumo de serviços web
- GUI Separado de administradores para web individuais contextos, bem como um administrador do servidor
- Todas as configurações de administrador pode ser configurado por meio de programação ou através da edição de arquivos de Configuração XML são configurados
- recursos Nativos para todas as built-no sistema de ficheiros tags e funções.
- Cluster e sincronização para os tradicionais e os servidores na nuvem
- Gerenciador de Tarefas para agendamento de ações repetidas ou tentando eventos com falha novamente
- suporte Nativo para ORM Hibernate
- Grande número de funções de edição de imagem
- Evento gateways para a execução de código assíncrono
- suporte Nativo para uma variedade de diferentes mecanismos de cache
- Nativo de gerenciamento de sessão (CFML sessões ou J2EE sessões) com
onSessionStart
eonSessionEnd
dispara. - Autenticação Integrada do Usuário e funcionalidade de função.
segurança
o CFML possui funcionalidade integrada para evitar a injeção de código por meio da tag cfqueryparam
e recursos comoHtmlEditFormat
, XmlFormat
, JsStringFormat
. Existem também implementações CFML de terceiros da API OWASP Enterprise Security. e o projeto anti-chamativo.
uma das decisões arquitetônicas mais importantes da Railo foi seguir o modelo JEE servlet com suporte para vários contextos da web independentes em um único servidor. Este é um fator de segurança importante, pois evita que aplicativos não relacionados interfiram uns com os outros, como pode ocorrer em um servidor ColdFusion compartilhado (que tem apenas um único contexto da web).
Railo implementa a linguagem CFML – exemplos e CFScript podem ser encontrados na seção de sintaxe CFML.
diferenças
diferenças de outros idiomas
CFML tem uma sintaxe baseada em tag que é visualmente diferente da maioria dos outros idiomas. Além disso, é semelhante a outras linguagens dinâmicas com as seguintes exceções:
- CFML contém duas sintaxes, uma sintaxe baseada em tag (não compatível com XML) e uma sintaxe C chamada cfscript.
- Arrays em CFML são indexados por um e não por zero.
- CFML suporta argumentos de função ordenados e nomeados ou uma combinação.
- CFML não tem variáveis estáticas.
Diferenças a partir do Adobe ColdFusion
Enquanto Railo implementa CFML e, geralmente, é compatível com o Adobe ColdFusion (ACF), o original CFML motor, existem algumas diferenças notáveis entre os dois:
- Railo é um software open source para GPL v2.1. ACF é uma tecnologia proprietária.
- Railo usa uma arquitetura de contexto multi-web em comparação com o contexto da Web única de ACF.
- Railo permite que você crie funções personalizadas usando CFML padrão.O Railo não pode descriptografar (ou executar) modelos criptografados com o mecanismo de criptografia da ACF.
- Railo tem um ciclo de liberação significativamente mais rápido para versões maiores, menores e de patch.
- em Railo, as áreas sempre têm precedência. No ACF, criar uma variável chamada ” Url ” pode bloquear o acesso ao espaço do URL. Em Railo, você pode acessar a variável apenas como ” variáveis.Url ” pode ser acessado.
- Railo só procura CFCs no caminho de tag personalizado se isso tiver sido definido de acordo no administrador (há um caminho CFC separado).
- Railo 4.x introduz uma interface de linha de comando (CLI) que permite que scripts CFML sejam executados a partir da linha de comando
- Railo permite o uso de métodos de objeto. Então, em vez de usar o array Append(arr, “valor”), pode-se escrever: arr.adicionar (“valor”). Anexar (“anotherValue”).