Entendendo o Flex + LCDS; LiveCycle Data Services


Esta é sem duvida a grande dor de cabeça nos meus estudos do Flex. Como devem ter reparado eu adoro PHP e Flex, e por isso geralmente nas minhas aplicações com recurso a bases de dados uso sempre o amfPHP para fazer comunicar o Flex com o Backend (php+servicos de bases de dados), mas curiosamente até no exame da Certificação Flex 3, a adobe “puxa a brasa à sua sardinha” e introduz um tópico que vale 16% do exame, e não convém ir para lá sem as minimas noções deste tipo de serviços, e por isso meti mão à obra e decidi investigar um pouco este tal de LCDS.

Como não tenho experiencia com o LCDS, se alguma noção/informação estiver incorrecta façam o favor de deixar um comentário indicando o erro/solução/dica.

Começando:

  • O que é o LCDS – LiveCycle Data Services ??

Basicamente é uma “aplicação de segunda camanda”, ou seja, serve de comunicação entre a primeira camada (front-end) e uma possivel terceira camada (backend), que tem como principais objectivos:

  1. Lidar com grandes quantidades de dados
  2. Establecer a comunicação entre a parte cliente e parte servidor de uma aplicação
  3. Ajudar a receber/buscar/guardar dados via RPC (chamadas remotas) e configurações proxy
  4. Usar o tomcat para servir de servidor de dados.
  5. Permitir ligações directas a algumas bases de dados sem recurso a linguagem back-end (versões 2.5+)

O funcionamento do LCDS é bem lógico e se já têm uma noção de qualquer serviço AMF como pyAMF ou amfPHP ou blazeDS vão entender o funcionamento bem facilmente, e para esclarecer vejam a imagem seguinte onde é representado a estrutura de uma aplicação FLEX / AIR utilizando o LCDS:

Como podem ver, a tipica estrutura de 3 camadas e semelhante à utililização do amfPHP.

Embora o flex já consiga comunicar directamente com uma linguagem backend, em muitas situações algumas caractereisticas e possibilidades não estão presentes no protocolo AMF/RPC, mas ao utilizar o LCDS não é totalmente dispensável uma linguagem server-side como o php, embora a nova versão 2.5/2.6 do LCDS já consiga comunicar com uma base de dados (usando um driver e sem recorrer a linguagem backend) por vezes torna-se necessário ter um grande conhecimento da sua estrutura e configuração e muitas das “maravilhas” do php/net/python ficam sempre dependentes de a ligação com o LCDS que acaba por funionar como o pyAMF ou amfPHP.

O LCDS possui alguns pontos a reter:

  • É uma aplicação J2EE.
  • Necessita de um servidor (JBOSS, Apache TomCat)
  • Necessita do JAVA
  • Muitas vezes não é suportado por planos de alojamento
  • Necessita de uma licensa (LCDS ES), embora exista uma versão gratuita. (LCDS Community Edition)
  • É necessário alguma paciencia na sua instalação e configuração
  • Permite ter 2 ou mais clientes/ aplicações Flex a comunicar com o mesmo serviço LCDS, ideal para chats ou aplicações “infinite-to-one”, ou seja, varias aplicações diferentes que trabalham com os mesmos dados.
  • Permite a comunicação com outros servidores servindo como proxy, eliminando assim a tipica falha de segurança da sandbox do flash
  • Permite sincornização de dados, caching, paginação e resolução de conflitos usando o componente data management.

Vamos começar, por explicar a instalação do LCDS usando o proprio servidor TOMCAT incluido no download.

Downloads:

LCDS ES em: partir daqui (181 MB)

JDK 6 : http://java.sun.com/javase/downloads/index.jsp (Java SE Development Kit (JDK) 6 Update 10 ) (Vou instalar para futuramente trabalhar com o java)

  • Configuração:

Estou a usar Windows Vista:

  1. JDK 6 – A primeira coisa a fazer é instalar o JDK 6, façam o download e instalem-no com as caracteristicas por defeito,
  2. LCDS – Vamos agora instalar o LCDS, para isso excutem o ficheiro que fizeram o download “lcds16-win.exe” e quando vos for pedido um numero de serie, cliquem em next, desta forma será instalada a versão gratuita. No passo seguinte escolham :”LiveCycle Data Services With TomCat” que instalará o servidor tomcat, mais simples do que o JBOSS e no qual são baseados os exemplos do LCDS, no passo seguinte coloquem install para terminar a instalação.

