Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang...

Preview:

Citation preview

Lambdastream Erlang Developments in LambdaStream

Erlang Developments in LambdaStream

Samuel Rivas González

LambdaStream samuel@lambdastream.com

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 samuel@lambdastream.com

Erlang Users Conference, Stockholm 2007