Fakulta elektrotechnická

Rozměr: px
Začít zobrazení ze stránky:

Download "Fakulta elektrotechnická"

Transkript

1 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická DIPLOMOVÁ PRÁCE 2007 Radek Podgorný

2 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra telekomunikační techniky Operační a dohledové centrum telefonní ústředny Siemens EWSD leden 2007 Diplomant: Radek Podgorný Vedoucí práce: Ing. Pavel Troller, CSc.

3 Čestné prohlášení Prohlašuji, že jsem zadanou diplomovou práci zpracoval sám s přispěním vedoucího práce a konzultanta a používal jsem pouze literaturu v práci uvedenou. Dále prohlašuji, že nemám námitek proti půjčování nebo zveřejňování mé diplomové práce nebo její součásti se souhlasem katedry. Datum: podpis diplomanta

4 Anotace Předmětem této diplomové práce je analýza servisního protokolu ústředny Siemens EWSD a následná implementace komunikačního software na základě zjištěných informací. Podrobně jsou popsány postup a výsledky analýzy i vlastní implementace. V závěru je pak kromě zhodnocení obsaženo i několik námětů pro další rozvoj vytvořeného produktu do budoucnosti. Summary The subject of this final thesis is an analysis of Siemens EWSD switch service protocol and implementation of a communication program based on the information gathered. The procedure and results of both analysis and implementation are described thoroughly. In the final part, there is an evaluation together with few subjects for possible future development of the product.

5 Poděkování vedoucímu diplomové práce Dovoluji si poděkovat vedoucímu diplomové práce Ing. Pavlu Trollerovi, CSc. nejen za odborné vedení, cenné rady a připomínky, ale i za možnost kontaktu se světem telekomunikačních služeb a techniky v reálném provozu.

6 Obsah Obsah 1 1 Úvod Historie telekomunikačních ústředen Dnešní telekomunikační ústředny Důvody vývoje softwaru pro ústřednu Siemens EWSD Transport dat Struktura práce Úvod do terminologie Odposlech Volba nástroje Dissector pro Ethereal Výsledek odposlechu Analýza Preambule Užitečná data (payload) Výsledek analýzy Aplikace 16 1

7 4.1 Stávající aplikace Volba vývojové a operační platformy Volba nástroje pro správu verzí Rozšíření programu ewrecv Infrastruktura pro serializaci a deserializaci paketů Protokol X.25 a paketová komunikace Multiplexing pro více nezávislých uživatelů Rozšíření programu ewterm Reálné odhlášení Rozlišení zpráv alarmů Napojení na vrstu X.25 v systému Linux Modul x25tap Démon xotd Možnosti dalšího vývoje Využití dynamických knihoven Siemens pro získání zakódovaného hesla Směr dalšího vývoje Způsob dalšího vývoje Omezení platformy a architektury Demanglování názvů metod Konvence volání jazyka C++ v systému Windows Rekurzivní importování knihoven Závěr Celkové zhodnocení Osobní dojmy a připomínky Literatura 30 2

8 Kapitola 1 Úvod 1.1 Historie telekomunikačních ústředen Historie telekomunikačních ústředen se odvíjí od konce 70. let 19. století, kdz Alexander Graham Bell a Elisha Gray nezávisle na sobě vynalezli telefonní přístroj a patentovali jej rovněž nezávisle shodou okolností týž den, 14. února Bell následně založil společnost Bell Telephone Company, která nedlouho poté v roce 1885 přešla po zahrnutí Grayových patentových práv v American Telephone and Telegraph Company, neboli známou AT&T. Hovory jednotlivých účastníků bylo nutné spojovat a přepojovat (hlavní funkce ústředen), což se dělo výlučně manuálně prostřednictvím spojovatelek. Ve 20. století se po 1. světové válce začalo přecházet na automatizované reléové ústředny, které tehdy umožňovaly přímou volbu v rámci jednoho telekomunikačního uzlu, tj. většinou jednoho města, meziměstská a mezinárodní spojení se nadále uskutečňovala manuálně. Po 2. světové válce začal velmi pozvolný nástup polovodičových ústředen s pevným programem, které již zajišt ovaly automaticky místní a meziměstská spojení, mezinárodní spojení se nadále spojovala převážně manuálně. V 70. 3

9 letech se také začaly uskutečňovat první datové modemové a faxové přenosy na bázi analogového spojení. V 80. letech 20. století nastoupily sice také polovodičové, ale procesory řízené automatické telekomunikační ústředny, které se používají dodnes, a zajišt ují nejen plně automatizovaný provoz v podmínkách dnešního globálně propojeného světa, ale hlavně umožňují plnou digitalizaci hlasových a datových přenosů. Toto vedlo nejen k podstatnému zkvalitnění telekomunikačního spojení, ale hlavně k zavedení různých služeb, které by jiným způsobem nebyly uskutečnitelné. 1.2 Dnešní telekomunikační ústředny Tyto telekomunikační středny používané v produkčním prostředí se vyznačují především svou spolehlivostí a životností v řádu několika let. V oblasti vývoje a životnosti softwarového vybavení však dochází k velmi rychlým změnám, a udržovat kompatibilitu je velice složité a nákladné. Paradoxně tak dochází k situacím, kdy se plně funkční telekomunikační ústředna, která je ještě na počátku své fyzické životnosti, stává nepoužitelnou z důvodu neexistence ovládacího softwaru, který by byl schopen funkce na moderních počítačích s moderním operačním systémem. Výrobce ústředny a ovládacího softwaru sice vyrobí verzi kompatibilní s novými trendy, ale prodává ho jako zcela nový produkt naprosto bez vazby na to, že zákazník si již dříve koupil ústřednu a očekává její provozování v průběhu období její životnosti bez nutnosti dalších zbytečných poplatků výrobci. 4

