Aplikačné programové vybavenie počítačov
Aplikační software
Pojem aplikační software nebo aplikační programové vybavení znamená takové programové vybavení počítače, které je určeno pro přímou či částečně nepřímou interakci s uživatelem, na rozdíl od obecného pojmu programové vybavení (software), které nemusí být v interakci s uživatelem (např. programové vybavení moderní telefonní ústředny). Často se termín zkracuje na slovo aplikace . Účelem aplikačního software je zpracování a řešení konkrétního problému (uživatele).
Typicky má aplikační software grafické nebo textové rozhraní pro interakci s uživatelem. Aplikácia komunikuje s operačným systémom pomocou API.
API je zkratka anglických slov application programming interface, což znamená rozhraní pro programování aplikací. Tento termín používá softwarové inženýrství v programování.
Jde o sbírku procedur, funkcí či tříd nějaké knihovny (ale třeba i jiného programu nebo jádra operačního systému), které může využívat programátor, který knihovnu využívá. API určuje, jakým způsobem se funkce knihovny mají volat ze zdrojového kódu programu; rozhraní knihovny, které se využívá po přeložení programu do binární podoby a během jeho běhu, se nazývá ABI.
Důležitá jsou například grafická API jako OpenGL a DirectX, která jsou standardizována, a programátor je může v programu využít. Způsob jejich vykonání pak záleží na konkrétním počítači, na výkonosti grafické karty, případně může být vykreslování kompletně softwarově emulováno nějakou programovou knihovnou (např. Mesa).
V operačním systému Microsoft Windows se pro komunikaci programů se systémem používá Windows API.
Funkce API jsou programové celky, které programátor používá namísto toho, aby je sám naprogramoval.
Rozdělení aplikačního software podle účelu
• Antivirové aplikace, AntiSpyware
• Databázové systémy
• Ekonomické a informační systémy
• Grafické editory
o bitmapové
o vektorové
• Hry
• Internetové prohlížeče (browsery)
• Kancelářské balíky
• Počítačová podpora výroby (CAD, CAM, CAE…)
• Pomocné programy – utility
• Poštovní programy
• Prezentační programy
• Správci souborů a archivační programy
• Textové editory a DTP programy
• Tabulkové kalkulátory
• Výukové programy
• Vývojové nástroje (nástroje pro tvorbu programů, kompilátor, debugger atd.)
• zábava, hry
Textový editor je software, kterým je možné editovat prostý text. Na rozdíl od textových procesorů , se kterými se často pletou, postrádají schopnost měnit vzhled dokumentu. Nejsou totiž orientované na DTP, ani jako WYSIWYG editory pro WWW, ale například jako součásti vývojových prostředí programátorů. Rozdíl mezi textovým editorem a textovým procesorem je, že textový procesor (Microsoft Word a pod.) má většinou více možností, než textový editor.
GO BACK
Jako příklad aplikace můžou sloužit: * Poznámkový blok * PSPad * TED Notepad * Textpad * Vim
Desktop publishing
Výraz desktop publishing (zkráceně DTP) pochází z angličtiny. Jedná se o tvorbu tištěného dokumentu za pomoci počítače. K tomu, aby mohl dokument vzniknout, je zapotřebí kromě počítače a obsluhy, obvykle DTP operátor nebo grafik, také sázecího počítačového programu.
Termín DTP se rozšířil v 80. letech 20. století, kdy společnost Aldus uvedla na trh sázecí program PageMaker. Tento program časem doplnily profesionální QuarkXpress, Adobe Indesign, zdarma poskytovaný TeX a jeho pozdější komerční klony a v posledních pár letech také Scribus.
Samotná sazba dokumentu spočívá ve vkládání textů a obrázků na stránku a jejich upravách. Většna sázecích programů pracuje v režimu WYSIWYG a nabízí celou řadu funkcí, od importu mnoha formátů až po pokročilou přípravu pro tisk.
Tabulkový procesor
Tabulkový procesor je program zpracovávající tabulku informací (je to vlastně matice). V jednotlivých buňkách mohou být uložena data či vzorce počítající s těmi daty. V tom případě se v tabulce zobrazují data vypočtená ze vzorců. Dnes jsou hojně integrovány do kancelářských balíků. Zprvu byl tabulkový procesor využíván zejména ve finančnictví, proto byly první verze vybaveny zejména funkcemi vhodnými na finanční výpočty, dnes ho však jde využít k širokému množství výpočtů a jiných zpracování dat.
V současné době je nejpoužívanější Microsoft Excel pro Microsoft Windows a Mac OS. Na ostatních operačních systémech je asi OpenOffice.org Calc , který proniká i na Microsoft Windows.
Když programátorské jazyky umožnily tvoření tisknutelných sestav, vedlo to ke snaze o efektivnější organizaci dat. První tabulkové procesory data přepočítávaly v pořadí určeném jejich pozicí v tabulce, ale později se přešlo na reprezentaci v grafu závislosti, kde jednotlivé obsazené buňky tvoří uzly a hrany jsou odkazy na jiné buňky zmíněné ve vzorci. Takto se při změně hodnoty buňky mohou přepočítávat jen buňky změnou zasažené.
Komunikačné nástroje sú nástroje pomocou ktorých užívatelia kominikujú s ostatnými v LAN alebo WAN.
Rozdelenie : - Instant Messenging - Instant messaging je internetová služba, umožňující svým uživatelům sledovat, kteří jejich přátelé jsou právě připojeni, a dle potřeby jim posílat zprávy, chatovat, přeposílat soubory mezi užvateli a i jinak komunikovat. Hlavní výhodou oproti používání např. emailu spočívá v principu odesílání a přijímání zpráv v reálném čase. Jinými slovy zpráva je doručena ve velmi krátké době od odeslání (většinou v rámci stovek milisekund).
- VoIP - telefonovanie pomocou Internetového Protokolu IP. VoIP program je dokonalejším Instatn Messengerom, pretože vačšinou obsahuje rovnaké funkcie.
Databázové aplikácie
Databáze je určitá uspořádaná množina informací (dat) uložená na paměťovém médiu. V širším smyslu jsou součástí databáze i softwarové prostředky, které umožňují manipulaci s uloženými daty a přístup k nim. Tento systém se v české odborné literatuře nazývá systém řízení báze dat nebo anglicky Database Management Systém (DBMS) . Běžně se označením databáze – v závislosti na kontextu – myslí jak uložená data, tak i software.
Obecne databáza slúži ako štruktúrovaný odkladací priestor pre informácie. V užšom zmysle umožňuje využitie počítača ako veľmi efektívnej kartotéky s mnohými možnosťami práce s ňou. Napríklad vytvárať, editovať, usporiadať, vyberať rôzne údaje podľa rôznych podmienok, počítať štatistické hodnoty a pod.
V širšom zmysle môže byť databáza oveľa mohutnejší a mocnejší nástroj, ako obyčajná kartotéka. Môže riadiť prístupy k serverom, vytvárať komplexné systémy s mnohými "kartotékami" rôznych typov dát a vzájomnými logickými vzťahmi medzi nimi (napr. rôzne dochádzkové systémy, evidenciu osôb, tovarov, a pod.). S týmto úzko súvisí pojem relačná databáza.
Údaje v relačnej databáze - DATABASE sú uložené vo forme 1 alebo viacerých vzájomne logicky previazaných (pomocou tzv kľúča) tabuľkách - TABLE, teda medzi údajmi v tabuľkách existujú logické vzťahy - relácie. Vo väčších systémoch môžu byť i jednotlivé databázy vzájomne logicky prepojené za účelom vytvárania logických datových štrktúr.
Tabuľka sa skladá z jednotlivých riadkov, ktoré predstavujú jednotlivé záznamy (kartičky kartotéky) - RECORD (záznam) a stĺpcov, ktoré predstavujú konkrétne údaje na v každom zázname (polia) FIELD (napr. meno, priezvisko, rodné číslo, ...). Pri viacerých tabuľkách v databáze je jedno z polí tzv. primárny kľúč - PRIMARY KEY, ktorý slúži na definovanie relácií (vzájomných vzťahov medzi údajmi v tabuľkách).
Databázové programy môžu byť tzv.
Personálne - určené pre jednoduchšie aplikácie pre jeden počítač (napr. DBASE, FOXBASE, FOXPRO, MS-ACCESS, kartoteka-602, ...) - ale i tieto môžu pracovať v PC sieťach. CLIENT-SERVER databázy, pre použitie vo "veľkých" aplikačných systémoch (informačných systémoch), kde je celkový systém rozdelený na časť databázového servera s databáza mi a aplikačným rozhraním - ovládacím "programovacím jazykom" (DBMS - Database Management System, ODBMS - Object oriented DBMS), s viacužívateľským prístupom s definovanými užívateľskými právami - a časť klientskú, ktorá sprostredkuje "styk s užívateľom". Toto môže byť WEB server pre prezentáciu a úpravu údajov pomocou WWW rozhrania, automatizovanými prostriedkami zberu údajov (snímače, ....), rozhranie pre rôzne programy a prog. jazyky, alebo špeciálny program - client. Príklady CLIENT-SERVER databáz: MY-SQL, Postgree-SQL, MS-SQL, DB-2 od IBM, ORACLE, ...
V oboch prípadoch môže databázový program obsahovať menej alebo viac výkonný programopvací jazyk na tvorbu aplikácii - užívateľského rozhrania pre vytvorené aplikácie. Najznámejším univerzálnym normovaným rozhraním - jazykom, ktorý býva implementovaný i v iných programov. jazykoch je SQL - Structured Query Language - štruktúrovaný dotazovací jazyk.
Bezstratová kompresia
GO BACK
Bezeztrátová komprese (bezeztrátová komprimace) je jeden ze dvou základních přístupů ke kompresi dat. Jedná se o algoritmy, které dovolují přesnou zpětnou rekonstrukci komprimovaných dat, narozdíl od ztrátové komprese, kde to možné není.
Bezeztrátová komprese se používá všude tam, kde je důležité, aby originální data a data po dekompresi komprimovaného souboru byla totožná - např. komprese textů nebo komprese čehokoli, kde je nepřípustná i sebemenší ztráta kvality.
Existuje mnoho různých formátů, které využívají bezeztrátové komprese. Například velmi populární ZIP , se kterým je možné pracovat téměř na jakékoli platformě. Dalším velmi oblíbeným formátem je RAR, tento formát je však komerční a neexistují nástroje pro vytváření archivů RAR na jiné platformě než na platformě MS Windows. Mezi opensourcovými komunitami jsou oblíbeny formáty gzip a bzip2 , jejichž algoritmy mají tu výhodu, že nejsou patentované. Dalším méně známým, ale velice schopným kompresním algoritmem je LZMA, který je užíván programem 7-Zip.
Algoritmy bezeztrátové komprese
Jednotlivé algoritmy můžeme rozdělit podle typů dat, pro které jsou určeny. Existují čtyři základní typy dat, které algoritmy zpracovávají - data textového charakteru, data obrazového charakteru, data zvukového charakteru a videa. V principu mohou existovat také univerzální algoritmy, které mohou zpracovávat jakýkoliv typ vstupních souborů. V praxi se ale neprosadily, neboť obvykle nejsou schopny docílit takového kompresního poměru (poměru velikosti dat před a po komprimaci) jako specializované algoritmy. Například zvukový soubor nebude příliš úspěšně komprimovatelný algoritmem určeným pro textové soubory a naopak.
Většina bezeztrátových komprimačních programů nepoužívá jen jeden algoritmus, ale hned několik najednou. U některých komprimačních programů jsou data napřed transformována a až poté komprimována. Zmíněná transformace se používá za účelem dosažení lepších kompresních poměrů.
Transformace
Tyto algoritmy ve skutečnosti nic nekomprimují, pouze modifikují data tak, aby se dala lépe zkomprimovat. Je také podmínkou, že ke každé transformaci musí existovat transformace inverzní, která bude schopna obnovit původní data.
* Burrows-Wheeler transformation (BWT)
* Move to front I (MTF I)
* Move to front II (MTF II)
* Weighted frequency count (WFC)
* Distance coding (DC)
* Inverse frequency coding (IF)
Slovníkové algoritmy
Zjednodušeně: Algoritmy v této skupině vytvářejí v průběhu komprimace slovník na základě dat již zkomprimovaných, v němž se pak snaží najít data, která se teprve mají komprimovat. Pokud jsou data nalezena ve slovníku, algoritmus zapíše pozici dat ve slovníku místo samotných dat.
* Lempel-Ziv 77 (LZ77)
* Lempel-Ziv 78 (LZ78)
* Lempel-Ziv-Welch 84 (LZW84) - podobný LZ78, byl velmi populární, ale také patentovaný
* LZMA
Statistické algoritmy
Snaží se určitým způsobem předvídat jaké znaky budou v souboru dat následovat. Pro znaky s vyšší pravděpodobností výskytu vyhradí algoritmus kratší informaci pro jejich zapsání, pro znaky s nižší pravděpodobností výskytu vyhradí naopak delší informaci pro jejich zapsání.
Statistické metody dále dělíme na metody se statickým modelem (model slouží pro vypočítávání pravděpodobnosti výskytu znaků) a metody s adaptivním modelem. Metody se statickým modelem vytvoří před komprimací dat určitý model a podle něho zkomprimují celý soubor dat, zatímco metody s adaptivním modelem průběžně model aktualizují.
Obecně se dá říci, že metody se statickým modelem bývají dvouprůchodové a metody s adaptivním modelem jednoprůchodové.
* Shannon-Fanovo kódování
* Huffmanovo kódování
* Aritmetické kódování (známé taktéž jako aritmeticko logické kódování)
* Range coding (RC)
* ACB
* Prediction by partial match (PPM)
Ostatní algoritmy
* Run length encoding (RLE)
* Potlačení nul
* Bitové mapy
* Půlbajtové kódování
Bezeztrátové kompresní metody
Komprese audia
* Apple Lossless - ALAC (Apple Lossless Audio Codec)
* Direct Stream Transfer - DST
* Free Lossless Audio Codec - FLAC
* Meridian Lossless Packing - MLP
* Monkey's Audio - Monkey's Audio APE
* RealPlayer - RealAudio Lossless
* Shorten - SHN
* TTA - True Audio Lossless
* WavPack - WavPack lossless
* WMA Lossless - Windows Media Lossless
Obrázky
* ABO (Adaptive Binary Optimization)
* GIFv * PNG - Portable Network Graphics
* JPEG-LS - lossless/near-lossless compression standard
* JPEG 2000 (includes lossless compression method)
* JBIG2 - (lossless or lossy compression of B&W images)
* TIFF
Video
* Huffyuv
* SheerVideo
* CorePNG [1]
* MSU Lossless Video Codec
* LCL [2]
* Animation codec
* Lagarith
* H.264/MPEG-4 AVC