Autodesk Academia Grant 2004
Internet CAD Services Návrh na propojení produktů Autodesku s technologií .NET
Vypracovali: Vlastimil Kaluža Jiří Špaček
Obsah 1. Předmluva ............................................................................. 3 2. Úvod ...................................................................................... 4 3. Požadavky na funkčnost z pohledu konstruktéra či projektanta .................................................................................... 5 3.1. Vybrané požadavky z oblasti stavebnictví .............................. 5 3.2. Vybrané požadavky z oblasti strojírenství .............................. 6 4. Základní technologické požadavky ........................................ 7 4.1. Produkty Autodesku ........................................................... 7 4.2. Produkty Microsoftu ........................................................... 8 4.3. Další produkty................................................................... 9 5. Popis propojení ................................................................... 10 5.1. .NET Framework ...............................................................10 5.2. Vytvoření aplikace pro platformu .NET .................................11 5.3. Common Language Runtime...............................................12 5.4. Požadavky na straně serveru..............................................13 5.5. Požadavky na straně klienta ...............................................14 5.6. Vazba mezi klientem a serverem.........................................15 6. Postup krok za krokem ........................................................ 17 6.1. Ujasnění požadavků ..........................................................17 6.2. Vyhledání vhodné Internet CAD Service ...............................17 6.3. Přidání Internet CAD Service ..............................................18 6.4. Vytvoření úkolu ,odeslání a přijetí výsledku ..........................18 6.5. Příklad ............................................................................18 7. Výhody a nevýhody ICS ....................................................... 20 7.1. Výhody ...........................................................................20 7.2. Nevýhody ........................................................................21 8. Další věci odvozené z řešení problému ................................ 23 8.1. Vyhledávání ICS ...............................................................23 8.2. Vytvoření vlastní ICS.........................................................24 8.3. Aktualizace ICS ................................................................24 9. Závěr ................................................................................... 26
1. Předmluva Cílem tohoto projektu je vypracovat návrh propojení produktů firmy Autodesk s technologií .NET od společnosti Microsoft. Důvodem je, že většina produktů firmy Autodesk v současné době pracuje na operačních systémech
této
společnosti.
Oblast
webových
služeb
prochází
v současnosti bouřlivým vývojem a proto se chceme zaměřit na výše uvedené propojení zaměřit. V současné době neexistuje v České republice řešení podobného druhu, které by bylo všeobecně známé, dostupné a použitelné širokou odbornou veřejností ve školství a komerční sféře. Firma Autodesk výrazně využívá prostředí intra/internetu a oblast .NET technologií Microsoftu se také stává základní platformou pro další vývoj iDesign technologií. Základní podstatou tohoto nápadu je usnadnění práce nejen uživatelům produktů společnosti Autodesk, ale i zrychlení práce na jednotlivých počítačích. Tím se sníží nároky na základní hardware každé pracovní stanice.
2. Úvod V dnešní době jsou produkty společnosti Autodesk stále více využívány nejen v komerční sféře, ale také v oblasti vzdělávání. Mnohé firmy požadují po nových uchazečích o zaměstnání znalosti některých produktů této společnosti a to nejen teoretické, ale i praktické. Tito uchazeči jsou většinou absolventi středních a vysokých škol. V dnešním stavu školství a nejen školství, je velmi obtížné udržet ve výuce krok s nejnovějšími trendy a produkty v oblasti informačních technologií.
Avšak
tyto
znalosti
většinou
firmy
požadují
od
svých
potenciálních zaměstnanců. Tato publikace si klade za cíl nejen představit nové technologie, produkty a jejich nové oblasti a způsoby využití, ale také pomoci při vzdělávání mladých lidí v těchto oblastech. Snaží se přinést i výukový materiál pro seznámení s produkty a technologiemi poslední doby a jejich využití.
3. Požadavky na funkčnost z pohledu konstruktéra či projektanta Současný
klasický
postup
při
projektování
je
možné
popsat
následujícím způsobem: projektant se musí při své práci zabývat vyhledáváním potřebných CAD knihoven a technických informací na internetu, v horším případě na fyzických nosičích informací (CD, papírová dokumentace). Tyto činnosti (pokud samozřejmě nemá projektant své oblíbené produkty, které dává do všech projektů, u kterých si zákazník nevyžádá něco speciálního) zabírají relativně mnoho času, který by jinak mohl být využit tvůrčím způsobem při vlastním projektování. Na internetu není v současnosti žádný běžně dostupný portál, který by si kladl za cíl shromažďovat všechny dostupné technické informace a CAD knihovny pro různá odvětví od co nejvíce firem. Bylo by velmi užitečné iniciovat vznik takového
portálu,
oslovit
výrobce
nejrůznějších
zařízení,
zajistit
medializaci a jeho provoz financovat například z proužkových či flash reklam na tomto portálu. Dalším zdrojem příjmů by mohlo být předplatné speciálních ICS služeb s přidanou hodnotou, které by se na tomto portálu nacházely. Poplatek by měl být spíše symbolický, jelikož je předpoklad, že portál budou projektanti využívat ve velké míře. Určitou hodnotu by měly i osobní a firemní údaje o zaregistrovaných projektantech, které by se daly po určitém právním ošetření využít například pro marketingové účely.
3.1.Vybrané požadavky z oblasti stavebnictví K rozhodnutí o realizaci navržené stavby přispívá kvalitní vizualizace (investor má pocit, že má o stavbě větší přehled), jejíž vytvoření často zabere mnoho strojového času běžných počítačů. Jedná se nejen o rastrové vizualizace, ale také o vytvoření videa, kdy se prolétává budovou nebo nad terénem. V případě souboru s videem se může jednat o značně velký objem dat, takže se nabízí dvě varianty. Pokud má projektant k dispozici širokopásmové připojení k internetu, může si video nechal rendrovací službou poslat zpět do svého počítače. Pokud má pomalé připojení k internetu, může být video vypáleno přímo na serveru na CD
nebo DVD médium a posléze doručeno projektantovi běžnou kurýrní službou. Dalším požadavkem je rychlý a pohodlný centralizovaný přístup k rozsáhlým a aktuálním katalogům produktů velkého množství firem. Tyto katalogy by měly být vytvořeny napříč všemi obory stavebnictví a měly by tak obsahovat například zařizovací předměty, okna, dveře, konstrukční detaily, hotová referenční řešení od různých firem atd.
3.2.Vybrané požadavky z oblasti strojírenství V oblasti strojírenství se v současnosti konstrukční celky běžně počítají metodou konečných prvků (MKP). Jelikož se jedná o výpočtovou metodu, je rovněž velmi náročná na hardware pracovní stanice. Náročnost výpočtu závisí na mnoha parametrech, například hustota sítě, na kterou je konstrukční
součást
rozdělena.
V tomto
případě,
podobně
jako
u
rendrování, zabere přenos 3D geometrických informací o objektu a nadefinovaném zatížení přes internet velmi málo času vzhledem k době samotného výpočtu. Výsledky výpočtu jsou také malé množství dat, které se následně automaticky přenesou zpět na lokální stanici a zobrazí se (např. barevná mapa napětí, maximální a minimální hodnoty atd.) Ve strojírenství je kladen důraz na určitou standardizaci základních prvků, takže jednotlivé národní normy definují normalizované rozměry šroubů, matic atd. Jelikož je v současnosti běžná mezinárodní spolupráce a platí nejrůznější mezinárodní normy, je dobré mít také přístup k národním normám konkrétní země, případně ke starším verzím těchto norem. Toto může být praktické například při opravách nějakého staršího stroje. Server potom může snadno poskytnout na požádání potřebné informace. V neposlední řadě mohou firmy tímto způsobem nabízet ostatním konstruktérům své již hotové základní strojní celky k dalšímu využití (motory, převodovky atd.)
4. Základní technologické požadavky Hlavními technologickými prvky, který tento postup využívá, jsou produkty společnosti Autodesk. Druhým prvkem je .NET Framework, který je potřebný pro běh .NET aplikací.
4.1.Produkty Autodesku Využívané produkty ze strany společnosti Autodesk lze rozdělit na tři části, které pracují zdánlivě odděleně. Pro větší přehlednost budou dále v textu služby Internet CAD Services uváděny zkratkou ICS. •
První částí je možnost využívat ICS v produktech Autodesku a jejich hledání v síti internet.
•
Druhou částí, která bude pracovat na straně serveru, je správce a instalátor ICS. Ten udržuje a umožňuje jednodušší obsluhu a práci s jednotlivými ICS nebo s nějakou skupinou. Dovoluje jejich nahrazování aktuálnějšími verzemi a dokáže držet v provozu i více verzí téže ICS.
•
Třetí částí je nástroj pro vytváření nových ICS. Tento nástroj by měl být natolik jednoduchý a automatizovaný, aby jednotlivé ICS mohli vytvářet běžní uživatelé bez nároků na hluboké odborné znalosti.
Produkty z první části, které běží na straně klienta, budou moci používat technologii ICS služeb. Aplikace budou obsahovat dva nástroje, pomocí kterých můžou uživatelé vyhledávat ICS služby v nejen v síti Internet, ale i v lokálních sítích LAN. Po vyhledání potřebné ICS služby, si uživatel může přidat ICS do své aplikace. Jednotlivé ICS se vyskytují na serverech v síti internet a můžou být volně dostupné nebo zpoplatněny. Podle toho se také bude odehrávat správa přístupů k jednotlivým službám. Volné služby můžou být dodávány přímo pomocí sítě internet. To znamená, že uživatel nepotřebuje žádné oprávnění (tj. login, heslo, atd.) k přístupu.
Přístup
ke
zpoplatněným
ICS
musí
být
zabezpečen.
Zabezpečení bude pomocí standardních prvků autentifikace uživatele
pomocí loginu, hesla a autorizovaného přístupu. Nemůžeme autorizovat podle IP adres nebo jmen počítačů, protože pokud uživatel bude vlastnit mobilní zařízení, může se s ním kdykoliv a hlavně kdekoliv připojit do sítě internet a využívat příslušnou ICS.
4.2.Produkty Microsoftu Produkty společnosti Microsoft, které běh ICS umožňují, lze opět rozdělit, tentokrát
do dvou částí. A to ze stejného důvodu, který je
zmíněn v části předchozí. ICS fungují v síti internet a ta se skládá ze dvou stran – strana klientů (uživatelů) a strana serverů (poskytovatelů). Proto na každé straně musí být dostupný nějaký software, aby uživatelé mohli tento software a jeho služby využívat. Hlavním a společným produktem, který musí běžet na obou stranách je Microsoft .NET Framework. .NET Framework je běhové prostředí pro
technologii .NET, pomocí které můžou být ICS realizovány. Tento produkt je
zdarma
ke
stažení
na
stránkách
společnosti
Microsoft
(http://www.microsoft.com/downloads). Na straně serveru se v rámci .NET Frameworkeru využívá ASP.NET a zvlášť webové služby. Na těchto webových službách je postavena celá funkčnost ICS služeb. ICS služby tuto základní koncepci rozšiřují natolik, aby běh ICS služeb byl nejvíce efektivní a odlišoval ICS služby od ostatních služeb při vyhledávání. U klientů je .NET Framework zapotřebí pro běh jednotlivých pluginů pro vyhledávání, přidávání a popřípadě vytváření nových ICS.
Samozřejmostí je operační systém, pro který je technologie .NET určena
a
na
kterém
běží
produkty
společnosti
Autodesk.
Těmito
operačními systémy jsou Windows 98, Windows 2000, Windows XP.
4.3.Další produkty Další produkty pro běh a využívání ICS nejsou nutné, ale můžou ulehčit práci s nimi. Ale nejen společnosti Autodesk a Microsoft se můžou podílet na této technologii. Mnohé třetí firmy můžou uvolňovat své vlastní produkty pro správu, vytváření, nástroje pro tvorbu a mnohé další.
5. Popis propojení Nyní si popíšeme vybrané základní technické prvky, které tvoří celé propojení mezi klientem a serverem, kde je uložena určitá ICS služba. Tyto prvky lze rozdělit do několika částí. V další kapitole si ukážeme přesnější specifikaci, Například hledání, přidání, vytváření úkolů a další.
5.1..NET Framework Jak již bylo dříve zmíněno, základem je platforma .NET od společnosti Microsoft. Tato technologie běží na virtuálním stroji zvaném .NET Framework. .Net Framework je velice zmiňované slovo a to z toho důvodu, že .NET Framework má velice důležité a hlavní postavení v této platformě. Je to srdce celé této platformy. Na tomto prostředí běží všechny druhy aplikací pro platformu .NET určeny. Jedná se o aplikace lokální například MS Office, aplikace internetové, neboli internetové stránky a databázové aplikace, které pracují nad databázemi.
Co je vlastně .NET Framework a z čeho skládá? Nyní se podíváme na jeho strukturu a části, ze kterých se skládá. Základní kostru můžeme vidět
na následujícím obrázku. Vidíme, že struktura celého .NET Frameworkeru se skládá ze tří základních vrstev: •
Common Language Runtime – nejnižší a nejzákladnější vrstva, zajišťuje běh programů.
•
Base Class Library (Základní knihovna tříd) – obsahuje širokou sadu tříd pro práci s databázemi, XML, vstupy a výstupy, sítí, bezpečností, službami a paralelním programováním.
•
Nejvyšší vrstva se dělí na dvě části:
•
ASP.NET – pracuje s internetovými stránkami (Web Forms) a službami (Web Services) a ty právě budeme rozšiřovat a využívat.
•
Windows App Services – nabízí možnosti pro tvorbu lokálních desktopových
aplikací
pomoci
wysiwyg
nástrojů.
Můžeme
vytvářet svoje vlastní ovládací prvky a mnohé další komponenty.
5.2.Vytvoření aplikace pro platformu .NET Jazyk určený pro programování nad platformou .NET musí odpovídat CLS (Common Language Specification). Zde jsou definovány základní vlastnosti, jež jsou očekávány v každém programovacím jazyce, které jsou určené pro tuto platformu. Díky této specifikaci si může programátor vybrat libovolný programovací jazyk. Napsaný program, v některém implementačním jazyce pro .NET, se pomocí
kompilátoru
pro
daný
jazyk
přeloží
do
MSIL
(Microsoft
Intermediate Language) kódu. Tento kód je procesorově nezávislý a díky tomu je snadno přenositelný na různé hardwarové platformy a další operační systémy. Můžeme si ho představit například jako bajtkód u Javy. Ve skutečnosti se jedná o tříadresný kód, podobný assembleru. Je však daleko vyspělejší. Podporuje například práci s výjimkami, objekty a virtuálními metodami. Tento kód dále obsahuje informace sám o sobě. MSIL kód je spustitelný, pokud je na počítači nainstalovaná podpora technologie .NET. Tento kód je pomocí .NET Frameworkeru řízen a zajišťuje jeho běh. MSIL kód patří mezi řízené kódy (Managed Code) a to
je rozdíl od předchozích neřízených kódů (Unmanaged Code). Tím je zajištěn bezpečný běh programu a zamezení spuštění nevyžádaného kódu.
5.3.Common Language Runtime Pro .NET Framework je CLR velice důležitou součástí, protože poskytuje pro celou platformu společné běhové prostředí, které je nezávislé na implementačním jazyce. Z obrázku je vidět, že programátor si může vybrat jakýkoliv programovací jazyk a aplikaci vytvořit v něm. CLR řídí a zajišťuje bezpečný běh MSIL kódu, neboli aplikace. Tím se výrazně
zjednodušuje
vývoj
aplikací,
jejich
nasazení
(instalace)
a
administrace. Nyní se podíváme z jakých částí se CLR skládá a o co všechno se stará. Na obrázku jsou vidět jeho jednotlivé části a ke každé si něco málo řekneme:
•
Class Loader – je zavaděč tříd, zavádí program do paměti a spouští
•
MSIL Compilers – je sada JIT (Just in Time) kompilátorů pro překlad MSIL kódu do nativního kódu procesoru
•
Garbage Collector – na systémové úrovni řídí životnost objektů alokovaných v paměti
•
Code Manager – spravuje běh kódu
•
Security Engine – hlídá zda spouštěný kód je bezpečný a není nijak modifikovaný, bezpečnostní omezení
•
Debug Engine – podpora pokročilého ladění a profilování kódu
•
Type
Checker
–
provádí
typovou
kontrolu
založenou
na
metadatech popisujících všechny typy obsažené v MSIL kódu •
Exception
Manager
–
spravuje
a
řídí
výjimky
generované
v průběhu vykonávání aplikace •
Thread Support – je podpora pro programování pomocí vláken, paralelní programování
•
COM Marshaler – existuje kvůli dědičnosti, nabízí propojení s technologií COM a staršími aplikacemi
5.4.Požadavky na straně serveru Podmínkou je existence podpory platformy .NET na straně serveru. Z platformy .NET využíváme technologii ASP.NET a její část Web Services. Nad touto částí platformy můžou být teprve k dispozici rozšiřující možnosti pro běh ICS služeb. Služby ICS si můžeme představit, že se jedná o programy, ke kterým máme přístup pouze pomocí sítě Internet. Samozřejmostí je, že server je připojen do sítě internet, ale může se
jednat
o
server
v rámci
podnikové interní sítě LAN, nebo server sítě.
v rámci Služby
školní ICS
počítačové
můžou
běžet
dokonce na lokálním počítači, který je připojen do sítě a nemusí se pořizovat
specializovaný
stroj
na
server, pokud neexistuje. Strukturní skladbu serveru můžeme vidět na
obrázku. Existuje několik omezujících podmínek pro dokonalý chod ICS. Při velkém přístup na různé služby ICS může být server (může se jednat i o počítač v síti, ne zrovna server) velice zatížen při vykonávání jednotlivých dotazů.
V rámci
internetu
se
na
straně
serverů
počítá
přímo
se
serverovými farmami, což je seskupení více strojů, které si úkoly automaticky dělí podle vytíženosti. Další podmínkou je webový server, který podporuje ASP.NET. Na operačních systémech Windows se jedná o IIS (Internet Information Server). IIS je součásti jakékoliv distribuce operačního systému Windows používající technologii NT, pro Windows 98 se musí doinstalovat PWS (Personal Web Server). Pro Linux a další operační systémy podpora platformy .NET existuje, ale na podporu v rámci web serveru si budeme muset ještě chvíli počkat. Teď už jenom zbývá nainstalovat Microsoft .NET Framework, který lze zdarma
stáhnout
ze
serveru
společnosti
Microsoft
(http://www.microsoft.com/downloads). Samozřejmě ještě nějaké ICS služby a server nebo lokální počítač je připraven pro provoz ICS služeb.
5.5.Požadavky na straně klienta Na straně klienta jsou pouze dva důležité požadavky. Prvním je nainstalovaný pro
běh
využívají
.NET
modulu, pro
Framework, které
připojení
ICS
do
sítě
internet. Dalším a velice důležitým požadavkem, služeb
je
společnosti
pro
využívání
nainstalovaný Autodesk,
ICS
produkt
který
ICS
bude podporovat. Ten nám umožní pracovat klientského
s ICS. počítače
Strukturu máme
možnost vidět na obrázku vedle.
Od struktury serveru se moc neliší. To jsou všechny požadavky a nyní se můžeme podívat jak fungují ICS služby.
5.6.Vazba mezi klientem a serverem Neznámý uživatel některého produktu CAD, který má v sobě již přidané některé ICS služby, při své práci s tímto produktem nezjistí, že je používá. Služby ICS se na straně klienta tváří jako další dialogová okna, kde má možnost nastavit vlastnosti daného úkolu a nechat úkol provést. Nyní má dvě možnosti, buď bude čekat na výsledek nebo může pracovat dále a výsledek mu přijde na pozadí do nového okna. Samozřejmě, že tato volba bude většinou na straně tvůrce ICS služby, protože budou vědět, co přesně služby provádějí a co vracejí klientovi zpět. Víme tedy jak se ICS tváří na straně klienta, ale jak je to se stranou serveru? Jak už padlo, ICS si můžeme představit jako aplikaci, správnější je slovo modul, která nám poskytuje nějakou funkčnost.
Místo slovo
„modul“, v našem pojetí, je v rámci platformy .NET používáno anglické slovo „assembly“. V českém překladu jsem se zatím setkal s výrazy „kompleta“ nebo „sestava“. Co je assembly? Jedná se o výsledek kompilace zdrojového souboru do MSIL kódu s jednou velice důležitou vlastnosti. Tento soubor musí obsahovat tzv. „manifest“, který pomocí metadat popisuje MSIL kód. Assembly se může skládat z více souborů, ale manifest může být obsažen pouze v jednom z nich a v sobě udržuje metadata ze všech souborů, ze kterých
se
skládá
assembly.
Dokonce
manifest
může
být
uložen
v samostatném souboru. Potom tento soubor a všechny soubory se zkompilovanými kódy dávají dohromady jednu assembly. A právě jedna taková assembly pro nás představuje ICS službu, která má nějakou funkčnost. Například nám vrátí vyrendrovaný obrázek ve formátu .jpg. ICS na straně klienta má nějaké dialogové okno, přes které my,
jako
uživatelé,
můžeme
nastavit
vlastnosti,
renderování. Toto dialogové okno a další kód je opět
například
styl
assembly, která
dokáže komunikovat s danou ICS službou (assembly) na straně serveru.
Tato assembly je vložena do našeho CAD produktu jako plugin, neboli modul. Jak ale náš plugin ví, kde ICS hledat na internetu, a jak mu předat data? Odpověď je v získání našeho pluginu, který už máme v našem počítači. V tomto pluginu je uložena adresa ICS služby v síti internet a taky popis přístupu k jejím metodám a funkcím, popřípadě k nápovědě.
Tento popis je reprezentován pomocí proxy třídy, která je součástí pluginu a zprostředkovává přenos dat. Pro přenos dat se používají stadardní protokoly jako HTTP, SMTP a další, které jsou ve všech aktivních prvcích sítě internet implicitně povoleny. Pro formátovaní dat a dotazů pro přenos se
používají
protokoly
XML
nebo
SOAP.
Tyto
protokoly
zaručují
univerzálnost a dostupnost na všech operačních systémech. Vše nám ujasní následující obrázek.
6. Postup krok za krokem Nyní si popíšeme jednotlivé kroky, které musí uživatel udělat, aby mohl nějakou ICS službu použít. Základním předpokladem je, že uživatel vlastní a má nainstalovaný produkt společnosti Autodesk, který ICS technologii podporuje a Microsoft .NET Framework pro běh ICS a jednotlivých pluginů. Tyto základní kroky jsou: •
Ujasnit si, co potřebuje
•
Vyhledání vhodné ICS
•
Přidání ICS
•
Vytvoření výkresu
•
Vytvoření úkolu
•
Odeslání úkolu
•
Příjem výsledku
•
Zobrazení výsledku
6.1.Ujasnění požadavků První krok je téměř zbytečné rozebírat. Vždy platí, že požadavek na řešení určitého problému musí vycházet od uživatele.
6.2.Vyhledání vhodné Internet CAD Service K vyhledání v hodné ICS nám pomůže průvodce, který bude součástí CAD produktů společnosti Autodesk. Do průvodce zadáme klíčové slovo, které by mohlo mít spojitost s naší hledanou ICS. Výsledkem dostaneme seznam ICS nebo serverů, kde jsou k dispozici ICS, které v názvu nebo popisech obsahují dané klíčové slovo. Tímto seznamem se musíme probrat a hledat to co přesně potřebujeme. V případě, že dostaneme i odkazy na servery, klikneme na odkaz a dostane seznam ICS, které server nabízí. Důležitá jsou taky přístupová práva k ICS, zda jsou volně přístupné nebo placené, přístupně ze všech IP adres, nebo jen z nějaké oblasti. Toto vše by mělo být součásti výpisu. Tyto vlastnosti a mnohé další zajišťuje právě ICS rozšíření (ICS extension) nad webovými službami.
6.3.Přidání Internet CAD Service Teď tedy víme, jakou ICS službu chceme a můžeme si ji v klidu přidat do programu. K tomu nám opět pomůže průvodce, pomocí kterého jsme vyhledávali naši ICS. V tomto průvodci si ICS službu vybereme a necháme přidat. Při přidávání služby se ověří zda máme práva službu využívat. To je, jestli mám povolen přístup. Pokud práva budou omezena, vyzve nás dialog pro zadání autentifikačních údajů. Tyto údaje se ověří a pokud budou správné, služba se nám přidá. Přidání proběhne ve formě stažení pluginu a jeho přidání do produktu. Tato operace běží na pozadí, uživatel je informován pouze o jeho průběhu. Plugin není ICS, pouze umožňuje komunikaci s ICS na straně serveru. Formátuje data a vytváří dotazy pro ICS službu. Výsledkem přidání pluginu, bude nová nástrojová lišta a nová nabídka v menu. Tím jsme si přidali ICS službu a můžeme ji začít používat. Někdo může tvrdit, že stažením pluginu a jeho instalaci do aplikace se nijak neušetří velikost aplikace v porovnání s přímou instalací celé implementace služby. Pokud si jako příklad vezmeme rendrování, jeho přímá implementace může zabírat až desítky megabytů. Proti tomu stojí velikost pluginu, která bude veliká řádově kilobity, maximálně desítky kilobytů.
6.4.Vytvoření úkolu ,odeslání a přijetí výsledku Po volbě některé položky z menu ICS služby, nebo kliknutí na některé její tlačítko se objeví dialog, kde máme možnost nadefinovat vlastnosti našeho úkolu, třeba renderování a jeho kvalitu. Po nastavení pomocí tlačítka odešleme úkol ke zpracování. Výsledek obdržíme zpět a budeme na něj upozorněni. V rámci tohoto úkolu se počítá s delší časovou prodlevou. V mezičase můžeme pracovat na dalším úkolu.
6.5.Příklad Nyní si uvedeme příklad, jak vše funguje. Použijeme zmiňovaný příklad renderování. Prvním krokem je ujasnit si co hledáme. Už víme, že hledáme renderovací službu, která bude volně dostupná. Spustíme
průvodce pro hledání a přidávání pluginů ICS služeb. Zadáme klíčové slovo „render“ pro hledání naší služby. Schválně neuvedeme celé slovo pouze základ slova, tím obsáhneme daleko více možností vyhledat nejpravděpodobnější adepty naší služby. Tím jsme obdrželi seznam dostupných služeb. Vybereme jednu z nich a klikneme na ni. Objeví se nám její popis, popis funkcí, které nabízí. Pokud nám vyhovuje můžeme kliknout na tlačítko „Přidat“ („Add“) a můžeme si všimnout jak nám ukazatel ukazuje, jak dlouho bude trvat než se nám plugin přidá. Po přidání najdeme v hlavním menu „ICS Služby“ nabídku naší služby. Máme výkres, který si necháme pomocí této služby vyrenderovat. Proto z nabídky „ICS Služby“ zvolíme nabídku „Web Renderer“ a položku „Rendering“. Objeví se nám dialogové okno kde můžeme nastavit vlastnosti
rederování
a
tlačítkem
„OK“
odešleme.
Námi
nastavené
vlastnosti se odešlou spolu s aktuálním výkresem a po nějaké době obdržíme výsledek. Ten bude zobrazen v novém okně, které je otevřené na pozadí a upozorní na něj systémová zpráva. Pokud jsme ovšem zvolili volbu uložení do souboru v nějakém obrázkovém formátu, najdeme výsledek uložen tam, kam jsme určili cestu k uložení. A opět jsme upozorněni zprávou na vrácení výsledku.
7. Výhody a nevýhody ICS Nyní si popíšeme výhody a nevýhody, které jsou spojeny se službami ICS. O tomto tématu nebyla doposud nikde zmínka, takže si je uvedeme souhrnně nyní. Žádná nová myšlenka, idea či nápad není nikdy dokonalý, a proto i služby ICS mají své nedostatky. Výhody použití ICS by však měly jistě převyšovat.
7.1.Výhody Přenesením zátěže při vykonávání složitějších operací na stranu serveru se sníží nároky na počítač klienta. Tím se produkt stane dostupnější pro více uživatelů, hlavně těm, kteří nemají až tak výkonné počítače (především mobilní zařízení). Snížení minimálních hardwarových nároků je vždy pro koncové uživatele velice příjemné, což lze považovat za výhodu Díky snížení nároku na výkonnost počítačů nemusí školy a školící střediska
tak
často
obnovovat
a
vylepšovat
hardwarové
vybavení
počítačových učeben. Také je možné využití v učebnách, kde by nákup nových výkonných počítačů byl velký problém. V rámci školy a dalších edukačních zařízeních můžou ICS služby běžet lokálně v rámci daného objektu. Tím se student může lépe s touto technologií osobně seznámit. Škola si může vytvářet další ICS služby, které může využívat pro výuku, nebo používat veřejně dostupné služby, či služby určené k výuce na školách nebo v rámci některých programů. Příkladem může být výukový tutoriál pro AutoCAD 2005, kde student může používat tuto službu a pokud nebude vědět, služba mu ukáže, jak některou operaci provést krok po kroku, popřípadě obnovit kreslící plochu při špatném postupu. Také lze využít ICS služby pro hodnocení, kde výsledná
práce
může
být
odeslána,
zkontrolována
podle
určitých
nastavených kritérií a výsledkem může být vrácená známka spolu s popisem obsažených chyb. Student se při svém studiu může z domu připojit a používat tyto služby, které budou zpřístupněny i z vnější strany (ze strany internetu),
při učení a zkoušení. Příkladem může být příprava na písemnou práci nebo zkoušku. Také
je
možnost
vytvořit
velice
„tenkou“
aplikaci,
která
bude
umožňovat provádění obdobných operací, jako „velký“ produkt společnosti Autodesk. Tato aplikace, bude provádět výrazné množství operací právě přes ICS služby a tím bude velice nenáročná na hardwarové prostředky z hlediska výkonu i velikosti paměti. Bude tedy možnost tuto aplikaci distribuovat na další mobilní zařízení typu handheld, PDA, Tabel PC a další. Uživateli je umožněn daleko větší přístup ke svým projektům a práci v jakékoliv situaci. Společnosti se díky tomu stanou více mobilními a budou mít vždy přesné a nové informace kdekoliv v terénu, v případě změny ze strany projekce, nebo naopak do projekce budou proudit nové informace přímo z terénu (skutečný stav provedení budovy atd.). Celý projekt pak lze snadněji kontrolovat, popřípadě na místě navrhovat řešení nových problémů s přímým promítnutím změn na servery společnosti.
7.2.Nevýhody Služby ICS využívají interní sítě nebo internetu. Zde může nastat problém v rychlosti připojení a přenosu dat. Pro některé uživatele to může být veliký problém. Částečné řešení problému je ve vytvoření paralelního vlákna, které má na starosti pouze odesílání a přijímání dat. Uživatel tak může dále nerušeně pracovat. Na příchod výsledku bude tímto vláknem upozorněn
a
vlákno
se
ukončí.
Tento
problém
však
nastane
jen
v případech, kdy interval na zpracování úkolu bude delší, například renderování. Při vkládání bloků, které budou pomocí ICS generovány, se nepředpokládá
velké
zdržení.
Velikost
přenášených
dat
záleží
na
implementaci dané služby. Vždy se dá přenos dat omezit jen na nejnutnější data z výkresu a tím velikost přenášených dat snížit. Rámcově se počítá s velikostí desítky kilobitů, maximálně však jeden megabyte. Tím vyvstává další otázka a problém. Služby, které jsou náročné na čas, například renderování, budou server velmi zatěžovat. Pokud si autor určité 3D studie nechá svůj výtvor renderovat na svém počítači, bude i
jeho počítač velmi vytížen. Server je navíc volně přístupný pro mnoho uživatelů současně a tím se může zahltit. V dnešní době vśak jako servery pracují rychlé stroje, které nejsou příliš vytěžovány. Pro velmi náročné služby, jako renderování, by se mělo s tímto zatížením počítat a proto by služba měla běžet na serveru, který je tvořen více počítači. Dalším řešením
je
zamyšlení
každého
programátora,
jestli
daný
problém
implementuje opravdu efektivním způsobem a také způsob odkládání dalších dotazů, které nemůžou být ihned provedeny.
8. Další věci odvozené z řešení problému 8.1.Vyhledávání ICS Vyhledáváni ICS služeb musí dodržovat několik pravidel. ICS služby jsou provozovány pomocí technologie .NET, přesněji pomocí webových služeb. V síti internetu existuje řada těchto služeb, které nejsou ICS službami a pro uživatele nemají žádný význam.
Proto se musí při
vytváření, hledání a umísťování ICS služeb na servery dodržet určitá pravidla. Systém odlišení ICS služeb od ostatních musí být jednoduchý, účelný a efektivní. Jak již bylo řečeno, ICS služba neprovádí jen vykonání operace, ale musí vrátit na požádání popis funkčnosti, ale i plugin, pomocí kterého uživatel může ICS službu používat. Toto odlišení lze využít, ale musí se doplnit o další možnosti. Návrhy na řešení tohoto problému jsou následující. První možností je, že ICS služby pro produkty společnosti Autodesk poběží v rámci sítí na přiděleném portu, který bude všude stejný. Ovšem tyto porty nemusí být všude volně přístupné a můžou nastávat problémy v místech výskytu bezpečnostních omezení (firewally atd.). Každá ICS služba může být využívána více produkty společnosti Autodesk, nebo jenom jedním z nich. Tento popis musí služba umožňovat vrátit na požádání. Z toho bude vycházet další možnost, jak problém řešit. Prohledat internet v rámci služeb dle nějakých klíčových slov, není problém. Pokud nalezená služba nebo služby budou dotázány na to, zda se jedná o ICS službu, musí vrátit informaci, které produkty společnosti Autodesk podporují. Tvůrci
by
měli
své
ICS
služby
pojmenovávat
smysluplně
a
plnovýznamově. Tím je myšleno, že už z názvu bude možné poznat, o jakou službu se jedná. Příkladem může být
„ICS_autocad_render“,
případně je možné doplnit do názvu ještě číslo verze. Všechny tyto navrhnuté vlastnosti ICS služeb tvoří tzv. ICS rozšíření (ICS extension). Jedná se o sadu tříd, od kterých se pomocí dědičnosti
vytvářejí nové třídy s nabízenou funkčností ICS služby. Sada tříd obsahuje implementaci těchto základních vlastností, popřípadě přinutí autora další vlastnosti implementovat tak, aby služba splňovala všechny požadavky kladené na ICS služby.
8.2.Vytvoření vlastní ICS Možnosti vytvoření vlastní ICS jsou dvě. Zkušenější uživatelé a programátoři
mohou
ICS
službu
přímo
naprogramovat
pomocí
programovacích jazyků pro platformu .NET. Pro tento způsob budou potřebovat vytvořenou speciální třídu, od které zdědí základní vlastnosti a metody, podle kterých se pozná ICS služba. Tato třída může obsahovat metody, které budou již implementované, a které bude muset tvůrce teprve naimplementovat. Druhý
způsob
bude
pro
uživatele,
nebo
pro
rychlé
vytvoření
jednoduché ICS služby. Součástí produktů společnosti Autodesk může být jednoduchý program, který umožní vytváření ICS služeb jednoduchým a rychlím způsobem, pomocí myši a průvodců. Vytvořené ICS služby jsou uloženy na disk lokálního počítače. Pro jejich využívání je zapotřebí umístit je na server. To lze jednoduše pouhým zkopírováním pomocí FTP na disk serveru. Kromě přímého přístupu na FTP, můžeme využít administrační nástroj pro přidávání, aktualizování a celkovou správu ICS služeb na serveru. Tím víme, kde je uložena a můžeme ji již používat.
8.3.Aktualizace ICS Vytvořené a nainstalované ICS služby by neměly ze serverů jen tak zmizet. Od autora ICS služby by to bylo velice nezodpovědné jednání. Jednou vytvořená a nainstalovaná ICS služba by měla být stále funkční, protože nikdy nevíme, zda ji někdo využívá nebo ne. Proto bychom se měli o ICS službu starat. Zjišťovat, zda běží bez chyb a jestli nejsou náměty na její vylepšení. Pokud existují, měli bychom ji aktualizovat. Aktualizace znamená rozšíření funkčnosti ICS služby. Měla
by být zachována zpětná kompatibilita se starou ICS službou. Také implementace jednotlivých metod nemusí být efektivní a časem si může vyžádat opravu. Odstranění ICS služby vyžaduje delší časový úsek. Ne však proto, že by to dlouho trvalo, ale proto, že bychom měli uživatele naší ICS služby o tomto kroku informovat. Pro uživatele by bylo krajně nepříjemné, kdyby se mu po žádosti o zpřístupnění ICS služby objevilo hlášení „ICS služba není dostupná“. Uživatel si bude myslet, že došlo jen k časovému výpadku sítě a zkusí to za chvíli znovu. Když služba opět nebude dostupná po opakovaných
pokusech
o
přístup,
velmi
pravděpodobně
to
vyvolá
v uživateli negativní názor na ICS služby. Proto by uživatelé měli být informováni o jejím plánovaném odstranění. Způsob informování probíhá opět pomocí ICS služby a její aktualizace. Tvůrce naimplementuje novým způsobem jednu metodu, kterou zdědí z ICS rozšíření, nebo mu pomůže průvodce a službu zaktualizuje. Aktualizace ICS služeb na straně klienta, proběhne v době, kdy se spustí některý z řady produktů společnosti Autodesk, který bude mít nastavenou adresu serveru, kde jsou ICS služby k dispozici a na pozadí se nainstalované služby zkontrolují. Uživatel dostane oznámení o nových aktualizacích ICS služeb, nebo o jejich zrušení. Implementace ICS služeb do prostředí produktů společnosti Autodesk proběhne ve formě vytvoření nové nástrojové lišty, kde bude každá nová služba zobrazena jako tlačítko s požadovanou
funkčností.
Tlačítkem
bude
možné
službu
vyvolávat
stejným způsobem, jako službu na lokální stanici. Ve skutečností se po kliknutí na tlačítko OK odešle na server, kde je služba k dispozici, požadavek a tam se také provede. Výsledek poté obdržíme zpět a budeme na něj upozorněni. Další možností je kontrola těsně před provedením úkolu, kdy se služba, která bude použita, nejdříve zkontroluje a podle výsledku se nahlásí aktualizace, její plánované odstranění, nebo se úkol přímo provede.
9. Závěr Závěrem je nutné dodat, že některé části této technologie jsou popsány více obecně z důvodu změn při přímém použití. Hlavní rysy ICS služeb však jsou promyšleny a detailně popsány. Mohou se vyskytnout i další části, které s touto problematikou souvisí, ale jejich podrobnější popis přesahuje plánovaný rámec této publikace. Tyto další aspekty Internet CAD Services by mohly být popsány v další navazující publikaci.