dareks_

  • Dokumenty2 821
  • Odsłony753 730
  • Obserwuję431
  • Rozmiar dokumentów32.8 GB
  • Ilość pobrań361 988

Software Developers Journal 2014 04

Dodano: 6 lata temu

Informacje o dokumencie

Dodano: 6 lata temu
Rozmiar :7.1 MB
Rozszerzenie:pdf

Software Developers Journal 2014 04.pdf

dareks_ CZASOPISMA
Użytkownik dareks_ wgrał ten materiał 6 lata temu.

Komentarze i opinie (0)

Transkrypt ( 22 z dostępnych 22 stron)

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 values = new ArrayList(); List types = new ArrayList(); prepareDataForQuery(model, values, types, queryFieldsSB, queryValuesSB); String queryFields = removeLastChar( queryFieldsSB.toString()); String queryValues = removeLastChar( queryValuesSB.toString()); try { String insertSQL = "INSERT INTO " + getTableName() + " (" + queryFields + ")VALUES (" + queryValues + ")”; Connection conn = jdbcTemplate. getDataSource().getConnection(); PreparedStatement pstmt = conn.prepareStatement(insertSQL); addQueryParameters(types, pstmt, values); pstmt.executeUpdate(); } catch (Exception e) { } } Listing 1. public abstract class BaseDAO { protected abstract String getTableName(); }

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.