Architecture for Control Networks: Difference between revisions

Content deleted Content added
m consistent section headings
Bender the Bot (talk | contribs)
m Implementations: HTTP to HTTPS for SourceForge
 
(12 intermediate revisions by 7 users not shown)
Line 1:
{{Short description|Network protocols for control of entertainment technology equipment}}
{{Refimprove|date=January 2012}}
 
Line 17 ⟶ 18:
'''Architecture for Control Networks''' ('''ACN''') is a suite of [[network protocol]]s for control of entertainment technology equipment, particularly as used in live performance or large-scale installations. For example, lighting, audio or special effects equipment. ACN is maintained by [[Entertainment Services and Technology Association]] and its first official release was [[ANSI]] Standard E1.17-2006 - Entertainment Technology - Architecture for Control Networks. The standard was subsequently revised and released as ANSI E1.17-2010.
 
ACN was initially designed to be layered on top of [[User Datagram Protocol|UDP/IP]] and therefore will run over most [[Internet Protocol|IP]] transports including standard, inexpensive [[Ethernet]] and [[802.11]] ([[Wi-Fi]]) networks.
 
==Protocol architecture==
Line 27 ⟶ 28:
===Common Architecture===
 
The common architecture specification defines a format of nested [[protocol data unit]]s (PDUs), rather similar to [[Type-length-valueType–length–value|TLV]] encoding, which are used in the main protocols. It then defines how a minimal Root Layer Protocol is used to splice the higher level protocols into a lower level transport and defines such a Root Layer Protocol using the PDU format for use on [[User Datagram Protocol|UDP/IP]].
 
===Session Data Transport===
 
Session Data Transport (SDT) is a [[reliable multicast]] transport protocol which operates over [[User Datagram Protocol|UDP/IP]] which can be used to group peers within a network into ''sessions'' and deliver messages to them individually or as a group. MessagesMessage delivery is ordered and messages may be selectively sent [[Reliability (computer networking)|reliably or unreliably]] on a message-by-message basis (reliability is very important for some data while avoiding the time and resource overhead of the reliability mechanism is beneficial for others). The reliability mechanism also provides online status so a component will detect when a connection is broken. SDT provides a high degree of fine tuning over the trade-off between latency, reliability levels and resource requirements and availability of large numbers of concurrent sessions means they are a powerful tool for grouping and managing components whose functions are related or whose communication requirements are similar.
 
===Device Management Protocol===
Line 43 ⟶ 44:
===Device Description Language===
 
Device Description Language (DDL) allows a machine parsable description of the interface and capabilities of any device to be defined.<ref name="EngArts">{{Cite web|url=http://www.engarts.com/ddl/index.html|title=Device Description Language}}</ref> This description can be interpreted by a controller which may then automatically configure itself for controlling that device. The description not only provides the address and property mapping information which is necessary for DMP to operate but it can also contain a huge amount of information on the functionality, capabilities and semantics of the device in an extensible format which allows a controller to extract the features it needs for its specific context while skipping over information which is not relevant to its needs.<ref>{{Cite web |url=http://powers.media.mit.edu/wiki/upload/E1-17ACN2006DDL.pdf |title=ANSI E1.17-2006 Architecture for Control Networks - Device Description Language (DDL) |archive-url=https://web.archive.org/web/20141129101447/http://powers.media.mit.edu/wiki/upload/E1-17ACN2006DDL.pdf |archive-date=2014-11-29 |url-status=dead }}</ref>
 
DDL is an [[XML]] based language and descriptions are contained in a small number of [[XML]] documents. In normal ACN systems the description for a device may be downloaded from the device itself. However, descriptions may also be distributed in other ways (such as internet download) and since a description is valid for all devices of the same type, controllers can typically maintain a cache of descriptions for devices they commonly encounter.
Line 64 ⟶ 65:
==Implementations==
 
An early [[Open-source software|open-source]] implementation of ACN was released as OpenACN<ref>{{cite web |url=httphttps://sourceforge.net/projects/openacn/ |title=OpenACN |accessdate=2011-08-25}}</ref> and is available on [[SourceForge]]. This has been ported to a wide range of platforms, but it is limited in its scope and does not implement any DDL support.
 
There is another open source ACN project<ref>{{cite web|url=https://github.com/HakanL/ACN|title=Architecture for Control Networks project home page|website=[[GitHub]] |accessdate=2022-03-09}}</ref> which is implemented in [[C Sharp (programming language)|C#]]. This aims to provide a full [[managed code]] implementation and includes code for several other related protocols.
A more recent and much more complete implementation in [[C (programming language)|C]] is 'Acacian,'<ref>{{cite web |url=http://WWW.ACACIAN.ORG/ |title=Acacian |accessdate=2014-08-10}}</ref> which includes more features and DDL support.
 
ThereAn isfull yetimplementation anotherentitled open source ACN projectAcacian<ref>{{cite web|url=httphttps://acn.codeplexgithub.com/hoyes/acacian|title=Architecture for Control NetworksAcacian project homeon GitHub|website=[[GitHub]] page|accessdate=5 October 20112022-05-05}}</ref> on [[Codeplex]] which is implemented in [[C Sharp (programming language)|C#]]., Thiswhich aimsincludes toparsing provideof aDDL fulldescriptions [[managedto code]]generate implementationDMP andstructures includeswas codereleased forunder severalthe other[[Mozilla relatedPublic protocols.Licence]] in 2014
 
E1.31 (Streaming DMX over ACN) is supported on [[Linux]] ([[ARM architecture|ARM]], [[Intel 80386|i386]], [[x86-64]]) and [[Macintosh]] ([[PowerPC]]; i386, x86-64) by the Open Lighting Architecture.<ref>{{cite web |url=http://opendmx.net/index.php/OLA |title=Open Lighting Architecture |accessdate=2012-01-05}}</ref>
 
A [[Rust (programming language)|Rust]] implementation of E1.31 can be found on [[GitHub]].<ref>{{cite web |url=https://github.com/lschmiererRustLight/sacn |title=rust-sacnRUST Sacn |website=[[GitHub]] |accessdate=20152022-1203-1609}}</ref>
 
ACN has been deployed in proprietary implementations by a number of companies, including its use by [[Electronic Theatre Controls]] (ETC) as the basis of their 'NET3' branded networked control infrastructure and by [[Shure|Shure Inc.]] in control of wireless microphones.
 
== See also ==
Line 86 ⟶ 87:
 
==External links==
* [https://web.archive.org/web/20060111182052/http://www.esta.org/tsp/working_groups/CP/projs.html ESTA's Technical Standards Program]
 
[[Category:Stage lighting]]