Pokazywanie postów oznaczonych etykietą protokoły. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą protokoły. Pokaż wszystkie posty

31 maja 2018

Internet of Things - protocols review - gościnnie na Net::IP Meetup #8

Po wystąpineniu z prezentacją Internet of Things - protocols review w Poznaniu na meetupie
Network&WirelessMeetup (NWM): IoT - bezpieczeństwo i protokoły zostałem zaproszony gościnnie na wystąpienie z prezentacją we Wrocławiu na meetupie Net::IP #8.

Chciałbym się podzielić wrażeniami z wystąpienia oraz polecić Net::IP jako wartościową inicjatywę dla społeczności lokalnych DevOpsów we Wrocławiu i nie tylko :-)




Z pozytywnym nastawieniem jak zwykle mogłem podzielić się swoimi doświadczeniami oraz researchem z używania protokołów internetu rzeczy MQTT, HTTP oraz DDS.
Liczebność na meetupie dopisała, bo było coś ponad 60 osób, miejsce dość przyjemne i oczywiście rarytasik to pizza wypiekana na miejscu z pieca.


Pokrótce każdy z prelegentów (Ja i Piotr) pokazał coś, co jest wyciągniętym tzw. mięsiwem technicznym i bardzo ucieszyły nas liczne pytania, które pojawiały się wokół tematyki spotkania.

W kwestii swojej prezentacji mam wrażenia, że dotrzymałem kontraktu i wystąpienie cieszyło się zainteresowaniem. Określam to na podstawie pytań w trakcie i po wydarzeniu.
Zadziwiają mnie zawsze pytania o podstawy typu "jak zacząć z IoT, którą płytkę wybrać, jak programować" i oczywiście zakładamy, że na meetup przyjść może każdy i takie pytania są jak najbardziej ok. To co mnie zadziwia, to fakt jak długo dociera do ludzi informacja o powszechności np: takiego środowiska i hardwaru jakim jest Arduino oraz mistycznego Raspberry Pi

Z tego miejsca zachęcam wszystkich do ryzykowania i wydawania czasami tzw. stówki w celu edukacyjnym, bo w dobie dzisiajszych możliwości, jeśli kupicie nawet nieodpowiedni sprzęt lub soft. to zawsze zyskacie wiedzę i kolejne zakupy będą bardziej trafione :-)

Przypomina mi się również mój wpis o obecnie rekordowej oglądalności, kiedy ok. 10 lat temu znając już od wielu lat architekturę AVR zacząłem składać coś, co nazywało się Arduino i posiadało jeszcze wówczas zamiast USB port szeregowy SERIAL. Udało się bez problemu a cały zestaw instrukcji jak zainstalować i uruchomić na Linuxie Arduino zapisałem na moim blogu.
Wpis p.t. Arduino, Freeduino, Pyduino - szybki start z mikrokontrolerami AVR


W kwestii wystąpienia kolegi z Akamai, to jestem pełen podziwu dla mistrzostwa i wykorzystania protokołu BGP do sporej optymalizacji i pięknego przeskalowywania architektury. Znam ludzi, którzy wspominali mi o tym, że taki eksperyment chcą przeprowadzić i posiłkując się materiałem przedstawionym na meetupie bardzo w to uwierzyli. Czekamy na realizację i poprawę kolejnej zacnej infrastruktury ;-)

Dziękuję z tego miejsca wszystkim uczestnikom i prelegentom meetupu Net::IP i oby więcej takich wspaniałych edukacyjnych dni w naszym codziennym technicznym życiu się pojawiało.



21 lutego 2018

Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21.02.2018)

Dziękuję wszystkim słuchaczom, którzy pojawili się na drugim MeetUpie p.t. "Network & Wireless Meetup (NWM): IoT - bezpieczeństwo i protokoły"
Posileni tak sporą dawką wiedzy wracamy do projektowania i programowania bezpieczniejszych i wydajniejszych "lodówek" :-)

W związku z obietnicą po dzisiejszym wystąpieniu n.t. protokołów internetu rzeczy udostępniam swoją prezentację :-)
Zachęcam do zadawania pytań i dyskusji związanej z tym szeroko rozumianym tematem. Wszelkie uwagi/sugestie/wrażenia mile widziane - piszcie proszę w komentarzach.


Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21.02.2018) from Marcin Bielak


Dla osób zainteresowanych wersją wideo załączam nagranie prezentacji:




