The Control of Media & Devices in an Internet of Things (IoT)

15
Steven Posick Controlling Objects in an Internet of Things (IoT)

description

The “Internet of Things” (IoT) refers to an Internet like structure consisting of uniquely identified objects that expose services. These services are typically designed using traditional Object Oriented methodologies that encourage the coalescence of features into a single consolidated endpoint. This may work well for homogeneous environments but can be problematic for heterogeneous environments, such as the Internet of Things, where objects may be modular and change their behavior dynamically. To better represent objects within the Internet of Things each endpoint should implement a single, concise feature, or capability of that object. The representation of capabilities in this fashion requires a means by which endpoint consumers can identify the list of capabilities exposed by an object. Thus adding an additional requirement to the IoT, requiring not only the unique identification of objects, but also the unique identification of the capabilities that those objects expose. Capabilities-based programming addresses the "Basket of Remotes" problem posed by the IoT by allowing applications to be developed against a set of features (Capabilities) as opposed to a specific object type. Elevating features to first-class citizen status (capabilities) allows applications to work with new objects without forehand knowledge of the object type and allows the object to change behavior dynamically at runtime without negatively impacting the application.

Transcript of The Control of Media & Devices in an Internet of Things (IoT)

Page 1: The Control of Media & Devices in an Internet of Things (IoT)

Steven  Posick  

Controlling  Objects  in  an  Internet  of  Things  (IoT)  

Page 2: The Control of Media & Devices in an Internet of Things (IoT)
Page 3: The Control of Media & Devices in an Internet of Things (IoT)

Switcher  

QC  Monitor  

Clock  

Graphics  Server  

Video  Servers  

Video  Rou;ng  

Tape  Deck  

Comms  

Monitoring  

Scheduling  

Page 4: The Control of Media & Devices in an Internet of Things (IoT)

•  Internet  of  Things  (IoT)  –  An  Internet  like  structure  of  uniquely  iden;fied  objects  •  What  is  an  Object?  

•  Device  –  SoLware  or  firmware  that  represents  a  physical  piece  of  hardware  

•  Service  –  A  soLware  service  (e.g.,  SOAP  and  RESTful    Web  Services,  EJB,  Corba  Object)  

•  Data  Object  –  Related  data  bundled  into  a  single  Object  or  En;ty  •  Cannot  perform  direct  ac;on,  but  can  be  acted  upon  by  services  and  devices  

•  Iden;ty  •  Iden;ty  is  the  characteris;c  of  an  Object  that  dis;nguishes  it  from  all  other  Objects  

•  Each  Object  is  uniquely  iden;fied  (e.g.,  UUID,  URI,  Fully  Qualified  Domain  Name,  Namespace)  

•  Iden;ty  does  NOT  indicate  locality  or  accessibility  (Where  an  Object  is  and  if  it  can  be  accessed)  

•  Iden;ty  does  not  describe  func;onality,  but  it  can  indirectly  indicate  func;onality    

•  The  IoT  is  a  Conceptual  extension  of  the  Internet  •  Numerous  implementa;ons,  using  many  technologies,  wired  and  wireless  

•  Internet  Protocol  may  be  used  for  transport  &  Iden;ty,  but  is  only  one  facet  of  the  IoT  

•  Numerous  wireless  protocols  have  been  developed  for  small  devices,  such  as  sensors  

Page 5: The Control of Media & Devices in an Internet of Things (IoT)

•  Basket  of  Remotes  –  Many  Objects,  how  do  we  control  them  all?  

•  Object  Discovery  –  The  Automa;c  Discovery  of  Objects  over  the  Network  •  DNS  Based  Service  Discovery  (DNS-­‐SD)  [IETF  ZeroConf  &  Apple’s  Bonjour]  

•  SMPTE  ST2071-­‐3  Media  Device  Control  -­‐  Discovery  

•  Simple  Service  Discovery  Protocol  (SSDP)  [UPnP]  

•  Proprietary  Protocols  using  Broadcast  or  Mul;cast  (Too  common,  usually  poorly  done)  

•  Object  Self  DescripJon  –  A  form  of  Introspec;on  •  Provides  a  means  by  which  an  Object  can  describe  its  Capabili;es  to  others  

•  CapabiliJes  •  Uniquely  Iden;fied  Features  

•  Most  powerful  when  defined  as  small  concise  features.  (e.g.,  Play,  Stop,  Pause,  Load,  Eject)  •  Can  be  tradi;onal  service  /  interface  defini;ons  or  exis;ng  defini;ons  

