SlideShare a Scribd company logo
1 of 41
Download to read offline
HelixCloud
  Webinar
   December 2012
Who am I
        David Riccitelli
          @ziodave

          http://www.linkedin.com/in/riccitelli

          http://blog.insideout.io/


Co-Founder of InsideOut10, holding of
Interact Egypt, with an active presence in
the European, North African and Middle
East markets.
Active since the 1995 in streaming media
and Real partner.
                                                  (more on LinkedIn)
Overview
Mission
"To provide affordable, scalable and highly
 reliable streaming services to customers
   while minimizing impacts on the core
   network infrastructure and lowering
             operational costs"
Features
● Account and User Management
● Quota Limit
● Integrated FTP Server
● Slick Web UI
● Multi-format Streaming URL
● Multiple Roles (Administrator, User,
  Reporter)
● URL Protection (network, geo, token)
● Real-Time Reporting
● APIs for 3rd Party Integration
Architecture

                               Channel
                              Channel
                              Channel
                               Manager              SLTA
                                                    SLTA
Web UI                        Manager              SLTA           Session
                              Manager
                                                                  Manager
                Web APIs
                                                                       Helix
 FTP                                                                  Server
Server                                   Storage




    INGESTION              MANAGEMENT                      DELIVERY
Web APIs
The Web APIs are the core of Helix Cloud
Authentication
Authorization
Logging                            REST
Reporting                          APIs
Account & User Management
File Management
Channel Management            ...and more
FTP Server
The FTP Server is tightly integrated with
the Web APIs and UI.

The same username can be used for file
upload and for management via the UI.

Uploads are inhibited when the storage
quota is reached.
Web UI
The Web UI is highly responsive and
customizable.

It is built on top of the Web APIs.

It provides different access levels.

It features Google Visualization APIs for
the generation of graphs.
Channel Manager
Provides management of channels based
on on-demand contents.

Supports multiple sources and servers.

Is tightly integrated with Helix SLTA
agent.

Provides useful feedback of currently
playing clip via Web APIs and UI.
Software Requirements
RedHat, CentOS or Ubuntu linux

A database server

Java 6+

Apache Tomcat Server 6+

Helix Server 14.2+
Hardware Requirements
Depends on the planned capacity.


               A good start:
               ● 8 cores
               ● 16 gbytes of memory
               ● 200 gbytes of disk
                 space
Platform
Folder Structure: bin
 + /opt/helixcloud/
    + bin/
    | - helixcloud-channelmgr
    |
    :
    .



The Channel Manager package is installed in the /opt/helixcloud folder which contains different
subfolders: bin, lib, etc, log, var.

The bin subfolder contains runnable files, including start-up scripts that can be added to the /etc/init.d
of your system.

The Channel Manager includes the helixcloud-channelmgr which is a start-up script that can be
installed in the /etc/init.d and allows you later to start, stop and check the status of the service by
issuing the following commands:

 /etc/init.d/helixcloud-channelmgr {start|stop|status}
Folder Structure: lib
 + /opt/helixcloud/
    :
    + lib/
    | - helixcloud-channelmgr-1.0-SNAPSHOT.jar
    :
    .



The log subfolder contains the program files, i.e. the files that contain the actual executable code for
the Channel Manager.

The Channel Manager includes the helixcloud-channelmgr-1.0-SNAPSHOT.jar file which is the
actually self-contained program and is launched, along with its parameters, using the helixcloud-
channelmgr script described in the previous slide.
Folder Structure: opt
 + /opt/helixcloud/
    :
    + etc/
    | - chmgr.properties
    | - logback.xml
    :
    .




The etc subfolder contains the configuration files:
 ● chmgr.properties holds the general configuration parameters for the Channel Manager service.
 ● logback.xml has the logging settings.
Folder Structure: log
 + /opt/helixcloud/
    :
    + log/
    | - helixcloud.log
    | - helixcloud-{timestamp}.log
    | + channels/
    |      + {account}/{user}/{channel}/
    |         - slta-{timestamp}.log
    :
    .



The log subfolder contains the logs for the service.

Application logs are written to the helixcloud.log file (and rotated daily to helixcloud-{timestamp}.
log). Application logs are also stored into the database if the logging is configured so.