10 1.3 Důvody vývoje softwaru pro ústřednu Siemens EWSD Vzhledem k tomu, že trh v oblasti telekomunikací je převážně záležitostí dominance gigantických společností, není pro tyto společnosti problém investovat nemalé částky do nové generace programů, místo mnohem racionálnějšího a ekonomičtějšího vyvíjení tlaku na výrobce. Tím ovšem značně trpí alternativní operátoři, kteří jsou nuceni hospodařit s mnohem menšími rozpočty, a nemohou si dovolit zcela zbytečně obměňovat programové vybavení ústředen vždy, když se výrobce rozhodne ukončit softwarovou podporu nebo výrobce operačního systému přeruší kompatibilitu. Přístup těchto výrobců ústředen je takový, že dokonce i po oficiálním ukončení výroby ovládacích programů odmítají jakkoliv spolupracovat s majiteli zakoupených ústředen na jejich vlastní implementaci. Důvod je zřejmý; zájem výrobce je, aby operátor koupil nový software. Pokud operátor (majitel ústředny) z nějakého důvodu nechce nebo nemůže do zakoupení relativně nákladného softwaru investovat, jediným řešením je vývoj a implementace vlastního ovládacího programu. A právě to je předmětem této diplomové práce Transport dat Samotná komunikace s ústřednou probíhá přes dnes již spíše ustupující protokol X.25. Právě z důvodu často chybějící X.25 infrastruktury jsou datagramy protokolu X.25 pro samotný přenos zabaleny do protokolu TCP 1, v našem případě v souladu se zapouzdřením XOT 2 podle firmy Cisco. TCP je pak 1 TCP Transmission Control Protocol 2 XOT X.25 over TCP Přesná specifikace je předmětem RFC

11 běžně přenášeno pomocí IP 3, dominantního protokolu dneška. 1.4 Struktura práce V následujících odstavcích je uveden stručný popis celkové struktury práce: V kapitole 2 se zabývám procesem odposlechu a záznamu komunikace mezi ústřednou Siemens EWSD a proprietárním ovládacím programem za účelem následné analýzy. V kapitole 3 se pak věnuji vlastní analýze nasbíraných paketů a interpretaci jejich obsahu. V kapitole 4 jsou popsány změny, které jsem implementoval do programů ewrecv a ewterm. Změny jsou založeny na poznatcích z kapitoly 3 a přidávají funkce pro plnohodnotné ovládání ústředny, založeném na protokolu X.25. Kapitola 5 nabízí náměty pro další pokračování v analýze a implementaci. V kapitole 6 pak nakonec shrnuji úspěšnost, náročnost a přínos vykonané práce. Připojuji v ní i několik osobních názorů a připomínek. 1.5 Úvod do terminologie Při analýze servisního protokolu jsem byl nucen z důvodu absence oficiální dokumentace odvodit vlastní pojmenování informačních polí, obsažených v jednotlivých paketech a blocích. Pro opakovanou použitelnost této analýzy i vlastního programu jsem se rozhodl zavést označení v anglickém jazyce. Překlad těchto pojmenování vynechám, protože na samotných názvech nezáleží. Význam polí je podrobně popsán v následujících částech této kapitoly. Označení, 3 IP Internet Protocol 6

12 uvedená v této kapitole, odpovídají označení struktur a proměnných ve vytvořeném programu. Dále se v této práci objevuje několik odborných termínů z oblasti programovacích jazyků, programování a operačního systému Linux, pocházejících převážně z anglického jazyka. Pro některé z nich čeština nemá vhodný ekvivalent, a proto jsem se rozhodl, hlavně z důvodů konzistentnosti, použít pouhý přepis. Konkrétní význam objasním v této části (uvedeno vždy s původním slovem). Termíny jsou uspořádany podle pořadí prvního použití v textu této práce. dissector (dissector) skupina funkcí, která má za úkol v obecné posloupnosti bytů nalézt oddělovací značky a naplnit předem definované struktury rozdělenými daty z původní posloupnosti preambule (preamble) i když je možné anglický originál přeložit jako hlavička nebo úvodní část, rozhodl jsem se z důvodu podobnosti použít české slovo preambule se stejným významem. payload (payload) užitečná data, nebo-li datová část paketu, nesoucí užitečnou informaci. parsování (parsing) proces analýzy vstupních dat, hledání oddělovačů jednotlivých informačních polí, a ukládání oddělených částí ve strukturované formě. offline (offline) tento výraz je označením pro zařízení, které není permanentně připojené do sítě internet. Používá se též pro druh práce, který stálé připojení nevyžaduje. modul (module) výraz je možné přeložit také jako ovladač, ale české slovo modul je v oblasti operačního systému Linux běžnější. 7

13 démon (daemon) aplikace běžící dlouhodobě v uživatelském prostoru, plnící nějaký úkol systémového rázu. Český překlad démon je ustáleným výrazem. hashování (hashing) transformace vstupní posloupnosti bytů libovolné délky na posloupnost výstupní s pevnou délkou. Dochází ke ztrátě informace. disassemblování (disassembling) proces převodu binárního spustitelného kódu do jazyka symbolických adres (assembleru) manglování (mangling) proces zakódování jména metody a její signatury do jediného řetězce. demanglování (demangling) inverzní operace k manglování. inline assembly (inline assembly) úsek zdrojového kódu jazyka symbolických adres (assembleru), vložený přímo do zdrojového kódu vyššího jazyka (v našem případě C). Po kompilaci zůstává tento úsek nezměněn. loadování (loading) proces přečtení dat z pevného disku nebo jiného média, a jejich následné uložení do paměti. Může též obsahovat i proces získání nebo nastavení metadat načtené oblasti. 8

14 Kapitola 2 Odposlech 2.1 Volba nástroje Pro analýzu datové komunikace bylo potřeba nejprve pakety zachytit na vrstvě Ethernet, dále postupně vybalit protokoly IP, TCP, XOT, X.25 a nakonec i vlastní protokol ústředny. Je logické, že pro zpracování tohoto několikastupňového zapouzdření bylo nejvhodnější použít již existující nástroj, a pouze ho obohatit o analyzátor protokolu ústředny. Nejvhodnějším kandidátem se nakonec ukázal být open-source program Ethereal (nyní Wireshark[7]), který patří k nejpopulárnějším ve své třídě (tedy analyzátory sít ového provozu). K samotnému odchycení paketů jsem využil program tcpdump. Sám Ethereal sice odchytávat pakety umí, ale vzhledem k jeho historii spojené s výskytem bezpečnostních děr je doporučeno spouštět ho pouze v odpojeném režimu nad daty již odchycenými. 9