•  The  size  and  scope  of  the  Capability  depends  upon  the  need  and  what  makes  sense  

Page 6: The Control of Media & Devices in an Internet of Things (IoT)

•  Feature  Discovery  and  Object  Self-­‐DescripJon    •  Provides  a  means  by  which  Objects  can  describe  their  behavior  (Introspec;on)  

•  A  Capability  is  a  Uniquely  IdenJfied  Feature  exposed  as  an  Endpoint  

•  Most  Powerful  when  defined  as  small  concise  features    (e.g.,  Play,  Stop,  Pause,  Shuale)  •  Allows  Object  behavior  to  be  described  using  well-­‐known,  predefined  interfaces  

•  Lego™  blocks  for  Programming  (Object  defini;on,  Interface  defini;ons,  &  SOA)  •  Implementers  can  define  their  own  Capabili;es  

•  New  Capabili;es  can  be  added  sta;cally  or  dynamically  without  undesired  results  •  Without  impac;ng  the  binary  /  network  signature  of  the  Object,  preserving  interoperability  

•  Clients  work  with  CapabiliJes  they  understand  and  ignore  the  ones  they  don’t  

•  Why?  •  Tradi;onal  OOP/OOD  Objects  are  comprised  of  many  features  consolidated  into  a  single  view  

•  Object  inheritance  in  strongly  typed  OOD  environments  breaks  network  compa;bility,  changes  the  binary  /  network  signature  of  the  Object  

•  Clients  must  be  updated,  even  those  only  suppor;ng  the  original  behavior  (e.g.,  Corba,  DCOM,  JRMP)  

Page 7: The Control of Media & Devices in an Internet of Things (IoT)

Develop  to  the  Behavior,  NOT  the  Object  Type  

Page 8: The Control of Media & Devices in an Internet of Things (IoT)

•  Capability  Interface  Repository/Registry  •  DNS  for  SoVware  Interfaces  

•  Requires  Unique  Iden;ty  and  Namespace  for  each  Interface  

•  There  can  be  SDO  Registries  and  Vendor  Specific  Registries  

•  Allows  Plug  &  Play  for  Development  •  Use  Service  Discovery  to  find  devices  and  services  to  develop  for  •  Interrogate  device  or  service  for  its  Capabili;es  •  Use  Capability  Repository  to  get  programma;c  ar;facts  for  each  Capability  

•  Documenta;on  

•  WSDL,  WSDL  Equivalent,  and  /  or  Binary  Ar;facts  

•  WADL,  YAML,  Relax  NG  

Page 9: The Control of Media & Devices in an Internet of Things (IoT)

public  interface  Thermostat  {          public  enum  MODE  {  

               HEAT,  COOL,  AUTO;          }  

       public  float  getTemperature()          throws  UnsupportedOperationException;          public  void  setTemperature(float  temperature)          throws  UnsupportedOperationException;  

       public  MODE  getMode()          throws  UnsupportedOperationException;  

       public  void  setMode(MODE  mode)          throws  UnsupportedOperationException;          public  int[]  getZones()          throws  UnsupportedOperationException;          public  int  getZone()          throws  UnsupportedOperationException;  

       public  void  setZone(int  zone)          throws  UnsupportedOperationException;  

       public  String[]  getZoneNames()          throws  UnsupportedOperationException;  }  

public  interface  TemperatureSupport  {          public  float  getTemperature();  

}  public  interface  SetTemperatureSupport  {  

       public  void  setTemperature(float  temperature);  

}  public  interface  ZoneSupport  {  

       public  int[]  getZones();  

       public  int  getZone();          public  String[]  getZoneNames();  

       public  void  setZone(int  zone);  

}  public  interface  SetZoneSupport  {  

       public  void  setZoneName(String  name);  }  

public  interface  ModeSupport  {  

       public  enum  MODE  {                  HEAT,  COOL,  AUTO;  

       }  

       public  MODE  getMode();  }  

public  interface  SetModeSupport  {  

       public  void  setMode(MODE  mode);  }  

Tradi;onal   Capability-­‐based  Design  

Page 10: The Control of Media & Devices in an Internet of Things (IoT)

•  Object  Discovery  through  Query  •  Object  based  Query  Language  defined  in  SMPTE  ST2071-­‐1  &  2  

•  Objects  can  be  Queried  