Nada vai acontecer no final (estranhamente, visto que no windows XP aparece a configuração do servidor (http://localhost:8400/)), mas nada de grave, porque nesta altura o servidor já está instalado, o meu objectivo agora é fazer uso dos aplicativos de exemplos disponiveis no LCDS, para isso vao ao menu iniciar, e na pasta Adobe->LiveCycle Data Services ES 2.6 e executem: “Start Samples Database“, vai-se abrir uma janela da linha de comandos, simplesmente deixem-na aberta, se a fecharem a base de dados será terminada, de seguida no mesmo menu cliquem em “Start LiveCycle Data Services Server” e deixem a janela aberta, o mesmo se aplica em relação ao fechar desta janela.

E pronto, o nosso servidor LCDS / Tomcat está a correr, basta acederem no browser ao endereço http://localhost:8400/ e vêm a pagina de boas vindas do LCDS, onde podem aceder aos exemplos http://localhost:8400/lcds-samples/ para verem alguns exemplos, é altamente aconselhado ler e executar todas as instruções do testdrive ( http://localhost:8400/lcds-samples/testdrive.htm ), onde podem ver alguns exemplos de aplicações em flex, usando o LCDS.

Quanto à estrutura do servidor, os projectos ficam guardados na directoria de instalação do lcds, normalmente em C:\lcds\tomcat\webapps local este onde devem ser publicados os vossos projectos.

E pronto, agora resta explorarem todos os exemplos, para acederem a cada exemplo é bem simples, basta irem buscar o arquivo: C:\lcds\tomcat\webapps\lcds-samples\WEB-INF\flex-src\flex-src.zip, abrirem o mesmo e extrairem o conteudo para o workspace do vosso flexbuilder, geralmente em: C:\Users\vossoNomedeUtilizador\Documents\Flex Builder 3

Serão extraidos todos os projectos do lcds-samples, estando disponiveis separadamente, por exemplo, para terem acesso ao código fonte do exemplo crm (http://localhost:8400/lcds-samples/crm/index.html) basta fazerem o seguinte no flex builder:

File->New->Flex Project, e fazerem os seguintes passos na sua configuração:

Project Name, usem o nome exacto do projecto que querem, basta verem as directorias estraidas no flex-src, por exemplo crud e de seguinda deixem por defeito o workspace, visto que já está la a pasta crm extraida com os ficheiros fonte. Escolham Web Application, e em Server Type: J2EE com o LiveCycle Data Services e coloquem em next, aí terão de corrigir algumas informações, colocando os dados seguintes:

Root Folder: C:\lcds\tomcat\webapps\lcds-samples

Root URL: http://localhost:8400/lcds-samples/

Context Root: /lcds-samples

Cliquem em “Validate configuration” e cliquem em finish. O vosso projecto aparecerá no explorador do flex builder, mas antes de o testar-mos, o arquivo executavel foi o main.mxml, e teremos que mudar isto, para isso cliquem com o botão direito do rato em cima do ficheiro “companyapp.mxml” e escolham “Set as default Application“, aguardem um pouco e corram o vosso projecto… voilá, temos o LCDS/TomCat integrado no nosso projecto, actualmente os ficheiros de configuração do nosso projecto estão no servidor, em “C:\lcds\tomcat\webapps\lcds-samples\WEB-INF\flex

E pronto, temos o nosso sistema montado, agora pada cada projecto podem repetir os mesmos passos… resta explorar todos os ficheiros fonte, e principalmente os ficheiros de configuração dos exemplos (o ultimo caminho que coloquei em cima) que guardam todos os promenores da nossa comunicação com o LCDS.

Quanto à pasta WEB-INF e outras de configuração, é das coisas um pouco estranhas para quem nunca trabalhou com o LCDS e similares como blazeDS. Mas vou mostrar a estrutura com duas imagens que só por si exemplificam o seu conteudo.

Onde detalhadamente podem ter uma ideia dos ficheiros/pastas de configuração presentes na pasta WEB-INF:

Num próximo post falarei de cada um destes ficheiros, mas para já é tudo, espero que seja util, entretanto vou dar mais uma vista de olhos a fundo e virei brevemente com um simples exemplo utilizando estas tecnologias…

Espero que seja util.

Abraços.

Deixe um comentário ou um Trackback
   

8 Comentários

  1. November 19, 2008 às 11:13 am | Permalink

    Mario, parabens! Eu ando flertando com o Java ja a algum tempo e venho aprendendo relativamente rápido, devido ao fato de estar trabalhando em um projeto que esta sendo desenvolvido em Java. O que não entendo é pq tanto detalhes que tornam o aprendizado tão sofrido. Por outro lado, estou em outra frente trabalhando com uma pessoa que sabe bastante de PHP e que tem me mostrado boas coisas e muitas vantagens dele. Assim, fico em cima do muro: não sei se embrenho mais no PHP ou perco minha paciencia aprendendo o Java! Abração e que venha o final do ano!

  2. November 19, 2008 às 12:30 pm | Permalink

    Pois é ved, eu andei o fim de semana todo de volta do LCDS e a tentar configura-lo de raiz, o meu primeiro ensaio foi usar o LCDS para ligar a uma base de dados do proprio LCDS, depois de tudo configurado, compilo a aplicação e puff…. Um beco sem saida… erros e mais erros, tantos ficheiros de configuração… enfim, como disse, uma dolorosa aprendizagem… eheheh

    Quanto ao php e o seu inseparavel amigo mysql juntamente com o amfphp sem duvida tornam a sua aplicação ao flex muito facil e versátil… enfim, o php têm as suas vantagens, incluido a orientação a objectos que consegue mesmo criar classes para utiliação directa no AS3 via remote object sem recurso ao amfPHP, (como o caso do XML-RPC dos sistemas de blogs) o php é muito versátil, mas enfim… como apenas conheço o “poder” do java por alto, não consigo fazer comparações (apesar de dizerem que o java é muito superior) pelo que por enquanto não tenho qualquer motivo para esquecer tão depressa o nosso amigo PHP.. :)

    Mas bom, no final do ano se tudo correr bem ainda vamos discutir isso numa “mesa de bar” bebendo umas cervejas :)

    Grande abraço Ved.

  3. November 19, 2008 às 4:14 pm | Permalink

    Parabéns pelo post Mário!

    Sem dúvida o LCDS tem uns mistérios que só com muita paciência mesmo.

    Estou prevendo uma apresentação Integrando o ColdFusion com o LiveCycle Data Services com Flex 3, e espero que possa ajudar, ao menos quem mexe com CF! hehe

  4. November 20, 2008 às 8:20 am | Permalink

    Oupa Tofinha, valeu pelo comentário… sem duvida que essa apresentação será bem vinda, até para mim que estou entendendo os “mistérios” do LCDS, principalmente a meia duzia de arquivos de configuração, que ainda me dão muitas volta ao estomago….

    heheh

    Abraço.

  5. November 21, 2008 às 10:59 pm | Permalink

    Pois é Mário, espero que esses “mistérios” possam ser simplificados mais para a frente pela Adobe, possibilitando uma adesão maios ao LCDS, consequentemente o BlazeDS.
    Mesmo integrado ao CF, tem hora que dar aquela dor de cabeça e configurar cada um dos arquivos!!hehehe

  6. November 24, 2008 às 1:14 pm | Permalink

    Oupa, ainda bem que não sou só eu (iniciante) a ter os mesmo problemas… venha essa apresentação!! :)

  7. Vinicius
    August 28, 2009 às 12:20 pm | Permalink

    A instalação do LCDS por padrao é feita junto com um servidor Tomcat, no caso, precisaria utilizar o JBOSS, alguem ja tentou ou sabe como fazer?
    Mihas tentativas foram sem sucesso.

  8. Villegas
    February 21, 2011 às 3:22 am | Permalink

    Também sou iniciante no ramo e meu pepino é com dados real-time para Xcelsius.

    Referente ao LCDS para acesso a dados pelo Crystal Xcelsius (SAP), por acaso vcs já se depararam com isso?!!!

    Alguém faz idéia de qual fonte posso buscar ajuda? “Divina já é constante”

    Abraço,
    Villegas
    Floripa – SC

Deixe um comentário

O seu email nunca será publicado ou partilhado. Campos obrigatórios estão marcados com um *

*
*

Spam Protection by WP-SpamFree