15 2.2 Dissector pro Ethereal Pro analýzu samotného protokolu jsem zvolil postup přes implementaci rozšíření do open-source programu Ethereal. Ten již obsahuje množství protokolů a proto ušetřil práci s protokoly nižších vrstev (v mém případě postupně Ethernet, IP, TCP, XOT a X.25) a mohl jsem se soustředit pouze na servisní protokol ústředny. Rozšíření bylo implementováno v jazyce C, což sice není optimální řešení vzhledem k neexistenci datového typu string a snadnosti zavlečení chyby, ale na druhou stranu jsem minimalizoval eventuální problémy s okolní kompatibilitou, nebot samotný Ethereal je v jazyce C napsán. Pro samotnou analýzu paketů se v Etherealu používají tzv. dissectory. Jedná se o skupinu funkcí, které jako svůj argument přijmou datovou část paketu, provedou analýzu, a případně zavolají na část nesoucí užitečná data (payload) další dissectory. Protože není architektura Etherealu dostatečně flexibilní, bylo nutné modifikovat dissector protokolu X.25 tak, aby vždy přímo volal dissector protokolu EWSD. V hlavní funkci dissectoru dissect_ewsd() se pouze volá funkce dis_preamble(). Ta analyzuje preambuli podle výše uvedených pravidel, nastaví se globální proměnné hf_ewsd_family, hf_ewsd_dir, hf_ewsd_pltype, hf_ewsd_connid a hf_ewsd_subseq a v případě potřeby se zavolá ještě dissector bloku dis_ewsd(). Tato funkce pak podle specifikovaných pravidel bud volá rekurzivně sama sebe, nebo už interpretuje koncová data. 2.3 Výsledek odposlechu Zaznamenání paketů servisního protokolu ústředny Siemens EWSD proběhlo bez problémů. Vlastní implementace dissectoru byla po seznámení se s vnitřní struktu- 10

16 rou programu Ethereal přímočará a bez větších komplikací. Během vývoje mého rozšíření změnil autor programu Ethereal licenční podmínky a odštěpil další vývoj pod novým jménem Wireshark[7]. Mnou vytvořený patch se sice na nové zdrojové kódy aplikuje bez chyb, ale dissector EWSD je neaktivní. Vzhledem k tomu, že není potřeba dissector nadále udržovat (sloužil pouze pro analýzu, která již byla dokončena), nebylo potřebné zjišt ovat hlouběji příčiny nefunčnosti. Analýza základní struktury servisního protokolu byla úspěšná, podařilo se zjistit obecnou strukturu předávaných zpráv. 11

17 Kapitola 3 Analýza 3.1 Preambule Každá datová zpráva začíná sekvencí 11-ti bytů, nazývejme je preambulí. Volitelně pak následuje datová část, nesoucí užitečnou informaci. O tom, jestli se datová část objeví, či ne, rozhoduje právě obsah preambule. offset délka význam 0 1 family 1 1 unknown1 2 1 direction 3 1 payload type 4 2 connection id 6 1 sub-sequence 7 1 unknown2 8 2 session id 10 1 tail Tabulka 3.1: Analýza bytů preambule K preambuli podrobněji: family zdá se, že v komunikaci se vyskytují dvě hlavní rodiny zpráv: 12

18 rodina COMMAND (0xf1) a ANSWER (0xf2). direction původní předpoklad, že tento byte má něco společného se směrem komunikace (ústředna terminál nebo opačně), další zachycená data nepotvrdila. payload type tento byte vypovídá o typu datové části nebo o její samotné existenci, není však přesně popsáno, jakým způsobem. connection id tento word je unikátní pro každou sub-komunikaci (požadavek + odpověd ). sub-sequence pokud je odpověd delší než kapacita X.25 paketu, je nutné ji rozdělit do více částí (fragmentů). K identifikaci pořadí fragmentů slouží tento byte. session id toto informační pole je nejspíše unikátní pro každé sezení, tedy od přihlášení až do odhlášení. Tabulka podmínek pro další operace: dir pltype subseq operace 1 2 something parsuj jako blok 2 > 1 continued answer interpretuj přímo long answer parsuj jako blok 2 2 short answer parsuj jako blok 3 1 command confirmation parsuj jako blok 4 0 login attempt parsuj jako blok 0x0c 1 login accept parsuj jako blok 0x0e 0 something parsuj jako blok 3 6 confirmation, send more datová část neexistuje Tabulka 3.2: Přehled následných operací podle preambule 13

19 3.2 Užitečná data (payload) Datová část se skládá z několika bloků, které mohou být dokonce obsaženy rekurentně samy v sobě. Každý takovýto blok je uvozen trojicí bytů, kde první byte identifikuje číslo bloku (ID), a následující word jeho délku (LEN). Následuje užitečná informace o délce LEN. Jak jsem již uvedl dříve, některé kombinace ID vypovídají o tom, že užitečná část bloku se má opět parsovat a vyhledat v ní další bloky. Struktura obecného bloku je popsána v tabulce 3.3. offset délka význam 0 1 id 1 2 délka užitečných dat (LEN) 3 LEN data Tabulka 3.3: Struktura obecného bloku Další bloky se již neparsují rekurentně a jejich význam je popsán v tabulce 3.4, kde x je zástupný znak pro libovolnou hodnotu. 3.3 Výsledek analýzy I přesto, že nebyl beze zbytku zjištěn význam některých bytů nebo dokonce celých datových polí, praktickými zkouškami bylo ověřeno, že jejich obsah není pro funkčnost komunikace podstatný a ve většině případů postačí dané datové pole vynechat nebo ho naplnit libovolnou hodnotou. Význam polí nutných pro správnou funkčnost komunikace byl tedy zjištěn a proto je možné analýzu označit za úspěšnou. 14