The standard output for each SLTA instance is written to {account}/{user}/{channel}/slta-
{timestamp}.log
Folder Structure: var
 + /opt/helixcloud/
   :
   + var/
      + channels/
      | + {account}/{user}/
      |      - {channel}.mp4.json
      + templates/
          - channels.xml



The var subfolder contains two subfolders:
 ● channels with the data for all the configured channels in json format.
 ● templates with the configuration files for the SLTA, in our case the configuration file is called
     channels.xml.
Startup Script
APP_HOME=/opt/helixcloud
CHMGR_LIB="$APP_HOME/lib/helixcloud-channelmgr-1.0-SNAPSHOT.jar"
CHMGR_CFG="$APP_HOME/etc/chmgr.properties"
LOGBACK_CFG="$APP_HOME/etc/logback.xml"
CHMGR_CMD="java -DAPP_HOME=$APP_HOME
 -Dlogback.configurationFile=file://$LOGBACK_CFG
 -Dslta.configuration=file://$CHMGR_CFG -jar $CHMGR_LIB"



The startup script defines important variables that point to the location of the library and configuration
files.

The variables are used to build up the Channel Manager command line:

java -DAPP_HOME=/opt/helixcloud 
 -Dlogback.configurationFile=file:///opt/helixcloud/etc/logback.xml 
 -Dslta.configuration=file:///opt/helixcloud/etc/chmgr.properties 
 -jar /opt/helixcloud/lib/helixcloud-channelmgr-1.0-SNAPSHOT.jar
Startup Script: installation
On RedHat and CentOS the startup script is
installed as follows:
cd /etc/init.d
ln -s /opt/helixcloud/bin/helixcloud-channelmgr
chmod 755 helixcloud-channelmgr
chkconfig --add helixcloud-channelmgr




The the service is started as follows:
/etc/init.d/helixcloud-channelmgr start
Application Configuration
slta.runner.commandLine=/opt/helix/_realserver-14.3.0.268/Bin/slta.sh
slta.runner.arguments=-c {template} {path}{suffix} {playlist} -fp
slta.runner.destinationSuffix=.1
slta.runner.template=/opt/helixcloud/var/templates/channel.xml
slta.runner.basePath=/opt/helixcloud/var/media/
slta.storage.path=/opt/helixcloud/var/channels/
slta.storage.suffix=.json
slta.log.path=/opt/helixcloud/log/channels/


 ●   ...commandLine: the full command line to the slta.sh script (it must be the slta.sh script)
 ●   ...arguments: the arguments to be appended to the command line. Arguments include
     placeholders for dynamic information such as the template, path, suffix and playlist parameters
 ●   ...destinationSuffix: the destination suffix to append to the destination name (useful for
     redundant configurations) - will replace the {suffix} placeholder
 ●   ...template: the SLTA configuration - will replace the {template} placeholder
 ●   ...basePath: the path to the clips
 ●   ...path: the path to the channels JSON data storage
 ●   ...suffix: the suffix for the channels data file
 ●   ...log.path: the path to the SLTA instances logs.
Logging Configuration
<configuration>
  <appender name="..." class="...">
   ...
  </appender>
  <logger name="..." level="..." />
  <root level="...">
   ...
  </root>
</configuration>


The logging configuration is divided into 3 major groups:
 ● appender defines where to "write" the log data
 ● logger sets a verbosity filter according to the source of the log data
 ● root activates the appenders

Logging is provided via the logback framework which provides an extensive documentation at this
web address: http://logback.qos.ch/manual/index.html
Logging: Appenders
Typically the following appenders are
configured:
● stdout: writes the log lines on the standard
  output (useful if run on a terminal window)
● file: writes the log lines to (rolling) files
● database/db: writes the log lines as SQL
  inserts in a logging database/table
Logging: Loggers
Loggers are configured to report only warnings
and errors from most of the programs.

