czwartek, 3 sierpnia 2017

BLYNK w NASie z WINDOWS SERVER 2012

.... no to OKNA raz jeszcze

Windows Server to niezbyt popularny system domowych NASów. I nie ma się czemu dziwić. Drogi, ciężki, trudny do skonfigurowania. Ale jak już ruszy to działa świetnie. Szczególnie z komputerami z Oknami (zaskoczenie?). A takich jest wciąż jeszcze większość w naszych domach. I co najważniejsze - system jest niezależny od producenta sprzętu na jakim został zainstalowany a to pozwala wgrywać do niego nieprzebraną ilość dostępnego (również darmowego) oprogramowania. Sprawa się nieco skomplikowała wraz z erą 64 bitowców - wiele programów a zwłaszcza sterowników stanowczo odmawia współpracy z nową wersją - ale i z tym można sobie jakoś poradzić.
A więc dziś ostre starcie BLYNK contra WINDOWS SERVER 2012.

Kontra bo nie ma co udawać, że Windows jest dla JAVA ulubionym środowiskiem. A jeszcze WINDOWS SERVER i to wersji 2012 udający nowoczesne okienka rodem WIN 8 i na domiar złego 64 bitowy. Brrrr.
Celowo wybrałem ten system - jest  obecnie instalowany w wielu okienkowych NASach (SEAGATE, WD, BUFFALO, THECUS). Szczególnie warto zainteresować się dosyć bogatą ofertą THECUSa łączącego rozsądną cenę sprzętu z ogromnymi możliwościami WS 2012.

Np. taki najmniejszy Thecus W2810pro to
- 2 kieszenie dysków
- bootowanie z 60 GB SSD
- Intel® Celeron™ N3160 Quad-Core
- 4 GB RAM
Lubię te 60 GB SSD bo daje niezłego kopa całemu systemowi i znakomicie uniezależnia nasze dyski SATA z danymi od dysku systemowego. Warto podkreślić inną zaletę dysku SSD - cicha praca całego serwera, którego można bez obaw postawić na biurku lub nawet w sypialni.

Wybór miejsca instalacji

Teoretycznie najlepszym miejscem do instalacji jest dysk SSD. Ale jest zawsze jakieś ale... Serwer BLYNKa nie wymaga ani ogromnych zasobów ani kosmicznych prędkości transferów. Każdy system IoT jeśli jest dobrze napisany i skonfigurowany to tak naprawdę malutka aplikacja przesyłające niewielkie (jak na komputer) ilości danych.  Szkoda więc dla BLYNKa i potrzebnego mu środowiska JAVA szybkiej i drogiej pamięci SSD. Wymogi bezpieczeństwa nie są w tym przypadku również specjalnie krytyczne. Możemy więc udostępnić kawałek dysku roboczego (danych) na potrzeby IoT bez specjalnej potrzeby jego ochrony w sieci wewnętrznej. Ułatwi nam to dostęp do plików konfiguracyjnych i logów serwera z dowolnego komputera w domowej sieci.

Na potrzeby instalacji stworzyłem i udostępniłem niewielki (!) 70 GB dysk. By uniknąć ewentualnych problemów z autoryzacją dostępu do danych dostał format exFAT - to taki trochę nowszy FAT32. Dysk E:/ o nazwie BLYNK będzie zawierał system JAVA i serwer BLYNK.
Do katalogu głównego dysku kopiujemy dwa pliki - JAVA i BLYNK

jre-8u141-windows-x64.exe
server-0.25.4.jar

Instalacja środowiska JAVA w Windows Serwer 2012R2

  • Uruchamiamy program jre-8u141-windows-x64.exe  jako administrator (prawy klawisz)
  • Tradycyjnie miejsce instalacji wybieram inne - na dysku E:/ (BLYNK) tworzę katalog  /java
  • Odtrąbiony sukces instalacji JAVA warto sprawdzić
  • Uruchamiamy nieśmiertelny Wiersz Poleceń z c:/Windows/System32/cmd.exe
  • Wpisujemy java -version - powinniśmy dostać informację o zainstalowanej wersji
  • Gdyby poszło coś nie tak i mamy komunikat o nieznanym poleceniu java należy upublicznić folder /java w zmiennych środowiskowych - ściągawka jak to zrobić tutaj >>>>

