Projekt bazy uniwersalnego dashboarda. Stanisław Klekot, nr indeksu

Podobne dokumenty
6. Bezpieczeństwo przy współpracy z bazami danych

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

CMS - INFORMACJE. *** Mirosław Kuduk E mail: tel. kom DODATKOWE FUNKCJE - PANEL ADMINISTRATORA

Instrukcja obsługi systemu elektronicznego katalogu przedmiotów (sylabusów)

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

I. Interfejs użytkownika.

Internetowe bazy danych

Języki programowania wysokiego poziomu. Ćwiczenia

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

CMS Admin instrukcja administratora

Projektowani Systemów Inf.

Instrukcja użytkowania stron domowych pracowników Politechniki Rzeszowskiej

Przewodnik użytkownika (instrukcja) AutoMagicTest Spis treści

Instrukcja Użytkownika (Studenta) Systemu Obsługującego Lokalne Archiwum Dokumentów

1. Wstęp 2. Adres usługi 3. Konfiguracja 4. Metody 5. Typy danych 6. Przykład wywołania metody przy użyciu php i biblioteki nusoap 7.

Tekst na mapach. Teksty na mapie. Ustawienia mapy. W tej instrukcji zostanie opisany sposób w jaki można na mapach wyświetlać teksty

SZCZEGÓŁOWY OPIS SPOSOBU DOSTĘPU DO INFORMACJI I DANYCH ZAWARTYCH W RAPORTACH SKŁADANYCH DO KRAJOWEJ BAZY DLA GIOŚ I WIOŚ

WPROWADZANIE ZLECEŃ POPRZEZ STRONĘ INSTRUKCJA UŻYTKOWNIKA

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Oracle Application Express

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Wykorzystywanie plików cookies

Podręcznik użytkownika

Podręcznik Integracji

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

System DiLO. Opis interfejsu dostępowego v. 2.0

Gatesms.eu Mobilne Rozwiązania dla biznesu

asix4 Podręcznik użytkownika Drajwer OPC Podręcznik użytkownika

Opis systemu lojalnościowego e-lar bank.

Przewodnik użytkownika (instrukcja) AutoMagicTest

Aplikacje WWW - laboratorium

Platforma e-learningowa

API transakcyjne BitMarket.pl

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Instrukcja użytkownika Porównywarki cen Liquid

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/4.1.4/2015

Kolejność działań przy zakładaniu dziennika powinna być następująca. pokaż nauczycieli - wyświetla listę wszystkich nauczycieli w bazie

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/4.1.4/2016

Obowiązuje od r.

Instrukcja programu mam wersja 1.02.

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

Korzystania z systemu monitorowania pozycji system3.pl

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Definiowanie filtrów IP

Instrukcja. Skrócona instrukcja konfiguracji wideodomofonowego systemu jednorodzinnego V_1.0

1. Aplikacja LOGO! App do LOGO! 8 i LOGO! 7

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

III. Opis działania systemu

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Oczywiście plik musi mieć rozszerzenie *.php

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

Typy danych, cd. Łańcuchy znaków

Języki programowania wysokiego poziomu. Forum

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Instrukcja pierwszego logowania do EBO - aplikacja kliencka oraz migracji kontrahentów i szablonów z KIRI do EBO.

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

REJESTRACJA NOWEJ DRUKARNI W SYSTEMIE PRINTING-CENTER

Aplikacje internetowe - laboratorium

Języki programowania wysokiego poziomu. Blog

Ćwiczenie Nr 4 Administracja systemem operacyjnym z rodziny Microsoft Windows

API System Partnerski

Przewodnik użytkownika (instrukcja) AutoMagicTest

Sprawozdanie nr 4. Ewa Wojtanowska

Specyfikacja techniczna. mprofi Interfejs API

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Podstawy technologii WWW

WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I

Przewodnik użytkownika systemu e-faktur

Użycie Visual Basic for Applications ("VBA")

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Sesje i logowanie. 1. Wprowadzenie

Instalacja platformy Magento CE wersja szybka

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

DOM MAKLERSKI BZ WBK SPÓŁKA AKCYJNA CZŁONEK ZARZĄDU DOMU MAKLERSKIEGO

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Oracle PL/SQL. Paweł Rajba.

Programowanie zorientowane obiektowo. Mateusz Kołecki

1. INFORMACJE O DOKUMENCIE 2. WPROWADZENIE