10 listopada 2015

Protokoły w świecie internetu rzeczy - IoT protocols - (część 1 z 2)

Wstęp - czym są protokoły w branży IT ?

Dla niewtajemniczonych, zgodnie z definicją Protokół komunikacyjny to zbiór ścisłych regół oraz kroków postępowania, które stosują urządzenia w celu wymiany danych i łączności.
Z powodzeniem protokołem możemy nazwać formalny język komunikacji nie tylko pomiędzy maszynami, ale również pomiędzy ludźmi. Oczywiście zakładając, że jest to nietypowy przypadek, kiedy ludzie komunikują się zawężając swoje możliwości poznawcze oraz intelektualne w kontakcie z innym człowiekiem. To oznacza, że stosowaliby taki sposób wymiany informacji, że komunikacja byłaby jednoznaczna dla każdej ze stron :-)

Protokół to też systemem regulacji oraz zasad, które umożliwiają dwóm lub więcej jednostkom systemu wymieniejącego komunikaty do przesyłania informacji różnego typu, w tym również weryfikacje poprawności tej komunikacji (sumy kontrolne, bity parzystości, znaczniki czasu, unikalne identyfikatory, itp).


We współczesnym świecie IT do niedawna protokoły dzieliły się na klasyczne, internetowe, transmisji multimediów, automatyki przemysłowej, lecz od kiedy Internet rzeczy (ang. Internet of Things) stał się realną wizją przyszłości powstała nowa kategoria protokołów, którą stanowią protokoły IoT.

Spośród znanych i używanych w internetcie protokołów nalezy wymienić:


Automatyka przemysłowa i jej znane protokoły:

Internet przedmiotów zyskuje popularność i najważniejsi gracze inwestują w Internet rzeczy potężne pieniądze. Internet rzeczy zapowiada jak szacują firmy analityczne rewolucje technologiczną. Już dzisiaj wiele firm z różnych branż zainwestowało w IoT. Dotyczy to dość szerokiego kręgu: przemysłowego, transportu, energii, życia codziennego, opieki zdrowotnej, rolnictwa, ruchu drogowego, oszczędzania energii.
istnieje wiele rozwiązań do realizacji projektów IoT, które umożliwiają implementacje kilku protokołów IoT, o których chciałbym tutaj wspomnieć.

Jak wiadomo świat SOA i mikrousług sieciowych w internecie bazuje na protokole HTTP oraz często formatach danych typu YAML, XML, JSON. Jest to dość uniwersalna metoda, ale w IoT zupełnie niewygodna. Chodzi o podstawowy fakt - w internecie rzeczy zakładamy, że usługi będą realizowane poprzez wzmożoną komunikacje maszyn z maszynami. Ludzie będą otrzymywali raporty, które bazują na zautomatyzowanych i rozproszonych zbiorach danych online.
Wielu projektantów IoT założyło, że do tego celu protokoł HTTP nie jest wystarczający, stąd narodziny kilku istotnych dla IoT protokołów wymienionych poniżej.

Protokoły IoT

Poniżej znajduje się lista najbardziej popularnych protokołów IoT używanych w znanych mi obecnie ekosystemach Internatu Rzeczy.

Koncept brokera IoT w występujący w większosći prezentowaych protokołach IoT:

Protokół MQTT

MQTT (ang. Message Queuing Telemetry Transport) to protokół - wg. OASIS powinien w przyszłości zarządzać środowiskiem sieciowym Internet of Things - dzięki któremu stworzymy wiele aplikacji wysyłających sobie nawzajem komunikaty, czy też zdarzenia. MQTT pozwala na wysyłanie zdarzeń i nasłuchiwanie na nie między odległymi aplikacjami.
Z protokołu MQTT korzysta min. Facebook Messenger. Dzięki zastosowaniu tego protokołu w łatwy sposób możemy przenosić się podczas rozmowy z jednego urządzenia na drugie i kontynuować konwersację.

Protokół zakłada pojęcie brokera, czyli bramki, która zapewnia propagację komunikatów na kanały komunikacyjne. Najbardziej popularną implementacją brokera MQTT jest mosquitto.
Broker w MQTT pełni rolę serwera albo centralnego huba lub switcha przesyłającego komunikaty.
Z brokerem łączą się klienty aby nasłuchiwać lub wysyłać wiadomości. Każda wiadomość musi mieć odpowiedni temat (topic) oraz treść. Nasłuchiwanie zawsze dotyczy konkretnych tematów.