20 pozice ve stromu offset délka význam x unknown1 x job number x-2 7 unknown2 x-3-1 exchange name x-3-2 APS version x-3-3 patch version x-3-5 username x-4-1 dir=4, pltype=0 terminal name x-4-1 exchange name x-4-2 APS version x-4-3 patch version x username x password x-4-4 terminal name x-4-5 username x year x month x day x hour x minute x second x-5-2 error message x-6-1 command x-7 answer Tabulka 3.4: Význam jednotlivých bloků 15

21 Kapitola 4 Aplikace Významnou částí diplomové práce bylo použití získaných znalostí o protokolu ústředny pro implementaci komunikačního programu. 4.1 Stávající aplikace Efektivním řešením bylo doplnění již existující dvojice programů ewrecv a ewterm o funkčnost, která využívá kanál X.25 pro přenos příkazů a může tak v budoucnu zcela nahradit komunikaci přes sériové rozhraní. Architektura programů ewrecv a ewterm odpovídá schématu klient/server kdy ewrecv plní roli serveru a realizuje samotnou komunikaci s ústřednou. Směrem ke svým klientům (ewterm) komunikuje přes vlastní stavový protokol využívající pro transport protokol TCP. Sériové rozhraní mezi ústřednou a ewrecv i mezi ewrecv a ewterm je znakově orientované, což neodpovídá přístupu přes protokol X.25, kde je datový přenos orientovaný paketově. Upravovat protokol mezi ewrecv a ewterm na paketově orientovaný by bylo asi optimální řešení, ale hrozilo by velké riziko zanesení chyb a ztráta kompatibility se starší verzí. Rozhodl jsem se proto 16

22 tento protokol neměnit (nakonec jsem ho však musel rozšířit). Přepisování programu ewrecv na plnohodnotně paketový by bylo značně náročné a bez stálého testovaní, jestli nebyla ohrožena původní funkčnost, vlastně nemožné. Proto zůstala vnitřní architektura programu prakticky nezměněna (stále se tedy jedná o znakově orientované rozhraní), ale pomocí několika menších úprav a rozšíření bylo dosaženo i toho, že je program schopen přijímat a odesílat celé pakety. 4.2 Volba vývojové a operační platformy Vzhledem k tomu, že již existující sada komunikačních programů je implementována na platformě Linux[3], bylo nejvhodnější toto prostředí zachovat. Systém Linux je známý především díky jeho vývojovému modelu, kdy se na programování podílí značný počet dobrovolníků internetové komunity bez nároku na honorář. Tento způsob vývoje nabízí výhody, jako volně dostupné a modifikovatelné zdrojové kódy nebo vynikající stabilitu. To jsou důvody, které mimo jiné rozhodly pro Linux nejen jako operační prostředí pro výsledný program, ale také pro jeho vývoj. 4.3 Volba nástroje pro správu verzí Pro usnadnění vývoje, sledování změn a snadnější hledání vnesených chyb jsem se rozhodl pro vývoj používat nástroj pro správu verzí. Vzhledem ke značně decentralizované a offline povaze vývoje jsem při výběru hned vyřadil Subversion[6] a CVS[1], které pro práci vyžadují neustálé spojení s hlavním repozitářem. Nakonec jsem zvolil SCM 1 nástroj Mercurial[4] s distribuovaným přístupem, který umožňuje se zdrojovými kódy pohodlně pracovat 1 SCM source control management (správa zdrojových kódů) 17

23 i bez přístupu k hlavnímu repozitáři. Mercurial je nástroj multiplatformní, napsaný v jazyku Python[5]. 4.4 Rozšíření programu ewrecv Program ewrecv realizuje serverovou část. Stará se o komunikaci s ústřednou (přes sériovou linku nebo protokol X.25) a klientům poskytuje nezávislé komunikační rozhraní založené na protokolu TCP. Jeho dalším úkolem je multiplexování jednoho spojení (hlavně v případě sériové linky, kdy více než jedno spojení ani není možné) pro více klientů, aby bylo možné s ústřednou komunikovat z několika míst najednou Infrastruktura pro serializaci a deserializaci paketů Výsledkem analýzy servisního protokolu ústředny Siemens EWSD byla definice struktur posílaných paketů. V samotném programu, kde bylo potřeba tyto pakety interpretovat a sestavovat, by bylo velmi nepohodlné k datům přistupovat nestrukturovaně. Proto jsem vytvořil sadu funkcí, které posloupnost bytů, přenášených po ethernetové lince, uloží do definovaných struktur s pojmenovanými členskými proměnnými. Nechybí ani sada funkcí, které data z těchto struktur opět uloží jako posloupnost bytů ve správném formátu. Tím se práce s pakety výrazně zjednoduší a začne být intuitivní. Jádro tvoří struktury struct packet a struct block, které představují výše popsanou abstrakci. Nedílnou součástí jsou pak funkce packet_deserialize() a block_deserialize(), které mají za úkol z obecné (ale ne náhodné) posloupnosti bytů naplnit zmíněné struktury. Pro nalezení určitého uzlu ve stromu bloků slouží funkce block_getchild(). 18

