W zasadzie miałem o tym nie pisać, ale się podzielę. Urgon stwierdził, że mój stary wąż ma złe proporcje głowy:
Więc się podzielę innym wężem, ale już nie graficznym, tylko programistycznym, bo jakiś czas temu stworzyłem ciekawe narzędzie. Całość opiera się na koncepcji stworzenia frameworka (co mi się udało), za pomocą którego można umieszczać na serwerach tzw. "klastry" - tak to nazwałem. Zresztą nazwa nieprzypadkowa - wzorowana na systemie rozproszonym znanym z Terminatora. Nie chcę dwa razy pisać, więc przekleję opis jaki kiedyś napisałem na forum obok, plus ułamek z dokumentacji (niestety zrobiłem ją tylko po angielsku, no bo taka branża...), więc pół na pół:
(obecna wersja)
Projekt: Skynet, czyli... Szczygliś pracuje nad "czymś dużym"...
Co byście powiedzieli na to, że powiedzmy od jakiegoś tam czasu pracuję nad dość ciekawą rzeczą i że nazwa tego projektu jest w pewien sposób związana z koncepcją znaną z filmów o Terminatorze? Otóż jestem na ukończeniu "czegoś". Na chwilę obecną ma to "coś" ponad 20tys. linijek kodu (obecnie o rząd wielkości więcej - przyp. z teraz) i jest to narzędzie, które może lekko pozamiatać jeśli zostanie poprawnie użyte.
Mały screen z kilkoma linijkami jakich tysiące:
W każdym razie nigdzie nie spotkałem się jeszcze z czymś takim, stąd samemu wziąłem się za stworzenie. Takie moje "malutkie" dziecko.
Mały screen z debuggera:
A o co generalnie chodzi? Ano o to, że wyobraźcie sobie, że istnieje pewien soft/program/skrypt/algorytm, który działa klastrowo - tzn. może być rozproszony, na wiele miejsc, wiele serwerów, przy czym mogą one komunikować się między sobą nawzajem, wymieniać dane itd., uzależniać swoje działanie od danych pobranych od innych "instancji" siebie samego, niezależnie od tego gdzie one się znajdują (mogą nawet na ISS). W dodatku prosty w obsłudze, gdzie każdy w prosty sposób może stworzyć taką "sieć" i gdzie każdy z elementów tej sieci potrafi się samo-replikować, a następnie dołączać do niej i co więcej sam, samoistnie aktualizować swój własny kod na zasadzie "update'u" pobieranego z innego, podobnego "klastra".
Gdzie każda "instancja" takiego klastra może być zdefiniowana po swojemu, dodając do niego w łatwy sposób nowy kod, np. do odpowiedzi na takie, a nie inne polecenie. Gdzie to wszystko posiada łatwy w użyciu interfejs, API dla programisty i wiele innych bajerów, dzięki którym można to zrobić łatwo i szybko. Gdzie wszystko to jest gotowe do użycia i finalnie kompilowane do TYLKO JEDNEGO pliku, który jest sam sobie "Panem" i jest niezależny od niczego innego, wystarczy go wrzucić gdziekolwiek się chce i będzie działać. Gdzie wiele takich klastrów potrafi rozmawiać ze sobą, wymieniać się danymi, powiadamiać o innych klastrach, tworzyć nowe, itd...
A to tylko kilka z możliwości. Po prostu wyobraźcie sobie coś takiego i pomyślcie, czy nazwa "Skynet" dla takiego hipotetycznego "tworu" tak startowo jest chyba w miarę odpowiednia, czyż nie? Idąc dalej, jeśli myślicie, że takich rzeczy nie ma, no to racja, nie ma.
No prawie nie ma. Bo leży takowa prawie gotowa na moim serwerze i jestem w trakcie kończenia pisania do tego dokumentacji (oj, dużoooo tego) zanim zostanie to udostępnione. A zostanie udostępnione i to za darmo.
W momencie, gdy skończę dokumentowanie, wrzucę tutaj info i namiary do całości, to zobaczycie co też takiego Szczygliś wymodził, a wymodził coś naprawdę potężnego. Mały screen z pisanej dokumentacji:
Bez zbędnego chwalenia się powiem szczerze, że wszystkie appki, portale, i tego typu rzeczy jakie przez ok. 20 lat zajmowania się tymi tematami programowałem nawet nie podchodzą pod pięty tego projektu i tego jak mocno jest to zaawansowane narzędzie. Właściwie cała moja wiedza i doświadczenie nabyte przez te 20 lat jest w tym zawarta...
Tak więc, co Wy na to?
Szczygliś zły, że chce udostępnić coś takiego? Czy Szczygliś dobry, bo równie dobrze może to być szeroko wykorzystywane do pozytywnych rzeczy. Na swoje usprawiedliwienie dodam, że nawet w dokumentacji, którą obecnie piszę dodana jest wzmianka:
NOTE: Skynet can be some of kind C&C service and can offers powerful possibilites with this. Please do not use Skynet for illegal purposes.
Wycinek z właśnie pisanej dokumentacji:
Most important features of Skynet:
- Peer to peer clusters architecture
- Requesting and responding data via internal connections based on easy to use parameters
- Self updating registry about other clusters
- Broadcast mode (clusters to clusters | many-to-many automatic connections)
- Event Listeners based, easy to extend architecture of API
- It is only one file whitch is compiling from sources (you can extends Skynet by your own methods and compile all into single file)
- Powerful event log system
- Build-in console
- Works in two modes: browser and CLI
- Easy to integration with tools like CRON
- Administration panel via browser
- PDO multiple database engines support
- Self-update engine (even via remote)
- Self-clone engine (even via remote)
- Easy to extends and customization
- Factory based connections adapters (you can implements you own connection methods)
- Factory based data encryption (you can implements you own algorythms)
- Factory based event and logger listeners (you can create your own listeners and data loggers)
- Sending responses via email engine included
- Sleep and wakeup clusters commands included
- Full API documentation in PHPDOC
- It's all in one
Wieszajcie psy, lub chylcie czoła.
Niebawem na GitHubie do pobrania.
Opowiem więcej, gdy wszystko będzie ukończone (na dniach).
----------------------------------------------------
^ Tak pisałem na starcie (powyższe zostało napisane przed ukończeniem projektu, kilka miesięcy temu - do wersji alpha), w obecnej wersji - już stabilnej - v. 1.2.1 - Skynet jest już ukończony, pełną dokumentację oraz stabilną wersję Skyneta do pobrania można znaleźć na jego oficjalnej stronie, jest wzbogacony o milion nowych opcji i jest darmowy (licencja GNU/GPL). Pewnie mało kogo to zainteresuje, ale jeśli ktoś jest zaciekawiony na jakie możliwości pozwala ten system, to można się zapoznać. Wszystko udostępniam za darmo.
Strona projektu: https://skynetframework.blogspot.com/
Do pobrania i przetestowania na GitHubie: https://github.com/szczyglinski/skynet
A gdyby ktoś myślał, że jakaś ściema, to link do renomowanego w branży portalu HotScripts, gdzie po weryfikacji i testach zamieścili moje narzędzie:
http://www.hotscript...ynet-framework/
Tym samym, jeśli kogoś nie przerazi dokumentacja (a starałem się ją pisać tak, aby zrozumiał nawet laik), to zapraszam do korzystania.
To może być bardzo przydatna rzecz do zdalnej kontroli nad np. serwerami, planowaniem zadań, zniszczeniem świata, czegokolwiek... Całość jest dość trudna w obsłudze (no bo potężna to bestia), ale to zabieg celowy, gdyż nie jest to zabawka dla dzieci. Dokumentacja jednak tłumaczy wszystko krok po kroku i każdy zainteresowany się w tym odnajdzie,
PS. Po przetestowaniu może nawet D.K. się na to porwie (?). To może być dobra rzecz nawet do zdalnej kontroli nad backupami z paranormalne.pl i wielu innych ciekawych działań.
Tu ładny kawałek (przed zruganiem mnie proszę przesłuchać, by się odstresować)
Kiedyś będzie o moim skynecie głośno, jeszcze nie dziś, ale to kwestia czasu.
Użytkownik szczyglis edytował ten post 26.05.2017 - 02:48