2 Replies Latest reply on Jul 5, 2009 11:36 AM by EWN-CMI

    Flex/FMS Remote Shared Objects Design Question

    EWN-CMI Level 1

      I am new to all this but am looking forward to understanding it better.  I would like to stream live audio and video and use 4 or 5 Remote Shared Objects in a hub design where the publisher is the center of the hub and clients on the spokes.  The publisher can push data changes to the client, such as changing the bio of the current speaker on the live stream from a database.  I am considering Flex for building the app.  I am having a little trouble visualizing how it all will work.  I don't have any problem building the client and can probably figure out how to bind the RSO's, but really don't understand the "publisher"/manager portion.  The GUI will be different, it should see all the clients connected, see the RSO that they can update, know who updated it, push data to the clients from a database, etc.  I am assuming that the manager would also be a Flex app and somehow connect and bind with the same RSO's but I could be diverting back to client/server stuff.  If someone can point me in the right direction I would be most appreciative.


      I envision all clients and the publisher/manager to have access to the same RSO, all the remaining non-live content on the client would be pushed from the publisher/manager.  Maybe even a chat from publisher and each client but not between clients.


      Thanks in advance.  All comments and assistance in the best practices in general are also requested and welcomed.

        • 1. Re: Flex/FMS Remote Shared Objects Design Question

          All the things you want to do are typical Shared Object's functionalities. I've already created a couple of huge projects myself using Shared Objects functionalities, so I can say with the full responsibility that all the things you want to do can be done very easily using those classes.


          Basicaly, if you want to build your app using SO, there are few options available for you on the market. First, and the best I guess, will be Adobe's Flash Media Interactive Server. It's only disadventage is, that it's quite expensive - but it's worth it's price, believe me.

          If you don't want to pay for it, you can also use a free and open source Red5 server. If it's only the "text-chat based" functionality you want to implement, with a typical video streaming, this one should be enough for you. Although, there could be some problems waiting for you if you wanted to create a full video-chat based application. Take a look at the FMS vs Red5 comparision, which maybe will help you decide - http://www.riafreaks.com/. On the first page of this URL there will be an article I'm talking about covering this topic, as well as a sample guide on how to connect FMS to PHP code, which will let you work with any database you want.


          To be honest, if I understood your problem correctly, than Red5 should be enough for you. It works great with Shared Objects, it's free, and it gives you the whole Java API server side - so you can connect to the database very easily. And it also let's you create and manage Shared Objects client side, as well as server side. Although, believe me that even if you're not a Java developer yourself, you won't have to write even a single line of server side code. You can create, update and destroy Shared Objects using only your Flex clients - it'll suite all your needs in the context you've written.

          1 person found this helpful
          • 2. Re: Flex/FMS Remote Shared Objects Design Question
            EWN-CMI Level 1

            Thanks for the response and the link-I had not found that one yet but it looks like it will help me.  We have already decided to go with FMS and have our live feed hosted with a FMS provider.  I also have been reading more since I posted and am getting a little more comfortable, the primary question I have now is the server main.as portion and how it will interact with the single "master" application and the multiple clients.  My limited understanding is that the main.as will serve as the conduit betweent the "master" and the clients.  That if the "master" wants to push some different data to the clients that it would access a RSO in main.as then FMS thru the main.as will propagate the update to the clients.   Based on this I believe that I can use the same RSO's on the master Flex app and the client Flex apps with different GUIs and purpose.  For instance, a {bound} Text item in the client (no opportunity for the client to ever change it is instaniated as a RSO in both the "master" and clients) and used as a TextInput component on the "master" where it could be changed and then FMS through main.as will do it's thing.


            Again, all thoughts are requested and welcome.