24 Při vytváření paketu použijeme funkci packet_alloc() pro alokaci a inicializaci struktury paketu, poté pomocí série volání funkce block_addchild() přidáme požadované uzly (strom se vytváří automaticky). Nakonec převedeme struktury na výslednou posloupnost bytů, která je již připravena k odeslání pomocí funkce packet_serialize(). Pro správnou funkčnost celého systému abstrakce jsem samozřejmě vytvořil větší množství funkcí. Ty ale ve většině případů zůstávají pro uživatele skryty. Striktní dodržování prefixů packet_ a block_ a logický systém vrstvení zaručuje snadnou orientaci i pro nezasvěceného programátora, který by chtěl provádět modifikace Protokol X.25 a paketová komunikace Program ewrecv je ve svém jádru znakově orientovaný, což je pro komunikaci přes X.25 nevhodné. Hlavní úprava tedy spočívala ve vytvoření funkcí packet_deserialize(), která několik znaků na vstupu převede na celistvý paket a vytvoří strom bloků a ProcessExchangePacket(), která tento strukturovaný paket zpracuje. Pro realizaci plné funkčnosti také vzniklo značné množství dílčích funkcí. Bylo by však zbytečné zde popisovat jejich signatury a funkčnost Multiplexing pro více nezávislých uživatelů Multiplexing pro více uživatelů je schopnost rozlišit několik nezávislých uživatelů (kdy každý z těchto uživatelů může být připojen přes několik instancí programu ewterm najednou), a poskytnout jim možnost komunikovat s ústřednami nezávisle na uživatelích ostatních. To vše bud přes jediný fyzický X.25 kanál, nebo přes obecný počet spojení, alokovaných po jednom pro každého uživatele. 19

25 Program ewrecv jsem rozšířil o pole spojení na ústředny, které jsou při případném výpadku jednotlivě obnoveny. Data přijatá z terminálů jsou pak rozeslána pomocí všech spojení v poli. Odpovědi od ústředen jsou postupně načítány a rozesílány k jednotlivým terminálům. Pro správnou funkčnost je nutné zajistit deaktivaci interaktivního MML a zaručit, aby přihlašovací údaje (jméno a heslo) byly na všech ústřednách stejné. 4.5 Rozšíření programu ewterm Úpravy programu ewterm byly s úpravami v programu ewrecv podstatně méně náročné, přesto však ne triviální. Vzhledem k tomu, že program ewterm představuje klientskou část, nemusí se programátor zabývat násobným připojením a souběhem. Množství uchovávaných stavových informací je v porovnání s programem ewrecv také menší Reálné odhlášení Hlavní změny se týkaly obohacení komunikačního protokolu mezi ewrecv a ewterm o povel pro odhlášení, nebot původně bylo odhlášení řešeno pouze odesláním příkazu ENDSESSION; z terminálu. Tento způsob odhlašování je platný pouze pro původní sériovou komunikaci, ale pro X.25 již platný není. Bylo proto nutné přesunout odhlašovací rutiny do programu ewrecv, obohatit vnitřní protokol a upravit ewterm tak, aby toto nové rozšíření používal Rozlišení zpráv alarmů Další zlepšení, které přinesla komunikace přes X.25, je rozlišení příchozího textu na odpovědi na zadané příkazy a provozní alarmy a zprávy údržby, 20

26 které jsou generovány automaticky. Je nepříjemné, když se tyto automatické zprávy vměšují do běžného povelovacího sezení, a proto je žádoucí tyto zprávy rozlišit a zpracovávat pouze specializovaným klientem. Z tohoto důvodu bylo nutné vnitřní protokol ještě rozšířit o povely zasílat alarmy a nezasílat alarmy. Samozřejmě jsem musel změny patřičně zapracovat i do programů ewrecv a ewterm. 4.6 Napojení na vrstu X.25 v systému Linux Tato komunikace probíhá přes protokol X.25. Vzhledem k tomu, že nechceme realizovat přenos přes fyzickou vrstvu s protokolem X.25, je nutné pakety zapouzdřit do protokolu XOT a přes transportní vrstvu TCP je pak odeslat dále do sítě, kde jsou těsně před ústřednou opět převedeny na X Modul x25tap Pro úspěšné zapouzdření je nutné X.25 pakety přijaté linuxovým jádrem předat do uživatelského prostoru. O to se postará modul x25tap[8], který vytvoří virtuální X.25 rozhraní, a data podle potřeby vyměňuje mezi uživatelským prostorem a prostorem jádra Démon xotd Když jsou pakety protokolu X.25 předány modulem x25tap z jádra, přijme je démon xotd[8], který k nim přidá XOT hlavičku a pošle je na definovanou IP adresu (a port) protokolem TCP. Naopak, pokud přijdou z IP sítě XOT pakety, démon xotd z hlavičky extrahuje potřebné informace a dále předá uživatelská data, tedy X.25 paket, jádru přes virtuální zařízení x25tap. 21

27 Kapitola 5 Možnosti dalšího vývoje 5.1 Využití dynamických knihoven Siemens pro získání zakódovaného hesla Během analýzy proprietárního protokolu Siemens bylo zjištěno, že při přihlašování je heslo posíláno ve speciálním zakódovaném formátu, který znemožňuje jednoduše heslo na lince nahrát a poté opětovně použít pro přihlášení s právy původního uživatele. Toto heslo je závislé na čase (s přesností na sekundy) a je hashováno pomocí funkce MD5 nebo její modifikace. I přes značné úsilí, které by odhalilo algoritmus sestavení této posloupnosti bytů, se tento postup nepodařilo odhalit, a tak jedinou funkční metodou pro získání hesla, chráněného proti opětovnému přehrání, je použití binárních Win32 knihoven, které dodává přímo firma Siemens a tuto funkčnost obsahují. Z důvodu nepotřebnosti pro funkčnost celku byla pouze zpracována příprava postupu pro budoucí využití při implementaci této funkce do programu ewrecv. V následujících částech uvedu postup vhodný pro využití části binární 22