Loggers will report also debug information from
the program core, unless we decide to
configure it differently.
Transmitter Configuration
  <List Name="slta1">
          <Var PathPrefix="*"/>
          <Var PortRange="30001-30100"/>
          <Var AcquisitionDataInterval="30"/>
          <Var FECLevel="5"/>
          <Var SureStreamAware="0"/>
          <Var BufferlessTransport="1"/>
          <Var LocalAddress="192.168.71.100" />
          <Var Address="192.168.71.101"/>
          <Var TTL="16"/>
          <Var ResendSupported="1"/>
          <Var Protocol="udp/unicast"/>
          <List Name="Security">
                  <Var Type="None"/>
          </List>
  </List>
Receiver Configuration
Monitoring Configuration




The Channel Manager service listens for API
requests on port 8081/tcp, therefore this port
can be configured in Nagios to continuously
monitor the availability of the Channel
Manager service.
APIs
API Overview




● Middleware APIs: access point for
  integrators.
● Channel Manager APIs: internal
  communications.
APIs: roles
Administrators: can operate the full
platform and perform operations on
all the account and users.
In our examples, Yoda has "admin" as username and password.




Users: can only access their own
data.
In our examples, the Ewoks have "user" as username and password.
API: List of all channels

curl -X GET http://admin:admin@localhost/api/1/channels
API: list user channels

curl -X GET http://admin:admin@localhost/api/1/channels/ user




curl -X GET http://user:user@localhost/api/1/ me/channels
API: create a channel
curl -X POST 
http://admin:admin@localhost/api/1/channels 
-d @channel1.json 
-H "Content-Type: application/json" 
-H "Accept: application/json"



{
    "userName":"user",
    "path":"channel1.mp4",
    "title":"Channel 1"
}
API: get details about a channel
  curl -X GET 
   http://admin:admin@localhost/api/1/channels/ user↵
   ?path=channel1.mp4




  curl -X GET 
   http://user:user@localhost/api/1/ me/channels↵
   ?path=channel1.mp4
API: add a clip to a channel
curl -X POST 
 http://admin:admin@localhost/api/1/channels/ user/↵
 clips?path=channel1.mp4&clip=clip1.mp4 ↵
 &clip=clip2.mp4




curl -X POST 
 http://user:user@localhost/api/1/ me/channels/ ↵
 clips?path=channel1.mp4&clip=clip1.mp4 ↵
 &clip=clip2.mp4
API: delete a channel
curl -X DELETE 
http://admin:admin@localhost/api/1/channels/user ↵
?path=channel1.mp4
API: update a channel
curl -X PUT 
 http://admin:admin@localhost/api/1/channels 
 -d @channel2.json 
 -H "Content-Type: application/json" 
 -H "Accept: application/json"




curl -X PUT 
 http://user:user@localhost/api/1/ me/channels 
 -d @channel2.json 
 -H "Content-Type: application/json" 
 -H "Accept: application/json"
API: start a channel
curl -i -X GET 
 http://admin:admin@localhost/api/1/channels/ user/↵
 start?path=channel1.mp4




curl -i -X GET 
 http://user:user@localhost/api/1/ me/channels/ ↵
 start?path=channel1.mp4
API: stop a channel
curl -i -X GET 
 http://admin:admin@localhost/api/1/channels/ user/↵
 stop?path=channel1.mp4




curl -i -X GET 
 http://user:user@localhost/api/1/ me/channels/ ↵
 stop?path=channel1.mp4
API: restart a channel
curl -i -X GET 
http://admin:admin@localhost/api/1/channels/ user/↵
restart?path=channel1.mp4




curl -i -X GET 
http://user:user@localhost/api/1/ me/channels/ ↵
restart?path=channel1.mp4
Thank You!
   Grazie!
Danke schön!
    !‫ﺷﻜﺮا‬

More Related Content

What's hot

Tomcat Clustering
Tomcat ClusteringTomcat Clustering
Tomcat Clustering
gouthamrv
 
At8000 s configurando trunking
At8000 s configurando trunkingAt8000 s configurando trunking
At8000 s configurando trunking
NetPlus
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJS
Blake Newman
 
Apache Manager Table of Contents
Apache Manager Table of ContentsApache Manager Table of Contents
Apache Manager Table of Contents
webhostingguy
 

What's hot (15)

Tomcat server
 Tomcat server Tomcat server
Tomcat server
 
Imap connector
Imap connectorImap connector
Imap connector
 