Pierwszą wersję protokołu MQTT opracowały firmy IBM i Eurotech. Jest on do dzisiaj używany w medycynie (gdzie jest wykorzystywany np. do komunikowania się drogą radiową z rozrusznikami serca) oraz przez firmy eksploatujące złoża ropy naftowej i gazu.

Protokół CoAP

CoAP jest promowany jako "well designed", gdyż bazuje na RFC 7252 Constrained Application Protocol. Analogicznie jako HTTP, CoAP bazuje na sukcesie modela REST implementowanego w współcześnie w modnym świecie mikrousług / SOA na HTTP. Używa lekkiego UDP zamiast cięzkiego TCP/IP.
Protokół CoAPI zakłada użycie formatów XML, JSON ale wnosi również binarny format JSONa zwany CBOR opisany w RFC 7049 Concise Binary Object Representation.
CoAP posiada zaimplementowane rozpoznawanie urządzeń oraz właściwości spośród nodów, które działają w sieci IoT. Jest to dość praktyczna wzmianka, biorąc pod uwagę sporą liczbą urządzeń IoT, która ewolucyjnie powinna podzielić się na grupy specjalizacji w przyszłości. Discovery w CoAP może tylko wesprzeć ten podział logicznych grup urządzeń IoT.




Dla potrzeb implementacji protokołu IP w niewielkich urządzeniach (małe czujniki, elementy wykonawcze, jednoukładowe sterowniki czy moduły monitorujące) opracowano protokół aplikacji CoAP (ang. Constrained Application Protocol), dedykowany do aplikacji z węzłami sieciowymi o ograniczonych zasobach pamięci i mocy obliczeniowej, realizujących proste zdania i funkcjonalności, ale wymagających komunikacji za pośrednictwem sieci Ethernet lub Internet. Protokół CoAP umożliwia implementację funkcji protokołu HTTP i obsługi stron WWW w prostych konstrukcyjnie modułach i węzłach sieciowych.

Protokół AMQP

AMQP (Advanced Message Queueing Protocol) to zaawansowany protokół kolejkowania komunikatów.
Najpopularniejsza implementacja protokołu AMQP to system RabbitMQ. Jest on czymś w rodzaju firmy pocztowej, która jest organizacją złożoną nie tylko z placówek pocztowych, ale i całej infrastruktury służącej do przekazywania wiadomości z jednego miejsca na drugie, od nadawcy do odbiorcy.
AMQP posiada wiele integracji w gotowych frameworkach w wielu popularnych językach programowania. Śmiało można uznać go za standard w branży IT.

Protokół XMPP

XMPP (ang. Extensible Messaging and Presence Protocol Read) znany kiedyś protokół jako Jabber. Pozwala enkapsulować inne protokoły komunikacji tekstowej w komunikatorach internetowych. To było kiedyś, bo współcześnie jest to uznany protokół bazujący na XML do komunikacji w czasie rzeczywistym. Umożliwia zarówno wymianę komunikatów jak i statusów.


Protokół XMPP zasadniczo używany jest do błyskawicznej komunikacji między użytkownikami, ale nie ma przeszkód by używać go jak poczty elektronicznej tj. uruchamiać pobieranie wiadomości co pewien czas.

Protokół STOMP

STOMP to tekstowy protokół komunikacji z ramkami oparty na HTTP. Protokół STOMP został zaprojektowany jako bardzo prosty w implementacji, co może być korzystne w kontekście działania na urządzeniach wbudowanych.
Najpopularniejszym użyciem protokołu jest STOMP na Web Socket co daje nam nieograniczone możliwości implementacji protokołu z WebSockets, które są już wybudowane we wszystkie współczesne przeglądarki internetowe. Praktycznie oznacza to, że nasz system IoT implementujący STOMP poprzez Web Socket może zachodzić w interakcje z przeglądarką każdego klienta i w czasie rzeczywistym utrzymywać wymieniać komunikaty.

Dodatkowe informacje o protokołach IoT

Oto prezentacja pokazująca nowe trendy w protokołach IoT:



Prezentacja uzupełniająca wiedzę o protokołach IoT:

Tabela ze szczegółami dla wymienionych protokołów:

Linki:
Wybór protokołu IoTL AMQP, MQTT, or STOMP
REDHAT używa protokołu STOMP do testowania serwera komunikatów qiot containers