2. Opis zastosowanych technologii
2.10. Ajax
jednostki. Jeśli np. chcemy wstawić znak mniejszości (<), wpisujemy zamiast niego sekwencję
< znak ampersand – &, znak większości (>) - >,
• jeżeli nie chcemy używać predefiniowanych odniesień jednostek, możemy część danych, które zawierają np. kod html lub xml, zapisać w sekcji danych znakowych, która nie będzie przetwarzana przez analizator składni XML. Znacznik początku sekcji danych znakowych to:
<![CDATA[, a znacznik końca: ]]>,
• w dokumencie XML możemy wykorzystywać komentarze, które zaczynają się znakami: <!--,, a kończą: -->. Przykład: <!-- To jest komentarz -->,
• specyfikacja XML zezwala na wstawianie instrukcji przetwarzania, które są wykorzystywane do przeniesienia informacji do aplikacji. Instrukcje przetwarzania rozpoczynają się znakami:
<?, a kończą: ?>. Przykładem takiej instrukcji może być odniesienie do arkusza stylów, który jest powiązany z dokumentem XML: <?xml-stylesheet type="text/xsl" href="newsy.xsl"?>.
2.10. Ajax
Technika tworzenia aplikacji internetowych, w której interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu, w sposób asynchroniczny. Ma to umożliwiać bardziej dynamiczną interakcję z użytkownikiem niż w tradycyjnym modelu, w którym każde żądanie nowych danych wiąże się z przesłaniem całej strony HTML. Na technikę tę składa się parę elementów:
• XMLHttpRequest - klasa umożliwiająca asynchroniczne przesyłanie danych; dzięki asynchroniczności w trakcie pobierania danych użytkownik może wykonywać inne czynności, można także pobierać dane jednocześnie z wielu miejsc,
• JavaScript
• XML
OPIS ZASTOSOWANYCH TECHNOLOGII
CYFROWY URZĄD dla
URZĘDU MARSZAŁKOWSKIEGO WOJEWÓDZTWA MAŁOPOLSKIEGO
Gdynia, marzec 2013
Metryka
Nazwa projektu Dostarczenie licencji na oprogramowanie oraz wykonanie aplikacji wraz z jej wdrożeniem, szkolenie oraz przeniesienie określonych danych z obecnego Cyfrowego Urzędu oraz Biuletynu Informacji Publicznej
Zamawiający Województwo Małopolskie
Wykonawca MADKOM SA
Produkt Opis zastosowanych technologii CU
Opis Dokument opisujący technologie zastosowane w systemie Cyfrowy Urząd
Autor Zespół analiz
Plik Liczba stron 12
Historia dokumentu
Edycja i rewizja
Data wydania
Opis Akcja (*) Rozdziały
(**)
Autorzy
1 12.03.2013 Stworzenie dokumentu N W Zespół analiz
2 27.03.2013 Aktualizacja dokumentu Z 2 Zespół analiz
* Akcje: W = Wstawienie, Z = Zmiana, We = Weryfikacja, N = Nowy
** Rozdziały: W = Wszystkie
Akceptacja Zatwierdził
……… ……….
(data i podpis) (data i podpis)
Spis treści
1. Cel dokumentu ... 4
2. Opis zastosowanych technologii... 4
2.1. SQL ... 4
2.2. NoSQL ... 5
2.3. XForms ... 6
2.4. JavaScript ... 6
2.5. Java ... 6
2.6. PHP ... 7
2.7. Perl... 8
2.8. WS-Security ... 8
2.9. LVS ... 9
2.10. HTML ... 9
2.11. XML ... 11
2.12. Ajax ... 12
1. Cel dokumentu
Niniejszy dokument opisuje zastosowane technologie oprogramowania systemu Cyfrowy Urząd.
Podstawą opracowania niniejszego dokumentu jest umowa nr IXA/424/RG/12 z dnia 26.06.2012 na
„Dostarczenie licencji na oprogramowanie oraz wykonanie aplikacji wraz z jej wdrożeniem, szkolenie oraz przeniesienie określonych danych z obecnego Cyfrowego Urzędu oraz Biuletynu Informacji Publicznej” zawarta pomiędzy Wykonawcą – firmą Madkom SA z siedzibą w Gdyni, Aleja Zwycięstwa 96/98, 84-451 Gdynia, a Zamawiającym – Województwem Małopolskim z siedzibą w Krakowie, ul.
Basztowa 22, 31-156 Kraków.
2. Opis zastosowanych technologii.
2.1. SQL
Strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (DBMS). Stał się standardem w komunikacji z serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z użytkownikiem SQL, dlatego potocznie mówi się, że korzystanie z relacyjnych baz danych to korzystanie z SQL-a.
Produkty związane z relacyjnymi bazami danych to nie tylko serwery. Sam serwer określa się często takimi nazwami jak „back end”, „engine”, czy też „motor/silnik bazy danych”. Przechowuje on dane oraz zapewnia ich pobieranie i aktualizacje w odpowiedzi na pobierane instrukcje w SQL-u.
Uzupełnieniem serwera jest zazwyczaj „front end”, „oprogramowanie pośredniczące” czy też
„fronton” – narzędzia upraszczające komunikację z serwerem i wyposażone w mechanizmy pozwalające wykorzystać pobrane dane. Należą do nich mechanizmy generowania i obsługi formularzy oraz raportów, języki czwartej generacji (4GL), graficzne języki zapytań, narzędzia konstrukcyjne użytkownika, oprogramowanie do prezentacji multimedialnych, systemy tworzenia hipertekstu, systemy CAD/CAM, arkusze kalkulacyjne, jak również interfejsy dostępu bezpośredniego.
Wszystkie one wykorzystują do komunikacji z serwerem i wykonywania za jego pośrednictwem różnych operacji język SQL. Serwer odpowiada za przechowywanie, porządkowanie i pobieranie danych, zapewnia ich integralność, bezpieczeństwo oraz zabezpiecza przed ewentualnymi konfliktami między użytkownikami.
Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych. Zapytania można zaliczyć do jednego z czterech głównych podzbiorów:
• SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”),
• SQL DDL (ang. Data Definition Language – „język definicji danych”),
• SQL DCL (ang. Data Control Language – „język kontroli nad danymi”).
• SQL DQL (ang. Data Query Language – „język definiowania zapytań”).
Instrukcje SQL w obrębie zapytań tradycyjnie zapisywane są wielkimi literami, jednak nie jest to wymóg. Każde zapytanie w SQL-u musi kończyć się znakiem średnika (;).
Dodatkowo, niektóre programy do łączenia się z silnikiem bazy danych (np. psql w przypadku PostgreSQL), używają swoich własnych instrukcji, spoza standardu SQL, które służą np. do połączenia się z bazą, wyświetlenia dokumentacji itp.
• DML (Data Manipulation Language) służy do wykonywania operacji na danych – do ich umieszczania w bazie, kasowania, przeglądania oraz dokonywania zmian. Najważniejsze polecenia z tego zbioru to:
o INSERT – umieszczenie danych w bazie, o UPDATE – zmiana danych,
o DELETE – usunięcie danych z bazy.
Dane tekstowe muszą być zawsze ujęte w znaki pojedynczego cudzysłowu (').
• DDL - dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane – czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy to:
o CREATE – utworzenie struktury (bazy, tabeli, indeksu itp.), o DROP – usunięcie struktury,
o ALTER – zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli).
• DCL - (Data Control La nguage) ma zastosowanie do nadawania uprawnień do obiektów bazodanowych. Najważniejsze polecenia w tej grupie to:
o GRANT - służące do nadawania uprawnień do pojedynczych obiektów lub globalnie konkretnemu użytkownikowi,
o REVOKE – służące do odbierania wskazanych uprawnień konkretnemu użytkownikowi,
o DENY.
• DQL - (Data Query Language) to język formułowania zapytań do bazy danych. W zakres tego języka wchodzi jedno polecenie - SELECT. Często SELECT traktuje się jako część języka DML, ale to podejście nie wydaje się właściwe, ponieważ DML z definicji służy do manipulowania danymi - ich tworzenia, usuwania i uaktualniania.
2.2. NoSQL
Systemy zarządzania bazami danych, które nie opierają się na tradycyjnym modelu relacyjnym. Dane w nich przechowywane nie wymagają ściśle określonych schematów (tabel), zwykle nie używają operacji złączeń i umożliwiają łatwe skalowanie w poziomie. Ze względu na m. in. brak sztywnego schematu bazy danych, sporą elastyczność, mniej problemów z mapowaniem danych w bazie do obiektów zdefiniowanych w kodzie, taki model bazy danych jest niezwykle szybki (zarówno jeśli chodzi o zapis jak i o odczyt danych). Podejście NoSQL jest rozwiązaniem problemu dynamicznego wzrostu ilości danych, jest to główne przeznaczenie tego tzpu baz danych.
Główne założenia:
• rezygnacja z wielu elementów baz relacyjnych. Duża liczba złączen tabel powoduje zdecydowany spadek wydajności, a ścisły schemat bazy danych nie zawsze bywa zaletą, gdyż wiele danych nie ma określonej struktury. Postulaty ACID (Atomicity – atomowość, Consistency – spójność, Isolation – izolacja, Durability – trwałość). Uznano za zbyt restrykcyjne,
• zmniejszenie znaczenia schematów danych. Wg założeń NoSQL uwaga powinna być skupiona najpierw na danych, a dopiero potem na schematach,
• zmiana podejścia w kwestii awarii. W przypadku, gdy jeden z elementów systemów zostanie uszkodzony – reszta musi działać,
• łatwe do wprowadzenia i przezroczyste dla aplikacji (logiki biznesowej) skalowanie poziome.
Wszystkie problemy ze skalowaniem powinny być rozwiązywane na poziomie zasobów serwera.