Introduction to Apache Tomcat 7 Presentation
Introduction to Apache Tomcat 7 PresentationIntroduction to Apache Tomcat 7 Presentation
Introduction to Apache Tomcat 7 Presentation
 
Logging from the bottom up
Logging from the bottom upLogging from the bottom up
Logging from the bottom up
 
Rails onCpanel
Rails onCpanelRails onCpanel
Rails onCpanel
 
Tomcat Clustering
Tomcat ClusteringTomcat Clustering
Tomcat Clustering
 
At8000 s configurando trunking
At8000 s configurando trunkingAt8000 s configurando trunking
At8000 s configurando trunking
 
Tomcat next
Tomcat nextTomcat next
Tomcat next
 
(ATS4-PLAT09) Kerberos & SAML with Accelrys Enterprise Platform 9.0
(ATS4-PLAT09) Kerberos & SAML with Accelrys Enterprise Platform 9.0(ATS4-PLAT09) Kerberos & SAML with Accelrys Enterprise Platform 9.0
(ATS4-PLAT09) Kerberos & SAML with Accelrys Enterprise Platform 9.0
 
Advaced training-wso2-esb
Advaced training-wso2-esbAdvaced training-wso2-esb
Advaced training-wso2-esb
 
Apache tomcat
Apache tomcatApache tomcat
Apache tomcat
 
Why Laravel?
Why Laravel?Why Laravel?
Why Laravel?
 
Tomcat configuration
Tomcat configurationTomcat configuration
Tomcat configuration
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJS
 
Apache Manager Table of Contents
Apache Manager Table of ContentsApache Manager Table of Contents
Apache Manager Table of Contents
 

Viewers also liked

WordLift 2.0 (presentation for the IKS annual review in Saarbrücken)
WordLift 2.0 (presentation for the IKS annual review in Saarbrücken)WordLift 2.0 (presentation for the IKS annual review in Saarbrücken)
WordLift 2.0 (presentation for the IKS annual review in Saarbrücken)
Andrea Volpini
 
Blackberry Vs Iphone
Blackberry Vs IphoneBlackberry Vs Iphone
Blackberry Vs Iphone
Capielo
 

Viewers also liked (8)

Expo english
Expo englishExpo english
Expo english
 
Google Currents
Google Currents Google Currents
Google Currents
 
WordLift 2.0 (Pitch at JBoye11 in Aarhus)
WordLift 2.0 (Pitch at JBoye11 in Aarhus)WordLift 2.0 (Pitch at JBoye11 in Aarhus)
WordLift 2.0 (Pitch at JBoye11 in Aarhus)
 
Cloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiquesCloud Azure – Services de données et bonnes pratiques
Cloud Azure – Services de données et bonnes pratiques
 
WordLift 2.0 (presentation for the IKS annual review in Saarbrücken)
WordLift 2.0 (presentation for the IKS annual review in Saarbrücken)WordLift 2.0 (presentation for the IKS annual review in Saarbrücken)
WordLift 2.0 (presentation for the IKS annual review in Saarbrücken)
 
Blackberry Vs Iphone
Blackberry Vs IphoneBlackberry Vs Iphone
Blackberry Vs Iphone
 
WordLift - SEMANTiCS 2016
WordLift - SEMANTiCS 2016 WordLift - SEMANTiCS 2016
WordLift - SEMANTiCS 2016
 
New Thinking in the Practice of Digital Journalism
New Thinking in the Practice of Digital Journalism New Thinking in the Practice of Digital Journalism
New Thinking in the Practice of Digital Journalism
 

Similar to HelixCloud Webinar

Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7
WSO2
 

Similar to HelixCloud Webinar (20)

SIP Router Project
SIP Router ProjectSIP Router Project
SIP Router Project
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
SnapLogic- iPaaS (Elastic Integration Cloud and Data Integration)
SnapLogic- iPaaS (Elastic Integration Cloud and Data Integration) SnapLogic- iPaaS (Elastic Integration Cloud and Data Integration)
SnapLogic- iPaaS (Elastic Integration Cloud and Data Integration)
 
Integrating Apache Camel with Apache Syncope
Integrating Apache Camel with Apache SyncopeIntegrating Apache Camel with Apache Syncope
Integrating Apache Camel with Apache Syncope
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at Netflix
 
