Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang...
Transcript of Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang...
Lambdastream Erlang Developments in LambdaStream
Erlang Developments in LambdaStream
Samuel Rivas González
LambdaStream [email protected]
Erlang Users Conference, Stockholm 2007
Lambdastream Erlang Developments in LambdaStream
A Bit of History Origins
Geography
We are from A Coruña, in the north-west of Spain.
Galicia
Lambdastream Erlang Developments in LambdaStream
A Bit of History Origins
MADSResearch Group from the University of A Coruña
• Models And Applications of DistributedSystems Group
• Interest in functional programming andcluster computing
Lambdastream Erlang Developments in LambdaStream
A Bit of History Origins
MADS GroupCradle of the VoDKA Project
Premise• We wanted to build a distributed, highly reliable VoD server• We were comfortable (and confident) with Erlang/OTP
ConsequenceStarted the VoDKA project in 1999
Lambdastream Erlang Developments in LambdaStream
A Bit of History Origins
LambdaStreamSpin-off from MADS Group
LambdaStream was born in 2003 to bring VoDKA technology tothe market.
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
LambdaStreamProducts
Goal: To complete the whole cycle of an interactive TVoperator using VoDKA infrastructure.
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
VoDKAOverview
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
VoDKA Live ManagerOverview
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
PulsarOverview
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
PulsarPulsar Screen
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
PulsarPulsar Channel
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
BMXOverview
Broadcast Media Scheduler• Create scheduled channels out of
stored or live media• Bridge between VoDKA and broadcast
TV• Also used to compose assets (e.g. add
advertisements to on-demand media)
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
BMXGUI Screen Shot
Lambdastream Erlang Developments in LambdaStream
A Bit of History Products
AntaresOverview
• ESG for mobile TV• Heterogeneous sources• Multiple standard outputs:
• DVB-PSI• DVB-IPDC aka CBMS IP datacast
over DVB-H• OMA BCAST IP datacast over DVB-H
and for TV over 3G• Nokia’s OAI 1.0
Lambdastream Erlang Developments in LambdaStream
Antares Mobile TV
Mobile TVRelevant Concepts
Services• Broadcast TV: DVB-H• Interactive TV: 3G
ESG• Electronic Service Guide• Terminals use it to locate DVB-H (and 3G) services• Relevant standards:
• OMA BCAST• DVB CBMS• Nokia’s OAI
Lambdastream Erlang Developments in LambdaStream
Antares Antares Architecture
ArchitectureOverview
Lambdastream Erlang Developments in LambdaStream
Antares Antares Architecture
ArchitectureConnectors
• Get information from heterogeneous sources• Keep version information• Some sources cannot complete the unified tree on their
own• It is possible to link connectors• Connectors can filter information out
Integration• BMX• Asset
Manager
Automatic• EIT/SDT• XML-TV• SAP
Ad-hoc• Manual• Data Casting
Lambdastream Erlang Developments in LambdaStream
Antares Antares Architecture
ArchitectureEngine
• Serialises input from connectors• Resolves discrepancies to ensure consistency• Translate ids to a global name space• Merges them in a Mnesia DB to store an ESG unified data
tree• DB may be replicated
Lambdastream Erlang Developments in LambdaStream
Antares Antares Architecture
ArchitectureFrontends
• Each frontend adapts the unified DB contents to thestandard it implements
• mad-flute to generate FLUTE traffic• A single port supervises all mad-flute processes• Easier to manage than spawning them from the Erlang
side• Reports children crashes and their exit status• Kills children with signals (not closing their stdin)
Lambdastream Erlang Developments in LambdaStream
Antares Antares Architecture
ArchitectureInterfaces
User Interface• Web interface on Yaws• Internal controller +
template library• Not performance, just fast
development
Integration InterfaceWeb services: Yaws servingXML in an app_mod
Lambdastream Erlang Developments in LambdaStream
Conclusion Interesting Projects
Antares in RussiaSverdlovsk’s Mobile TV Platform
Moscow
Yekaterinburg
• First commercial mobile TVnetwork in Russia
• Pilot project in Yecaterinburgfrom November 2006 toMarch 2007
• 300 mobile clients (PMPs,laptops, and DVB-Hterminals)
• Launched in April of 2007 forthe region of Sverdlovsk
Lambdastream Erlang Developments in LambdaStream
Conclusion Interesting Projects
Pulsar in HotelsHotel Calypso in Salou, Spain
• Hotel in “CostaDorada”
• Pulsar feeds internalpromotional screens
• It also feeds theinternal TV channel
Lambdastream Erlang Developments in LambdaStream
Conclusion Interesting Projects
Pulsar in HotelsCosta Dorada
Cataluña
Valencia
Lambdastream Erlang Developments in LambdaStream
Conclusion Interesting Projects
VoDKA in High Speed Train StationsAVE Stations: Madrid–Zaragoza–Barcelona
• Traveller informationsystem
• Line informationsystem
• Background music• On-demand and live
media• Entertainment
media andadvertisements
• Integration with PAsystem
Lambdastream Erlang Developments in LambdaStream
Conclusion Interesting Projects
ProTestProperty-based Testing
• STREP project• Reduce the cost of testing• Automatic test generation
based on softwareproperties
• We are the guinea pig(aka. case of study)
• Ask John Hughes in theafternoon
Lambdastream Erlang Developments in LambdaStream
Conclusion About Erlang
ErlangWhat Is Good About It?
Development• Fast development• Fast learning/training• Lots of useful tools• Easy testing (powerful shell + introspection tools)
Results• Reliable systems• Easy maintenance• Easy integration
Lambdastream Erlang Developments in LambdaStream
Conclusion About Erlang
ErlangRisks
• Freedom may lead to chaos• Different ways to manage exceptions• Different ways to launch systems• Different ways to report errors• Different ways to prepare releases• etc.
• Specially serious when it is easy to reinvent solutions foreach project
• We have to take special care to develop and documentstandard solutions for common problems
Lambdastream Erlang Developments in LambdaStream
Conclusion About Erlang
ErlangAnd What When It Does Not Fit?
GUI• HTML (with Yaws)• XML + Java• Jinterface + Java
High-rate binary data• Home-made memory
management• C/C++ (sigh!)
• Looking for a bettersolution . . .
Lambdastream Erlang Developments in LambdaStream
End
Thanks for Your AttentionAny questions?
Lambdastream Erlang Developments in LambdaStream
End
Erlang Developments in LambdaStream
Samuel Rivas González
LambdaStream [email protected]
Erlang Users Conference, Stockholm 2007