Summary

Ten dokument omawia różnice między Free Software i Open Source, pojęcie copyleft, rodzaje wolnych licencji (GNU GPL, LGPL, MIT, BSD, Apache) oraz prawo do otrzymania źródeł w GPL. Porusza również tematykę populacji użytkowników nowych technologii wg. Geoffrey Moore'a i pojęcie "chasm".

Full Transcript

1. Pojęcia FreeSoftware i OpenSource różnice znaczenia Free Software jest tworzone w celu promowania wolności i zapewnienia użytkownikom pełnej kontroli nad używanym przez nich oprogramowaniem. Wolność uruchamiania w dowolnym celu Wolność rozpowszechniania kopii Wolność analizowani...

1. Pojęcia FreeSoftware i OpenSource różnice znaczenia Free Software jest tworzone w celu promowania wolności i zapewnienia użytkownikom pełnej kontroli nad używanym przez nich oprogramowaniem. Wolność uruchamiania w dowolnym celu Wolność rozpowszechniania kopii Wolność analizowania programu oraz dostosowania go do swoich potrzeb wolność udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, dzięki czemu może z nich skorzystać cała społeczność Oprogramowanie open-source jest tworzone w celu tworzenia wysokiej jakości oprogramowania, które może być używane przez każdego, niezależnie od jego umiejętności technicznych. Uwzględnia oprogramowanie które nie jest wolne Open Source -> metodologia rozwoju, problem praktyczny FreeSoftware -> Ruch społeczny, problem etyczny 2. Wyjaśnij pojęcie copyleft Zadaniem copyleft jest uczynienie oprogramowania wolnym i zapewnienie, by wszelkie modyfikacje również były wolne. Zgodnie z regułą copyleft, raz udostępniony kod pozostaje już wolny 3. Rodzaje wolnych licencji GNU GPL – Oprogramowanie może być swobodnie rozpowszechniane pod warunkiem że każda zmiana w kodzie jest udostępniona na zasadach tej samej licencji. LGPL – podobna do GPL, pozwala na używanie kodu objętego ta licencją w innym oprogramowaniu nieobjętym licencją GPL. MIT – swobodne korzystanie modyfikowanie i rozpowszechnianie bez ograniczeń BSD – swobodne korzystanie modyfikowanie i rozpowszechnianie, ale wymaga by każda dystrybucja zawierała informacje o prawach autorskich i licencji Apache – podobna do MIT, zawiera dodatkowe warunki dotyczące oznaczania autora i licencji w przypadku modyfikacji kodu źródłowego 4. Prawo do otrzymania źródeł w GPL Jest to licencja typu ,,wirus” – bardzo restrykcyjna. Nie wolno łączyć fragmentów kodu z innymi licencjami. Nazywana wirusową, ponieważ jak użyjesz GPL to cały program na licencje GPL. Można przekazać kod na licencji GPL, ale nie można kontrolować komu ktoś przekaże. Efekty pracy nie są objęte tymi prawami. Prawo do otrzymania źródeł w GPL oznacza, że każdy dostający dostęp do oprogramowania ma prawo do kodu źródłowego, modyfikowania i dystrybuowania go. Jest kluczowe dla filozofii Free Software i Open Source. 5. Populacja użytkowników nowych technologii - Geoffrey Moore Geofrey Moor uważa, że odbiorcy nowych technologii dzielą się na kilka grup (innowatorów, wczesnych użytkowników, wczesną większość, późną większość i maruderów) i że kolejno przyswajają oni nową technologię. Innowatorzy (Innovators): Pierwsi, którzy przyjmują nową technologię. Wczesni użytkownicy (Early Adopters):Grupa entuzjastów, gotowych na nowości. Wczesna większość (Early Majority): Pierwsza grupa, która nie jest już entuzjastycznie nastawiona do nowości, ale rozumie jej wartość. Późna większość (Late Majority): Grupa, która przyjmuje technologię z opóźnieniem, zazwyczaj z powodu presji rynkowej. Maruderzy (Laggards): Ostatni, którzy przystępują do korzystania z nowej technologii. Pierwsze dwie grupy akceptują nowe rozwiązania niemal wyłącznie dlatego że po prostu są nowe i innowacyjne. Wczesna większość to te osoby które przyjęły nowe technologie dlatego że zostały sprawdzone przez wcześniejsze grupy i że są one działające i opłacalne. Późna większość to osoby które czekają aż technologia stanie się standardem i stanieje. Ostatnia grupa maruderów zmienia technologie dopiero wtedy gdy muszą, nie chcą jej zmieniać bo są przywiązani do starych rozwiązań. 6. Pojęcie „Chasm" w teorii populacji użytkowników wg. Geoffrey Moor'a – jakie stąd płyną wnioski Geofrey Moor zauważył, że istnieje swego rodzaju przepaść (chasm) między grupą użytkowników zwaną „early adapters” (używających oprogramowania zaraz po jego pojawieniu się) a grupą „early majority” (pierwsi użytkownicy-tradycjonaliści). Przekroczenie przepaści polega na przejściu z rynku wschodzącego, na którym dominują nieliczni klienci wizjonerzy (innowatorzy i wcześni użytkownicy), na rynek mainstreamowy, zaludniony przez pragmatycznych i ostrożnych klientów masowych. Luka pomiędzy tymi dwoma rynkami, dotychczas ignorowana, jest w rzeczywistości tak duża, że w pełni uzasadnione jest nazywanie jej przepaścią (chasm). Żeby firma osiągnęła sukces musi znaleźć sposób, aby przeskoczyć przepaść i poszerzyć grono użytkowników swoich usług. 7. Zasady przetwarzania łańcuchów w iptables Reguły są przetwarzane w porządku od góry do dołu. Pierwsza pasująca reguła jest stosowana, a następne są ignorowane. 8. Rodzaje tablic w iptables -filter – filtrowanie pakietów, domyslna, -nat – translacja adresów, -mangle – modyfikacja pakietów 9. Różnica iptables i ebtables Ebtables jest użytwane do zestawienia, utrzymywania i nadzorowania tablic zasad ramek Ethernetowych w jądrze Linuksa. Jest to analogiczne do iptables, z tą różnicą, że operuja na warstwie drugiej (MAC) zamiast trzeciej (IP). 10. Iptables - reguły, łańcuchy, tablice reguła – najmniejsza jednotska filtrująca netfilter, zesraw warunków determinujący dalszy los pakietów. Zawiera informacje jaki musi spełnić pakiet oraz akcji jaka będzie wykonywana, gdy pakiet spełni wskazane warunki. Łańcuch – zbiór reguł pod kątem których sprawdzany jest pakiet – pojedyncze reguły grupowane są w łańcuchy. Zbiór łańcuchów tworzy tablice. Tablice – zestaw łańcuch zapewniający konkretną funkcjonalność systemu. 11. Protokoły wiadomości –CoAp, MQTT, XMPP, AMQP, DDS, STOMP, OpenWire – tylko podstawowe własności CoAP to protokół komunikacji dla urządzeń IoT oparty na UDP, MQTT to protokół publikuj-subskrybuj często używany w IoT, XMPP to protokół komunikacji oparty na XML, AMQP to protokół komunikacji z kolejkami wiadomości, DDS to standard dla systemów rozproszonych do publikowania i subskrybowania danych, STOMP to prosty protokół komunikacji oparty na tekście, OpenWire to własnościowy protokół komunikacji często używany w projektach Apache ActiveMQ. 12. Architektura JMS JMS to interfejs API dla aplikacji Javy umożliwiający asynchroniczne wysyłanie i odbieranie komunikatów. Składa się z trzech komponentów: producenta, konsumenta i składnika usług JMS. Pozwala na przesyłanie w różnych trybach, np. publikuj-subskrybuj lub punkt-punkt, co daje elastyczność dla rozproszonych systemów komunikacji. 13. Czym są Connection Factories Connection Factory to obiekt używany do tworzenia połączeń z serwerem JMS, umożliwia aplikacjom klienta na dostęp do serwera bez podawania detali konfiguracji. Pozwala na połączenie z wieloma serwerami JMS lub różnymi konfiguracjami, oddzielając logikę aplikacji od logiki konfiguracji połączenia. Connection Factory może też połączyć się przez różne protokoły. 14. Address Federation w ActiveMQ Address Federation w ActiveMQ to mechanizm łączenia kilku brokerów w jedną federację, pozwala na rozproszenie komunikatów i skalowanie, oraz zwiększenie niezawodności. Dzięki niemu broker może przesłać komunikat do innego brokera w federacji, gdy nie jest w stanie go obsłużyć. Przydatne w przypadku dużych systemów lub zwiększenia niezawodności. 15. Apache Servicemix – składniki Apache ServiceMix to narzędzie które realizuje zadania korporacyjnej szyny danych czyli integracji różnorodnych systemów informatycznych w architekturze SOA (architektura zorientowana na usługi). Zastosowanie rozwiązania szyny ESB pozwala na wiązanie aplikacji za pomocą jednej centralnej magistrali dzięki czemu nie jest konieczne integrowanie aplikacji na zasadzie każdy z każdym. W skład wchodzą 3 moduły i środowisko Camel – service – aplikacyjny szkielet integrujący, służący do wymiany wiadomości przy pomocy tras i reguł Apache CFX – aplikacyjny szkielet do tworzenia usług oraz programistycznych interfejsów aplikacji ActiveMQ – broker wiadomości i równoważenia obciążenia Karaf – środowisko uruchomieniowe z otwartym kodem na standardzie OSGI, wprowadza komponenty, które nie są wspierane przez standardowe środowisko JVM. 16. Architektura Camel'a – czym jest Jest to wszechstronny szkielet integracyjny o otwartym kodzie; bazuje na znanych korporacyjnych wzorcach projektowych (EIP); daje możliwość definiowania tras, zasad wymiany danych pomiędzy aplikacjami wchodzącymi w skład systemu informatycznego; korzysta z ujednoliconych identyfikatorów zasobów URI do pracy. 17. Pojęcie pojemników Camel Context i RouteBuilders CamelContext to kontener, który jest środowiskiem wykonawczym Camel. CamelContext to system wykonawczy, który utrzymuje wszystko razem, zapewnia dostęp do wielu przydatnych usług, z których najbardziej godnymi uwagi są komponenty, konwertery typów, rejestr, punkty końcowe, trasy, formaty danych i języki. RouteBuilder jest klasą bazową, z której pochodzi tworzenie reguł routingu przy użyciu DSL. Instancje RouteBuilder są następnie dodawane do CamelContext 18. Component w Cammel (relacja Endpoint i Component, przykład wybranego Common Component) Component w Camel to elementy odpowiedzialne za różne funkcje, takie jak obsługa protokołów czy połączenie z bazami danych. Są one reprezentowane przez Endpoint, który jest wejściem lub wyjściem dla routingu. File Component jest przykładem Common Component, który umożliwia odczyt i zapis plików w różnych systemach plików. 19. Tworzenie routingu w Camel (składnia Java DSL i XML DSL) Pierwszy kork pobiera lub otrzymuje dane, a następnie są przekazywane przez kolejne kroki. Są obiektami konfiguracyjnymi w Java lub XML. Tworzenie tras – trasy są kodem, składnia tras nazywana jest DSL (Java DSL, XML DSL). Podstawowa trasa zaczyna się od from. Endpoint przez URI, kończy się przeważnie to. Można dodać dodatkowe kroki np. log 20. Co oznacza skrót XSLT (do czego służy, jak wygląda architektura) XSLT (ang. XSL Transformations, Extensible Stylesheet Language Transformations) – oparty na XML język przekształceń dokumentów XML. Pozwala na przetłumaczenie dokumentów z jednego formatu XML na dowolny inny format zgodny ze składnią XML. Architektura: (plik XML + XSLT) -> Procesor XSLT -> Plik wynikowy 21. Zasady architektury systemów opartych na zdarzeniach i struktury zdarzeń Architektura systemów opartych na zdarzeniach polega na modelowaniu aplikacji jako ciągu zdarzeń, które są reakcją na zmiany stanu, umożliwia elastyczną i skalowalną obsługę. Struktura zdarzeń składa się z emitentów, subskrybentów oraz magistrali(broker?) zdarzeń pozwalającymi na przesyłanie informacji między nimi. Struktury zdarzeń; 22. Pojęcie dualności tablicowo-strumieniowej Dualność tablicowo-strumieniowa to pojęcie oznaczające, że te same operacje mogą być wykonane na tablicach i strumieniach danych, co zwiększa elastyczność i przenośność kodu. 23. Różnice pomiędzy brokerem komunikatów i brokerem zdarzeń Broker komunikatów przetwarza komunikaty, usuwa po skonsumowaniu. Broker zdarzeń zarządza zdarzeniami w systemie, odbiór, przetwarzanie, rozprowadzanie i składowanie. Może być używany zamiast brokera komunikatów, ale nie na odwrót 24. Pojęcie wzorców przepływu pracy i wzorce przepływu pracy, zasady działania wzorców Wzorce przepływu pracy to rozwiązania standardizujące przepływ działań w procesach biznesowych, które pomagają określić logikę, reguły i role komponentów procesu biznesowego, zwiększając jego efektywność i nawigację. Choreografia Orkiestracja 25. Obsługa błędów w Choreografii i Orkiestracji W przypadku choreografii, gdzie komponenty współpracują ze sobą i samodzielnie przesyłają sobie komunikaty, błąd może powstać przez brak komunikacji między komponentami. W przypadku orkiestracji, gdzie komponenty są zarządzane centralnie i przesyłają komunikaty do centralnego komponentu, błąd może powstać przez brak komunikacji z centralnym komponentem. 26. Implementacje systemów opartych o zdarzenia, pojęcie ciężkich i lekkich frameworków Implementacja systemów opartych o zdarzenia polega na wykorzystaniu architektury zdarzeniowej, ciężkie frameworki dostarczają rozbudowanych narzędzi ale zwiększają złożoność, lekkie frameworki są prostsze w użyciu i pozwalają na szybsze rozpoczęcie pracy. 27. Architektura Kafki Apache Kafka to tak zwany message broker. Tego rodzaju aplikacje odpowiadają za odbieranie, walidację, ewentualne przekształcenia i rozsyłanie komunikatów pomiędzy aplikacjami. Umożliwiają bardzo elastyczny sposób komunikowania się luźno ze sobą powiązanych elementów systemów informatycznych. Kafka umożliwia przesyłanie komunikatów (ang. message) pomiędzy aplikacjami w systemach rozproszonych. Nadawca może przesyłać komunikaty do Kafki, natomiast odbiorca pobiera wiadomości ze strumienia publikowanego przez Kafkę. Komunikaty pogrupowane są w tzw. tematy (ang. topic). Zarówno nadawca, jak i odbiorca powiązany jest z jednym tematem. Nadawca przesyła komunikaty z określonego tematu, a odbiorca otrzymuje za pośrednictwem Kafki wszystkie komunikaty z określonego tematu, które mogą pochodzić nawet od wielu nadawców. Każdy wysłany przez dowolnego nadawcę komunikat z danego tematu trafi do każdego odbiorcy, który nasłuchuje tego tematu. 28. Rola Zookeeper'a w Kafce Zookeeper to serwer gdzie Kafka trzyma swoją aktualną konfigurację. Listę brokerów, listę topiców, ich rozlokowane między brokerami, informację o uprawnieniach (ACLs). Odpowiada za sprawdzanie dostępności brokerów. W razie wykrycia problemu wysyła komunikat do brokerów. wykrywanie awarii brokera członkostwo w klasie, (prowadzi listę działających brokerów) konfiguracja tematów (przechowuje informacje o wszystkich tematach) kontrole dostępnych ACL, Quotes (zarządzanie wielkościami danych) 29. Pojęcie partycji w Kafce Partycje w Kafce to logiczne podziały tematów, pozwalające na skalowanie i równoległe przetwarzanie danych. Każda partycja jest replikowana i może być przetwarzana przez określoną grupę konsumentów. 30. Offset w Kafce Offset w Kafce jest to indeks odpowiedzialny za pozycję komunikatu w partycji tematu, używany przez konsumentów do pamiętania jakie dane już zostały przetworzone, konsumenci mogą ustawiać offset na różne wartości. 31. Eliminacja Zookeeper'a - Kafka Raft Eliminacja Zookeeper'a jest procesem eliminacji potrzeby korzystania z usługi Zookeeper w architekturze Kafki. Jest to możliwe dzięki wykorzystaniu algorytmu Kafka Raft, który pozwala na konsensus replik brokerów oraz elektrodynamikę w sposób bezpośredni, bez konieczności używania usługi Zookeeper. Dzięki temu zwiększa to niezawodność i skalowalność systemu. 32. Co oznacza RDD w Spark i jaka jest relacja z DataFrame. RDD (Resilient Distributed Datasets) to podstawowy konstrukt w Sparku, który umożliwia przetwarzanie równoległe danych w rozproszonym środowisku. RDD jest to pojedynczy zbiór danych, który jest dzielony na kilka części i przetwarzany na różnych węzłach w clusterze. RDD jest odporny na awarie, dzięki czemu Spark automatycznie replikuje dane na wiele węzłów i pozwala na ich ponowne odtworzenie w przypadku awarii. DataFrame to wyżej poziomowa abstrakcja, oparta na RDD, oferująca optymalizacje i SQL- like API. Tworzenie RDD poprzez zrównolegnienie kolekcji danych, odwołanie się do zewnętrznych systemów przechowywania danych. 33. Czym jest Kylin i czy obsługuje MDX Apache Kylin jest to rozproszona, wysokowydajna platforma OLAP (Online Analytical Processing) oparta na Hadoopie. Jest to narzędzie do agregacji danych i zapytań analitycznych przeznaczone dla dużych zbiorów danych. Kylin obsługuje MDX. 34. Z jakich elementów składa się Kylin Kylin składa się ze źródła danych, magazynu danych, silnika przetwarzania, silnika zapytań, REST API i WEB UI. 35. Architektura PAM Dzięki systemowi PAM administrator ma możliwość pełnego wyboru mechanizmów autentykacji dla całego systemu i każdej aplikacji z osobna. Przez odpowiednią konfigurację można całkowicie wyłączyć autentykację. Z drugiej strony można wymusić wieloetapową autentykację na podstawie hasła jednorazowego czy np. linii papilarnych. 36. Grupy zarządzania w PAM autentykacji (moduł auth) - Ten moduł umożliwia identyfikację użytkownika na podstawie hasła lub innych metod. Oprócz tego ma możliwość przypisania użytkownika do odpowiedniej grupy. kont (moduł account) - Przez zarządzanie kontami rozumie się zarzadzanie niezależne od autentykacji użytkowników. Moduł ustala uprawnienia na podstawie dostępnych zasobów systemu, pory dnia, czy lokalizacji użytkownika. sesji (moduł session) - obejmuje działania, jakie system podejmuje przed otwarciem czy zamknięciem sesji użytkownika. Działania te mogą obejmować rejestrowanie informacji o użytkowniku, modyfikacje środowiska lub montowanie odpowiednich systemów plików. haseł (moduł password) - Ten moduł jest odpowiedzialny za uaktualnianie baz danych o użytkownikach, zawierających ich hasła, dane osobowe, czy listy uprawnień 37. PAM – dowolny przykład Przykładem zastosowania PAM (Platform for Advanced Management) może być automatyzacja procesu zamówień w firmie. PAM pozwala na zdefiniowanie reguł i kroków, które muszą zostać wykonane przez różne osoby lub systemy w celu przeprowadzenia procesu zamówienia. Przykładowo, automatyzacja tego procesu może obejmować wstępną weryfikację zamówienia przez pracownika działu sprzedaży, a następnie automatyczne przetwarzanie i potwierdzenie zamówienia przez system finansowy. Dzięki temu firma może poprawić swoją efektywność, skrócić czas przetwarzania zamówień i zwiększyć swoją skuteczność dzięki automatyzacji procesu 38. Roznica IDS i IPS IDS służy do monitorowania zagrożeń i incydentów naruszenia bezpieczeństwa oraz do powiadamiania o nich. Z kolei IPS podejmuje dodatkowo działania mające na celu powstrzymanie ataku, minimalizację jego skutków lub aktywną odpowiedź na naruszenie bezpieczeństwa 39. Działanie połączeń SSL SSL (Secure Sockets Layer) to protokół, który służy do uwierzytelniania i szyfrowania połączeń między klientem i serwerem. W momencie gdy klient chce nawiązać połączenie z serwerem, serwer wysyła swój certyfikat, który jest podpisany przez certyfikaty zaufane autorytety. Klient weryfikuje certyfikat i jeśli jest on poprawny, generuje unikalny klucz sesyjny i szyfruje go certyfikatem serwera, następnie wysyła go serwerowi, który przy pomocy swojego prywatnego klucza, dekoduje go i uzyskuje klucz sesyjny. Teraz komunikacja między klientem a serwerem jest szyfrowana i zabezpieczona przez użycie klucza sesyjnego. 40. Przykład trasy CAMEL XML DSL I JAVA DSL

Use Quizgecko on...
Browser
Browser