Alfresco Architecture
Alfresco ArchitectureAlfresco Architecture
Alfresco Architecture
 
Rit 2011 ats
Rit 2011 atsRit 2011 ats
Rit 2011 ats
 
SCOM Tips and Tricks
SCOM Tips and TricksSCOM Tips and Tricks
SCOM Tips and Tricks
 
Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your Services
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
 
Hpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago admHpe service virtualization 3.8 what's new chicago adm
Hpe service virtualization 3.8 what's new chicago adm
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
Wso2 esb-maintenance-guide
Wso2 esb-maintenance-guideWso2 esb-maintenance-guide
Wso2 esb-maintenance-guide
 
Kamailio - Large Unified Communication Platforms
Kamailio - Large Unified Communication PlatformsKamailio - Large Unified Communication Platforms
Kamailio - Large Unified Communication Platforms
 
A10 Itil Oasys Webex 090309
A10 Itil Oasys  Webex 090309A10 Itil Oasys  Webex 090309
A10 Itil Oasys Webex 090309
 
Protocol
ProtocolProtocol
Protocol
 
11i Logs
11i Logs11i Logs
11i Logs
 
Kamailio - Unifying SIP and Web Worlds with Lua
Kamailio - Unifying SIP and Web Worlds with LuaKamailio - Unifying SIP and Web Worlds with Lua
Kamailio - Unifying SIP and Web Worlds with Lua
 
How to save log4net into database
How to save log4net into databaseHow to save log4net into database
How to save log4net into database
 

More from Andrea Volpini

More from Andrea Volpini (20)

Seo automation using gpt 3 and transformer-based language models
Seo automation using gpt 3 and transformer-based language modelsSeo automation using gpt 3 and transformer-based language models
Seo automation using gpt 3 and transformer-based language models
 
Schema Markup Essentials by Semrush
Schema Markup Essentials by SemrushSchema Markup Essentials by Semrush
Schema Markup Essentials by Semrush
 
How AI/ML Can Supercharge Your SEO (a TNW round table)
How AI/ML Can Supercharge Your SEO (a TNW round table)How AI/ML Can Supercharge Your SEO (a TNW round table)
How AI/ML Can Supercharge Your SEO (a TNW round table)
 
Making Websites Talk: the rise of Voice Search and Conversational Interfaces
Making Websites Talk: the rise of Voice Search and Conversational InterfacesMaking Websites Talk: the rise of Voice Search and Conversational Interfaces
Making Websites Talk: the rise of Voice Search and Conversational Interfaces
 
Wordlift Roadmap for 2018
Wordlift Roadmap for 2018Wordlift Roadmap for 2018
Wordlift Roadmap for 2018
 
AI-powered SEO - Structured Data & Semantics - WordLift for SMXL Milan 2017
AI-powered SEO - Structured Data & Semantics - WordLift for SMXL Milan 2017AI-powered SEO - Structured Data & Semantics - WordLift for SMXL Milan 2017
AI-powered SEO - Structured Data & Semantics - WordLift for SMXL Milan 2017
 
Is semantic markup really helping websites improve their online visibility?
Is semantic markup really helping websites improve their online visibility?Is semantic markup really helping websites improve their online visibility?
Is semantic markup really helping websites improve their online visibility?
 
Web Storytelling and Open Data Publishing for Tourism
Web Storytelling and Open Data Publishing for TourismWeb Storytelling and Open Data Publishing for Tourism
Web Storytelling and Open Data Publishing for Tourism
 
What do we want computers to do for us?
What do we want computers to do for us? What do we want computers to do for us?
What do we want computers to do for us?
 
Semantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLiftSemantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLift
 
Semantic SEO nell’Era Post Hummingbird e WordLift 3.0
Semantic SEO nell’Era Post Hummingbird e WordLift 3.0 Semantic SEO nell’Era Post Hummingbird e WordLift 3.0
Semantic SEO nell’Era Post Hummingbird e WordLift 3.0
 
Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)
 
