1
1. Omówić zasadnicze cechy mechanizmu dziedziczenia
Dziedziczeniem w programowaniu obiektowym nazywamy mechanizm współdzielenia funkcjonalności między klasami. Klasa może
dziedziczyć po innej klasie, co oznacza, że oprócz swoich własnych atrybutów oraz zachowań, uzyskuje także te pochodzące z klasy z której dziedziczy.
Klasa dziedzicząca jest nazywana klasą pochodną lub potomną. Z jednej klasy bazowej można uzyskać dowolną liczbę klas pochodnych. Klasy
pochodne posiadają obok swoich własnych metod i pól, również kompletny interfejs klasy bazowej.
Dziedziczenie porządkuje, wspomaga polimorfizm i enkapsulację, dzięki umożliwieniu definiowania i tworzenia specjalizowanych obiektów na
podstawie bardziej ogólnych. Dla obiektów specjalizowanych nie trzeba redefiniować całej funkcjonalności, lecz tylko tę, której nie ma obiekt ogólniejszy.
W programowaniu obiektowym wyróżniane jest dziedziczenie pojedyncze oraz dziedziczenie wielokrotne. Z dziedziczeniem pojedynczym
mamy do czynienia, gdy klasa pochodna dziedziczy po dokładnie jednej klasie bazowej (oczywiście klasa bazowa wciąż może dziedziczyć z jakiejś innej
klasy), natomiast w dziedziczeniu wielokrotnym klas bazowych może być więcej.
2. Klasy i metody abstrakcyjne - podać przykłady praktycznego zastosowania.
Klasa abstrakcyjna - nie można na jej podstawie utworzyć obiektu. Metody abstrakcyjne są funkcjami nie posiadającymi implementacji i z
założenia są wirtualne (gdyż będą przesłaniane w klasach potomnych). Klasa abstrakcyjna może posiadać metody abstrakcyjne. Klasa pochodna od
klasy abstrakcyjnej musi przesłaniać wszystkie jej metody abstrakcyjne lub sama musi być klasą abstrakcyjną.
Przykład: klasa abstrakcyjna „Shape” posiada jedną metodę abstrakcyjną GetArea, która domyślnie definiuje sposób liczenia pola figury (np.:
dla kwadratu). Dodatkowo definiuje abstrakcyjną metodą GetName, którą każda potomna klasa musi nadpisać, ponieważ klasa „Shape” jest zbyt ogólna
aby zwracać nazwę obiektu (np.: „kwadrat”).
Klasa która posiada co najmniej jedną funkcje czysto wirtualną to klasa abstrakcyjna.
3. Omówić mechanizm polimorfizmu.
Polimorfizm to cecha dzięki której jeden interfejs może być stosowany do wykonania różnych zadań. Przekładając to na bardziej ludzki język:
w interfejsie tworzymy strukturę, która będzie wykorzystywana w różnych klasach, w zależności od potrzeb dostosowana do sytuacji.
Polimorfizm oznacza możliwość traktowania obiektów różnych podtypów pewnego wspólnego typu w taki sam sposób. Pozwala pisać ogólne
struktury danych i algorytmy, bez precyzowania na jakich dokładnie typach one operują i bez konieczności dostarczania implementacji odpowiednich dla
każdego przypadku.
Mechanizm pozwalający programiście używać wartości, zmiennych i podprogramów na kilka różnych sposobów. Inaczej mówiąc jest to
możliwość wyabstrahowania wyrażeń od konkretnych typów. Tworzenie specjalizowanych obiektów na podstawie bardziej ogólnych. Polimorfizm
wykorzystuje metody wirtualne, które mogą być przesłaniane w klasach potomnych.
4. Pojęcie hermetyzacji oraz metody praktycznej realizacji w językach obiektowo zorientowanych.
Hermetyzacja (enkapsulacja) polega na ukrywaniu pewnych danych składowych lub metod obiektów danej klasy tak, aby były one dostępne
tylko metodom wewnętrznym danej klasy lub funkcjom zaprzyjaźnionym. Pełni ona kompletną, zamknięta realizację części logiki biznesowej. Dzięki
temu łatwiej modelować rzeczywistość (każda klasa realizuje tylko i wyłącznie należące do niej zadania), bezpieczeństwo kodu, podział logiki na
mniejsze części. Gdy wszystkie pola(metody) w klasie znajdują się w sekcji prywatnej lub chronionej, to taką hermetyzację nazywa się hermetyzacją
pełną.
5. Porównać zasadnicze cechy technologii Servlet'ów oraz EJB (Enterprise Java Beans).
Serwlet to klasa Javy działająca po stronie serwera WWW i rozszerzająca jego możliwości. Serwlety
umożliwiają łatwą metodę dynamicznego tworzenia dokumentów HTML. Są łatwiejsze do pisania
dzięki wykorzystaniu środowiska Javy. Są również szybciej wykonywane od skryptów CGI. Mają dostęp
do całego API Javy.
serwlety to rozszerzenie serwera WWW; blisko interfejsu użytkownika: zorientowane na żądanie/odpowiedź (request/response)
serwlety działają w odpowiedzi na żadania klienta; są interfejsem do serwera aplikacyjnego/bazy danych/EJB
pełnią rolę kontrolera w schemacie Model-View-Controller, za widok odpowiedzialne są strony JSP (czyli kod Javy umieszczony w pliku html), model to
EJB; w serwletach zaleca się umieszczanie tylko lekkich funkcji biznesowych, ale w małych aplikacjach cała logika może być w serwletach i JSP
EJB – technologia po stronie serwera. Idea EJB opiera się na tworzeniu komponentów tzn. ziaren. EJB
zajmuje się zarządzaniem transakcjami, dzięki czemu developer nie musi się martwić o rozpoczęcie i
zakończenie transakcji.
Zawierają logikę biznesową aplikacji; Uruchamiane w kontenerze EJB, oferującym usługi systemowe; Wykorzystywane do budowy złożonych aplikacji;
rozproszonych na zasadzie „składania z klocków”; Obsługują zdalnych i lokalnych klientów
• Klientami mogą być aplikacje, serwlety, JSP, inne EJB
6. Omówić koncepcję programowania aspektowego.
(aspect-oriented programming, AOP)
Programowanie aspektowe to wzorzec tworzenia programów wspomagający separację zagadnień i rozdzielanie programu na części w jak
największym stopniu niezwiązane funkcjonalnie. Programista umieszcza funkcjonalności w oddzielnych aspektach i definiuje logiczne punkty interakcji
między nimi. Program powinien być zdekomponowany w taki sposób, aby różne jego aspekty znajdowały się w dobrze odseparowanych od siebie
częściach systemu. Każdy aspekt zajmuje się jednym zagadnieniem. Zagadnienie to szczególny cel programu, koncepcja albo funkcja
W programowaniu obiektowym: system jest zbiorem współdziałających, samodzielnych i odpowiedzialnych jednostek – obiektów; klasy
ukrywają implementację, prezentując jedynie interfejsy; polimorfizm jest podstawowym mechanizmem łączenia podobnych koncepcji.
2
7. Omówić wzorzec projektowy Obserwatora, podać przykłady zastosowań.
Jest to wzorzec czynnościowy. Używany jest do powiadamiania zainteresowanych obiektów (obserwujących) o zmianie stanu pewnego
innego obiektu (obserwowanego).
Wzorzec ten definiuje jeden do wielu zależności między obiektami. Znaczy to, że jeśli jeden obiekt zostanie
zmieniony, reszta powiązanych z nim zostanie o tym poinformowana.
PRZYKŁAD: Mechanizm kopiowania pliku oraz okienko graficzne obrazujące postęp prac. Mechanizm kopiujący jest
niezależny od okienka i nie musi wiedzieć czy i w jaki sposób postępy są wyświetlane. Z drugiej strony, do poprawnego wyświetlania okienko potrzebuje
informacji z mechanizmu kopiowania.
8. Porównać wzorce projektowe Adapter, Proxy oraz Decorator, określić obszar stosowania każdego z
nich.
Adapter - wzorzec strukturalny, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach. Adapter
przekształca interfejs jednej z klas na interfejs drugiej klasy. Innym zadaniem omawianego wzorca jest opakowanie istniejącego interfejsu w nowy.
Współpraca obiektów z niezgodnymi interfejsami.
Proxy - celem jest utworzenie obiektu zastępującego inny obiekt. Stosowany jest w celu kontrolowanego tworzenia na żądanie kosztownych
obiektów oraz kontroli dostępu do nich. Późne ładowanie, zdalne odwołania, kontrolowany dostęp do metod.
Decorator - wzorzec rozszerzeń , który pozwala na dodanie nowej funkcjonalności do istniejących klas dynamicznie podczas działania
programu. Wzorzec dekoratora polega na opakowaniu oryginalnej klasy w nową klasę "dekorującą".
Adapter zmienia interfejs, dekorator zmienia zachowanie.
9. Omówić zasadnicze elementy modelu MVC (Model-View-Controler).
Polega on na oddzieleniu 3 warstw aplikacji od siebie – warstwy modelu danych (np. bazy danych, pliki), warstwy odpowiadającej za interfejs
użytkownika (np. html, rss) i warstwy kontrolującej całą aplikacją:
model - odpowiada za pobieranie danych z określonego źródła. Może to być baza danych, mogą to być pliki lub inny byt pozwalający na
trwałe przechowywanie danych, które model może pobrać lub zmodyfikować. Zwykle do każdej części aplikacji mamy osobny model – np. użytkownicy,
newsy czy artykuły.
widok - zwykle jakiś system szablonów – kod PHP, HTML – odpowiada tylko za wyświetlanie danych
kontroler - obiekt kontrolujący całą aplikację. Przyjmuje on parametry z danego źródła i w zależności od nich aktywuje konkretną akcję. Akcje
tworzą instancje modeli, które dają im dostęp do danych, a następnie poprzez obiekty widoku tworzą interfejs użytkownika.
10. Wzorzec Front Controller i jego rola w projektowaniu aplikacji web'owych.
We wzorcu tym istnieje jeden, centralny obiekt (np. serwlet), który zarządza wszystkimi żądaniami przychodzącymi od klienta.Plusem
stosowania wzorca jest scentralizowana kontrola nad żądaniami, co ułatwia ich odpowiednie rozdzielanie, oraz łatwa konfiguracja. Minusem tego wzorca
jest zmniejszona wydajność, gdyż jeden obiekt obsługuje wszystkie nadchodzące żądania.
Wzorzec Front Controller powinien być stosowany dla aplikacji webowych ze skomplikowaną nawigacją dynamicznie generowanych stron;
aplikacji webowych wymagających autoryzacji, polityk, transformacji itp.
Wzorzec projektowy Front Controller ma następujące zalety: Nawigacja jest czytelniejsza i łatwiejsza w konfiguracji. Wybór widoku odbywa się
w obrębie kontrolera, więc wystarczy przeanalizować kod kontrolera, żeby zrozumieć nawigację wewnątrz całej aplikacji. Podobnie, wystarczy jedynie
zmodyfikować kontroler, w celu zmiany nawigacji pomiędzy stronami. Widoki są zarządzane w spójny sposób. Front controller otrzymuje wszystkie
żądania od klientów, więc może w konsystentny sposób zastosować niezbędne transformacje oraz polityki bezpieczeństwa dla wszystkich widoków.
Łatwiej jest także skonfigurować zachowanie poszczególnych funkcji, ponieważ wystarczy zmodyfikować tylko kontrolera. Widoki mogą być łatwo
zmieniane. Widoki komunikują się tylko z kontrolerem, więc nie ma żadnych zależności pomiędzy poszczególnymi widokami. Dzięki temu, widoki mogą
być łatwo podmieniane i wykorzystywane wielokrotnie dla różnych stron.
Wzorzec ma również pewne konsekwencje, które mogą być zarówno pozytywne jak i negatywne:
Złożoność aplikacji jest przeniesiona do front controllera. Uproszczenie interakcji pomiędzy poszczególnymi widokami odbywa się kosztem zwiększenia
złożoności kontrolera. W konsekwencji, jeśli aplikacja się rozwija, utrzymanie i modyfikacje kontrolera stają się coraz trudniejsze.
11. Charakterystyka systemów rozproszonych - zalety i wady.
System rozproszony jest zbiorem niezależnych komputerów (aspekt sprzętowy), które z punktu widzenia użytkowników systemu sprawiają
wrażenie pojedynczego komputera (aspekt programowy). System rozproszony jest zbiorem komputerów, które nie mają wspólnej pamięci ani zegara.
System rozproszony jest zbiorem niezależnych komputerów połączonych siecią komunikacyjną, która umożliwia wymianę komunikatów.
System rozproszony to termin służący do określenia szerokiej gamy systemów komputerowych od systemów słabo powiązanych, takich jak
sieci rozległe, poprzez systemy silnie powiązane, takie jak sieci lokalne, do systemów bardzo silnie powiązanych, takich jak systemy wieloprocesorowe.
Zalety systemów rozproszonych: Dzielenie zasobów (dane, urządzenia sprzętowe, jak np. drukarki, dyski). Przyśpieszenie obliczeń (dzielenie
obciążenia).Niezawodność (awaria jednego urządzenia nie powinna uniemożliwiać działania systemu, lecz co najwyżej pogorszyć jego wydajność).
Komunikacja (np. poczta elektroniczna). Ekonomiczność (system rozproszony może być tańszy niż odpowiadający mu mocą obliczeniową system
scentralizowany). Wewnętrzne rozproszenie (niektóre aplikacje są z natury rozproszone i wymagają rozproszonych komputerów).Stopniowy wzrost
(można stopniowo zwiększać moc obliczeniową systemu; skalowalność to zdolność systemu do adaptowania się do wzrastających zapotrzebowań).
Wady systemów rozproszonych: Oprogramowanie (zdecydowanie bardziej złożone; wymaga opracowania wspólnych standardów). Sieć
(może ulec awarii lub zostać przeciążona). Bezpieczeństwo (komputer podłączony do sieci jest mniej bezpieczny).
3
12. Modele programowania równoległego.
Model z wymianą wiadomości (komunikatów) oraz Model z równoległością danych
Model z wymianą wiadomości (komunikatów) - Explicit parallel programming, Message-passing paradigm Wykorzystuje popularne
środowiska obliczeń, np. Parallel Virtual Machine (PVM), Massage Passing Interface (MPI)
W modelu z wymiana komunikatów – odrębne procesy współpracują ze sobą w celu rozwiązania danego problemu. Współpraca ta polega na wymianie
danych między procesami realizowanej w oparciu o przesyłanie komunikatów.
Rodzaje komunikatów:
jeden-jeden – wymiana komunikatu między procesem wysyłającym i odbierającym
jeden-wielu (ang. Broadcast) – jeden proces rozsyła ten sam komunikat do wielu innych procesów
wielu- jeden (ang. Reduction) – wiele procesów wysyła komunikat do jednego wybranego procesu
Do przesłania dowolnego komunikatu system musi posiadać następujące informacje: gdzie znajdują się dane do wysłania, jaki jest ich typ i
rozmiar, do którego procesu będzie wysłany, gdzie będą przechowane otrzymane dane.
Model z wymianą komunikatów powinien: zapewnić równoważenie obciążenia pomiędzy procesorami, zminimalizować ilość przesyłanych
informacji, zminimalizować czas wykonania całego zadania.
Model z równoległością danych
Data-parallel programming, Implicit parallel programming, Data parallelism
Posługuje się językiem programowania wysokiego poziomu. Większość współczesnych kompilatorów wyposażona jest w możliwość obliczeń w tym
modelu. Przykładami środowisk programowania są: High Performance Fortran (HPF), pFortran, pC, środowisko OpenMP Obecnie nadal większą
efektywność obliczeń równoległych uzyskuje się korzystając z modelu wymiany wiadomości.
13. Miary efektywności obliczeń równoległych
Decydującym parametrem komputerów jest Benchmark- czyli czas wykonania wybranych programów. Najczęściej spotykanymi ocenami
zrównoleglenia są: przyspieszenie i efektywność.
Efektywność zależy od: wielkości problemu obliczeniowego, użytego algorytmu (podobnie jak w obliczeniach rekurencyjnych)
liczby procesorów, modelu programowania (model z pamięcią wspólną lub rozproszoną), rodzaju architektury.
WYDAJNOŚĆ – stosunek przyspieszenia rzeczywistego do przyspieszenia idealnego
SKALOWALNOŚĆ – własność systemu (sprzętu i oprogramowania) polegająca na elastycznym dostosowaniu się do zwiększonej liczby procesorów tzn.
na zachowaniu w przybliżeniu tej samej wydajności systemu (h)
14. Środowiska programowania równoległego.
Programowanie równoległe na maszynach z pamięcią współdzieloną (Shared Memory): procesy i wątki, semafory i synchronizacja, Inter
Process Communication (IPC), dyrektywy kompilatora, OpenMP.
Programowanie równoległe na maszynach z pamięcią rozproszoną (Distributed Memory): gniazdka (sockets), Messsage Passing Interface
(MPI), Parallel Virtual Machine (PVM), High Performance Fortran (HPF), Linda.
Narzędzia do obiektowego programowania rozproszonego: Remote Procedure Call (RPC), Java Remote Method Invocation (RMI), Common
Object Request Broker Architecture (CORBA).
OpenMP jest zbiorem tzw. dyrektyw służących do zrównoleglania kodu. Dyrektywy to fragmenty kodu wyglądające jak komentarze, jednak
"wtajemniczone" kompilatory nie traktują ich jako komentarze, lecz jako wskazówki jak zrównoleglić następujący po nich fragment kodu (z reguły pętlę).
Dyrektywy OpenMP stosuje się wyłącznie dla architektur o pamięci współdzielonej Celem OpenMP jest implementacja wielowątkowości, czyli metody
zrównoleglania programów komputerowych, w której główny „wątek programu” (czyli ciąg następujących po sobie instrukcji) „rozgałęzia” się na kilka
„wątków potomnych”, które wspólnie wykonują określone zadanie. Wątki pracują współbieżnie i mogą zostać przydzielone przez środowisko
uruchomieniowe różnym procesorom. Fragment kodu, który ma być wykonywany równolegle, jest w kodzie źródłowym oznaczany odpowiednią
dyrektywą preprocesora. Tuż przed wykonaniem tak zaznaczonego kodu główny wątek rozgałęzia się na określoną liczbę nowych wątków.
Podstawowymi elementami OpenMP to konstrukcje służące do tworzenia wątków, rozdzielania (współdzielenia) pracy, zarządzania środowiskiem
danych, synchronizacji wątków, procedury czasu wykonania (poziomu użytkownika) i zmienne środowiskowe.
MPI, czyli Message Passing Interface, to bardzo popularna biblioteka służąca do zrównoleglania kodów dla architektur o pamięci rozproszonej
(m.in. klastrów). Można też używać biblioteki MPI na architekturach o pamięci współdzielonej, ale z reguły nie jest to najefektywniejsze rozwiązanie.
Dwie najważniejsze funkcje tej biblioteki to MPI_Send i MPI_Recv. Pierwsza wysyła określony fragment pamięci do określonego procesora, druga
odbiera dane od określonego procesora i zapisuje w określonym miejscu w pamięci. Mówi się, że do programowania przy użyciu MPI wystarcza w
zupełności znajomość 6 funkcji: trzech inicjalizacyjnych (wywływanych raz na początku programu), jednej finalizującej (wywoływanej raz przy
kończeniu programu), oraz MPI_Send i MPI_Recv. Dla tych, którym to nie wystarcza, standard MPI oferuje ponad 100 różnych bardziej
wyspecjalizowanych funkcji.
15. Sposoby równoważenia obciążenia procesorów w obliczeniach równoległych.
Równoważenie obciążenia (ang. load balancing) - technika rozpraszania obciążenia pomiędzy wiele procesorów, komputerów, dysków,
połączeń sieciowych lub innych zasobów. Równoważenie obciążenia polega na przeniesieniu części obliczeń z jednego komputera na inny, najlepiej na
mający więcej dostępnych zasobów. Przeniesienie ma na celu zmniejszenie obciążenia jednego z komputerów, a przez to poprawienie wydajności
całego systemu. Przeniesienie części obliczeń może się odbyć między innymi przez: przeniesienie (migrację) wątku z obciążonego komputera;
ograniczenie powstawania nowych wątków na przeciążonym komputerze, co w przypadku zakończenia istniejących, zmniejszy rozmiar obliczeń;
przeniesienie danych, do których odwołuje się wątek z innego komputera, na ten komputer.
Może to zredukować liczbę żądań odczytu/zapisu danych przesyłanych przez sieć w przypadku, gdy dane po przeniesieniu znajdą się na tym samym
komputerze co wątek, który się do nich odwołuje. Taka redukcja liczby żądań przez sieć może skrócić czas obliczeń. Miarą zrównoważenia obciążenia
(load balance) może być stosunek maksymalnego czasu obliczeń i komunikacji dla pojedynczego procesora do średniego czasu obliczeń i komunikacji
4
16. Czym są trzy główne ograniczenia w projekcie i jakie są między nimi zależności?
Ograniczeniami w projekcie są czynniki, które mają podstawowy wpływ na opcje działań kierownika projektu.
Typowe trzy główne ograniczenia to:
• Harmonogram – ograniczenia, takie jak stała data zakończenia lub termin ostateczny w przypadku głównych punktów kontrolnych.
• Zasoby – (materiał, wyposażenie, sprzęt i ludzie oraz skojarzone z nimi koszty) – ograniczenie, takie jak uprzednio zdefiniowany budżet.
• Zakres – ograniczenie, takie jak zakładana funkcjonalność, technologia, produkty itp.
Zmiana jednego z wymienionych ograniczeń zwykle wpływa na dwa pozostałe, a także na jakość projektu. Na przykład zmniejszenie czasu trwania
projektu (harmonogram) może zwiększyć liczbę pracowników potrzebnych do realizacji planu (zasoby) oraz zmniejszyć liczbę właściwości cechujących
produkt (zakres). Menedżer projektu musi określić, czy można zaakceptować taką degradację. Taki związek jest nazywany potrójnym ograniczeniem
zarządzania projektem lub trójkątem ograniczeń projektu. Podczas procesu planowania należy sporządzić listę ograniczeń projektu, aby upewnić się, że
wszyscy wykonawcy projektu zostali o niej powiadomieni i mogą się do niej odnieść. Właściwym dla wykonawców jest także uzgodnienie sposobu ich
reakcji na niespodziewane ograniczenia, które mogą ujawnić się w czasie trwania projektu. Na przykład, jeżeli koszty pracy okażą się wyższe od
przewidywanych, to wykonawcy mogą zażądać zmniejszenia zakresu projektu.
17. Wymienić oraz scharakteryzować metody estymacji kosztu projektu.
Wykonywana przed startem właściwego projektu jak również w trakcie jego trwania w celu określenia: Budżetu projektu; Harmonogramu
projektu i liczby zaangażowanych osób; Sposobów kontroli postępów w projekcie w odniesieniu do budżetu a zwłaszcza odstępstw od założonych
wydatków i zagrożeń mogących wpłynąć na budżet projektu; Metryk zgodnie, z którymi realizowane później projekty będą mogły wykonywać własne
estymacja. Powinna podlegać ciągłym weryfikacjom na każdym etapie realizacji projektu (pozyskanie kontraktu, analiza wymagań, implementacja,
testowanie, wdróżenie).
Pricing to win Podstawowym elementem podlegająćym estymacji jest wielkość nakładów finansowych jakie klient może przeznaczyć na
realizacje projektu. Nakłady na realizację (liczba developerów, czas) w pierwszej kolejności dostosowane są do oszacowanego budżetu projektu a nie
do wymaganej funkcjonalności zmianom podlega przede wszystkim zakres projektu natomiast nakłady finansowe nie podlegają modyfikacjom pomimo
że wydaję się to być „odwrotnym” podejściem w wielu przypadkach to właśnie cena jest czynnikiem, który nie może podlegać zmianom
Szacowanie ekspertów Oszacowanie tworzone jest na podstawie estymacji wykonywanych przez specjalistów z danej dziedziny lub
technologi wszystkie uzyskane estymaje porównywane są w celu utworzenia jednej końcowej estymacji dla całego projektu metoda stosunkowo szybka i
tania w przypadku gdy dostępni są eksperci bardzo subiektywna i zależna od doświadczenia eksperta, wymaga szacowania przez kilka osób aby
uzyskać w miarę poprawne estymację problem: kogo można uważać za eksperta (osoby z organizacji czy zewnętrzne osoby)?
Estymacje przez analogie Oszacowanie tworzone jest na podstawie estymacji i rzeczywistych nakładów poniesionych przy realizacji
poprzednich historycznych projektów w danej organizacji. Metodę można stosować przy projektach z tej samej dziedziny. Stosunkowo szybka i tania.
Możliwa do zastosowania tylko w przypadku gdy w danej organizacji realizowane były już projekty z dziedziny estymowanego projektu wymaga
nakładów na kolekcjonowanie i analizę danych dotyczących poprzednich projektów zazwyczaj nie można jej stosować do estymacji projektów z innych
dziedzin albo realizowanych przez inne organizacje.
18. Wymienić i omówić metody śledzenia postępu projektu w czasie.
Monitorowanie wykonywania zadań zgodnie z harmonogramem. Jest niezmiernie istotne aby wszelkiego rodzaju odchylenia zidentyfikować
jak najwcześniej , gdyż koszty przywrócenia projektu do równowagi będą tym wyższe im później nastąpi reakcja - nawet jeżeli reakcją ma być brak
reakcji, ale kontrolowany. Monitorowanie może dotyczyć zarówno budżetu jak i czasu realizacji ale również wskaźników jakościowych, które nie muszą
dać się zmierzyć poprzez czas czy budżet. Monitorowanie projektów jest istotnym elementem współczesnych metodyk zarządzania projektami
informatycznymi. Zarówno PMI jak i PRINCE2 rekomenduje bieżące monitorowanie projektów z wykorzystaniem metody wartości wypracowanej do
bieżącego śledzenia postępu prac w projekcie
Metoda sumy zadań – służy do śledzenia całkowitych czasów trwania zadania, pracy lub kosztów do daty bieżącej lub daty stanu.
Metoda zadań okresowych – służy do śledzenia pracy nad zadaniem w danym okresie.
Metoda sumy przydziałów – służy do śledzenia pracy całkowitej lub kosztów całkowitych przypadających na jeden przydział zasobu do daty bieżącej.
Metoda przydziałów okresowych – służy do śledzenia pracy lub kosztów poszczególnych przydziałów zasobów w danym okresie.
19. Omówić sposób tworzenia struktury zadań w projekcie. Co to jest ścieżka krytyczna?
Harmonogram to określony w czasie porządek realizacji zadań w projekcie. Głównymi składowymi harmonogramu są zadania, zależności
między nimi, czas trwania oraz alokacja zasobów do poszczególnych zadań. Jednym z trzech podstawowych parametrów, który definiuje i jednocześnie
ogranicza projekt jest czas, któremu w planowaniu projektu i jego monitorowaniu poświęca się szczególną uwagę. Charakter projektu i technologia jego
realizacji wpływa na związki oraz kolejność realizacji zadań. Harmonogram jest to określony w czasie porządek realizacji zadań w projekcie. Głównymi
składowymi harmonogramu są zadania, zależności między nimi, czas trwania oraz alokacja zasobów do poszczególnych zadań.
Istnieją dwie metody organizowania listy zadań:
Zstępująca — najpierw są określane fazy główne, a następnie jest przeprowadzany podział na poszczególne zadania. Metoda zstępująca
umożliwia uzyskanie gotowej wersji planu po określeniu faz głównych.
Wstępująca — najpierw jest tworzona lista wszystkich możliwych zadań, a następnie jest przeprowadzane grupowanie w fazy.
Ścieżka krytyczna - w teorii zarządzania projektami ciąg takich zadań (podzadań projektu), że opóźnienie któregokolwiek z nich opóźni
zakończenie całego projektu. Menedżer projektu powinien zwrócić szczególną uwagę na zadania znajdujące się na ścieżce krytycznej, gdyż od nich
zależy terminowość przedsięwzięcia. Ścieżka krytyczna jest trwającym najdłużej ze wszystkich możliwych ciągów chronologicznie ułożonych zadań
takich, że każde następne nie może się rozpocząć, dopóki poprzednie się nie skończy.
Każdy projekt posiada co najmniej jedną ścieżkę krytyczna (projekty dobrze zaplanowane posiadają wiele krótkich zrównoleglonych ścieżek
krytycznych, projekty gorzej zaplanowane mogą mieć mniej ścieżek krytycznych, za to dużo dłuższych),
każde kolejne zadanie ścieżki krytycznej zaczyna się dopiero po zakończeniu poprzedniego. Zakończenie ostatniego zadania ścieżki krytycznej oznacza
zakończenie projektu. Czas trwania ścieżki krytycznej determinuje czas trwania całego projektu. Ścieżka krytyczna może się zmienić w czasie trwania
5
projektu, jeśli czasy wykonania poszczególnych zadań będą się różniły od zakładanych początkowo.
20. Omówić pojęcie bramki jakości, podać przykłady.
Bramka jakości jest miejscem, gdzie jest sprawdzana zgodność postępowania i jego efektów z systemem jakości. Decision points (Bramki jakości) są
używane do mierzenia dojrzałości projektu: “Czy jesteśmy gotowi do przejścia do następnej fazy?”
bramka kontroli jakości: Specjalny kamień milowy w projekcie. Bramki kontroli jakości są umieszczane pomiędzy tymi fazami projektu, które są silnie
zależne od wyników poprzedzających je faz. Bramka kontroli jakości zawiera formalną kontrolę dokumentów z poprzedzającej fazy.
21. Omówić metody zarządzania wersjami systemu.
CVS działa w architekturze klient-serwer. Centralne repozytorium projektu znajduje się na serwerze, a wszyscy członkowie zespołu
rozprowadzają swoje zmiany jedynie poprzez repozytorium. Nie ma zatem potrzeby przenoszenia artefaktów pomiędzy osobami w postaci dyskietek,
płyt, emaili, itp.
CVS ZALETY projekt open-source, jeden ze starszych systemów (powstał w 1980 roku), dobrze udokumentowany i przetestowany, system o dużej
funkcjonalności
CVS WADY od dawna nie dodaje się do niego nowej funkcjonalności, nie wspiera atomowych operacji commit, nie pozwala zmieniać nazw plików
poddanych zarządzaniu wersjami, słabe wsparcie dla Unicode, nie pozwala zarządzać dowiązaniami symbolicznymi (są one potencjalnie
niebezpieczne)
SVN (alias Subversion) to System Kontroli Wersji, będący oprogramowaniem wolnym (na licencji Apache). Jest zastępcą systemu CVS, który
jeszcze całkiem niedawno był zdecydowanie bardziej popularny. SVN służy do wersjonowania plików, najczęściej źródłowych wersji programów. Dobrze
sprawdza się przy równoczesnej pracy wielu użytkowników, pracujących nad wspólnym kodem źródłowym.
ZALETY projekt open-source, naprawia braki CVS’a - powstał jako jego następca w 2000 roku, jest aktywnie rozwijany, bardzo efektywnie przechowuje
pliki binarne, pozwala na “niemal” dowolne zmiany statusu plików, nie powodując utraty historii wersji
WADY problemy ze zmianą nazwy pliku - działa na zasadzie kopiuj-usuń, trudne administrowanie repozytorium
22. Podać i omówić metody zarządzania błędami.
Zarządzanie błędami: proces składający się z rozpoznania, analizy, prowadzenia działań i likwidacji usterek. Polega on na rejestracji usterek,
ich klasyfikacji oraz określaniu ich działania (wpływu na system) [IEEE 1044] Zarządzanie błędami najczęściej wspomagany jest przez systemy
śledzenia błędów -Wbrew nazwie (śledzenie błędów), systemy te służą raczej do rejestrowania wymaganych zmian - czymkolwiek by były (błędami do
usunięcia, rozszerzeniami do dodania, operacjami administracyjnymi do wykonania).
Typowy cykl obsługi błędu (czy też rozszerzenia) wygląda następująco:
dowolna osoba (posiadająca odpowiednie uprawnienia) wprowadza informację o błędzie czy też rozszerzeniu;
system automatycznie określa osobę odpowiedzialną za pakiet którego dotyczy błąd, przypisuje go jej i generuje powiadomienie (email);
odpowiedzialna osoba akceptuje poprawkę (co oznacza tak, problem leży w mojej gestii) albo stwierdza, że właściwym odpowiedzialnym jest kto inny - i
przypisuje błąd jemu (może tu chodzić zarówno o przydzielenie pracy w ramach modułu realizowanego przez kilka osób, jak o stwierdzenie, że błąd
widoczny w programie A jest faktycznie błędem w bibliotece B itp, może się też zdarzyć, że dany błąd jest kolejnym objawem jakiegoś wcześniej
zarejestrowanego błędu); toczą się prace związane z obsługą błędu, w trakcie których mogą być do niego dołączane kolejne informacje, może on być
przepisywany kolejnym odpowiedzialnym itp; ostatecznie odpowiedzialny kończy pracę nad błędem na jeden z kilku sposobów - oznaczając że błąd
został poprawiony, stwierdzając, że poprawiony z jakichś przyczyn nie będzie albo uznając, że zgłoszenie błędu było niepoprawne; jeśli błąd usunięto,
oryginalny autor albo inna odpowiednio uprawiona osoba weryfikuje, czy błąd faktycznie został usunięty - i bądź ponownie go aktywuje, bądź oznacza
że poprawka została zweryfikowana; po ostatecznym rozwiązaniu problemu (np. po opublikowaniu albo instalacji u klienta wersji pozbawionej błędu)
błąd jest zamykany.
23. Podaj idee metody elementów skończonych.
Idea metody zakłada modelowanie nawet bardzo złożonych konstrukcji (części i zespołów) poprzez ich reprezentację za pomocą możliwie
prostych geometrycznie elementów składowych, nawet z uwzględnieniem nieciągłości i wielofazowości materiałowych.
Zaawansowana metoda rozwiązywania układów równań różniczkowych, opierająca się na podziale dziedziny (tzw. dyskretyzacja) na
skończone elementy, dla których rozwiązanie jest przybliżane przez konkretne funkcje, i przeprowadzaniu faktycznych obliczeń tylko dla węzłów tego
podziału.Za pomocą metody bada się w mechanice komputerowej (CAE) wytrzymałość konstrukcji, symuluje odkształcenia, naprężenia,
przemieszczenia, przepływ ciepła, przepływ cieczy.Bada się również dynamikę, kinematykę i statykę maszyn, jak również odziaływania elektrostatyczne,
magnetostatyczne i elektromagnetyczne.
24. Co to są funkcje kształtu?
Jest to funkcja opisująca odkształcenie elementu w zależności od wartości przemieszczeń węzłowych. Są to wielomiany używane do
interpolacji . Powinny spełniać następujące założenia: pomiędzy elementami nie wymaga się ciągłości pochodnych, możliwa jest dowolna postać liniowa
funkcji dobrana tak, aby było spełnione kryterium stałej pierwszej pochodnej. Funkcje kształtu służą do wyznaczenia poszukiwanych wielkości (np.
przemieszczeń) pomiędzy węzłami elementu skończonego. Funkcje kształtu powinny być tak dobrane aby nie pozwalały na powstanie naprężeń w
elemencie którego przemieszczenia wynikają jedynie z ruchu elementu jako ciała sztywnego.
25. Co to jest sformułowanie wariacyjne?
Sformułowanie wariacyjne zajmuje się szukaniem ekstremalnych wartości funkcjonałów i ma zastosowanie w rozwiązywaniu równań
różniczkowych. Sformułowanie wariacyjne, czyli słabe metody elementów skończonych złożone jest z:
formy dwuliniowej [B(u,v)] – odwzorowania B iloczynu kartezjańskiego: VxV (czyli par wektorów) w zbiór liczb rzeczywistych R: VxV-->R,
funkcjonału liniowego [L(v)] – odwzorowania L przestrzeni liniowej (wektorowej) V w zbiór liczb rzeczywistych R: V-->R,
abstrakcyjna formuła sformułowania wariacyjnego, czyli słabego ma postać: B(u,v)=L(v) dla każdego v.
6
26. Co to jest macierz sztywności?
Ogólnie rzecz biorąc, macierz sztywności definiuje nam schemat bądź też mapę rozkładu naprężeń charakteryzujący dany materiał, czy też
badany obiekt, który poddawany jest pewnym siłom F. Macierz sztywności opisuje właściwości mechaniczne elementu, zależność pomiędzy
przemieszczeniami i obciążeniami. Wiąże ona siły w węzłach z przemieszczeniami tych węzłów. Globalna macierz sztywności jest równa sumie
macierzy sztywności elementów skończonych.
Jak wiadomo, układ równań MES ma postać: Ku=F, zatem duże K – jest macierzą sztywności. Ogólnie rzecz biorąc, macierz sztywności
definiuje nam schemat bądź też mapę rozkładu naprężeń charakteryzujący dany materiał, czy też badany obiekt, który poddawany jest pewnym siłom F.
Podczas tworzenia układu równań MES przechodzimy z elementowych macierzy sztywności BK, mn do globalnej macierzy sztywności Kij-->K(z
równania):
27. Na czym polega metoda wielofrontalna algebraiczna, jakie są jej podstawy?
Metoda wielofrontalna oszczędnie pracuje z pamięcią główną, nadaje się do wirtualizacji – jeśli rozmiar zadania przekracza możliwości
pamięci głównej, dane, przeznaczone dla przechowywania macierzy poprawek, mogą być zapisane na dysk. Oprócz tego, bloki, zawierające części
macierzy sfaktoryzowanej, też mogą być wyładowane na dysk.
Metoda wielofrontalna wykonuje dużo transferów danych z jednego obszaru pamięci do innego, nawet jeśli zadanie mieści się w pamięci głównej.
Występuje to przy kopiowaniu kompletnie sfaktoryzowanej części macierzy frontalnej, przy agregowaniu kolejnej macierzy frontalnej itd. Takie operacji
należą do procedur niskiej wydajności, oprócz tego dla komputerów z pamięcią wspólną procedury kopiowania są przyspieszone bardzo słabo przy
zwiększeniu ilości wątków. Obniża to wydajność solwerów wielofrontalnych oraz ich speed up.
Uporządkowanie grafu przyległości dla węzłów modelu MES, a nie dla równań: znacznie mniejsza objętość danych, szybciej działa metoda
uporządkowania, zwykłe mniej elementów niezerowych ponieważ graf spójności jest zgrubiony w porównaniu do grafa dla równań, powstaje blokowanie
równań naturalne, a nie na podstawie analizy macierzy – lepiej jest skupienie do większych bloków, Eliminacje węzeł – po – węźle - na każdym kroku
eliminacji eliminujemy równania, skojarzone z danym węzłe
28. Od czego zależy zbieżność metod iteracyjnych rozwiązywania układów równań liniowych
algebraicznych z macierzami rzadkimi?
Metody iteracyjne doprowadzaja do rozwiazania przyblizonego z podana dokładnoscia za pewna ilosc iteracji – ilosc operacji nie pozostaje
przewidywana z góry. Główna cecha metod iteracyjnych jest zbieznosc. Jesli dla zagadnienia podanego proces iteracyjny sie zbiega za nie wielka ilosc
iteracji (zwykłe ilosc iteracji odnosza do rozmiary zadania), mówimy że zbieznosc jest szybka. W przeciwnym przypadku – wolna. Czesto wystepuje
sytuacje, gdy w ogóle nie da sie osiagnac podanej dokładnosci rozwiazania – mówimy o braku zbieznosci.
Zbieznosc metod iteracyjnych zalezy od współczynnika uwarunkowania macierzy układu równan. To jest najwazniejsza charakterystyka
macierzy. Iteracyjne metody maja tylko jedna zalete w porównywaniu do metod bezposrednich – quasiliniowy wzrost ilosci operacji
zmiennoprzecinkowych przy wzroscie rozmiaru zagadnienia. I to jest główna przyczyna, ze tyle uwagi pozostaje przydzielono rozwinieciu metod
iteracyjnych.
29. Omów działanie protokołu RIP.
RIP - został zaprojektowany z myślą o wymianie informacji routingu w obrębie małej lub średniej intersieci. Największą Zaletą protokołu RIP
jest to, że jest on niezwykle łatwy do skonfigurowania i wdrożenia. Największą wadą protokołu RIP jest niemożność przeskalowania go do użytku w
dużych lub bardzo dużych intersieciach. Maksymalną liczbą przeskoków używaną przez routery RIP jest 15. Sieci znajdujące się w odległości 16
przeskoków lub większej są uważane za nieosiągalne. Ponieważ intersieci stają się coraz większe, okresowe anonse wysyłane przez każdy router RIP
mogą być przyczyną nadmiernego ruchu danych. Inną wadą protokołu RIP jest jego długi czas przywracania. Gdy topologia intersieci ulegnie zmianie,
może upłynąć kilka minut, zanim routery RIP dostosują się do nowej topologii intersieci. Chociaż intersieć rekonfiguruje się sama, mogą powstać pętle
routingu, które mogą być przyczyną utraty danych lub niemożności ich dostarczenia.
Początkowo tabela routingu dla każdego routera obejmuje tylko sieci, które są fizycznie połączone. Router RIP okresowo wysyła anonse zawierające
pozycje jego tabeli routingu, aby poinformować inne lokalne routery RIP o sieciach, które są dla niego osiągalne. Protokół RIP w wersji 1 używa dla
swoich anonsów pakietów emisji IP.
30. Omów architekturę modelu ECNM (architektura, komponenty, własności).
ECNM jest hierarchicznym modelem używanym do segmentowania sieci w fizyczne, logiczne, hierarchiczne i funkcjonalne obszary. Wyróżnia się 3
główne funkcjonalne obszary: kampus przedsiębiorstwa, wierzchołek przedsiębiorstwa oraz wierzchołek dostawcy usług.
Kampus przedsiębiorstwa - Zdefiniowany jako przynajmniej jeden budynek w wirtualnych albo fizycznych sieciach, Zwykle budynki połączone
są szybką siecią. Zawierają elementy wymagane dla niezależnych operacji w kampusie, nie oferują zdalnego połączenia ani dostępu do internetu,
może być dzielona na moduły
Wierzchołek przedsiębiorstwa - łączy w całość połączenia z różnych zewnętrznych zasobów i filtrów, Zawiera elementy wymagane dla
bezpiecznych połączeń pomiędzy kampusem a zdalnymi lokalizacjami
Wierzchołek dostawcy usług - ułatwia komunikację z WAN i ISP
7
31. Omów zasady projektowania sieci LAN opartych na protokole Ethernet.
Ethernet - technika, w której zawarte są standardy wykorzystywane w budowie głównie lokalnych sieci komputerowych. Obejmuje ona
specyfikację przewodów oraz przesyłanych nimi sygnałów. Ethernet opisuje również format ramek i protokoły z dwóch najniższych warstw Modelu OSI.
Jego specyfikacja została podana w standardzie IEEE 802.
Norma IEEE 802.3 opisuje wytyczne przy tworzeniu pojedynczej domeny kolizyjnej dla szybkości 10Mbps. Reguły te zostały jeszcze bardziej
uproszczone w łatwej do zapamiętania i powszechnie stosowanej tzw. zasadzie 5-4-3:
- nie może być więcej niż 5 połączonych segmentów,
- pomiędzy dwiema stacjami nie może być więcej niż 4 wzmacniaki (np.: koncentratory),
- maksymalnie 3 z nich mogą być segmentami mieszanymi.
Segment – część okablowania sieci ograniczona przez mosty (bridge), przełączniki (switche), rutery, wzmacniaki lub terminatory. Najczęściej połączenie
między dwoma komputerami lub koncentratorem i komputerem (dla skrętki i światłowodu), lub jeden odcinek kabla koncentrycznego łączącego wiele
urządzeń.
Wzmacniak (repeater) – stanowi połączenie elektryczne między dwoma segmentami sieci. Jego zadaniem jest wzmocnienie i odnowienie sygnału w
celu zwiększenia rozległości sieci. W żaden sposób nie ingeruje w zawartość logiczną ramki.
Koncentrator (hub, concentrator) – umożliwia podłączenie (w topologii gwiazdy) wielu urządzeń sieciowych w jeden segment. W rozważaniach można
go traktować jak połączenie wielu wzmacniaków (wieloportowy wzmacniak).
Domena kolizji jest formalnie definiowana jako pojedyncza sieć CSMA/CD, w której może nastąpić kolizja, jeśli dwa komputery podłączone do tej sieci
będą nadawać jednocześnie. Jeśli mamy komputery połączone za pomocą koncentratora (kilku) lub kabla koncentrycznego to tworzą one pojedyńczą
domenę kolizji. Urządzenia takie jak przełącznik, ruter tworzą oddzielne domeny kolizji na każdym ze swoich portów.
32. Omów działanie protokołu dynamicznego routingu opartego na metryce odległości.
Algorytm Distance vector (znany także jako algorytm Bellman-Ford) nawołuje każdy router do wysyłania całej lub części swojej tablicy routingu
tylko do swoich bezpośrednich sąsiadów. Algorytm Distance vector preferuje routing oparty na informacjach dostarczonych przez sąsiadów.
Protokoły Distance vector zużywają mniej systemowych zasobów routera, za to ich wadą jest powolna zbieżność i użycie metryk routingu, które nie
nadają sie dobrze do użycia w dużych sieciach. Protokoły Distance vector bazują na odszukaniu dystansu, czyli liczby skoków i wektora, czyli
właściwego kierunku do celu. Ten prosty typ routingu wymaga od każdego routera informowania sojego sąsiada o swojej tablicy routingu. Dla każdej
poznanej ścieżki router wysyła do swojego sąsiada informację o najniższym koszcie, a ten zapamiętuje te informacje w swojej tablicy routingu. RIP i
IGRP sa najbardziej powszechnymi protokołami tego typu.
33. Przedstaw zasada działania następujących elementów (hub, switch , router).
Switch - urządzenie łączące segmenty sieci komputerowej pracujące w drugiej warstwie modelu ISO/OSI (łącza danych), jego zadaniem jest
przekazywanie ramek między segmentami. switche stosuje się zwykle w sieciach opartych na skrętce. Są urządzeniem służącym do przyłączania stacji
przede wszystkim w topologii gwiazdy, a także do rozładowywania ruchu w sieci i wyeliminowania kolizji, w czym przewyższają bridge. Posiadają
zazwyczaj kilkanaście portów. Mogą być one wykorzystane do podłączenia stacji końcowych, innych przełączników, bądź hubów. Switche umożliwiają
zmniejszenie obciążenia w sieci, poprzez jej podział na mikrosegmenty i tzw. komutowanie. Polega to na tym, iż do jednego segmentu można
przydzielić zaledwie jedną stację roboczą, co znacznie redukuje rywalizację o dostęp do medium. Użytkownik otrzymuje wtedy całą szerokość pasma
dla siebie. Każdy port switcha stanowi wejście do jednego segmentu sieci. Urządzenia te eliminują więc wąskie gardło w sieciach LAN związane z
węzłami, przez które przekazywane są dane z centralnego serwera, a dalej rozprowadzane do odpowiednich stacji.
Rutery - urządzenie sieciowe pracujące w trzeciej warstwie modelu OSI (warstwa sieciowa np. protokuł. IPv4). Router jest urządzeniem
konfigurowalnym, pozwala sterować przepustowością sieci i zapewnia pełną izolację pomiędzy segmentami. Służy do łączenia różnych sieci
komputerowych (różnych w sensie informatycznym, czyli np. o różnych klasach, maskach itd.), pełni więc rolę węzła komunikacyjnego. Na podstawie
informacji zawartych w pakietach TCP/IP jest w stanie przekazać pakiety z dołączonej do siebie sieci źródłowej do docelowej, rozróżniając ją spośród
wielu dołączonych do siebie sieci. Proces kierowania ruchem nosi nazwę trasowania, routingu lub rutowania. Do głównych zalet można zaliczyć: wybór
optymalnej trasy między nadawcą a odbiorcą, ochrona (zapory, kodowanie), transakcja protokołów, filtrowanie pakietów, usuwanie pakietów bez
adresów.
Huby - są to urządzenia posiadające wiele portów służących do przyłączania stacji roboczych zestawionych przede wszystkim w topologii
gwiazdy. W sieci z zastosowaniem huba nie ma bezpośrednich połączeń pomiędzy stacjami. Komputery przyłączone są przy użyciu jednago kabla do
centralnego huba, który po nadejściu sygnału rozprowadza go do wszystkich linii wyjściowych. Wyróżniamy huby pasywne - tylko przekazują sygnał, nie
wymagają zasilania; aktywne - wzmacniają sygnał, wymagają zasilania.
34. Omów metryki, które są stosowane w protokołach dynamicznego routingu.
Większość protokołów routingu można sklasyfikować w dwóch kategoriach:
distance-vector (metryka odległości); link-state (stanu łacza)
Protokół typu distance vector ustala swoją ścieżkę do miejsca przeznaczenia na podstawie ilości skoków. Protokoły typu link state zwane
także jako shortest path first, czyli "najpierw najkrótsza ścieżka", biorą pod uwagę także topologię sieci. Kiedy zdarzy się zmiana w topologii sieci,
informacje na temat tej sieci sa akutalizowane. Proces odkrywania topologii sieci odbywa się kolejno od routera do routera. Algorytmy distance vector
wysyłają uaktualnienia do swoich sąsiadów. Tablice routingu zawierają informacje na temat całkowitego kosztu ścieżki zdefiniowanej za pomocą metryk
protokołu.
Metryka routingu distance-vector obejmuje następujace elementy:
opóżnienie sieci; przepustowość łącza; niezawodność łącza; obciążenie łącza; liczba skoków; maksymalna wielkość pakietu obsługiwana przez
komunikujące się interfejsy;
8
35. Wymień technologie i podaj ich własności, które służą do budowy sieci WAN.
Komutacja kanałów
polega na przydzieleniu wybranemu połączeniu wybranej sekwencji połączonych kanałów od terminala źródłowego do terminala docelowego. W
sieciach z komutacją kanałów przesyłanie danych następuje dopiero po ustanowieniu połączenia, czyli uzyskaniu specjalnej trasy pomiędzy systemem
nadawcy a systemem odbiorcy. Trasa jest sekwencją kolejno połączonych kanałów. Kanały te zostają zajęte przez cały czas, w którym trwa połączenie.
Zarezerwowane kanały nie mogą być używane przez inne połączenia.
Komutacja pakietów
Polega ona na przesyłaniu danych przez sieć w postaci pakietów. W odróżnieniu od techniki komutacji łączy pozwala użytkownikom nawiązywać
połączenia z wieloma innymi użytkownikami jednocześnie. Pakiety powstają w wyniku podzielenia informacji użytkownika na części o stałej długości i
opatrzenie tych "wycinków" w nagłówek N. Nagłówek zawiera informacje, które umożliwiają pakietowi dojście z punktu źródłowego do docelowego,
węzłom sieci sprawdzenie poprawności zawartych w pakiecie danych a w punktom docelowym właściwie zestawić i odtworzyć podzieloną informację.
Pakiety mogą być przesyłane przez sieć metodą połączeniową bądź bezpołączeniową.
Komutacja komórek
Jest to realizacja szybkiej komutacji pakietów. Dane przesyłane są w porcjach o stałej i niezbyt dużej długości. Możliwe są transmisje z szybkościami
rzędu setek Mbit/s i większymi. Technika ta przeznaczona jest dla łączy o bardzo dobrej jakości np. światłowodów. Za obsługę błędów, pakietów
uszkodzonych lub zaginionych odpowiedzialne są systemy użytkowników końcowych.
36. Omów hierarchiczny model sieci komputerowej (architektura, warstwy, własności).
Hierarchiczny model sieci wykorzystuje wielowarstwowe podejście do projektowania sieci. Składowymi elementami są warstwy dostępu,
dystrybucji oraz rdzeń (szkielet). Główne zalety tego modelu to jego hierarchiczna struktura i jej modułowość. Dzięki temu sieć łatwo dostosować to
zmieniających się potrzeb biznesowych, skalować i rozwiązywać problemy. Rozwiązania i produkty firmy Cisco System wspierają sieci o strukturze
hierarchicznej.
W typowym modelu hierarchicznym, poszczególne elementy są ze sobą połączone za pomocą warstwy rdzenia. Warstwa dystrybucji agreguje
węzły warstwy dostępu. Wysoka dostępność w warstwie dystrybucji jest możliwa dzięki redundancji - dwóch równych ścieżek z warstwy dystrybucji do
rdzenia i z warstwy dostępu do warstwy dystrybucji. Warstwa dostępu jest punktem wejściowym do sieci urządzeń brzegowych: stacji roboczych i
telefonów IP. Przełączniki w warstwie dostępu są podłączone do dwóch oddzielnych przełączników warstwy dystrybucji w celu zapewnienia redundancji,
co gwarantuje niezawodność sieci
Warstwa rdzenia – spaja wiele sieci okręgowych w jedną sieć WAN
Warstwa dystrybucji – dostarcza usługi sieci wielu sieciom lokalnym istniejącym w ramach środowiska WAN ( szkielet środowiska WAN)
Warstwa dostępu do sieci – nazywana siecią LAN, zapewnia użytkownikom dostęp do usług sieciowych
37. Omów działanie protokołu OSPF.
OSPF(Open Shortest Path First). Protokoły te są ogólnie określone jako protokoły: "najpierw najkrótsza ścieżka". Utrzymują złożoną bazę
danych opisującą topologie sieci.
Jest to protokół typu stanu łącza. W przeciwieństwie do protokołu RIP, OSPF charakteryzuje się dobrą skalowalnością, wyborem optymalnych ścieżek i
brakiem ograniczenia skoków powyżej 15, przyspieszoną zbieżnością. Przeznaczony jest dla sieci posiadających do 500 routerów w wyznaczonym
obszarze trasowania.
W odróżnieniu od protokołów wektora odległości (np. RIP), protokoły stanu łącza zbierają i przechowują pełną informację na temat routerów
sieci, a także o sposobie ich połączenia. Uzyskanie tych informacji jest możliwe dzięki wymianie pakietów stanu łącza link-state packet (LSP) z innymi
bezpośrednio połączonymi routerami. Każdy router, który wymienił pakiety LSP, buduje na ich podstawie topologiczną bazę danych. Następnie
wykorzystywany jest algorytm najkrótszej ścieżki Shortest - path first (SPF) w celu obliczenia dostępności punktów docelowych sieci (wyznacza drzewo
najkrótszej ścieżki do obiektu docelowego). Informacja ta jest wykorzystywana do uaktualnienia tablicy trasowania. Wybór trasy odbywa się na
podstawie wielu czynników, na przykład takich jak szybkość i opóźnienie wprowadzane przez łącze, potrzeba ominięcia określonych obszarów lub
różnorodne priorytety.
38. Omów działania protokołu opartego na stanie łącza.
Algorytm routingu według stanu łącza utrzymuje skomplikowaną bazę danych zawierającą informacje o topologii sieci.
OSPF używa algorytmu stanu łącza by zbudować i wyliczyć najkrótsze trasy do wszystkich znanych sieci. Algorytm ten jest skomplikowany. Poniżej
przedstawiono tylko główne założenia i cechy tego algorytmu:
1. Podczas inicjalizacji lub podczas jakiejkolwiek zmiany w sieci, router generuje pakiet LSA, który zawiera informacje o wszystkich łączach routera.
2. Każdy router, który otrzymuje taki pakiet, wykorzystuje go do uaktualnienia informacji w swojej bazie danych topologii i przesyła ten pakiet do
pozostałych routerów (flooding).
3. Na podstawie bazy danych topologii budowane jest drzewo najkrótszych ścieżek we wszystkich możliwych dostępnych kierunkach. Do tego celu
używany jest algorytm Dijkstry. Na podstawie danych z tego drzewa konstruowana jest tablica routingu.
4. W przypadku gdy żadna zmiana w sieci się nie pojawia, OSPF praktycznie się nie komunikuje (oprócz słanych regularnie małych pakietów Hello).
39. Rozproszone bazy danych – budowa, wady, zalety, cechy rozproszonych baz danych.
Rozproszona baza danych - baza danych istniejąca fizycznie na dwóch lub większej liczbie komputerów, traktowana jednak jak jedna logiczna
całość, dzięki czemu zmiany w zawartości bazy w jednym komputerze są uwzględniane również w innych maszynach.
Zalety: równoległe przetwarzanie, brak ograniczenia objętości, odzwierciedlenie struktury
Wady: transakcje rozproszone, odtwarzanie po awarii, kontrola współbieżności dostępu do danych, Wzrost niezawodności całego systemu
Architektura SZRBD: procesory danych – odpowiedzialne za zarządzanie danymi w poszczególnych węzłach; procesor aplikacji – koordynator dostępu
do danych w różnych węzłach; oprogramowanie komunikacyjne – dostarcza podstawowe usługi do realizacji procesora aplikacji (np. JavaSpaces jako
jedna z implementacji modelu wirtualnie współdzielonej pamięci)
9
40. Architektura logiczna i fizyczna systemu ORACLE.
Logiczna: Baza danych - jest to najwyższa jednostka organizacyjna w systemie Oracle zawiera co najmniej trzy przestrzenie tabel SYSTEM,
SYSAUX oraz jedną UNDO. Przestrzeń tabel - największa struktura przechowywania danych, fizycznie jest złożona z jednego lub wielu plikow
danych(datafile). Segmenty - obiekt w bazie danych, ktory wymaga przechowywania np. tabela, indeks istnieje wiele rodzajow segmentow np CLUSTER,
INDEX ,TABLE, TABLE PARTITION, ROLLBACK, TEMPORARY itd. składają się one z jednego lub wielu rozszerzeń (extendow).
Rozszerzenia - są tworzone w pliku danych (datafile) początkowo jest jeden a w miarę zwiększania się ilości danych dodawane są kolejne, może być
zarządzany słownikowo (dictionary) , co jest nie zalecane, lub lokalnie w przestrzenie tabel z wykorzystaniem bitmapy.
Blok bazy danych - najmniejsza jednostka w bazie danych może być rożny dla rożnych przestrzeni tabel, po ustaleniu nie można go zmienić, najlepiej
kiedy jest taki sam jak rozmiar bloku OS.
Fizyczna: Datafile - składają się z nagłowka, rozszerzeń (extend) , oraz wolnej przestrzeni. Nagłowek przechowuje informacje o pliku danych
(datafile) do jakiej przestrzeni należy, kiedy był wykonany ostatni punt kontrolny (chceckpoint), wykorzystywane jest to np. do sprawdzenia czy
wszystkie pliki z danymi są spojne, jeżeli jeden z plikow jest starszy to oznacza, że pochodzi on z backupu i trzeba rozpocząć procedurę przywracania
(recovery). Blok systemu operacyjnego - jego wielkość jest zależna od OS najlepiej, jeżeli jest on taki sam jak rozmiar bloku Oracle dzięki temu do
odczytu jednego bloku Oracle czytamy jeden blok OS co oznacza mniej kosztownych operacji I/O.
41. Omów programy składowane języka PL/SQL.
Programy przechowywane są trwale w bazie danych w postaci skompilowanej.
Wykonywane na żądanie użytkownika lub zajścia określonych zdarzeń. Mogą być współdzielone przez wielu użytkowników
Wyróżniamy następujące rodzaje programów:
– procedury – wykonują określone akcje,
– funkcje – wykonują obliczenia i zwracają wartości,
– pakiety – biblioteki procedur i funkcji,
– wyzwalacze – procedury wywoływane automatycznie przez zdarzenia w bazie danych. (Wymuszanie złożonych reguł biznesowych,
Zaawansowane śledzenie działań użytkowników, Wymuszanie złożonych polityk bezpieczeństwa, Wypełnianie atrybutów tabeli wartościami
domyślnymi, Modyfikacja złożonych perspektyw)
42. Metody przetwarzania zapytań rozproszonych.
Statyczna - W metodzie statycznej zapytania do różnych serwerów są rozsyłane jednorazowo do serwerów. W yniki
są scalane w kliencie po otrzymaniu odpowiedzi z serwerów.
Dynamiczna - W metodzie tej zapytanie dzielone jest na części. Pierwsza część Z1 jest wysyłana do serwera S1 i po
otrzymaniu odpowiedzi W1, następuje wysłanie zapytania do drugiego serwera S2. Zapytanie to składa się z części zapytania głównego Z, czyli Z2 oraz
może zawierać część wyników W1. Takie działanie trwa aż do zebrania kompletnej odpowiedzi od serwerów i złożenia je w spójny wynik W.
Zapytanie rozproszone kierowane do kilku zdalnych baz danych jest realizowane w następujących krokach.
1. Lokalna baza danych, w której jest realizowane zapytanie rozproszone, rozbija je na zapytania cząstkowe. Każe z zapytań cząstkowych jest
kierowanie niezależnie do odpowiedniej zdalnej bazy danych.
2. W zdalnej bazie danych zapytanie jest optymalizowane, wykonywane, a jego wynik jest przekazywany do bazy inicjującej zapytanie.
3. Po otrzymaniu wyników wszystkich zapytań cząstkowych, baza inicjująca realizuje operacje łączenia, agregowania i sortowania wyników
cząstkowych. Optymalizator zapytań w SZBD w lokalnej bazie danych nie ma informacji na temat dodatkowych struktur fizycznych wykorzystywanych w
zdalnych bazach danych, ani też na temat statystyk dla struktur w zdalnych bazach danych. Każde zapytanie jest realizowane za pomocą tzw. planu
wykonania. Plan ten opisuje sposób wykonania zapytania z podziałem na elementarne operacje odczytu danych z dysku (np. odczyt całej tabeli, odczyt
rekordów z wykorzystaniem indeksu), filtrowanie danych, łączenie tabel, agregowanie wyników, sortowanie. Plan wykonania zapytania jest budowany
przez optymalizator zapytań przed fizycznym wykonaniem zapytania. dostęp do planu jest przez EXPLAIN PLAN.
43. Sposoby implementacji protokołu zatwierdzania dwufazowego?
Transakcja rozproszona jest zatwierdzana lub wycofywana za pomocą tzw. protokołu zatwierdzania dwufazowego - 2PC (ang. Two-Phase
Commit). Faza przygotowania: Koordynator globalny wybiera węzeł zatwierdzania spośród wszystkich węzłów biorących udział w transakcji
rozproszonej. KG wysyła do wszystkich węzłów, z wyjątkiem węzła zatwierdzania, komunikat prepare. Po otrzymaniu takiego komunikatu, w każdej z
lokalnych baz danych, w których transakcja rozproszona modyfikuje dane SZBD dokonuje: zapisu wprowadzanych zmian w dziennikach powtórzeń;
założenia blokad na modyfikowane dane. Węzły podejmują decyzję o gotowości do zatwierdzenia lub konieczności wycofania transakcji. Każdy węzeł
przesyła do KG komunikat prepared, jeżeli operacje opisane w kroku 2. się powiodły. Jeżeli transakcja nie może zostać przygotowana do zatwierdzenia,
wycofywane są wszystkie wprowadzone przez nią zmiany, zwalniane są blokady, a do KG przesyłany jest komunikat abort. Jeżeli w węźle nie
modyfikowano danych, do KG przesyłany jest komunikat read-only. Komunikat prepared zostanie przesłany do KG tylko w sytuacji, gdy wszystkie
podległe węzły zwrócą prepared lub read-only. KG odbiera komunikaty od wszystkich węzłów, z wyjątkiem węzła zatwierdzania. Jeżeli KG otrzymał w
poprzedniej fazie wyłącznie komunikaty prepared lub read-only, przystępuje do fazy zatwierdzania (ang. commit phase). Jest ona realizowana w
następujących krokach: Koordynator globalny wysyła do węzła zatwierdzania komunikat commit, informujący o konieczności zatwierdzenia transakcji
lokalnej w jego węźle. WZ zatwierdza transakcję, a następnie wysyła komunikat committed do KG. Bieżący stan transakcji jest zapamiętywany w
słowniku bazy danych WZ. Po otrzymaniu od WZ komunikatu committed, KG wysyła komunikat commit do pozostałych węzłów. Każdy z węzłów po
zatwierdzeniu swojej transakcji, zapisuje odpowiednie informacje w dzienniku powtórzeń, zwalnia blokady i odpowiada komunikatem committed. Jeżeli
węzeł jest koordynatorem lokalnym, to po otrzymaniu komunikatu commit rozsyła ten komunikat do podległych mu węzłów. Po otrzymaniu potwierdzenia
zatwierdzenia transakcji w podległych węzłach, KL zatwierdza swoją transakcję lokalną i odpowiada przesyłając do KG komunikat committed. Po
odebraniu przez KG potwierdzeń od wszystkich węzłów następuje przejście do ostatniej fazy. Faza zakończenia: Koordynator globalny przesyła do
węzła zatwierdzania informację o odebraniu od wszystkich węzłów komunikatu committed. WZ usuwa z systemu lokalnego informację o zatwierdzonej
już transakcji i informuje o tym KG. KG usuwa informację o ransakcji z systemu lokalnego.
10
44. Omówić sposób realizacji transakcji rozproszonej.
Transakcja rozproszona (ang. distributed transaction) jest to transakcja, której polecenia DML odwołują się do tabel znajdujących się w co
najmniej dwóch węzłach rozproszonej bazy danych. Transakcja rozproszona jest reprezentowana przez zbiór transakcji lokalnych. W każdej z baz
danych, do której odwołuje się rozproszona transakcja, zostanie utworzona jedna transakcja lokalna. Wyróżnia się następujące rodzaje węzłów
uczestniczących w transakcji rozproszonej:
Koordynator globalny - KG (ang. global coordinator) - jest węzłem, który inicjuje i koordynuje transakcję rozproszoną.
Koordynator lokalny' - KL (ang. local coordinator) - otrzymuje żądanie, które następnie przetwarza i wysyła kolejne żądania do innych
podległych mu węzłów. KL nie koordynuje całej transakcji globalnej, a jedynie te żądania, które zotały przez niego wysłane.
Węzeł zatwierdzania' - WZ (ang. commit point site) - jest wybierany przez KG spośród wszystkich węzłów biorących udział w transakcji
rozproszonej na podstawie mocy węzła zatwierdzania określanej przez wartość parametru konfiguracyjnegoCOMMIT_POINT_STRENGTH. Wartość
tego parametru jest ustalana przez administratora systemu i określa niezawodność konkretnego węzła (w skali od 0 do 255).
Uczestnik - U (ang. node) - węzeł, do którego kierowane jest żądanie transakcji rozproszonej; sam węzeł nie wysyła żadnych żądań.
Transakcja rozproszona jest reprezentowana przez transakcje lokalne w każdym z adresowanych węzłów. Transakcje lokalne są powiązane z innymi,
znajdującymi się w odległych węzłach, tworząc tzw. graf wywołania transakcji, zwany również drzewem sesji(ang. session tree).
Jeżeli w czasie realizacji transakcji rozproszonej nastąpi awaria któregoś z węzłów, wówczas taka transakcja będzie w tzw. stanie zawieszenia (ang. in-
doubt) do momentu usunięcia awarii i nawiązania połączenia ze zdalnym węzłem umożliwiającym doprowadzenie transakcji do końca. Doprowadzenie
do końca rozproszonej transakcji, znajdującej się w stanie zawieszenia, nazywane jest odtworzeniem transakcji (ang. transaction recovery).
System Oracle stosuje wyłącznie metody blokowania - W czasie szeregowania operacji realizowanych w ramach transakcji dotyczących tych
samych danych system zarządzania bazą danych wykorzystuje protokół blokowania dwufazowego (two-phase locking). W systemie Oracle wyróżniamy
dwa typy blokad: na rekordzie; na tabeli. Transakcję kończy się poprzez jej zatwierdzenie lub wycofanie – domyślnie każda transakcja jest jawnie
kończona przez użytkownika Zakończenie jednej transakcji (zatwierdzenie lub wycofanie) jest początkiem transakcji następnej
Transakcję zatwierdza się poleceniem COMMIT, a wycofuje poleceniem ROLLBACK
Wszystkie polecenia grupy DML (np. CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP SYNONYM) i polecenia grupy DCL (np. GRANT,
REVOKE) kończą się niejawnym poleceniem COMMIT . Długą transakcję można podzielić na mniejsze, logicznie spójne fragmenty, wprowadzając w
transakcji tzw. punkty zachowania (savepoints). Transakcję taką można wycofać do wskazanego punktu zachowania
45. Obiektowe bazy danych – cechy i właściwości.
W miarę rozpowszechnienia technologii obiektowej oraz wraz z rosnącą krytyka modelu relacyjnego powstała nowa generacja baz danych
znanych jako obiektowe bazy danych (ODB). ODB przechowują obiekty - zakapsułkowane kombinacje danych o dowolnej strukturze razem ze
skojarzonymi procedurami (metodami).
OBD maja przewagę w stosunku do tradycyjnych baz danych przy przechowywaniu danych zorientowanych obiektowo, aktywnych, o
dowolnej strukturze złożonej czy zagnieżdżonej, hierarchicznie uporządkowanej czy związanej siecią różnorodnych połączeń oraz rozproszonej po
heterogenicznej sieci. Najistotniejszym problemem dla OBD jest kwestia zapytań. Większość współczesnych obiektowych baz danych pozwala jedynie
na proste przeszukiwanie przechowywanych obiektów. Również kwestia optymalizacji zapytań w przypadku obiektowych baz danych jest znacznie
bardziej skomplikowana.
Zalety - dokładnie reprezentuje złożone zależności miedzy obiektami, łatwość działania na złożonych obiektach, duża podatność na zmiany
możliwość definiowania własnych typów, metod, dobra integracja z językami programowania ogólnego przeznaczenia, ujednolicony model pojęciowy -
obiektowe podejście do analizy, projektowania i implementacji
Wady - powiązanie z jednym językiem programowania, słaba obsługa przeszukiwania danych, brak powszechnie zaakceptowanego języka
zapytań, brak możliwości optymalizacji zapytań, trudny lub nawet niemożliwy dostęp do fizycznych danych, słaba kontrola dostępu, małe możliwości
optymalizacji pracy serwera
46. Wymienić i opisać podstawowe architektury aplikacji internetowych.
Typowe architektury sieciowe: - Sieci klient-serwer (dwuwarstwowe),- Sieci wielowarstwowe,- Sieci peer-to-peer (P2P),- Sieci kratowe lub
rozproszone,- Hybrydowe połączenia wymienionych rozwiązań.
Architektura dwuwarstwowa - * Architektura dwuwarstwowa jest implementowana przez sieć Klient-serwer. * Wersje oprogramowania
klienckiego i serwerowego wykonują zadania na podstawie innego kodu lub mają wspólny kod, ale realizujący odmienne funkcje. W większości
przypadków aplikacje klienckie i serwerowe działają w różnych systemach. * Wzajemne rozmieszczenie jednostek klienckich i serwerów nie jest w
żaden sposób ograniczane, jeśli tylko będą się one mogły komunikować. * Protokoły realizacji usługi: HTTP, SNMP, RMI, .NET Remoting, TCP UDP itp.
Klient-serwer - * Rodzaj architektury sieciowej, kiedy połączenia Klient-serwer i Serwerklient wykorzystują uproszczone jednostki klienckie
nazywamy uproszczonym klientem lub cienkim klientem (thin client). * uproszczony klient jest terminalem o obniżonym poborze mocy z podsystemami
sieciowym i graficznym. Jednostki tego typu mogą być komputerami lub urządzeniami przenośnymi, w których został zainstalowany uproszczony system
operacyjny np. zubożony Linux, wbudowany system operacyjny czasu rzeczywistego (RTOS Real-Time Operating System), Windows CE.
* większość operacji związanych z przetwarzaniem danych jest wykonywana po stronie „serwera”.
Architektura wielowarstwowa - * Odmiana architektury klient-serwer, w której w transakcji między klientem a serwerem uczestniczą usługi
pośrednie. * Jednostka kliencka wymienia dane z serwerem pośredniczącym, a serwer pośredniczący komunikuje się z serwerem zasadniczym.*
Serwer końcowy przekazuje informacje do klienta również z wykorzystaniem serwera pośredniczącego (serwery transakcyjne). * Rozwiązanie
trójwarstwowe jest powszechnie stosowaną implementacją architektury n-warstwowej. * Podstawowe funkcje sieciowe w aplikacji trójwarstwowej są
rozdzielone zgodnie z założeniami:
- Warstwa kliencka (warstwa prezentacji) zapewnia użytkownikowi możliwość operowania aplikacją i zarządzania systemem.
- Warstwa pośrednicząca (warstwa logiki) obsługuje interakcje
użytkownika w formie niezależnych transakcji.
- Warstwa serwerowa (warstwa danych) składa się z serwerów, aplikacji oraz usług, które zapewniają dostęp do zgromadzonych
informacji.
* Trójwarstwowe systemy są łatwiejsze w skalowaniu, zapewniają większą modularność i dają możliwość aktualizowania systemu bez przerw w pracy.
11
47. Omówić protokół SOAP przesyłania komunikatów pomiędzy Web serwisami.
Web Services Description Language (WSDL) – opracowany przez Microsoft i IBM, oparty na XML język do definiowania usług sieciowych.
Język opisuje protokoły i formaty używane przez usługi sieciowe. Opisy WSDL mogą być umieszczane w rejestrze UDDI – kombinacja WSDL i UDDI ma
się przyczynić do promocji rozwiązań usług sieciowych w Internecie.
WSDL wykorzystuje język XML do opisu punktów dostępu do usług sieciowych. Język WSDL definiuje zestaw kilku struktur XML pozwalających na
pełny opis usług (struktury danych wymienianych z usługą, sposób połączenia z usługą [najczęściej HTTP]).
WSDL (Web Service Definition Language) jest to dokument XML opisujący webservice. Może przechowywać zarówno ogólną informację o usłudze
(operacje i ich argumenty) jak również szczegółowe informacje (powiązanie usług z protokołami i adresami pod którymi usługi te są dostępne). Plik
WSDL składa się z definicji następujących elementów (w nawiasach podano oryginalne
angielskie nazwy)
SOAP (dawniej Simple Object Access Protocol, później Service Oriented Architecture Protocol, obecnie brak oficjalnego rozwinięcia tego akronimu[20])
jest to protokół opisujący sposób kodowania i wymiany wiadomości w formacie XML. Do przesyłania wiadomości zakodowanej zgodnie z SOAP
najczęściej wykorzystuje się protokół HTTP/HTTPS (ze względu na jego popularność w internecie), ale możliwe jest też wykorzystanie np. SMTP, FTP,
RMI/IIOP. Protokół SOAP może być użyty w realizacji różnych wzorców wymiany wiadomości (MEP - Message Exchange Pattern), ale dla potrzeb
webservice używa się go w RPC (RPC - Remote Procedure Call)
SOAP (Simple Object Access Protocol) jest protokołem wymiany danych zapisanych w języku XML. Na początku swojego istnienia przeznaczał się
generalne dla wywoływania procedur RPC, jednak teraz jest używany dla wymiany dowolnych wiadomości. Korzysta się z niego w sieciach
komputerowych najczęściej za pomocą HTTP/HTTPS, jednak również można używać SMTP czy też FTP. Strona standardu
tohttp://www.w3.org/TR/soap.
Wiadomość SOAP ma następujące elementy składowe:
Envelope – wymagany element nadrzędny wiadomości SOAP, gdyż określa on dokument XML jako wiadomość SOAP.
Header – opcjonalny element, może zawierać dodatkowo określone przez aplikację informacje na temat wiadomości SOAP. Jeśli występuje to musi
być pierwszym elementem podrzędnym do elementu Envelope.
Body – wymagany element, zawiera wiadomość SOAP.
Fault - opcjonalny element, używany w celu dostarczenia informacji o błędach, które wystąpiły w czasie tworzenia wiadomości. Ten element może
tylko wystąpić w wiadomości pełniącej rolę odpowiedzi i być podrzędnym do elementu Body. Może pojawić się tylko raz w obrębie jednego komunikatu
SOAP.
Zalety SOAP: 1.Komunikacja za pomocą HTTP/HTTPS pozwala łatwo omijać zapłony ogniowe oraz inne problemy charakteru
połączeniowego. 2.Można użyć innych niż HTTP/HTTPS protokołów transportowych. 3.Nie zależy od platformy. 4.Nie zależy od języków
programowania czy używanych narzędzi. 5.Prosty i rozszerzalny.
Wady SOAP: 1.W związku z użyciem XML wiadomości SOAP dziedziczą wady XML. Najbardziej wpływową jest w tym przypadku chyba
nadmiarowość samej składni tego języka. 2.Przy użyciu HTTP/HTTPS tylko jedna strona może być usługobiorcą, w związku z tym programiści muszą
co jakiś czas odpytywać się serwis zamiast notyfikować klienta.
SOAP jest protokołem komunikacyjnym służącym do wymiany wiadomości pomiędzy aplikacjami. SOAP przeznaczony jest do wymiany
danych w sieci internet. SOAP jest niezależny od platformy sprzętowej oraz języka programowania. Wiadomości SOAP są opisane za pomocą XML.
SOAP jest standardem W3C: http://www.w3.org/TR/soap/
Protokół SOAP logicznie dzieli się na trzy części:
Kopertę (SOAP envelope) - jest to definicja opisująca co znajduje się w wiadomości, dla kogo jest przeznaczona i czywiadomość jest obowiązkowa lub
opcjonalna. Zasady kodowania (SOAP encoding rules) - możliwość definiowania typów wykorzystywanych przez aplikację.
Reprezentacja RPC (SOAP RPC representation) - określa reguły opisu zdalnych procedur i ich odpowiedzi.
48. Opisać technologie dynamicznych stron WWW.
PHP - Obiektowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym. Jest on zagnieżdżonym
w HTML językiem skryptowym działającym po stronie serwera. Skrypty napisane w PHP są z reguły umieszczane w plikach tekstowych (czasami razem
z kodem HTML lub XHTML). Autorem pierwotnej wersji jest Rasmus Lerdorf (rok 1994). PHP jest bardzo szeroko dostępny. Obsługa PHP na danej
platformie dostępna jest bądź jako moduł serwera, bądź jako program CGI.
Jak w większości języków skryptowych PHP stosuje tzw. luźne typowanie. Podstawowy zestaw typów obejmuje: Integer, Double, String, Array, Object.
Typ danej zmiennej można zmieniać w czasie działania skryptu. Możliwe są również rzutowania (składnia jak w Javie). Składnia instrukcji warunkowych,
operatorów arytmetycznych oraz pętli a także komentarzy jest wzorowana na C++ i Javie. Istnieje możliwość deklarowania zmiennych i stałych.
Podobnie jak w Javie i JavaScript, identyfikatory są czułe na wielkość znaków. Nazwy reprezentujące zmienne są w PHP wyróźniane symbolem "$" na
ich początku
Servlety i JSP- Servlety są technologią należącą do platformy Java 2 Enterprise Edition. Servlet funkcjonuje jako element oprogramowania
odpowiadający na żądania (zwykle) HTTP. Model działania nawiązuje więc po części do CGI, ma jednak w stosunku do niego istotne zalety:
JSP (Java Server Pages) stanowią również element platformy J2EE służący implementacji dynamicznych dokumentów WWW. W przeciwieństwie do
servletów zaliczają się do rodziny technologii SSI. Umożliwiają osadzanie kodu wewnątrz struktury HTML. Wewnątrz struktury dokumentu kod Javy jest
umieszczany wewnątrz znaczników: <% … %>. Kod strony, opatrzony rozszerzeniem .jsp jest następnie przetwarzany przez silnik JSP do postaci
servletu i kompilowany.
ASP .NET stanowią ilustrację dalszego rozwoju technologii dokumentów dynamicznych w kierunku usprawnienia działania kodu, rozbudowy
udogodnień przyspieszających budowę stron oraz ściślejszego powiązania technologii dokumentów dynamicznych z rozbudowaną platformą budowy
aplikacji. Strony ASP .NET są kompilowane przez kompilator zgodny z CLR (Common Language Runtime). Dostępne są kompilatory dla VB, VC++,
Java, C# i inne. Zastosowano tu wyższy poziom abstrakcji niż w tradycyjnych technologiach skryptowych - w tym sensie, że mechanizmy komunikacyjne
oraz przetwarzanie tekstu są w dużej mierze ukryte pod gotowymi komponentami realizującymi dedykowaną funkcjonalność. Stąd styl tworzenia bardzo
przypomina budowę tradycyjnych aplikacji w Windows. Ukryte przed programistą zostają szczegóły związane z interakcją wywołań i odpowiadająca im
dystrybucja kodu pomiędzy wykonywany po stronie klienta oraz po stronie serwera. Istotnym dla pielęgnacyjności kodu udogodnieniem jest możliwość
separacji kodu pomiędzy interfejs użytkownika: strony .aspx (zawierającą projekt warstwy prezentacyjnej) oraz kod serwerowy z logiką przetwarzania
(tzw. code-behind pages): .aspx.cs, .aspx.vb lub inne.
12
49. Scharakteryzować języki warstwy prezentacji dokumentu XML: XSL, CSS.
Arkusze CSS - Kaskadowe arkusze stylów (ang. Cascading Style Sheets ; w skrócie CSS) to język służący do opisu formy prezentacji (wyświetlania)
stron WWW. Arkusz stylów CSS to lista dyrektyw (tzw. reguł) ustalających w jaki sposób ma zostać wyświetlana przez przeglądarkę internetową
zawartość wybranego elementu (lub elementów) (X)HTML lub XML. Można w ten sposób opisać wszystkie pojęcia odpowiedzialne za prezentację
elementów dokumentów internetowych, takie jak rodzina czcionek, kolor tekstu, marginesy, odstęp międzywierszowy lub nawet pozycja danego
elementu względem innych elementów bądź okna przeglądarki. Wykorzystanie arkuszy stylów daje znacznie większe możliwościpozycjonowania
elementów na stronie, niż oferuje sam (X)HTML.
- Stworzone z myślą o HTML'u
- Pozwalają na formatowanie HTML
- Umożliwiają transformacje XML'a w HTML
- Stosunkowo proste w tworzeniu
Arkusze XSL - funkcyjny język programowania opisujący sposób prezentacji i przekształceń dokumentów zapisanych w formacie XML. W
języku tym operuje się na znacznikach i ich ewaluacji, na podobnej zasadzie, co we wszystkich językach operujących na makrach.
- Opracowane dla XML'a
- Umożliwiają transformację w HTML TXT i XML
- pozwalają na zmianę struktury dokumentu, fitrowanie elementów, sortowanie
- Skomplikowane w tworzeniu
XSL - Obejmuje 2 części:
– XSL Transformations (XSLT) – język przekształceń (Wykorzystuje XPath)
– XSL Formatting Objects (XSL-FO) – język opisu formatu
W porównaniu z CSS:
– XSL oferuje bardziej rozbudowane mechanizmy formatowania
– Umożliwia transformację struktury drzewa dokumentu (!)
– Arkusze XSL są dokumentami XML (!)
50. Omówić sposoby definiowania typu dokumentu XML: DTD, XML Schema.
DTD - Rodzaj dokumentu definiujący formalną strukturę dokumentów XML. Zazwyczaj DTD definiuje każdy dopuszczalny element
dokumentu, jego zbiór atrybutów i dopuszczalne wartości. Celem DTD (Document Type Definition) jest definiowanie poprawnie zbudowanych bloków
dokumentu XML. Określa ono strukturę dokumentu i listę poprawnych elementów.
DTD (ang. Document Type Definition, definicja typu dokumentu) – rodzaj dokumentu definiujący formalną strukturę dokumentów XML, HTML,
XHTML lub innych pochodzących z rodziny SGML lub XML. Definicje DTD mogą być zawarte w pliku dokumentu, którego strukturę definiują,
przeważnie jednak zapisane są w osobnym pliku tekstowym, co pozwala na zastosowanie tego samego DTD dla wielu dokumentów.
DTD określa składnię konkretnej aplikacji XML lub SGML, np. XHTML, EAD, TEI lub innej, zdefiniowanej dla potrzeb użytkownika. Zazwyczaj
DTD definiuje każdy dopuszczalny element dokumentu, jego zbiór atrybutów i dopuszczalne wartości. DTD określa także zagnieżdżanie i wymagalność
poszczególnych elementów w dokumencie. W praktyce DTD przeważnie składa się z definicji ELEMENT i definicji ATTLIST.
W praktyce ze względu na małe możliwości obecnie DTD jest wypierane przez nowocześniejsze XML Schema, które posiada znacznie większe
możliwości oraz nie wymaga stosowania dodatkowej, nie-XML-owej składni.
XML Schema (Schemat XML, Schemat Rozszerzalnego Języka Znaczników) to opracowany przez W3C standard służący do definiowania
struktury dokumentu XML. XML Schema stanowi alternatywę dla DTD, przy czym posiada znacznie większe możliwości.
XML Schema jest strukturą XML, w odróżnieniu od DTD nie będącego częścią standardu XML. Dokumenty zawierające definicje XML Schema zapisuje
się zwykle w plikach z rozszerzeniem .xsd (od XML Schema Definition).
Specyfikacja XML Schema powstała w 2001 r. i składa się z 3 części:
•
Primer − Elementarz − nienormatywna część zawierająca podstawy tego języka
•
Structures − Struktury
•
Datatypes − Typy danych
51. Podaj istotę i przykłady systemów kryptograficznych z kluczem publicznym.
Klucz publiczny używany jest do zaszyfrowania informacji, klucz prywatny do jej odczytu. Ponieważ klucz prywatny jest w wyłącznym
posiadaniu adresata informacji, tylko on może ją odczytać. Natomiast klucz publiczny jest udostępniony każdemu, kto zechce zaszyfrować wiadomość.
Kryptografia bazująca na kluczu niesymetrycznym w wielu przypadkach zapewnia znacznie wyższy poziom bezpieczeństwa niż dotychczas stosowana
metoda z jednym, wspólnym dla komunikujących się stron kluczem (zobacz: kryptografia symetryczna).
Każdy z korespondentów dysponuje dwoma powiązanymi ze sobą kluczami, z których jeden jest kluczem prywatnym.
Informacje zakodowane kluczem publicznym mogą być odczytane jedynie przy zastosowaniu odpowiadającego mu klucza prywatnego. Proces
kodowania nie jest więc symetryczny - klucz stosowany do zaszyfrowania wiadomości nie pozwala na jej odszyfrowanie. Umożliwiają to specjalne
funkcje matematyczne, które łatwo jest przeprowadzić w jedną stronę, lecz niezwykle trudno odwrócić (zobacz opis algorytmu RSA).
Zalety i wady systemu: Sposób powiązania pary kluczy zapewnia, że: każdy użytkownik dysponujący kluczem publicznym innej osoby może wysłać jej
wiadomość będąc pewnym, że nikt poza nią nie będzie w stanie jej odczytać; nie ma konieczności przekazywania tajnego klucza; propagowany jest
jedynie klucz publiczny, bezużyteczny dla potencjalnego "włamywacza" ; nie można podszyć się pod właściciela klucza publicznego i w jego imieniu
wysyłać wiadomości (do wysyłania niezbędny jest bowiem klucz prywatny); nie można wyprzeć się wiadomości wysłanej i zaszyfrowanej własnym
kluczem prywatnym (posiada go tylko właściciel); każda modyfikacja wysłanej wiadomości przez osoby trzecie może zostać łatwo wykryta (wiadomości
nie będzie można odczytać kluczem publicznym); Z drugiej strony, niedogodnością kryptografii niesymetrycznej jest duża złożoność algorytmów, a co za
tym idzie, mała wydajność. Z tego powodu w nowoczesne rozwiązania kryptografię asymetryczną wykorzystują jedynie do ustanowienia bezpiecznego
kanału transmisji. Kanałem tym, już bez obaw o przechwycenie, przesyłany jest następnie tajny klucz szyfru symetrycznego. Służy on do zapewnienia
bezpieczeństwa transmisji szyfrowanej już w technologii kryptografii symetrycznej (szybszej i bardziej odpornej na ataki).
zastosowanie: - podpis elektroniczny - protokół SSL - SSH
13
52. Podaj określenie, zastosowanie i przykładowy algorytm podpisu elektronicznego.
Czym jest podpis elektroniczny - Podpis elektroniczny to plik dołączany do podpisywanego dokumentu. Podpis cyfrowy umożliwia weryfikację
osób komunikujących się przez Internet, co nie jest możliwe przy zastosowaniu podpisu odręcznego – dzięki temu oferuje niezaprzeczalność i może
być stosowany w administracji publicznej czy bankowości, a także w kontaktach biznesowych. Podpis cyfrowy opiera się na kryptografii czyli na
szyfrowaniu danych. Od strony informatycznej, podpisywanie cyfrowe polega na dodaniu do oryginalnego dokumentu dodatkowych danych.
Technologia podpisu cyfrowego jest powiązana z istnieniem pary kluczy – publicznego i prywatnego.
Klucz publiczny jest dostępny dla wszystkich użytkowników wymiany informacji. Dzięki niemu można go użyć do:
- szyfrowania danych do właściciela
- weryfikacji podpisu cyfrowego
Klucz prywatny powinien być bezwzględnie trzymany w tajemnicy, gdyż umożliwia on:
- podpisywanie danych
- rozszyfrowywanie informacji zaszyfrowanych kluczem publicznym
Przykłądowy algorytm: RSA
53. Jak można wykryć intruza w systemie komputerowym?
Metody wykrywania włamania:
1. Wykrywanie anomalii statystyczncyh:
Statystyczna miara i ocena zachowania uzytkowników
a) Na podstawie profili dotyczących działalności
b) Na podstawie progów niezależnych od uzytkowników.
2. Wykrywanie na podstawei reguł:
System definiuje reguły wskazujące na to czy użytkownik jest intruzem.
a) Ogólne reguły zachowania
b) Reguły zachowania konkretnego użytkownika
c) Reguły zachowania włamywacza.
Badania statystyczne definiują zachowania normalne.
Badania na podstawie reguł definiują zachowanie właściwe.
Badania statystyczne działają przeciwko maskaradzie.
Badania na podstawie reguł działają przeciwko naduzyciom.
Rekord audytu – służy do rejestracji aktywności użytkowników w systemie.
54. Jakie znamy grupy szkodliwych programów komputerowych?
Wirus – program lub fragment wrogiego wykonalnego kodu, który dołącza się, nadpisuje lub zamienia inny program w celu reprodukcji
samego siebie bez zgody użytkownika
Robaki (ang. worm) – złośliwe oprogramowanie podobne do wirusów, rozmnażające się tylko przez sieć. W przeciwieństwie do wirusów nie potrzebują
programu "żywiciela". Często powielają się pocztą elektroniczną.
Wabbit – program rezydentny nie powielający się przez sieć. Wynikiem jego działania jest jedna określona operacja, np. powielanie tego
samego pliku aż do wyczerpania zasobów pamięci komputera.
Trojan – nie rozmnaża się jak wirus, ale jego działanie jest równie szkodliwe. Ukrywa się pod nazwą lub w części pliku, który użytkownikowi wydaje się
pomocny. Oprócz właściwego działania pliku zgodnego z jego nazwą, trojan wykonuje operacje w tle szkodliwe dla użytkownika, np. otwiera port
komputera, przez który może być dokonany atak włamywacza (hakera).
Backdoor – przejmuje kontrolę nad zainfekowanym komputerem, umożliwiając wykonanie na nim czynności administracyjnych, łącznie z
usuwaniem i zapisem danych. Podobnie jak trojan, backdoor podszywa się pod pliki i programy, z których często korzysta użytkownik. Umożliwia
intruzom administrowanie systemem operacyjnym poprzez Internet. Wykonuje wtedy zadania wbrew wiedzy i woli ofiary.
Programy szpiegujące (ang. spyware) – oprogramowanie zbierające informacje o osobie fizycznej lub prawnej bez jej zgody, jak informacje o
odwiedzanych witrynach, hasła dostępowe itp. Występuje często jako dodatkowy i ukryty komponent większego programu, odporny na usuwanie i
ingerencję użytkownika. Programy szpiegujące mogą wykonywać działania bez wiedzy użytkownika - zmieniać wpisy do rejestru systemu operacyjnego
i ustawienia użytkownika. Program szpiegujący może pobierać i uruchamiać pliki pobrane z sieci.
Exploit – kod umożliwiający bezpośrednie włamanie do komputera ofiary, do dokonania zmian lub przejęcia kontroli wykorzystuje się lukę w
oprogramowaniu zainstalowanym na atakowanym komputerze. Exploity mogą być użyte w atakowaniu stron internetowych, których silniki oparte są na
językach skryptowych (zmiana treści lub przejęcie kontroli administracyjnej), systemy operacyjne (serwery i końcówki klienckie) lub aplikacje (pakiety
biurowe, przeglądarki internetowe lub inne oprogramowanie).
Rootkit – jedno z najniebezpieczniejszych narzędzi hackerskich. Ogólna zasada działania opiera się na maskowaniu obecności pewnych
uruchomionych programów lub procesów systemowych (z reguły służących hackerowi do administrowania zaatakowanym systemem). Rootkit zostaje
wkompilowany (w wypadku zainfekowanej instalacji) lub wstrzyknięty w istotne procedury systemowe, z reguły jest trudny do wykrycia z racji tego, że nie
występuje jako osobna aplikacja. Zainstalowanie rootkita jest najczęściej ostatnim krokiem po włamaniu do systemu, w którym prowadzona będzie
ukryta kradzież danych lub infiltracja.
Keylogger – Odczytuje i zapisuje wszystkie naciśnięcia im użytkownika. Dzięki temu adresy, kody, cenne informacje mogą dostać się w
niepowołane ręce. Pierwsze programowe keyloggery były widoczne w środowisku operacyjnym użytkownika. Teraz coraz częściej są procesami
niewidocznymi dla administratora. Istnieją też keyloggery występujące w postaci sprzętowej zamiast programowej.
Dialery – programy łączące się z siecią przez inny numer dostępowy niż wybrany przez użytkownika, najczęściej są to numery o początku 0-
700 lub numery zagraniczne. Dialery szkodzą tylko posiadaczom modemów telefonicznych analogowych i cyfrowych ISDN, występują głównie na
stronach o tematyce erotycznej.
14
55. Metody uwierzytelnienia użytkownika systemu komputerowego.
Metody oparte o cechy anatomii (linie papilarne, geometria twarzy, charakterystyka tęczówki oka i inne),
Metody oparte o cechy zachowania (dynamika podpisu odręcznego, dynamika podpisu na klawiaturze i inne),
Metody oparte o posiadanie (karty RFID (HID, Mifare itp.), karty SIM (telefon komórkowy, smartfon itp.), tokeny USB lub karty procesorowe (w
tym: Aladdin eToken, Rainbow iKey itp.), tokeny bez pamięci (Dallas iButton), dyski wymienne), metody oparte o wiedzę (hasła, hasła jednorazowe).
Hasła - Najczęstszym sposobem uwierzytelniania użytkowników systemu jest wymaganie podania hasła. Długość i rodzaj hasła są oczywiście
zależne od systemu (np. niektóre systemy przyjmują hasła o długości do8 znaków lub nie rozróżniają wielkich i małych liter) i od przyjętej polityki
bezpieczeństwa
Przedmioty - Oprócz lub obok uwierzytelniania za pomocą hasła stosuje się też uwierzytelnianie za pomocą specjalnych identyfikatorów (kart
chipowych). lub tokenów. Takie systemy również mają swoje wady. Przedmioty używane do identyfikacji w rzeczywistości nie potwierdzają tożsamości
danej osoby, lecz przedmiotu. Każdy, kto zdobędzie taki przedmiot będzie mógł podszywać się pod jego właściciela. Z tego też powodu takie systemy
są uzupełnieniem systemów opartych na hasłach.
Indywidualne cechy użytkownika - Do uwierzytelniania stosowane są też metody biometryczne wykorzystujące fakt unikatowości pewnych
cech fizycznych człowieka – takich jak linie papilarne, czy rysunek tęczówki oka lub też cech behawioralnych takich jak sposób mówienia, czy pisania.
Typowym przykładem uwierzytelniania na podstawie cech fizycznych użytkownika jest skanowanie linii papilarnych. Rozpoznawanie tej cechy dowiodło
już swoją skuteczność, wiarygodność i wygodę. Skanowanie obrazu odcisku palca zabiera mało czasu i wysiłków użytkownika oraz jest jedną z
najmniej inwazyjnych metod biometrycznych. Weryfikacja odcisku linii papilarnych jest również stosunkowo szybka.
56. Co to są systemy OLTP i OLAP i jakie są różnice w ich funkcjonowaniu i budowie.
Systemy informatyczne mozemy podzielic na transakcyjne(OLTP) i analityczne (OLAP). Generalnie mozna przyjac, ze systemy OLTP
dostarczaja danych zrodlowych do hurtowni danych, natomiast systemy OLAP pomagaja w ich analizie.
- OLTP (On-line Transaction Processing) charakteryzuje sie duza iloscia prostych transakcji zapisu i odczytu. Glowny nacisk kladziony jest na
zachowanie integralnosci danych w srodowisku wielodostepowym oraz na efektywnosc mierzona liczba transakcji w danej jednostce czasu.
- OLAP (On-line Analytical Processing) charakteryzuje sie natomiast stosunkowo nielicznymi, ale za to zlozonymi transakcjami odczytu. Miara
efektywnosci jest czas odpowiedzi. Powszechnie wykorzystuje sie go w technikach zwiazanych z Data Mining'iem.
OLAP - Dane zorientowane tematycznie, - Duża wielkość - od kilkudziesięciu GB do kilku TB, - Przechowywane są dane historyczne, -
Zdenormalizowana struktura danych (kilka tabel – wiele kolumn w tabeli), - Złożone zapytania, - Dane zagregowane
OLTP - Dane zorientowane procesowo, Mała wielkość - kilkadziesiąt MB do kilku GB, Przechowywane są dane teraźniejsze, Znormalizowana struktura
danych (wiele tabel, kilka kolumn w tabeli), Proste zapytania, Dane jednostkowe
57. Przedstaw modele danych w systemach OLAP.
Model relacyjny (ROLAP) - implementowana w postaci tabel, których schemat posiada najczęściej strukturę:
schemat gwiazdy (ang. starschema), schemat płatka śniegu (ang.snowflake schema), schemat konstelacji faktów (ang.fact constellation schema)
schemat gwiazda-płatek śniegu (ang.starflake schema),
Model wielowymiarowy (MOLAP, MDOLAP) - do przechowywania danych wykorzystuje się wielowymiarowe tablice, popularnie zwane
kostkami (ang. multidimensional arrays, datacubes). Tablice te zawierają wstępnie przetworzone (m.in. zagregowane) dane pochodzące z wielu źródeł.
Model hybrydowy (HOLAP)
Serwery ROLAP bazują na relacyjnym modelu danych. Powinny zapewniac optymalizację denormalizacji relacji (denormalization), tworzenia
podsumowan (summarization), tworzenie podziału (partitioning).
Serwery MOLAP bazują na wielowymiarowym modelu danych. Technologia macierzy gęestych i rzadkich: zapamiętywanie macierzy gęstych wprost, z
macierzy rzadkich “usuwane są puste komórek i dokonywana jest kompresja pozostałej informacji. Zapamiętywanie zagregowanych podkostek. Brak
standardów modelu wielowymiarowego.
Serwery HOLAP Systemy hybrydowe wspierające dwa modele danych. Serwer parametryzowany przez użytkownika/administratora systemu.
58. Omów operacje analityczne realizowane przez systemy OLAP
Zwijanie (agregacja, konsolidacja, aggregation, consolidation, roll-up) polega na oglądaniu danych ogólniejszych, czyli bardziej
zagregowanych (np. podsumowania robione względem miesięcy, zamiast dni). Operacja ta redukuje ilość wyświetlanych informacji, zastępując wiele
wartości jedną. Innym przykładem operacji zwijania jest wprowadzenie podsumowania.
Rozwijanie (roll-down, drill-down, drill through) jest operacją odwrotną do poprzedniej. operację tę stosujemy, by z wartości podsumowania
wydobyć jego szczegóły.
Selekcja (Slicing) wycinanie fragmentu danych poprzez określenie warunków na wartościach wymiarów oraz listy wymiarów branych pod
uwage w raporcie. wynikiem jest podkostka. Wartości wymiarów nieobecnych w tabeli wynikowej są rzutowane (agregowane).
Filtrowanie (screening, selection, filtering) oznacza odrzucenie niektórych danych wchodzących w skład agregacji, np. poprzez ograniczenie
wartości miar lub atrybutów wymiarów (nie dotyczy to odrzucania całych wymiarów, a jedynie ograniczenie się np. tylko do pewnego przedziału czasu).
Zawężanie (scoping) polega na ograniczeniu danych branych pod uwagę w dalszej analizie. Jest to operacja podobna do filtrowania czy
selekcji, jednak realizowane na wcześniejszym poziomie operacyjnym, w fazie definiowania podkostek (hurtowni tematycznych niższego poziomu). W
praktyce zawężanie działa jak automatyczne dodanie warunków do wszystkich dalszych operacji na kostkach danych. Przydatne zwłaszcza w sytuacji,
gdy chcemy wykonać wiele, często się powtarzających operacji analitycznych, zawsze na tym samym (w sensie warunków) podzbiorze danych.
Obracanie (pivot, rotate) tponiżej) i powieleniu wartości jednego z wymiarów w każdej grupie definio wspólna nazwa wielu różnych rodzajów
operacji na wymiarach danych użytych w raporcie. Najprostsza jej postać to zamiana miejscami kolumn i wierszy tabeli (transpozycja).
Bardziej złożony przypadek to przeniesienie pewnego wymiaru z kolumn do wierszy (lub odwrotnie); ma to znaczenie w przypadku, gdy dwuwymiarową
tabelę w raporcie tworzą więcej, niż dwa wymiary. Można to osiągnąć poprzez przedstawienie kilku wymiarów na różnych poziomach jednej osi tabeli
(por. rysunek owanej przez drugi. Np. wymiar czas i sklep w poniższym przykładzie znalazły się na jednej osi, poprzez powielenie wszystkich sklepów w
każdym roku. Zauważmy, że takie przeniesienie wymiaru nie powoduje zmiany wartości komórek tabeli, a jedynie jej przeorganizowanie (zmianę
kolejności komórek).
15
59. Omów rodzaje systemów OLAP.
Wielowymiarowe - Tradycyjne systemy OLAP są często nazywane wielowymiarowymi OLAP (ang. multidimensional OLAP lub MOLAP), gdyż
przekładają transakcje na wielowymiarowe widoki. Dane są organizowane w postaci wielowymiarowych kostek.
Systemy relacyjne
Systemy ROLAP przechowują dane (często w postaci źródłowej) oraz tabele wymiarów w relacyjnych bazach danych. W tym rozwiązaniu
również można wykorzystać dodatkowe tabele do przechowywania zagregowanych informacji. Wymaga to jednak większego nakładu na proces ETL.
Systemy hybrydowe - Wśród dostawców rozwiązań nie ma jednoznacznych ustaleń definicyjnych, określających co kwalifikuje się jako
hybrydowy OLAP – poza tym, że baza danych rozdziela dane pomiędzy podsystem relacyjny i specjalizowany, łącząc tym samym cechy OLAP
wielowymiarowego i relacyjnego.
60. Omów funkcje i budowę warstwy ETL.
Warstwa ETL extraction, transformation, loading) oznacza ekstrakcję, transformację i ładowanie danych. Jest to oprogramowanie słuzace do
zasilania hurtowni danych informacjami, danymi z systemów źródłowych. Przygotowuje dane do zapełniania hurtowni wprowadza najczęściej pewne
ujednolicenie formatu danych
Etl jest procesem, w skład którego wchodzą: ekstrakcja danych ze źródła operacyjnego danych (np. SAP, PeopleSoft CRM, inny system
ERP). Proces ten determinuje bazowe źródła dla hurtowni danych. transformacja danych - etap ten może zawierać czyszczenie danych, filtrowanie oraz
implementację reguł biznesowych. ładowanie danych do hurtowni danych bądź bazy danych będącej repozytorium danych dla aplikacji raportujących.
Bardzo często proces ETL nazywany jest także procesem integracji danych, natomiast narzędzie ETL znane jest jako platforma integracyjna.
61. Przedstaw własności podstawowych modeli hurtowni danych.
Projektowanie hurtowni danych polega na stworzeniu modelu pojęciowego, logicznego i fizycznego hurtowni. Modelowanie na tych trzech
poziomach dotyczy wszystkich elementów hurtowni danych - centralnej hurtowni, procesów ETL, hurtowni tematycznych itp. Poziomy te można
scharakteryzować następująco: Model pojęciowy to opis struktury, zawartości i przeznaczenia hurtowni danych przeprowadzony na poziomie
pojęciowym, tzn. z punktu widzenia celów biznesowych, przy użyciu nazw z języka naturalnego specjalistycznego, właściwego dla danej organizacji.
Model pojęciowy może np. określić, że konieczne jest gromadzenie pewnych informacji o klientach, definiuje też pojęcie "klient" i wskazuje na
biznesowe cele zaplanowanych analiz.
Model logiczny to opis odwołujący się do elementów logicznych baz danych i procesów hurtowni, a więc kolumn, tablic, relacji itp. Opis na
poziomie logicznym przypomina typowy projekt bazy danych wykonany np. w języku UML.
Model fizyczny to opis parametrów mających na celu optymalizację działania hurtowni danych, takich jak indeksowanie, partycjonowanie,
kopiowanie danych, a także takich elementów, jak sprzęt komputerowy, sieć, systemy archiwizujące, rozmieszczenie poszczególnych zasobów
logicznych, itp.
Architektura scentralizowana to najczęściej stosowany schemat dużych hurtowni danych. warstwa ODS jest opcjonalna
Architektura federacyjna stosowana jest w przypadku, gdy z różnych powodów nie może powstać centralna, wielka hurtownia danych,
gromadząca wszystkie dane. Wtedy miejscem przechowywania danych są magazyny danych operacyjnych, a hurtownia istnieje jedynie wirtualnie - jako
wspólny schemat logiczny i pojęciowy (czyli jako niezmaterializowana perspektywa). Zapytania kierowane do hurtowni muszą być automatycznie
przetłumaczane na język danych w ODS i policzone w sposób rozproszony. Wadą tego rozwiązania jest mniejsza wydajność, natomiast może się ono
okazać wystarczające, jeśli hurtownie tematyczne (zmaterializowane ze względu na wydajność) obsługują wszystkie wymagane funkcje analityczne.
Architektura warstwowa to odmiana jednej z poprzednich dwóch architektur, w których budujemy wiele warstw hurtowni tematycznych
zawierających coraz wyższe stopnie agregacji danych. Dane z kolejnych warstw są obliczane na podstawie poprzednich. Ze względu na wydajność,
wszystkie warstwy są zmaterializowane. Zaletą odpowiednio zaprojektowanej architektury warstwowej jest optymalizacja wielkości danych w
hurtowniach tematycznych (możliwość szybkiego obliczenia mniej szczegółowych zestawień, przy jednoczesnym pozostawieniu możliwości sięgnięcia
po bardziej szczegółowe, ale również zagregowane, dane w poprzedniej warstwie), a także skrócenie czasu aktualizacji (dzięki większemu rozproszeniu
obliczeń i unikaniu redundancji).
62. Przedstawić ideę wybranego algorytmu metaheurystycznego i jego zastosowanie w optymalizacji.
Heurystyka - w informatyce metoda znajdowania rozwiązań, dla której nie ma gwarancji znalezienia rozwiązania optymalnego, a często nawet
prawidłowego. Rozwiązań tych używa się np. wtedy, gdy pełny algorytm jest z przyczyn technicznych zbyt kosztowny lub gdy jest nieznany (np. przy
przewidywaniu pogody lub przy wykrywaniu niektórych zagrożeń komputerowych, takich jak wirusy lub robaki). Metody używa się też często do
znajdowania rozwiązań przybliżonych, na podstawie których później wylicza się ostateczny rezultat pełnym algorytmem.
Metaheurystyka - ramy i zasady generowania reguł dla konkretnych algorytmów heurystycznych. W ramach jednej metaheurystyki można
zawsze zaproponować przynajmniej kilka algorytmów heurystycznych, będących wariantami pewnego ogólnego podejścia. Dlatego, używając pojęć
programistycznych, określamy te algorytmy jako instancje metaheurystyk.
Przykład : Strategia prostego przeszukiwania lokalnego – generujemy rozwiązanie startowe, następnie generujemy rozwiązania sąsiadujące
(definiujemy sąsiedztwo). Jeśli żaden z sąsiadów nie przedstawia lepszego rozwiązania to kończymy. W przeciwnym przypadku:
a) wybieramy najlepszego z sąsiadów
b) generujemy sąsiadów i wybieramy pierwszego lepszego od aktualnego rozwiązania
Algorytm zachłanny – algorytm, który wcelu wyznaczenia rozwiązania w każdym kroku dokonuje
zachłannego (najlepiej rokującego w danym momencie) wyboru rozwiązania częściowego. Innymi
słowy algorytm zachłanny nie patrzy czy w kolejnych krokach jest sens wykonywać dane działanie,
dokonuje decyzji lokalnie optymalnej.
16
63. Znaczenie funkcji dolnego ograniczenia w przeglądzie zbioru dyskretnych rozwiązań, opartym na
metodzie „podziału i ograniczeń”.
W metodzie podziału i ograniczeń zbiór wszystkich dopuszczalnych rozwiązań danego problemu rozbijany jest na podzbiory - każdy taki
podzbiór odpowiada problemowi o rozmiarze mniejszym niż problem wyjściowy (podproblemowi) - rozwiązywany jest on na jeden z następujących
sposobów (kryterium jest wartość funkcji celu):
poprzez relaksację - upraszczamy problem, rozwiązujemy go, sprawdzamy czy rozwiązanie jest także rozwiązaniem problemu nie
zrelaksowanego. Jeśli jest to mamy rozwiązanie optymalne. Jeśli nie to rozwiązanie to staje się dolnym ograniczeniem problemu;
bezpośrednio - przeglądamy wszystkie rozwiązania problemu;
pośrednio - stosowane gdy dolne ograniczenie jest większe od górnego ograniczenia (zazwyczaj wartość funkcji celu najlepszego dotychczas
znalezionego rozwiązania.) całego problemu - eliminuje się wtedy taki problem z rozważań
przez podział - gdy nie da się zastosować powyższych metod, dzieli się problem na rozłączne problemy potomne i powtarza całą operację
64. Podać definicję sieci Petriego i objaśnić znaczenie elementów sieci w modelowaniu procesów
dyskretnych.
Sieć Petriego – matematyczna reprezentacja dyskretnych systemów rozproszonych. Sieć Petriego w najprostszej wersji składa się z "miejsc",
"tranzycji" oraz krawędzi skierowanych. Taką siecią można jedynie opisać układ jako statyczne połączenie możliwych do osiągnięcia stanów. Aby opisać
konkretny stan układu, potrzebne są "żetony", które można przemieszczać pomiędzy miejscami poprzez przejścia, po krawędziach grafu. Tradycyjnie
miejsce oznacza się okręgiem, w którym można umieścić żeton prezentowany przez koło. W jednym miejscu może znajdować się dowolna, nieujemna
liczba żetonów. Tranzycje oznacza się prostokątami lub kreskami a krawędzie to strzałki. Krawędzie mogą mieć wagi większe lub równe 1. Waga
określa ile dokładnie żetonów przechodzi po krawędzi.
Podsumowanie: zastosowania sieci Petriego w Informatyce obejmują: jednoznaczny opis semantyki (np. specyfikacji programu lub protokołu
komunikacyjnego), makietowanie (symulacja wykonania sieci), analizę właściwości, weryfikacja (dowodzenie) poprawności programów.
65. Przedstawić w terminach czasowych sieci Petriego synchronizację procesów dyskretnych w
dostępie do wspólnego zasobu