Instrukcja wypełniania formularzy Millenet dla Przedsiębiorstw

Dostosowywanie wyglądu aplikacji czytelnika w oparciu o oprogramowanie dlibra 5.0

DTD - encje ogólne i parametryczne, przestrzenie nazw

Wymagane jest podłączenie serwera do Internetu (konieczne do zdalnego dostępu).

Platforma e-learningowa

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

INSTRUKCJA UŻYTKOWNIKA

Instrukcja użytkownika systemu medycznego

Transkrypt:

Projekt bazy uniwersalnego dashboarda Stanisław Klekot, nr indeksu 126398 3marca2013

1 Opis wycinka rzeczywistości DashWiki to w założeniu aplikacja typu wiki dla administratorów. Od tradycyjnych silników różni się tym, że potrafi pobierać dane użyte do wypełnienia strony z zewnętrznych źródeł, takich jak system monitoringu czy system zbierania danych o wydajności i rysowania wykresów. Łączenie się z zewnętrznymi systemami realizowane jest za pomocą makr użytych w treści strony. DashWiki ma służyć przede wszystkim za panel kontrolny( dashboard ), na którym są zebrane najważniejsze informacje o bieżącym stanie sieci, serwerów czy aplikacji i z którego da się łatwo dostać do paneli z danymi szczegółowymi(które mogą być kolejnymi stronami wiki albo zewnętrznymi webaplikacjami). Użytkownik Żeby móc wyedytować stronę użytkownik musi się zalogować, więc DashWiki powinno znać nazwę tego użytkownika(reg008). Użytkownik ma już login dla innych systemów i typowo jest to niedługi ciąg znaków(do 64 znaków; ogr015). Oczywiście login jest unikalny(ogr014). Typowa funkcja skrótu zwraca 128 do 256 bitów, co w systemie szesnastkowym powinno się daćzapisaćzapomocą64cyfr haszhasłamożemiećzatemdo64znaków(ogr016). Strona wiki Strona ma pewną nazwę(unikalną; reg001) i zawartość, która mówi, jaki tekst i jak sformatowany należy wyświetlić w przeglądarce. Nazwy stron w DashWiki nie odbiegają od tradycyjnych silników, stosowana jest konwencja CamelCase z użyciem liter, cyfr i podkreślnika, możliwe jest też użycie w nazwie slasha(dla zbudowania hierarchii stron); nazwa strony powinna mieć od 2 do 128 znaków(ogr002). Oczywiście dwie różne strony nie mogą mieć tej samej nazwy(ogr001). Zawartość strony jest tekstem bez specjalnych ograniczeń oprócz użytego języka formatowania (ogr003). Ze względu na koszt parsowania i przetwarzania języka formatowania strona jest jeszcze opatrzona skrótem(haszem) treści, który może być użyty jako identyfikator dla gotowego kodu HTML w cache u. Skrót jest ciągiem znaków o długości do 64 znaków(ogr004). Strona domowa Użytkownik może mieć ustawioną stronę startową, która wyświetla się mu po zalogowaniu (reg009). Jeśli nie ma ustawionej takiej strony, wyświetla się domyślna. Strona startowa, jeśli jest ustawiona(reg011), musi być prawidłową nazwą strony(ogr017, ogr017). To użytkownik wybiera swoją stronę startową, więc nie każda strona będzie czyjąś startową (reg010), a niektóre strony będą startowymi dla wielu użytkowników(reg012). Treść strony makra W treści strony można używać makr. Każde z makr jest identyfikowane jednoznacznie przez nazwę(reg022 ogr025), która jest niepustym ciągiem do 64 znaków(ogr026). Makro w użyciu przypomina funkcję z języków programowania: ma listę przyjmowanych argumentów w postaci ciągu słów oddzielonych przecinkami(do 256 znaków; ogr027) i typ zwracanych danych(jedno słowo do 64 znaków; ogr028, reg029, reg031). Zwracany typ służy do ustalenia w jaki sposób traktować użycie makra: lista powoduje, że zostanie wygenerowany zestaw wierszy w tabeli, po jednym wierszu dla każdego elementu z wyniku; grafika wstawia w miejscu makra obraz PNG/GIF/JPEG(w typowym przypadku będzie to wykres zmian pewnej wartości w czasie), stan to krótki tekst opisujący bieżącą sytuację usługi czy hosta(przykładowo działa, wyłączony, nie wiadomo ) i tak dalej. Zwracany typ jest identyfikowany przez nazwę (reg028). 1