WordLift 3.0 - Dynamic Semantic Publishing for WordPress
WordLift 3.0 - Dynamic Semantic Publishing for WordPress WordLift 3.0 - Dynamic Semantic Publishing for WordPress
WordLift 3.0 - Dynamic Semantic Publishing for WordPress
 
Redlink - Semantic Technologies for News & Media
Redlink - Semantic Technologies for News & Media Redlink - Semantic Technologies for News & Media
Redlink - Semantic Technologies for News & Media
 
Hybrid TV & OTT TV for Telco 3.0
Hybrid TV & OTT TV for Telco 3.0Hybrid TV & OTT TV for Telco 3.0
Hybrid TV & OTT TV for Telco 3.0
 
Wordlift 2.5 Sneak-Peek
Wordlift 2.5 Sneak-PeekWordlift 2.5 Sneak-Peek
Wordlift 2.5 Sneak-Peek
 
RedLink GmbH (Introduction)
RedLink GmbH (Introduction)  RedLink GmbH (Introduction)
RedLink GmbH (Introduction)
 
Semantic Marketing
Semantic MarketingSemantic Marketing
Semantic Marketing
 
WordLift 2.0 presented on the Semantic Web Meetup in Rome
WordLift 2.0 presented on the Semantic Web Meetup in RomeWordLift 2.0 presented on the Semantic Web Meetup in Rome
WordLift 2.0 presented on the Semantic Web Meetup in Rome
 
Open Street Map vs Google Maps
Open Street Map vs Google MapsOpen Street Map vs Google Maps
Open Street Map vs Google Maps
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

