Hoofdstuk 6 - Applicaties
58
Niemand kiest een besturingssysteem enkel omwille van het systeem zelf. Bij de keuze van een besturingssysteem moet er belang gehecht worden aan de applicaties die erop uitgevoerd kunnen worden. Wanneer bepaalde applicaties (nog) niet beschikbaar zijn voor Linux, kan men opteren om deze applicaties uit te voeren via een emulator of via Citrix Metaframe. De veruit meest bekende Windows emulator voor Linux is Wine (wine.codeweavers.com - Wine Is Not an Emulator). Met Wine kunnen Win32 applicaties uitgevoerd worden op Linux zonder deze te “porten”. Citrix Metaframe (www.citrix.com) biedt toegang tot zowel alle Windows- als DOSapplicaties, over ieder type netwerkconnectie en vanaf ieder type client. De door Citrix ontwikkelde Metaframe-technologie is een uitbreiding van het Windows NT/2000 besturingssysteem met multi-user functionaliteit. Iedere gebruiker draait een virtuele sessie op de server, waarbij iedere sessie volledig is afgeschermd en gebruikersapplicaties onafhankelijk van andere gebruikerssessies kunnen draaien. Zo is het bijvoorbeeld mogelijk met MS Office te werken op een Linux client terwijl deze applicatie zelf uitgevoerd wordt op de Citrix Metaframe server.
"!$#&%('*)$+-,
De hoeveelheid Linux applicaties is de afgelopen jaren sterk toegenomen. Eerder vroegen critici zich af waar de applicaties voor Linux bleven. Vandaag is het aantal applicaties voor Linux nauwelijks te volgen. De aanwezigheid van applicaties zal besproken worden aan de hand van secundaire en primaire applicaties. Primaire applicaties zijn applicaties die betrokken zijn bij ingaande logistiek, productie, uitgaande logistiek, verkoop en marketing, en dienstverlening. Secundaire applicaties ondersteunen deze primaire applicaties en elkaar.
.0/12)3*465 '*!
In dit hoofdstuk werden applicaties voor Linux onder de loep genomen. Deze applicaties worden uitgevoerd op de infrastructuur die beschreven werd in de vorige hoofdstukken. Eerst werd onderzocht of Linux klaar is voor het gebruik op de desktop. Er werd gezocht naar een manier om besparingen door te voeren op het IT-budget, zonder ons daarbij bepaalde applicaties te ontzeggen. Bovendien moet de overgang naar dit systeem zo eenvoudig mogelijk zijn voor de gebruiker. Het struikelblok bij het beschouwen van de overgang naar Linux is Microsoft Office. Meer dan Windows zelf, is dit de “killer” applicatie die Microsoft het monopolie over de corporate desktop verschaft. Als het overstappen naar Linux betekent dat het bedrijf compatibiliteit verliest met MS-Office, zullen de meeste organisaties bij Windows blijven. Deze compatibiliteit omvat aspecten van training en bestandsformaten. Men tracht dit probleem op te lossen door Win32 applicaties zoals MS Office te laten werken op Linux door middel van een emulator. Naast de desktop werd Linux als ontwikkelingsomgeving besproken. Linux is een fascinerend besturingssysteem omdat het iedere gebruiker laat participeren in de ontwikkeling ervan. Dit uit zich in een overvloed aan beschikbare programmeertalen en library’s voor Linux. Linux is een populaire ontwikkelingsomgeving. Wanneer applicaties ontwikkeld worden, dan worden deze meestal ook ontplooid op hetzelfde platform. De huidige populariteit van Linux als ontwikkelingsomgeving betekent dat Linux een mooie toekomst weggelegd heeft op gebied van applicaties.
58
Hoofdstuk 6 - Applicaties
59
Met Linux zijn er twee manieren om e-business behoeften te vertalen naar een oplossing: zelf applicaties bouwen of ze kopen. Het zelf bouwen van applicaties is de enige manier om precies te krijgen wat men nodig heeft, en het is zeker en vast de Linux-manier om een dergelijk probleem op te lossen. Er zijn bovendien veel programmeertalen en –omgevingen beschikbaar voor het Linux platform. Onder het zelf bouwen van applicaties wordt eveneens verstaan het samenwerken met anderen om een applicatie te bouwen. Deze applicaties werden geschreven door en voor de gebruiker, wat leidt tot een hoge graad van gebruiksvriendelijkheid. Voorbeelden hiervan, die aansluiten bij deze thesis, zijn Human Resource Management (HRM), Customer Relationship Management (CRM), Supply Chain Management (SCM), eprocurement en Enterprise Resource Planning (ERP). Op vlak van deze applicaties is er recentelijk grote vooruitgang geboekt. Zowel op het vlak van Open Source als commerciële software zijn er tal van oplossingen beschikbaar. Vele software leveranciers zijn echter nog terughoudend wanneer het op Linux aankomt. Linux opereert immers in een prijs-gevoelige markt waarin aanhangers van de Linux gemeenschap de commerciële software aanzien als een noodzakelijk kwaad. Ikzelf ben voorstander van een open infrastructuur, waarbij de infrastructuur waarvan applicaties gebruik maken open moet zijn. De applicaties zelf kunnen zowel Open Source als commercieel zijn.
" $
Secundaire applicaties ondersteunen de primaire applicaties en elkaar. In de hoofdstukken ‘Netwerk infrastructuur’ en ‘Middleware’ werden reeds de eerste aspecten van secundaire applicaties besproken. Dit hoofdstuk gaat verder in op secundaire applicaties. Er wordt aandacht besteed aan Linux voor de Desktop, Linux als ontwikkelingsomgeving, en Human Resource Management (HRM) oplossingen voor Linux.
59
Hoofdstuk 6 - Applicaties
6
60
In dit onderdeel wordt er onderzocht of Linux klaar is voor het gebruik op de desktop. Er wordt gezocht naar een manier om besparingen door te voeren op het IT-budget, zonder ons daarbij bepaalde applicaties te ontzeggen. Bovendien moet de overgang naar dit systeem zo eenvoudig mogelijk zijn voor de gebruiker. Het standpunt dat ingenomen wordt bij het gebruik van computer technologie is praktisch en zakelijk. Sommigen zeggen dat Linux niet voor het grote publiek geschikt is, maar veeleer voor ITspecialisten is weggelegd. Mijn standpunt is dat als Linux gebruiksvriendelijk is en werkt, er gebruikers zullen zijn die overstappen naar Linux. Eerder vroegen critici zich af waar de applicaties voor Linux bleven, maar vandaag is het aantal applicaties voor Linux nauwelijks te volgen. Meestal kunnen deze software pakketten ook bestandsformaten van andere platforms lezen en schrijven. Linux heeft altijd gestreefd naar compatibiliteit en openheid. Er wordt eerst nagegaan welke applicaties er nodig zijn op de desktop. We gaan op zoek naar alternatieven voor office applicaties (Word, Excel, PowerPoint, Access, Outlook), Internet applicaties (Internet Explorer, WS_FTP Pro), security applicaties (ZoneAlarm Pro, Norton Anti-virus), publishing applicaties (Acrobat Writer, Adaptec Easy CD Creator), web graphics applicaties (ACDSee, Fireworks) en andere utilities (Acrobat Reader, WinZip, WinAmp).
!#"$#"$%'&)(+*,(.-0/2143657(8:9<;=5
Er zijn verscheidene GUI Window Managers voor Xfree86 beschikbaar, maar twee Window Managers hebben het grootste marktaandeel: KDE (www.kde.org) en GNOME (www.gnome.org). Andere Window Managers zijn bijvoorbeeld: FVWM (www.fvwm.org), SawFish (sawmill.sourceforge.net), Enlightenment (www.enlightenment.org), Blackbox (blackbox.alug.org), WindowMaker (www.windowmaker.org) en XFCE (www.xfce.org). Sinds KDE 2 is KDE veruit de meest gebruikte window manager op Linux. GNOME wordt meestal gebruikt omwille van bepaalde applicaties. KDE is populair omwille van de vele applicaties die beschikbaar zijn voor deze omgeving, de gebruiksvriendelijkheid, de uitstekende ondersteuning voor knippen/plakken/kopiëren en de functionaliteit die vergelijkbaar is met Windows. Dit omvat bestandsbeheer, toepassingen en mogelijkheden om het systeem aan te passen aan de wensen van de gebruiker. De huidige werkomgevingen zijn minstens even goed als Windows en hebben op vele vlakken reeds een voorsprong. Zo zal wanneer een applicatie bijvoorbeeld verwijderd wordt, de snelkoppeling naar deze applicatie automatisch verwijderd worden.
!#"$#"$>,?A@CBD(4-E;F2BG9H(8I('F!JKJ@L9HMNF7BO9H(4P+8I1K14-Q7(BR/FS;BD1K1.-UTH1KVVW9HMK(YX
De applicatie waar velen over vallen bij het beschouwen van de overgang naar Linux is Microsoft Office. Meer dan Windows zelf, is dit de “killer” applicatie die Microsoft het monopolie over de corporate desktop verschaft. Als het overstappen naar Linux betekent dat het bedrijf compatibiliteit verliest met MS-Office, zullen de meeste organisaties bij Windows blijven. Deze compatibiliteit omvat twee aspecten. De meeste corporate desktop gebruikers zijn getraind op de interface en de features van Microsoft producten. Er bestaat een terughoudendheid bij het overstappen naar nieuwe producten waardoor deze gebruikers deze vaardigheid opnieuw moeten aanleren. Het andere aspect van compatibiliteit verwijst naar bestandsformaten. Bestandsformaten zijn misschien het laatste bolwerk van bedrijfseigen technologie. Op termijn kan XML (eXtended Markup Language) soelaas bieden, maar vermits 60
Hoofdstuk 6 - Applicaties
61
XML redelijk nieuw is, bevindt het zich op dit moment niet in een positie waarin het de Microsoft bestandsformaten (bijvoorbeeld Excel *.xls en Word *.doc) kan onttronen. Dit leidt tot heel wat ergernis omdat Microsoft bekend staat om bij elke nieuwe release het bestandsformaat te wijzigen, deels om nieuwe features te ondersteunen en deels om de concurrenten af te schudden. Het WINE (Wine Is Not an Emulator - wine.codeweavers.com) tracht dit probleem op te lossen door Win32 applicaties zoals MS Office te laten werken op Linux zonder ze te “porten”. Recentelijk werd aangekondigd dat MS-Office op Linux kon uitgevoerd worden met CrossOver office (www.codeweavers.com), een project dat gebaseerd is op WINE. Er wordt een onderscheid gemaakt tussen vijf belangrijke Microsoft applicaties die door de meeste ondernemingen gebruikt worden: Word, Excel, Powerpoint, Outlook en Internet Explorer. Alternatieven voor Internet Explorer worden later besproken. In dit deel gaan we dieper in op de overblijvende vier applicaties, aangevuld met Access. Er zijn op dit moment drie grote Open Source projecten bezig met het ontwikkelen van een office suite: Open Office (www.openoffice.org), Gnome Office (www.gnome.org/gnome-office) en Koffice (www.koffice.org). Gnome Office en Koffice zijn gegroeid uit de Gnome en KDE desktop projecten. Open Office is de Open Source versie van Sun StarOffice (www.sun.com/staroffice). Er zijn tevens commerciële office projecten op Linux, bijvoorbeeld hancomOffice (www.hancom.com) en Applixware (www.vistasource.com). Deze alternatieve office suites omvatten minstens een tekstverwerker, een werkblad en een presentatietoepassing. Doordat ze gelijkaardige interfaces (cfr. MS-Office) hebben, minimaliseren ze de kosten van training van de gebruiker bij de overstap. Deze office suites beweren ook volledig compatibel te zijn met MS-Office bestandsformaten. Zelfs als dit waar is, moeten we onthouden dat de volgende versie van MS-Office opnieuw niet meer compatibel zal zijn. Naast een tekstverwerker, een werkblad en een presentatietoepassing is er ook behoefte aan een alternatief voor Microsoft Outlook. Dit combineert een e-mail client met een kalender, contact beheer en document management. Deze combinatie van functies kan eenvoudig geleverd worden door afzonderlijke Open Source tools, of door een project dat al deze functies integreert. Voorbeelden hiervan zijn Aethera (www.thekompany.com/projects/aethera) en Evolution (www.ximian.com/products/ximian_evolution). Beiden ondersteunen POP3 en IMAP. Afzonderlijke functies voor e-mail kunnen geleverd worden door vele clients: Kmail (kmail.kde.org) en Balsa (balso.gnome.org) zijn e-mail clients voor respectievelijk KDE en Gnome, en er zijn nog vele andere mogelijkheden. Kalender en contact beheer worden geleverd door zogenaamde PIM (Personal Information Management) applicaties. Gnome heeft Gnome-cal (www.gnome.org) en KDE heeft Ical (pim.kde.org). Beiden zijn geschikt en beschikken over de mogelijkheid om te synchroniseren met een Palm of gelijkaardig toestel. Vele ondernemingen zijn afhankelijk van een MS Access database applicatie. Er is dus behoefte aan een alternatief dat instaat voor de database front-end en administratieve tools die nodig zijn voor de applicatie te onderhouden. Vele ondernemingen kiezen hiervoor een intranet applicatie op basis van LAMP (www.onlamp.com). LAMP is het acroniem voor Linux, Apache, MySQL, Perl–Python–PHP. Apache werd reeds eerder besproken. MySQL, Perl, Python en PHP komen later in dit hoofdstuk aan de orde. Andere alternatieven voor MS Access zijn Tora (www.globecom.se/tora), Gnome-DB (www.gnome-db.org), SqlGui (www.sqlgui.de), Knoda (knoda.sourceforge.net) en Rekall (www.thekompany.com/products/rekall). Rekall bouwt verder op het idee van het programmeerbare DBMS (DataBase Management System), dat eerder al succes kende in applicaties zoals dBase, Paradox en MS Access. De kracht van Rekall zit in zijn eenvoud en de mogelijkheid om eenvoudig te schalen van bijvoorbeeld MySQL naar Oracle of DB2. 61
Hoofdstuk 6 - Applicaties
62
!#"$#"$ L;BD(4-E;7(B?JKJR@ 9HMNF2BG9H(4P N?A@BD(4-E;F7BO9H(8!(4; 8I1K14
;RB (.-0;2(B KJ@H14- (4
Er zijn tekst- en grafisch georiënteerde browsers1. Lynx is een tekstgeoriënteerde browser voor Linux. Tegenwoordig zijn browsers echter grafisch opgezet en wordt er steeds meer aandacht besteed aan dynamische datageneratie en applicaties die uitgevoerd kunnen worden in de browser. Dat betekent dat foto's, plaatjes, animaties, video, geluid en applicaties ook kunnen uitgevoerd, bekeken of beluisterd worden. Grafische browsers voor Linux zoals Netscape Navigator, Konqueror en Galeon bieden meer complexe applicatie interfaces, wat hen toelaat om gedownloade inhoud uit te voeren (Java applets, DHTML, ActiveX, etc.). Een andere, weliswaar commerciële, browser is Opera. Mozilla (www.mozilla.org) is de naam van het project dat uitgegroeid is tot Netscape Navigator, en later Netscape Communicator. Toen Microsoft besloot om zijn browser gratis ter beschikking te stellen, besliste Netscape om nog een stap verder te gaan. Netscape gaf de broncode van hun browser prijs onder een open-source licentie en creëerde Mozilla.org om toezicht te houden op verdere ontwikkelingen van hun browser. Vandaag is Netscape/Mozilla de meest gebruikte browser op Linux. Bovendien worden verschillende onderdelen van het Mozilla project gebruikt in vele andere open source Linux browsers. De Gnome browser ‘Galeon’ steunt bijvoorbeeld op Gecko, de ingebouwde layout engine van Mozilla, en Konqueror gebruikt de vele Netscape plugins om de functionaliteit van de browser uit te breiden. Konqueror (www.konqueror.org) is een Open Source Web browser die voldoet aan HTML 4.x en ondersteuning biedt voor Java applets, scripting talen zoals ECMAscript 262 (JavaScript), CSS v1 & v2 (Cascading Style Sheets) en SSL (Secure Socket Layer). Zoals eerder reeds aangehaald, ondersteunt Konqueror eveneens Netscape plugins. Plug-ins zijn softwareprogramma’s die de functionaliteit van de browser uitbreiden. Voorbeelden van plug-ins zijn de ondersteuning voor het afspelen van audio en video (RealVideo plugin) binnen de browser en Macromedia Flash Player. Tenslotte biedt Reaktivate de mogelijkheid om ondersteuning te bieden voor ActiveX controls in Konqueror, zoals de populaire Shockwave films, waarvoor er geen eigen Linux oplossing bestaat. Reaktivate steunt op de WINE bibliotheken (Wine Is Not an Emulator) voor het laden en uitvoeren van ActiveX controls. Konqueror is bovendien geïntegreerd met de KDE file manager. Dit maakt Konqueror eveneens een FTP programma voor KDE. Gnome levert hiervoor gFTP. In de toekomst zullen er buiten desktops en laptops, steeds meer toestellen zoals Personal Digital Assistants (PDA), televisies, GSM’s, radio’s en GPS de weg naar het Internet vinden. Voor deze clients zijn aangepaste versies van Linux geschreven. Deze toestellen kunnen kunnen uitgerust worden met embedded Linux versies zoals PocketLinux, Qt Palmtop Environment en DAlinux. De enige hindernis die de zojuist beschreven browsers kunnen ervaren, is het gebruik van webpagina’s met niet-standaard eigenschappen van MS Internet Explorer. Dit probleem is geen gevolg van Open Source, maar van vendor lock-in bij bedrijfseigen Microsoft eigenschappen. 1
Een browser is een programma dat een mogelijkheid verstrekt om informatie op het World Wide Web te downloaden en te bekijken. Technisch gezien is een browser een client programma dat gebruik maakt van het Hypertext Transfer Protocol (HTTP) om ‘requests’ te verzenden naar een Web server. Deze requests worden verzonden via het Internet op aanvraag van de gebruiker van de browser. De Web server antwoordt in Hypertext Markup Language (HTML). Deze taal kan uitgebreid worden met scripting talen zoals Java, PHP en Perl. Hierdoor wordt het mogelijk om zowel statische als dynamische inhoud te tonen. Enige vorm van interactie behoort eveneens tot de mogelijkheden.
62
Hoofdstuk 6 - Applicaties
!#"$#"$
63
@L9
Vele ondernemingen maken gebruik van PDF (Portable Document File). Hiervoor is een speciale pdf compiler nodig. In een eerste fase wordt het document afgedrukt naar een PS (PostScript) bestand, vervolgens kan men met ps2pdf het PS bestand omvormen tot een PDF bestand. Bijvoorbeeld: “ps2pdf thesis.ps thesis.pdf”. Dit is echter een omslachtige methode. Daarom beschikt de KDE Print Architecture (printing.kde.org) standaard over de mogelijkheid om een document af te drukken naar PDF. Voor het branden van CD’s is er bijvoorbeeld Xcdroast beschikbaar. Dit programma beschikt nog niet over de nodige gebruiksvriendelijkheid, maar werkt uiterst snel.
!#"$#"$O ( 65K-#F!J2Q9HM4P'F!JKJR@ 9HMNF2BG9H(4P
Op het gebied van grafische applicaties wordt er een onderscheid gemaakt tussen een Image Viewer en een Image Editor. Voor de Image Viewer heeft elke werkomgeving zijn eigen tools, zo beschikt KDE onder andere over Konqueror’s ingebouwde viewer en KDE Pixie Image Manager. Tussen alle Image Editors die beschikbaar zijn voor Linux, is GIMP waarschijnlijk de meest bekende. GIMP is een hoog gewaardeerd, robuust en uitgebreide Image Editor, en wordt regelmatig vergeleken met PhotoShop. Het werkt goed voor nagenoeg alle image bestanden, waaronder FireWorks 4 bestanden. GIMP is uitstekend voor Web graphics.
! #"$#"$ ? ; K4( - ( OB L9 L@ C9 OB H9 4( P
Andere applicaties die op het verlanglijstje van vele ondernemingen staan zijn een PDF viewer, een Archive utility zoals WinZip en een MP3 speler. Een PDF viewer voor Linux is beschikbaar bij Adobe (Acrobat Reader). Er zijn echter ook Open Source PDF viewers zoals xpdf. De MP3 speler is eveneens beschikbaar voor Linux: XMMS (gelijkaardig aan WinAmp) en KDE MultiMedia Player (Noatun) (gebaseerd op ARTS technologie). Een Archive applicatie voor Linux is bijvoorbeeld Archiver (ark). WinZip op Windows en Archiver zijn volledig compatibel op gebied van *.zip en *.tar.gz archieven. Het ‘tar’ programma is geschikt voor backups aangezien het een backup maakt van Linux filesystem folders en deze backup comprimeert door middel van Gzip. KDE levert hiervoor een grafische front-end: Kdat. De zonet beschreven backup tools zijn goed voor de desktop, maar bieden onvoldoende capaciteit voor het grote werk. Hiervoor zijn professionele Linux backup tools beschikbaar zoals HICOMP HIBACK (www.hicomp.com/e_home.htm), Legato NetWorker (www.legato.com/products/protection/networker/networker6/), Quadratec Time Navigator (www.quadratec-software.com/products/html/US/product03.php3), Arkeia (www.arkeia.com), Computer Associates ARCserveIT (www.computerassociates.com/arcserveit/arc_linux_ae.htm) en IBM Tivoli Data Protection (www.tivoli.com/linux). Case voorbeeld: Opensides gebruikt Linux voor de desktop Opensides (www.opensides.be) is een Belgische onderneming die zich specialiseert in het maken van klantgerichte oplossingen op basis van KDE. Opensides gebruikt de KDE werkomgeving voor alle activiteiten binnen de onderneming. Ingenieurs gebruiken bijvoorbeeld Kivio (www.koffice.org/kivio) bij het opstellen van een netwerk, en het administratief personeel gebruikt Staroffice voor tekstverwerking en werkbladen. Staroffice zal in de nabije toekomst vervangen worden door Koffice. Het e-mail verkeer gaat via Kmail. Bron: Benoit Mortier (
[email protected])
63
Hoofdstuk 6 - Applicaties
64
C C K
Linux is een fascinerend besturingssysteem omdat het iedere gebruiker laat participeren in de ontwikkeling ervan. Dit uit zich in een overvloed aan beschikbare programmeertalen en library’s voor Linux. Deze thesis tracht de programmeertalen en GUI (Graphical User Interface) toolkits te behandelen die relevant zijn in een e-business omgeving. Opmerking: in dit onderdeel worden programmeertalen besproken. Er zijn echter veel meer programmeertalen beschikbaar voor Linux, waaronder Lisp (Emacs modes (voor Elisp), AI) en Fortran (Wiskundige en wetenschappelijke applicaties) Andere te vermelden talen: AWK, SED, Smalltalk, Eiffel, Ada, Prolog, assembler, Objective C, Logo, Pascal (p2c converter) en Scheme (www.scheme.org). Deze talen zijn echter minder relevant in een e-business context.
!#"$%4#" K( MBR57(K14-#94;BD(K(.- =(+T RX J7- 145=- F 363 (K(4- BOFK@H(4;
C++ (gcc.gnu.org): C++ is een nieuwe object georiënteerde taal, backwards-compatible met C, en wordt hoofdzakelijk gebruikt voor het bouwen van grote applicaties.. C# (www.ximian.com/devzone/projects/mono.html):C# (uitgesproken als "C-sharp") is een nieuwe object georiënteerde programmeertaal. C# is gebaseerd op C++ en bevat eigenschappen die gelijkaardig aan deze van Java. C# maakt programmeren eenvoudiger door het gebruik van eXtensible Markup Language (XML) en Simple Object Access Protocol (SOAP). C# is de basis van Mono (de Linux versie van Microsoft .Net). Mono laat programmeurs toe om .Net applicaties te maken en deze uit te voeren op Windows of elk platform dat Mono ondersteund, waaronder Linux en UNIX. Java (www.javasoft.com): Java is een Object georiënteerde en platform onafhankelijke programmeer taal die ontwikkeld door James Gosling van Sun Microsystems, en oorspronkelijk Oak heette. Java is platformonafhankelijk, zolang dat specifieke platform over een Java Virtual Machine (JVM) beschikt. Dit is het geval voor Linux (als ook o.a. voor Windows, MacOS en Unix). Het grote voordeel hiervan is dat als een Java programma één keer gemaakt is, het er niet toe doet op welk platform hij uitgevoerd wordt. Dit strategische voordeel van Java staat bekend als: 'Write once, run anywhere.' Een andere bekende eigenschap van java is de mogelijkheid om programma's te creeren die geïntegreerd kunnen worden met HTML. Deze programma's worden Applets genoemd. Python (www.python.org): Python is een Open Source programmeertaal, gelijkaardig aan Perl, die vooral populair is door de eenvoudige syntax. Python werd in 1991 ontwikkeld door Guido van Rossum, die het noemde naar Monty Python's Flying Circus. Python is vooral geschikt voor Rappid Application Development, voor scripting en als lijm tussen verschillende systemen. Python produceert portable bytecodes en laat integratie met C en Java toe. Omdat het compilatieproces voor de gebruiker verborgen wordt lijkt het alsof programma's rechtstreeks vanuit de broncode uitgevoerd worden zoals bij een geïnterpreteerde taal. (Men zegt soms dat Python een compiler is die je gebruikt als een interpreter). Python wordt aangeprezen als een taal die een snelle ontwikkeling toelaat. Python-programma's zijn korter en zijn sneller geschreven dan Java-programma's. Python en Java kunnen als complementaire talen beschouwd worden, elk met hun eigen sterke punten. Net als Java heeft Python ook een 'garbage collector'. Perl: Practical Extraction and Report Language (www.perl.org): Perl is bedacht in 1987 door Larry Wall en is tegenwoordig een veel gebruikt script in web-applicaties, met name de CGI-scripts zijn in Perl geschreven. Perl kan los gebruikt worden als script, maar ook als lijm
64
Hoofdstuk 6 - Applicaties
65
tussen verschillende systemen. Perl's roots liggen in de UNIX-wereld, maar het toepassingsgebied slaat op alle besturingssystemen. Net als Python is Perl een geïnterpreteerde taal. Sommigen zeggen dat het een 'interpiler' is, een hybride combinatie van een interpreter en een compiler. Perl heeft een aantal kenmerken van objectgeoriënteerde talen, maar is minder objectgeoriënteerde dan Python. Perl beschikt ook over een grote bibliotheek van modules, waarvan die voor CGI een van de meest gebruikte is. Perl is het een soort Zwitsers zakmes, met kenmerken die geïnspireerd waren door andere talen: Perl heeft een syntax die lijkt op C, de tekstverwerkingsmogelijkheden van awk, string handling routines van BASIC, enz. Het resultaat moest functioneel zijn, niet elegant. Perl is niet zo rigide als C of Pascal; het motto van Perl-programmeurs is: "There's more than one way to do it". Case voorbeeld: Amazon.com, MP3.com en Deja.com gebruiken Perl Ondernemingen zoals Amazon.com, MP3.com en Deja.com gebruiken Perl voor het realiseren van hun Web appliacties. Redenen die hiervoor aangehaald worden zijn de sterke verwerkingscapaciteit, de robuustheid, x x Bron: www.perl.org Ruby (www.ruby-lang.org) werd in 1993 ontwikkeld door Yukihiro Matsumoto (beter bekend onder nickname ‘Matz’) die de taal Perl wou verbeteren (‘it had smell of toy language’) en uitbreiden met elementen van talen als Eiffel en Smalltalk. Ruby is net als perl een geïnterpreteerde scripting taal voor snel en eenvoudig object georiënteerd te programmeren.
! "# % $ Er zijn vele procedurele programmeertalen beschikbaar op Linux. De belangrijksten zijn C en TCL. C (gcc.gnu.org) is een gestructureerde, procedurele programmeertaal die veel gebruikt wordt voor besturingssystemen en applicaties. Tegenwoordig wordt C steeds meer vervangen door de objectgeoriënteerde variant C++. TCL of Tool Command Language (dev.scriptics.com) is geschikt is voor scripting en applicaties.
&
' ( ! ) + $ *
%
, - . $ 0 2/ 1 % 3 0 5 4 6 7 8 9/ 8 $ ;: 1 De Common Gateway Interface (CGI) was de eerste methode om automatische gegenereerde informatie op het web te publiceren, dat wil zeggen dat pagina's op vraag van de bezoeker gegenereerd worden in plaats van op voorhand geschreven. De bezoeker vult bijvoorbeeld een formulier in en drukt op een knop om zijn gegevens te verzenden. Door middel van CGI roept de webserver een applicatie op die deze gegevens verwerkt en op basis van het antwoord van deze applicatie wordt een nieuwe webpagina gegenereerd. Men kan voor CGI verschillende programmeertalen gebruiken (o.a. afhankelijk van het platform waarop men werkt heeft men de keuze uit Perl, C++, Unix shellscript, Java enz.). Maar welke taal men ook kiest, CGI heeft enkele ernstige intrinsieke nadelen. Ten eerste is CGI relatief traag. Bij elke aanvraag moet de webserver het CGI-programma lokaliseren en opstarten. Wanneer het programma de gevraagde webpagina gecreëerd heeft stopt het en verdwijnt het weer uit het geheugen van de computer. Aangezien dit voor elke aanvraag afzonderlijk moet gebeuren, gaat er telkens tijd verloren. Het programma moet niet alleen
65
Hoofdstuk 6 - Applicaties
66
helemaal herstart worden, het moet ook opnieuw een connectie met b.v. de database opzetten. Een tweede nadeel van CGI is dat het 'stateless' is: elke vraag wordt afzonderlijk behandeld alsof de vorige nooit bestaan hadden; het gaat immers telkens om een nieuw CGIproces. Een typisch voorbeeld is de 'shopping cart' op veel commerciële websites: de klant verwacht dat de items die hij eerder geselecteerd heeft in zijn winkelkarretje blijven wanneer hij er iets nieuws aan toevoegt, maar omdat elke toevoeging van een item een nieuw CGIproces start zouden alle andere items verloren gaan, tenminste zonder speciale maatregelen. De meeste CGI-programma's lossen dit probleem op door alle nodige informatie naar een database te schrijven vooraleer ze uit het geheugen verdwijnen. PHP: Hypertext Preprocessor (www.php.net): PHP is een Open Source HTML-embedded scripting taal voor servers. De syntax ervan heeft overeenkomsten met C, Java en Perl met een aantal unieke functies extra. Waarschijnlijk is de sterkste kant van PHP dat het ondersteuning biedt voor een groot scala aan databases. Het schrijven van een database gekoppelde webpagina (een webdatabase) is met PHP redelijk eenvoudig. PHP biedt ook ondersteuning voor het communiceren over een netwerk met behulp van een groot aantal protocollen, waaronder IMAP en POP3 die gebruikt worden bij het ontvangen van e-mail, NNTP gebruikt bij nieuwsgroepen en het bekende HTTP protocol van het World Wide Web (WWW). Case voorbeeld: www.BigBrother.be werkt op basis van PHP Toen de Vlaamse Media maatschappij besloot om www.BigBrother.be op te richten met de nodige toeters en bellen, baseerde het zich op LAMP dat eerder reeds succes boekte bij de Web sites van VTM (Vlaamse TelevisieMaatschappij) en VRT (Vlaamse radio- en Televisieomroep). LAMP is het LAMP is het acroniem voor Linux, Apache, MySQL en PHP. Bron: Leander Berwers ( www.glasshouse.be) Java ServerPages (JSP): De oplossing van Sun voor dynamische webpagina's heet Java ServerPages (JSP). Hierbij wordt gebruikt gemaakt van servlets: net zoals een applet een klein programma is dat de functionaliteit van een browser uitbreidt is een servlet een programma dat de functionaliteit van een server uitbreidt. Een Java-servlet is een 'object' dat een aanvraag ontvangt en een antwoord genereert en terugstuurt. Java is een gecompileerde taal, waardoor het sneller is dan geïnterpreteerde talen als Perl. Het is echter trager dan C omdat het niet naar een echte machinetaal gecompileerd wordt, maar naar bytecodes die nog door een Java Virtual Machine omgezet moeten worden naar instructies. Het grote voordeel van Java is dat deze bytecodes op elk platform kunnen uitgevoerd worden waar een Java Virtual Machine bestaat. In tegenstelling tot CGI dient men niet bij elke aanvraag een nieuw proces te starten: een servlet wordt geladen wanneer dit de eerste keer nodig is en blijft lopen. Voor JSP heeft men ook geen grote application server nodig: op de Java One-conferentie in 1999 kondigde Sun een partnership aan met de makers van Apache (het zogenaamde Jakarta-project: jakarta.apache.org). Java wordt trouwens niet alleen gecombineerd met HTML maar ook met XML. Javascript (www.mozilla.org/js/): Javascript is een scripttaal die bij HTML pagina's ingevoegd wordt om de functionaliteit van een pagina te verhogen. Maar je ziet het meer in HTML om de desbetreffende webpagina's aantrekkelijker te maken. Voorbeelden zijn o.a. een andere afbeelding laden als de muis over een link gaat of e en lichtkrant maken in de statusbalk. ColdFusion (www.allaire.com/products/ColdFusion) maakt gebruik van een eigen set van tags die geïnterpreteerd worden door ColdFusion Server-software. Deze serversoftware kan op verschillende platformen werken, waaronder Netscape Enterprise Server en Apache.
66
Hoofdstuk 6 - Applicaties
67
.3 8 '(/9$
Ook shells bieden een belangrijke programmeeromgeving. Een shell is de commando interpreteerder van een besturingssysteem en een set van commando’s die gebruikt kunnen worden om te communiceren met dit systeem. Een shell script is een tekstbestand met een sequentie van commando’s, gelijkaardig aan een batch bestand in het DOS besturingssysteem. Een shell script wordt meestal gebruikt voor sequenties van commando’s die een gebruiker regelmatig nodig heeft. Een shell script kan aangeroepen worden door de naam van het shell script in de shell in te geven. Tussen de meest populaire shells bevinden zich bash, tcsh, csh, ksh en zsh.
8 / 1
X, het standaard grafische subsysteem voor UNIX en Linux, heeft zijn eigen bibliotheken voor GUI ontwikkeling. Ze leveren een low-level programmeerinterface voor X, maar neigen ernaar moeilijk in gebruik te zijn. Oude applicaties en andere toolkits maken er gebruik van, maar tegenwoordig wordt de Linux GUI scène gedomineerd door GTK+ en Qt, aangezien twee populaire complete gebruikerso mgevingen, GNOME en KDE, hierop gebaseerd zijn. TK
Library
Website dev.scriptics.com
Licentie Vrij
Taal TCL
GTK+
www.gtk.org
Vrij (LGPL)
C
Qt
www.trolltech.com
Motif
Vrij voor open C++ source www.metrolink.com Niet vrij C/C++
Bindings Perl, Python, anderen Perl, C++, Python, veel anderen Python, Perl, C, anderen Python, anderen
Voorbeelden make xconfig, TKDesk GNOME, Gimp
KDE Netscape, Wordperfect
Tabel 6-1: Overzicht van GUI Toolkits
) 7/ 7 / )/ $ 8* %$7 RAD staat voor Rapid Application Development. Het is een manier van incrementeel systeemontwikkelen waarbij elke paar maanden een nieuw stuk programmatuur wordt opgeleverd. Om dit te kunnen moeten er een aantal geautomatiseerde ontwerp- en ontwikkelingshulpmiddelen gecombineerd worden gebruikt zoals: vierde generatietalen (4GL’s, programmeertalen waarin vaak voorkomende, wat complexere programmeerfuncties zijn op te roepen met commando’s op een hoger abstractieniveau), CASE-tools2 (Computer Aided Software Engineering-tools) en Grafische programmeerhulpmiddelen en tools waarmee snel de schermen/rapporten van een informatiesysteem kunnen worden ontwikkeld. RAD is dus eerder afhankelijk van de gebruikte tools dan de feitelijke taal. RAD kan krachtig zijn wanneer code hergebruikt kan worden. Vrije software zou dus een goed begin van RAD kunnen vormen. Vandaag maken de meeste ontwikkelaars op het Linux platform gebruik van GTK+ en Trolltech Qt als ontwikkelomgeving voor respectievelijk Gnome en KDE. Deze beide toolkits vormen een uitbreiding van programmeertalen zoals C en C++. Recentelijk is het lijstje met RAD tools voor Linux aangevuld met Kylix, een Delphi/Pascal voor Linux.
2
CASE-tools: software die allerlei modellerings- en schematechnieken ondersteunt die gebruikt worden bij het ontwikkelen van informatiesystemen, en waarmee bovendien vaak ook nog de consistentie van een softwareontwikkelingstraject gecontroleerd kan worden. Door hier gebruik van te maken kan softwareontwikkeling vaak efficiënter dan puur handmatig worden uitgevoerd.
67
Hoofdstuk 6 - Applicaties
68
De combinatie van Kdevelop (www.kdevelop.org) en Trolltech Qt (www.trolltech.com) is een toonaangevende Linux-IDE met talloze mogelijkheden voor snelle applicatieontwikkeling, inclusief een GUI-dialoogbouwer, geïntegreerde debugging, projectbeheer, documentatie- en vertalingsfaciliteiten, ingebouwde huidige ontwikkelingsondersteuning en veel meer. BlackAdder (www.thekompany.com/products/blackadder): lackAdder is een ontwikkelingsomgeving voor de Python programmeertaal, de Ruby ontwikkeltaal, de Qt grafische user interface (GUI) en ODBC database connectiviteit verenigt in een IDE 3. Kylix (www.borland.com): Borland introduceerde Delphi/Pascal voor Linux, Kylix genaamd. Kylix is een RAD (Rapid Application Development) tool onder Linux. Kylix moet het ontwikkelen van applicaties onder Linux explosief doen toenemen en het biedt daar alle kansen toe. Met Kylix kan men niet alleen standaard desktopapplicaties ontwikkelen, maar ook databank-, Internet-, client/server- en n-tier gedistribueerde applicaties. Applicaties ontwikkelen onder Linux hoeft bovendien niet vanaf de grond te gebeuren. Dat is nu net een van de grote troeven van Kylix. De ontwikkelomgeving is platformoverschrijdend doordat Kylix gebruik maakt van de Delphi CLX componentenbibliotheek, waardoor men massa's Delphitoepassingen voor Windows zonder veel aanpassingen kunt omzetten in volwaardige Linuxalternatieven. Bovendien hoeft men zich niet te bekommeren om de rechten op de CLX-libraries, want Borland stelde ze gratis ter beschikking te stellen onder de GPL-licentie (General Public Licence) en dit zowel voor Delphi als Kylix. Case voorbeeld: Apropos gebruikt Kylix + Database server Informix 4GL op Linux X Bron: www.borland.com/about/cases/studies/apropos_12980.pdf Naast Kylix heeft Borland ook nog een java ontwikkelingsomgeving: Jbuilder (www.borland.com/jbuilder). Ook Metrowerks levert een commerciële C/C++/Java ontwikkelingsomgeving voor Linux: Code Warrior (www.metrowerks.com/products/linux).
6
$ 4 / 2/ $ 1
8 * 2/ $ Webontwikkeling omvat het maken (inhoud, opmaak, interactie), het beheren (koppelen, verplaatsen en hernoemen) en het publiceren (via ftp of http) van Web pagina’s. Quanta Plus (quanta.sourceforge.net) en BlueFish (bluefish.openoffice.nl) zijn open source Webontwikkelings-omgevingen met ondersteuning voor bijvoorbeeld HTML 4.0, CSS, PHP en JavaScript.
3
IDE: Integrated Development Environment
68
Hoofdstuk 6 - Applicaties
69
! "# #$&%'(&*) Human Resource Management (HRM) is een tool waarmee het menselijk kapitaal in de onderneming optimaal gestuurd, begeleid en beheerd wordt. Er kan hierbij gedacht worden aan activiteiten op de terreinen werving, plaatsing, beoordeling, beloning, delen van kennis en scholing van de werknemers van een organisatie. Het aanbieden van jobs op Stepstone.be, Monster.be en andere rekruteringssites – en uiteraard de eigen site van de onderneming – is enkel een begin. Er is eveneens behoefte aan software die bijvoorbeeld de selectie van kandidaten ondersteunt, zodat de juiste mensen de juiste opdracht krijgen, de turnover geminimaliseerd wordt en dergelijke. Eénmaal een kandidaat aangeworven is zal HRM zich meer richten op het beoordelen van de prestaties, het delen van kennis tussen werknemers onderling, en de scholing van deze werknemers. Knowledge management (KM) is hierbij het modewoord. De meeste succesvolle ondernemingen zien kennis als één van hun meest waardevolle activa. Binnen kennisorganisaties wordt heel veel informatie en kennis opgebouwd en verzameld. Informatie is dan ook de spil van het bedrijf. Zonder goed Knowledge Management gaat die waardevolle informatie mogelijk verloren of verliezen medewerkers kostbare tijd bij het terugvinden van de informatie.
+,-/.10324/576-98;:< 2=,?>@2/ABADCE.FG-B.IHJ22/5KCE.G4=L
Open Source HRM oplossingen baseren zich meestal op LAMP (www.onlamp.com). LAMP is het acroniem voor Linux, Apache, MySQL, Perl–Python–PHP (zie eerder). De Zope Application Server (www.zope.nl) is eveneens een populaire open source HRM oplossing. Niet alleen biedt Zope de mogelijkheid om een structuur aan te brengen in de informatie zelf, alle documenten worden transparant als gegevens beschouwd, waardoor alle informatie doorzoekbaar en indexeer-baar wordt, ongeacht het aangeleverde formaat. Zope is een open source webapplication server en toolkit geschreven in Python. Zope wordt gratis ter beschikking gesteld door Digital Creations. Case voorbeeld: Belgische Federale Overheid X
contacteer reno!
Bron: Reinout Mechant (General Manager van www.renoproductions.com)
MN2/OO1-/576DC@PD>@-98;:< 2=,?>@2/ABADCE.FG-/.IHQ22/5KCE.G4=L
Lotus en mySAP HR zijn commerciële HRM oplossingen.Lotus (www.lotus.com) levert voor Linux een Web-enabled oplossing voor het bouwen van een gemeenschap waarin kennis gemakkelijk toegankelijk is. Het Lotus-gamma bevat een reeks modules voor berichtendiensten (Notes client/server), voor Groupware/groepswerk (Domino.Doc, QuickPlace, SameTime) en voor online opleiding (LearningSpace). Al deze modules werken onder Domino Server. Ook mySAP (www.sap.com) Human Resources (mySAP HR) levert een HRM oplossing. Deze module omvat onder meer planning en vooruitzichten voor de vorming van het personeel, het beheer van kandidatenprofielen, lonen, tijdsbeheer en kostenbegroting.
69