Beschikbaarheid Op UNIX-systemen kun je al bijna twintig jaar eenvoudig een grafische toepassing op een server draaien en op een andere UNIX-werkplek bedienen. Hiermee is UNIX het eerste platform waarop grafisch transparante toepassingen over het netwerk gebruikt kunnen worden. Dit is een ware variant van server-based computing. Als je op dit moment UNIX en Windows wilt gebruiken, hoe integreer je dan het beste beide omgevingen? Er zijn verschillende oplossingen mogelijk.
MARCEL BEELEN ls gebruiker van een UNIX- en een Windowswerkstation wil je met één loginnaam en één wachtwoord op alle werkplekken toegang tot relevante Windows- en UNIX-toepassingen en alle Windows- en UNIX-bestanden hebben. Stel je hebt een heterogene infrastructuur met UNIX-werkstations en -servers en Windows-werkstations en -servers. De ene dag op je kantoorwerkplek gebruik je bijvoorbeeld Microsoft Windows 2000 met Microsoft Word XP. Je bewaart het rapport waaraan je werkt op de file server. Een benodigde 3D-afbeelding van een product bekijk je vanaf je Windows-werkplek met een CAD-toepassing die op een UNIX-server wordt aangeboden. Het UNIX-bestand kun je direct vinden en openen. Een dag later werk je tijdelijk bij de Researchafdeling en log je in op een HP-werkstation met HPUX. Je verandert iets in het 3D-ontwerp en past meteen de documentatie aan in Microsoft Word. Als je een week later weer inlogt op de Windows-werkplek vind je meteen de laatste wijzigingen in zowel het Word-bestand als de 3D-tekening terug. Technisch is dit mogelijk, maar niet zonder gebruik te maken van aanvullende software. Om de UNIX/Linux- en Windows-infrastructuur voor de gebruiker op deze wijze netjes te integreren, onderscheiden we twee niveaus: g Het transparant aanbieden van toepassingen; g Het transparant toegang geven tot gegevensbestanden (en printers).
A 16
Windows-toepassingen op UNIX De allerbeste manier om Windows-toepassingen te laten gebruiken door UNIX-werkplekken is serverbased computing. Je krijgt dan alle voordelen die bij dat concept horen (zie Windows & .NET Magazine themanummer juli/augustus 2002) waaronder centraal beheer en schaalbaarheid. Je dient gebruik te
september 2003
« Windows & .NET Magazine Benelux
maken van een Windows-server geschikt gemaakt voor multi-user gebruik. Dit kan bijvoorbeeld een Windows 2000 Server zijn met Terminal Services in applicatiemode of een Windows Server 2003 Terminal Server. De UNIX-werkplek moet vervolgens voorzien zijn van een client-toepassing die in staat is te communiceren met Terminal Server, zoals een Remote Desktop Connection client. Microsoft levert alleen een RDC-client voor Mac OS X UNIX en niet voor andere UNIX-besturingssystemen. In Afbeelding 1 zie je FrontPage XP in gebruik via Microsoft RDC op Mac OS X. Gelukkig bestaat er een freeware RDP-client (Rdesktop genaamd) voor Linux, die eveneens al geport is naar andere UNIX-varianten zoals Solaris. Deze client is overigens nog niet geschikt voor Windows Server 2003 Terminal Server. Meer functionaliteit, betere beheermogelijkheden en betere integratie biedt Citrix MetaFrame XP Presentation Server. Je installeert op de UNIX-werkplek een ICA-client toepassing die vervolgens communiceert met een farm van servers met Windows 2000 of Windows 2003. Het voordeel van MetaFrame is ook dat dit te gebruiken is op alle bekende UNIXversies en op een groot aantal andere besturingssystemen en apparaten (zoals pda’s) en dat dit goed presteert over trage verbindingen. Een moderne manier om Windows-toepassingen aan te bieden is door dit vanuit een browser op UNIX, bijvoorbeeld Netscape, te sturen. Naast een plug-in of een Java-applet voor de browser is op de werkplek niets extra’s nodig. Aan de Windows-serverzijde moet behalve een multi-user omgeving vaak wat meer gebeuren. Je hebt een ondersteunde webserver nodig die speciaal moet worden ingericht voor deze gebruikstoepassing. Citrix biedt geavanceerde en beveiligde webtoegang met MetaFrame Secure Access Manager (voorheen NFuse Elite) of het oudere Web Interface for Citrix MetaFrame Server (voorheen NFuse Classic) dat je op een Internet Information Server dient te installeren, als toegangspoort voor de UNIX-werkplek tot aangeboden Windows-toepassingen. Hierbij wordt het ICA-protocol van Citrix gebruikt. Ook SCO Tarantella Enterprise en HOBLink JWT werken met webtoegang tot Windows-toepassingen voor UNIX-systemen, maar deze producten gebruiken het Microsoft RDPprotocol. Graphon GO-Global voor UNIX gebruikt een zelf ontwikkeld protocol.
Zijn er alternatieven? Er zijn in de loop van de tijd diverse initiatieven ontplooid, om zonder een Windows-licentie toch
Windows +
UNIX
Windows-toepassingen te kunnen gebruiken. Het betreft hier vormen van emulaties waarbij een gedeeltelijke Windows-omgeving wordt geëmuleerd. Op emulaties van Windows functioneren helaas lang niet alle toepassingen (naar behoren) en vallen de prestaties en stabiliteit erg tegen. De meeste producten zijn beschikbaar voor een selectie van de vele bestaande UNIX-varianten, dus het hangt van de UNIX-versie af of een emulatieproduct te gebruiken is. Emuleren van Windows geeft je er ook nog eens een beheerprobleem bij: hoe test je de correcte werking van een nieuwe toepassing of nieuwe versie en hoe ga je deze uitrollen binnen je bedrijf? Het grote voordeel van Windows-emulaties is dat je geen Windows-licentie aan Microsoft hoeft te betalen, om toch bijvoorbeeld Office te kunnen gebruiken. In plaats van het emuleren van Windows, kun je een volledige Intel-processor emuleren en daarop een complete pc-omgeving aanbieden. Uiteraard betaal je in dit geval wel een Windows-licentie om het te kunnen gebruiken op de virtuele pc. Virtuele pc’s hebben in het algemeen een goede performance en zijn compatibel met nagenoeg alle Windows-toepassingen. Het grote nadeel van virtuele pc’s is dat deze individueel beheerd moet worden als een echte Windows-pc; je moet het netwerk configureren, Windows patches en hotfixes installeren, anti-virussoftware en virusdefinitiebestanden bijhouden, Windows-patches en Internet Explorer patches bijwerken en dergelijke. Pc-emulaties zijn vooral geschikt voor testomgevingen, testnetwerken of voor ontwikkelaars, maar als je enkel en alleen toepassingen nodig hebt, is server-based computing handiger en transparanter voor de gebruiker omdat de ‘pc’ wordt verborgen. Oudere voorbeelden van emulaties zijn Wabi (Windows Application Binary Interface) waarbij een Intel-processor wordt geëmuleerd of Sun SoftPC waarbij je met een insteekkaart een ‘echte’ pc kunt gebruiken op je Sun. Eveneens ietwat uit de tijd zijn producten als Softwindows 98 en RealPC. Actueler is
=
1
de public domain toepassing WINE (Windows Is No Emulation) dat erg populair is op Linux maar ook beschikbaar is voor Solaris en FreeBSD. Populair is het commerciële Crossover voor Linux waarbij helaas slechts enkele toepassingen ondersteund worden. Crossover wordt standaard bijgeleverd bij XandrosLinux en ook Suze heeft plannen om dit te gaan doen. Win4Lin is gebaseerd op een product dat SCO ooit eens ontwikkelde (Merge) en hiermee kun je een pc emuleren op Linux, om daarbij Windows 95, 98 of ME te gebruiken maar geen andere besturingssystemen. Een erg goed commercieel product is VMWare Workstation. Je kunt VMWare gebruiken om een complete pc tot je beschikking te krijgen op Linux (helaas niet op andere UNIX-versies). Hierop draai je een Windows-versie met alle toepassingen die je maar wilt. Nagenoeg alle toepassingen functioneren. Zie je meer in gratis software, dan zou je eens kunnen kijken naar plex86 of bochs, software die een Intel-pc systeem emuleert op Linux. Verwijzingen naar deze producten vind je in Tabel 1.
UNIX-toepassingen op Windows Traditioneel maakt UNIX gebruik van het X-windows presentatieprotocol. Hierbij is de UNIX-toepassing die je op een server installeert een ‘client’ en is op de werkplek een X-server toepassing nodig. Merk op dat de terminologie hier omgekeerd is in vergelijking met andere client-server omgevingen. Deze methode van werken valt onder de categorie server-based computing. Je start de client-toepassing (bijvoorbeeld FrameMaker) op de UNIX-server en geeft aan op welke werkplek je deze wilt bedienen. Dit doe je door een DISPLAY-variabele in te stellen of de netwerknaam van je werkplek als argument mee te geven bij het starten van de UNIX-toepassing. Als op de werkplek van bestemming een X-server actief is, ontvangt deze grafische informatie en opdrachten van de server en verschijnt de UNIX-toepassing over het netwerk op de werkplek. UNIX-werkplekken zijn standaard voorzien van een dergelijke X-server,
Windows & .NET Magazine Benelux
» september 2003
17
GO-Global for UNIX - www.graphon.com GO-Global for Windows - www.graphon.com HOBLink JWT - www.hobsoft.com MetaFrame Presentation Server for UNIX - www.citrix.com MetaFrame XP Presentation Server for Windows - www.citrix.com RDP voor Linux - www.rdesktop.org SCO Tarantella Enterprise - www.tarantella.com “PC-emulatoren” Bochs for Linux - bochs.sourceforge.net Plex86 for Linux - savannah.nongnu.org/projects/plex86 Virtual PC for Windows - www.connectix.com en http://www.microsoft.com/windowsxp/pro/evaluation/news/windowsvpc.asp VMWare Workstation for Linux - www.vmware.com VMWare Workstation for Windows - www.vmware.com Win4Lin for Linux - www.netraverse.com “Windows-emulatoren” Crossover - www.codeweavers.com Wine for Linux, Solaris or Caldera - www.winehq.com “X-windows op Windows” eXceed - www.hummingbird.com eXceed On-Demand X-gateway - www.hummingbird.com HOBlink X11 - www.hobsoft.com
KEA!X - www.attachmate.com MI/X - www.microimages.com Omni-X - www.xlink.com PC-Xware - www.ncd.com Reflection X - www.wrq.com ViewNow X - www.netmanage.com WinaXe - www.labf.com X-Deep/32 - www.pexus.com X-SecurePro - www.labtam-inc.com “Bestandssystemen integreren” Appliance voor CIFS en NFS - www.netapp.com CIFS/9000 for HP-UX - www.hp.com FacetWIN CIFS - www.facetcorp.com HOBLink NFS - www.hobsoft.com NFS Maestro - www.hummingbird.com NfsAxe NFS server and client - www.labf.com Omni-NFS Gateway, NFS Client, NFS Server voor Windows - www.xlink.com ProNFS client and server - www.labtam-inc.com Samba The Next Generation - www.samba-tng.org Samba voor Linux en andere UNIX-versies - www.samba.org Services For UNIX met NFS Gateway, NFS Server en NFS Client - www.microsoft.com Sharity CIFS client for UNIX - www.obdev.at TotalNET Advanced Server - www.lsilogicstorage.com
C Tabel 1 » Multi-platform software links
18
maar wil je UNIX-toepassingen kunnen gebruiken op Windows, dan moet je daarop een X-server toepassing installeren. Er zijn diverse shareware versies te downloaden. Commerciële producten hebben vaak als extra voordeel dat andere integratieproducten zijn inbegrepen of geïntegreerd (zie Tabel 1). Wil je een dun protocol dat tevens goed functioneert over WAN-verbindingen en telefoonlijnen, dan is het minder bekende product MetaFrame Presentation Server for UNIX van Citrix aan te raden. Van dit product is onlangs versie 1.2 beschikbaar gekomen. Het maakt gebruik van het ICA-protocol om UNIX-toepassingen op Windows-systemen te bedienen. Zeker als je al MetaFrame XP Presentation Server for Windows gebruikt, is dit een krachtig aanvullend product doordat je een eenduidige beheeromgeving creëert. Citrix MetaFrame Presentation Server 1.2 for UNIX is verkrijgbaar voor Solaris, HP-UX en AIX. Een ander manier om over trage verbindingen toch UNIX-toepassingen te kunnen bedienen op Windowssystemen, is door gebruik te maken van een X-gateway. Een aardig product is Exceed OnDemand van Hummingbird. Dit product bestaat uit een pc-toepassing en een server-toepassing. De server-toepassing vormt een gateway tussen X-toepassingen op UNIXsystemen op je netwerk en de pc-toepassing (bijvoorbeeld op een nevenkantoor). On-Demand server is beschikbaar voor Windows NT/2000 als ook voor HPUX, Solaris, AIX en Linux (Suze en RedHat). GraphON
september 2003
« Windows & .NET Magazine Benelux
Go-Global vertaalt UNIX-toepassingen naar Java zodat je vanaf een browser de UNIX-toepassing kunt bedienen. In Afbeelding 2 zie je schematisch de voornaamste manieren om UNIX-toepassingen op Windows te gebruiken.
Kan het ook anders? Ook nu kun je kiezen voor een pc-emulator. VMWare of Virtual PC van Connectix zijn bekende virtuele pc’s. Virtual PC is begin dit jaar overgenomen door Microsoft, dus dit product kun je binnenkort betrekken van de makers van Windows. Je kunt op een virtuele pc alleen een UNIX-versie installeren die gemaakt is voor Intel-processor en die wordt ondersteund door de virtuele pc. Voor VMware zijn dit Linux en FreeBSD. Misschien dat in de toekomst Solaris 9 x86 Platform Edition wordt ondersteund. Of Microsoft Linux blijft ondersteunen op Virtual PC is nog maar de vraag. Uiteraard kun je op deze wijze geen toepassingen gebruiken die alleen functioneren onder HP-UX, AIX of andere niet-Intel processoren. Server-based computing biedt in zo een geval wel een oplossing.
En wat is dan de beste oplossing? Om uit dit scala aan mogelijke oplossingen de meeste geschikte te selecteren is niet eenvoudig. Inventariseer welke toepassingen je nu en later wilt aanbieden op het andere besturingssysteem en of de
BESCHIKBAARHEID
toepassingen functioneren, stabiel zijn en voldoende prestaties hebben op het te selecteren product. Let bij het testen ook eens op de correcte weergave van kleuren en lettertypes, de reactietijd van de muis, de werking van de WheelMouse, de snelheid van scrollen in toepassingen, het functioneren van kopiëren/plakken tussen lokale toepassingen op de werkplek en de ‘vreemde’ toepassingen. Let ook op de toegang tot de lokale omgeving, zoals cd-rom- of dvd-rom stations, geluid, lokale poorten en dergelijke. Bekijk of het product de gebruikte UNIX- of Windows-varianten ondersteunt. Erg belangrijk is of het product gemakkelijk te beheren en op te schalen is als je meer wilt. En natuurlijk spelen de fabrikant en de prijs een belangrijke rol in het selectieproces. Een veelgehoorde reden waarom Linux op de desktop maar niet door wil zetten, is het gebrek aan Linux-toepassingen en de harde noodzaak voor (minimaal enkele) Windows-toepassingen. Met server-based computing laat je de gebruikers volledig met Linux werken (bijvoorbeeld met KDE als werkomgeving) en met die Linux-toepassingen die voldoen voor het werk. Daar waar Linux-toepassingen niet bestaan of tekortkomingen hebben, laat je deze als gepubliceerde Windows-toepassing op de Linuxwerkplek bedienen.
Toegang tot bestanden Als je op Windows een UNIX-toepassing bedient (of andersom) via server-based computing, hebben beide omgevingen nog steeds hun eigen kenmerken en lokale omgeving. Als je vanuit de UNIX-toepassing op de pc een bestand wilt bewaren, zie je binnen de toepassing in het venster om te bewaren het bestandssysteem van de UNIX-server en niet dat van je lokale werkplek. Andersom, bewaar je op een UNIX-werkstation bijvoorbeeld een Excel-bestand dan zie je in het venster om te bewaren de Windowsomgeving van de applicatie server. In beide gevallen wordt de gebruiker dus geconfronteerd met twee omgevingen. Dit is voor velen erg verwarrend. De meeste server-based computing producten inclusief Windows Server 2003 Terminal Server en Citrix MetaFrame XP Presentation Server hebben een mogelijkheid om vanaf de server-toepassing de lokale stations te benaderen. Dit wordt local drive mapping genoemd en is uitstekend geschikt voor werken op afstand via WAN of ISDN-lijnen. Ben je aangesloten op een snel bedrijfsnetwerk, dan is deze local drive mapping niet snel en zeker niet efficiënt. Bij het openen of bewaren van het bestand wordt immers de data van de Terminal Server naar
C Afbeelding 1 » Remote Desktop Client op MAC X de werkplek getransporteerd, om daarna via een lokaal verbonden netwerkstation weer te worden doorgestuurd naar de aan die werkplek verbonden file server. Het is heel goed mogelijk dat de file server (of SAN/NAS) fysiek in dezelfde ruimte staat als de Terminal Server. Het bestand wordt onnodig twee maal over het netwerk getransporteerd. Omdat je bestanden bewaart via de client-toepassing (met RDP of ICA) is dit niet erg snel. Om dit op te lossen kun je ervoor zorgen dat de server waarop je server-based computing gebruikt in staat is de home directory te benaderen op het andere besturingssysteem. Op een Windows-server los je dit op met een logon script eventueel vanuit Group Policy geregeld, dat een verbinding maakt met de UNIX-server. Op een UNIX-server los je dit op met een mount naar de Windows-server. Met dezelfde producten kun je er tevens voor zorgen dat de gebruiker slechts één home directory heeft waarin zowel de UNIX-bestanden als de Windowsbestanden te vinden zijn. De gebruiker heeft dan een consistente werkomgeving en het maakt het beheer een stuk eenvoudiger. Verlaat een medewerker het bedrijf dan hoeven er slechts op een enkele plek gegevens opgeruimd te worden. Je kunt een UNIX-server voorzien van Windowsondersteuning of een Windows-server voorzien van UNIX-ondersteuning. In het eerste geval zul je ervoor moeten zorgen dat de UNIX-server gebruik maakt van het Common Internet File System (CIFS). Installeer en configureer op je UNIX-server bijvoorbeeld de public domain toepassing Samba om dit te realiseren. De meeste Linux-varianten zijn standaard
Windows & .NET Magazine Benelux
» september 2003
19
BESCHIKBAARHEID
voorzien van Samba. De versie van Samba is belangrijk. Sommige fabrikanten hebben een eigen SMB/CIFS-implementatie gemaakt of Samba gebruikt en verbeterd. In het tweede geval kun je Windows-systemen voorzien van een NFS-client toepassing zodat de UNIX-server als file server gebruikt kan worden. Wil je de systemen zelf niet voorzien van een NFS-client en toch NFS gebruiken, dan is een NFS-gateway een oplossing. Een NFS-gateway is minder schaalbaar en de prestaties zijn aanmerkelijk minder, maar het voordeel is dat je op de Windowssystemen niets hoeft te installeren. De Windowsclient maakt een verbinding met de NFS-gateway machine met CIFS, die vervolgens de verbinding maakt via NFS met de UNIX-server. Overigens kun je ook een Windows-server voorzien van een NFS-server product, zodat UNIX-werkplekken het Windows systeem zonder aanvullende software als file server kunnen gebruiken.
C Afbeelding 2 » UNIX-toepassingen op Windows
Wat is in dit geval de beste oplossing? In Afbeelding 3 zie je enkele van de oplossingen weergegeven. De beste oplossing hangt af van je wensen en omgeving. Vaak is het slimste om systemen ‘native’ te laten communiceren: laat UNIXsystemen met NFS en Window-systemen met CIFS communiceren. Handig zijn blackbox servers die zowel CIFS als NFS aanbieden, bijvoorbeeld van Network Appliance. Testen van de gekozen oplossing is erg belangrijk, want er zijn structurele verschillen zoals de manier waarop file en record locking en sharing wordt geïmplementeerd. CIFS-producten zijn meestal een heel stuk sneller dan NFS versie 2 of NFS versie 3 producten. Ook kun je onderzoeken hoe typische mogelijkheden van UNIX vertaald worden naar Windows (en andersom); denk daarbij aan symbolic links op UNIX, verborgen bestanden op Windows of verschillen in de interpretatie van hoofd- en kleine letters. En op welke wijze worden ACL’s op Windows vertaald naar de minder geavanceerde rechtenstructuur op UNIX? Wat gebeurt er bij een Take ownership onder Windows op een CIFS-bestandssysteem? Wat doet een chown-opdracht onder UNIX met het CIFSbestandssysteem? Veel producten bieden naast CIFS of NFS extra mogelijkheden zoals het kunnen gebruiken van printers door vreemde besturingssystemen of het synchroniseren van UNIX en Windows wachtwoorden.
Per saldo Windows- en UNIX kunnen goed naast elkaar
21
C Afbeelding 3 » Bestanden op UNIX en Windows bestaan en door elkaar gebruikt worden. Door aanvullende producten te installeren kan de integratie zover gaan dat zowel toepassingen als bestanden voor de gebruiker transparant zijn op beide type werkplekken. De toenemende complexiteit van een geïntegreerde omgeving en de overvloed aan oplossingen weerhoudt bedrijven vaak van een totale integratie. Misschien is het slim om er niet naar te streven alles te integreren, maar je te beperken tot voor de gebruikers relevante onderdelen. Toepassingen zijn daarbij meestal het belangrijkste en serverbased computing is daarvoor veelal de gebruik- en beheervriendelijkste oplossing. J
Windows & .NET Magazine Benelux
» september 2003