Makro jest elementem, którego użycie powoduje komunikację z innymi systemami, więc potrzebne są informacje na temat celu komunikacji(url, para host+port albo analogiczne, opisane przezciągdo256znaków;ogr030). Dokomunikacjizcelemmakroużywajednegozkilkuprotokołów, jak XML-RPC, SOAP czy zwykłe żądanie HTTP GET(reg023). Nazwa protokołu jest ciągiem do 64 znaków(ogr029). Każde makro musi skądś pobierać dane, więc musi mieć zdefiniowany dokładnie jeden protokół (reg024, reg026). Makro jest sparametryzowane po to, żeby mogło żądać od zewnętrznego systemu danych na temat różnych obiektów. Żeby to uzyskać makro musi przekazać w żądaniu parametry. Opis tych parametrów jest ciągiem do 256 znaków(ogr031). Makra są definiowane przez użytkownika, a obsługiwane przez DashWiki protokoły i typy zwaracanych danych są zdefiniowane przez samą aplikację, może więc istnieć protokół albo typ danych, który nie jest używany przez żadne makro(reg025, reg030), może też istnieć protokół albo typ danych używany przez wiele makr(reg027, reg032). Historia edycji stron Każda strona ma swoją historię edycji. Dane historyczne mają podobną strukturę do zwykłych stron(nazwa, zawartość i skrót o takich samych typach; ogr005, ogr006, ogr007), rozszerzoną o dodatkowe informacje: czas utworzenia(data z godziną; ogr008), kolejny numer zwany rewizją (liczba całkowita 32-bitowa większa od 0; ogr009) i autora(reg013). Autorem musi być jeden użytkownik(ogr010, reg015), ta informacja ma zatem tę samą formę. Użytkownik mógł nie utworzyć żadnej strony(reg014), mógł również utworzyć wiele stron (reg016). Strona wiki musi mieć odpowiadającą jej historię odpowiednia strona w historii ma tę samą nazwę(reg004), przy czym najnowsza(o najwyższej rewizji) strona w historii o tej nazwie musi mieć taką samą zawartość i taki sam hasz, jak strona(reg006, reg007). Strona w historii nie musi mieć odpowiadającej jej strony, jeśli strona o tej nazwie została usunięta(reg005). Rekord odpowiadający usunięciu strony będzie w takim przypadku zawierał NULLwzawartościiwhaszu. Niemogąistniećwhistoriidwiewersjetejsamejstrony,któremajątęsamąrewizjęalboten sam czas utworzenia(ogr012, ogr013, reg002, reg003). Sesja HTTP Użytkownik musi być zalogowany żeby móc edytować strony. Do ustalenia które żądanie HTTP jest od zalogowanego użytkownika służy sesja. Każda sesja ma unikalny identyfikator, losowy ciąg znaków o długości do 64 znaków(reg017, ogr019, ogr020). Sesja może być przypisana do użytkownika(reg020, ogr021 i ogr022, bo właściciel musi mieć ten sam format), ale nie musi, gdy dotyczy niezalogowanego odwiedzającego(reg018). Użytkownik nie musi być zalogowany do DashWiki, więc może nie mieć żadnej sesji(reg019), może też być zalogowany wielokrotnie na różnych stanowiskach(reg021). Sesja ma czas wygaśnięcia podany w formie daty z godziną(ogr023). Sesja przenosi informację o stanie aplikacji między żądaniami HTTP. Ta informacja(zmienne sesyjne) jest zbiorem zmiennych zserializowanym do formatu JSON. Nie ma specjalnych ograniczeń na wielkość tego środowiska(ogr024). 2