Instalacja serwera BLYNK

Serwer BLYNKa używa kilku portów TSP/IP w tym popularnego 8080. Trzeba sprawdzić przed instalacją czy te porty w serwerze Windows nie są przypadkiem już zajęte.
W cmd.exe wywołujemy komendę netstat -an pokazującą min. otwarte przez inne aplikacje porty.
Po wydrukowaniu na ekran pierwszych 20-30 wierszy przerywamy jego pracę CTRL+C


U mnie jak raz port 8080 jest już zajęty pewnie przez serwer WWW. Można wyłączyć aplikację zajmującą potrzebny nam port lub można zmienić port BLYNKa na inny. Drugie rozwiązanie jest lepsze - nie blokuje nam usług naszego serwera. Do zmiany portu w BLYNKu potrzebny będzie jednak dodatkowy plik konfiguracyjny. Nie jest on niestety standardowo dołączany do archiwum .jar i musimy go sobie stworzyć sami.

Plik nosi nazwę server.properties to znaczy jest typu PROPERITES i musi być umieszczony w tym samym katalogu co plik serwera BLYNK.

  • Plik znajdziemy na githubie w katalogu resources.
  • Otwieramy nowy plik w notatniku i kopiujemy całą zawartość server.properties (146 linii)
  • Szukamy linijki http.port=8080   i zmieniamy na np. http.port=8081  
  • Zapisujemy z dowolną nazwą i zamykamy.
  • Zmieniamy całą nazwę (łącznie z rozszerzeniem txt) na server.properties 
  • Kopiujemy plik do katalogu serwera z BLYNKiem


Nie zapominamy o stworzeniu roboczego katalogu na dane programu - u mnie to katalog  /moje.
Teraz już możemy uruchomić plik .jar.

  • Otwieramy cmd.exe jako administrator (koniecznie! oczywiście prawy klawisz)
  • przechodzimy do dysku i katalogu zawierającego plik serwera .jar (u mnie E:\)
  • wpisujemy lub kopiujemy komendę  java -jar server-0.25.4.jar -dataFolder /moje
  • lub tworzymy w katalogu z BLYNK plik .bat lub .cmd z zawartością j/w i uruchamiamy ten plik

i to wszystko - powinniśmy dostać taką piękną odpowiedź


Możemy jeszcze sprawdzić czy porty BLYNKa zostały otwarte (9433, 8442, 8443 i 8081)


Są wszystkie i jeszcze kilka na dokładkę.
Ręczne uruchamianie serwera BLYNK  nie jest problemem  gdyż Windows Serwer jest wyłączany czy resetowany rzadko. Plik .bat możemy także umieścić w autostarcie by uruchamiać BLYNKa przy starcie WS.

