| 
  
  
    
      
      
      
         Platnost tohoto pořekadla zjevně není omezena jen na průmysl oděvní
        konfekce, ale vztahuje se prakticky na všechna průmyslová odvětví.
        Různé tržní segmenty a různé oblasti použití mění kritéria užitečnosti
        a kvality každého výrobku a tím nutí výrobce modifikovat své produkty
        pro různé zákazníky. V oblasti informačních technologií existují také
        různá kritéria vhodnosti a užitečnosti - u stolního počítače
        preferujeme maximální výkon téměř bez ohledu na spotřebu energie a
        hmotnost, u přenosného počítače se raději spokojíme s menším výkonem,
        ale vyžadujeme nízkou hmotnost a dlouhý provoz na baterie, u osobního
        organizéru je nízká hmotnost a spotřeba téměř vším. Podobná
        diverzifikace panuje i v softwarovém průmyslu, i když v této oblasti
        jsou rozdíly v očích veřejnosti méně patrné. Přesto pro odborníky
        představují různá nasazení operačních systémů a aplikací naprostou
        změnu kritérií, podle nichž jsou softwarové projekty konstruovány i
        hodnoceny. 
        Pomiňme rozdílnost konceptů klientských aplikací, zaměřených stále
        více na snadnost a bezproblémovost obsluhy a současně na estetickou
        stránku produktu a serverových aplikací, které často poskytují pouze
        spartánské uživatelské rozhraní, neboť předpokládají, že je budou
        obsluhovat lidé znalí, a soustředí se na vlastní funkčnost, efektivitu
        využití zdrojů počítače apod. Namísto toho se soustřeďme na kritéria
        důležitá pro schopnost systémů a aplikací pracovat ve strojích,
        rozvaděčích a jiných zabudovaných aplikacích, tedy na velikost
        potřebných zdrojů počítače (především velikosti paměti, ale i výkonu
        procesoru) pro práci systému, na schopnost systému pracovat v reálném
        čase, zotavit se z náhlých vypnutí apod. 
        Pracovní stanice a servery
          
          
            Nikdo se již nediví nepřetržitému nárůstu výkonu procesorů a
            kapacit pamětí ve stolních i přenosných počítačích a serverech. A
            tak zatímco první PC/XT mělo problémy s dostatečně rychlým
            obnovením textové obrazovky a první PC/AT jen obtížně
            překreslovalo okna s jednoduchým grafickým uživatelským rozhraním,
            dnešní uživatelská rozhraní oplývají efekty animací, průhlednosti
            apod. Dlouhodobým vývojem se vytříbila kritéria pro návrh
            počítačů, operačních systémů i aplikací pro osobní počítače i
            servery: 
            
              
              Spíše než přesná časová odezva systému je důležitá jeho
              celková propustnost. Jinými slovy není příliš podstatné kdy
              přesně k dané operaci dojde, důležitější je schopnost zpracování
              co největšího počtu operací za určitý čas.  
              U interaktivních aplikací se přidává ještě další
              kritérium - subjektivní dojem uživatele pracujícího s počítačem.
              Úkoly, na něž se uživatel zrovna soustředí, musí mít přednost
              před úkoly pracujícími na pozadí. Tohoto lze dosáhnout za cenu
              zavedení řady výjimek ve standardním chování přepínače úloh,
              které zajišťují preferenci úloh na popředí.  
              Pád cen pamětí a nárůst výkonu procesorů nenutí k
              přílišnému zaobírání se paměťovými nároky. Ukazuje se že
              zdvojnásobení paměti je vždy jednodušší, levnější a bezpečnější
              než pracná, zdlouhavá a nejistá snaha optimalizovat aplikaci na
              nižší spotřebu paměti. Ušetřený čas je možno namísto toho
              věnovat přidávání nových vlastností, které opět zvyšují nároky
              na zdroje počítače.  
              Náročnost programů na zdroje počítače s sebou přináší
              nutnost přítomnosti diskové paměti, dnes prakticky jediného
              dostupného vysoko-kapacitního paměťového média.  
              Nedůležitost časově-deterministického zpracování v
              prostředí kancelářských i inženýrských aplikací vede i vyjmutí
              pravidel definujících časové chování z definic standardních
              programových rozhraní. Takže kupříkladu způsob nadržování
              aplikaci pracující v popředí se tak liší mezi různými
              implementacemi Win32 API (Windows 9X vs. Windows NT) i mezi
              různými verzemi jediné implementace.  
             
            Všechny zde uvedené body platí i pro nejrozšířenější operační
            systémy řady Windows NT/2000 firmy Microsoft. Ačkoliv systémy
            přepínání procesů a mezi-procesové synchronizace jsou v prostředí
            Win32 navrženy z hlediska kancelářských, inženýrských i
            serverových aplikací velice dobře, jejich reakční doby nejsou
            deterministicky určitelné a tedy není možné zaručit reakci
            aplikace na události do určité doby. 
            Typickým architektonickým rysem operačních systémů Windows
            NT/2000 znemožňujícím deterministické určení doby přepnutí
            výpočetního kontextu z jednoho procesu na druhý je tzv. inverze
            priorit. Veškerá činnost aplikací v systémech Win32 je prováděna
            tzv. prováděcími toky. Každý proces (aplikace) má alespoň jeden
            takový tok, ale může jich být i více. Na počítači vybaveném
            jediným procesorem sice může v každém okamžiku běžet právě jediný
            prováděcí tok, ale systém jejich vykonávání po krátkých časových
            intervalech řádu desítek až stovek milisekund střídá, takže pro
            uživatele vytváří dojem jejich současné činnosti. O změnu kontextu
            vykonávání z jednoho prováděcího toku na druhý se stará část
            operačního systému zvaná plánovač. Aby bylo možné práci více toků
            účinně řídit, operační systém nabízí aplikacím řadu programových
            rozhraní umožňující synchronizaci jejich provádění. Tak může jeden
            prováděcí tok zastavit svou činnost (plánovač mu nebude přidělovat
            čas procesoru) do doby, než jiný prováděcí tok ukončí nějakou
            činnost. Jinými slovy jeden prováděcí tok čeká na jiný tok. Co se
            ale stane, pokud prováděcí tok s vysokou prioritou čeká na tok s
            nízkou prioritou? Může vzniknou paradoxní situace, že prováděcí
            tok s vysokou prioritou stojí, neboť čeká na jiný prováděcí tok s
            nízkou prioritou, který se nemůže dostat ke slovu, neboť plánovač
            přiděluje procesor dalšímu toku se střední prioritou. Toto situaci
            řeší operační systém tak, že dočasně zvětší prioritu prováděcímu
            toku, na který čeká jiný tok s vysokou prioritou, aby byla splněna
            podmínka že toky s vysokou prioritou se provádí přednostně před
            toky s nízkou prioritou. Problém vyvstane ve chvíli, kdy se stejná
            situace opakuje rekurzívně - i prováděcí tok s právě zvýšenou
            prioritou může čekat na další tok s nízkou prioritou. Systémy
            Windows NT/2000 na takovou situaci pamatují a prohledávají tyto
            řetězce závislostí s předem neurčenou délkou. V důsledku toho sice
            systém ctí prioritu prováděcích toků, ale doba přepnutí kontextu z
            jednoho prováděcího toku na druhý je v principu
            nedeterministická. 
          
        
        Windows CE - předefinování požadavků na operační
          systém
          
          
            V historii firmy Microsoft existuje několik snah proniknout na
            trh zabudovaných aplikací, například projekt Windows At Work,
            který zcela neuspěl především díky požití nespolehlivého 16
            bitového kódu systémů MS-DOS a Windows v3.1 a naprosté závislosti
            na architektuře Intel x86. Po dalších neúspěšných pokusech
            vyvinout zcela nový objektový operační systém (projekt Pulsar)
            dostal podporu systém Windows CE (podle neoficiální interpretace
            písmena CE značí Consumer Electronics, česky spotřební
            elektronika), určený právě pro práci v zabudovaných aplikacích bez
            pevného disku a s omezenými zdroji. 
             
  
            Hlavní předností systému Windows CE (a také částečně jeho
            nedostatkem) je snaha o zachování kompatibility aplikačního
            programového rozhraní s ostatními systémy Windows. Ačkoliv je
            systém napsán zcela znovu (není v něm obsažen kód převzatý z
            jiných implementací Windows), Syntaxe a chování funkcí jeho
            programového rozhraní je až na pár výjimek shodná s jinými
            systémy. Tak je sice řada parametrů různých funkcí nevyužita a
            parametry jsou předávány zbytečně (Windows CE kupříkladu
            nepodporují zabezpečení, jak je známe z Windows NT/2000), ale na
            druhé straně programátoři API systémů Windows znají a tyto
            znalosti mohou zužitkovat při vývoji aplikací pro Windows CE, což
            se ukazuje jako velmi silná zbraň v boji za získání popularity.
            Celou architekturu ovlivnila sada základních požadavků: 
            
              
              Windows CE musí být schopny práce v zabudovaných
              aplikacích bez diskové paměti.  
              Systém musí být navržen modulárně, aby až OEM partneři
              nasazující jej ve svých řešeních mohli zvolit které komponenty
              chtějí a které ne a tím výrazně redukovat jeho paměťové
              nároky.  
              Systém by měl být schopen deterministické práce v
              aplikacích reálného času.  
              Systém musí podporovat robustní zpracování více procesů s
              oddělenými paměťovými prostory a současné zpracování více
              prováděcích toků.  
              Cílovou platformou nebudou jen procesory x86, ale i jiné
              32-bitové architektury.  
              API systému by mělo zůstat kompatibilní s jinými
              implementacemi Windows.  
             
            Některé cíle se podařilo splnit lépe, jiné hůře. 
            
              
              Windows CE skutečně pracují na systémech disponujících
              řádově stovky KB paměti. Pokud je v systému začleněno grafické
              uživatelské rozhraní, spotřeba paměti vzroste na několik MB.
              Vzhledem k dnešnímu stavu vývoje pamětí a jejich ceně není
              racionální snažit se množství potřebné paměti dále
              snižovat.  
              Podpora procesorů je velmi široká. Mimo klasické řady
              Intel x86 podporují Windows CE i procesory ARM, MIPS, PowerPC,
              Hitachi SH, Toshiba apod. Obecně mohou Windows CE pracovat na
              jakémkoliv 32-bitovém procesoru s implementovanou správou
              paměti.  
              Podpora deterministického přepínání kontextu prováděcích
              toků je zavedena až od verze 3. Od této verze jádro operačního
              systému provádí inverzi priorit prováděcích toků jen v jediné
              úrovni a tím umožňuje stanovit maximální dobu potřebnou na
              přepnutí kontextu.  
              Od verze 3 je také k dispozici podstatně jemnější členění
              priorit prováděcích toků, k dispozici je 256 úrovní priorit, na
              rozdíl od 8 úrovní v předchozích verzích systému („velké”
              implementace Windows disponují 32 úrovněmi priorit).  
              I další vlastnosti podporující zpracování úloh v reálném
              časy byly ve verzi 3 vylepšeny. Kupříkladu systémové časovače
              pracují s rozlišením 1 ms oproti 25 ms u předchozích verzí. Byla
              přidána podpora pro vložené zpracování přerušení (objeví-li se
              přerušení s vysokou prioritou v době zpracovávání přerušení s
              nižší prioritou, obsluha přerušení s vysokou prioritou se
              předběhne a nemusí čekat až obsluha přerušení s nižší prioritou
              skončí).  
              Počet současně spuštěných procesů je omezen na 32. Počet
              prováděcích toků těchto procesů je ale omezen jen množstvím
              zdrojů počítače. Omezení na 32 procesů plyne ze snahy o
              maximální zefektivnění správy paměti jednotlivých procesů.
              Rovněž virtuální adresový prostor každého procesu je omezen na
              32 MB.  
              Další omezení se týká DLL knihoven, které jsou mapovány
              na stejné paměťové lokace všech procesů. Adresový prostor pro
              DLL knihovny každého procesu je tak omezen již zavedenými DLL
              knihovnami všech ostatních běžících procesů.  
              Zásadním problémem se ukázal požadavek na kompatibilitu
              se systémy Windows NT/2000, které pracují na počítačích s
              neskonale větší pamětí a rychlejšími procesory a jejichž API je
              velice košaté. Návrháři se snažili vybrat vždy z několika
              způsobů, jimiž je možné danou funkčnost ve Windows NT/2000
              naprogramovat, zachovat vždy alespoň jediný způsob, ale velmi
              často se nepodařilo ani to. Řada funkcí ve Windows CE prostě
              není a je nutné tento nedostatek složitě obcházet, pokud to je
              vůbec možné.  
              Dalším problémem je celkový výkon systému. Windows CE
              využívají k implementaci řady funkcí jádra systému (grafika,
              správa oken a událostí, souborové služby) servisních procesů.
              Ačkoliv z teoretického hlediska je taková architektura velice
              čistá, v praxi přináší značné problémy díky velké režii a
              samotné Windows NT od této architektury z výkonnostních důvodů
              ustoupily již ve verzi 4. Díky tomu běží Windows CE na stejném
              počítači výrazně pomaleji než třeba Windows 98.  
              Relativní mladost systému zapříčiňuje poměrně značné
              množství chyb. Vývojáři se musí připravit na problémy mající
              původ v systému samotném i ve vývojových nástrojích, které je
              nutno v aplikacích obcházet. V tomto ohledu ale není situace
              nijak výjimečná a lze předpokládat, že s vyspíváním Windows CE
              bude chyb ubývat.  
             
            Přes všechny nedostatky představují Windows CE univerzální
            platformu, která díky své dostupnosti, podobnosti s jinými systémy
            Windows, relativní bezproblémovosti implementace (ve srovnání s
            úsilím nutným k implementaci jiných platforem) a široké podpoře
            vývojových nástrojů získává na popularitě a stále častěji se stává
            volbou výrobců systémů pro průmyslovou automatizaci. Windows CE
            před jinými systémy pomáhá mimo popularity platformy Windows a
            síly firmy Microsoft také jejich robustní návrh a otevřenost k
            aplikacím třetích stran. Jiné systémy reálného času jsou často
            navrhovány spíše jako sada knihoven pro plánováni času a podporu
            periferií a aplikace bývá zaintegrována do celého obrazu systému
            ve fázi jeho překladu a chyby aplikace ohrožují celý systém.
            Kupříkladu podpora pro oddělené paměťové prostory jednotlivých
            procesů bývá často dodávána jako volitelná komponenta, pokud je
            vůbec k dispozici. 
          
        
        Control Web Runtime pro Windows CE
          
          
            Přes dostupnost vývojových prostředků Microsoft Embedded Visual
            C++ a Visual Basic bývá největším problémem nasazení Windows CE
            tvorba programového vybavení. Řada výrobců začíná nabízet systém
            Windows CE pro zabudované aplikace na platformě PC. Oproti jiným
            verzím Windows to přináší řadu výhod, například schopnost práce
            bez pevného disku, možnost bezproblémového vypnutí bez nebezpečí
            poškození souborů na disku a ohrožení dalšího startu systému,
            rychlý start aplikace po zapnutí apod. Probléme ale je jak
            vytvořit aplikaci samotnou. Začít psát aplikaci přímo v jazyce C
            nebo C++, přitom studovat programové rozhraní systému a jeho
            zvláštnosti, ladit ji a testovat, to si mohou dovolit jen velké
            společnosti, které mají potřebné programátorské zázemí a které
            předpokládají nasazení aplikace ve velkých objemech schopných
            uhradit vysoké vývojové náklady. Pro jednotlivá navzájem se dosti
            lišící nasazení je použití základních vývojových nástrojů krajně
            nevhodné a neekonomické. 
             
  
            Řešením problému jak Windows CE v průmyslovém PC oživit je
            systém rychlého vývoje průmyslových vizualizačních a řídicích
            aplikací Control Web 2000. Control Web je široce rozšířen v
            prostředí systémů Windows NT/2000 v průmyslu i ve středních a
            vysokých školách. Řada techniků, aplikačních inženýrů i studentů
            jej zná a dokáže efektivně využívat jeho bohatých možností.
            Ačkoliv aplikace systému Control Web pracují ve velmi velkých
            systémech skládajících se z řady počítačů propojených lokálními i
            vzdálenými sítěmi a k dispozici je i verse spolupracující se
            systémy Windows 2000 Advanced Server zapojenými do clusteru, na
            druhé straně minimální požadavky na počítač schopný provozovat
            aplikaci odpovídají požadavkům pro běh alespoň systémů Windows
            95/98 (pro spolehlivý dlouhodobý chod aplikací je vždy lépe použít
            Windows 2000). Verse Control Web Runtime pro Windows CE umožňuje
            nasadit aplikaci na všech počítačích na nichž pracuje systém
            Windows CE verze 3.0. Tedy nejen na počítačích s architekturou PC
            a FLASH pamětí namísto pevného disku, ale i na počítačích s
            procesory ARM či MIPS. 
            Zvláštnosti systému Windows CE se do jisté míry promítají i do
            návrhu Control Web Runtime pro Windows CE. Především Windows CE
            není možné koupit jako maloobchodní produkt, systém je vždy
            dodáván prostřednictvím OEM partnerů jako součást počítačů. Tím
            vzniká problém s velkou variantností konfigurace Windows CE, neboť
            OEM výrobce rozhoduje, které komponenty do systému zabuduje a
            které ne. 
            Další problém je s instalací produktu. Jen několik implementací
            Windows CE (například Pocket PC a H/PC) podporuje standardní
            způsob instalace přes stolní počítač a rozhraní ActiveSync, řada
            dalších implementací toto rozhraní nemá k dispozici. Na rozdíl od
            stolního počítače, kdy zákazník vloží CD-ROM do mechaniky a o
            další se postará systém, v případě Windows CE je to složitější.
            Distribuce Control Web Runtime pro Windows CE se snaží situaci
            maximálně ulehčit i zákazníkům bez hlubších znalostí operačních
            systémů Windows. 
            
              
              Především Control Web Runtime pro Windows CE se
              neinstaluje jako samostatný produkt, ale jako komponenta
              standardního vývojového prostředí Control Web 2000. Vývoj
              aplikace pro Windows CE probíhá vždy na stolním počítači.
              Návrhář pouze zvolí v dialogovém okně „Nastavení” že vyvíjí
              aplikaci pro Windows CE. Vývojové prostředí se přizpůsobí
              skrytím virtuálních přístrojů nepodporovaných ve Windows CE z
              palety přístrojů a doplněním několika dalších kontrol do
              ostatních virtuálních přístrojů (kupříkladu daný virtuální
              přístroj nemusí ve Windows CE podporovat práci ve všech
              módech).  
              Aplikaci lze ladit a testovat na stolním počítači,
              samozřejmě pokud je na tomto počítači k dispozici stejný
              hardware, jako bude připojen k počítači s Windows CE, s
              patřičnými ovladači. I pokud ne, lze aplikaci do značné míry
              otestovat a upravovat s použitím virtuálních zdrojů dat a na
              samotný běh pod Windows CE přenechat jen ladění vlastní
              komunikace.  
              Vlastní přenos aplikace na počítač s Windows CE probíhá s
              pomocí „Průvodce pro export aplikace do Windows CE”. Tento
              průvodce nabídne uživateli volbu Windows CE platformy, typu
              procesoru na němž Windows CE pracují, volbu spojení s Windows CE
              zařízením (automatické přes ActiveSync nebo manuální) a na
              základě zadaných parametrů vygeneruje instalační balík pro
              Control Web Runtime pro Windows CE spolu s přeloženou aplikací.
              Uživatel se tedy nemusí zaobírat detaily instalace systému
              Control Web a přenosem všech aplikačních souborů (přeložená
              aplikace, ikony, obrázky apod.) na platformu Windows CE.
              Vygenerovaný balík obsahuje vše potřebné.  
             
            Jak už bylo řečeno, Control Web Runtime pro Windows CE
            nepodporuje úplně všechny vlastnosti dostupné ve verzi pracující
            ve Windows NT/2000. V naprosté většině je to dáno přímo omezeními
            Windows CE. K typickým omezením patří absence permanentního
            přepisovatelného paměťového média. V zabudovaných aplikacích bývá
            často k dispozici jen paměť FLASH, na níž je emulován IDE disk.
            Ovšem takový disk je omezen množstvím zápisových cyklů, které bývá
            v řádech tisíců až desítek tisíců. Velmi rychlý zápis může takový
            disk zničit během relativně krátké doby. Z tohoto důvodu jsou v
            Control Web Runtime pro Windows CE omezeny zápisy na disk, např.
            nejsou tvořeny .log soubory apod. Rovněž nedostupné ve Windows CE
            jsou virtuální přístroje, které závisí na programových
            komponentách Windows, které ve Windows CE nemají ekvivalent.
            Například knihovny pro DDE a NetDDE, ODBC ovladače nebo
            plnohodnotné OLE. 
             
 Průvodce pro export aplikace do prostředí operačního
              systému Windows CE  
            Další omezení zůstávají na zvážení aplikačního inženýra,
            protože je není možno obecně ošetřit na úrovni systému Control
            Web. I když je typické nasazovat Windows CE na počítačích s malými
            zobrazovači s rozlišením 320x240 nebo 640x480 bodů, existují i
            zabudované PC s obrazovkou s rozlišením 800x600 bodů s
            plnobarevnou grafikou. Několik obrázků s takovým rozlišením dokáže
            snadno zaplnit mnoho MB paměti a protože Windows CE nemá kde
            vytvořit odkládací soubor, který by dokázal překlenout momentální
            nedostatek fyzické paměti, aplikace je ukončena. 
            
            Přesto naprostá většina funkčnosti systému Control Web zůstává
            zachována i ve verzi pro Windows CE. K dispozici je kompletní sada
            přístrojů pro vizualizaci, grafickou animaci, zabudovaný dynamický
            HTTP server apod. Zachována je i plná programovatelnost celého
            prostředí. Rovněž verze pro Windows CE podporuje síťovou
            konektivitu s jinými systémy Control Web s výměnou dat, vzdálené
            aktivace přístrojů apod. V prostředí Windows CE je také možno
            použít celou řadu ovladačů pro průmyslové automaty, měřicí a akční
            jednotky apod. 
             
 Windows CE na běžném kancelářském PC pro účely
              testování  
            Control Web Runtime pro Windows CE prakticky eliminuje nesnáze
            s tvorbou programového vybavení pro zabudované průmyslové počítače
            a tím umožňuje jejich široké nasazení. Jediná architektura
            aplikací a vzájemná konektivita využívá investice firem do
            vývojových prostředí i znalostí pracovníků a umožňuje jim
            nasazovat aplikace od clusterů s více počítači až po malá
            zabudovaná zařízení. 
          
        
      
    
  
 |