2 Reguły funkcjonowania i ograniczenia dziedzinowe 2.1 Regułyfunkcjonowania oznaczenie definicja reg001 strona jest identyfikowanym przez nazwę opisem dashboarda reg002 strona w historii jest identyfikowaną przez nazwę i datę utworzenia wersją strony reg003 strona w historii alternatywnie jest identyfikowana przez nazwę i rewizję reg004 strona musi mieć odpowiadającą jej stronę w historii o tej samej nazwie reg005 strona w historii nie musi odpowiadać żadnej stronie reg006 strona ma jedną odpowiadającą jej stronę w historii reg007 strona w historii odpowiada najwyżej jednej stronie reg008 użytkownik jest zalogowaną do aplikacji osobą mogącą edytować strony; identyfikowany jest przez nazwę reg009 użytkownik może mieć zdefiniowaną stronę domową reg010 strona nie musi być stroną domową użytkownika reg011 użytkownik ma najwyżej jedną stronę domową reg012 strona może być stroną domową wielu użytkowników reg013 strona w historii musi mieć użytkownika jako autora reg014 użytkownik nie musi być autorem żadnej strony w historii reg015 strona w historii ma jednego użytkownika jako autora reg016 użytkownik może być autorem wielu stron w historii reg017 sesja to zbiór zmiennych w aplikacji identyfikowany przez identyfikator sesji reg018 sesja może dotyczyć użytkownika reg019 użytkownik może nie mieć żadnej sesji reg020 sesja dotyczy najwyżej jednego użytkownika reg021 użytkownik może mieć wiele sesji reg022 makro to identyfikowana przez nazwę funkcja, której można użyć w opisie dashboarda reg023 protokół to identyfikowany przez nazwę sposób komunikacji z zewnętrznymi aplikacjami(używany przez makro) reg024 makro musi mieć zdefiniowany protokół reg025 protokół nie musi być używany przez żadne makro reg026 makro ma zdefiniowany jeden protokół reg027 protokół może być używany przez wiele makr reg028 typ danych to identyfikowany przez nazwę rodzaj danych zwracany przez makro reg029 makro musi mieć zdefiniowany zwracany typ danych reg030 typ danych nie musi być zwracany przez żadne makro reg031 makro zwraca jeden typ danych reg032 typ danych może być zwracany przez wiele makr Tabela 1: Lista reguł funkcjonowania opisanego wycinka rzeczywistości 2.2 Ograniczeniadziedzinowe oznaczenie definicja ogr001 nazwa strony jest unikalna ogr002 nazwa strony jest ciągiem od 2 do 128 znaków, składającym się z liter, cyfr, podkreślenia i slasha, zaczynającym się od wielkiej litery ogr003 zawartość strony jest tekstem dowolnej długości ogr004 skrót zawartości strony jest ciągiem od 0 do 64 znaków ogr005 nazwa strony w historii jest ciągiem od 2 do 128 znaków, składającym się z liter, cyfr, podkreślenia i slasha, zaczynającym się od wielkiej litery 3

oznaczenie definicja ogr006 zawartość strony w historii jest tekstem dowolnej długości ogr007 skrót zawartości strony w historii jest ciągiem od 0 do 64 znaków ogr008 czas utworzenia strony w historii jest datą z godziną ogr009 rewizjastronywhistoriijestliczbącałkowitązzakresu [1,2 32 1] ogr010 autor strony w historii jest użytkownikiem ogr011 nazwa autora strony w historii jest ciągiem od 0 do 64 znaków ogr012 strona w historii ma unikalną parę nazwa + rewizja ogr013 strona w historii ma unikalną parę nazwa + czas utworzenia ogr014 nazwa użytkownika jest unikalna ogr015 nazwa użytkownika jest ciągiem od 0 do 64 znaków ogr016 hasz hasła użytkownika jest ciągiem od 0 do 64 znaków ogr017 strona startowa użytkownika odpowiada nazwie strony wiki ogr018 strona startowa użytkownika jest ciągiem od 0 do 128 znaków ogr019 identyfikator sesji jest unikalny ogr020 identyfikator sesji jest ciągiem od 0 do 64 znaków ogr021 odwiedzający, do którego należy sesja, jest użytkownikiem ogr022 nazwa odwiedzającego, do którego należy sesja, jest od 0 do 64 znaków ogr023 czas wygaśnięcia sesji jest datą z godziną ogr024 zestaw zmiennych sesyjnych sesji jest tekstem dowolnej długości ogr025 nazwa makra jest unikalna ogr026 nazwamakrajestciągiemod1do64znaków ogr027 przyjmowane parametry makra są opisane ciągiem od 0 do 256 znaków ogr028 typ danych zwracany przez makro jest ciągiem od 0 do 64 znaków ogr029 protokół używany przez makro jest ciągiem od 0 do 64 znaków ogr030 celmakrajestciągiemod0do256znaków ogr031 parametry dla celu makra są opisane ciągiem od 0 do 256 znaków Tabela 2: Lista ograniczeń dziedzinowych w opisanym wycinku rzeczywistości 3 Definicje predykatowe encji oznaczenie definicja enc001 Page(page name, content, hash) enc002 HistoryPage(hist page name, hist content, hist hash, creation time, revision) enc003 User(user name, password hash) enc004 Session(session id, expiry time, variables) enc005 Macro(macro name, destination, input args, output args) enc006 Protocol(protocol) enc007 ResultType(result type) Tabela 3: Definicje encji w bazie 4