Sprawdzamy czy jest dostęp do zarządzania serwerem BLYNK (https://IP:9433)


Pięknie. Taki sam test z zewnętrznego komputera



Upsss. No tak Firewall !! Należy albo go wyłączyć (niebezpieczne) albo otworzyć porty dla naszej aplikacji. BLYNK potrzebuje następujących portów do pracy (wszystkie są wyszczególnione w pliku server.properties)  8440, 8441, 8442, 8443, 9443, 8080 u mnie 8081. Porty można otworzyć w konfiguracji Firewalla tworząc nowy profil np. BLYNK dla połączeń przychodzących i wychodzących. Dla ułatwienia, w obu kierunkach transmisji dałem tę samą listę portów choć pewnie to przesada.


Po tym zabiegu ponowna próba połączenia ze stroną administratora BLYNK daje wynik pozytywny



Na koniec sprawdzenie połączenia aplikacji w telefonie (oczywiście emulator) z serwerem BLYNKa

Działa !!!! Uff
Czy ktoś obiecywał, że będzie łatwo?

Podsumowując i porównując instalacje serwera BLYNK na NAS firmy QNAP z Windows Serwerem 2012 na NASie firmy Thecus mogę powiedzieć że
na QNAPie instalujemy wirtualną maszynę, w ramach której uruchomiony jest obraz zawierający skonfigurowane środowisko JAVA z serwerem BLYNK. Na Thecusie instalujemy środowisko JAVA bezpośrednio w Windowsie i w nim uruchamiamy serwer BLYNKa
Z tej podstawowej różnicy wynikają różne cechy obu instalacji i tak
W odniesieniu do QNAP

  • (+) Instalacja jest szybka i prosta ale wymaga wcześniejszego przygotowania obrazu do instalacji w kontenerze. Nie jest to takie łatwe (konieczna znajomość Linuxa ) ale w chwili obecnej obrazy przygotowywane są przez hobbystów i udostępniane za free. Jedyny problem to właściwe skonfigurowanie sieciowego dostępu do kontenera (virtual bridge)
  • (+) Program (kontener wraz z zawartością) automatycznie startuje przy podniesieniu się NASa po wyłączeniu lub resecie
  • (-) Przygotowany obraz zawiera standardową konfigurację BLYNKa (ścieżki, opcje konfiguracyjne) ich zmiana jest albo trudna albo wręcz niemożliwa.
  • (-) Update programu serwera nie jest prosty bo trudno dotrzeć i zachować folder z danymi konfiguracji naszych programów  choć jest to możliwe
  • (-) Funkcja kontenera dostępna jest dla najnowszych modeli. Nie ma możliwości jej zainstalowania dla NASów kupionych 3-4 lata temu i starszych. U innych producentów (np Synology) ta funkcjonalność istnieje w NASach z wyższej półki
  • (+/-) Ten NAS (i wiekszość podobnych) to jednak Linux i w przypadkach krytycznych czy awaryjnych niezbędna jest choćby minimalna umiejętność poruszania się po systemie z linii komend i znajomość podstaw składni Linuxa . 

W odniesieniu do Thecus z Windows Serwer 2012

  • (-) Windows Serwer to jednak profesjonalny system plikowy z ogromem opcji konfiguracyjnych dostępnych już z poziomu interfejsu graficznego. Instalacja środowiska JAVA jest w pełni automatyczna. Instalacja serwera BLYNK w tym środowisku jest równie prosta. Schody zaczynają się w momencie próby otwierania kanałów komunikacyjnych WS dla połączenia BLYNKa ze światem zewnętrznym.Tu już bez co najmniej podstawowej wiedzy o działaniu Windowsów się nie da. Ale za to istnieje ogromna i powszechnie dostępna literatura w internecie jak praktycznie rozwiązać niemal każdy nasz problem. Polecam szczególnie Youtube jako najszybsze źródło praktycznej wiedzy o konfiguracji WS. No i Windows Serwer to jednak Windows - po co więc szukać nowego wroga jak obok jest już stary i znajomy.
  • (+/-) Zarówno środowisko JAVA jak i serwer BLYNKa jest bezpośrednio dostępny w Windows Serwerze w sposób banalnie prosty. Nie ma więc najmniejszych problemów z upgradem do nowszych wersji. Zachowanie dotychczasowych ustawień i danych też jest łatwe - należy zachować wcześniej stworzony katalog danych i ewentualnie jeden lub kilka znany plików konfiguracji
  • (+) Serwer BLYNK daje się mocno modyfikować i konfigurować w momencie uruchamiania aplikacji poprzez tekstowe pliki konfiguracyjne xxx.properties ( server.properties sms.properties, mail.properties, db.properties itp.) To potężne środowisko do zmian w serwerze BLYNKa dla kazdego kto nieco dłużej bawi się tym systemem.
  • (+) Srodowisko JAVA i serwer BLYNKa uruchomimy na każdym nawet najstarszym Windows Serwerze (prawdopodobnie nawet na WINDOWS NT 4.0 bo bez problemu działa na WINDOWS XP choć generuje ostrzeżenie o nie wspieraniu tej wersji). Uruchomimy także na każdym PCecie z Windowsem zamienionym w domowy serwer plików.

Na co się zdecydować? Wolność wyboru to piękna rzecz......          cdn    ........
93

Brak komentarzy:

Prześlij komentarz