•  By  the  CapabiliJes  Exposed  (Features  Implemented)  •  By  A[ributes  Assigned  to  the  Object  •  By  RelaJonships  to  other  Objects  •  By  LocaJon  •  By  Workflow  

•  Objects  can  be  Queried  over  the  network  with  a  SQL-­‐like  clause  •  Devices  •  Services  •  Media  

Page 11: The Control of Media & Devices in an Internet of Things (IoT)

•  Standard  Operators  •  NOT  –  Performs  a  Boolean  nega;on,  inver;ng  the  input  

•  OR  –  Performs  a  Boolean  comparison  and  is  TRUE  if  any  input  is  TRUE  

•  AND  –  Performs  a  Boolean  comparison  and  is  TRUE  if  all  inputs  are  TRUE  

•  EQUALS  –  Performs  an  equality  check,  TRUE  if  the  inputs  are  equal  

•  MATCHES  –  Performs  a  POSIX  Regular  Expression  string  match  (IEEE  Std.  1003.1)  

•  LESS_THAN  –  Comparison,  returning  TRUE  if  one  input  is  less  than  the  other  

•  GREATER_THAN  –  Comparison,  returning  TRUE  if  one  input  is  greater  than  the  other  

•  PAGE  –  Pagina;on,  allowing  for  the  star;ng  record  and  number  of  records  to  be  returned  

•  SORT_BY  –  Sort  by  ascending  or  descending  order,  depends  on  fields  natural  ordering  

•  Domain  Specific  Operators  •  CONTAINS  –  Mediacentric  contains,  returns  TRUE  for  media  containing  the  input  frames  

•  IMPLEMENTS  –  Capability-­‐centric,  returns  TRUE  for  objects  implemen;ng  the  Capabili;es  

 

Page 12: The Control of Media & Devices in an Internet of Things (IoT)

public class FindMedia { public static void main(String[] args) { String query = "UMN[\"type\"] == \"media_instance\" AND Name == \" + args[0] + \" "sort by(created desc) page(0,50)" MediaList media = MDCClient.searchForMedia(query); } }

public class FindDevices { public static void main(String[] args) {

String query = "implements(\”urn:smpte:ucn:media_loader_v1\", \"urn:smpte:ucn:player_v1\", " + "\"urn:smpte:ucn:acquirable_v1\", \"urn:smpte:ucn:lockable_v1\") AND Attributes[\"Room\"] == \"PCR\” " +

“sort by UDN.Namespace, UDN.Name”;

DeviceInformation[] infos = MDCClient.searchForDevices(query);

}

}

Finding  Media  within  a  System,  Network,  Facility,  or  over  the  Internet  

Finding  Devices  within  a  System,  Network,  Facility,  or  over  the  Internet  

Page 13: The Control of Media & Devices in an Internet of Things (IoT)

Internet

NAS

MAM

Online

SDI Infrastructure

WAN/DMZ

Remote

Vendor 1 Vendor 2 Vendor 3

Control LAN Archive Transcoder 1

Transcoder 2

Transcoder 3

Essence Control & Data Essence, Control, & Data

Page 14: The Control of Media & Devices in an Internet of Things (IoT)

Internet

NAS

MAM

Online

IP, Network, & SDI Infrastructure

WAN/DMZ

Remote

Vendor 1 Vendor 2 Vendor 3

Control LAN Archive Transcoder 1

Transcoder 2

Transcoder 3

Essence Control & Data Essence, Control, & Data

QoS

QoS

IoT

A Standard Wire Protocol Makes QoS Possible!

Switch

Switch

Essence

Trunks

Control

Page 15: The Control of Media & Devices in an Internet of Things (IoT)

Internet  

Hardware  AbstracJon  Layer  SMPTE  ST2071  Discovery  

Workflow  &  OrchestraJon  

Device   Service  

IoT  Standard  Capability  Interfaces  

Clients  

ST2071  Device/Service/Media  Discovery  &  Configura;on  to  Find  Internet  Services  

ST2071  Device/Service/Media  Discovery  &  Configura;on  to  Find  Device  Services  

ST2071  Device/Service/Media  Discovery  &  Configura;on  to  Find  Device  Services  

Services   Media  Repository  

Bus  

ST2071  Media  Directory  Capability  Interface  

Directory  -­‐  An  organiza;onal  unit,  or  container,  used  to  organize  folders  and  files  into  a  hierarchical  structure.  Repository  –  A  receptacle  or  place  where  things  are  deposited,  stored,  or  offered  for  sale  

Data  describing  Media  registered  or  deposited  

Represents  the  Media  and  its  organiza;on  as  it  is.  

A  window  into  the  system  

Signals  and  Sanity  check  to  register  or  deposit  Media  

Signals  

Sanity  

ConfiguraJon  &  State  Store  

Media  Directory  

Media  Directory