4 Definicje predykatowe związków między encjami oznaczenie definicja zwi001 HasHomePage(User(0..*):Page(0..1)) zwi002 IsAuthor(HistoryPage(0..*): User(1..1)) zwi003 IsSessionFor(Session(0..*): User(0..1)) zwi004 UsesProtocol(Macro(0..*): Protocol(1..1)) zwi005 ReturnsType(Macro(0..*): ResultType(1..1)) zwi006 HasHistory(Page(0..*): HistoryPage(1..1)) Tabela 4: Definicje relacji w bazie 5 Diagram związków encji Diagram ER dla DashWiki 5

6 Definicjerelacji oznaczenie definicja rel001 Pages(page name, content, hash,#(hist page name,creation time)) rel002 HistoryPages(hist page name, hist content, hist hash, creation time, revision,#user name) rel003 Users(user name, password hash,#page name) rel004 Sessions(session id, expiry time, variables,#user name) rel005 Macros(macro name, destination, input args, output args,#protocol,#result type) rel006 Protocols(protocol) rel007 ResultTypes(result type) Tabela 5: Definicje relacji między encjami 7 Opisyrelacji 7.1 rel001pages enc001 Page(page name, content, hash) zwi006 HasHistory(Page(0..*): HistoryPage(1..1)) page name łańcuch(128) PK,/^[A-Z][A-Za-z0-9_/]+$/ reg001, ogr001, ogr002 content tekst ogr003 hash łańcuch(64) ogr004 hist page name łańcuch(128) NOT NULL zwi006 creation time czas NOT NULL zwi006 FK(hist page name, creation time) HistoryPage zwi006 6

7.2 rel002historypages enc002 HistoryPage(hist page name, hist content, hist hash, creation time, revision) zwi002 IsAuthor(HistoryPage(0..*): User(1..1)) hist page name łańcuch(128) NOT NULL,/^[A-Z][A-Za-z0-9_/]+$/ ogr005, reg002, reg003 hist content tekst ogr006 hist hash łańcuch(64) ogr007 creation time czas NOT NULL ogr008, reg002 revision liczba(9) NOT NULL ogr009, reg003 author łańcuch(64) FK Users ogr010, ogr011, zwi002 PK(hist page name, creation time) reg002 UNIQUE(hist page name, revision) reg003 7.3 rel003users enc003 User(user name, password hash) zwi001hashomepage(user(0..*):page(0..1)) user name łańcuch(64) PK ogr014, ogr015, reg008 password hash łańcuch(64) ogr016 home page łańcuch(128) FK Pages ogr017, ogr018, zwi001 7

7.4 rel004sessions enc004 Session(session id, expiry time, variables) zwi003 IsSessionFor(Session(0..*): User(0..1)) session id łańcuch(64) PK reg017, ogr019, ogr020 expiry time czas ogr023 variables tekst ogr024 user name łańcuch(64) FK Users ogr021, ogr022, zwi003 7.5 rel005macros enc005 Macro(macro name, destination, input args, output args) zwi004 UsesProtocol(Macro(0..*): Protocol(1..1)) zwi005 ReturnsType(Macro(0..*): ResultType(1..1)) macro name łańcuch(64) PK, length > 0 reg022, ogr025, ogr026 destination łańcuch(256) ogr030 input args łańcuch(256) ogr027 output args łańcuch(256) ogr031 protocol łańcuch(64) NOT NULL, FK Protocols ogr029, zwi004 result type łańcuch(64) NOT NULL, FK ResultTypes ogr028, zwi005 8

7.6 rel006protocols enc006 Protocol(protocol) protocol łańcuch(64) PK reg023, ogr029 7.7 rel007resulttypes enc007 ResultType(result type) result type łańcuch(64) PK reg028, ogr028 9