28 dynamické C++ knihovny z prostředí Windows na architektuře x86. Jedná se o českou verzi anglického článku[9], který jsem při své vývojové činnosti vytvořil. 5.2 Směr dalšího vývoje Knihovny, ze kterých chceme získat kód, jsou napsány v jazyce C++ a jsou tedy objektově orientované. Linkování s objektově orientovanými knihovnami v době kompilace není obecně problém, ale k tomuto kroku jsou potřeba statické linkovací knihovny, které Siemens nedodává a tak jedinou možností je dynamické linkovaní za běhu programu. To je však relativně složitá situace. Je velmi jednoduché použít exportovanou funkci v čistém C, protože jediné, co je nutné udělat, je najít správnou adresu a poté funkci prostě zavolat s patřičnými argumenty (správné argumenty a návratový typ však musíme předem znát). V případě C++ jsou metody tříd exportovány jako běžné funkce v čistém C, ale jejich názvy jsou manglovány (takže je možné mít Class1::DoSomething() i Class2::DoSomething() dohromady). Je výhodou, že nemusíme předem vědět správné argumenty a návratový typ, protože kompletní signatura metody je součástí manglovaného jména. Hlavní problém spočívá v tom, jak tyto funkce použít s nějakou instancí třídy, tedy jako metody a jak tento celek vhodně obalit tak, aby měl vlastnosti třídy/objektu. 5.3 Způsob dalšího vývoje Popsaná metoda nepatří k těm, které by se měly při běžném programování používat. Je náchylná na zavlečení chyby, kterou kompilátor nezjistí, ale která 23

29 může způsobit pád programu. Jinou možnost ale pravděpodobně nemáme Omezení platformy a architektury Funkčnost je zaručena pouze na platformě Windows (možná dokonce pouze s kompilátorem Microsoft Visual C++) a to pouze na architektuře x86. Podobnou techniku je možné použít i na jiných platformách a architekturách, ale postupy se mohou mírně i značně lišit Demanglování názvů metod V jazyce C++ neexistuje jednoznačně definovaný způsob, jak by měla být jména funkcí manglována, takže výsledné názvy jsou specifické pro jednotlivé kompilátory. Kompilátor Microsoft Visual C++ mangluje jména například do??0slnepasswd@@qae@abv0@@z (a podobných). S výhodou pro nás obsahuje takto manglované jméno všechny potřebné informace, které potřebujeme k úspěšnému importování metod a jejich použití objektově orientovaným způsobem. Na internetu lze nalézt mnoho nástrojů, vhodných pro demanglování jmen funkcí zpět na jejich plné signatury. Já zvolil nástroj IDA Pro[2]. Jedná se o velmi užitečný disassembler s mnoha funkcemi. Ostatní nástroje ale budou pravděpodobně také fungovat uspokojivě. Takto vypadá vzorek výstupu po disassemblování: ; private: class CLBinary thiscall SLNEPasswd::GetMD5Encryption( \ class CLBinary const &) public?getmd5encryption@slnepasswd@@aae?avclbinary@@abv2@@z?getmd5encryption@slnepasswd@@aae?avclbinary@@abv2@@z proc near Nyní je tedy známo, co funkce očekává jako argumenty a co hodlá vrátit. 24

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu

Více

ČÁST 1. Základy 32bitového programování ve Windows

ČÁST 1. Základy 32bitového programování ve Windows Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Simluátor Trilobota. (projekt do předmětu ROB)

Simluátor Trilobota. (projekt do předmětu ROB) Simluátor Trilobota (projekt do předmětu ROB) Kamil Dudka Jakub Filák xdudka00 xfilak01 BRNO 2008 1 Úvod Jako školní týmový projekt jsme si zvolili simulátor trilobota 1 a jeho prostředí. Simulátor komunikuje

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Úvod. Programovací paradigmata

Úvod. Programovací paradigmata .. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky

Více

Počítačové sítě Systém pro přenos souborů protokol FTP

Počítačové sítě Systém pro přenos souborů protokol FTP Počítačové sítě Systém pro přenos souborů protokol FTP Autorizovaný přístup do souborového systému hostitelského uzlu Informace o obsahu souborového systému hostitelského uzlu Obousměrný přenos kopií souborů

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

Matematika v programovacích

Matematika v programovacích Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?

Více

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

IB111 Programování a algoritmizace. Objektově orientované programování (OOP) IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,

Více

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP Počítačové sítě Lekce 4: Síťová architektura TCP/IP Co je TCP/IP? V úzkém slova smyslu je to sada protokolů používaných v počítačích sítích s počítači na bázi Unixu: TCP = Transmission Control Protocol

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory

Více

SEMESTRÁLNÍ PROJEKT Y38PRO

SEMESTRÁLNÍ PROJEKT Y38PRO SEMESTRÁLNÍ PROJEKT Y38PRO Závěrečná zpráva Jiří Pomije Cíl projektu Propojení regulátoru s PC a vytvoření knihovny funkcí pro práci s regulátorem TLK43. Regulátor TLK43 je mikroprocesorový regulátor s

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP. Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Telnet klient Telnet server login shell terminal driver Jádro TCP/IP TCP/IP Jádro Pseudo terminal driver Uživatel u terminálu TCP spojení

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

MST - sběr dat pomocí mobilních terminálů on-line/off-line

MST - sběr dat pomocí mobilních terminálů on-line/off-line MST - sběr dat pomocí mobilních terminálů on-line/off-line Stručný přehled název: MST, software pro sběr dat mobilními terminály ve skladu (příjem, výdej, inventura) autor aplikace: FASK, spol. s r.o.,

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Inovace výuky prostřednictvím šablon pro SŠ

Inovace výuky prostřednictvím šablon pro SŠ Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Cílová skupina Anotace Inovace výuky prostřednictvím šablon

Více

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 12. Virtuální sítě (VLAN) Studijní cíl Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 1 hodina VLAN Virtuální síť bývá definována jako logický segment LAN, který spojuje koncové uzly, které

Více

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF IP vrstva Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF UDP TCP Transportní vrstva ICMP IGMP OSPF Síťová vrstva ARP IP RARP Ethernet driver Vrstva síťového rozhraní 1 IP vrstva Do IP vrstvy náležejí další

Více

TCP-Wedge ZDARMA. Přidává podporu TCP/IP: Sběr dat z adres portu IP na libovolné síti TCP/IP - ethernet / internet.

TCP-Wedge ZDARMA. Přidává podporu TCP/IP: Sběr dat z adres portu IP na libovolné síti TCP/IP - ethernet / internet. Katalogový list www.abetec.cz Software WinWedge Professional pro sběr dat 15-1003E Obj. číslo: 106001285 Výrobce: Mark-10 Corporation Anotace Přenáší data do libovolného programu Windows. Poskytuje plný

