erlang developments in lambdastreamerlang.org/euc/07/papers/1000rivas.pdf · lambdastream erlang...

30
Lambdastream Erlang Developments in LambdaStream Erlang Developments in LambdaStream Samuel Rivas González LambdaStream [email protected] Erlang Users Conference, Stockholm 2007

Upload: others

Post on 25-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

Erlang Developments in LambdaStream

Samuel Rivas González

LambdaStream [email protected]

Erlang Users Conference, Stockholm 2007

Page 2: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

A Bit of History Origins

Geography

We are from A Coruña, in the north-west of Spain.

Galicia

Page 3: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 4: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 5: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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.

Page 6: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

A Bit of History Products

LambdaStreamProducts

Goal: To complete the whole cycle of an interactive TVoperator using VoDKA infrastructure.

Page 7: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

A Bit of History Products

VoDKAOverview

Page 8: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

A Bit of History Products

VoDKA Live ManagerOverview

Page 9: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

A Bit of History Products

PulsarOverview

Page 10: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

A Bit of History Products

PulsarPulsar Screen

Page 11: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

A Bit of History Products

PulsarPulsar Channel

Page 12: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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)

Page 13: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

A Bit of History Products

BMXGUI Screen Shot

Page 14: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 15: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 16: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

Antares Antares Architecture

ArchitectureOverview

Page 17: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 18: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 19: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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)

Page 20: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 21: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 22: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 23: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

Conclusion Interesting Projects

Pulsar in HotelsCosta Dorada

Cataluña

Valencia

Page 24: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 25: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 26: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 27: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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

Page 28: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

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 . . .

Page 29: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

End

Thanks for Your AttentionAny questions?

Page 30: Erlang Developments in LambdaStreamerlang.org/euc/07/papers/1000Rivas.pdf · Lambdastream Erlang Developments in LambdaStream Antares Antares Architecture Architecture Frontends •

Lambdastream Erlang Developments in LambdaStream

End

Erlang Developments in LambdaStream

Samuel Rivas González

LambdaStream [email protected]

Erlang Users Conference, Stockholm 2007