Szkolenie Agile Project Management!
Zdobądź certyfikat Agile od Arie van Bennekum, współautora Manifestu Agile!
2 dniowe szkolenie z zakresu zarządzania projektami:
• Arie van Bennekum, jako Twój trener i moderator
• Wiedza z zakresu pełnego cyklu projektowego z przy wykorzystaniu technik Agile takich jak Scrum,
DSDM, DevOps, eXtreme Programming wraz z odniesieniem do Prince-2
• Całościowa przekrojowa wiedza o Agile, cyklu życia projektu, produktach, rolach, technikach,
testowaniu, ramach czasowych, czynnikach powodzenia, najlepszych praktykach, ROI
• 2 dni ciekawych dyskusji, wymiany wiedzy i dobrej zabawy
Projekty realizowane szybciej i bardziej elastycznie
Agile Project Management to metodyka zarzadzania projektami. Wytwarzanie oprogramowania
w tej metodyce pozwala organizacjom na większą wydajność i elastyczne podejście
do wymagań. Projekty mogą rozpoczynać się szybciej przy jednoczesnym zachowaniu odpowiedniej
elastyczności w dokonywaniu zmian. Wykorzystanie Agile pozwala
na dostarczenie najbardziej priorytetowych wymagań w krótkim okresie czasu, dzięki czemu szybciej mogą
być realizowane założenia biznesowe.
Szkolenie skierowane jest do:
• Sponsorów projektu
• Kierowników projektu
• Scrum Masterów
• Członków zespołów projektowych
• Osób odpowiedzialnych za działania operacyjne
• Osób odpowiedzialnych za działy IT
Więcej informacji i zapisy na:
http://www.cegeka.com/en/events/agile-training-poland/
11 i 12 września 2014
Czas trwania: 2 dni
Język: angielski
Lokalizacja: Warszawa
• do 31 lipca promocyjna cena - zapisz się już teraz!
• przy zapisie 3 osób 10% zniżki!
• przy zapisie 4 osób piąta uczestniczy za darmo!
Ward Bryon
Agile Project Manager
Arie van Bennekum
Współautor Manifestu Agile
i przewodniczący
Agile Consortium International
Wprowadzenie do HiVAT
High Volume Automated Testing
Jacek Okrojek
Chciałbym przedstawić czytelnikom ideę HighVolume
AutomatedTesting (HiVAT) i kilka prostych jej przykładów.
Techniki HiVAT wykorzystywane są w praktyce od
dawna ale często pomijają je popularne kursy testowania
oprogramowania. Mam nadzieję, że artykuł zainspiruje
czytelników do wzbogacenia swoich strategii testów.
Technologie out of the box w .NET
Paweł Górka
Od wieków ludzie dążą do ulepszania świata.
Każdy chce żyć wygodniej, pracując przy tym szybciej
i wydajniej. Nie inaczej jest w programowaniu. Firmy
wytwarzające oprogramowanie chcą zaspokoić coraz większe
wymagania klientów pozostając przy tym konkurencyjni pod
względem nie tylko jakości ale także szybkości wykonania
kolejnych projektów. Dlatego przed rozpoczęciem realizacji
zlecenia warto zadać sobie pytanie „jaką technologię wybrać
aby optymalnie zrealizować projekt” nie zapominając przy tym
o wygodzie pracy swoich programistów...
NOWE Bezpieczeństwo w sieci
– jak zostać specjalistą ds.
bezpieczeństwa IT
Ostatnie miejsca z 80 % dofinansowaniem z UE na
certyfikowane szkolenia Akademii EITCA IS Bezpieczeństwo
Informatyczne
Tworzenie zapytań SQL przy użyciu
refleksji
Marek Łabędź
Może się zdarzyć, że przy połączeniach do bazy nie będziemy
chcieli użyć mapowania obiektoworelacyjnego (ORM), tylko
będziemy chcieli skorzystać z mechanizmu JdbcTemplate
dostarczonego przez Spring.W konfiguracji konfigurujemy
bean DataSource i na jego podstawie tworzymy obiekt
JdbcTemplate.
3 SEZON Z TECHNOLOGIĄ
TECHCAMP
Joanna Bucior
Gdyby w tym evencie chodziło o liczby wystarczyłoby zacząć
wyliczankę – 8 odcinków, 2929 rejestracji, ponad 1,5 tys.
uczestników, 2025 minut prelekcji i 31 prelegentów.Ale
statystyki nigdy nie były celem samym w sobie. Założeniem
TechCampu było skupienie wokół idei IT aktywnej
społeczności. A zapracować na nią nie jest łatwo. Zapraszam
za kulisy.
12
18
8
4
Software Developer’s Journal
jest wydawany przez
NPRACA Sp. z o.o.
Redakcja: sdjpl@sdjournal.pl
Adres korespondencyjny:
NPRACA Spółka z o.o.
ul. 3 Maja 46, 72-200 Nowogard, Polska
Oddział w Warszawie:
ul. Postępu 17 D, 02-676 Warszawa, Polska
www.sdjournal.pl
Facebook: https://www.facebook.com/SoftwareDevelopersJournal
Redakcja dokłada wszelkich starań, by publikowane w piśmie informacje i
programy były poprawne, jednakże nie bierze odpowiedzialności za efekty
wykorzystania ich; nie gwarantuje także poprawnego działania programów
shareware, freeware i public domain.
Wszystkie znaki firmowe zawarte w piśmie są własności odpowiednich firm.
Zostały użyte wyłącznie w celach informacyjnych.
Osoby zainteresowane wspópracą prosimy o kontakt:
sdjpl@sdjournal.pl
Skład i łamanie / projekt okładki:
Digital Concept
www.digitalconcept.pl
admin@digitalconcept.pl
21
REKLAMA
Jeżeli jesteś zainteresowany/a
reklamą swoich produktów w naszym
magazynie
Jeżeli jesteś zainteresowany/a
wypromowaniem swojej marki wśród
specjalistów IT
Jeżeli szukasz klientów lub
pracowników
Zareklamuj się u nas!
Posiadamy bazę 90 tysięcy
specjalistów z różnych
działów IT!
W celu uzyskania oferty
reklamowej skontaktuj się z
nami: sdjpl@sdjournal.pl
tel. 799 46 34 76
www.sdjournal.pl
4/20144
K
lasyczne techniki testowania oprogramowania
mają za zadanie zminimalizować liczbę przypad-
ków testowych. Zwykle dzieje się to poprzez
wybranie reprezentatywnych danych wejściowych bądź
scenariuszy, dla których zachowanie aplikacji powinno
być podobne. Testowana aplikacja może mieć jednak
problemu z pewnym specyficznym przypadkiem. Na
przykład, może popełniać błędy zaokrąglania, które są
zwykle zbyt małe, aby je zwykle zauważyć ale widoczne
co pewien czasu dla specyficznych danych. Podobna sy-
tuacja może dotyczyć scenariuszy testowych. Błąd mo-
że być widoczny tylko gdy scenariusze wykonają się w
odpowiedniej kolejności. Wykrycie tego rodzaju pro-
blemów często wymaga przeprowadzenia dużo więk-
szej ilości testów niż wynika to z klasycznej analizy. Po-
móc w tym może HiVAT.
Robocza definicja HiVAT mówi, iż jest to rodzina tech-
nik testowania skupiająca zainteresowanie testera na po-
tencjalnie podejrzanych wynikach testów, podczas gdy
generowanie, wykonywanie i interpretowanie olbrzymiej
liczby testów odbywa się w sposób programowalny. Dzię-
ki temu możliwe jest wykonanie olbrzymiej liczby testów.
Dużą uwagę HiVAT w ostatnich latach poświęcili Do-
ug Hoffman oraz Cem Kaner z grupą studentów Florida
Tech. Jak sami podkreślają sama idea była wykorzysty-
wana już wcześniej i to wielu niezależnych organizacjach.
Kaner w artykule An Overview of High Volume Auto-
mated Testing (Kaner, 2013) podał i usystematyzował
przykłady dwanastu technik, jakie kryją się pod tym po-
jęciem. Techniki te pogrupował w następujący sposób:
• testy skupiające się na danych wejściowych,
• testy wykorzystujące istniejące narzędzia lub wcze-
śniej przygotowane scenariusze,
• testy wykorzystujące możliwość automatycznej we-
ryfikacji wyniku.
Bardzo często implementacja technik związanych
z dwiema pierwszymi grupami jest dość prosta i nie
wymaga budowy zaawansowanych rozwiązań. Ostat-
nia z grup opiera się o bardziej skomplikowane roz-
wiązania, w których cały proces generowania, prze-
Wprowadzenie do HiVAT
High Volume Automated Testing
Chciałbym przedstawić czytelnikom ideę High Volume Automated
Testing (HiVAT) i kilka prostych jej przykładów. Techniki HiVAT
wykorzystywane są w praktyce od dawna ale często pomijają je
popularne kursy testowania oprogramowania. Mam nadzieję, że
artykuł zainspiruje czytelników do wzbogacenia swoich strategii
testów.
Rysunek 1. Skanowanie luk bezpieczeństwa
przeprowadzone przez soapUI
DOWIESZ SIĘ...
• Co kryje się pod nazwą HiVAT
• Jak w praktyce wykorzystać HiVAT
POWINIENEŚ WIEDZIEĆ...
• Jak wygląda cykl życia produktu.
• Jakie klasyczne techniki wykorzystuje się do testowa-
nia oprogramowania.
www.sdjournal.pl 5
High Volume Automated Testing
treści. Rysunek 1 przedstawia przykład tego typu te-
stów przeprowadzanych przez aplikację soapUI.
Inną często spotykaną realizacją testów skupionych
na danych jest testowanie sterowane danymi (ang.
Data Driven Testing). W takim przypadku koniecz-
ne jest tylko stworzenie narzędzia, zwykle prostego
skryptu, generującego odpowiednio duży zbiór da-
nych wejściowych. O ile jest to możliwe można oczy-
wiści wygenerować wyniki i pozwolić narzędziu na ich
weryfikację. Możliwości niektórych narzędzi pozwala-
ją łatwo generować dane przed każdym z testów.
W przykładzie powyżej skrypt Groovy generuje loso-
we wartości z zadanego przedziału. Narzędzie samo jest
w stanie sprawdzić czy wysłane zapytanie nie spowodo-
wała awarii systemu lub nie zwróciło informacji o wyjąt-
ku (Soap Fault). Wykorzystując skrypt Groovy w prosty
sposób możemy też dodać automatyczne sprawdzania
poprawności danych przesłanych w odpowiedzi.
Przy generowaniu pseudo-losowych danych autorzy
opracowań na temat HiVAT zalecają by wykorzystać
ziarno (ang. seed) dające możliwość odtworzenia se-
kwencji danych. Pozwala to na przeprowadzanie testów
w powtarzalny sposób a przez to łatwiejsze poszukiwa-
nie przyczyn błędów.
Long-Sequence Regression Testing
Techniką należącą do drugiej grupy w klasyfikacji Kanera
jest technika Long-Sequence RegressionTesting (LSRT). Pole-
ga ona na wykonywaniu istniejących testów regresyjnych
prowadzania i oceny testów możemy powierzyć na-
rzędziu.
Testy skupiające się na danych
wejściowych
Tego rodzaju testy są szczególnie pomocne w przypad-
ku testowania dużych ilości kombinacji wejściowych, błę-
dów związanych z zależnościami czasowymi, uszkodze-
niem danych lub problemami z wykorzystaniem pamięci
(Cem Kaner, Carol Oliver & Mark Fioravanti, 2013). O
ile przygotowanie dużego zbióru danych wejściowych
i automatyczne wykonanie scenariuszy często nie jest
problemem, to ocena wyników testów nie jest już tak
prosta. Autorzy opracowań sugerują by w takich przy-
padkach ograniczyć się do weryfikacji czy testowany
system nie zaraportował błędu lub nie uległ awarii. Mo-
żemy również sprawdzić czy przeszedł do odpowiednie-
go stanu. Automatyczne wykrycie takiego zdarzenia jest
zadaniem prostrzym od kompletnego sprawdzenia wyni-
ków testu ale często wystarczającym do wykrycia pro-
blemu w działaniu aplikacji.
Dobrym przykładem zastosowania testów HiVAT
skupionych na danych wejściowych są testy bezpieczeń-
stwa aplikacji. Oprogramowanie próbujące pokonać za-
bezpieczenia aplikacji dysponuje zbiorem potencjalnie
niebezpiecznych danych wejściowych. Wykorzystując
te dane wykonuje dużą liczbę testów i sprawdza czy
odpowiedzi systemu nie ujawniają wrażliwych danych
lub też czy nie udało się dotrzeć do nieautoryzowanych
Rysunek 2. Generowanie danych w soapUI
4/20146
w losowej kolejności przez możliwie długi okres czasu.
Podejście to ma zredukować ryzyko nie wykrycia błędów
związanych ze specyficzną kombinacją operacji wykony-
wanych przez system. Zaleca się by do testów LSRT wy-
brać tylko testy pozytywne. Zalecenie to bazuje na fakcie,
iż zwykle użytkownik będzie wykonywał poprawne akcje i
wśród takich kombinacji poszukiwanie potencjalnych pro-
blemów jest również bardziej opłacalne. Kolejnym wa-
runkiem niezbędnym do implementacji tej techniki jest
niezależność testów a więc możliwość wykonania ich w
dowolnej kolejności.
Jeśli chodzi o implementacje tej techniki z pomocą rów-
nież przychodzą nam narzędzia. JUnit oraz TestNG do-
myślnie nie określają kolejności w jakiej będą wykonywa-
ne testy. Praktyka pokazuje, że kolejność testów w danym
środowisku jest stała o ile testy uruchamiane są sekwencyj-
nie. Przy odrobinie dodatkowej pracy możliwa jest jednak
w obu narzędziach zmiana domyślnej kolejności testów. W
JUnit możliwe jest to poprzez adnotację @FixMethodOrder
w TestNG poprzez mechanizm priorytetów.
Automatyczna weryfikacja wyników
Ciekawym przykładem zastawania technik wykorzystują-
cych możliwość automatycznej weryfikacji wyników jest
scenariusz, w którym nie znamy dokładnie reguł bizne-
sowych testowanego systemu. Często ma to miejsce gdy
rozwijamy system stworzony przez innego dostawcę.
Wykorzystując duży zbiór danych wejściowych może-
my dokonać testów na systemie referencyjnym (np. po-
przedniej wersji systemu), zapisać uzyskane odpowiedzi
a następnie wykorzystać uzyskane dane przy weryfikacji
testowanego systemu (nowej wersji).
W ramach Center for Software Testing Education and Re-
search powstała referencyjna implementacje architektury,
którą można wykorzystać w takiej właśnie sytuacji (Hi-
VAT). Rysunek 3 przedstawia schemat logiczny rozwiąza-
nia Functional EquivalenceTester 1.0.
W prezentowanym rozwiązaniu użytkownik (tester) wy-
korzystuje GUI by określić liczbę testów oraz listę wzor-
ców wykorzystywanych do generowania testów. W opar-
ciu o reguły zapisane w Knowledge Expert i wybrane przez
użytkownika wzorce, Test Generator tworzy wymagane
przypadki testowe. Dzięki interfejsom do testowanego sys-
temu (SUT Interface) i implementacji referencyjnej (Oracle
Interface) możliwe jest równoległe wykonanie testów oraz
porównanie otrzymanych wyników. Informacje o rezulta-
cie porównania są zapisywane do pliku wynikowego.
HiVAT a testy obciążeniowe
Myślę, że pewna grupa czytelników może odnieść wraże-
nie, iż ryzyka, które można zminimalizować dzięki HiVAT
(szczególnie jeśli chodzi o dwie pierwsze grupy rozwią-
zań) można z powodzeniem zminimalizować przez wyko-
nanie testów wydajnościowych. Diabeł tkwi w szczegó-
Rysunek 3. Budowa Functional Equivalence Tester 1.0
www.sdjournal.pl 7
High Volume Automated Testing
łach i to stwierdzenie może być prawdziwe w zależności
od strategii testów wydajnościowych i ich implementacji.
Jeśli poświęcimy dużą uwagę analizie i przygotowaniu da-
nych wejściowych a także stworzeniu różnorodnych sce-
nariuszy możemy rzeczywiście wykryć podobne klasy błę-
dów. Nie zawsze jednak faza testów obciążeniowych jest
konieczna w projekcie mimo, że oczekiwania co do nieza-
wodności systemu od strony funkcjonalnej są bardzo wy-
sokie np. przetwarzania niewielkiej liczbę transakcji mię-
dzybankowych na duże sumy. W takich wypadkach warto
włączyć techniki HiVAT do strategii testów.
Podsumowanie
Techniki HiVAT mogą być ciekawym uzupełnieniem kla-
sycznych technik testowania oprogramowania. W za-
leżności od kontekstu projektu mogą się one wydawać
mniej lub bardziej potrzebne. Decyzja o ich zastosowa-
niu jak zawsze będzie wynikiem relacji kosztów awarii
do kosztów jej wykrycia. Czytelnikom zainteresowanym
tematem polecam zapoznanie się z materiałami cytowa-
nymi w tym artykule a także własne eksperymenty.
JACEK OKROJEK
Tester, koordynator i kierownik testów z wie-
loletnim doświadczeniem w testowaniu sys-
temów wysokiej dostępności. Jako konsul-
tant do spraw zapewnienia jakości prowadził i
uczestniczył w wielu złożonych projektach dla
klientów z sektora usług medycznych oraz te-
lekomunikacyjnych, a obecnie bankowości
inwestycyjnej. Pracował w obszarze testów in-
tegracyjnych, systemowych oraz akceptacyj-
nych. Autor rozwiązań automatyzujących pro-
ces testowania oprogramowania doceniają-
cy wagę testowania eksploracyjnego. Entu-
zjasta dynamicznych metod wytwarzania i te-
stowania oprogramowania.
Bibliografia
Cem Kaner, Carol Oliver & Mark Fioravanti. (2013,
April 30). How to Actually DO High Volume Auto-
mated Testing. Retrieved from Cem Kaner, J.D.,
Ph.D.: http://kaner.com/pdfs/StarHiVAT2013Kane-
rOliverFioravantiFinal.pdf
HiVAT. (n.d.). Retrieved from Testing Education:
http://testingeducation.org/wordpress/?page_
id=107
Kaner, C. (2013, Jan 14). An Overview of High Vo-
lume Automated Testing. Retrieved from Cem Ka-
ner, J.D., Ph.D.: http://kaner.com/?p=278
REKLAMA
4/20148
A
nalizując wszystkie „za i przeciw” musimy
wziąć pod uwagę wymagania które stawia nam
projekt i często dochodzimy do wniosku iż
najlepszym rozwiązaniem jest technologia Microsoft
.NET. Dlaczego? Po co wymyślać koło od nowa, sko-
ro platforma .NET udostępnia nam masę rozwiązań
gotowych do użycia, które codziennie wykorzystuje (i
testuje) miliony osób.
BEZPIECZEŃSTWO
To chyba najważniejszy aspekt aplikacji. Nie powinien
dziwić więc fakt, iż Microsoft postanowił udostępnić
gotowe mechanizmy, szczególnie dla aplikacji webo-
wych. Zaczynając więc od najstarszych warto wspo-
mnieć o ASP.net Membership & Role provider. Jest to
zestaw interface’ów, oraz gotowych implementacji do
zarządzania kontami użytkowników oraz ich upraw-
nieniami. Dlatego już na wstępie tworzenia projektu
programista ma do dyspozycji gotową funkcjonalność
rejestracji, logowania (wraz z pamiętaniem konta),
przypominanie i resetowanie hasła, czy zarządzanie
rolami. Co więcej polityka bezpieczeństwa (jak np.
długość i skomplikowanie hasła, automatyczne wylo-
gowanie, blokowanie konta po kilkukrotnym błędnym
logowaniu itp.) jest dostępna z poziomu konfiguracji
a nie aplikacji, więc zarządzanie nią można spokojnie
wydelegować do administratora. Aby skorzystać z lo-
gowania domenowego w zasadzie skonfigurować inny
provider w konfiguracji aplikacji.
W dobie dzisiejszego Internetu mnogość posiadanych
kont (a szczególnie haseł) popchnęła za sobą potrzebę
zminimalizowania ich ilości. To zadanie ułatwiło maso-
we spopularyzowanie m.in. portali społecznościowych
takich jak Facebook, Twitter oraz witryn zaufanych kor-
poracji takich jak Google czy Microsoft które mogą peł-
nić rolę „poświadczyciela” wierzytelności swoich użyt-
kowników.
OAuth – bo o nim mowa – jest otwartym standardem
autoryzacyjnym pozwalającym jednej witrynie interneto-
wej udostępniać prywatne zasoby innej witryny za po-
średnictwem nazwy użytkownika oraz jednorazowego
hasła (tokenu). Co najważniejsze strona odbierająca in-
formacje nie musi być „świadoma” struktury wewnętrz-
nych poświadczeń oraz mechanizmów autoryzacyjnych
(w tym hasła!).
Tworząc nowy projekt ASP MVC dostajemy goto-
we mechanizmy do wykorzystania. Tylko pare linijek
kodu dzieli programistę od tego, aby do nowej apli-
kacji mógł się zalogować kontem z Facebook, Linke-
dIn czy własnym Microsoft LiveID. Użytkownik pod-
czas logowania zostanie przekierowany na stronę
Technologie out of the box
w .NETOd wieków ludzie dążą do ulepszania świata. Każdy chce żyć
wygodniej, pracując przy tym szybciej i wydajniej. Nie inaczej
jest w programowaniu. Firmy wytwarzające oprogramowanie
chcą zaspokoić coraz większe wymagania klientów pozostając
przy tym konkurencyjni pod względem nie tylko jakości ale
także szybkości wykonania kolejnych projektów. Dlatego
przed rozpoczęciem realizacji zlecenia warto zadać sobie
pytanie „jaką technologię wybrać aby optymalnie zrealizować
projekt” nie zapominając przy tym o wygodzie pracy swoich
programistów...
DOWIESZ SIĘ...
• Jakie gotowe mechanizmy i narzędzia oferuje MS .NET
w tworzeniu i optymalizacji oprogramowania
• Jak MS .NET umożliwia tworzenie uniwersalnego opro-
gramowania (www, mobile)
• Jak MS .NET wspiera bezpieczeństwo aplikacji
POWINIENEŚ WIEDZIEĆ...
• Czym jest technologia MS .NET i kiedy warto po nią
sięgnąć
www.sdjournal.pl 9
Out of the box w .NET@Model.FirstName @* wypisane
bezpośrednio do widoku *@FirstName RAW:@Html.Raw(Model.FirstName) @* jawne
wyłączenie kodowania *@}
Jak widać w dwóch pierwszych przypadkach skrypt
został zakodowany a jego treść została wyświetlona na
stronie, natomiast w przypadku trzecim skrypt został
wykonany co potencjalnie może prowadzić do niebez-
pieczeństwa.
NOWOCZESNOŚĆ
Tworząc rozwiązania webowe nie możemy zapo-
mnieć o trendach związanych z wyglądem strony.
Tutaj z pomocą przychodzą nam gotowe szablony
pozwalające korzystać z dobrodziejstw każdemu do-
brze znanemu Twitter bootstrap – frameworkowi
CSS oferującemu kompletny pakiet narzędzi pozwala-
jących na tworzenie spójnych, nowoczesnych, a także
responsywnych aplikacji Internetowych. Twitter boot-
strap oferuje m.in. System grid – który można dosto-
sować do własnych potrzeb, strukturę pod tworzenie
stron dostosowujących swój wygląd i zachowanie do
rozdzielczości urządzenia (RWD), mechanizmy nawi-
gacji, zakładek, powiadomień czy zunifikowany zestaw
styli, ikon fontów, formularzy, przycisków itp. Wspo-
mniany bootstrap jest zatem znakomitą podstawą
„poświadczyciela” w celu autoryzacji oraz zaakcep-
towania przekazania prywatnych danych (np. zdjęć,
treści itp.).
Aktualnie istnieje wiele gotowych implementacji stan-
dardu OAuth udostępnianych przez zaufanych poświad-
czycieli (np. wspomniane portale takie jak Facebook,
Twitter, czy Google) jednak istnieje także możliwość
tworzenia własnych providerów. Daje to możliwość
zintegrowania nowych aplikacji przykładowo z konta-
mi korporacyjnymi, lub istniejącymi już rozwiązaniami
wdrożonych w naszej firmie.
Ale bezpieczeństwo to nie tylko login i hasło. Tworząc
aplikacje webowe (szczególnie dostępne publicznie w In-
ternecie) należy pamiętać, że istnieje grupa złych ludzi
którzy coś chcą popsuć, lub co gorsza coś przywłaszczyć
wykorzystując do tego rozmaite sztuczki. Warto więc
pamiętać, iż w przeciwieństwie do innych języków pro-
gramowania ASP MVC (od wersji 3) silnik renderujący
widok standardowo encode’uje treść nie pozwalając wy-
konać złośliwych skryptów.
Co to oznacza w praktyce? Poniższy przykład powi-
nien to jasno zobrazować (patrz Rys. 2):
@using (Html.BeginForm()) {
@Html.Label(«Enter Your name:»)
@Html.TextBoxFor(m => m.FirstName)FirstName encoded:@Html.DisplayFor(m => m.FirstName)@* wypisane przez html helper *@FirstName encoded 2:Rysunek 1.
4/201410
do stworzenia spójnego, unikalnego i nowoczesnego
layoutu co znacznie może wpłynąć na
Mimo istniejącej wspomnianej wcześniej techniki Re-
sponsiveWeb Design (RWD) wciąż wiele firm decyduje się
na utworzenie osobnej strony dla urządzeń mobilnych
(głównie telefonów komórkowych). Wykorzystując plat-
formę.NETadokładniejASPMVCodwersji4mamymoż-
liwość stworzenia aplikacji o wspólnej logice lecz dwóch
(lub więcej) różnych layout’ach – dla wersji desktop oraz
mobile. Co więcej dzieje się to całkiem automatycznie.
Przykładowo posiadając widok:
~/Views/Home/Index.cshtml
Możemy utworzyć drugi plik:
~/Views/Home/Index.Mobile.cshtml
który zostanie wykorzystany gdy na stronę wejdziemy
z urządzenia mobilnego. Co więcej po drobnym roz-
szerzeniu kodu możemy zdefiniować dodatkowe wido-
ki dla konkretnych przeglądarek (a dokładniej wartości
UserAgent), np.:
~/Views/Home/Index.iPhone.cshtml
Oczywiście kontroler akcji pozostaje wspólny i nie-
zmienny, np.:
public ActionResult Index() {
HomeIndexViewModel model = new
HomeIndexViewModel();
return View(model);
}
UNIWERSALNOŚĆ
Wraz z rozwojem technologii oraz szeroką gamą
możliwości dostępu do danych i urządzeń które z
tych danych mogą korzystać rośnie też potrzeba ła-
twiejszego i bardziej uniwersalnego do nich dostę-
pu. Jednym z przykładów takiej uniwersalności którą
oferuje nam platforma .NET jest technologia WCF
(Windows Communication Foundation) – usługa siecio-
wa która skupia w sobie i unifikuje większość do-
tychczasowych technologii Microsoft służących do
komunikacji sieciowych, m.in. .NET Remoting, Web
Services, MSMQ zapewniając przy tym bezpieczeń-
stwo, niezawodność, profilowanie a nawet transak-
cyjność.
Potęgą WCF jest fakt, iż raz napisany kod może być
skonfigurowany jednocześnie na wiele sposobów, przy-
kładowo:
• Dana usługa wewnątrz sieci LAN działać może po-
przez protokół TCP/IP
• Inna aplikacja odwoływać się może protokołem http
pobierając dane w formacie XML wykorzystując
SOAP
• Ta sama funkcjonalność poprzez protokół HTTPS
może być udostępniana poza sieć wewnętrzną np.
w formacie JSON
Dzięki powyższemu rozwiązaniu wiele różnych apli-
kacji może wykorzystywać dokładnie te same me-
tody w wygodnym dla siebie formacie, administra-
torzy mają możliwość bez wiedzy programistycz-
nej skonfigurować dostęp i reguły bezpieczeństwa,
a logika aplikacji pozostaje spójna i łatwa w zarzą-
dzaniu.
Wychodząc naprzeciw nowym trendom budowania
aplikacji Microsoft także zdecydował się na znakomite
rozwiązanie wspierające tworzenie WebAPI opierając
implementację na technologii ASP MVC. WebAPI stwo-
rzone jest z myślą budowania tzw. REST-full application,
w tym:
• Rich-client web application – dynamicznych stron wy-
korzystujących wiele wywołań AJAX
• Single-page application – z wykorzystaniem jQuery,
Knockout.js i podobnych bibliotek wyraźnie zwięk-
szy szybkość i łatwość tworzenia stron www
• Aplikacje www na urządzenia mobilne – ze względu
Rysunek 2.
www.sdjournal.pl 11
Out of the box w .NET
na ciężką strukturę XML telefony lepiej zniosą ko-
munikację w modelu REST, niż w usługowym stan-
dardzie SOAP.
WebAPI to także znakomite narzędzie do budowania
aplikacji rozproszonych, a także dających możliwość
integracji systemom zewnętrznym. Biorąc pod uwa-
gę dzisiejsze trendy oraz dążenie do tego aby jak naj-
ściślej powiązać i ujednolicić ze sobą wszystkie usługi i
aplikacje WebAPI zdaje się być silnym konkurentem na
tle pozostałych rozwiązań. Nic więc dziwnego że fir-
ma z Redmond do swoich rozwiązań dodała znakomi-
te wsparcie właśnie tej technologii w dodatku w bar-
dzo przystępnej formie.
PRODUKTYWNOŚĆ
Mnogość rozwiązań które oferuje platforma .NET ma
jeszcze jedną zaletę. Microsoft dostarcza narzędzia któ-
re doskonale ze sobą współgrają tworząc często jed-
nolitą całość. Poczynając od Visual Studio uważanego
za jedno z najlepszych środowisk programistycznych
które w dodatku można wykorzystać za darmo wraz z
(również darmowym w podstawowej wersji) silnikiem
i narzędziami bazodanowymi MS SQL Server. Oprócz
standardowych funkcjonalności które każde szanują-
ce się IDE musi posiadać Visual Studio udostępnia m.in.
wbudowany manager pakietów Nuget pozwalające na
bardzo proste, szybkie i wygodne zarządzanie bibliote-
kami, rozszerzeniami czy skryptami w naszym projek-
cie. Instalowanie pakietów przez nuget automatycznie
dodaje do projektu wszystkie potrzebne składniki (re-
ferencje, skrypty js, pliki css itp.) rozmieszczając je we-
dle przyjętych standardów.
Natywna integracja z systemami kontroli wersji (TFS
oraz GIT) wraz z całym zestawem narzędzi z pakietu „Te-
am studio” wspierający pracę zespołową to kolejny punkt
zwiększający produktywność.
Ważnym elementem jest też ścisła integracja z roz-
wiązaniami chmurowymi (Windows Azure) która zarów-
no wspiera tworzenie, zdalne debugowanie, proces
wdrożenia jak i zarządzanie usługami w chmurze. Firma
z Redmond także udostępnia zaawansowane narzędzia
do projektowania interface’u graficznego aplikacji. Dzię-
ki pakietowi narzędzi Microsoft Expression w łatwy spo-
sób można stworzyć bogate wizualnie aplikacje zarów-
no mobilne, windowsowe (WPF/Silverlight czy aplikacje
„Modern” dla Windows 8), jak również prototypować
za sprawą „SketchFlow”. Co więcej pomimo ścisłej inte-
gracji wszystkich składników Microsoft Expression jest ze-
stawem osobnych narzędzi, przez co pozwala on wyde-
legować pracę związaną z UX do specjalisty interface’u
użytkownika który de facto nie musi być ściśle biegły w
programowaniu.
Jak widać liczba technologii oraz narzędzi jakie
udostępnia nam Microsoft jest ogromna. Nie można
także zapomnieć, iż firma ta starając się spopulary-
zować swoje produkty organizuje i udostępnia nie-
zliczoną ilość materiałów, dokumentacji, konferencji
i szkoleń poszerzając wiedzę specjalistów, tworząc
swego rodzaju wyspecjalizowaną społeczność. Nato-
miast produkty wchodzące w skład platformy .NET
wspierają praktycznie każdy aspekt prowadzenia
projektu od jego początku do końca usprawniając i
przyspieszając jego realizację dostarczając gotowych
i sprawdzonych rozwiązań.
Paweł Górka
Senior Microsoft Developer w
Intratic (Grupa Unity). Do je-
go obowiązków należy roz-
wój i utrzymanie aplikacji .NET
oraz analiza i wsparcie klienta
w zakresie integracji systemów
IT. Odpowiedzialny za projekty
m.in. takich Klientów jak Grupa
Tubądzin, Rovese czy Top Secret. Absolwent
Wyższej Szkoły Biznesu – National Louis Univer-
sity w Nowym Sączu.
REKLAMA
4/201412
W
yobraź sobie, że Twój komputer staje się
publiczny: ktoś zainteresowany może w do-
wolnej chwili przejrzeć wszystko, co robisz
i robiłeś w Internecie, przeczytać Twoje prywatne wia-
domości, sprawdzić historię konta bankowego, pobrać
zdjęcia, czy wykonać jeszcze groźniejsze manipulacje.
Brzmi nieprawdopodobnie? Oczywiście nie dla specja-
listów IT. Niestety takie sytuacje są nie tylko możliwe,
ale i powszechne. Ponadto zdarzają się coraz częściej,
uderzając nie tylko w korporacje czy strategiczne urzędy
i ich pracowników, ale także zwykłych, “anonimowych”
użytkowników Internetu.
Zgodnie z opiniami wielu ekspertów ten stan rzeczy
będzie się coraz dynamiczniej pogłębiał wraz z rosnącym
coraz szybciej poziomem przenikania Internetu do naszej
codzienności. Powoduje to, że specjalistyczne kompeten-
cje, a nawet profil zawodowy specjalisty ds. bezpieczeń-
stwa IT będzie z dużym prawdopodobieństwem świetnym
kierunkiem rozwoju kariery i źródłem sporej satysfakcji.
Żadne systemy zabezpieczeń IT nie są ani całkowicie
bezpieczne, ani wolne od wad, a coraz to nowe zagro-
żenia, których liczba zwiększa się razem z rozrostem
“globalnej wioski”, zmuszają specjalistów z branży ICT
do nieustannego szukania sposobów zapobiegających
włamaniom do systemów i przechwytywaniu poufnych
danych, zarówno osób prywatnych jak i firm czy sekto-
ra publicznego. Z najnowszych badań Eurobarometru
wynika, że już 18 proc. Polaków bezpośrednio doświad-
czyło oszustw internetowych, a aż 8 proc. ukradziono
elektronicznie tożsamość. Wprawdzie aż 33 proc. ba-
danych użytkowników sieci twierdzi, że dobrze orien-
tuje się w kwestiach zagrożeń internetowych, jednak
eksperci oceniają, że jest to mylne przekonanie. Aż 8 na
10 ankietowanych otwiera e-maile z nieznanego źródła,
a więcej niż połowa nie używa żadnego programu anty-
wirusowego na swoim komputerze.
Sytuacja ta determinuje rosnące zapotrzebowanie na
specjalistów, dobrze wykształconych w tej dziedzinie i
posiadających specyficzne, praktyczne kompetencje. Spe-
cjaliści i oficerowie ds. bezpieczeństwa IT zarabiają obec-
nie średnio najwięcej spośród zawodowych profili infor-
matyków. Często przy tym ich profil wykształcenia jest
odmienny - decydują certyfikaty i profesjonalne szkolenia
(najlepiej międzynarodowe, o obszernych programach
merytorycznych) oraz doświadczenie zawodowe, które
trzeba zacząć budować w danym obszarze jak najszybciej.
Kiedy zakres obowiązków takich specjalistów zaczyna
obejmować także zarządzanie bezpieczeństwem IT orga-
nizacji, ich pensja nie tylko znacząco wzrasta do pułapów
menadżerskich, ale także zaczynają odgrywać strategiczną
rolę dla całej instytucji mając przy tym bezpośredni wpływ
na tryb jej działania. Należy podkreślić, że specjalistów ds.
bezpieczeństwa, którzy wraz z rozwojem lub postępującą
informatyzacją instytucji zostają desygnowani do podjęcia
się takiej roli, w większości organizacji pracuje bardzo nie-
wielu (najczęściej są to pojedyncze etaty). Tak więc jest o
co powalczyć. Ale od czego należy zacząć?
Bezpieczeństwo połączenia
Zadaniem bezpiecznego połączenia jest przed wszystkim
chronienie tożsamości użytkownika oraz jego działalności
w sieci. Zachowanie wysokiego poziomu anonimowości
NOWE Bezpieczeństwo w sieci
jak zostać specjalistą ds. bezpieczeństwa IT
- ostatnie miejsca z 80 % dofinansowaniem z UE na certyfikowane
szkolenia Akademii EITCA IS Bezpieczeństwo Informatyczne
www.sdjournal.pl 13
Bezpieczeństwo w sieci
By zabezpieczyć skrzynkę e-mail również można posił-
kować się dodatkami do przeglądarek, kodującymi wia-
domości np. poprzez szyfrowanie OpenPGP (pozwalają-
ce m.in. podpisywać cyfrowo pocztę, zarządzać kluczami
czy weryfikować autentyczność nadawcy – takim dodat-
kiem jest MailEnvelope czy SafeMail). Skrzynkami, które
stale działają w tej technologii jest Hushmail i Counter-
Mail ( stosujący 4096-bitowe klucze szyfrujące).
Człowiek kontra komputer kwantowy
Raport Trend Micro "Spear-Phishing Email: Most Favored
APT Attack Bait" pokazuje, że tak jak w latach ubiegłych,
wielu włamań do sieci korporacji wciąż wykonuje się wy-
korzystując zainfekowane załączniki do maili. Wystarczy,
że wiadomość otworzy jeden pracownik korporacji, aby
na celowniku cyberprzestępców znalazły się dane krążą-
ce po wewnętrznej sieci całej firmy. Sprzyjają temu pro-
ste rozwiązania technologiczne zabezpieczeń (bardzo
często bazujące na szyfrowaniu z rzadko wymienianymi
kluczami kryptograficznymi).
Z powodu fundamentalnych słabości klasycznych metod
zabezpieczeń naukowcy starają się opracować nowe me-
tody szyfrowania danych, w sposób jakościowy różniące
się odpowiedzią na ataki. Jedną z obiecujących alternatyw
klasycznych systemów kryptograficznych (które stanowią
podstawę wszelkich rozwiązań bezpieczeństwa IT) okazu-
je się dziś kryptografia kwantowa. Precyzyjnie Kwantowa
Dystrybucja Klucza (QKD) może wkrótce znaleźć szero-
kie zastosowanie na rynku telekomunikacyjnym, jak rów-
nież pomóc lepiej zabezpieczyć kluczowe łącza budynków
administracji publicznej i wrażliwych instytucji (np. finan-
sowych, czy wojskowych). Do przesyłania danych wyko-
rzystuje ona mikroskopową, zachowującą się w sposób
kwantowy wielkość fizyczną układu kwantowo mecha-
nicznego (np. polaryzację fotonu). Dzięki prawom mecha-
niki kwantowej, symetryczny i zupełnie losowo wygenero-
wany klucz służy do kodowania i dekodowania informacji,
i przeciwdziałanie atakom oraz wyciekowi poufnych da-
nych można wdrożyć, korzystając np. z serwerów anoni-
mizujących lub trasowania cebulowego. Serwery anonimi-
zujące (np. Anonymouse) pozwalają na ukrycie adresu IP
czy ciasteczek użytkownika, natomiast trasowanie cebulo-
we (użyte pierwotnie w sieci Tor – The Onion Router)
działa na podstawie wielokrotnego, kryptograficznego
szyfrowania wiadomości, a następnie przesyłania jej przez
ciąg węzłów (tzw. routerów cebulowych), które kolejno
usuwają warstwę szyfrowania by otrzymać informacje o
dalszym trasowaniu i przekazują dane do następnych ro-
uterów, w ten sposób nie ujawniając danych dotyczących
użytkownika i przesyłanej wiadomości.
Ochronę przeciw atakom zapewnia także połączenie
tunelowe funkcjonujące poprzez nawiązywanie zaszy-
frowanego połączenia z zabezpieczonym serwerem sie-
ciowym. Wówczas cały ruch sieciowy prowadzący od
komputera do tej usługi, czyli serwera Proxy, odbywa
się przez zaszyfrowane połączenie – na tej zasadzie dzia-
ła m.in. program WiFi Protector, służący chronieniu da-
nych w niezaszyfrowanej sieci WLAN (np. sieć w hotelu
lub bezpłatne WiFi miejskie).
Chroniona przeglądarka i e-mail
Przeglądarka to bodaj najmocniej użytkowana aplikacja
pozwalająca na korzystanie z zasobów Internetu. Nie-
stety, żadna przeglądarka nie daje całkowitej pewności
ochrony przesyłanych danych. W tym roku organizatorzy
Pwn2Own, konkursu dla hackerów służącego odnalezie-
niu jak największej ilości luk i błędów w oprogramowa-
niu, wypłacili rekordową ilość nagród pieniężnych (łącznie
ponad 850 tys. dolarów) właśnie w kategorii popularnych
przeglądarek. By wspomóc bezpieczeństwo przeglądarki,
należy przede wszystkim regularnie ją aktualizować - no-
we wersje aplikacji „łatają” luki starszych wersji, zwięk-
szając jej odporność na wykryte już zagrożenia. Alterna-
tywą są także mniej popularne przeglądarki, tworzone na
silnikach tych najbardziej znanych, jednak ukierunkowane
na kwestie związane z ochroną danych (np. SRWare Iron
oparta na Google Chrome lub Tor Browser korzystająca
z rozwiązań Mozilla Firefox). Pomocne może okazać się
również korzystanie z rozszerzeń wykrywających tropi-
cieli i web bugi (dodatek Ghostery), lub zapobiegających
namierzaniu i śledzeniu działalności (np. DoNotTrack).
Rysunek 1. Ultranowoczesne prototypowe
metody szyfrowania danych: bezsplątaniowa i
splątaniowa kwantowa dystrybucja klucza QKD
oparta na mechanice kwantowej (fot. seQre.net)
Rysunek 2. Komputery D-Wave Two podczas
pracy - takie same systemy zakupione zostały w
maju 2013 przez firmę Google Inc. we współpracy
z NASA oraz przez firmę Lockheed Martin (fot.
D-Wave Inc.)
4/201414
gwarantując teoretycznie absolutny, tj. bezwarunkowy
poziom bezpieczeństwa wymiany danych. Wdrożenie ta-
kich rozwiązań na szeroką skalę pozwoliłoby choć w pew-
nym stopniu wyeliminować krytyczny czynnik ludzki w
zakresie narażenia na ujawnienie informacji (np. poprzez
hasła, umożliwiające do uzyskania dostępu do przecho-
wywanych w systemach informatycznych rzadko zmienia-
nych kluczy szyfrujących).
Podczas gdy komputery kwantowe stają się rzeczywi-
stością (w maju 2013 roku NASA i Google we wspól-
nym przedsięwzięciu wdrożyły 512 qubitowe nadprze-
wodzące komputery kwantowe DWave Two, tworząc
pierwsze na świecie kwantowe laboratorium sztucznej
inteligencji - http://www.youtube.com/watch?v=CMdH-
DHEuOUE, a niedługo potem Washington Post opubli-
kował nowe doniesienia Edwarda Snowdena nt. zaawan-
sowania prac NSA w tym zakresie), bezpieczeństwo
krytycznej komunikacji elektronicznej w sieci podlega
procesowi przewartościowania. Klasyczne kryptosyste-
my, opierające się na tzw. matematycznych problemach
trudnych są zakwestionowane, jako że problemy te mo-
gą być skutecznie rozwiązane przez komputery kwanto-
we, maszyny obliczeniowe, działające w oparciu o prawa
mechaniki kwantowej, a nie fizyki klasycznej. Wiąże się
z tym coraz szerzej dostrzegane zagrożenie dla rozma-
itych zabezpieczeń komunikacji o kluczowej roli dla in-
stytucji sektora finansów i bankowości, administracji pu-
blicznej czy wojska.
Jedyne pewne zabezpieczenie przed komputerami
kwantowymi, czyli kryptografia kwantowa jest obecnie
głównym kierunkiem rozwoju nowoczesnego bezpie-
czeństwa informatycznego. Systemy oparte na złożonych
zasadach kryptografii kwantowej już teraz są stosowa-
ne w sektorze bankowości, w Szwajcarii, Luksemburgu,
Niemczech, Austrii oraz w Japonii i USA, wyznaczając
nowe standardy zabezpieczeń kluczowych danych i naj-
ważniejszych łącz komunikacyjnych. Dzięki specyficznym
regułom fizyki kwantowej systemy QKD są na poziomie
fundamentalnych praw fizyki kwantowej niepodatne na
próby zewnętrznego przechwycenia czy skopiowania
przekazywanych informacji.
Wiedza podstawą przeciwdziałania
zagrożeniom – certyfikat z
Bezpieczeństwa Informatycznego
kluczem do interesującej kariery
zawodowej
Czy jednak technologia, nawet tak zaawansowana jak
kryptografia kwantowa pozwoli wyeliminować czynnik
ludzki? W ochronie danych niebagatelne znaczenie ma sa-
ma świadomość użytkownika, iż są one zawsze narażo-
ne na potencjalne ataki z zewnątrz. Nie do przecenienia
wydaje się zatem rozległa wiedza w tematyce zagrożeń i
IT security, która pomaga nie tylko zgłębić problematykę
bezpieczeństwa, ale także aktywnie uczestniczyć w prze-
ciwdziałaniu utracie czy przejęciu prywatnych informacji.
Najważniejsze informacje z zakresu bezpieczeństwa syste-
mów operacyjnych, zaawansowanej informatyki i krypto-
grafii kwantowej, chronionych sieci komputerowych czy
złożoności obliczeniowej (m.in. maszyny Turinga i RAM)
pozwalają dogłębnie zrozumieć aktualną złożoność pro-
blemu bezpieczeństwa sieci i systemow komputerowych
i sprawnie poruszać się w środowisku z nim związanym.
Przede wszystkim jednak otwiera drogę to fascynującej
kariery zawodowej w bardzo deficytowym obecnie ob-
szarze, który będzie szybko skalował swoją strategiczną
istotność dla dalszego rozwoju społeczenstwa informacyj-
nego.
Specjalistyczną i kompleksową wiedzę w zakresie no-
woczesnego bezpieczeństwa IT, a przede wszystkim za-
awansowane teoretyczne i praktyczne kompetencje za-
pewnia profesjonalne, międzynarodowo certyfikowane i
zdalnie realizowane szkolenie Akademii EITCA/IS Infor-
mation Security, którego krajowym operatorem jest ICS
CompLearn, a instytucją akredytującą Instytut EITCI w
Brukseli.
Rysunek 3. Laserowy moduł teleskopowy
optyki kwantowej splątaniowego układu QKD
stosowanego w kryptografii kwantowej dla
komunikacji satelitarnej (fot. seQre.net)
Rysunek 4. Wnętrze komputera D-Wave Two w
kriogeniczej osłonie, widoczny nadprzewodzący
procesor 512 qubitowy, wykorzystujący kwantowe
tunelowanie elektronów w tzw. złączach
Josephsona (fot. D-Wave Inc.)
www.sdjournal.pl 15
Bezpieczeństwo w sieci
O AKADEMII EITCA/IS:
Krajowa edycja Akademii EITCA/IS Bezpieczeństwa
Informatycznego prowadzona jest w języku polskim
w trybie e-learningowym w ramach 12 przedmiotów
z uwzględnieniem w pełni zdalnie realizowanych pro-
cedur egzaminacyjno-certyfikacyjnych przy akredytacji
Instytutu EITCI w Brukseli. Szkolenie obejmuje łącz-
nie aż 180 godzin zajęć (ćwiczeń, wykładów oraz e-
laboratoriów). Umożliwia elastyczną organizację nauki
i konsultacje z kadrą akademicką. Szkolenie (na pozio-
mie akredytowanych studiów podyplomowych) obej-
muje zagadnienia szeroko pojętego bezpieczeństwa in-
formacji przetwarzanych w systemach elektronicznych
(w tym w szczególności istniejących zagrożeń), stoso-
wanych metod kryptograficznych, teorii podstaw bez-
pieczeństwa informacji, metod zarządzania bezpieczeń-
stwem informacji, aspektów formalno-prawnych, jak
również szczegółowych zagadnień technicznych oraz
technologii w dziedzinie zabezpieczeń sieci kompute-
rowych i bezpieczeństwa systemów informatycznych.
Program EITCA/IS przeznaczony jest dla pracowników
dowolnych branż gospodarki, których praca związana
jest z przetwarzaniem danych w ramach systemów in-
formatycznych, jak również do specjalistów branży IT,
oraz wszystkich osób zainteresowanych niezwykle cie-
kawym i rozwojowym zagadnieniem bezpieczeństwa
informacji, chcących nabyć lub poszerzyć swoje kom-
petencje w tym zakresie.
• Jest to międzynarodowy standard kompetencyjny IT
szeroko upowszechniony i rozpoznawany przez pra-
codawców na całym świecie (dotychczas wydano w
UE kilkadziesiąt tysięcy certyfikatów EITCA)
• Obejmuje kompleksowe szkolenia w interaktyw-
nym trybie e-learning (e-wykłady, e-ćwiczenia i e-
laboratoria wraz z konsultacjami) oraz egzaminy re-
alizowane w pełni zdalnie przez Internet
• Pozwala zdobyć certyfikaty EITCA oraz EITC wraz
z suplementami wydawane przez Instytut EITCI w
Brukseli, posiadające również akređytację Minister-
stwa Edukacji Narodowej / Kuratora Oświaty
• Realizuje od 150 do 180 godzin programu w ramach
10 do 12 przedmiotów EITC na Akademię o trud-
ności adekwatnej dla zaawansowanych i początkują-
cych, w okresie nawet 1 miesiąca
• Dzięki unijnemu wsparciu ze środków Europejskie-
go Funduszu Rozwoju Regionalnego w ramach pro-
gramu POIG w krajowej edycji Akademii EITCA
wszystkie opłaty mogą być obniżone o 80%
Program Akademii EITCA Bezpieczeństwo Informa-
tyczne (EITCA/IS) składa się z 12 kursów EITC (pro-
gramu European Information Technologies Certifi-
cation) o łącznej merytorycznej zawartości progra-
mowej 180 godzin (każdy kurs programowy EITC
obejmuje zawartość programową 15h). Listę progra-
mów EITC składających się na pełny zakres progra-
mowy Akademii EITCA/KC, w zgodzie ze specyfika-
cją programową Europejskiego Instytutu Certyfika-
cji Informatycznej w Brukseli przedstawiono poniżej.
Kliknięcie na nazwę kursu spowoduje wyświetlenie
szczegółowego programu. Oprócz udziału w Akade-
mii EITCA/IS, możliwe jest zakupienie udziału w jed-
nym lub większej ilości kursów programu EITC z po-
niższej listy.
Przedmioty w Programie Akademii
Bezpieczeństwa Informatycznego EITCA/IS
• EITC/IS/CF: Podstawy kryptografii (15h)
• EITC/IS/EEIS: Bezpieczeństwo informatyczne e-
Gospodarki (15h)
• EITC/IS/SMMOS: Administracja i zarządzanie bez-
pieczeństwem w systemach Microsoft (15h)
• EITC/IS/OS: Bezpieczeństwo systemów operacyj-
nych (15h)
• EITC/CN/SCN1: Bezpieczne sieci komputerowe 1
(15h)
• EITC/CN/SCN2: Bezpieczne sieci komputerowe 2
(15h)
• EITC/IS/ACNS: Zaawansowane bezpieczeństwo sie-
ci informatycznych (15h)
• EITC/IS/QCF: Kryptografia kwantowa (15h)
• EITC/IS/FAIS: Formalne aspekty bezpieczeństwa in-
formacji (15h)
• EITC/IS/IST: Teoria bezpieczeństwa informatyczne-
go (15h)
• EITC/QI/QIF: Informatyka kwantowa w kontekście
bezpieczeństwa (15h)
• EITC/FC/CCT: Złożoność obliczeniowa jako pod-
stawa bezpieczeństwa informacji (15h)
Pobierz szczegółowy program w formacie PDF http://
eitca.pl/files/programs/eitca_is.pdf
4/201416
Formalne potwierdzenie nabytych zawodowych
kompetencji informatycznych w formie międzyna-
rodowego certyfikatu wydanego przez Europejski
Instytut Certyfikacji Informatycznej EITCI w Bruk-
seli (European Information Technologies Certifica-
tion Institute) wraz z suplementem w języku angiel-
skim i odpisami w języku polskim lub innych urzę-
dowych językach UE, jak również polskojęzycznego
dyplomu ukończenia krajowej edycji Akademii EIT-
CA wystawianego przez krajowe konsorcjum reali-
zujące i akređytowanego przez MEN i Kuratorium
Oświaty.
Istotny wzrost konkurencyjności na krajowym i mię-
dzynarodowym rynku pracy w praktycznie każdej branży
gospodarki nowoczesnego społeczeństwa informacyjne-
go poprzez nabycie lub zasadnicze podniesienie kwalifi-
kacji w dziedzinie IT i ich formalne potwierdzenie w mię-
dzynarodowym standardzie.
Profesjonalną, teoretyczną i praktyczną wiedzę oraz
umiejętności w dziedzinie, którą obejmuje Akademia
EITCA na poziomie merytorycznym studiów podyplo-
mowych wdrażanych w krajowej edycji międzynarodo-
wego programu certyfikacji informatycznej Akademii
EITCA.
Kompleksowe przeszkolenie w wymiarze odpowia-
dającym od 150 do 180 godzin zajęć stacjonarnych tj.
wymiar godzinowy 2-semestralnych studiów podyplo-
mowych), co stanowi wielokrotność objętości progra-
mowej standardowych, dostępnych na rynku kursów i
szkoleń informatycznych.
Dostęp do indywidualnych konsultacji z akademicką
kadrą dydaktyczną (obejmującą także ekspertów prze-
mysłowych) przez cały okres trwania nauki.
W przypadku wyrażenia takiej woli przez uczestnika
programu, umieszczenie go jako certyfikowanego spe-
cjalisty w zakresie odpowiedniej specjalizacji zgodnej z
profilem ukończonego programu Akademii EITCA (lub
EITC) w Europejskiej Bazie Specjalistów Technologii In-
formatycznych ITPD, udostępnianej pracodawcom na
terenie kraju i Unii Europejskiej.
Certyfikat Akademii EITCA/IS stanowi formalne,
międzynarodowe potwierdzenie wiedzy teoretycznej
i praktycznych kompetencji zawodowych w dziedzi-
nie szeroko pojętego bezpieczeństwa informacji prze-
twarzanych w systemach elektronicznych (w tym w
szczególności istniejących zagrożeń, stosowanych me-
tod kryptograficznych, teorii podstaw bezpieczeństwa
informacji, metod zarządzania bezpieczeństwem in-
formacji, aspektów formalno-prawnych, jak również
szczegółowych zagadnień technicznych oraz techno-
logii w dziedzinie zabezpieczeń sieci komputerowych
i bezpieczeństwa systemów informatycznych). Zakres
programowy Akademii EITCA/IS Bezpieczeństwa In-
formatycznego stanowi wiedzę o sposobach zapew-
nienia prawidłowego funkcjonowania systemów in-
formatycznych pod kątem poufności, wiarygodności
i integralności przetwarzanych danych, co stanowi
obecnie jeden z najbardziej wrażliwych obszarów in-
formatyki.
Rozwój społeczeństwa informatycznego i gospo-
darki opartej na wiedzy, to nie tylko wszechobecna
wirtualizacja procesów gospodarczo-ekonomicznych i
społecznych, ale także rosnący poziom zagrożeń in-
formatycznych i wrażliwości eksponowanej informa-
cji na potencjalne ataki i manipulacje. Specjalistycz-
na wiedza i umiejętności w obszarze bezpieczeństwa
informatycznego, potwierdzona międzynarodowym
certyfikatem Bezpieczeństwa Informatycznego EIT-
CA/IS stanowi istotny element specjalizacji nie tylko
w zawodowach bezpośrednio związanych z bezpie-
czeństwem, ale również w zawodowach związanych
z ogólną obsługą systemów informatycznych i siecio-
wych (w tym w ramach silnie zinformatyzowanego
sektora finansowego, czy też sektora dużych firm i
korporacji, ale również wszystkich instytucji posiada-
jących i polegających na niezawodności wdrożonych
systemów informatycznych, m.in. także w administra-
cji publicznej.
Krajowa edycja międzynarodowego programu cer-
tyfikacyjnego Akademii EITCA (European Information
Technologies Certification Academy), prowadzona na
licencji Europejskiego Instytutu Certyfikacji Informa-
tycznej EITCI w Brukseli uzyskała krajową Akređyta-
cję Ministerstwa Edukacji Narodowej za pośrednic-
twem Kuratora Oświaty (nr 8/2014). Akređytacja ta
nadaje wydanym w Brukseli międzynarodowym certy-
fikatom Akademii EITCA i EITC dodatkowy wymiar
formalnego elementu poświadczenia kompetencji w
Rysunek 4. Certyfikat Akademii EITCA/IS
Bezpieczeństwa Informatycznego
www.sdjournal.pl 17
Bezpieczeństwo w sieci
ramach krajowego systemu kształcenia, nadzorowa-
nego przez MEN.
Ze względu na kończącą się obecną perspektywę fi-
nansową Funduszy Europejskich jest to ostatni moment
na skorzystanie z miejsc objętych obniżoną o 80% opłatą.
Obniżka kosztów jest warunkowana podaniem przy
rejestracji na portalu kierunkowym Studium EITCA /IS
pięcioliterowego kodu rejestracyjnego.
Specjalny kod rejestracyjny dla czytelników niniejszego
artykułu to: SEGHE
Wejdź na http://eitca.pl/is?kod=SEGHE i skorzystaj z
dofinansowania
Liczba miejsc z dofinansowaniem ze środków Unii Eu-
ropejskiej jest ograniczona
Całkowity koszt z dofinansowaniem 80%: 880 zł (za-
miast 4400 zł)
Więcej kursów Akademii EITCA:
• Grafika Komputerowa
• Kluczowe Kompetencje Informatyczne
• Informatyka Biznesowa
www.eitca.pl | www.eitci.org
REKLAMA
4/201418
M
oże się zdarzyć, że przy połączeniach do bazy
nie będziemy chcieli użyć mapowania obiekto-
wo-relacyjnego (ORM), tylko będziemy chcieli
skorzystać z mechanizmu JdbcTemplate dostarczonego
przez Spring. W konfiguracji konfigurujemy bean DataSo-
urce i na jego podstawie tworzymy obiekt JdbcTemplate.
Załóżmy, że w naszej aplikacji chcemy zapisywać
obiekty różnego typu bez powielania kodu (tu z pomo-
cą przychodzą nam typy generyczne) oraz dane obiekty
mogą mieć dużą ilość różnego rodzaju pól, które bywa-
ją modyfikowane (zmiana typu, nazwy, ilość pól), a nie
chcemy modyfikować zapytania SQL (co załatwia za nas
refleksja).
Stwórzmy generyczną klasę BaseDAO, która bę-
dzie się kontaktowała z bazą danych przy użyciu Jdbc-
Template. By nie zaciemniać kodu, nie będzie w nim
obsługi wyjątków i zamykania połączeń do bazy, co
oczywiście należy dodać w bloku finally. Szkielet abs-
trakcyjnej klasy BaseDAO został zaprezentowany na
listingu 1.
Konkretna implementacja klasy musi oczywiście za-
wierać typ oraz nadpisywać metodę zwracającą nazwę
tabelki do której zapisujemy. Na listingu 2 pokazana zo-
stała metoda insert, w której następuje zapis modelu
do bazy.
W metodzie najpierw przygotowywane jest zapytanie
i jego parametry, a następnie dodawane są parametry
do zapytania i zapytanie zostaje wywołane. W przygoto-
waniu danych dla zapytania wykorzystujemy mechanizm
refleksji. Metoda zaprezentowana została na listingu 3.
Tworzenie zapytań SQL
przy użyciu refleksji
Może się zdarzyć, że przy połączeniach do bazy
nie będziemy chcieli użyć mapowania obiektowo-
relacyjnego (ORM), tylko będziemy chcieli skorzystać
z mechanizmu JdbcTemplate dostarczonego
przez Spring. W konfiguracji konfigurujemy bean
DataSource i na jego podstawie tworzymy obiekt
JdbcTemplate
DOWIESZ SIĘ...
• Jak praktycznie wykorzystać mechanizm refleksji i
typy generyczne
POWINIENEŚ WIEDZIEĆ...
• Ogólne informacje na temat typów generycznych, re-
fleksji, SQL
Listing 2.
public void insert(T model) {
StringBuilder queryFieldsSB = new StringBuilder();
StringBuilder queryValuesSB = new StringBuilder();
List
www.sdjournal.pl 19<>metodzie do nazwy kolumny przypisywana jest nazwa
pola, a gdy istnieje adnotacja Column, to nazwa ko-
lumny nadpisywana jest wartością z adnotacji.
Gdy mamy już wszelkie dane dla zapytania, musi-
my jeszcze dodać parametry do zapytania przed je-
go wywołaniem. Metoda addQueryParameters została
przedstawiona na listingu 5.
Wywoływane są w niej odpowiednie metody na
obiekcie PreparedStatement, na podstawie typu pola.
Jak widzimy mechanizm refleksji połączony z typami
generycznymi możemy zastosować w wielu sytuacjach
dla zwiększenia elastyczności kodu.
W metodzie prepareDataForQuery iterujemy po
polach przekazanego obiektu (wywołując getter) i do
zapytania bierzemy zwrócone wartości różne od null.
Wypełniamy również typy pól oraz wartości dla zapy-
tania (pytajniki oddzielone przecinkami dla zapytania
SQL). Potrzebujemy również nazwy kolumn, które są
wypełniane w metodzie getName. Metoda getName
została zaprezentowana na listingu 4.
Nie zawsze chcemy, by kolumna w bazie danych
miała taką samą nazwę jak nazwa pola w klasie javy. W
klasie javy nazwę kolumny możemy przekazać za po-
mocą adnotacji. Możemy stworzyć swoją własną ad-
notację bądź skorzystać z dostępnej. Do celów przy-
kładu użyłem adnotacji javax.persistence.Column. W
Listing 3.
private void prepareDataForQuery(T model,
List values, List types,
StringBuilder queryFieldsSB,StringBuilder
queryValuesSB) {
for (Field field : model.getClass().
getDeclaredFields()) {
try { String fieldGetter = createGetter(field.
getName()); Method method = model.getClass().
getDeclaredMethod(fieldGetter); Object ob = method.invoke(model); if (ob == null) continue; values.add(ob); types.add(field.getType()); queryFieldsSB.append(getName(field)).
append(",”); queryValuesSB.append("?,”); } catch (Exception ex) { }
} }
Listing 4.
private String getName(Field field) { String name = field.getName(); Annotation[] annotations =
field.getDeclaredAnnotations(); if (annotations.length > 0) { for (Annotation annotation : annotations){ if (annotation.annotationType() ==
Column.class) { name = ((Column)annotation).name(); break; } } } return name;
}
Listing 5.
private void addQueryParameters(
PreparedStatement pstmt, List types,
List values) throws SQLException { int i = 0; for (Class type : types) { if (type == String.class) { pstmt.setString(i+1, (String)values.
get(i)); } else if (type == Integer.class) { pstmt.setInt(i+1, (Integer)values.
get(i)); } else if (type == Long.class) { pstmt.setLong(i+1, (Long)values.
get(i));} else if (type == Float.class) { pstmt.setFloat(i+1, (Float)values.
get(i)); } else if (type == Boolean.class) { pstmt.setBoolean(i+1, (Boolean)values.
get(i)); } else if (type == Date.class) { pstmt.setTimestamp(i+1, new java.sql.
Timestamp(((Date)values.
get(i)).getTime())); } i++; } }
MAREK ŁABĘDŹ
Obecnie pracuje jako Senior Java Developer w
firmie fru.pl oraz uczestniczy w kilku innych pro-
jektach.
Absolwent UJ i AGH. Mający za sobą udział w
wielu projektach w kilku krakowskich firmach.
Interesuje się technologiami Java/JavaEE, zwin-
nymi metodami oraz dobrymi praktykami wy-
twarzania oprogramowania.
Poza pracą biega w ultramaratonach oraz bie-
rze udział w triathlonach na dystansie długim.
Miłośnik miniaturowych sznaucerków (Irvier’s).
www.sdjournal.pl 21
3 SEZON Z TECHNOLOGIĄ TECHCAMP
T
echnologia ON! Agenda naszych spotkań jest
stała – 3-5 prezentacji w temacie odcinka, a na-
stępnie intensywna dyskusja. Zaproszeni prele-
genci wychodzą na scenę i wyjaśniają jak daleko jest
od kodu do biznesu. Do swojego warsztatu w czasie
3 sezonu TechCampu pozwolili nam zajrzeć repre-
zentanci czołówki e-biznesu m.in. Pracuj.pl, FreshMail,
Grupa Unity, Kei.pl, Imad oraz twórcy najgorętszych
startupów – Notatek.pl, Brainly, Flowbox, Zrzutka.
pl czy Untitled Kingdom. Bywały prezentacje zupełnie
unikalne jak wystąpienie Dawida Żądło z Kreski Corp.
Retouching Studio, który zafundował nam przyspieszo-
ny kurs retuszu high-end i to w wersji live. Nie sposób
wymienić wszystkich, ale ważne by podkreślić, że to
nie była komunikacja jednostronna. Barcamp bez ne-
tworkingu nie ma racji bytu, dlatego w tym sezonie po-
stawiliśmy na Open Space. Czy to była dobra decyzja?
Przy kameralnych stolikach z prelegentami zostawało
70 proc. uczestników, a rozmowy trwały jeszcze długo
po oficjalnym zakończeniu imprezy. To powinno wy-
starczyć za odpowiedź.
Jest 10 minut do 19. Ostatnie chwile zanim zacznie-
my odcinek. Sala już jest pełna. Na widowni ponad 200
osób. Wśród nich głównie programiści i studenci in-
formatyki, ale profil uczestnika zmienia się w zależno-
ści od tematyki. Na rekordowej w tym sezonie od-
słonie – Grafika i Animacja, w Krakowie pojawiło się
prawie 400 osób, a wśród nich przeważająca ilość po-
gromców Photoshopa. Jak jest za kulisami TechCam-
pu? Gorąco. Mimo dobrego planu, check listy i zapasu
czasowego, na końcu i tak okazuje się, że na kilkadzie-
siąt minut przed eventem nie mamy właściwego kabla
do projektora. Patrząc z perspektywy trzech sezonów,
takich smaczków nie da się do końca wyeliminować.
Ale dzięki prężnej ekipie nie ma pożaru, którego nie
dałoby się ugasić. Nam się udaje;)
Robimy odcinek! Na początku jest chaos. Dyskusja
na temat listy tematów, które warto wziąć na warsz-
tat, typowanie prelegentów, poszukiwanie lokalu a
potem dopięcie umów. Nasi uczestnicy są wymagają-
cy nie tylko jeśli chodzi o rynek pracy. Projektowanie
eventu dla fanów front i back-endu oznacza dla huma-
nisty mojego pokroju zmianę myślenia. Uczestników
nie zadowoli marketingowe show, chcą zajrzeć do każ-
dego projektu z perspektywy kodu. Od strony organi-
zatorów bezcenny jest szczególnie jeden moment. To
chwila, kiedy machina promocji rusza, na nasze proś-
by odpowiadają dziennikarze i blogerzy, temat „żre” i
licznik rejestracji szaleje. Uff. Przyjdą, wysłuchają i po-
dyskutują. Oby jak najwięcej takich momentów w ko-
lejnym sezonie!
3 SEZON Z TECHNOLOGIĄ
TECHCAMPGdyby w tym evencie chodziło o liczby wystarczyłoby zacząć
wyliczankę – 8 odcinków, 2929 rejestracji, ponad 1,5 tys.
uczestników, 2025 minut prelekcji i 31 prelegentów. Ale statystyki
nigdy nie były celem samym w sobie. Założeniem TechCampu było
skupienie wokół idei IT aktywnej społeczności. A zapracować na nią
nie jest łatwo. Zapraszam za kulisy.
Joanna Bucior
PR Manager w Grupie Unity
W Grupie Unity odpowiada głównie za słowa
i ich odpowiedni styl. Dzięki nim tworzy relacje
z mediami, angażuje blogerów, redaguje ma-
gazyn, buduje społeczność pasjonatów no-
wych technologii. Z dumą wspiera promocję
takich wydarzeń jak TechCamp, Kongres Dy-
rektorów E-commerce czy InternetBeta. Absol-
wentka Dziennikarstwa i Komunikacji Społecz-
nej na Uniwersytecie Jagiellońskim.
Szkolenie Agile Project Management! Zdobądź certyfikat Agile od Arie van Bennekum, współautora Manifestu Agile! 2 dniowe szkolenie z zakresu zarządzania projektami: • Arie van Bennekum, jako Twój trener i moderator • Wiedza z zakresu pełnego cyklu projektowego z przy wykorzystaniu technik Agile takich jak Scrum, DSDM, DevOps, eXtreme Programming wraz z odniesieniem do Prince-2 • Całościowa przekrojowa wiedza o Agile, cyklu życia projektu, produktach, rolach, technikach, testowaniu, ramach czasowych, czynnikach powodzenia, najlepszych praktykach, ROI • 2 dni ciekawych dyskusji, wymiany wiedzy i dobrej zabawy Projekty realizowane szybciej i bardziej elastycznie Agile Project Management to metodyka zarzadzania projektami. Wytwarzanie oprogramowania w tej metodyce pozwala organizacjom na większą wydajność i elastyczne podejście do wymagań. Projekty mogą rozpoczynać się szybciej przy jednoczesnym zachowaniu odpowiedniej elastyczności w dokonywaniu zmian. Wykorzystanie Agile pozwala na dostarczenie najbardziej priorytetowych wymagań w krótkim okresie czasu, dzięki czemu szybciej mogą być realizowane założenia biznesowe. Szkolenie skierowane jest do: • Sponsorów projektu • Kierowników projektu • Scrum Masterów • Członków zespołów projektowych • Osób odpowiedzialnych za działania operacyjne • Osób odpowiedzialnych za działy IT Więcej informacji i zapisy na: http://www.cegeka.com/en/events/agile-training-poland/ 11 i 12 września 2014 Czas trwania: 2 dni Język: angielski Lokalizacja: Warszawa • do 31 lipca promocyjna cena - zapisz się już teraz! • przy zapisie 3 osób 10% zniżki! • przy zapisie 4 osób piąta uczestniczy za darmo! Ward Bryon Agile Project Manager Arie van Bennekum Współautor Manifestu Agile i przewodniczący Agile Consortium International
Wprowadzenie do HiVAT High Volume Automated Testing Jacek Okrojek Chciałbym przedstawić czytelnikom ideę HighVolume AutomatedTesting (HiVAT) i kilka prostych jej przykładów. Techniki HiVAT wykorzystywane są w praktyce od dawna ale często pomijają je popularne kursy testowania oprogramowania. Mam nadzieję, że artykuł zainspiruje czytelników do wzbogacenia swoich strategii testów. Technologie out of the box w .NET Paweł Górka Od wieków ludzie dążą do ulepszania świata. Każdy chce żyć wygodniej, pracując przy tym szybciej i wydajniej. Nie inaczej jest w programowaniu. Firmy wytwarzające oprogramowanie chcą zaspokoić coraz większe wymagania klientów pozostając przy tym konkurencyjni pod względem nie tylko jakości ale także szybkości wykonania kolejnych projektów. Dlatego przed rozpoczęciem realizacji zlecenia warto zadać sobie pytanie „jaką technologię wybrać aby optymalnie zrealizować projekt” nie zapominając przy tym o wygodzie pracy swoich programistów... NOWE Bezpieczeństwo w sieci – jak zostać specjalistą ds. bezpieczeństwa IT Ostatnie miejsca z 80 % dofinansowaniem z UE na certyfikowane szkolenia Akademii EITCA IS Bezpieczeństwo Informatyczne Tworzenie zapytań SQL przy użyciu refleksji Marek Łabędź Może się zdarzyć, że przy połączeniach do bazy nie będziemy chcieli użyć mapowania obiektoworelacyjnego (ORM), tylko będziemy chcieli skorzystać z mechanizmu JdbcTemplate dostarczonego przez Spring.W konfiguracji konfigurujemy bean DataSource i na jego podstawie tworzymy obiekt JdbcTemplate. 3 SEZON Z TECHNOLOGIĄ TECHCAMP Joanna Bucior Gdyby w tym evencie chodziło o liczby wystarczyłoby zacząć wyliczankę – 8 odcinków, 2929 rejestracji, ponad 1,5 tys. uczestników, 2025 minut prelekcji i 31 prelegentów.Ale statystyki nigdy nie były celem samym w sobie. Założeniem TechCampu było skupienie wokół idei IT aktywnej społeczności. A zapracować na nią nie jest łatwo. Zapraszam za kulisy. 12 18 8 4 Software Developer’s Journal jest wydawany przez NPRACA Sp. z o.o. Redakcja: sdjpl@sdjournal.pl Adres korespondencyjny: NPRACA Spółka z o.o. ul. 3 Maja 46, 72-200 Nowogard, Polska Oddział w Warszawie: ul. Postępu 17 D, 02-676 Warszawa, Polska www.sdjournal.pl Facebook: https://www.facebook.com/SoftwareDevelopersJournal Redakcja dokłada wszelkich starań, by publikowane w piśmie informacje i programy były poprawne, jednakże nie bierze odpowiedzialności za efekty wykorzystania ich; nie gwarantuje także poprawnego działania programów shareware, freeware i public domain. Wszystkie znaki firmowe zawarte w piśmie są własności odpowiednich firm. Zostały użyte wyłącznie w celach informacyjnych. Osoby zainteresowane wspópracą prosimy o kontakt: sdjpl@sdjournal.pl Skład i łamanie / projekt okładki: Digital Concept www.digitalconcept.pl admin@digitalconcept.pl 21 REKLAMA Jeżeli jesteś zainteresowany/a reklamą swoich produktów w naszym magazynie Jeżeli jesteś zainteresowany/a wypromowaniem swojej marki wśród specjalistów IT Jeżeli szukasz klientów lub pracowników Zareklamuj się u nas! Posiadamy bazę 90 tysięcy specjalistów z różnych działów IT! W celu uzyskania oferty reklamowej skontaktuj się z nami: sdjpl@sdjournal.pl tel. 799 46 34 76 www.sdjournal.pl
4/20144 K lasyczne techniki testowania oprogramowania mają za zadanie zminimalizować liczbę przypad- ków testowych. Zwykle dzieje się to poprzez wybranie reprezentatywnych danych wejściowych bądź scenariuszy, dla których zachowanie aplikacji powinno być podobne. Testowana aplikacja może mieć jednak problemu z pewnym specyficznym przypadkiem. Na przykład, może popełniać błędy zaokrąglania, które są zwykle zbyt małe, aby je zwykle zauważyć ale widoczne co pewien czasu dla specyficznych danych. Podobna sy- tuacja może dotyczyć scenariuszy testowych. Błąd mo- że być widoczny tylko gdy scenariusze wykonają się w odpowiedniej kolejności. Wykrycie tego rodzaju pro- blemów często wymaga przeprowadzenia dużo więk- szej ilości testów niż wynika to z klasycznej analizy. Po- móc w tym może HiVAT. Robocza definicja HiVAT mówi, iż jest to rodzina tech- nik testowania skupiająca zainteresowanie testera na po- tencjalnie podejrzanych wynikach testów, podczas gdy generowanie, wykonywanie i interpretowanie olbrzymiej liczby testów odbywa się w sposób programowalny. Dzię- ki temu możliwe jest wykonanie olbrzymiej liczby testów. Dużą uwagę HiVAT w ostatnich latach poświęcili Do- ug Hoffman oraz Cem Kaner z grupą studentów Florida Tech. Jak sami podkreślają sama idea była wykorzysty- wana już wcześniej i to wielu niezależnych organizacjach. Kaner w artykule An Overview of High Volume Auto- mated Testing (Kaner, 2013) podał i usystematyzował przykłady dwanastu technik, jakie kryją się pod tym po- jęciem. Techniki te pogrupował w następujący sposób: • testy skupiające się na danych wejściowych, • testy wykorzystujące istniejące narzędzia lub wcze- śniej przygotowane scenariusze, • testy wykorzystujące możliwość automatycznej we- ryfikacji wyniku. Bardzo często implementacja technik związanych z dwiema pierwszymi grupami jest dość prosta i nie wymaga budowy zaawansowanych rozwiązań. Ostat- nia z grup opiera się o bardziej skomplikowane roz- wiązania, w których cały proces generowania, prze- Wprowadzenie do HiVAT High Volume Automated Testing Chciałbym przedstawić czytelnikom ideę High Volume Automated Testing (HiVAT) i kilka prostych jej przykładów. Techniki HiVAT wykorzystywane są w praktyce od dawna ale często pomijają je popularne kursy testowania oprogramowania. Mam nadzieję, że artykuł zainspiruje czytelników do wzbogacenia swoich strategii testów. Rysunek 1. Skanowanie luk bezpieczeństwa przeprowadzone przez soapUI DOWIESZ SIĘ... • Co kryje się pod nazwą HiVAT • Jak w praktyce wykorzystać HiVAT POWINIENEŚ WIEDZIEĆ... • Jak wygląda cykl życia produktu. • Jakie klasyczne techniki wykorzystuje się do testowa- nia oprogramowania.
www.sdjournal.pl 5 High Volume Automated Testing treści. Rysunek 1 przedstawia przykład tego typu te- stów przeprowadzanych przez aplikację soapUI. Inną często spotykaną realizacją testów skupionych na danych jest testowanie sterowane danymi (ang. Data Driven Testing). W takim przypadku koniecz- ne jest tylko stworzenie narzędzia, zwykle prostego skryptu, generującego odpowiednio duży zbiór da- nych wejściowych. O ile jest to możliwe można oczy- wiści wygenerować wyniki i pozwolić narzędziu na ich weryfikację. Możliwości niektórych narzędzi pozwala- ją łatwo generować dane przed każdym z testów. W przykładzie powyżej skrypt Groovy generuje loso- we wartości z zadanego przedziału. Narzędzie samo jest w stanie sprawdzić czy wysłane zapytanie nie spowodo- wała awarii systemu lub nie zwróciło informacji o wyjąt- ku (Soap Fault). Wykorzystując skrypt Groovy w prosty sposób możemy też dodać automatyczne sprawdzania poprawności danych przesłanych w odpowiedzi. Przy generowaniu pseudo-losowych danych autorzy opracowań na temat HiVAT zalecają by wykorzystać ziarno (ang. seed) dające możliwość odtworzenia se- kwencji danych. Pozwala to na przeprowadzanie testów w powtarzalny sposób a przez to łatwiejsze poszukiwa- nie przyczyn błędów. Long-Sequence Regression Testing Techniką należącą do drugiej grupy w klasyfikacji Kanera jest technika Long-Sequence RegressionTesting (LSRT). Pole- ga ona na wykonywaniu istniejących testów regresyjnych prowadzania i oceny testów możemy powierzyć na- rzędziu. Testy skupiające się na danych wejściowych Tego rodzaju testy są szczególnie pomocne w przypad- ku testowania dużych ilości kombinacji wejściowych, błę- dów związanych z zależnościami czasowymi, uszkodze- niem danych lub problemami z wykorzystaniem pamięci (Cem Kaner, Carol Oliver & Mark Fioravanti, 2013). O ile przygotowanie dużego zbióru danych wejściowych i automatyczne wykonanie scenariuszy często nie jest problemem, to ocena wyników testów nie jest już tak prosta. Autorzy opracowań sugerują by w takich przy- padkach ograniczyć się do weryfikacji czy testowany system nie zaraportował błędu lub nie uległ awarii. Mo- żemy również sprawdzić czy przeszedł do odpowiednie- go stanu. Automatyczne wykrycie takiego zdarzenia jest zadaniem prostrzym od kompletnego sprawdzenia wyni- ków testu ale często wystarczającym do wykrycia pro- blemu w działaniu aplikacji. Dobrym przykładem zastosowania testów HiVAT skupionych na danych wejściowych są testy bezpieczeń- stwa aplikacji. Oprogramowanie próbujące pokonać za- bezpieczenia aplikacji dysponuje zbiorem potencjalnie niebezpiecznych danych wejściowych. Wykorzystując te dane wykonuje dużą liczbę testów i sprawdza czy odpowiedzi systemu nie ujawniają wrażliwych danych lub też czy nie udało się dotrzeć do nieautoryzowanych Rysunek 2. Generowanie danych w soapUI
4/20146 w losowej kolejności przez możliwie długi okres czasu. Podejście to ma zredukować ryzyko nie wykrycia błędów związanych ze specyficzną kombinacją operacji wykony- wanych przez system. Zaleca się by do testów LSRT wy- brać tylko testy pozytywne. Zalecenie to bazuje na fakcie, iż zwykle użytkownik będzie wykonywał poprawne akcje i wśród takich kombinacji poszukiwanie potencjalnych pro- blemów jest również bardziej opłacalne. Kolejnym wa- runkiem niezbędnym do implementacji tej techniki jest niezależność testów a więc możliwość wykonania ich w dowolnej kolejności. Jeśli chodzi o implementacje tej techniki z pomocą rów- nież przychodzą nam narzędzia. JUnit oraz TestNG do- myślnie nie określają kolejności w jakiej będą wykonywa- ne testy. Praktyka pokazuje, że kolejność testów w danym środowisku jest stała o ile testy uruchamiane są sekwencyj- nie. Przy odrobinie dodatkowej pracy możliwa jest jednak w obu narzędziach zmiana domyślnej kolejności testów. W JUnit możliwe jest to poprzez adnotację @FixMethodOrder w TestNG poprzez mechanizm priorytetów. Automatyczna weryfikacja wyników Ciekawym przykładem zastawania technik wykorzystują- cych możliwość automatycznej weryfikacji wyników jest scenariusz, w którym nie znamy dokładnie reguł bizne- sowych testowanego systemu. Często ma to miejsce gdy rozwijamy system stworzony przez innego dostawcę. Wykorzystując duży zbiór danych wejściowych może- my dokonać testów na systemie referencyjnym (np. po- przedniej wersji systemu), zapisać uzyskane odpowiedzi a następnie wykorzystać uzyskane dane przy weryfikacji testowanego systemu (nowej wersji). W ramach Center for Software Testing Education and Re- search powstała referencyjna implementacje architektury, którą można wykorzystać w takiej właśnie sytuacji (Hi- VAT). Rysunek 3 przedstawia schemat logiczny rozwiąza- nia Functional EquivalenceTester 1.0. W prezentowanym rozwiązaniu użytkownik (tester) wy- korzystuje GUI by określić liczbę testów oraz listę wzor- ców wykorzystywanych do generowania testów. W opar- ciu o reguły zapisane w Knowledge Expert i wybrane przez użytkownika wzorce, Test Generator tworzy wymagane przypadki testowe. Dzięki interfejsom do testowanego sys- temu (SUT Interface) i implementacji referencyjnej (Oracle Interface) możliwe jest równoległe wykonanie testów oraz porównanie otrzymanych wyników. Informacje o rezulta- cie porównania są zapisywane do pliku wynikowego. HiVAT a testy obciążeniowe Myślę, że pewna grupa czytelników może odnieść wraże- nie, iż ryzyka, które można zminimalizować dzięki HiVAT (szczególnie jeśli chodzi o dwie pierwsze grupy rozwią- zań) można z powodzeniem zminimalizować przez wyko- nanie testów wydajnościowych. Diabeł tkwi w szczegó- Rysunek 3. Budowa Functional Equivalence Tester 1.0
www.sdjournal.pl 7 High Volume Automated Testing łach i to stwierdzenie może być prawdziwe w zależności od strategii testów wydajnościowych i ich implementacji. Jeśli poświęcimy dużą uwagę analizie i przygotowaniu da- nych wejściowych a także stworzeniu różnorodnych sce- nariuszy możemy rzeczywiście wykryć podobne klasy błę- dów. Nie zawsze jednak faza testów obciążeniowych jest konieczna w projekcie mimo, że oczekiwania co do nieza- wodności systemu od strony funkcjonalnej są bardzo wy- sokie np. przetwarzania niewielkiej liczbę transakcji mię- dzybankowych na duże sumy. W takich wypadkach warto włączyć techniki HiVAT do strategii testów. Podsumowanie Techniki HiVAT mogą być ciekawym uzupełnieniem kla- sycznych technik testowania oprogramowania. W za- leżności od kontekstu projektu mogą się one wydawać mniej lub bardziej potrzebne. Decyzja o ich zastosowa- niu jak zawsze będzie wynikiem relacji kosztów awarii do kosztów jej wykrycia. Czytelnikom zainteresowanym tematem polecam zapoznanie się z materiałami cytowa- nymi w tym artykule a także własne eksperymenty. JACEK OKROJEK Tester, koordynator i kierownik testów z wie- loletnim doświadczeniem w testowaniu sys- temów wysokiej dostępności. Jako konsul- tant do spraw zapewnienia jakości prowadził i uczestniczył w wielu złożonych projektach dla klientów z sektora usług medycznych oraz te- lekomunikacyjnych, a obecnie bankowości inwestycyjnej. Pracował w obszarze testów in- tegracyjnych, systemowych oraz akceptacyj- nych. Autor rozwiązań automatyzujących pro- ces testowania oprogramowania doceniają- cy wagę testowania eksploracyjnego. Entu- zjasta dynamicznych metod wytwarzania i te- stowania oprogramowania. Bibliografia Cem Kaner, Carol Oliver & Mark Fioravanti. (2013, April 30). How to Actually DO High Volume Auto- mated Testing. Retrieved from Cem Kaner, J.D., Ph.D.: http://kaner.com/pdfs/StarHiVAT2013Kane- rOliverFioravantiFinal.pdf HiVAT. (n.d.). Retrieved from Testing Education: http://testingeducation.org/wordpress/?page_ id=107 Kaner, C. (2013, Jan 14). An Overview of High Vo- lume Automated Testing. Retrieved from Cem Ka- ner, J.D., Ph.D.: http://kaner.com/?p=278 REKLAMA
4/20148 A nalizując wszystkie „za i przeciw” musimy wziąć pod uwagę wymagania które stawia nam projekt i często dochodzimy do wniosku iż najlepszym rozwiązaniem jest technologia Microsoft .NET. Dlaczego? Po co wymyślać koło od nowa, sko- ro platforma .NET udostępnia nam masę rozwiązań gotowych do użycia, które codziennie wykorzystuje (i testuje) miliony osób. BEZPIECZEŃSTWO To chyba najważniejszy aspekt aplikacji. Nie powinien dziwić więc fakt, iż Microsoft postanowił udostępnić gotowe mechanizmy, szczególnie dla aplikacji webo- wych. Zaczynając więc od najstarszych warto wspo- mnieć o ASP.net Membership & Role provider. Jest to zestaw interface’ów, oraz gotowych implementacji do zarządzania kontami użytkowników oraz ich upraw- nieniami. Dlatego już na wstępie tworzenia projektu programista ma do dyspozycji gotową funkcjonalność rejestracji, logowania (wraz z pamiętaniem konta), przypominanie i resetowanie hasła, czy zarządzanie rolami. Co więcej polityka bezpieczeństwa (jak np. długość i skomplikowanie hasła, automatyczne wylo- gowanie, blokowanie konta po kilkukrotnym błędnym logowaniu itp.) jest dostępna z poziomu konfiguracji a nie aplikacji, więc zarządzanie nią można spokojnie wydelegować do administratora. Aby skorzystać z lo- gowania domenowego w zasadzie skonfigurować inny provider w konfiguracji aplikacji. W dobie dzisiejszego Internetu mnogość posiadanych kont (a szczególnie haseł) popchnęła za sobą potrzebę zminimalizowania ich ilości. To zadanie ułatwiło maso- we spopularyzowanie m.in. portali społecznościowych takich jak Facebook, Twitter oraz witryn zaufanych kor- poracji takich jak Google czy Microsoft które mogą peł- nić rolę „poświadczyciela” wierzytelności swoich użyt- kowników. OAuth – bo o nim mowa – jest otwartym standardem autoryzacyjnym pozwalającym jednej witrynie interneto- wej udostępniać prywatne zasoby innej witryny za po- średnictwem nazwy użytkownika oraz jednorazowego hasła (tokenu). Co najważniejsze strona odbierająca in- formacje nie musi być „świadoma” struktury wewnętrz- nych poświadczeń oraz mechanizmów autoryzacyjnych (w tym hasła!). Tworząc nowy projekt ASP MVC dostajemy goto- we mechanizmy do wykorzystania. Tylko pare linijek kodu dzieli programistę od tego, aby do nowej apli- kacji mógł się zalogować kontem z Facebook, Linke- dIn czy własnym Microsoft LiveID. Użytkownik pod- czas logowania zostanie przekierowany na stronę Technologie out of the box w .NETOd wieków ludzie dążą do ulepszania świata. Każdy chce żyć wygodniej, pracując przy tym szybciej i wydajniej. Nie inaczej jest w programowaniu. Firmy wytwarzające oprogramowanie chcą zaspokoić coraz większe wymagania klientów pozostając przy tym konkurencyjni pod względem nie tylko jakości ale także szybkości wykonania kolejnych projektów. Dlatego przed rozpoczęciem realizacji zlecenia warto zadać sobie pytanie „jaką technologię wybrać aby optymalnie zrealizować projekt” nie zapominając przy tym o wygodzie pracy swoich programistów... DOWIESZ SIĘ... • Jakie gotowe mechanizmy i narzędzia oferuje MS .NET w tworzeniu i optymalizacji oprogramowania • Jak MS .NET umożliwia tworzenie uniwersalnego opro- gramowania (www, mobile) • Jak MS .NET wspiera bezpieczeństwo aplikacji POWINIENEŚ WIEDZIEĆ... • Czym jest technologia MS .NET i kiedy warto po nią sięgnąć
www.sdjournal.pl 9 Out of the box w .NET@Model.FirstName @* wypisane bezpośrednio do widoku *@FirstName RAW:@Html.Raw(Model.FirstName) @* jawne wyłączenie kodowania *@} Jak widać w dwóch pierwszych przypadkach skrypt został zakodowany a jego treść została wyświetlona na stronie, natomiast w przypadku trzecim skrypt został wykonany co potencjalnie może prowadzić do niebez- pieczeństwa. NOWOCZESNOŚĆ Tworząc rozwiązania webowe nie możemy zapo- mnieć o trendach związanych z wyglądem strony. Tutaj z pomocą przychodzą nam gotowe szablony pozwalające korzystać z dobrodziejstw każdemu do- brze znanemu Twitter bootstrap – frameworkowi CSS oferującemu kompletny pakiet narzędzi pozwala- jących na tworzenie spójnych, nowoczesnych, a także responsywnych aplikacji Internetowych. Twitter boot- strap oferuje m.in. System grid – który można dosto- sować do własnych potrzeb, strukturę pod tworzenie stron dostosowujących swój wygląd i zachowanie do rozdzielczości urządzenia (RWD), mechanizmy nawi- gacji, zakładek, powiadomień czy zunifikowany zestaw styli, ikon fontów, formularzy, przycisków itp. Wspo- mniany bootstrap jest zatem znakomitą podstawą „poświadczyciela” w celu autoryzacji oraz zaakcep- towania przekazania prywatnych danych (np. zdjęć, treści itp.). Aktualnie istnieje wiele gotowych implementacji stan- dardu OAuth udostępnianych przez zaufanych poświad- czycieli (np. wspomniane portale takie jak Facebook, Twitter, czy Google) jednak istnieje także możliwość tworzenia własnych providerów. Daje to możliwość zintegrowania nowych aplikacji przykładowo z konta- mi korporacyjnymi, lub istniejącymi już rozwiązaniami wdrożonych w naszej firmie. Ale bezpieczeństwo to nie tylko login i hasło. Tworząc aplikacje webowe (szczególnie dostępne publicznie w In- ternecie) należy pamiętać, że istnieje grupa złych ludzi którzy coś chcą popsuć, lub co gorsza coś przywłaszczyć wykorzystując do tego rozmaite sztuczki. Warto więc pamiętać, iż w przeciwieństwie do innych języków pro- gramowania ASP MVC (od wersji 3) silnik renderujący widok standardowo encode’uje treść nie pozwalając wy- konać złośliwych skryptów. Co to oznacza w praktyce? Poniższy przykład powi- nien to jasno zobrazować (patrz Rys. 2): @using (Html.BeginForm()) { @Html.Label(«Enter Your name:») @Html.TextBoxFor(m => m.FirstName)FirstName encoded:@Html.DisplayFor(m => m.FirstName)@* wypisane przez html helper *@FirstName encoded 2:Rysunek 1.
4/201410 do stworzenia spójnego, unikalnego i nowoczesnego layoutu co znacznie może wpłynąć na Mimo istniejącej wspomnianej wcześniej techniki Re- sponsiveWeb Design (RWD) wciąż wiele firm decyduje się na utworzenie osobnej strony dla urządzeń mobilnych (głównie telefonów komórkowych). Wykorzystując plat- formę.NETadokładniejASPMVCodwersji4mamymoż- liwość stworzenia aplikacji o wspólnej logice lecz dwóch (lub więcej) różnych layout’ach – dla wersji desktop oraz mobile. Co więcej dzieje się to całkiem automatycznie. Przykładowo posiadając widok: ~/Views/Home/Index.cshtml Możemy utworzyć drugi plik: ~/Views/Home/Index.Mobile.cshtml który zostanie wykorzystany gdy na stronę wejdziemy z urządzenia mobilnego. Co więcej po drobnym roz- szerzeniu kodu możemy zdefiniować dodatkowe wido- ki dla konkretnych przeglądarek (a dokładniej wartości UserAgent), np.: ~/Views/Home/Index.iPhone.cshtml Oczywiście kontroler akcji pozostaje wspólny i nie- zmienny, np.: public ActionResult Index() { HomeIndexViewModel model = new HomeIndexViewModel(); return View(model); } UNIWERSALNOŚĆ Wraz z rozwojem technologii oraz szeroką gamą możliwości dostępu do danych i urządzeń które z tych danych mogą korzystać rośnie też potrzeba ła- twiejszego i bardziej uniwersalnego do nich dostę- pu. Jednym z przykładów takiej uniwersalności którą oferuje nam platforma .NET jest technologia WCF (Windows Communication Foundation) – usługa siecio- wa która skupia w sobie i unifikuje większość do- tychczasowych technologii Microsoft służących do komunikacji sieciowych, m.in. .NET Remoting, Web Services, MSMQ zapewniając przy tym bezpieczeń- stwo, niezawodność, profilowanie a nawet transak- cyjność. Potęgą WCF jest fakt, iż raz napisany kod może być skonfigurowany jednocześnie na wiele sposobów, przy- kładowo: • Dana usługa wewnątrz sieci LAN działać może po- przez protokół TCP/IP • Inna aplikacja odwoływać się może protokołem http pobierając dane w formacie XML wykorzystując SOAP • Ta sama funkcjonalność poprzez protokół HTTPS może być udostępniana poza sieć wewnętrzną np. w formacie JSON Dzięki powyższemu rozwiązaniu wiele różnych apli- kacji może wykorzystywać dokładnie te same me- tody w wygodnym dla siebie formacie, administra- torzy mają możliwość bez wiedzy programistycz- nej skonfigurować dostęp i reguły bezpieczeństwa, a logika aplikacji pozostaje spójna i łatwa w zarzą- dzaniu. Wychodząc naprzeciw nowym trendom budowania aplikacji Microsoft także zdecydował się na znakomite rozwiązanie wspierające tworzenie WebAPI opierając implementację na technologii ASP MVC. WebAPI stwo- rzone jest z myślą budowania tzw. REST-full application, w tym: • Rich-client web application – dynamicznych stron wy- korzystujących wiele wywołań AJAX • Single-page application – z wykorzystaniem jQuery, Knockout.js i podobnych bibliotek wyraźnie zwięk- szy szybkość i łatwość tworzenia stron www • Aplikacje www na urządzenia mobilne – ze względu Rysunek 2.
www.sdjournal.pl 11 Out of the box w .NET na ciężką strukturę XML telefony lepiej zniosą ko- munikację w modelu REST, niż w usługowym stan- dardzie SOAP. WebAPI to także znakomite narzędzie do budowania aplikacji rozproszonych, a także dających możliwość integracji systemom zewnętrznym. Biorąc pod uwa- gę dzisiejsze trendy oraz dążenie do tego aby jak naj- ściślej powiązać i ujednolicić ze sobą wszystkie usługi i aplikacje WebAPI zdaje się być silnym konkurentem na tle pozostałych rozwiązań. Nic więc dziwnego że fir- ma z Redmond do swoich rozwiązań dodała znakomi- te wsparcie właśnie tej technologii w dodatku w bar- dzo przystępnej formie. PRODUKTYWNOŚĆ Mnogość rozwiązań które oferuje platforma .NET ma jeszcze jedną zaletę. Microsoft dostarcza narzędzia któ- re doskonale ze sobą współgrają tworząc często jed- nolitą całość. Poczynając od Visual Studio uważanego za jedno z najlepszych środowisk programistycznych które w dodatku można wykorzystać za darmo wraz z (również darmowym w podstawowej wersji) silnikiem i narzędziami bazodanowymi MS SQL Server. Oprócz standardowych funkcjonalności które każde szanują- ce się IDE musi posiadać Visual Studio udostępnia m.in. wbudowany manager pakietów Nuget pozwalające na bardzo proste, szybkie i wygodne zarządzanie bibliote- kami, rozszerzeniami czy skryptami w naszym projek- cie. Instalowanie pakietów przez nuget automatycznie dodaje do projektu wszystkie potrzebne składniki (re- ferencje, skrypty js, pliki css itp.) rozmieszczając je we- dle przyjętych standardów. Natywna integracja z systemami kontroli wersji (TFS oraz GIT) wraz z całym zestawem narzędzi z pakietu „Te- am studio” wspierający pracę zespołową to kolejny punkt zwiększający produktywność. Ważnym elementem jest też ścisła integracja z roz- wiązaniami chmurowymi (Windows Azure) która zarów- no wspiera tworzenie, zdalne debugowanie, proces wdrożenia jak i zarządzanie usługami w chmurze. Firma z Redmond także udostępnia zaawansowane narzędzia do projektowania interface’u graficznego aplikacji. Dzię- ki pakietowi narzędzi Microsoft Expression w łatwy spo- sób można stworzyć bogate wizualnie aplikacje zarów- no mobilne, windowsowe (WPF/Silverlight czy aplikacje „Modern” dla Windows 8), jak również prototypować za sprawą „SketchFlow”. Co więcej pomimo ścisłej inte- gracji wszystkich składników Microsoft Expression jest ze- stawem osobnych narzędzi, przez co pozwala on wyde- legować pracę związaną z UX do specjalisty interface’u użytkownika który de facto nie musi być ściśle biegły w programowaniu. Jak widać liczba technologii oraz narzędzi jakie udostępnia nam Microsoft jest ogromna. Nie można także zapomnieć, iż firma ta starając się spopulary- zować swoje produkty organizuje i udostępnia nie- zliczoną ilość materiałów, dokumentacji, konferencji i szkoleń poszerzając wiedzę specjalistów, tworząc swego rodzaju wyspecjalizowaną społeczność. Nato- miast produkty wchodzące w skład platformy .NET wspierają praktycznie każdy aspekt prowadzenia projektu od jego początku do końca usprawniając i przyspieszając jego realizację dostarczając gotowych i sprawdzonych rozwiązań. Paweł Górka Senior Microsoft Developer w Intratic (Grupa Unity). Do je- go obowiązków należy roz- wój i utrzymanie aplikacji .NET oraz analiza i wsparcie klienta w zakresie integracji systemów IT. Odpowiedzialny za projekty m.in. takich Klientów jak Grupa Tubądzin, Rovese czy Top Secret. Absolwent Wyższej Szkoły Biznesu – National Louis Univer- sity w Nowym Sączu. REKLAMA
4/201412 W yobraź sobie, że Twój komputer staje się publiczny: ktoś zainteresowany może w do- wolnej chwili przejrzeć wszystko, co robisz i robiłeś w Internecie, przeczytać Twoje prywatne wia- domości, sprawdzić historię konta bankowego, pobrać zdjęcia, czy wykonać jeszcze groźniejsze manipulacje. Brzmi nieprawdopodobnie? Oczywiście nie dla specja- listów IT. Niestety takie sytuacje są nie tylko możliwe, ale i powszechne. Ponadto zdarzają się coraz częściej, uderzając nie tylko w korporacje czy strategiczne urzędy i ich pracowników, ale także zwykłych, “anonimowych” użytkowników Internetu. Zgodnie z opiniami wielu ekspertów ten stan rzeczy będzie się coraz dynamiczniej pogłębiał wraz z rosnącym coraz szybciej poziomem przenikania Internetu do naszej codzienności. Powoduje to, że specjalistyczne kompeten- cje, a nawet profil zawodowy specjalisty ds. bezpieczeń- stwa IT będzie z dużym prawdopodobieństwem świetnym kierunkiem rozwoju kariery i źródłem sporej satysfakcji. Żadne systemy zabezpieczeń IT nie są ani całkowicie bezpieczne, ani wolne od wad, a coraz to nowe zagro- żenia, których liczba zwiększa się razem z rozrostem “globalnej wioski”, zmuszają specjalistów z branży ICT do nieustannego szukania sposobów zapobiegających włamaniom do systemów i przechwytywaniu poufnych danych, zarówno osób prywatnych jak i firm czy sekto- ra publicznego. Z najnowszych badań Eurobarometru wynika, że już 18 proc. Polaków bezpośrednio doświad- czyło oszustw internetowych, a aż 8 proc. ukradziono elektronicznie tożsamość. Wprawdzie aż 33 proc. ba- danych użytkowników sieci twierdzi, że dobrze orien- tuje się w kwestiach zagrożeń internetowych, jednak eksperci oceniają, że jest to mylne przekonanie. Aż 8 na 10 ankietowanych otwiera e-maile z nieznanego źródła, a więcej niż połowa nie używa żadnego programu anty- wirusowego na swoim komputerze. Sytuacja ta determinuje rosnące zapotrzebowanie na specjalistów, dobrze wykształconych w tej dziedzinie i posiadających specyficzne, praktyczne kompetencje. Spe- cjaliści i oficerowie ds. bezpieczeństwa IT zarabiają obec- nie średnio najwięcej spośród zawodowych profili infor- matyków. Często przy tym ich profil wykształcenia jest odmienny - decydują certyfikaty i profesjonalne szkolenia (najlepiej międzynarodowe, o obszernych programach merytorycznych) oraz doświadczenie zawodowe, które trzeba zacząć budować w danym obszarze jak najszybciej. Kiedy zakres obowiązków takich specjalistów zaczyna obejmować także zarządzanie bezpieczeństwem IT orga- nizacji, ich pensja nie tylko znacząco wzrasta do pułapów menadżerskich, ale także zaczynają odgrywać strategiczną rolę dla całej instytucji mając przy tym bezpośredni wpływ na tryb jej działania. Należy podkreślić, że specjalistów ds. bezpieczeństwa, którzy wraz z rozwojem lub postępującą informatyzacją instytucji zostają desygnowani do podjęcia się takiej roli, w większości organizacji pracuje bardzo nie- wielu (najczęściej są to pojedyncze etaty). Tak więc jest o co powalczyć. Ale od czego należy zacząć? Bezpieczeństwo połączenia Zadaniem bezpiecznego połączenia jest przed wszystkim chronienie tożsamości użytkownika oraz jego działalności w sieci. Zachowanie wysokiego poziomu anonimowości NOWE Bezpieczeństwo w sieci jak zostać specjalistą ds. bezpieczeństwa IT - ostatnie miejsca z 80 % dofinansowaniem z UE na certyfikowane szkolenia Akademii EITCA IS Bezpieczeństwo Informatyczne
www.sdjournal.pl 13 Bezpieczeństwo w sieci By zabezpieczyć skrzynkę e-mail również można posił- kować się dodatkami do przeglądarek, kodującymi wia- domości np. poprzez szyfrowanie OpenPGP (pozwalają- ce m.in. podpisywać cyfrowo pocztę, zarządzać kluczami czy weryfikować autentyczność nadawcy – takim dodat- kiem jest MailEnvelope czy SafeMail). Skrzynkami, które stale działają w tej technologii jest Hushmail i Counter- Mail ( stosujący 4096-bitowe klucze szyfrujące). Człowiek kontra komputer kwantowy Raport Trend Micro "Spear-Phishing Email: Most Favored APT Attack Bait" pokazuje, że tak jak w latach ubiegłych, wielu włamań do sieci korporacji wciąż wykonuje się wy- korzystując zainfekowane załączniki do maili. Wystarczy, że wiadomość otworzy jeden pracownik korporacji, aby na celowniku cyberprzestępców znalazły się dane krążą- ce po wewnętrznej sieci całej firmy. Sprzyjają temu pro- ste rozwiązania technologiczne zabezpieczeń (bardzo często bazujące na szyfrowaniu z rzadko wymienianymi kluczami kryptograficznymi). Z powodu fundamentalnych słabości klasycznych metod zabezpieczeń naukowcy starają się opracować nowe me- tody szyfrowania danych, w sposób jakościowy różniące się odpowiedzią na ataki. Jedną z obiecujących alternatyw klasycznych systemów kryptograficznych (które stanowią podstawę wszelkich rozwiązań bezpieczeństwa IT) okazu- je się dziś kryptografia kwantowa. Precyzyjnie Kwantowa Dystrybucja Klucza (QKD) może wkrótce znaleźć szero- kie zastosowanie na rynku telekomunikacyjnym, jak rów- nież pomóc lepiej zabezpieczyć kluczowe łącza budynków administracji publicznej i wrażliwych instytucji (np. finan- sowych, czy wojskowych). Do przesyłania danych wyko- rzystuje ona mikroskopową, zachowującą się w sposób kwantowy wielkość fizyczną układu kwantowo mecha- nicznego (np. polaryzację fotonu). Dzięki prawom mecha- niki kwantowej, symetryczny i zupełnie losowo wygenero- wany klucz służy do kodowania i dekodowania informacji, i przeciwdziałanie atakom oraz wyciekowi poufnych da- nych można wdrożyć, korzystając np. z serwerów anoni- mizujących lub trasowania cebulowego. Serwery anonimi- zujące (np. Anonymouse) pozwalają na ukrycie adresu IP czy ciasteczek użytkownika, natomiast trasowanie cebulo- we (użyte pierwotnie w sieci Tor – The Onion Router) działa na podstawie wielokrotnego, kryptograficznego szyfrowania wiadomości, a następnie przesyłania jej przez ciąg węzłów (tzw. routerów cebulowych), które kolejno usuwają warstwę szyfrowania by otrzymać informacje o dalszym trasowaniu i przekazują dane do następnych ro- uterów, w ten sposób nie ujawniając danych dotyczących użytkownika i przesyłanej wiadomości. Ochronę przeciw atakom zapewnia także połączenie tunelowe funkcjonujące poprzez nawiązywanie zaszy- frowanego połączenia z zabezpieczonym serwerem sie- ciowym. Wówczas cały ruch sieciowy prowadzący od komputera do tej usługi, czyli serwera Proxy, odbywa się przez zaszyfrowane połączenie – na tej zasadzie dzia- ła m.in. program WiFi Protector, służący chronieniu da- nych w niezaszyfrowanej sieci WLAN (np. sieć w hotelu lub bezpłatne WiFi miejskie). Chroniona przeglądarka i e-mail Przeglądarka to bodaj najmocniej użytkowana aplikacja pozwalająca na korzystanie z zasobów Internetu. Nie- stety, żadna przeglądarka nie daje całkowitej pewności ochrony przesyłanych danych. W tym roku organizatorzy Pwn2Own, konkursu dla hackerów służącego odnalezie- niu jak największej ilości luk i błędów w oprogramowa- niu, wypłacili rekordową ilość nagród pieniężnych (łącznie ponad 850 tys. dolarów) właśnie w kategorii popularnych przeglądarek. By wspomóc bezpieczeństwo przeglądarki, należy przede wszystkim regularnie ją aktualizować - no- we wersje aplikacji „łatają” luki starszych wersji, zwięk- szając jej odporność na wykryte już zagrożenia. Alterna- tywą są także mniej popularne przeglądarki, tworzone na silnikach tych najbardziej znanych, jednak ukierunkowane na kwestie związane z ochroną danych (np. SRWare Iron oparta na Google Chrome lub Tor Browser korzystająca z rozwiązań Mozilla Firefox). Pomocne może okazać się również korzystanie z rozszerzeń wykrywających tropi- cieli i web bugi (dodatek Ghostery), lub zapobiegających namierzaniu i śledzeniu działalności (np. DoNotTrack). Rysunek 1. Ultranowoczesne prototypowe metody szyfrowania danych: bezsplątaniowa i splątaniowa kwantowa dystrybucja klucza QKD oparta na mechanice kwantowej (fot. seQre.net) Rysunek 2. Komputery D-Wave Two podczas pracy - takie same systemy zakupione zostały w maju 2013 przez firmę Google Inc. we współpracy z NASA oraz przez firmę Lockheed Martin (fot. D-Wave Inc.)
4/201414 gwarantując teoretycznie absolutny, tj. bezwarunkowy poziom bezpieczeństwa wymiany danych. Wdrożenie ta- kich rozwiązań na szeroką skalę pozwoliłoby choć w pew- nym stopniu wyeliminować krytyczny czynnik ludzki w zakresie narażenia na ujawnienie informacji (np. poprzez hasła, umożliwiające do uzyskania dostępu do przecho- wywanych w systemach informatycznych rzadko zmienia- nych kluczy szyfrujących). Podczas gdy komputery kwantowe stają się rzeczywi- stością (w maju 2013 roku NASA i Google we wspól- nym przedsięwzięciu wdrożyły 512 qubitowe nadprze- wodzące komputery kwantowe DWave Two, tworząc pierwsze na świecie kwantowe laboratorium sztucznej inteligencji - http://www.youtube.com/watch?v=CMdH- DHEuOUE, a niedługo potem Washington Post opubli- kował nowe doniesienia Edwarda Snowdena nt. zaawan- sowania prac NSA w tym zakresie), bezpieczeństwo krytycznej komunikacji elektronicznej w sieci podlega procesowi przewartościowania. Klasyczne kryptosyste- my, opierające się na tzw. matematycznych problemach trudnych są zakwestionowane, jako że problemy te mo- gą być skutecznie rozwiązane przez komputery kwanto- we, maszyny obliczeniowe, działające w oparciu o prawa mechaniki kwantowej, a nie fizyki klasycznej. Wiąże się z tym coraz szerzej dostrzegane zagrożenie dla rozma- itych zabezpieczeń komunikacji o kluczowej roli dla in- stytucji sektora finansów i bankowości, administracji pu- blicznej czy wojska. Jedyne pewne zabezpieczenie przed komputerami kwantowymi, czyli kryptografia kwantowa jest obecnie głównym kierunkiem rozwoju nowoczesnego bezpie- czeństwa informatycznego. Systemy oparte na złożonych zasadach kryptografii kwantowej już teraz są stosowa- ne w sektorze bankowości, w Szwajcarii, Luksemburgu, Niemczech, Austrii oraz w Japonii i USA, wyznaczając nowe standardy zabezpieczeń kluczowych danych i naj- ważniejszych łącz komunikacyjnych. Dzięki specyficznym regułom fizyki kwantowej systemy QKD są na poziomie fundamentalnych praw fizyki kwantowej niepodatne na próby zewnętrznego przechwycenia czy skopiowania przekazywanych informacji. Wiedza podstawą przeciwdziałania zagrożeniom – certyfikat z Bezpieczeństwa Informatycznego kluczem do interesującej kariery zawodowej Czy jednak technologia, nawet tak zaawansowana jak kryptografia kwantowa pozwoli wyeliminować czynnik ludzki? W ochronie danych niebagatelne znaczenie ma sa- ma świadomość użytkownika, iż są one zawsze narażo- ne na potencjalne ataki z zewnątrz. Nie do przecenienia wydaje się zatem rozległa wiedza w tematyce zagrożeń i IT security, która pomaga nie tylko zgłębić problematykę bezpieczeństwa, ale także aktywnie uczestniczyć w prze- ciwdziałaniu utracie czy przejęciu prywatnych informacji. Najważniejsze informacje z zakresu bezpieczeństwa syste- mów operacyjnych, zaawansowanej informatyki i krypto- grafii kwantowej, chronionych sieci komputerowych czy złożoności obliczeniowej (m.in. maszyny Turinga i RAM) pozwalają dogłębnie zrozumieć aktualną złożoność pro- blemu bezpieczeństwa sieci i systemow komputerowych i sprawnie poruszać się w środowisku z nim związanym. Przede wszystkim jednak otwiera drogę to fascynującej kariery zawodowej w bardzo deficytowym obecnie ob- szarze, który będzie szybko skalował swoją strategiczną istotność dla dalszego rozwoju społeczenstwa informacyj- nego. Specjalistyczną i kompleksową wiedzę w zakresie no- woczesnego bezpieczeństwa IT, a przede wszystkim za- awansowane teoretyczne i praktyczne kompetencje za- pewnia profesjonalne, międzynarodowo certyfikowane i zdalnie realizowane szkolenie Akademii EITCA/IS Infor- mation Security, którego krajowym operatorem jest ICS CompLearn, a instytucją akredytującą Instytut EITCI w Brukseli. Rysunek 3. Laserowy moduł teleskopowy optyki kwantowej splątaniowego układu QKD stosowanego w kryptografii kwantowej dla komunikacji satelitarnej (fot. seQre.net) Rysunek 4. Wnętrze komputera D-Wave Two w kriogeniczej osłonie, widoczny nadprzewodzący procesor 512 qubitowy, wykorzystujący kwantowe tunelowanie elektronów w tzw. złączach Josephsona (fot. D-Wave Inc.)
www.sdjournal.pl 15 Bezpieczeństwo w sieci O AKADEMII EITCA/IS: Krajowa edycja Akademii EITCA/IS Bezpieczeństwa Informatycznego prowadzona jest w języku polskim w trybie e-learningowym w ramach 12 przedmiotów z uwzględnieniem w pełni zdalnie realizowanych pro- cedur egzaminacyjno-certyfikacyjnych przy akredytacji Instytutu EITCI w Brukseli. Szkolenie obejmuje łącz- nie aż 180 godzin zajęć (ćwiczeń, wykładów oraz e- laboratoriów). Umożliwia elastyczną organizację nauki i konsultacje z kadrą akademicką. Szkolenie (na pozio- mie akredytowanych studiów podyplomowych) obej- muje zagadnienia szeroko pojętego bezpieczeństwa in- formacji przetwarzanych w systemach elektronicznych (w tym w szczególności istniejących zagrożeń), stoso- wanych metod kryptograficznych, teorii podstaw bez- pieczeństwa informacji, metod zarządzania bezpieczeń- stwem informacji, aspektów formalno-prawnych, jak również szczegółowych zagadnień technicznych oraz technologii w dziedzinie zabezpieczeń sieci kompute- rowych i bezpieczeństwa systemów informatycznych. Program EITCA/IS przeznaczony jest dla pracowników dowolnych branż gospodarki, których praca związana jest z przetwarzaniem danych w ramach systemów in- formatycznych, jak również do specjalistów branży IT, oraz wszystkich osób zainteresowanych niezwykle cie- kawym i rozwojowym zagadnieniem bezpieczeństwa informacji, chcących nabyć lub poszerzyć swoje kom- petencje w tym zakresie. • Jest to międzynarodowy standard kompetencyjny IT szeroko upowszechniony i rozpoznawany przez pra- codawców na całym świecie (dotychczas wydano w UE kilkadziesiąt tysięcy certyfikatów EITCA) • Obejmuje kompleksowe szkolenia w interaktyw- nym trybie e-learning (e-wykłady, e-ćwiczenia i e- laboratoria wraz z konsultacjami) oraz egzaminy re- alizowane w pełni zdalnie przez Internet • Pozwala zdobyć certyfikaty EITCA oraz EITC wraz z suplementami wydawane przez Instytut EITCI w Brukseli, posiadające również akređytację Minister- stwa Edukacji Narodowej / Kuratora Oświaty • Realizuje od 150 do 180 godzin programu w ramach 10 do 12 przedmiotów EITC na Akademię o trud- ności adekwatnej dla zaawansowanych i początkują- cych, w okresie nawet 1 miesiąca • Dzięki unijnemu wsparciu ze środków Europejskie- go Funduszu Rozwoju Regionalnego w ramach pro- gramu POIG w krajowej edycji Akademii EITCA wszystkie opłaty mogą być obniżone o 80% Program Akademii EITCA Bezpieczeństwo Informa- tyczne (EITCA/IS) składa się z 12 kursów EITC (pro- gramu European Information Technologies Certifi- cation) o łącznej merytorycznej zawartości progra- mowej 180 godzin (każdy kurs programowy EITC obejmuje zawartość programową 15h). Listę progra- mów EITC składających się na pełny zakres progra- mowy Akademii EITCA/KC, w zgodzie ze specyfika- cją programową Europejskiego Instytutu Certyfika- cji Informatycznej w Brukseli przedstawiono poniżej. Kliknięcie na nazwę kursu spowoduje wyświetlenie szczegółowego programu. Oprócz udziału w Akade- mii EITCA/IS, możliwe jest zakupienie udziału w jed- nym lub większej ilości kursów programu EITC z po- niższej listy. Przedmioty w Programie Akademii Bezpieczeństwa Informatycznego EITCA/IS • EITC/IS/CF: Podstawy kryptografii (15h) • EITC/IS/EEIS: Bezpieczeństwo informatyczne e- Gospodarki (15h) • EITC/IS/SMMOS: Administracja i zarządzanie bez- pieczeństwem w systemach Microsoft (15h) • EITC/IS/OS: Bezpieczeństwo systemów operacyj- nych (15h) • EITC/CN/SCN1: Bezpieczne sieci komputerowe 1 (15h) • EITC/CN/SCN2: Bezpieczne sieci komputerowe 2 (15h) • EITC/IS/ACNS: Zaawansowane bezpieczeństwo sie- ci informatycznych (15h) • EITC/IS/QCF: Kryptografia kwantowa (15h) • EITC/IS/FAIS: Formalne aspekty bezpieczeństwa in- formacji (15h) • EITC/IS/IST: Teoria bezpieczeństwa informatyczne- go (15h) • EITC/QI/QIF: Informatyka kwantowa w kontekście bezpieczeństwa (15h) • EITC/FC/CCT: Złożoność obliczeniowa jako pod- stawa bezpieczeństwa informacji (15h) Pobierz szczegółowy program w formacie PDF http:// eitca.pl/files/programs/eitca_is.pdf
4/201416 Formalne potwierdzenie nabytych zawodowych kompetencji informatycznych w formie międzyna- rodowego certyfikatu wydanego przez Europejski Instytut Certyfikacji Informatycznej EITCI w Bruk- seli (European Information Technologies Certifica- tion Institute) wraz z suplementem w języku angiel- skim i odpisami w języku polskim lub innych urzę- dowych językach UE, jak również polskojęzycznego dyplomu ukończenia krajowej edycji Akademii EIT- CA wystawianego przez krajowe konsorcjum reali- zujące i akređytowanego przez MEN i Kuratorium Oświaty. Istotny wzrost konkurencyjności na krajowym i mię- dzynarodowym rynku pracy w praktycznie każdej branży gospodarki nowoczesnego społeczeństwa informacyjne- go poprzez nabycie lub zasadnicze podniesienie kwalifi- kacji w dziedzinie IT i ich formalne potwierdzenie w mię- dzynarodowym standardzie. Profesjonalną, teoretyczną i praktyczną wiedzę oraz umiejętności w dziedzinie, którą obejmuje Akademia EITCA na poziomie merytorycznym studiów podyplo- mowych wdrażanych w krajowej edycji międzynarodo- wego programu certyfikacji informatycznej Akademii EITCA. Kompleksowe przeszkolenie w wymiarze odpowia- dającym od 150 do 180 godzin zajęć stacjonarnych tj. wymiar godzinowy 2-semestralnych studiów podyplo- mowych), co stanowi wielokrotność objętości progra- mowej standardowych, dostępnych na rynku kursów i szkoleń informatycznych. Dostęp do indywidualnych konsultacji z akademicką kadrą dydaktyczną (obejmującą także ekspertów prze- mysłowych) przez cały okres trwania nauki. W przypadku wyrażenia takiej woli przez uczestnika programu, umieszczenie go jako certyfikowanego spe- cjalisty w zakresie odpowiedniej specjalizacji zgodnej z profilem ukończonego programu Akademii EITCA (lub EITC) w Europejskiej Bazie Specjalistów Technologii In- formatycznych ITPD, udostępnianej pracodawcom na terenie kraju i Unii Europejskiej. Certyfikat Akademii EITCA/IS stanowi formalne, międzynarodowe potwierdzenie wiedzy teoretycznej i praktycznych kompetencji zawodowych w dziedzi- nie szeroko pojętego bezpieczeństwa informacji prze- twarzanych w systemach elektronicznych (w tym w szczególności istniejących zagrożeń, stosowanych me- tod kryptograficznych, teorii podstaw bezpieczeństwa informacji, metod zarządzania bezpieczeństwem in- formacji, aspektów formalno-prawnych, jak również szczegółowych zagadnień technicznych oraz techno- logii w dziedzinie zabezpieczeń sieci komputerowych i bezpieczeństwa systemów informatycznych). Zakres programowy Akademii EITCA/IS Bezpieczeństwa In- formatycznego stanowi wiedzę o sposobach zapew- nienia prawidłowego funkcjonowania systemów in- formatycznych pod kątem poufności, wiarygodności i integralności przetwarzanych danych, co stanowi obecnie jeden z najbardziej wrażliwych obszarów in- formatyki. Rozwój społeczeństwa informatycznego i gospo- darki opartej na wiedzy, to nie tylko wszechobecna wirtualizacja procesów gospodarczo-ekonomicznych i społecznych, ale także rosnący poziom zagrożeń in- formatycznych i wrażliwości eksponowanej informa- cji na potencjalne ataki i manipulacje. Specjalistycz- na wiedza i umiejętności w obszarze bezpieczeństwa informatycznego, potwierdzona międzynarodowym certyfikatem Bezpieczeństwa Informatycznego EIT- CA/IS stanowi istotny element specjalizacji nie tylko w zawodowach bezpośrednio związanych z bezpie- czeństwem, ale również w zawodowach związanych z ogólną obsługą systemów informatycznych i siecio- wych (w tym w ramach silnie zinformatyzowanego sektora finansowego, czy też sektora dużych firm i korporacji, ale również wszystkich instytucji posiada- jących i polegających na niezawodności wdrożonych systemów informatycznych, m.in. także w administra- cji publicznej. Krajowa edycja międzynarodowego programu cer- tyfikacyjnego Akademii EITCA (European Information Technologies Certification Academy), prowadzona na licencji Europejskiego Instytutu Certyfikacji Informa- tycznej EITCI w Brukseli uzyskała krajową Akređyta- cję Ministerstwa Edukacji Narodowej za pośrednic- twem Kuratora Oświaty (nr 8/2014). Akređytacja ta nadaje wydanym w Brukseli międzynarodowym certy- fikatom Akademii EITCA i EITC dodatkowy wymiar formalnego elementu poświadczenia kompetencji w Rysunek 4. Certyfikat Akademii EITCA/IS Bezpieczeństwa Informatycznego
www.sdjournal.pl 17 Bezpieczeństwo w sieci ramach krajowego systemu kształcenia, nadzorowa- nego przez MEN. Ze względu na kończącą się obecną perspektywę fi- nansową Funduszy Europejskich jest to ostatni moment na skorzystanie z miejsc objętych obniżoną o 80% opłatą. Obniżka kosztów jest warunkowana podaniem przy rejestracji na portalu kierunkowym Studium EITCA /IS pięcioliterowego kodu rejestracyjnego. Specjalny kod rejestracyjny dla czytelników niniejszego artykułu to: SEGHE Wejdź na http://eitca.pl/is?kod=SEGHE i skorzystaj z dofinansowania Liczba miejsc z dofinansowaniem ze środków Unii Eu- ropejskiej jest ograniczona Całkowity koszt z dofinansowaniem 80%: 880 zł (za- miast 4400 zł) Więcej kursów Akademii EITCA: • Grafika Komputerowa • Kluczowe Kompetencje Informatyczne • Informatyka Biznesowa www.eitca.pl | www.eitci.org REKLAMA
4/201418 M oże się zdarzyć, że przy połączeniach do bazy nie będziemy chcieli użyć mapowania obiekto- wo-relacyjnego (ORM), tylko będziemy chcieli skorzystać z mechanizmu JdbcTemplate dostarczonego przez Spring. W konfiguracji konfigurujemy bean DataSo- urce i na jego podstawie tworzymy obiekt JdbcTemplate. Załóżmy, że w naszej aplikacji chcemy zapisywać obiekty różnego typu bez powielania kodu (tu z pomo- cą przychodzą nam typy generyczne) oraz dane obiekty mogą mieć dużą ilość różnego rodzaju pól, które bywa- ją modyfikowane (zmiana typu, nazwy, ilość pól), a nie chcemy modyfikować zapytania SQL (co załatwia za nas refleksja). Stwórzmy generyczną klasę BaseDAO, która bę- dzie się kontaktowała z bazą danych przy użyciu Jdbc- Template. By nie zaciemniać kodu, nie będzie w nim obsługi wyjątków i zamykania połączeń do bazy, co oczywiście należy dodać w bloku finally. Szkielet abs- trakcyjnej klasy BaseDAO został zaprezentowany na listingu 1. Konkretna implementacja klasy musi oczywiście za- wierać typ oraz nadpisywać metodę zwracającą nazwę tabelki do której zapisujemy. Na listingu 2 pokazana zo- stała metoda insert, w której następuje zapis modelu do bazy. W metodzie najpierw przygotowywane jest zapytanie i jego parametry, a następnie dodawane są parametry do zapytania i zapytanie zostaje wywołane. W przygoto- waniu danych dla zapytania wykorzystujemy mechanizm refleksji. Metoda zaprezentowana została na listingu 3. Tworzenie zapytań SQL przy użyciu refleksji Może się zdarzyć, że przy połączeniach do bazy nie będziemy chcieli użyć mapowania obiektowo- relacyjnego (ORM), tylko będziemy chcieli skorzystać z mechanizmu JdbcTemplate dostarczonego przez Spring. W konfiguracji konfigurujemy bean DataSource i na jego podstawie tworzymy obiekt JdbcTemplate DOWIESZ SIĘ... • Jak praktycznie wykorzystać mechanizm refleksji i typy generyczne POWINIENEŚ WIEDZIEĆ... • Ogólne informacje na temat typów generycznych, re- fleksji, SQL Listing 2. public void insert(T model) { StringBuilder queryFieldsSB = new StringBuilder(); StringBuilder queryValuesSB = new StringBuilder(); List
www.sdjournal.pl 19<>metodzie do nazwy kolumny przypisywana jest nazwa
pola, a gdy istnieje adnotacja Column, to nazwa ko-
lumny nadpisywana jest wartością z adnotacji.
Gdy mamy już wszelkie dane dla zapytania, musi-
my jeszcze dodać parametry do zapytania przed je-
go wywołaniem. Metoda addQueryParameters została
przedstawiona na listingu 5.
Wywoływane są w niej odpowiednie metody na
obiekcie PreparedStatement, na podstawie typu pola.
Jak widzimy mechanizm refleksji połączony z typami
generycznymi możemy zastosować w wielu sytuacjach
dla zwiększenia elastyczności kodu.
W metodzie prepareDataForQuery iterujemy po
polach przekazanego obiektu (wywołując getter) i do
zapytania bierzemy zwrócone wartości różne od null.
Wypełniamy również typy pól oraz wartości dla zapy-
tania (pytajniki oddzielone przecinkami dla zapytania
SQL). Potrzebujemy również nazwy kolumn, które są
wypełniane w metodzie getName. Metoda getName
została zaprezentowana na listingu 4.
Nie zawsze chcemy, by kolumna w bazie danych
miała taką samą nazwę jak nazwa pola w klasie javy. W
klasie javy nazwę kolumny możemy przekazać za po-
mocą adnotacji. Możemy stworzyć swoją własną ad-
notację bądź skorzystać z dostępnej. Do celów przy-
kładu użyłem adnotacji javax.persistence.Column. W
Listing 3.
private void prepareDataForQuery(T model,
List values, List types,
StringBuilder queryFieldsSB,StringBuilder
queryValuesSB) {
for (Field field : model.getClass().
getDeclaredFields()) {
try { String fieldGetter = createGetter(field.
getName()); Method method = model.getClass().
getDeclaredMethod(fieldGetter); Object ob = method.invoke(model); if (ob == null) continue; values.add(ob); types.add(field.getType()); queryFieldsSB.append(getName(field)).
append(",”); queryValuesSB.append("?,”); } catch (Exception ex) { }
} }
Listing 4.
private String getName(Field field) { String name = field.getName(); Annotation[] annotations =
field.getDeclaredAnnotations(); if (annotations.length > 0) { for (Annotation annotation : annotations){ if (annotation.annotationType() ==
Column.class) { name = ((Column)annotation).name(); break; } } } return name;
}
Listing 5.
private void addQueryParameters(
PreparedStatement pstmt, List types,
List values) throws SQLException { int i = 0; for (Class type : types) { if (type == String.class) { pstmt.setString(i+1, (String)values.
get(i)); } else if (type == Integer.class) { pstmt.setInt(i+1, (Integer)values.
get(i)); } else if (type == Long.class) { pstmt.setLong(i+1, (Long)values.
get(i));} else if (type == Float.class) { pstmt.setFloat(i+1, (Float)values.
get(i)); } else if (type == Boolean.class) { pstmt.setBoolean(i+1, (Boolean)values.
get(i)); } else if (type == Date.class) { pstmt.setTimestamp(i+1, new java.sql.
Timestamp(((Date)values.
get(i)).getTime())); } i++; } }
MAREK ŁABĘDŹ
Obecnie pracuje jako Senior Java Developer w
firmie fru.pl oraz uczestniczy w kilku innych pro-
jektach.
Absolwent UJ i AGH. Mający za sobą udział w
wielu projektach w kilku krakowskich firmach.
Interesuje się technologiami Java/JavaEE, zwin-
nymi metodami oraz dobrymi praktykami wy-
twarzania oprogramowania.
Poza pracą biega w ultramaratonach oraz bie-
rze udział w triathlonach na dystansie długim.
Miłośnik miniaturowych sznaucerków (Irvier’s).
www.sdjournal.pl 21 3 SEZON Z TECHNOLOGIĄ TECHCAMP T echnologia ON! Agenda naszych spotkań jest stała – 3-5 prezentacji w temacie odcinka, a na- stępnie intensywna dyskusja. Zaproszeni prele- genci wychodzą na scenę i wyjaśniają jak daleko jest od kodu do biznesu. Do swojego warsztatu w czasie 3 sezonu TechCampu pozwolili nam zajrzeć repre- zentanci czołówki e-biznesu m.in. Pracuj.pl, FreshMail, Grupa Unity, Kei.pl, Imad oraz twórcy najgorętszych startupów – Notatek.pl, Brainly, Flowbox, Zrzutka. pl czy Untitled Kingdom. Bywały prezentacje zupełnie unikalne jak wystąpienie Dawida Żądło z Kreski Corp. Retouching Studio, który zafundował nam przyspieszo- ny kurs retuszu high-end i to w wersji live. Nie sposób wymienić wszystkich, ale ważne by podkreślić, że to nie była komunikacja jednostronna. Barcamp bez ne- tworkingu nie ma racji bytu, dlatego w tym sezonie po- stawiliśmy na Open Space. Czy to była dobra decyzja? Przy kameralnych stolikach z prelegentami zostawało 70 proc. uczestników, a rozmowy trwały jeszcze długo po oficjalnym zakończeniu imprezy. To powinno wy- starczyć za odpowiedź. Jest 10 minut do 19. Ostatnie chwile zanim zacznie- my odcinek. Sala już jest pełna. Na widowni ponad 200 osób. Wśród nich głównie programiści i studenci in- formatyki, ale profil uczestnika zmienia się w zależno- ści od tematyki. Na rekordowej w tym sezonie od- słonie – Grafika i Animacja, w Krakowie pojawiło się prawie 400 osób, a wśród nich przeważająca ilość po- gromców Photoshopa. Jak jest za kulisami TechCam- pu? Gorąco. Mimo dobrego planu, check listy i zapasu czasowego, na końcu i tak okazuje się, że na kilkadzie- siąt minut przed eventem nie mamy właściwego kabla do projektora. Patrząc z perspektywy trzech sezonów, takich smaczków nie da się do końca wyeliminować. Ale dzięki prężnej ekipie nie ma pożaru, którego nie dałoby się ugasić. Nam się udaje;) Robimy odcinek! Na początku jest chaos. Dyskusja na temat listy tematów, które warto wziąć na warsz- tat, typowanie prelegentów, poszukiwanie lokalu a potem dopięcie umów. Nasi uczestnicy są wymagają- cy nie tylko jeśli chodzi o rynek pracy. Projektowanie eventu dla fanów front i back-endu oznacza dla huma- nisty mojego pokroju zmianę myślenia. Uczestników nie zadowoli marketingowe show, chcą zajrzeć do każ- dego projektu z perspektywy kodu. Od strony organi- zatorów bezcenny jest szczególnie jeden moment. To chwila, kiedy machina promocji rusza, na nasze proś- by odpowiadają dziennikarze i blogerzy, temat „żre” i licznik rejestracji szaleje. Uff. Przyjdą, wysłuchają i po- dyskutują. Oby jak najwięcej takich momentów w ko- lejnym sezonie! 3 SEZON Z TECHNOLOGIĄ TECHCAMPGdyby w tym evencie chodziło o liczby wystarczyłoby zacząć wyliczankę – 8 odcinków, 2929 rejestracji, ponad 1,5 tys. uczestników, 2025 minut prelekcji i 31 prelegentów. Ale statystyki nigdy nie były celem samym w sobie. Założeniem TechCampu było skupienie wokół idei IT aktywnej społeczności. A zapracować na nią nie jest łatwo. Zapraszam za kulisy. Joanna Bucior PR Manager w Grupie Unity W Grupie Unity odpowiada głównie za słowa i ich odpowiedni styl. Dzięki nim tworzy relacje z mediami, angażuje blogerów, redaguje ma- gazyn, buduje społeczność pasjonatów no- wych technologii. Z dumą wspiera promocję takich wydarzeń jak TechCamp, Kongres Dy- rektorów E-commerce czy InternetBeta. Absol- wentka Dziennikarstwa i Komunikacji Społecz- nej na Uniwersytecie Jagiellońskim.