HelixCloud Webinar

  • 1. HelixCloud Webinar December 2012
  • 2. Who am I David Riccitelli @ziodave http://www.linkedin.com/in/riccitelli http://blog.insideout.io/ Co-Founder of InsideOut10, holding of Interact Egypt, with an active presence in the European, North African and Middle East markets. Active since the 1995 in streaming media and Real partner. (more on LinkedIn)
  • 4. Mission "To provide affordable, scalable and highly reliable streaming services to customers while minimizing impacts on the core network infrastructure and lowering operational costs"
  • 5. Features ● Account and User Management ● Quota Limit ● Integrated FTP Server ● Slick Web UI ● Multi-format Streaming URL ● Multiple Roles (Administrator, User, Reporter) ● URL Protection (network, geo, token) ● Real-Time Reporting ● APIs for 3rd Party Integration
  • 6. Architecture Channel Channel Channel Manager SLTA SLTA Web UI Manager SLTA Session Manager Manager Web APIs Helix FTP Server Server Storage INGESTION MANAGEMENT DELIVERY
  • 7. Web APIs The Web APIs are the core of Helix Cloud Authentication Authorization Logging REST Reporting APIs Account & User Management File Management Channel Management ...and more
  • 8. FTP Server The FTP Server is tightly integrated with the Web APIs and UI. The same username can be used for file upload and for management via the UI. Uploads are inhibited when the storage quota is reached.
  • 9. Web UI The Web UI is highly responsive and customizable. It is built on top of the Web APIs. It provides different access levels. It features Google Visualization APIs for the generation of graphs.
  • 10. Channel Manager Provides management of channels based on on-demand contents. Supports multiple sources and servers. Is tightly integrated with Helix SLTA agent. Provides useful feedback of currently playing clip via Web APIs and UI.
  • 11. Software Requirements RedHat, CentOS or Ubuntu linux A database server Java 6+ Apache Tomcat Server 6+ Helix Server 14.2+
  • 12. Hardware Requirements Depends on the planned capacity. A good start: ● 8 cores ● 16 gbytes of memory ● 200 gbytes of disk space
  • 14. Folder Structure: bin + /opt/helixcloud/ + bin/ | - helixcloud-channelmgr | : . The Channel Manager package is installed in the /opt/helixcloud folder which contains different subfolders: bin, lib, etc, log, var. The bin subfolder contains runnable files, including start-up scripts that can be added to the /etc/init.d of your system. The Channel Manager includes the helixcloud-channelmgr which is a start-up script that can be installed in the /etc/init.d and allows you later to start, stop and check the status of the service by issuing the following commands: /etc/init.d/helixcloud-channelmgr {start|stop|status}
  • 15. Folder Structure: lib + /opt/helixcloud/ : + lib/ | - helixcloud-channelmgr-1.0-SNAPSHOT.jar : . The log subfolder contains the program files, i.e. the files that contain the actual executable code for the Channel Manager. The Channel Manager includes the helixcloud-channelmgr-1.0-SNAPSHOT.jar file which is the actually self-contained program and is launched, along with its parameters, using the helixcloud- channelmgr script described in the previous slide.
  • 16. Folder Structure: opt + /opt/helixcloud/ : + etc/ | - chmgr.properties | - logback.xml : . The etc subfolder contains the configuration files: ● chmgr.properties holds the general configuration parameters for the Channel Manager service. ● logback.xml has the logging settings.
  • 17. Folder Structure: log + /opt/helixcloud/ : + log/ | - helixcloud.log | - helixcloud-{timestamp}.log | + channels/ | + {account}/{user}/{channel}/ | - slta-{timestamp}.log : . The log subfolder contains the logs for the service. Application logs are written to the helixcloud.log file (and rotated daily to helixcloud-{timestamp}. log). Application logs are also stored into the database if the logging is configured so. The standard output for each SLTA instance is written to {account}/{user}/{channel}/slta- {timestamp}.log
  • 18. Folder Structure: var + /opt/helixcloud/ : + var/ + channels/ | + {account}/{user}/ | - {channel}.mp4.json + templates/ - channels.xml The var subfolder contains two subfolders: ● channels with the data for all the configured channels in json format. ● templates with the configuration files for the SLTA, in our case the configuration file is called channels.xml.
  • 19. Startup Script APP_HOME=/opt/helixcloud CHMGR_LIB="$APP_HOME/lib/helixcloud-channelmgr-1.0-SNAPSHOT.jar" CHMGR_CFG="$APP_HOME/etc/chmgr.properties" LOGBACK_CFG="$APP_HOME/etc/logback.xml" CHMGR_CMD="java -DAPP_HOME=$APP_HOME -Dlogback.configurationFile=file://$LOGBACK_CFG -Dslta.configuration=file://$CHMGR_CFG -jar $CHMGR_LIB" The startup script defines important variables that point to the location of the library and configuration files. The variables are used to build up the Channel Manager command line: java -DAPP_HOME=/opt/helixcloud -Dlogback.configurationFile=file:///opt/helixcloud/etc/logback.xml -Dslta.configuration=file:///opt/helixcloud/etc/chmgr.properties -jar /opt/helixcloud/lib/helixcloud-channelmgr-1.0-SNAPSHOT.jar
  • 20. Startup Script: installation On RedHat and CentOS the startup script is installed as follows: cd /etc/init.d ln -s /opt/helixcloud/bin/helixcloud-channelmgr chmod 755 helixcloud-channelmgr chkconfig --add helixcloud-channelmgr The the service is started as follows: /etc/init.d/helixcloud-channelmgr start
  • 21. Application Configuration slta.runner.commandLine=/opt/helix/_realserver-14.3.0.268/Bin/slta.sh slta.runner.arguments=-c {template} {path}{suffix} {playlist} -fp slta.runner.destinationSuffix=.1 slta.runner.template=/opt/helixcloud/var/templates/channel.xml slta.runner.basePath=/opt/helixcloud/var/media/ slta.storage.path=/opt/helixcloud/var/channels/ slta.storage.suffix=.json slta.log.path=/opt/helixcloud/log/channels/ ● ...commandLine: the full command line to the slta.sh script (it must be the slta.sh script) ● ...arguments: the arguments to be appended to the command line. Arguments include placeholders for dynamic information such as the template, path, suffix and playlist parameters ● ...destinationSuffix: the destination suffix to append to the destination name (useful for redundant configurations) - will replace the {suffix} placeholder ● ...template: the SLTA configuration - will replace the {template} placeholder ● ...basePath: the path to the clips ● ...path: the path to the channels JSON data storage ● ...suffix: the suffix for the channels data file ● ...log.path: the path to the SLTA instances logs.
  • 22. Logging Configuration <configuration> <appender name="..." class="..."> ... </appender> <logger name="..." level="..." /> <root level="..."> ... </root> </configuration> The logging configuration is divided into 3 major groups: ● appender defines where to "write" the log data ● logger sets a verbosity filter according to the source of the log data ● root activates the appenders Logging is provided via the logback framework which provides an extensive documentation at this web address: http://logback.qos.ch/manual/index.html
  • 23. Logging: Appenders Typically the following appenders are configured: ● stdout: writes the log lines on the standard output (useful if run on a terminal window) ● file: writes the log lines to (rolling) files ● database/db: writes the log lines as SQL inserts in a logging database/table
  • 24. Logging: Loggers Loggers are configured to report only warnings and errors from most of the programs. Loggers will report also debug information from the program core, unless we decide to configure it differently.
  • 25. Transmitter Configuration <List Name="slta1"> <Var PathPrefix="*"/> <Var PortRange="30001-30100"/> <Var AcquisitionDataInterval="30"/> <Var FECLevel="5"/> <Var SureStreamAware="0"/> <Var BufferlessTransport="1"/> <Var LocalAddress="192.168.71.100" /> <Var Address="192.168.71.101"/> <Var TTL="16"/> <Var ResendSupported="1"/> <Var Protocol="udp/unicast"/> <List Name="Security"> <Var Type="None"/> </List> </List>
  • 27. Monitoring Configuration The Channel Manager service listens for API requests on port 8081/tcp, therefore this port can be configured in Nagios to continuously monitor the availability of the Channel Manager service.
  • 28. APIs
  • 29. API Overview ● Middleware APIs: access point for integrators. ● Channel Manager APIs: internal communications.
  • 30. APIs: roles Administrators: can operate the full platform and perform operations on all the account and users. In our examples, Yoda has "admin" as username and password. Users: can only access their own data. In our examples, the Ewoks have "user" as username and password.
  • 31. API: List of all channels curl -X GET http://admin:admin@localhost/api/1/channels
  • 32. API: list user channels curl -X GET http://admin:admin@localhost/api/1/channels/ user curl -X GET http://user:user@localhost/api/1/ me/channels
  • 33. API: create a channel curl -X POST http://admin:admin@localhost/api/1/channels -d @channel1.json -H "Content-Type: application/json" -H "Accept: application/json" { "userName":"user", "path":"channel1.mp4", "title":"Channel 1" }
  • 34. API: get details about a channel curl -X GET http://admin:admin@localhost/api/1/channels/ user↵ ?path=channel1.mp4 curl -X GET http://user:user@localhost/api/1/ me/channels↵ ?path=channel1.mp4
  • 35. API: add a clip to a channel curl -X POST http://admin:admin@localhost/api/1/channels/ user/↵ clips?path=channel1.mp4&clip=clip1.mp4 ↵ &clip=clip2.mp4 curl -X POST http://user:user@localhost/api/1/ me/channels/ ↵ clips?path=channel1.mp4&clip=clip1.mp4 ↵ &clip=clip2.mp4
  • 36. API: delete a channel curl -X DELETE http://admin:admin@localhost/api/1/channels/user ↵ ?path=channel1.mp4
  • 37. API: update a channel curl -X PUT http://admin:admin@localhost/api/1/channels -d @channel2.json -H "Content-Type: application/json" -H "Accept: application/json" curl -X PUT http://user:user@localhost/api/1/ me/channels -d @channel2.json -H "Content-Type: application/json" -H "Accept: application/json"
  • 38. API: start a channel curl -i -X GET http://admin:admin@localhost/api/1/channels/ user/↵ start?path=channel1.mp4 curl -i -X GET http://user:user@localhost/api/1/ me/channels/ ↵ start?path=channel1.mp4
  • 39. API: stop a channel curl -i -X GET http://admin:admin@localhost/api/1/channels/ user/↵ stop?path=channel1.mp4 curl -i -X GET http://user:user@localhost/api/1/ me/channels/ ↵ stop?path=channel1.mp4
  • 40. API: restart a channel curl -i -X GET http://admin:admin@localhost/api/1/channels/ user/↵ restart?path=channel1.mp4 curl -i -X GET http://user:user@localhost/api/1/ me/channels/ ↵ restart?path=channel1.mp4
  • 41. Thank You! Grazie! Danke schön! !‫ﺷﻜﺮا‬