background image

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. 
 

 
 

background image

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). 
 
 
 
 
 
 

background image

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 
 

background image

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 

background image

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. 

background image

 
 

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  

 
 
 
 
 
 
 
 

background image

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; 
 
 
 

background image

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) 
 

background image

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. 
 
 

background image

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. 
 

background image

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. 

background image

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 

background image

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. 
 
 

background image

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). 

background image

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. 
  
 

background image

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