Více

Překladač a jeho struktura

Překladač a jeho struktura Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice

Více

Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany

Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany Obranné valy (Firewalls) Vlastnosti Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany Filtrování paketů a vlastnost odstínění Různé

Více

Analýza aplikačních protokolů

Analýza aplikačních protokolů ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická PROJEKT Č. 4 Analýza aplikačních protokolů Vypracoval: V rámci předmětu: Jan HLÍDEK Komunikace v datových sítích (X32KDS) Měřeno: 28. 4. 2008

Více

Programování v C++ 3, 3. cvičení

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

Více

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu Internet a zdroje (ARP, routing) Mgr. Petr Jakubec Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu 12 26. 11. 2010 (KFC-INTZ) ARP, routing 26. 11. 2010 1 / 10 1 ARP Address Resolution

Více

Common Object Request Broker Architecture

Common Object Request Broker Architecture Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální

Více

SSL Secure Sockets Layer

SSL Secure Sockets Layer SSL Secure Sockets Layer internetové aplikační protokoly jsou nezabezpečené SSL vkládá do architektury šifrující vrstvu aplikační (HTTP, IMAP,...) SSL transportní (TCP, UDP) síťová (IP) SSL poskytuje zabezpečenou

Více

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE 2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011 Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich

Více

Funkční objekty v C++.

Funkční objekty v C++. Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční

Více

TRANSPORTY výbušnin (TranV)

TRANSPORTY výbušnin (TranV) TRANSPORTY výbušnin (TranV) Ze zákona vyplývá povinnost sledování přeprav výbušnin. Předpokladem zajištění provázanosti polohy vozidel v čase a PČR je poskytování polohy vozidla předepsaným způsobem. Komunikace

Více

09. Memory management. ZOS 2006, L.Pešička

09. Memory management. ZOS 2006, L.Pešička 09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému

Více

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7 PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

přetížení operátorů (o)

přetížení operátorů (o) přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního

Více

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7 PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z

Více

java remote method invocation Kateřina Fricková, Matouš Jandek

java remote method invocation Kateřina Fricková, Matouš Jandek java remote method invocation Kateřina Fricková, Matouš Jandek Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého

Více

Co je doma, to se počítá, aneb Jak ušetřit na komunikaci. Petr SOLNAŘ / Liberecká IS, a.s. Michal NOVÁK / SOITRON CZ, s.r.o. 12.6.

Co je doma, to se počítá, aneb Jak ušetřit na komunikaci. Petr SOLNAŘ / Liberecká IS, a.s. Michal NOVÁK / SOITRON CZ, s.r.o. 12.6. Co je doma, to se počítá, aneb Jak ušetřit na komunikaci. Petr SOLNAŘ / Liberecká IS, a.s. Michal NOVÁK / SOITRON CZ, s.r.o. 12.6.2008 VoIP Liberec Proč by se o telefony mělo starat IT? Případová studie

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

A4300BDL. Ref: JC

A4300BDL. Ref: JC # Uživatelský manuál A4300BDL Aplikace :! Jednoduchý program umožňující přenos souboru s pochůzkou k měření z programu DDS 2000 do přístroje řady Adash 4300! Jednoduchý program umožňující přenos naměřených

Více

Uživatelský modul. DF1 Ethernet

Uživatelský modul. DF1 Ethernet Uživatelský modul DF1 Ethernet APLIKAC NÍ PR ÍRUC KA POUŽITÉ SYMBOLY Použité symboly Nebezpečí Důležité upozornění, jež může mít vliv na bezpečí osoby či funkčnost přístroje. Pozor Upozornění na možné

Více

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina 5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.

Více

Experimentální systém pro WEB IR

Experimentální systém pro WEB IR Experimentální systém pro WEB IR Jiří Vraný Školitel: Doc. RNDr. Pavel Satrapa PhD. Problematika disertační práce velmi stručný úvod WEB IR information retrieval from WWW, vyhledávání na webu Vzhledem

Více

Objektové programování

Objektové programování Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

Implementace systémů HIPS: historie a současnost. Martin Dráb

Implementace systémů HIPS: historie a současnost. Martin Dráb Implementace systémů HIPS: historie a současnost Martin Dráb martin.drab@secit.sk HIPS: základní definice Majoritně používané operační systémy disponují bezpečnostními modely, které dovolují jednotlivým

Více

Směrovací protokol Mesh (802.11s) na platformě Mikrotik

Směrovací protokol Mesh (802.11s) na platformě Mikrotik Směrovací protokol Mesh (802.11s) na platformě Mikrotik J. Bartošek, P. Havíček Abstrakt: V této práci je popsán princip fungování směrovacího protokolu mesh na platformě mikrotik. Na této platformě ovšem

Více

11. Přehled prog. jazyků

11. Přehled prog. jazyků Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Více

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Platební systém XPAY [www.xpay.cz]

Platební systém XPAY [www.xpay.cz] Platební systém XPAY [www.xpay.cz] implementace přenosu informace o doručení SMS verze 166 / 1.3.2012 1 Obsah 1 Implementace platebního systému 3 1.1 Nároky platebního systému na klienta 3 1.2 Komunikace

Více

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody 4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty

