<?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>Content on Content Management &#187; Flash</title>
	<atom:link href="http://contentoncontentmanagement.com/category/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://contentoncontentmanagement.com</link>
	<description></description>
	<lastBuildDate>Tue, 03 Aug 2010 12:57:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<atom:link rel="next" href="http://contentoncontentmanagement.com/category/flash/feed/?page=2" />

		<item>
		<title>Me, Flex and The Content Server</title>
		<link>http://contentoncontentmanagement.com/2008/04/me-flex-and-the-content-server/</link>
		<comments>http://contentoncontentmanagement.com/2008/04/me-flex-and-the-content-server/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 04:59:27 +0000</pubDate>
		<dc:creator>David Roe</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://ContentOnContentManagement.com/?p=73</guid>
		<description><![CDATA[I&#8217;m having a little love affair lately with Adobe&#8217;s latest version of Flex.  It was released just a few months ago and since I&#8217;ve started playing with I&#8217;ve been very impressed with the language and the architecture.  Believe it or &#8230; <a href="http://contentoncontentmanagement.com/2008/04/me-flex-and-the-content-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m having a little love affair lately with Adobe&#8217;s latest version of Flex.  It was released just a few months ago and since I&#8217;ve started playing with I&#8217;ve been very impressed with the language and the architecture.  Believe it or not the Flex compiler is actually now an open source application, so theoretically if you know ActionScript and/or the Flex definition schema, you can create your own applications with the free compiler.  Adobe&#8217;s Flex <em>product </em>at this point is actually just their IDE, Flex Builder, and that is actually just a customized, Flex-oriented version of Eclipse.</p>
<p>I decided to give Flex a go and in following the theme of the blog, have developed a custom Flex API and application for Oracle UCM.</p>
<p><strong>Wait, I thought you didn&#8217;t like Flash?</strong></p>
<p>Before I jump in to the sample project, I have to tell you that this is really a turning point for me with Flex.  For some time now I&#8217;ve usually frowned on Flex or Flash for web development.  There&#8217;s always the Flash movie or two that&#8217;s worked in to the site much the same way an image would be, but as far as using Flex or Flash for front end development, I&#8217;ve never been much of a fan.  My reasons go something like this:</p>
<ul>
<li>Web crawlers like Google can&#8217;t search content and links inside a SWF file</li>
<li>It&#8217;s sometimes hard to bookmark URLs or even have URLs to specific points</li>
<li>Just about anything you can do in Flash I can do in Javascript</li>
</ul>
<p>I know there are a ton of really cool Flash sites out there, but I&#8217;ve mostly thought of Flash as a &#8220;banner-ad&#8221; framework and assumed Flex was just Flash without the &#8220;Movie&#8221; format.  When I compare Flash sites to traditional HTML ones, they sure look really cool, but I like to copy content, download images and link to stuff.  Flash sites march to the beat of their designer and that has been a bit of a turn off for me.</p>
<div><strong>So why the change of heart</strong></div>
<p>Flex is really an interesting option for front end web development.  Because it runs on the Flash player, there&#8217;s less chance for browser compatibility issues.  IE6, IE7, FF?  Who cares?  As long as you have the Flash player your app should run fine.  The code for Flex(Actionscript) is also considerably more powerful than Javascript.  In addition to possessing all the qualities of Javascript like prototype inheritance and loose typing, it&#8217;s also developed the features of a strongly-typed, object oriented language like Java.  I&#8217;ve found it extremely flexible and actually pretty fun to work with.</p>
<p>Another thing to consider is that Flex is a web framework, but now with the introduction of Adobe&#8217;s AIR runtime,  you can run and deploy Flex applications to the desktop.  The very common sense distinction between what is a web application and desktop application suddenly becomes a little fuzzy.</p>
<p>What we are really seeing is the evolution of the Flash movie player in to a lightweight virtual machine and I think in that model this could be an even more successful technology than it already is.  You can make a decent argument that Flex, Flash and Air are still niche technologies, but given the Adobe competition that is forming some of the big wigs think there is a market there.</p>
<ul>
<li>Microsoft has released it&#8217;s Flash/Flex alternative framework, <a href="http://silverlight.net/">Sliverlight</a></li>
<li>Rumors have started that Sun is <a href="http://www.cmswatch.com/Trends/1165-Sun-to-pursue-Java-less-Java">working on a Java-less VM</a></li>
</ul>
<div>AIR was released along with Flex 3, so it&#8217;s been out for just a few months(beta has been out almost a year).  Still there&#8217;s already a pretty sizable list of <a href="http://airapps.pbwiki.com/">applications</a>.  Will Flex, Air and Sliverlight stay niche frameworks?  I&#8217;,m not sure yet, but I am 100% certain that there&#8217;s a point where integration with a content management will become a consideration and a priority for them.</div>
<p><strong>Didn&#8217;t you mention a UCM Component?</strong></p>
<p>I&#8217;m way off track and sounding like an Adobe advertisement, so back to my sample project&#8230;.As I mentioned I&#8217;ve been working on a sample Flex application for Oracle UCM.  I started out developing a Flex API for UCM, along the same vein as my .NET API for UCM.  Basically I&#8217;ve mirrored the object model of Stellent/Oracle&#8217;s own idcserver package which is used for content server JSP development.  It&#8217;s a simple and yet very flexible design that allows you to make just about any service call to the content server, returning local data and/or resultsets.  Those values and resultsets can then be directly bound to Flex controls.</p>
<p>Here&#8217;s an example of what a service call looks like using the Actionscript API in Flex:</p>
<p style="padding-left: 30px;"><span style="font-family: -webkit-monospace; ">var sb:ServerBean = new ServerBean();</span></p>
<p style="padding-left: 60px;"><code> </code></p>
<p style="padding-left: 30px;"><span style="font-family: -webkit-monospace;">sb.putLocal(&#8220;IdcService&#8221;,&#8221;GET_SEARCH_RESULTS&#8221;);</span></p>
<p> </p>
<p> </p>
<p><code></p>
<p style="padding-left: 30px;">sb.putLocal("QueryText","dDocType &lt;matches&gt; `Document`");</p>
<p style="padding-left: 30px;">sb.executeService();</p>
<p></code></p>
<p> </p>
<p>One interesting thing about Flex though is that its httpservice object(needed for web service calls) forces you in to asynchronous calls&#8230;.great for applications&#8230;sort of a pain for example code.  Nevertheless I&#8217;ve added several events to signal when a service call is complete.  Listener methods are then attached to those events and in those listener<em> </em>methods, you can retrieve a value or resultset and bind it to a control.  Here&#8217;s an example of what occurs in the listener method to bind the resultset to the Flex datagrid.</p>
<p style="padding-left: 30px;"><code>var SearchResults:ServerResultSet = sb.getResultSet("SearchResults");</code></p>
<p style="padding-left: 30px;"><code>var rows:XMLList= SearchResults.getRows();</code></p>
<p style="padding-left: 30px;"><code>dgSearchResults.dataProvider = SearchResults.getRows();</code></p>
<p>I&#8217;m not showing it in the examples above, but the resultset object also has all the methods you know and love from UCM, like first(), next() and isRowPresent().</p>
<p>Unlike the .NET API which I more or less pushed without an example, I&#8217;ve bundled the Flex API with what I think is a somewhat useful example component called Search and Update.</p>
<p>Search and Update contains a bound datagrid control that displays paged search results from a search request to the content server.  In addition to being a bound display of results, the Flex datagrid control also supports editing, which is enabled and tied via Flex events to UPDATE_DOCINFO service calls.  So if you edit a cell in the datagrid, the metadata for the content item is updated as well(non-editable fields in UCM are also not editable in the datagrid).</p>
<p>I&#8217;ve wrapped the application in a custom component that adds a link to the administrators menu titled &#8220;Search and Replace&#8221;.  The application fits very nicely in the content server page body, though there is a slight issue when you are in &#8220;top-menus&#8221; layout, where the drop down menus render behind the Flex app.  This is just one of the fun issues of dealing with Flash&#8230;.it&#8217;s always on top.</p>
<p>Inside the &#8220;Search and Update&#8221; component, there&#8217;s a folder called Source, which contains(you guessed it) all of the source for the API and Search and Update projects.  In addition when you unzip the download, you&#8217;ll find the component zip as well as a separate folder with a compiled version of the UCM API</p>
<p>Here&#8217;s a link to the sample:</p>
<p><a href="http://contentoncontentmanagement.com/2008/04/11/me-flex-and-the-content-server/ucm-flex-example/">Flex Search and Update Example for Oracle UCM</a></p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://contentoncontentmanagement.com/2008/04/me-flex-and-the-content-server/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>UCMTube &#8211; Converting and Streaming FLV Files with Oracle UCM</title>
		<link>http://contentoncontentmanagement.com/2008/03/ucmtube-converting-and-streaming-flv-files-with-oracle-ucm/</link>
		<comments>http://contentoncontentmanagement.com/2008/03/ucmtube-converting-and-streaming-flv-files-with-oracle-ucm/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 21:43:21 +0000</pubDate>
		<dc:creator>David Roe</dc:creator>
				<category><![CDATA[Digital Asset Management]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Refinery]]></category>

		<guid isPermaLink="false">http://ContentOnContentManagement.com/2008/03/09/ucmtube-converting-and-streaming-flv-files-with-oracle-ucm/</guid>
		<description><![CDATA[Lately Digital Asset Management and more specifically media streaming has been a pretty hot item.  I&#8217;ve found myself in a number of conversations discussing Oracle UCM&#8217;s capabilities and how to integrate it&#8217;s features in to web sites.  The content server &#8230; <a href="http://contentoncontentmanagement.com/2008/03/ucmtube-converting-and-streaming-flv-files-with-oracle-ucm/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lately Digital Asset Management and more specifically media streaming has been a pretty hot item.  I&#8217;ve found myself in a number of conversations discussing Oracle UCM&#8217;s capabilities and how to integrate it&#8217;s features in to web sites.  The content server is an excellent platform for media storage, management and conversion, but when partnered with WCM it can become a single platform capable of handling the functional requirements of a <a href="http://youtube.com/">YouTube </a>or <a href="http://flickr.com">Flickr</a>.</p>
<p><strong>A little background on Oracle UCM Digital Asset Management</strong></p>
<p>Before we go any farther, in the interest of saving me some typing I&#8217;ll now be using one of the more awkward acronyms in technology to describe Digital Asset Management, DAM.</p>
<p>I like to say that the content servers&#8217;s DAM features(hehe) are exactly that, Digital Asset <u>Management</u> features<u>.</u>  The DAM components handle the calls to the conversion engines and then also manages the resulting multitude of renditions.  They do not however actually convert anything on their own.  Oracle UCM like many other DAM applications relies on third party conversion tools to handle that work (usually <a href="http://www.handmadesw.com/">Handmade&#8217;s Image Alchemy </a>for Images and <a href="http://www.telestream.net/products/flipfactory.htm">Telestream&#8217;s FlipFactory </a>for video).  This is really an excellent design because the conversion engines end up being loosely coupled to the conversion server, allowing converters to be changed out, added or upgraded, without major changes to system.  With a few simple configuration changes they can also often be piggy-backed together, so that several different conversions actions can be set for the same content item.</p>
<p>From a high level here&#8217;s what a typical DAM process looks like with Oracle UCM.</p>
<ul>
<li>A content author checks in an image or video</li>
<li>The file is identified as a digital asset needing conversion</li>
<li>The file is then passed over to the conversion server</li>
<li>The conversion server looks at the metadata to determine what rendition package and/or conversion need to occur(An image for instance might be converted to a large jpg and a smaller gif.  It might even have a watermark applied).</li>
<li>The conversion is executed.</li>
<li>The resulting renditions are packed up and sent back to the content server</li>
<li>When the content is viewing the content item, the DAM component adds an extra &#8220;Renditions&#8221; tab to review, download and in the case for video watch the different versions</li>
</ul>
<p>That&#8217;s the high level overview, there are some more features there that I am glossing over, but the primary point is that the DAM components handle the management and the conversion engines handle the conversions.</p>
<p><strong>The Delivery Question</strong></p>
<p>Oracle along with many other ECM vendors, identify DAM as one of the four quadrants of ECM(doc man, records and wcm being the others).  In this view DAM is often seen as a sort of a close cousin to document management.  Digital assets are stored, secured and in Oracle&#8217;s case even converted just like regular documents.  But what about delivery..how does that factor in?  Would your average user log in to your content server to view a video or download an image rendition?  Possibly, but what if you&#8217;re running a web site out of that content server instance?  If doc man is DAM&#8217;s close cousin, could WCM be it&#8217;s girlfriend?</p>
<p>If you think about it, going back to the <a href="http://youtube.com/">YouTube </a>and <a href="http://flickr.com">Flickr </a>references earlier, Oracle UCM has the capability to accept and store video and images, manage a conversion to a common web delivery format and then through Site Studio deliver that content back through a web site.  How does that differ from a what a YouTube or Flickr does and honestly how cool is that just in general? </p>
<p><strong>You&#8217;re getting off track, Isn&#8217;t this post suppose to be about streaming Flash?</strong></p>
<p>Out of the box UCM&#8217;S DAM components convert and integrate with several streaming formats and servers: Windows Media, Quicktime and RealMedia can all be outputed from Flip Factory and if a streaming server is identified, the conversion server will copy the streaming file over.  Any calls to content server for the streaming format will return a url to the streaming server instead.</p>
<p>Very cool stuff, but there are a couple limitations with the Flip Factory and UCM DAM combo.</p>
<ul>
<li>Flash FLV format is not an output format</li>
<li>Flash Streaming Servers are not a supported integration</li>
<li>There is not support audio conversion to a streaming format</li>
</ul>
<p>I called Telestream recently and asked about the FLV output and according to them, FlipFactory customers who desire FLV output can purchase an additional plug-in.  I&#8217;m not sure if any one has tested that add-on with the content server, or even if Oracle is even recommending it, but if it works then issue one probably has a pretty good solution.  And if FLV conversion is an option, then streaming server integration and even audio support become pretty easy issues to over come.</p>
<p><strong><span id="more-59"></span> </strong><strong>Why is FLV a big deal anyway, can&#8217;t we just use Windows Media or one of those other formats?</strong></p>
<p>Windows Media is an excellent format and actually if you have DRM requirements, it may even be the preferred one.  Flash media has a wider audience and is the media format of choice for many of the user contributed video sites.  It&#8217;s the big kid on the block right now and you would naturally want it as an option.</p>
<p>Here&#8217;s a chart from Adobe boasting how great they are.  I&#8217;m little skeptical about these numbers&#8230;it&#8217;s pretty hard to get 98.8% of the world to do anything, much less install a piece of software.  Still the web stats from my site do appear to support these numbers.</p>
<p><img name="stats" border="0" width="432" src="http://www.adobe.com/products/player_census/images/stats.gif" alt="Percentage of Internet-enabled PCs with following technologies: (1) Adobe Flash Player: 98.8%, (2) Java:  	84.6%, (3) Microsoft Windows Media Player: 	83.0%, (4) Apple QuickTime Player: 68.4%, (5) Adobe Shockwave Player:  	59.3%,  (6) RealOne Player: 52.6%, (7) SVG:  9.9%." height="309" /></p>
<p>The biggest thing to me though is not the 98.8% penetration for Flash player, it&#8217;s the the 83% penetration for Windows Media. Integrating with Windows Media Services means that 1-2 of every 10 visitors won&#8217;t be able to view your streaming content.  That may or may not be a big deal for your implementation.  Perhaps the majority of your users are on Windows, perhaps you&#8217;re streaming internally or maybe you&#8217;re holding out hope for Sliverlight&#8230;whatever you&#8217;re reasons&#8230;there&#8217;s nothing wrong with Windows Media, it&#8217;s just not as prevalent as Flash.</p>
<p><strong>How would you stream FLV video with the content server?</strong></p>
<p>For this post I&#8217;ve put together a simple proof of concept that demonstrates a simple FLV conversion and streaming integration.  I&#8217;m on the record with quite a few folks decribing this as an easy integration, so I thought it was about time for an example.</p>
<p>The POC is a bundle containing two components, one for the content server and one for the refinery.  The refinery component contains a pretty simple class that preforms a command line call to the conversion engine and then copies any FLV files over to a streaming server if one is available.</p>
<p>The path to the conversion engine as well as the command line parameters can all be configured in the components environmental.cfg file.  This is important because <strong>I&#8217;m not including a conversion engine with the project</strong>.  During development I used an open source converter called <a href="http://ffmpeg.mplayerhq.hu/">FFMpeg</a> which really was a very powerful and versatile application.  Around the time I started this post though, I took a look at their <a href="http://ffmpeg.mplayerhq.hu/legal.html">legal and licensing considerations</a> section and was a little concerned with their aversion to software patents and have decided not to include thier converter with this project.</p>
<p>If you&#8217;d like to use <a href="http://ffmpeg.mplayerhq.hu/index.html">FFMpeg</a> with this project or another, I found the compiled executable for Windows <a href="http://ffdshow.faireal.net/mirror/ffmpeg/">here </a>or you can <a href="http://ffmpeg.mplayerhq.hu/download.html">download and compile </a>a version yourself.  I did take a look at some other command line tools available and there appears to be quite a few, though I haven&#8217;t tested any others.  Since this converter component just makes simple command line calls, it should play pretty well with any other command line applications.</p>
<p>Also included in the bundle is a component for the content server.   That conversion support component includes an <a href="http://www.jeroenwijering.com/?item=JW_FLV_Media_Player">open source flash player </a>as well as some overrides for the DOC_INFO page to display the player just above the links section.  There&#8217;s also a single filter attached to the afterLoadRecordWebChange event that fires during an Indexer action for a content item.  Whenever an item with a streaming version is deleted, it also deletes that version on the streaming server.</p>
<p>In testing I used two different streaming servers, both of which worked very well; Adobe&#8217;s <a href="http://www.adobe.com/products/flashmediainteractive/">Flash Media Server 3</a> which is probably the commercial standard for Flash streaming and <a href="http://osflash.org/red5">RED5</a>, an open source Flash server.  Adobe, like Oracle offers a free developer license for thier Media server.</p>
<p>I think you&#8217;ll find that the overall application is very, very simple.  There is no integration with Oracle own DAM components and really no security considerations with regards to the streaming server(all video regardless of security group is available).  Still I think it&#8217;s a pretty good demonstration of how FLV conversion and streaming integration can be accomplished with the content server.</p>
<p><strong>Where is this component?</strong></p>
<p>You can download the bundle here, please take a look at the readme files for installation instructions:</p>
<p><a rel="attachment wp-att-60" href="http://ContentOnContentManagement.com/2008/03/09/ucmtube-converting-and-streaming-flv-files-with-oracle-ucm/flash-conversion-and-streaming-for-oracle-ucm/" title="Flash Conversion and Streaming for Oracle UCM">Flash Conversion and Streaming for Oracle UCM</a></p>
<p>Of course, like the other samples on this site, it&#8217;s provided with our warrenty or support.  If you do run in to any issues though or have questions, please feel free to post them to the forums or send me an email.  Also if you have any ideas, perhaps a maybe a better converter to use or something else you&#8217;d like to see, let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://contentoncontentmanagement.com/2008/03/ucmtube-converting-and-streaming-flv-files-with-oracle-ucm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

