Streaming data into Flex/Flash components via RPC?


I'm looking for help in determining a mechanism for enabling my flash components to consume and display data from a streaming source. I know this sounds like a vague question, but I'm trying to wrap my head around the general process.

I'm assuming that I'll be able to connect external data producer via RPC.
The assumption is that we'd like the data to stream to the Flex app.
The app would in turn consume the data and display it in data bound components.

1) Is this possible?
2) What's the best approach for doing so?
3) Can you point me out to some additional resources for solving this?

jxbmaSoftware ConsultantAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Siva Prasanna KumarPrincipal Solutions ArchitectCommented:
yes your question is really open ended, it depends on many factors and components, for example a image referred using src="" will stream and be loaded automatically.
jxbmaSoftware ConsultantAuthor Commented:
Yes, I apologize. The question is rather open ended.
I guess a good example would be the idea of streaming market data.
I'd like to make a connection (via RPC?) to our host server.
The channel would push streaming market data to the flex app.
I'd like the flex app to then display the data in the bound controls accordingly.
This is a different model then doing HTTP GETs.

Siva Prasanna KumarPrincipal Solutions ArchitectCommented:
Oh I see you want to implement something like a server push or comet.

This is my old article on blazeds

Go through it see if that approach suits you.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jxbmaSoftware ConsultantAuthor Commented:

Thanks so much for the link.  This pattern certainly suits the approach that I had in mind. The specifics of the config file(s) setup and backend java class are just a little beyond me right now.

This will fit in with how we want to proceed. The notion is that we have an app containing 1 or more custom child components. The components are tied to the data via a topic context. The idea is to have 1 streamed update to which the Flex app would respond. Within the client, the app will use the context to determine which component will consume the data.

We will be pushing large volumes of data. A good parallel example of this would be the backend tied into a stock/equity feed (thousands of quotes/buys/sells per sec). Based on user requests, we would filter to return only pertinent data. I guess I have some concerns performance wise. We will be using AMF for the data coming over the wire, so this should help with some size reduction.

These notifications are asynchronous, so what happens if several "rounds" of pushes occur while the client is still responding to previous ones? Do these get queued up? At some threshold, do they fall off the table?

Do the same basic techniques apply to the latest release (4.0) of Flex/Flash?
Are there further optimizations available with the new release?


Thanks again so much for a well written article.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Adobe Flash

From novice to tech pro — start learning today.