Více

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server. SIMATIC S7-200 243-1 2005, Page 1 Program workshopu Začátek: 9.00 GPRS - aplikace pro GPRS, základy - jak nastavit vzdálenou stanici, knihovna instrukcí pro GPRS - jak nastavit server (SINAUT MICRO SC,

Více

Inthouse Systems s.r.o. Specifikace. Inthouse App a Inthouse Studio pro Siemens Climatix 6XX. Verze software 1.X. Revize dokumentu 6

Inthouse Systems s.r.o. Specifikace. Inthouse App a Inthouse Studio pro Siemens Climatix 6XX. Verze software 1.X. Revize dokumentu 6 Inthouse Systems s.r.o. Specifikace Inthouse App a Inthouse Studio pro Siemens Climatix 6XX Verze software 1.X Revize dokumentu 6 Datum 4. 11. 2016 Obsah Obsah 1 Úvod 2 Základní přehled systému 2 Inthouse

Více

IntraVUE 2.0.3 Co je nového

IntraVUE 2.0.3 Co je nového IntraVUE 2.0.3 Co je nového Michal Tauchman Pantek (CS) s.r.o. Červen 2008 Strana 2/8 Úvod IntraVUE je diagnostický a podpůrný softwarový nástroj pro řešení komunikačních problémů, vizualizaci a dokumentaci

Více

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_31_20 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední

Více

Profesionální služby kolem Linuxu

Profesionální služby kolem Linuxu Profesionální služby kolem Linuxu 18.5.2011 Libor Pecháček vedoucí týmu podpory třetí úrovně, SUSE Linux s.r.o. Agenda Komerční distribuce Profesionální podpora Technické nástroje podpory

Více

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 UML unifikovaný modelovací jazyk Zkratka tohoto

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

Systém adresace paměti

Systém adresace paměti Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného

Více

TC-502L. Tenký klient

TC-502L. Tenký klient TC-502L Tenký klient Popis přístroje Tenký klient s kompletní podporou pro připojení do systémů Windows 7, Vista, Windows 2008, Windows 2003, Windows XP Pro, Linux servery. Disponuje 1x rozhraním LAN 10/100,

Více

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP.

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP. Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Telnet klient Telnet server login shell terminal driver Operační systém TCP/IP TCP spojení TCP/IP Pseudo terminal driver Operační systém

Více

Vyřešené teoretické otázky do OOP ( )

Vyřešené teoretické otázky do OOP ( ) Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 35.240.60 materiálem o normě. Dopravní telematika Vyhrazené spojení krátkého rozsahu (DSRC) Datová

Více

TC-502L TC-60xL. Tenký klient

TC-502L TC-60xL. Tenký klient TC-502L TC-60xL Tenký klient Popis přístroje Tenký klient TC-502L s kompletní podporou pro připojení do systémů Windows 7, Vista, Windows 2008, Windows 2003, Windows XP Pro, Linux servery. TC-604 navíc

Více

Systém Přenos verze 3.0

Systém Přenos verze 3.0 Systém Přenos verze 3.0 (bezpečná komunikace a automatizované zpracování dat) CTlabs spol. s r.o. Pernštejnské Janovice 28, 593 01 Bystřice nad Pernštejnem, tel/fax.: 0505-551 011 www.ctlabs.cz info@ctlabs.cz

Více

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který

Více

KRY. Projekt č. 2. Kamil Dudka xdudka00

KRY. Projekt č. 2. Kamil Dudka xdudka00 KRY Projekt č. 2 Kamil Dudka xdudka00 1 Úvod Úkolem bylo vytvořit program, který do určeného obrázku umí schovat text a tento text z obrázku později vytáhnout. Schovaný text měl být zabezpečený pomocí

Více

Jednotlivé hovory lze ukládat nekomprimované ve formátu wav. Dále pak lze ukládat hovory ve formátu mp3 s libovolným bitrate a také jako text.

Jednotlivé hovory lze ukládat nekomprimované ve formátu wav. Dále pak lze ukládat hovory ve formátu mp3 s libovolným bitrate a také jako text. 1.0 Nahrávání hovorů Aplikace Nahrávání hovorů ke svému chodu využívá technologii od společnosti Cisco, tzv. Built-in bridge, která snižuje nároky na síťovou infrastrukturu, snižuje náklady a zvyšuje efektivitu

Více

Administrační systém ústředen MD-110

Administrační systém ústředen MD-110 SAS MD-110 Administrační systém ústředen MD-110 SAS MD-110 Administrační systém ústředen MD-110 Efektivní systém administrace poboček a parametrů ústředen Ericsson MD110 s přímou vazbou na telefonní seznam

Více

Roční periodická zpráva projektu

Roční periodická zpráva projektu WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových

Více

Správa verzí souborů na cvičení

Správa verzí souborů na cvičení Správa verzí souborů na cvičení Úvod do problematiky, metodické pokyny Karel Šimerda Univerzita Pardubice, Fakulta elektrotechniky a informatiky 1. února 2010 Karel Šimerda (KST, FEI) IOOP/INPSW 1. února

Více

Popis programu EnicomD

Popis programu EnicomD Popis programu EnicomD Pomocí programu ENICOM D lze konfigurovat výstup RS 232 přijímačů Rx1 DIN/DATA a Rx1 DATA (přidělovat textové řetězce k jednotlivým vysílačům resp. tlačítkům a nastavovat parametry

Více

Zajištění kvality služby (QoS) v operačním systému Windows

Zajištění kvality služby (QoS) v operačním systému Windows VŠB TU Ostrava Směrované a přepínané sítě Zajištění kvality služby (QoS) v operačním systému Windows Teoretické možnosti aplikace mechanismů zabezpečení kvality služby (QoS) v nových verzích MS Windows

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

Flow Monitoring & NBA. Pavel Minařík

Flow Monitoring & NBA. Pavel Minařík Flow Monitoring & NBA Pavel Minařík minarik@invea.cz Formulace zadání Zákazník požaduje řešení pro monitorování a analýzu provozu datové sítě Měření provozu v prostředí multi-10gbps infrastruktury Historie

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Seznámení s prostředím dot.net Framework

Seznámení s prostředím dot.net Framework Základy programování v jazyce C# Seznámení s prostředím dot.net Framework PL-Prostředí dot.net - NET Framework Je základním stavebním prvkem, na kterém lze vytvářet software. Jeho součásti a jádro je založené

Více

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25 Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Připojení přístroje A4101 k aplikaci DDS2000

Připojení přístroje A4101 k aplikaci DDS2000 " Uživatelský manuál Připojení přístroje A4101 k aplikaci DDS2000 Aplikace :! Přenos a archivace dat naměřených přístrojem A4101! Přenos pochůzky vytvořené v aplikaci DDS2000 do přístroje A4101 Vlastnosti

Více