Dnes: 21. ledna 2018    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Systémový katalog
    Struktury, ve kterých jsou uloženy informace o dané databázi, případně databázovém serveru. Někdy je možné se z anglického Data Dictionary setkat s pojmem datový slovník.

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Visual FoxPro a webové služby IV.


    [Vývojové nástroje] - V závěrečném pokračování našeho seriálu o webových službách v prostředí Visual FoxPro se zmíníme o praktických zkušenostech s tvorbou, nasazením a provozem webových služeb vytvořených v tomto vývojovém nástroji. Připravili jsme pro vás také malou kuchařku jako návod pro řešení nejčastějších problémů.



    Autoři Visual FoxPro dodávají kromě vlastního vývojového prostředí také řadu hotových tříd pro řešení nejběžnějších situací. Řadu z těchto tříd jsme již použili v předchozích dílech pro vytváření a testování webových služeb (buildery, TaskPane atd.) Za zmínku snad stojí, že v podpoře webových služeb ve FFC – FoxPro Foundation Classes – došlo ke změnám mezi jednotlivými verzemi Visual FoxPro. Ve verzi 7 bylo vše potřebné uloženo v knihovně tříd webservices.vcx, ve verzích 8 a 9 jsou to knihovny _ws3client.vcx a _ws3utils.vcx.

    Pokud tedy připravujete projekt ve starší verzi a využíváte FFC, budete muset při přechodu na vyšší verzi přidat staré knihovny nebo vše upravit pro nové. I zde se potvrzuje stará pravda, že FFC jsou výborným zdrojem pro čerpání inspirace a informací, ale do vlastní aplikace nepatří.

    Jak na problémy při vývoji?
    Asi nejčastějším problémem při vývoji webových služeb je problém s opětovným vytvořením DLL knihovny obsahující náš COM server. Jak již víme, webová služba je představována COM objektem, který vytváří webový server (IIS) na základě přijatého požadavku. Po zpracování požadavku a odeslání odpovědi je objekt uvolněn – ale pouze teoreticky. Z výkonnostních důvodů stále zůstává DLL knihovna načtena a není tedy možné provést vytvoření resp. nahrání nové verze.

    Pro fyzické zrušení objektu můžeme použít několik způsobů (restart PC, spuštění utility IISReset.Exe ze systémového adresáře, spuštění příkazu net start / stop). Jako programátoři a uživatelé VFP máte i jiné možnosti – využít project hook (FFC) nebo níže uvedeného programu KILLWS.PRG.

    V obou případech využíváme COM katalogu, který zaznamenává a ovládá veškerou činnost COM objektů.

    Při použití project hooku opět využíváme FFC, konkrétně třídu wsphook z knihovny tříd _WebServices.vcx (VFP 7), resp. _WS3Utils.vcx (VFP 8,9). Při každém překladu DLL knihovny pak uvedená třída zajistí fyzické uvolnění z paměti. Project hook nastavíme ve vlastnostech projektu.

    Pokud nechceme používat project hook, pomůže nám s uvolněním COM objektu následující program KILLWS.PRG, který je v podstatě částí kódu zmíněné třídy wsphook:

    loCat = CreateObject("COMAdmin.COMAdminCatalog")
    loCat.Connect("")
    lcApp = "IIS Out-Of-Process Pooled Applications"
    loCat.ShutdownApplication(lcApp)
    loCat.StartApplication(lcApp)
    

    Systémová a přístupová omezení
    Pokud vytváříme COM objekt přímo z prostředí Visual FoxPro, má tento objekt stejná přístupová práva jako aplikace, která jej vytvořila. Pokud však použijeme stejný COM objekt jako webovou službu, řídí jeho oprávnění webový server (IIS) a standardně má oprávnění poskytovaná anonymnímu internetovému uživateli – to znamená že práva nemá v podstatě žádná. Jaké to má např. důsledky?

    • Pokud používáme přístup na SQL server, nelze využít trusted connection (samozřejmě pokud nepovolíme přístup na SQL server anonymnímu uživateli), je třeba připojovat se s konkrétním uživatelským jménem.
    • Aktuální, resp. pracovní adresář je jiný než ten, kde je DLL knihovna uložena. Přeložte si následující kód jako COM objekt.

      Define Class dirtest as Session OLEPUBLIC
      Procedure GetPath() as String 
        Return Sys(5)+CurDir()
      EndProc
      EndDefine
      

      Pokud vytvoříte COM objekt přímo z VFP, vrátí se nám standardně místo, kde je DLL uloženo. Pokud jej však použije webová služba, získáte umístění systémového adresáře. S tím samozřejmě souvisí omezení v rámci souborového systému – v tomto adresáři si pracovní soubory nevytvoříme.

    Nasazení webové služby
    Jak jsme se již zmínili v předchozích dílech, na provozním serveru musíme mít nainstalováno několik základních prostředků pro provoz webové služby vytvořené ve Visual FoxPro:

    • webový server (IIS)
    • WSDL a WSML soubory
    • naši aplikaci (DLL knihovnu)
    • runtime příslušné verze Visual FoxPro
    • SOAP toolkit (resp. jeho distribuční verzi)

    Vlastní server nám pravděpodobně připraví správce sítě, instalací webového serveru se tedy zabývat nebudeme.

    Soubory obsahující informace o webové službě (WSDL a WSML) nakopírujeme do adresáře na webovém serveru. Jediné co je třeba upravit je URL webového serveru, které je zapsáno v souboru WSDL na konci v sekci <SERVICE> – zde musíme změnit URL počítače na kterém jsme službu vyvíjeli na adresu pracovního webového serveru (např. v následujícím případě z http://DEVELOPER1 na http/://www.nasserver.cz):

    <service name='WSTEST'>
      <port name='WSTESTSoapPort' binding='wsdlns:WSTESTSoapBinding'>
         <soap:address location='http://DEVELOPER1/WSTEST.WSDL'/>
      </port>
    </service>
    

    Pro instalaci naší aplikace a runtimu bychom mohli využít balíček vytvořený v programu InstallShield. Protože se při instalaci DLL knihovny jedná o jednorázovou akci, navíc příslušnou knihovnu můžeme čas od času měnit, je možné pouze vytvořit pracovní adresář a do něj aplikaci nakopírovat (samozřejmě musíme DLL knihovnu zaregistrovat, např. pomocí utility REGSVR32). I runtime můžeme nainstalovat ručně, vhodnější však bude vytvořit si instalační balíček s pomocí programu InstallShield, který bude obsahovat pouze runtime.

    Jak již bylo řečeno v předcházejících dílech, SOAP toolkit zpřístupňuje prostřednictvím COM rozhraní funkcionalitu SOAP protokolu. Důležité je, že SOAP toolkit je nutné instalovat na obou stranách spojení, tedy na aplikačním serveru i na klientské stanici.

    Pro vývojové potřeby je nejvhodnější instalace SOAP toolkitu přímo z instalačního CD VFP (nebo stažení celého toolkitu z webu Microsoftu). Současně s toolkitem se instaluje i nápověda, Trace Utility (o té si povíme více později) a obecný generátor WSDL. Při instalaci na aplikačním serveru nebo klientovi stačí použít pouze distribuční balíček, který obsahuje jen vlastní COM server (na webu Microsoftu hledejte SOAP Toolkit redistributable).

    Dále není třeba nic konfigurovat, vše další se nastavuje přímo z vlastní aplikace. Snad jediné upozornění – SOAP toolkit existuje ve verzích 2 a 3, mezi kterými jsou některé rozdíly, například nastavení proxy spojení. Pokud tedy použijete již nainstalovanou verzi toolkitu, zkontrolujte si její verzi nebo vhodně ošetřete volání z programu.

    Problémy při nasazení
    Pokud webová služba nefunguje, resp. nedostáváme odpověď od webového serveru, nastává chvíle pro kontrolu funkčnosti serveru a naší webové služby. Nejčastější problémy jsou uvedeny v následujícím přehledu, u některých pak následuje podrobnější vysvětlení a možná řešení. V případě problémů tedy můžete postupovat podle následujícího seznamu:

    • funkčnost webového serveru (ping, připojení přes webový prohlížeč s dotazem na námi dodaný WSDL soubor)
    • instalace resp. umístění COM serveru
    • instalace runtime VFP
    • instalace ISAPI filtru resp. SOAP toolkitu (na serveru i klientovi)
    • umístění (URL ve WSDL souboru – viz. výše)
    • nastavení proxy brány
    • přístupová práva (souborový systém, přístup na SQL server atd.)
    • obecná chyba COM serveru (programová logika – je na posledním místě v seznamu, protože webovou službu bychom měli řádně odladit již na vývojovém počítači)

    Webové služby a proxy
    V dnešní době je otázka zabezpečení velmi často diskutována a naše sítě jsou často chráněny proxy servery.

    TaskPane v první verzi VFP 8 přístup prostřednictvím proxy nepodporoval, service pack 1 tento problém vyřešil, bohužel podpora proxy v části věnované webovým službám nadále chybí – a to i ve verzi VFP 9. Nesmí nás tedy zaskočit, že při testování externích webových služeb prostřednictvím TaskPane nebudeme úspěšní. Řešením může být úprava příslušných tříd FFC (třída WSProxy, knihovna _WS3Utils.vcx, metody DefaultClassCode a DefaultSOAPCode), ruční změna vygenerovaného kódu nebo volání webových služeb vlastním programem.

    Pro přístup k webové službě na straně klienta chráněného proxy serverem je také nutné provést příslušná nastavení tak, aby byla komunikace povolena. Více napoví následující kód, popis dalších vlastností najdeme v nápovědě SOAP tooliktu nebo v MSDN.

    loWS = CreateObject("MSSOAP.SoapClient")
    loWS.MSSOAPInit("http://server/ws.wsdl")
    loWS.ConnectorProperty["ProxyServer"] = "server"
    loWS.ConnectorProperty["ProxyPort"] = port
    

    Několik poznámek k nastavení proxy:

    • port se zadává jen u SOAP toolkitu verze 2, u verze 3 je součástí vlastnosti ProxyServer (server:port)
    • pokud proxy vyžaduje autorizaci, použijeme vlastnosti ProxyUser a ProxyPassword
    • v případě že je na počítači nainstalován Internet Explorer, je možné využít jeho nastavení pomocí vlastnosti UseProxy = .T.
    • při volání webové služby musíme nejdřív použít metodu MSSOAPInit, pak teprve provádíme nastavení proxy resp. dalších vlastností

    Trace Utility
    Pro sledování komunikace mezi webovou službou a konzumentem můžeme použít aplikaci dodávanou společně se SOAP toolkitem - Trace Utility. Ta funguje jako tunel mezi porty 80 a 8080. Jediné co je nutné pro zprovoznění tunelu udělat, je přesměrování komunikace.

    Nejdříve musíme změnit port volání v souboru WSDL:

    <service name='wstest'>
      <port name='dirtestSoapPort' binding='wsdlns:dirtestSoapBinding'>
        <soap:address location='http://server:8080/ws/wstest.WSDL'/>
      </port>
    </service>
    

    Dalším krokem je pak otevření Trace Utility, spuštění trasování z menu (File –> New –> Formatted Trace) a eventuální úprava přednastavených parametrů.

    Úprava přednastavených parametrů

    Při dalším volání pak vidíme jak zaslaný požadavek (včetně hlaviček komunikačního protokolu a eventuálních parametrů), tak i odpověď webového serveru.

    A co bezpečnost?
    Autentifikace a autorizace komunikace mezi webovou službou a jejím konzumentem je již nad rámec dnešního dílu. V zásadě však lze říci, že se jedná o běžnou komunikaci po internetu, pro její zabezpečení tedy můžeme použít stejné prostředky jako pro jakoukoliv jinou internetovou aplikaci (Basic, Digest, Kerberos, Windows NTLM autentifikace, zabezpečení komunikace prostřednictvím SSL, využití proxy).

    Co říci závěrem?
    Tímto dílem jsme zakončili náš seriál o webových službách a Visual FoxPro. Pokud máte zájem o další podrobnosti týkající se tohoto tématu, přidejte svůj komentář – třeba nalezneme vhodné téma pro jeho pokračování. Přestože seriál nebyl věnován hlavnímu zaměření tohoto portálu, věříme že vás zaujal a utvrdil vás v tom, že Visual FoxPro není jen výjimečně kvalitní nástroj pro tvorbu databázových aplikací, ale že je možné jej využít i v řadě dalších oblastí.

    O autorech
    Seriál připravují s Igorem Vítem ze společnosti Daquas také jeho kolegové Jan Vít a Petr Zaoral.

    Související články:
    Visual FoxPro a webové služby III. (19.01.2005)
    Visual FoxPro a webové služby II. (12.01.2005)
    Visual FoxPro a webové služby I. (05.01.2005)

    ( Celý článek! | Autor: Petr Zaoral | Počet komentářů: 96 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1557 hl.)
    Do 1 000,- Kč 
     (1074 hl.)
    Do 10 000,- Kč 
     (1003 hl.)
    Do 25 000,- Kč 
     (1385 hl.)
    Do 50 000,- Kč 
     (1019 hl.)
    Do 75 000,- Kč 
     (1183 hl.)
    Více než 75 000,- Kč 
     (1022 hl.)

    Celkem hlasovalo: 8243


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Leden  >>
    PoÚtStČtSoNe
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena