<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>{FMS Guru} - Multimídia e Interatividade &#187; 4Conference</title>
	<atom:link href="http://fmsguru.com.br/category/4conference/feed/" rel="self" type="application/rss+xml" />
	<link>http://fmsguru.com.br</link>
	<description>Blog oficial do Livro Flex 3 + Flash Media Server 3.5</description>
	<lastBuildDate>Sat, 20 Mar 2010 14:11:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adobe Live Cycle Collaboration Service</title>
		<link>http://fmsguru.com.br/2009/10/20/adobe-live-cycle-collaboration-service/</link>
		<comments>http://fmsguru.com.br/2009/10/20/adobe-live-cycle-collaboration-service/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 05:07:17 +0000</pubDate>
		<dc:creator>Carlos Eduardo</dc:creator>
				<category><![CDATA[4Conference]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[LCCS]]></category>
		<category><![CDATA[flash media]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://fmsguru.com.br/?p=108</guid>
		<description><![CDATA[Adobe Live Cycle Collaboration Service (LCCS) é um software como um serviço (Sass) que permite que desenvolvedores criem aplicações colaborativas em tempo real através de uma estrutura server-side e de um conjunto de componentes disponíveis dentro de um SDK para Adobe Flex e Flash.
O LCCS contém uma infra-estrutura única de servidores que mantém as contas dos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://labs.adobe.com/technologies/afcs/" target="_blank">Adobe Live Cycle Collaboration Service (LCCS)</a> é um software como um serviço (Sass) que permite que desenvolvedores criem aplicações colaborativas em tempo real através de uma estrutura server-side e de um conjunto de componentes disponíveis dentro de um SDK para Adobe Flex e Flash.</p>
<p>O LCCS contém uma infra-estrutura única de servidores que mantém as contas dos desenvolvedores, e estas contas mantém as aplicações através de canais de streaming. Esta arquitetura tem por objetivo proporcionar novas oportunidades para o desenvolvimento de aplicações ricas e colaborativas através de funcionalidades como o real time collaboration (RTC).</p>
<p>Para conhecer mais sobre esta plataforma na prática, resolvi escrever uma versão do 4Conference para funcionar junto ao Adobe Live Cycle Collaboration Service com o objetivo de avaliar o serviço e verificar se realmente vale a pena criar aplicações colaborativas com ele. Nesta aplicação eu usei o protocolo RTMFP para criar um ambiente de conferência p2p com suporte a áudio, vídeo e chat entre duas ou mais pessoas.  O resultado desta avaliação você confere abaixo.</p>
<p style="text-align: center; "><a href="http://www.tomsas.com.br/p2p"><img class="size-full wp-image-111 aligncenter" title="4Conference com LCCS" src="http://fmsguru.com.br/wp-content/uploads/2009/10/forConferenceView.png" alt="4Conference com LCCS" width="665" height="520" /></a></p>
<p><strong>Pontos positivos:</strong></p>
<p>Primeiramente vou falar dos pontos positivos, pois a idéia do serviço me pareceu bastante interessante e válida, apesar de achar que a Adobe está dando um tiro no pé junto ao licenciamento do Flash Media Interactive Server.</p>
<p><strong>SDK</strong></p>
<p>O ponto alto a se destacar do serviço é o SDK, que é um conjunto de componentes visuais e não visuais que permitem criar aplicações Flex/Flash para ambientes de áudio, vídeo, conferências e colaboração síncrona usando protocolos como RTMP e RTMFP.</p>
<p><strong>Componentes</strong></p>
<p><strong><span style="font-weight: normal; ">Este conjunto de componentes e classes permitem criar pods visuais de chat, listagem de usuários, área para a publicação de uma ou mais webcans e a publicação do áudio e o seu play, compartilhamento de arquivos e um incrível writeboard, que por sinal é bastante completo e lindão.</span></strong></p>
<p><strong><span style="font-weight: normal; "><strong>Documentação</strong></span></strong></p>
<p>A documentação é bem completa e trás vários exemplos em vídeo de como compartilhar objetos remotos que são chamados de <em>Shared Model</em>s e como trabalhar com eventos concorrentes através de um recurso chamado de <em>Baton</em> que prevê o fluxo de trabalho de forma síncrona entre os usuários. Essencialmente, este recurso fica escutando o usuário que está usando um determinado recurso e fornece uma API para monitorar, adicionar ou remover propriedades de uma determinada funcionalidade da aplicação. Ex: Enquanto o usuário estiver digitando em uma caixa de texto, a caixa é desabilitada para o restante dos usuários.</p>
<p><strong>Código final</strong></p>
<p>A sintax do código final é bastante simples e limpa, até os mais leigos em programação podem usufruir dos recursos somente clicando e arrastando os componentes visuais para criar pequenas aplicações multimídias sobre o flash player e Adobe Air. A idéia primeiramente é ter uma chamada ao rtc:authenticator que vai realizar a autenticação na conta do desenvolvedor para a url da aplicação fornecida no rtc:ConnectSessionContainer.</p>
<p>No exemplo abaixo você pode conferir a quantidade de linhas escritas que criam uma sala com chat e áudio conferência que promove automáticamente todos os  usuários a terem o acesso ao botão para publicar seu áudio.</p>
<p><em>&lt;rtc:authenticator&gt; </em></p>
<p><em> &lt;rtc:AdobeHSAuthenticator id=&#8221;auth&#8221; username=&#8221;username&#8221; password=&#8221;senha&#8221; protocol=&#8221;rtmp&#8221;/&gt;</em></p>
<p><em>&lt;/rtc:authenticator&gt;</em></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 931px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><em>&lt;rtc:ConnectSessionContainer</em></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 931px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"><em> </em></span><em>id=&#8221;sess&#8221;</em></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 931px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"><em> </em></span><em>authenticator=&#8221;{auth}&#8221;</em></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 931px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"><em> </em></span><em>initialRoomSettings=&#8221;{settings}&#8221;</em></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 931px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"><em> </em></span><em>autoLogin=&#8221;false&#8221; width=&#8221;100%&#8221; height=&#8221;100%&#8221;&gt;</em></div>
<p><em>&lt;rtc:RoomSettings id=&#8221;settings&#8221; autoPromote=&#8221;true&#8221; /&gt;</em></p>
<p><em>&lt;rtc:ConnectSessionContainer  id=&#8221;sess&#8221;  roomURL=&#8221;https://connectnow.acrobat.com/userdeveloper/myappname&#8221;<br />
authenticator=&#8221;{auth}&#8221;  initialRoomSettings=&#8221;{settings}&#8221; autoLogin=&#8221;false&#8221; width=&#8221;100%&#8221; height=&#8221;100%&#8221;&gt;</em></p>
<p><em> &lt;rtc:AudioPublisher id=&#8221;audioPub&#8221; /&gt;</em></p>
<p><em> &lt;rtc:AudioSubscriber id=&#8221;audioSub&#8221; /&gt;</em></p>
<p><em> &lt;rtc:SimpleChat width=&#8221;100%&#8221; height=&#8221;100%&#8221;/&gt;</em></p>
<p><em>&lt;/rtc:ConnectSessionContainer&gt;</em></p>
<p><em><br />
</em></p>
<p><strong>Pontos negativos:</strong></p>
<p>Poucas coisas me perturbaram durante os testes, uma delas é a dificuldade para trabalhar com permissões, o que só pode ser feito somente (pelo menos até onde encontrei) via console ou através de uma api web que permite criar os usuários diretamente no LCCS, mas aí as permissões são setadas antes do usuário autenticar no serviço e não em real time, caso eu precise remover ou adicionar um determinada permissão de um usuário específico.</p>
<p><strong>O Acesso</strong></p>
<p>Se eu precisar definir níveis de acesso através de papéis como administrador, monitor e participante para determinadas funcionalidades, estes usuários devem ser também cadastrados no portal do LCCS, forçando assim qualquer empresa ou desenvolvedor a compartilhar email e senha dos usuários junto ao seu serviço. Achei um pouco de invasão, pois não são todas as empresas e pessoas que gostam de ter seu cadastro em um lugar que eles não conhecem. Afinal, se eu desenvolver uma aplicação usando os recursos do LCCS e vender para um determinado cliente, porque ele gostaria de ter seus dados em outro local?</p>
<p><strong>Custo benefício</strong></p>
<p>O ponto negativo mais alto, é o preço cobrado, que é sob-demanda, você paga por aquilo que usar de banda, mensagens enviadas e por tempo de cada usuário conectado, veja:</p>
<p>Se você estiver usando uma comunicação p2p via RTMFP, irá pagar somente pela quantidade de mensagens enviadas e pelo tempo em que o usuário permanecerá conectado. Caso haja alguma falha na comunicação p2p entre dois ou mais usuários, o usuário que tiver com problemas automáticamente passará a usar o RTMP através de um recurso chamado de FMS failover.</p>
<p>No momento que estiver usando RTMP, você pagará pela quantidade de banda de upload e download que passar por sua aplicação, pela quantidade de mensagens enviadas e pelo tempo de conexão por usuário conectado junto a aplicação.</p>
<p>Confira abaixo os <a href="http://forums.adobe.com/thread/501587?tstart=0" target="_blank">preços divulgados pela Adobe</a>.</p>
<table style="margin-top: 1px; margin-right: 0px; margin-bottom: 1px; margin-left: 0px; border-collapse: collapse; width: 497px; float: none; height: 211px; padding: 3px; border: 1px solid #000000;" border="1" cellspacing="0" cellpadding="3">
<tbody style="padding: 0px; margin: 0px;">
<tr style="padding: 0px; margin: 0px;">
<th style="background-color: #6690bc; padding: 0px; margin: 0px;" align="left" valign="middle"><span style="font-family: arial, helvetica, sans-serif; color: #ffffff; font-size: 10pt; padding: 0px; margin: 0px;"><strong>Dimension</strong></span></th>
<th style="background-color: #6690bc; padding: 0px; margin: 0px;" align="left" valign="middle"><span style="font-family: arial, helvetica, sans-serif; color: #ffffff; font-size: 10pt; padding: 0px; margin: 0px;"><strong>Price</strong></span></th>
<th style="background-color: #6690bc; padding: 0px; margin: 0px;" align="left" valign="middle"><span style="font-family: arial, helvetica, sans-serif; color: #ffffff; font-size: 10pt; padding: 0px; margin: 0px;"><strong>Description</strong></span></th>
</tr>
<tr style="padding: 0px; margin: 0px;">
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="font-family: arial, helvetica, sans-serif; font-size: 10pt; padding: 0px; margin: 0px;">Live Stream Bandwidth</span></td>
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="font-family: arial, helvetica, sans-serif; font-size: 10pt; padding: 0px; margin: 0px;">$0.49 USD per GB</span></td>
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="font-family: arial, helvetica, sans-serif; font-size: 10pt; padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"><span style="font-family: 'Cronos Pro'; padding: 0px; margin: 0px;">Up/down live stream bandwidth, such as real-time audio and video. P2P stream via RTMFP is excluded though LCCS will gracefully switch connection methods if a P2P connection cannot be established or maintained.</span></span></span></td>
</tr>
<tr style="padding: 0px; margin: 0px;">
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="font-family: arial, helvetica, sans-serif; font-size: 10pt; padding: 0px; margin: 0px;">Push Messages</span></td>
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="font-family: arial, helvetica, sans-serif; font-size: 10pt; padding: 0px; margin: 0px;">$0.10 USD per 1K</span></td>
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="padding: 0px; margin: 0px;"><span style="font-family: 'Cronos Pro'; font-size: 10pt; padding: 0px; margin: 0px;">Push messages are data messages in to the service. Data messages out are excluded. Some examples of data messages include chat messages and shared cursors. Push messages assist in collaborative </span><span style="font-family: 'Cronos Pro'; font-size: 10pt; padding: 0px; margin: 0px;">workflows</span><span style="font-family: 'Cronos Pro'; font-size: 10pt; padding: 0px; margin: 0px;"> between clients.</span></span></td>
</tr>
<tr style="padding: 0px; margin: 0px;">
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="font-family: arial, helvetica, sans-serif; font-size: 10pt; padding: 0px; margin: 0px;">User Minutes</span></td>
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="font-family: arial, helvetica, sans-serif; font-size: 10pt; padding: 0px; margin: 0px;">$0.01 USD per Hour</span></td>
<td style="border-collapse: collapse; padding: 3px; margin: 1px; border: 1px solid #000000;"><span style="padding: 0px; margin: 0px;"><span style="font-family: 'Cronos Pro'; font-size: 10pt; padding: 0px; margin: 0px;">User minutes is the amount of time that a connection is maintained to the service. If there are 3 connections maintained over a 5 minute period, the total user minutes for that session is 15 minutes.</span></span></td>
</tr>
</tbody>
</table>
<p style="font-size: 1.083em; line-height: 1.462; padding: 0px; margin: 0px;"><span style="padding: 0px; margin: 0px;"> </span></p>
<p style="font-size: 1.083em; line-height: 1.462; padding: 0px; margin: 0px;"><span style="font-size: 8pt; padding: 0px; margin: 0px;"><em><span style="font-style: italic; font-family: 'Cronos Pro'; padding: 0px; margin: 0px;">Note: Though multiple currencies are supported and your payment card will be charged in the appropriate currency,<br />
the developer portal interface and billing </span><span style="font-style: italic; font-family: 'Cronos Pro'; padding: 0px; margin: 0px;">emails</span><span style="font-style: italic; font-family: 'Cronos Pro'; padding: 0px; margin: 0px;"> will be in English and USD only.</span></em></span></p>
<p style="font-size: 1.083em; line-height: 1.462; padding: 0px; margin: 0px;">
<p style="font-size: 1.083em; line-height: 1.462; padding: 0px; margin: 0px;"><span style="font-size: 8pt; padding: 0px; margin: 0px;"><em><span style="font-style: italic; font-family: 'Cronos Pro'; padding: 0px; margin: 0px;"><br />
</span></em></span></p>
<p>Sinceramente achei um absurdo e caro a forma de cobrança, acredito que um modelo baseado na quantidade de conexões simultâneas seria mais justo, pois pagar 10 centavos de dólares por 1k de mensagens enviadas, ou seja, 1k de uso do chat é fora de série. Comece a somar tudo isso e entenda a onde eu quero chegar. Não importa o tamanho de sua aplicação em recursos, o que importa é a quantidade de uso, se há uma aplicação que fique dois usuários conectados usando recursos de áudio, vídeo, chat e compartilhamentos de arquivos durante 24 horas, e outra aplicação que tenha 10 usuários conectados durante 1 hora, a diferença no valor final pode ser bem pouca.</p>
<p><strong>Qualidade do áudio e vídeo</strong></p>
<p><strong><span style="font-weight: normal;">Ter o controle da qualidade do áudio e vídeo é bem fácil, o que não é fácil é identificar o momento em que a internet do usuário está ruim para assim alterar a qualidade do áudio e vídeo. Por vários momentos o áudio falhou, houve latência, e quando entrava mais de 4 usuários, algum dos usuários ficava sem áudio, isso acontecia de forma randômica e constantemente.</span></strong></p>
<p><strong>Upgrade</strong></p>
<p>Depois de ter feito todos os testes resolvi fazer o upgrade da conta developer que vem com 15 dólares iniciais para testes, pois pretendia conhecer outros recursos como o controle detalhado de uso por aplicação e a possibilidade de adicionar limite de uso por aplicação, o que permite criar um sistema de bilhetagem. E para minha decepção, até a data deste post a conta não tinha sido atualizada, e olha que já se passaram mais de 5 dias após a Adobe Store ter enviado um email informando a compra e confirmação dos dados da transação.</p>
<p><strong>Conclusão:</strong></p>
<p>A curto prazo o uso do LCCS pode ser bastante interessante, criar aplicações que devem ir para produção o mais rápido possível podem usufruir do serviço com muita facilidade. Já a médio e a longo prazo pode não ser uma boa solução, principalmente se a aplicação exigir muitas conexões simultâneas e pontos de customizações que o SDK não permite criar.</p>
<p><strong>Importante:</strong></p>
<p>Espero que tenha ajudado você de alguma forma com este post. Quero deixar claro que estas foram opiniões pessoais e as mesmas não refletem no desenvolvimento de futuras aplicações usando o Adobe Live Cycle Collaboration Service que eu venha a fazer.</p>
<p><strong>Aplicação demo:</strong></p>
<p>O resultado desta aplicação <a href="http://www.tomsas.com.br/p2p" target="_blank">pode ser visto aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fmsguru.com.br/2009/10/20/adobe-live-cycle-collaboration-service/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Conheça o 4Conference</title>
		<link>http://fmsguru.com.br/2009/09/15/conheca-o-4conference/</link>
		<comments>http://fmsguru.com.br/2009/09/15/conheca-o-4conference/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 03:04:24 +0000</pubDate>
		<dc:creator>Carlos Eduardo</dc:creator>
				<category><![CDATA[4Conference]]></category>
		<category><![CDATA[Flash Media Interactive Server]]></category>
		<category><![CDATA[Flash Media Server]]></category>
		<category><![CDATA[Wowza Media PRO]]></category>

		<guid isPermaLink="false">http://fmsguru.com.br/?p=40</guid>
		<description><![CDATA[Algum tempo atrás enquanto estudava o desenvolvimento de componentes Adobe Flex, resolvi criar um conjunto de componentes visuais que permitem de forma simples e rápida a criação de aplicações para vídeo conferências e chats.
O componente ainda é beta e tem muita coisa para melhorar, mas já dá para vocês terem uma idéia de como irá [...]]]></description>
			<content:encoded><![CDATA[<p>Algum tempo atrás enquanto estudava o desenvolvimento de componentes Adobe Flex, resolvi criar um conjunto de componentes visuais que permitem de forma simples e rápida a criação de aplicações para vídeo conferências e chats.</p>
<p>O componente ainda é beta e tem muita coisa para melhorar, mas já dá para vocês terem uma idéia de como irá funcionar. No vídeo abaixo (Maximize para melhor visualização) vocês podem conferir o funcionamento do 4Conference integrado ao Wowza Media PRO.</p>
<p><center><br />
<object width="503" height="327"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6603300&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=6603300&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="503" height="327"></embed></object><br />
</center></p>
<p><br/></p>
<p>Para visualizar uma aplicação real desenvolvida com o 4Conference e em funcionamento <a href="http://www.tomsas.com.br/forconference" target="_blank">clique aqui</a>.</p>
<p>Para fazer o download da aplicação client-side de demonstração, do arquivo <strong>FConference.swc </strong>e dos códigos fontes do server-side Wowza Media PRO e server-side Flash Media Interactive Server <a href="http://fmsguru.com.br/demos/4ConferenceBeta.zip" target="_blank">clique aqui</a>.</p>
<p>Para usar, basta copiar o arquivo FConference.swc para dentro da pasta lib de sua aplicação Adobe Flex que está no Flex Builder, em seguida vá até o modo designer para visualizar os componentes.</p>
<p>Para estudar a aplicação de demonstração basta importar a pasta FConferenceDemo para dentro do Flex Builder.</p>
]]></content:encoded>
			<wfw:commentRss>http://fmsguru.com.br/2009/09/15/conheca-o-4conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
