ADOBE® INDESIGN® CS5 SERVER EINFÜHRUNG IN ADOBE INDESIGN CS5 SERVER © 2010 Adobe Systems Incorporated. All rights reserved. Einführung in Adobe InDesign CS5 Server Technischer Hinweis Nr. 10123 If this guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is furnished under license and may be used or copied only in accordance with the terms of such license. Except as permitted by any such license, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe Systems Incorporated. Please note that the content in this guide is protected under copyright law even if it is not distributed with software that includes an end user license agreement. The content of this guide is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or inaccuracies that may appear in the informational content contained in this guide. Please remember that existing artwork or images that you may want to include in your project may be protected under copyright law. The unauthorized incorporation of such material into your new work could be a violation of the rights of the copyright owner. Please be sure to obtain any permission required from the copyright owner. Any references to company names in sample templates are for demonstration purposes only and are not intended to refer to any actual organization. Adobe, the Adobe logo, InDesign, and Version Cue are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Mac OS is a trademark of Apple Computer, Incorporated, registered in the United States and other countries. Java is a trademark or registered trademark of Sun Microsystems, Incorporated in the United States and other countries. All other trademarks are the property of their respective owners. Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA. Notice to U.S. Government End Users. The Software and Documentation are “Commercial Items,” as that term is defined at 48 C.F.R. §2.101, consisting of “Commercial Computer Software” and “Commercial Computer Software Documentation,” as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States. Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S. Government End Users, Adobe agrees to comply with all applicable equal opportunity laws including, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of 1974 (38 USC 4212), and Section 503 of the Rehabilitation Act of 1973, a s amended, and the regulations at 41 CFR Parts 60-1 through 60-60, 60-250, and 60-741. The affirmative action clause and regulations contained in the preceding sentence shall be incorporated by reference. Inhalt Terminologie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Roadmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Dokumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Skripte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 COM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Windows-Dienst. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 launchd-Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Leistung und Skalierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Installieren von InDesign Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Ausführen des Installationsprogramms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 CJK-Funktionssatz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Installieren des InDesign Server Windows-Dienstes (nur Windows) . . . . . . . . . . . . . . . . . 10 Installieren des InDesign Server-SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Ausführen von InDesign Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 InDesign Server-Argumente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Starten von InDesign Server von der Befehlszeile aus . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Starten von InDesign Server für die Verwendung mit SOAP . . . . . . . . . . . . . . . . . . . . . . 14 Starten von InDesign Server für die Verwendung mit CORBA . . . . . . . . . . . . . . . . . . . . . 14 Starten von einem anderen Programm oder Skript aus . . . . . . . . . . . . . . . . . . . . . . . . . 15 Ausführen mehrerer InDesign Server-Instanzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Beenden von InDesign Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Konfigurieren des InDesign Server Windows-Dienstes . . . . . . . . . . . . . . . . . . . . . . . . . 16 Konfigurieren eines launchd-Daemons für InDesign Server unter Mac OS . . . . . . . . . . . . . 18 Integration von InDesign Server über SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Verwenden von SampleClient zum Ausführen eines InDesign Server-Skripts . . . . . . . . . . . 21 Integration von InDesign Server über Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Schreiben einer Java-Komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Ausführen einer InDesign Server-Java-Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Integration mit InDesign Server über ein Zusatzmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3 Inhalt Integration mit InDesign Server über COM (nur Windows). . . . . . . . . . . . . . . . . . . . . . . . . . 27 Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Integration von InDesign Server über LBQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Handhabung von Fehlermeldungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Zugreifen auf Fehler und Meldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Umleiten von Fehlern und Meldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Nächste Schritte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 InDesign Server-Skripterstellung, Zusatzmodule und Java . . . . . . . . . . . . . . . . . . . . . . 30 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 CORBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Häufig gestellte Fragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Kann ich sowohl einen SOAP-Anschluss als auch eine IOR-Datei festlegen, wenn ich den Server starte? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Gibt es ein Verzeichnis aller Objekte und Methoden in der InDesign Server-Java-API? . . . . . 32 Gibt es ein Verzeichnis aller Klassen und Methoden in der Skript-DOM von InDesign Server? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Wie rufe ich mein eigenes Zusatzmodul von der InDesign Server-Java-API aus auf? . . . . . . . 32 Kann ich mit InDesign Server kommunizieren, wenn ich es weder für SOAP noch für CORBA starte? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Wie gebe ich einen Wert von meinem Skript an den SOAP-Client zurück? . . . . . . . . . . . . . 33 4 Einführung in Adobe InDesign CS5 Server Einführung in Adobe InDesign CS5 Server Terminologie Einführung in Adobe InDesign CS5 Server In diesem Dokument erhalten Sie einen Überblick über Adobe® InDesign® Server. Es wird beschrieben, wie InDesign Server in einer einfachen Umgebung installiert und ausgeführt wird und wie Sie über externe Komponenten mit InDesign kommunizieren können. InDesign Server wird von Systemintegratoren und Lösungsentwicklern verwendet, um serverbasierte Lösungen für Veröffentlichungen zu erstellen. Sie können sich InDesign Server als eine InDesign-Version ohne Benutzeroberfläche vorstellen. Es ist auf der gleichen Codebasis aufgebaut wie die Desktop-Version von InDesign, wurde aber an die Serververwendung angepasst. Die Anpassung beinhaltet den Support mehrerer Instanzen, Fehlererfassung und -protokollierung sowie Kommunikation über SOAP und CORBA. Wie das Desktop-Gegenstück bietet InDesign Server eine funktionsreiche Entwicklungsumgebung. Die Software unterstützt offene Standards, wie z. B. XML, und ist hochgradig skriptfähig und erweiterbar. InDesign Server kann durch Verwendung der APIs in den SDKs der InDesignProdukte und InDesign Server erweitert werden. Diese APIs können verwendet werden, um C++Zusatzmodule, Java™-Komponenten, JavaScript-Skripten, AppleScript-Skripten und VBScriptSkripten zu erstellen. Terminologie In diesem Abschnitt finden Sie eine Definition der Begriffe, die in diesem Dokument verwendet werden: z Ant – Another Neat Tool, ein auf Java basierendes Programmierungswerkzeug. z Client – Ein Modul, das Dienste von einem Server in einem verteilten Computersystem anfordert. z CORBA – Common Object Request Broker Architecture, ein sprachunabhängiges, verteiltes Objektmodell. z COM – Component Object Model, eine Technologie, die das Zusammenspiel von Anwendungen und Komponenten fördert. z IDS – InDesign Server. z IOR-Datei – Interoperable Object Reference-Datei. Diese wird von CORBA und den Clients verwendet, um ein Objekt im CORBA-Objektmodell zu identifizieren. z IPv6 – Internet Protocol Version 6, der Nachfolger von IPv4. IPv6 wird von InDesign CS4 Server und höher unterstützt. z Auftragswarteschlange – Ein Mechanismus, der abgeschickte Aufträge in Warteschlangen stellt, sie asynchron ausführt und eine Möglichkeit bietet, den Auftragsstatus später zu prüfen. z Lastverteilung – Das Verteilen von Aufträgen auf mehrere Instanzen und Server je nach Verfügbarkeit. z LBQ – Eine Add-On-Komponente, die bei InDesign CS5 Server neu eingeführt wurde und für mehrere IDS-Instanzen Aufträge in Warteschlangen stellt und Lastverteilung durchführt. Einführung in Adobe InDesign CS5 Server 5 Einführung in Adobe InDesign CS5 Server Roadmap z ORB – Object Request Broker, ein Softwareelement, von dem das CORBA-Objektmodell implementiert wird. z <SDK> – Der Pfad, unter dem Sie das InDesign Server-SDK installiert haben. z Server – Der Dienstleister in einem verteilten Computersystem. z Shell-Fenster – Ein Befehlszeilen-Fenster. Unter Windows® verwenden Sie die Eingabeaufforderung (im Ordner „Zubehör“ des Startmenüs). Unter Mac OS® verwenden Sie das Dienstprogramm „Terminal“ (in „/Programme/Dienstprogramme“). z SOAP – Simple Object Access Protocol, ein XML-basiertes Protokoll für den Austausch von Meldungen zwischen Programmen und Plattformen. InDesign Server unterstützt verschiedene Versionen von SOAP: die branchenüblichen SOAP-Versionen 1.1 und 1.2 (RPC und doc/lit) und WSDL 1.1. z WSDL – Web Service Description Language, ein XML-basiertes Format zur Beschreibung, wie auf einen Webdienst zugegriffen werden kann und welche Vorgänge dieser durchführt. Roadmap Die nachfolgenden Abschnitte beschreiben das Arbeiten mit und Erweitern von InDesign Server. Dokumentation Die SDKs von InDesign Server und InDesign-Produkten enthalten Dokumentation und Beispielcode, die das Erweitern von InDesign Server erklären und veranschaulichen. Beide SDKs können von adobe.com heruntergeladen werden. Die in diesem Dokument genannten Dokumente sind in den SDKs zu finden. Skripte Wie InDesign bietet InDesign Server Skriptsupport für JavaScript, AppleScript und VBScript. Schreiben eines Skripts Wenn Sie lernen möchten, InDesign Server-Skripten zu schreiben, lesen Sie die folgenden Dokumente: 6 z Adobe InDesign CS5 Scripting Tutorial z Adobe InDesign CS5 Scripting Guide z Adobe InDesign CS5 Server Scripting Guide z Außerdem können Sie über das Hilfemenü in Adobe ExtendScript Toolkit CS5 auf den InDesign CS5 Object Model Viewer zugreifen. Einführung in Adobe InDesign CS5 Server Roadmap Ausführen eines Skripts InDesign Server stellt eine einzige SOAP-Methode bereit, RunScript, über die ein Skript an InDesign Server gesendet wird. Die Installation von InDesign Server umfasst einen einfachen SOAP-Client, SampleClient, den Sie zur Ausführung von Skripten verwenden können. Siehe „Verwenden von SampleClient zum Ausführen eines InDesign Server-Skripts“ auf Seite 21. SampleClient wurde in C++ programmiert. Sein Quellcode und entsprechende Projektdateien sind im Produkt-SDK von InDesign enthalten. Das InDesign Server-SDK umfasst andere Client-Projekte, die in verschiedenen Sprachen programmiert sind, darunter Java, C#, PHP, VB.NET und Flex. Java Schreiben einer Java-Komponente InDesign Server bietet eine Java-API, die über CORBA mit InDesign Server kommuniziert. Weitere Informationen finden Sie unter „Integration von InDesign Server über Java“ auf Seite 24 und Working with Adobe InDesign CS5 Server Java. C++ Schreiben eines C++-Zusatzmoduls InDesign Server ist in C++ geschrieben und bietet Support für C++-Zusatzmodule, die mit der InDesign C++-API entwickelt wurden. Weitere Informationen finden Sie unter „Integration mit InDesign Server über ein Zusatzmodul“ auf Seite 26, Adobe InDesign CS5 Programming Guide und Adobe InDesign CS5 Server Plug-in Techniques. Aufrufen eines Zusatzmoduls von einem Skript oder von Java aus Um ein Zusatzmodul von einem Skript oder von Java aus aufzurufen, muss das Zusatzmodul skriptfähig sein. Weitere Informationen finden Sie im Kapitel „Scriptable Plug-in Fundamentals“ im Adobe InDesign CS5 Programming Guide. Um ein Zusatzmodul von Java aus aufzurufen, müssen Sie außerdem die Java-API-JAR-Datei (InDesignServerAPI.jar) und das CORBA-Zusatzmodul wie im Dokument Regenerating the Adobe InDesign CS5 Server Java API beschrieben neu generieren. COM InDesign Server veröffentlicht eine COM-Typenbibliothek, mit der COM-Komponenten mit Schnittstelle zu InDesign Server entwickelt werden können. COM-Komponenten können in verschiedenen Programmiersprachen entwickelt werden. In diesem Dokument unter „Integration mit InDesign Server über COM (nur Windows)“ auf Seite 27 wird kurz auf die Verwendung von Visual Basic und C# eingegangen. Einführung in Adobe InDesign CS5 Server 7 Einführung in Adobe InDesign CS5 Server Installieren von InDesign Server Windows-Dienst Sie können InDesign Server über einen Windows-Dienst verwalten. Um den Dienst verwenden zu können, müssen Sie zunächst InDesignServerService installieren (siehe „Installieren des InDesign Server Windows-Dienstes (nur Windows)“ auf Seite 10). Sie können dann InDesignServerService mit dem InDesign Server Microsoft Management Console-SnapIn konfigurieren. launchd-Daemon Unter Mac OS können Sie InDesign Server über einen launchd-Daemon verwalten. Anweisungen zur Konfiguration eines Daemons finden Sie unter „Konfigurieren eines launchd-Daemons für InDesign Server unter Mac OS“ auf Seite 18. Leistung und Skalierbarkeit Dokumentation zu Leistung und Skalierbarkeit von InDesign Server sowie entsprechende Werkzeuge finden Sie im InDesign Server-SDK. Installieren von InDesign Server Bevor Sie InDesign Server installieren, überprüfen Sie Ihr System, um sicherzustellen, dass es den relevanten Anforderungen entspricht. Führen Sie dann das Installationsprogramm aus, das vom ESD (Electronic Software Download; Elektronisches Software-Downloadprogramm) zur Verfügung gestellt wird. Nach der Installation können Sie InDesign Server von der Befehlszeile ausführen (wie unter „Ausführen von InDesign Server“ auf Seite 11 beschrieben). Beachten Sie, dass die Eingabe der Seriennummer für InDesign Server beim ersten Start über die Befehlszeile durch Übergabe des Arguments „-serialnumber“ erfolgt. Systemanforderungen Eine detaillierte Auflistung der Systemanforderungen für InDesign Server finden Sie in der Datei „Bitte lesen“ der Anwendung. Wenn Sie den InDesign Server Windows-Dienst ausführen möchten, ist Microsoft .NET Framework Version 2.0 oder höher erforderlich. Wenn Sie in Java programmieren und auf die InDesign Server Java-API zugreifen, ist das JDK (Java Development Kit) 1.6.0 oder höher erforderlich. 8 Einführung in Adobe InDesign CS5 Server Installieren von InDesign Server Ausführen des Installationsprogramms Sobald Sie das InDesign Server-ESD heruntergeladen und extrahiert haben, können Sie das Installationsprogramm ausführen, indem Sie auf das Symbol des Programms doppelklicken. Folgen Sie den Anweisungen auf dem Bildschirm. Während der Installation können Sie festlegen, wo Sie InDesign Server installieren möchten, oder den Standardspeicherort verwenden. Unter einer 64-Bit-Edition von Windows wird standardmäßig die 64-Bit-Version von InDesign Server installiert. Sie können aber auch die 32-Bit-Version von InDesign Server installieren. Unter einem 32-Bit-Betriebssystem kann nur die 32-Bit-Version von InDesign Server installiert werden. CJK-Funktionssatz InDesign Server führt den Textsatz auf der Grundlage des aktivierten Funktionssatzes durch: Latein (Englisch) oder Japanisch (CJK). Unter Windows wird der aktivierte Funktionssatz über die Registrierungseinstellungen festgelegt. Unter Mac OS gibt es für beide Funktionssätze jeweils eine separate Anwendung. Beim Installieren von InDesign Server auf einer englischen Version von Windows wird standardmäßig der Funktionssatz „Latein“ verwendet. Beim Installieren von InDesign Server beispielsweise auf einer chinesischen Version von Windows wird standardmäßig der Funktionssatz „CJK“ verwendet. Wenn beim Installieren von InDesign Server auf einer englischen Version von Windows Chinesisch als Installationssprache gewählt wird, wird standardmäßig der Funktionssatz „CJK“ verwendet. Sie können den Standard-Funktionssatz ändern, indem Sie regedit ausführen und die folgenden Schlüssel ändern. (Passen Sie die Versionsnummer entsprechend an.) 32-Bit-Anwendung unter 32-Bit-Windows: HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\InDesign Server\<version> 64-Bit-Anwendung unter 64-Bit-Windows: HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\InDesign Server\<version> 32-Bit-Anwendung unter 64-Bit-Windows: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Adobe\InDesign Server\<version> Setzen Sie den Schlüssel für die Funktionssatz-Ländereinstellung auf 400 (Latein) bzw. 401 (CJK). Die Einstellung ist nach dem nächsten Start von InDesign Server aktiviert. Firewalls Alle Firewalls, die zwischen dem Computer (Server) mit InDesign Server und den Clients des Servers bestehen, müssen entsprechend konfiguriert werden, damit die Clients Verbindungen zum Server herstellen können. Weitere Informationen finden Sie in der Dokumentation zu der Firewall. Sie können sich jedoch auch an Ihren Netzwerk-Systemadministrator wenden. Einführung in Adobe InDesign CS5 Server 9 Einführung in Adobe InDesign CS5 Server Installieren von InDesign Server Installieren des InDesign Server Windows-Dienstes (nur Windows) Der InDesign Server Windows-Dienst überwacht angegebene Instanzen von InDesign Server und startet sie neu, wenn sie beendet werden oder der Computer neu gestartet wird. Er leitet InDesign Server-Meldungen zum Windows-Ereignisprotokoll weiter und ermöglicht so ein lokales und externes Abrufen der Meldungen. Instanzen von InDesign Server können mit einem Benutzernamen und einem Kennwort, die sich von denen des aktuellen Computerbenutzers unterscheiden, konfiguriert werden. Der InDesign Server Windows-Dienst kann entweder mit dem InDesign Server-Installationsprogramm oder über die Befehlszeile installiert werden. Wenn Sie das Installationsprogramm verwenden, führen Sie einfach das InDesign Server-Installationsprogramm aus und wählen Sie die entsprechende Option, um die Dienst-Dateien für InDesign Server zu installieren. Bei einer Installation über die Befehlszeile wechseln Sie zu dem Ordner, in dem Sie InDesign Server installiert haben, und führen Sie folgenden Befehl aus: InDesignServerService /install Um den InDesign Server Windows-Dienst mit Hilfe der Befehlszeile zu deinstallieren, wechseln Sie zum Ordner von InDesign Server und führen Sie folgenden Befehl aus: InDesignServerService /install /u Die zweite Komponente des InDesign Server Windows-Dienstes ist das InDesign ServerService Management Console-Snap-In. Bei der Installation des Dienstes über das InDesign Server-Installationsprogramm wird das Snap-In automatisch installiert. Bei der Installation des Dienstes über die Befehlszeile muss das Snap-In manuell installiert werden. Gehen Sie dazu wie nachfolgend beschrieben vor. Um das Snap-In auf einem 32-Bit-Computer zu installieren, führen Sie folgenden Befehl aus: regsvr32 InDesignServerMMC.dll Auf einem 64-Bit-Computer führen Sie folgenden Befehl aus: regsvr64 InDesignServerMMC64.dll Die Deinstallation des InDesignServerMMC-Snap-In entspricht im Wesentlichen der Installation, jedoch ist ein zusätzliches Befehlszeilenargument erforderlich: regsvr32 InDesignServerMMC.dll /u — oder — regsvr64 InDesignServerMMC.dll /u Informationen zur Konfiguration des Snap-In finden Sie unter „Konfigurieren des InDesign Server Windows-Dienstes“ auf Seite 16. Installieren des InDesign Server-SDK Das InDesign Server-SDK enthält Beispiele, Skripten und Dokumentation für InDesign Server. Das InDesign Server-SDK kann von adobe.com heruntergeladen werden. Sie können den Ordner mit dem SDK nach dessen Einrichtung verschieben. 10 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server Ausführen von InDesign Server Sie können InDesign Server von der Befehlszeile oder von einem anderen Programm oder Skript aus starten. Bei allen Methoden können Sie Befehlszeilenargumente verwenden, die steuern, wie InDesign Server ausgeführt und konfiguriert wird. InDesign Server-Argumente Mit den InDesign Server-Befehlszeilenargumenten lassen sich verschiedene Aspekte von InDesign Server konfigurieren. Die Befehlszeile hat folgende Syntax (die Argumente werden in Tabelle 1 beschrieben): InDesignServer [argumente] TABELLE 1 Befehlszeilenargumente für InDesign Server Argument Beschreibung -configuration name Optional. Legt den Konfigurationsnamen für diese Instanz von InDesign Server fest. name muss ein im aktuellen System gültiger Ordnername sein. Dieser wird von InDesign Server verwendet, um den Konfigurationsordner zu erstellen, in dem private Daten, Cache- und Konfigurationsdateien abgelegt werden. Der Standardname lautet „configuration_noport“ oder „configuration_n“, wobei „n“ der Anschlussnummer (bei angegebenem Argument „-port“) entspricht. Speicherort des Konfigurationsordners: Unter Windows: C:\Dokumente und Einstellungen\<benutzername>\Anwendungsdaten\ Adobe\InDesign Server\<version>\<sprache>\ Unter Windows Vista und Windows Server 2008: C:\Users\<username>\AppData\Roaming\Adobe\InDesign Server\<version>\<sprache>\ Beim Ausführen mit dem Windows-Dienst wird der Konfigurationsordner hier erstellt: Unter Windows: C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\ Adobe\InDesign Server\<version>\<sprache>\ Unter Windows Vista und Windows Server 2008: C:\ProgramData\Adobe\InDesign Server\<version>\<sprache>\ Unter Mac OS wird der Konfigurationsordner hier erstellt: /Users/<benutzername>/Library/Preferences/Adobe InDesign Server/<version>/<sprache>/ Einführung in Adobe InDesign CS5 Server 11 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server 12 Argument Beschreibung -[no]console Optional. Nur Windows. Dies erstellt ein neues Konsolenfenster (eine BefehlsShell) und leitet „stderr“ und „stdout“ dorthin um. Wenn „-noconsole“ angegeben ist, werden „stdout“ und „stderr“ an das Terminal (bzw. Fenster) gesendet, in dem InDesign Server gestartet wurde. Dieses Argument ist nützlich, wenn der Microsoft Visual Studio-Debugger verwendet wird, um ein InDesign ServerZusatzmodul, das Sie entwickeln, zu debuggen, weil der Debugger standardmäßig Daten, die in „stderr“ und „stdout“ ausgegeben werden, verwirft. Dies kann auch nützlich sein, wenn InDesign Server aus einer anderen Anwendung, wie z. B. einem Anwendungsserver, gestartet wird. Dieses Argument kann nur mit InDesignServer.exe verwendet werden, nicht mit InDesignServer.com. Die Standardeinstellung ist „-noconsole“. -[no]errorlist Optional. Steuert, ob InDesign Server Skriptfehler aus SOAP-Aufrufen im Speicher speichern soll. Die Fehlerliste wird nicht automatisch gelöscht. Wenn die zulässige Anzahl von Fehlern überschritten ist, gehen neue Fehler verloren. Die Standardeinstellung ist „-noerrorlist“. -help Optional. Zeigt kurze Beschreibungen aller Argumente an. -iorfile filepath Für Java/CORBA erforderlich, ansonsten optional. Dieses Argument teilt InDesign Server mit, in welchen Ordner die Datei geschrieben werden soll, die die IOR des Anwendungsobjekts enthält. Die IOR in dieser Datei wird von einem Client verwendet, um einen Verweis auf das Anwendungsobjekt von InDesign Server zu erstellen. Sie können sich dies als Cookie vorstellen, den der ClientCode verwendet, um auf das Anwendungsobjekt von InDesign Server zuzugreifen. Alle Serverinstanzen benötigen eine eindeutige IOR-Datei. Mehrere Clients greifen auf einen bestimmten Server zu, indem sie die IOR-Datei für diesen Server verwenden. Die IOR wurde in die angegebene Datei geschrieben, wenn InDesign Server folgende Meldung ausgibt: „[server] Writing IOR to ...“ -LogToApplicationEventLog Optional. Unter Windows leitet dieses Argument die Konsolenausgabe von InDesign Server in das Anwendungsprotokoll der Windows-Ereignisanzeige um. Die Ausgabe kann in der Ereignisanzeige der Computerverwaltung angezeigt werden. Unter Mac OS sollte dieses Argument verwendet werden, wenn InDesign Server als launchd-Daemon genutzt wird. Die Ausgabe kann mit dem Dienstprogramm „Konsole“ angezeigt werden. -maxerrors number Optional. number legt die maximale Anzahl von Skriptfehlern aus SOAPAufrufen fest, die InDesign Server im Speicher speichern soll. Der Standardwert ist 10.000. -pluginpath path[,path] Für Java/CORBA erforderlich, ansonsten optional. Dieses Argument weist den Server an, sämtliche Zusatzmodule im angegebenen Ordner und den entsprechenden Unterordnern zu laden. Durch Angabe des installierten Unterverzeichnisses „server/corba“ wird das CORBA-Zusatzmodul für InDesign Server geladen und aktiviert. path bezeichnet einen relativen Pfad zum InDesign Server-Installationsordner (z. B. verweist „Server/Corba“ auf den Ordner „C:\Programme\Adobe\Adobe InDesign CS5 Server\Server\Corba“). Verwenden Sie keinen absoluten Pfad. Das CORBA-Zusatzmodul wurde geladen, wenn InDesign Server folgende Meldung ausgibt: „[server] ApplicationIOR: ...“ Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server Argument Beschreibung -port number Für SOAP erforderlich, ansonsten optional. Dies ist die Anschlussnummer, die InDesign Server verwendet, um SOAP-Anforderungen von Client-Anwendungen zu bearbeiten. Wenn keine Nummer festgelegt ist, wird kein Anschluss verwendet und SOAP-Anforderungen können nicht verarbeitet werden. Allen Instanzen von InDesign Server, die auf dem gleichen System ausgeführt werden, muss jeweils eine eindeutige Anschlussnummer zugewiesen sein, wenn SOAP aktiviert wird. Die Anschlussnummer muss eine positive ganze Zahl sein. -[no]previews Optional. Legt fest, ob beim Import von Bildern Vorschaubilder erstellt werden sollen. Die Standardeinstellung ist „-nopreviews“. -[no]seh Optional. Nur Windows. Legt fest ob SEH (Structured Exception Handling, strukturierte Handhabung von Ausnahmen) verwendet werden soll. Die Standardeinstellung ist „-seh“. -[no]sendcrashlogs Nur Mac OS. Sendet automatisch Protokolle von Abstürzen an Adobe. Die Standardeinstellung ist „-nosendcrashlogs“. -serialnumber number Gibt die Seriennummer für die Anwendung ein. Dieses Argument muss nur ein Mal zum Freigeben der Anwendung verwendet werden. Starten von InDesign Server von der Befehlszeile aus 1. Öffnen Sie in dem System, auf dem InDesign Server installiert ist, ein neues Shell-Fenster. Verwenden Sie unter Windows die Eingabeaufforderung, unter Mac OS das Dienstprogramm „Terminal“. 2. Wechseln Sie in den Ordner, in dem InDesign Server installiert ist. Unter Windows enthält der Ordner die Anwendung „InDesignServer.com“. Unter Mac OS enthält der Ordner das Anwendungspaket „InDesignServer.app“. Beispiel: Windows: cd "c:\Programme\Adobe\Adobe InDesign CS5 Server\" Mac OS: cd '/Applications/Adobe InDesign CS5 Server/' 3. Führen Sie den folgenden Befehl aus. (Unter Windows wird standardmäßig „InDesignServer.com“ ausgeführt. Es richtet Pfade ein und führt „InDesignServer.exe“ aus.) InDesignServer 4. InDesign Server zeigt seine Startmeldungen im Shell-Fenster an. Wenn InDesign Server bereit ist, wird die Meldung „[server] Server Running“ angezeigt. Während InDesign Server ausgeführt wird, werden Meldungen und Fehler im Shell-Fenster angezeigt, sodass Sie das Fenster verwenden können, um InDesign Server zu überwachen. Einführung in Adobe InDesign CS5 Server 13 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server Starten von InDesign Server für die Verwendung mit SOAP Wenn in Ihrem Workflow Skripten zur Kommunikation mit InDesign Server zum Einsatz kommen, umfasst der Workflow vermutlich auch das Übermitteln der Skripten an InDesign Server über SOAP. Damit die Kommunikation mit InDesign Server über SOAP möglich ist, müssen Sie beim Starten von InDesign Server das Argument „-port“ angeben. Im folgenden Beispiel müssen Sie „12345“ durch die tatsächliche Anschlussnummer ersetzen. InDesignServer -port 12345 Unter den Startmeldungen von InDesign Server sollte auch folgende Meldung angezeigt werden: „[soap] Servicing SOAP requests on port 12345.“ Dies weist darauf hin, dass InDesign Server zum Empfangen von SOAP-Anforderungen bereit ist. Starten von InDesign Server für die Verwendung mit CORBA Wenn in Ihrem Workflow Java zur Kommunikation mit InDesign Server verwendet wird, müssen Sie InDesign Server für die Verwendung mit CORBA starten. Die InDesign Server-JavaAPI verwendet das Corba Support-Zusatzmodul, um mit InDesign Server zu kommunizieren. Diese Kommunikation wird durch die Verwendung einer Textdatei erleichtert, die eine IORZeichenfolge zur eindeutigen Identifizierung eines Objekts in CORBA enthält. Sobald die InDesign Server-Instanz initialisiert ist, schreibt sie die IOR für das Anwendungsobjekt in die angegebene Textdatei. Durch Verwenden der IOR in der IOR-Datei kann ein Client ein Proxyobjekt für das Anwendungsobjekt von InDesign Server instanziieren. Um InDesign Server für die Verwendung mit CORBA zu starten, fügen Sie der Befehlszeile die Argumente -iorfile und -pluginpath hinzu. Der mit -pluginpath festgelegte Pfad ist relativ zum Installationsordner von InDesign Server. Beim Starten erstellt InDesign Server die angegebene Textdatei und schreibt die IOR seiner Anwendung in diese Datei. Für den Dateipfad müssen Zugriffsrechte zum Schreiben vorliegen. Ersetzen Sie im folgenden Beispiel „c:\ior.txt“ (Windows) bzw. „~/ior.txt“ (Mac OS) durch den gewünschten Dateipfad. Windows: InDesignServer -iorfile c:\ior.txt -pluginpath Server\Corba Mac OS: InDesignServer -iorfile ~/ior.txt -pluginpath Server/Corba Unter den Startmeldungen von InDesign Server sollten auch folgende Meldungen angezeigt werden: „[server] ApplicationIOR:...“ „[server] Writing IOR to ...“ Diese weisen darauf hin, dass InDesign Server zum Empfangen von CORBA-Befehlen bereit ist und dass Sie über die angegebene Datei auf die Anwendungs-IOR von InDesign Server zugreifen können. 14 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server Starten von einem anderen Programm oder Skript aus InDesign Server kann als Prozess von einem anderen Programm oder Skript aus gestartet werden. Beachten Sie unter Windows, dass InDesign Server in der Regel über „InDesignServer.com“ statt über „InDesignServer.exe“ ausgeführt wird. Die .com-Version unterscheidet sich von der .exe-Version darin, dass sie die erforderlichen Pfade zum omniorbOrdner einrichtet, der von der InDesign Server-CORBA-Implementierung benötigt wird. Die .exe-Version richtet diese Pfade nicht ein. Daher müssen Sie den omniorb-Ordner u. U. manuell zur Umgebungsvariablen „PATH“ hinzufügen, bevor Sie „InDesignServer.exe“ starten. Ausführen mehrerer InDesign Server-Instanzen Wenn Ihre Site ein hohes Aufkommen an InDesign Server-Anforderungen hat, können Sie den Durchsatz erhöhen, indem Sie mehrere Instanzen von InDesign Server auf dem gleichen System ausführen. Als allgemeine Faustregel für die maximale Anzahl von InDesign ServerInstanzen auf einem Computer addieren Sie den Wert 1 zu der Anzahl von Prozessoren auf dem Computer. Weitere Informationen finden Sie unter Adobe InDesign Server CS5 Performance and Scalability im InDesign Server-SDK. Um mehrere Instanzen auszuführen, müssen Sie jeder Instanz einen eindeutigen Konfigurationsnamen geben. Verwenden Sie dazu das Argument -configuration und legen Sie für jede Instanz einen eindeutigen Namen fest. Wenn Sie InDesign Server von der Befehlszeile aus ausführen, müssen Sie jede Instanz in einem eigenen Fenster ausführen. Starten Sie von einem Shell-Fenster aus die erste Instanz, indem Sie folgende Zeile ausführen: InDesignServer -configuration myIDS1 Öffnen Sie dann ein neues Shell-Fenster und führen Sie folgende Zeile für die zweite Instanz aus: InDesignServer -configuration myIDS2 Ausführen mehrerer Instanzen über SOAP Wenn Sie Anwendungen nutzen, die über SOAP mit InDesign Server kommunizieren, müssen Sie jeder Instanz von InDesign Server eine eindeutige Anschlussnummer zuweisen. In den folgenden Beispielen müssen Sie das Argument -configuration nicht festlegen, da InDesign Server einen Konfigurationsnamen auf der Grundlage des angegebenen Anschlusses erstellt (siehe „InDesign Server-Argumente“ auf Seite 11). Die folgenden Beispiele erstellen die Konfigurationsnamen „Konfiguration_18383“ und „Konfiguration_18555“. Die erste Instanz wird mit der folgenden Befehlszeile ausgeführt: InDesignServer -port 18383 Eine zweite Instanz wird mit der folgenden Befehlszeile ausgeführt: InDesignServer -port 18555 Optional können Sie jeder Instanz einen eindeutigen Konfigurationsnamen geben, allerdings ist für die Verwendung von SOAP immer noch eine eindeutige Anschlussnummer erforderlich. Beispiel: InDesignServer -configuration myIDS3 -port 18777 Einführung in Adobe InDesign CS5 Server 15 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server Ausführen mehrerer Instanzen über CORBA Wenn Sie Anwendungen nutzen, die über Java/CORBA mit InDesign Server kommunizieren, müssen Sie jeder Instanz in InDesign Server eine eigene IOR-Textdatei und einen eigenen Konfigurationsnamen zuweisen. Die folgenden Beispiele erstellen eindeutige IOR-Textdateien und Konfigurationsnamen für jede Instanz. Unter Windows wird die erste Instanz mit der folgenden Befehlszeile ausgeführt: InDesignServer -configuration myIDS1 -iorfile c:\IDS\ior_1.txt -pluginpath Server/Corba Eine zweite Instanz wird mit der folgenden Befehlszeile ausgeführt: InDesignServer -configuration myIDS2 -iorfile c:\IDS\ior_2.txt -pluginpath Server/Corba Unter Mac OS wird die erste Instanz mit der folgenden Befehlszeile ausgeführt: InDesignServer -configuration myIDS1 -iorfile /IDS/ior_1.txt -pluginpath Server/Corba Eine zweite Instanz wird mit der folgenden Befehlszeile ausgeführt: InDesignServer -configuration myIDS2 -iorfile /IDS/ior_2.txt -pluginpath Server/Corba Beenden von InDesign Server Es gibt mehrere Möglichkeiten zum Beenden von InDesign Server: z Drücken Sie im Fenster der Eingabeaufforderung (bzw. „Terminal“ unter Mac OS), in dem InDesign Server gestartet wurde, die Tastenkombination Strg+C (Windows) bzw. Ctrl+C (Mac OS). z Senden Sie ein Skript an InDesign Server, das InDesign Server über das quit-Ereignis der Anwendung beendet. Im folgenden JavaScript-Beispiel wird InDesign Server beendet, ohne geöffnete Dokumente zu speichern: app.quit(SaveOptions.no); z Wenn die InDesign Server-Instanz über den InDesign Server Windows-Dienst gestartet wurde, können Sie den Dienst anhalten und so sämtliche Instanzen von InDesign Server beenden, die über diesen Dienst gestartet wurden. Konfigurieren des InDesign Server Windows-Dienstes Der InDesign Server Windows-Dienst kann über die Kategorie „Dienste“ der WindowsComputerverwaltung gestartet, angehalten und konfiguriert werden. Diese kann gestartet werden, indem Sie entweder mit der rechten Maustaste auf „Arbeitsplatz“ > „Verwalten“ klicken oder im Startmenü „Verwaltung“ > „Computerverwaltung“ wählen. Wählen Sie im Dialogfeld „Computerverwaltung“ zunächst „Dienste und Anwendungen“ und dann „Dienste“. Doppelklicken Sie in der Liste der Dienste auf „InDesignServerService“. Dadurch wird ein Eigenschaften-Dialogfeld geöffnet, in dem Sie den Dienst starten, beenden oder anhalten und die Anmeldung sowie die Startmethode des Dienstes ändern können. 16 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server Microsoft empfiehlt, auf der Registerkarte „Anmelden“ eine Einstellung mit möglichst eingeschränkten Rechten zu wählen, ohne dass die Funktionalität des Dienstes beeinträchtigt wird. Der Dienst muss mindestens über Lese- und Schreibzugriff auf den Ordner „Dokumente und Einstellungen“ sowie auf den Pfad mit den Dokumenten verfügen, über die der Server gesteuert wird. Außerdem muss er in der Lage sein, einen Anschluss zu öffnen und Registrierungseinstellungen zu lesen. „Lokales Systemkonto“ verfügt über weitreichendere Rechte als das Benutzerkonto „LocalService“. Daher sollten Sie zunächst versuchen, „dieses Konto“ auf „LocalService“ zu setzen (z. B. „NT AUTHORITY\LocalService“). Auf der Registerkarte „Wiederherstellen“ sollten Sie die Einstellung „Keine Aktion durchführen“ beibehalten. So haben Sie auch weiterhin die Möglichkeit, den Dienst neu zu starten, falls er abstürzt. Wenn der Dienst ordnungsgemäß funktioniert, hat er bereits Instanzen von InDesign Server mit den angegebenen Anschlüssen/Konfigurationen gestartet. Wenn der Dienst dann abstürzt und die Instanzen von InDesign Server weiterhin aktiv sind, versucht die neue Instanz des Dienstes, neue Instanzen von InDesign Server zu starten. Dies schlägt aber fehl, da die Anschlüsse/Konfigurationen bereits verwendet werden. Diese Einstellungen haben keinen Einfluss darauf, wie der Dienst reagiert, wenn Instanzen von InDesign Server abstürzen. Dieses Verhalten wird über die Registrierungseinstellungen „MaximumFailureCount“, „MaximumFailureIntervalInMinutes“ und „TrackFailures“ unter „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InDesignCS5ServerWinS ervice“ konfiguriert. InDesign Server Console Management-Snap-In Die zweite Komponente des Windows-Dienstes ist das InDesign Server Console ManagementSnap-In. Um das Snap-In einer Verwaltungskonsole hinzuzufügen, doppelklicken Sie im Installationsordner von InDesign Server auf die Datei „InDesignServerService.msc“. Sie können das Snap-In einer Verwaltungskonsole auch manuell hinzufügen. Führen Sie dazu die WindowsAnwendung „mmc.exe“ aus und wählen Sie „Datei“ > „Snap-In hinzufügen/entfernen“. Es wird eine Liste aller verfügbaren MMC-Snap-Ins angezeigt. Wenn keine Liste angezeigt wird, klicken Sie auf „Hinzufügen“. Wählen Sie „InDesignCS5ServerService“ aus der Liste, um es der aktuellen Konsole hinzuzufügen. Schließen Sie das Dialogfeld „Snap-In hinzufügen/entfernen“. Um der Konsole eine InDesign Server-Instanz hinzuzufügen, klicken Sie im linken Bereich der Konsole mit der rechten Maustaste auf „InDesignCS5ServerService“ und wählen Sie „Neu“ > „Neue InDesign Server-Instanz“. Die neue Instanz übernimmt die Ausfallparameter aus der letzten Instanz. Ihr wird eine Anschlussnummer zugewiesen, die um 1 höher ist als der höchste InDesignCS5ServerService-Instanzanschluss. Die Standardbefehlszeile ist leer. Um die Konfiguration einer Instanz anzupassen (Anschlussnummer oder Befehlszeile), doppelklicken Sie im rechten Bereich auf die Instanz. Die Befehlszeile muss wie unter „Starten von InDesign Server von der Befehlszeile aus“ auf Seite 13 beschrieben formatiert sein. Allerdings darf das Argument -port nicht angegeben werden, da es über den Anschlusseintrag definiert wird. Damit auf einem Rechner mehrere InDesign Server-Instanzen ausgeführt werden können, muss jede Instanz über einen eindeutigen Anschluss oder Konfigurationsnamen verfügen. Diese können über die Anschluss- und Befehlszeileneinstellungen für den Dienst angepasst werden. In der Regel müssen Sie nur die Anschluss- und Befehlszeileneinstellungen für den Dienst bearbeiten. Allerdings gibt es einige andere Einstellungen, die über die Registrierungseinstellungen für die Dienstinstanz geändert werden können: Einführung in Adobe InDesign CS5 Server 17 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server z MaximumFailureCount – Legt fest, wie oft der Dienst versucht, eine abgestürzte Instanz neu zu starten. z MaximumFailureIntervalInMinutes – Legt den Zeitraum für „MaximumFailureCount“ fest. InDesign Server muss öfter als MaximumFailureCount Mal innerhalb von MaximumFailureIntervalInMinutes Minuten abstürzen, bevor der Dienst die Versuche zum Neustart einstellt. z TrackFailures – ein boolescher Wert. Bei einem Wert von 1 (Standardwert) versucht der Dienst, InDesign Server neu zu starten; bei einem Wert von 0 tut er dies nicht. Um diese Einstellungen zu bearbeiten, führen Sie „regedit“ aus und rufen Sie die Schlüssel unter „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InDesignCS5ServerWinServi ce“ auf. Für jede Instanz, die über InDesignServerService.msc oder das Console Management-SnapIn konfiguriert wurde, ist jeweils ein Schlüsselsatz vorhanden (z. B. „065c361a-0cbe-4917-bf155276b1815769“). Konfigurieren eines launchd-Daemons für InDesign Server unter Mac OS InDesign Server kann unter Mac OS als Hintergrundprozess (Daemon) gestartet werden, ohne dass ein Benutzer unmittelbar eingreifen muss. Durch das Ausführen von InDesign Server als Daemon können Sie InDesign Server zeitgleich mit dem Betriebssystem starten und festlegen, wie bei einem Absturz reagiert werden soll. Um den Daemon zu konfigurieren, erstellen Sie eine Konfigurationsdatei (plist) mit den erforderlichen Einstellungen und installieren sie im gewünschten LaunchAgents- bzw. LaunchDaemons-Ordner. Die launchd-Konfigurationsdatei Erstellen Sie die launchd-Konfigurationsdatei mit einem beliebigen Editor für reinen Text und tragen Sie den XML-Inhalt wie unten beschrieben ein. Speichern Sie die Datei mit der Bezeichnung des Daemons als Dateiname und „.plist“ als Erweiterung (z. B. „com.adobe.ids.launchd.12345.plist“). Sie können plist-Dateien auch mit dem XCode-Dienstprogramm „Property List Editor“ bearbeiten, das Sie unter „Developer/Applications/Utilities“ finden. In Tabelle 2 sind die erforderlichen Einstellungen für einen InDesign Server launchd-Daemon aufgelistet. Eine vollständige Liste der launchd-Optionen finden Sie auf der man-Seite für launchd. 18 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server TABELLE 2 Daemoneinstellungen für InDesign Server Label Die eindeutige Kennung Ihres Daemons, z. B. „com.adobe.ids.launchd.12345“ OnDemand Dieser Wert muss auf false gesetzt sein, damit InDesign Server nach dem Beenden oder einem Absturz wieder gestartet werden kann. ProgramArguments Ein Array mit den beim Start der Anwendung angegebenen Argumenten als Zeichenfolgen. Das erste Element des Arrays enthält den vollständigen Pfad der Anwendung. Die übrigen Array-Elemente enthalten die Argumente, die beim Starten von InDesign Server über die Befehlszeile verwendet wurden. Um die Konsolenausgabe aus InDesign Server zu aktivieren, muss das Argument „LogToApplicationEventLog“ verwendet werden. RunAtLoad Dieser Wert ist auf true gesetzt. InDesign Server wird gestartet, wenn der Daemon beim Systemstart oder manuell über „launchctl“ geladen wird. BEISPIEL 1 XML-Format der plist-Datei Das folgende Beispiel zeigt den XML-Inhalt einer plist-Konfigurationsdatei, die in InDesign Server über SOAP mit Anschluss 12345 ausgeführt wird: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" <plist version="1.0"> <dict> <key>Label</key> <string>com.adobe.ids.launchd.12345</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/Applications/Adobe InDesign CS5 Server/InDesignServer</string> <string>-port</string> <string>12345</string> <string>-LogToApplicationEventLog</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> Einführung in Adobe InDesign CS5 Server 19 Einführung in Adobe InDesign CS5 Server Ausführen von InDesign Server Installieren der Konfigurationsdatei Um eine launchd-Konfigurationsdatei zu installieren, müssen Sie sie nur auf dem Rechner, auf dem InDesign Server ausgeführt werden soll, in den entsprechenden Ordner kopieren. Wenn Sie mehrere Instanzen von InDesign Server ausführen möchten, können Sie für jede Instanz eine separate Daemon-Konfigurationsdatei anlegen. Bei einer typischen InDesign ServerInstallation wird Mac OS X Server ohne Benutzerkonten ausgeführt. Kopieren Sie in diesem Fall die Konfigurationsdatei in den folgenden Ordner: /Library/LaunchDaemons Wenn Sie InDesign Server unter einem Benutzerkonto ausführen möchten, kopieren Sie die plist-Datei in den LaunchAgents-Ordner im Library-Ordner des Systems oder des Benutzers (möglicherweise mssen Sie den LaunchAgents-Ordner für den Benutzer zunächst erstellen): /Library/LaunchAgents /Users/<benutzername>/Library/LaunchAgents Laden des Daemons Führen Sie einen Neustart des Systems durch, nachdem Sie die plist-Datei in den LaunchAgents-Ordner kopiert haben. Der Daemon wird dann automatisch geladen. Sobald der Daemon geladen ist, wird InDesign Server unter Verwendung der Einstellungen in der plist-Datei gestartet. Geben Sie in einem Terminal-Fenster folgenden Befehl ein, um zu bestätigen, dass der Daemon geladen wurde: launchctl list Wenn die Bezeichnung Ihres Daemons aufgelistet ist, wurde er erfolgreich geladen. Um zu bestätigen, dass InDesign Server ausgeführt wurde, lassen Sie die Liste aller aktiven Prozesse mit der Aktivitäts-Anzeige auflisten. Sie können den Daemon mit Hilfe des Befehls „launchctl“ manuell laden: launchctl load /Library/LaunchDaemons/com.adobe.ids.launchd.12345.plist Entladen des Daemons Sie können den Daemon mit Hilfe des Befehls „launchctl“ manuell entladen. Beachten Sie jedoch, dass die InDesign Server-Instanz durch das Entladen des Daemons nicht ebenfalls beendet wird: launchctl unload /Library/LaunchDaemons/com.adobe.ids.launchd.12345.plist Um die InDesign Server-Instanz zu beenden, senden Sie ein entsprechendes Skript an InDesign Server oder beenden Sie den Prozess mit Hilfe der Aktivitäts-Anzeige. 20 Einführung in Adobe InDesign CS5 Server Integration von InDesign Server über SOAP Integration von InDesign Server über SOAP InDesign Server unterstützt den SOAP-Befehl RunScript, der es Ihnen ermöglicht, ein InDesign Server-Skript auszuführen. Sie können das Skript mit JavaScript, VBScript (nur Windows) oder AppleScript (nur Mac OS) schreiben. Wenn Sie RunScript aufrufen, übergibt es die Skriptdatei an InDesign Server und InDesign Server führt das Skript intern aus. Der RunScript-Befehl ist über die InDesign Server-WSDL definiert. Sie können diese WSDL mit branchenüblichen SOAP-Werkzeugen verwenden, um SOAP-Meldungspakete automatisch zu erstellen. Es gibt zwei Methoden zum Anzeigen der WSDL: z Zeigen Sie die InDesign Server-SDK-Datei „IDSP.wsdl“ an. z Greifen Sie nach dem Starten von InDesign Server über HTTP auf die WSDL zu. Verwenden Sie dazu das Argument „-port“ (z. B. „http://localhost:12345/service?wsdl“). Informationen zum Entwickeln eines SOAP-Clients, der mit InDesign Server kommuniziert, finden Sie unter Working with Adobe InDesign CS5 Server SOAP und in den „SampleClient“Beispielen des SDK. Verwenden von SampleClient zum Ausführen eines InDesign Server-Skripts InDesign Server bietet ein Beispiel für eine SOAP-Client-Anwendung: SampleClient. SampleClient ist eine Befehlszeilenanwendung, die über den InDesign Server-SOAP-Befehl RunScript ein Skript an InDesign Server sendet. Das Skript kann in JavaScript, AppleScript oder VBScript geschrieben werden. SampleClient geht von folgenden Erweiterungen aus: .applescript für AppleScript, .vbs für VBScript. Skripten mit anderen Erweiterungen werden als JavaScript interpretiert. Das SDK für InDesign-Produkte beinhaltet die Komponenten, die erforderlich sind, um SampleClient zu generieren. Die Projektdatei ist abgelegt unter <SDK>/build/<plattform>/prj, der Quellcode unter <SDK>/source/public/components/server/sampleclient. SampleClient-Befehlszeilenargumente Über die Argumente für SampleClient geben Sie das System an, auf dem InDesign Server ausgeführt wird, den Anschluss für die SOAP-Kommunikation, den Namen der auszuführenden Skript-Datei sowie an das Skript zu übergebende Argumente. Für SampleClient gilt folgende Syntax. Die Argumente sind in der folgenden Tabelle beschrieben: sampleclient [-host hostID:port] [-server] skript-pfad [argumente] [-repeat anzahl_der_wdh] [-h] Einführung in Adobe InDesign CS5 Server 21 Einführung in Adobe InDesign CS5 Server Integration von InDesign Server über SOAP TABELLE 3 SampleClient-Befehlszeilenargumente Argument Beschreibung argumente Optional. Ein oder mehrere Name/Wert-Paare, über die Argumente an das Skript übergeben werden. Das Format lautet argname=wert, wobei argname für den Namen des Arguments steht und wert für dessen Wert. Trennen Sie mehrere Argumente mit Leerzeichen. Beispiel: sampleclient -host localhost:18383 /myScript.jsx myArg="Hallo Welt" Skripten können den Argumentwert lesen, indem sie die Methode „get“ des Objekts „scriptArgs“ im Anwendungsobjekt verwenden. Mit dem folgenden Befehl wird z. B. das Argument myArg abgerufen: myArg = app.scriptArgs.get("myArg"); -h Optional. Zeigt kurze Beschreibungen dieser Argumente an. -host hostID:port Optional. Der Host, auf dem InDesign Server ausgeführt wird. hostID kann eine der folgenden Kennungen für das System sein, auf dem InDesign Server ausgeführt wird: die IP-Adresse des Systems, der Hostname des Systems (z. B. „ourhost.corp.company.com“) oder das Schlüsselwort „localhost“, wenn InDesign Server auf dem gleichen Computer ausgeführt wird wie SampleClient. Es werden sowohl IPv4- als auch IPv6-Adressen akzeptiert. port ist die Host-Anschlussnummer, die konfiguriert wurde, um SOAP-Meldungen zu empfangen. Beispiel: -host 10.0.0.1:18383 -host [fe80::405:2345:fe56:8901]:18383 Auf einem lokalen System: -host localhost:18300 -repeat 22 Optional. Bestimmt, wie oft das Skript ausgeführt werden soll. Einführung in Adobe InDesign CS5 Server Integration von InDesign Server über SOAP Argument Beschreibung skript-pfad Erforderlich. Ohne das Argument „-server“ bezeichnet skript-pfad den Pfad der Skript-Datei im lokalen Dateisystem. Dabei kann es sich um eine absolute oder eine relative Pfadangabe (relativ zum aktuellen Arbeitsverzeichnis) handeln. Wenn das Argument „-server“ verwendet wird, kann skriptpfad zwei Formate annehmen. Zum einen kann skript-pfad eine absolute Pfadangabe des Skripts auf der Grundlage des Dateisystems sein, auf dem die InDesign Server-Instanz ausgeführt werden soll. Unter Windows: C:\<mein_skript-ordner>\mySkript.jsx Unter Mac OS: ~/<mein_skript-ordner>/mySkript.jsx Zum anderen kann skript-pfad auf einer vordefinierten Pfadkonstante basieren. InDesign Server definiert zwei Pfadkonstanten: Scripts:Application und Scripts:User. Scripts:Application steht für den Skript-Ordner der Anwendung. Speicherort: Unter Windows: C:\Programme\Adobe\Adobe InDesign CS5 Server\Scripts\ Unter Mac OS: /Applications/Adobe InDesign CS5 Server/Scripts/ Scripts:User steht für den Skript-Ordner des Benutzers. Speicherort: Unter Windows: C:\Dokumente und Einstellungen\<benutzername>\Anwendungsdaten\ Adobe\InDesign Server\<version>\<sprache>\configuration_12345\Scripts\ Unter Windows Vista und Windows Server 2008: C:\Users\<benutzername>\AppData\Roaming\Adobe\<version>\<sprache>\con figuration_12345\Scripts\ Unter Mac OS: /Users/<benutzername>/Library/Preferences/Adobe InDesign Server/<version>/<sprache>/configuration_12345/Scripts Legen Sie Ihre Skript-Datei in einem der Skript-Ordner auf dem Rechner mit InDesign Server ab und übergeben Sie den entsprechenden Pfad an SampleClient. Beispiel (beachten Sie, dass Sie sowohl unter Windows als auch unter Mac OS einen Doppelpunkt (:) als Pfadtrennzeichen verwenden müssen): Scripts:Application:mySkript.jsx Scripts:User:mySkript.jsx -server Optional. Wenn dieses Schlüsselwort festgelegt ist, wird davon ausgegangen, dass skript-pfad für eine Datei auf dem Computer steht, auf dem InDesign Server ausgeführt wird. Andernfalls wird davon ausgegangen, dass skript-pfad für eine Datei auf dem lokalen Computer steht, auf dem SampleClient ausgeführt wird. Einführung in Adobe InDesign CS5 Server 23 Einführung in Adobe InDesign CS5 Server Integration von InDesign Server über Java Starten von SampleClient 1. Sie benötigen eine Skript-Datei, die von InDesign Server ausgeführt werden kann. Sie können eines der Beispielskripten des InDesign Server-SDK verwenden oder ein eigenes Skript mit Hilfe der InDesign-Skript-API schreiben. Wenn Sie ein Skript schreiben, beachten Sie, dass InDesign Server keine Benutzeroberfläche hat. Stellen Sie daher sicher, dass das Skript nicht mit Benutzeroberflächenkomponenten arbeitet. 2. Starten Sie InDesign Server für die Verwendung mit SOAP. Informationen finden Sie unter „Starten von InDesign Server für die Verwendung mit SOAP“ auf Seite 14. Notieren Sie den Host und den Anschluss, auf denen InDesign Server gestartet wird. 3. Öffnen Sie ein neues Befehlszeilenfenster (unter Windows verwenden Sie die Eingabeaufforderung, unter Mac OS das Dienstprogramm „Terminal“). 4. Ändern Sie die Verzeichnisse in den Pfad von SampleClient: Windows: cd "c:\Programme\Adobe\Adobe InDesign CS5 Server" Mac OS: cd '/Applications/Adobe/Adobe InDesign CS5 Server' 5. Führen Sie den SampleClient-Befehl mit dem entsprechenden Host, Anschluss und Skriptdateipfad aus. Beispiele: If InDesign Server is running locally: sampleclient -host localhost:18383 yourScriptPath If InDesign Server is running on a different system: sampleclient -host 192.168.1.100:18383 yourScriptPath 6. SampleClient zeigt Meldungen und den Rückgabewert für das Skript im Befehlszeilenfenster an, sodass Sie es für die Überwachung verwenden können. Integration von InDesign Server über Java InDesign Server bietet eine Java-API, die das Skript-DOM (Document Object Model) für InDesign Server offenlegt. Die Kommunikation zwischen der Java-API und dem Skript-DOM wird durch CORBA erleichtert. Wenn Sie den Java-Code ausführen, ruft die Java-API die CORBA-API auf. Die CORBA-API wiederum sendet Befehle an den InDesign Server-C++Code, der das Skript-DOM darstellt. Die InDesign Server-Java-API ist in Form einer JAR-Datei im InDesign Server-SDK enthalten. Diese JAR-Datei ist für das Kompilieren und Ausführen des InDesign Server-Java-Codes erforderlich. Die API basiert zwar auf CORBA, ist jedoch ausdrücklich für Java-Empfänger bestimmt. Informationen zum Entwickeln einer Java-Komponente, die mit InDesign Server kommuniziert, finden Sie unter Working with Adobe InDesign CS5 Server Java. 24 Einführung in Adobe InDesign CS5 Server Integration von InDesign Server über Java Schreiben einer Java-Komponente Der erste Schritt beim Zugreifen auf InDesign Server mit CORBA besteht darin, eine JavaKomponente mit Hilfe der InDesign Server-Java-API zu schreiben. Die API bietet vollen Zugriff auf das Skript-DOM für InDesign Server. Jede Komponente des Skript-DOM für InDesign Server ist als Java-Klasse implementiert. Diese Klassen werden dann in der Datei „InDesignServerAPI.jar“ kombiniert. Das InDesign Server-SDK enthält die JAR-Datei für die InDesign Server-API (<IDS SDK>/lib/InDesignServerAPI.jar) sowie viele Java-Codebeispiele (<IDS SDK>/samples/snippets), die die Verwendung der InDesign Server-Java-API veranschaulichen. Working with Adobe InDesign CS5 Server Java erklärt, wie Sie die Beispiele kompilieren und ausführen. Ausführen einer InDesign Server-Java-Anwendung Es gibt verschiedene Methoden zum Starten einer Java-Anwendung, die mit InDesign Server arbeitet: mit Hilfe des Java-Werkzeugs über die Befehlszeile, mit Hilfe einer JavaStartanwendung und mit Hilfe einer Webseite mit Java-Applet. Die folgende Methode verwendet die Befehlszeile: 1. Starten Sie InDesign Server und stellen Sie sicher, dass es so eingerichtet ist, dass es CORBA-Befehle akzeptiert. Informationen finden Sie unter „Starten von InDesign Server für die Verwendung mit CORBA“ auf Seite 14. Notieren Sie den IOR-Dateipfad, den die InDesign Server-Instanz verwendet. 2. Öffnen Sie ein neues Befehlszeilenfenster. (Unter Windows verwenden Sie die Eingabeaufforderung, unter Mac OS das Dienstprogramm „Terminal“.) 3. Verwenden Sie das Java-Werkzeug in der Befehlszeile, um den Code auszuführen. Das Argument „-classpath“ fügt die angegebenen .jar-Dateien bzw. Verzeichnisse zum Klassenpfad hinzu. Das JRE verwendet den Klassenpfad für die Suche nach Klassen, die aufgerufen werden. Das zweite Argument ist der Name der Klasse, deren Methode „main()“ Sie ausführen möchten. Wenn diese Klasse in einem Paket enthalten ist, stellen Sie das Paket dem Klassennamen voran. Im unten aufgeführten Beispiel ist es das Paket „com.adobe.ids.sdk“. Das dritte Argument, „ior.txt“, ist ein Argument zur Methode „main()“, die aufgerufen wird. In diesem Fall verwendet InDesign Server den Dateipfad zu der IOR-Datei. java -classpath "..\lib\InDesignServerAPI.jar;..\lib\samples.jar" com.adobe.ids.sdk.mySampleClass "ior.txt" Einführung in Adobe InDesign CS5 Server 25 Einführung in Adobe InDesign CS5 Server Integration mit InDesign Server über ein Zusatzmodul Integration mit InDesign Server über ein Zusatzmodul Das Entwickeln eines Zusatzmoduls für InDesign Server benötigt die gleichen grundlegenden C++- und objektorientierten Programmier- und Designkenntnisse, wie das Entwickeln von Zusatzmodulen für InDesign. Da InDesign Server keine Benutzeroberfläche hat wie sein Desktop-Gegenstück, müssen viele besondere Aspekte berücksichtigt werden, wenn ein neues Zusatzmodul erstellt oder ein vorhandenes InDesign-Zusatzmodul für die Verwendung in InDesign Server portiert wird. Adobe InDesign CS5 Server Plug-in Techniques beschreibt, wie Zusatzmodule geschrieben werden, die sicher in der InDesign Server-Umgebung ausgeführt werden können. In diesem Dokument wird außerdem die Entwicklung von 64-Bit-Zusatzmodulen erläutert. Damit vorhandene Zusatzmodule unter InDesign Server x64 ausgeführt werden können, müssen Sie sie in eine 64-Bit-Version umwandeln. Sie können 32-Bit-Zusatzmodule auf einem 64-Bit-Rechner verwenden, indem Sie die 32-Bit-Version von InDesign CS5 Server ausführen. 32-Bit-Anwendungen können im Emulationsmodus „WOW64 (Win32 On Win64)“ auf 64-BitPlattformen ausgeführt werden. Das Ausführen von 64-Bit-Anwendungen auf 32-BitPlattformen ist dagegen nicht möglich. Um über Skripten oder Java mit dem Zusatzmodul zu kommunizieren, müssen Sie das Modul skriptfähig machen. Weitere Informationen finden Sie im Kapitel „Scriptable Plug-in Fundamentals“ im Adobe InDesign CS5 Programming Guide. Hier wird erklärt, wie Sie die API des Zusatzmoduls durch das Skript-DOM darstellen können. Wenn Sie auf das Zusatzmodul von einer Java-Komponente aus zugreifen möchten, müssen Sie sowohl die Datei „InDesignServerAPI.jar“ als auch die InDesign Server-CORBA-SupportZusatzmodul-Datei neu generieren. Durch die Neugenerierung dieser Dateien werden diesen Komponenten die Funktionen des Zusatzmoduls hinzugefügt. Der Prozess zur Neugenerierung der Java-API-JAR-Datei und des CORBA-Support-Zusatzmoduls wird im Dokument Regenerating the Adobe InDesign CS5 Server Java API erklärt. Beachten Sie, dass im InDesign Server-SDK nur eine Version der Datei „InDesignServerAPI.jar“ enthalten ist, die sowohl die 64-Bit- als auch die 32-Bit-Version von InDesign Server unterstützt. 26 Einführung in Adobe InDesign CS5 Server Integration mit InDesign Server über COM (nur Windows) Integration mit InDesign Server über COM (nur Windows) InDesign Server veröffentlicht eine COM-Typenbibliothek, mit der COM-Komponenten mit Schnittstelle zu InDesign Server entwickelt werden können. Die Typenbibliothek enthält Definitionen von Klassen, Methoden und Konstanten des Skript-DOM für InDesign Server. InDesign Server basiert auf Zusatzmodulen, daher ist das Skript-DOM davon abhängig, welche Zusatzmodule beim Starten verfügbar sind. Damit ihre Gültigkeit gewährleistet ist, wird die Typenbibliothek für InDesign Server beim Starten erstellt bzw. aktualisiert und auf der lokalen Festplatte gespeichert. Die generierte .tlb-Datei wird im Ordner „Application Data“ abgelegt: C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Adobe\InDesign Server\<version>\<sprache>\configuration_12345\Scripting Support\<version>\Resources for Visual Basic.tlb Unter Windows Vista und Windows Server 2008: C:\ProgramData\Adobe\InDesign Server\<version>\<sprache>\configuration_12345\Scripting Support\<version>\Resources for Visual Basic.tlb In diesen Pfadangaben steht „configuration_12345“ für den Konfigurationsnamen der InDesign Server-Instanz, von der die Tabellendatei erstellt wurde. Da die COM-Typenbibliothek für InDesign Server auf dem Skript-Modell mit flexibler Typbindung von InDesign Server basiert, verwendet sie ebenfalls die flexible Typbindung. Beachten Sie bei der Auswahl einer Sprache zur Entwicklung Ihrer COM-Komponenten, dass sich mit größerer Flexibilität in der Typbindung auch die Kompatibilität mit der COMTypenbibliothek für InDesign Server verbessert. Visual Basic Am besten geeignet für die Entwicklung einer COM-Komponente für InDesign Server ist Visual Basic 6. Neuere Versionen von Visual Basic verwenden eine engere Typbindung, wodurch sich die Kompatibilität mit dem InDesign Server-DOM mit flexibler Typbindung verschlechtert. Die Verwendung von Visual Basic .NET ist ebenfalls möglich, sofern Sie die Kompilierungsoptionen „Option Explicit“ und „Option Strict“ für das Projekt deaktivieren. Dadurch wird die enge Typbindung von VB.NET gelockert. Sie sollten außerdem vermeiden, Variablen über die Anweisung „Dim“ zu deklarieren, da dadurch der Typ der Variablen fixiert wird. Da Projekte nur abgeschlossen werden können, wenn Variablen über „Dim“ deklariert werden, können Sie die Deklaration in der Regel am Anfang einer Methode mit „Dim“ durchführen und die Dim-Anweisung dann vor der Ausführung des Codes mit „REM“ auskommentieren. Damit Sie die COM-Typenbibliothek für InDesign Server in Ihrem Projekt verwenden können, müssen Sie Zugriff auf die interop-DLL für InDesign Server haben. Unter .NET erreichen Sie dies durch einen Verweis auf die .tlb-Datei. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie „Verweis hinzufügen“. Wechseln Sie zur COM-Registerkarte und suchen Sie den Eintrag „Adobe InDesign CS5 Server Type Library“. Wenn dieser nicht aufgelistet ist, müssen Sie zunächst InDesign Server auf Ihrem Rechner starten, damit InDesign Server die Typenbibliothek erstellt. Einführung in Adobe InDesign CS5 Server 27 Einführung in Adobe InDesign CS5 Server Integration mit InDesign Server über COM (nur Windows) Um einen Verweis auf eine Instanz von InDesign Server in Ihrem Code zu erstellen, verwenden Sie die Methode „CreateObject“. Beachten Sie, dass Sie bei mehreren Instanzen mit „CreateObject“ die InDesign Server-Zielinstanz für das Skript nicht angeben können. Set myApp = CreateObject("InDesignServer.Application") Um einen Verweis auf eine bestimmte Instanz von InDesign Server in Ihrem Code zu erstellen, verwenden Sie die Methode „GetObject“ und übergeben Sie den Konfigurationsnamen der gewünschten InDesign Server-Instanz. Set myApp = GetObject("configuration_12345") Weitere Informationen und Beispiele finden Sie im Ordner „<IDS SDK>/samples/“ sowie im Dokument Adobe InDesign CS5 Scripting Guide. C# C# ist zum Entwickeln von COM-Komponenten weniger geeignet. Aufgrund der engen Typbindung von C# und der flexiblen Typbindung des Skript-DOM von InDesign Server gibt es eine Reihe von Problemen zwischen beiden Sprachen. Bei sorgfältiger Typisierung und präziser Parameterübergabe ist es jedoch möglich, einfache COM-Komponenten für InDesign Server zu schreiben. Eine mögliche Lösung besteht darin, über C#-Code die Methode „doScript“ von InDesign Server aufzurufen und eine Skript-Datei bzw. den Text eines Skripts zu übergeben. Ein Beispiel hierfür ist „sampleclient-csharp-com“ im InDesign Server-SDK. Beim Entwickeln komplexer Komponenten in C# können u. a. die folgenden Probleme auftreten: z C# basiert auf enger Typbindung, d. h., der Typ eines Objekts muss immer bekannt sein. Die Folge ist, dass der Typ sämtlicher Objekte, die vom Skript-DOM abgerufen werden, deklariert sein muss. Dies ist kein Problem, solange der Typ jedes Objekts bekannt ist. Allerdings akzeptieren viele Methoden im Skript-DOM Variablentypen bzw. geben diese zurück und es ist nicht immer möglich, den Typ einer zurückgegebenen Variable vorherzusehen. z Sie müssen beim Aufrufen von Methoden sämtliche Parameter angeben, auch wenn diese im Skript-DOM optional sind. Das Angeben von „null“ ist nicht zulässig. Parameter müssen vollständige Objekte sein. z In bestimmten Situationen kann das Arbeiten mit optionalen Parametern unmöglich sein. Dies ist z. B. der Fall, wenn eine Methode in der Skript-DOM zulässt, dass der erste Parameter nicht übergeben wird, sodass InDesign Server stattdessen den zweiten Parameter verarbeitet. Mit C# ist dies nicht möglich. Um in C# einen Verweis auf eine InDesign Server-Instanz zu erstellen, verwenden Sie die InteropServices-Methode „Marshal.BindToMoniker“: myApp = (InDesignServer.Application) (System.Runtime.InteropServices.Marshal.BindToMoniker("configuration_12345")); Weitere Informationen und Beispiele finden Sie im Ordner „samples/“ des InDesign Server-SDK. 28 Einführung in Adobe InDesign CS5 Server Integration von InDesign Server über LBQ Integration von InDesign Server über LBQ InDesign Server beinhaltet die optionale Komponente LBQ, die Funktionen für das Stellen von Aufträgen in Warteschlangen und für Lastverteilung in InDesign Server bietet. LBQ ist vollkommen optional und für das Ausführen von InDesign Server nicht erforderlich. Es ist eine Lösung für Lastverteilung und Auftragswarteschlangen. LBQ bietet Lastverteilung für mehrere Instanzen von InDesign Server, die auf einem oder mehreren Rechnern ausgeführt werden. Es verwendet JAVA und CORBA für die Kommunikation mit diesen Instanzen von InDesign Server, sodass jede Instanz wie unter „Starten von InDesign Server für die Verwendung mit CORBA“ beschrieben gestartet werden muss. Zusätzlich zur Lastverteilung und Warteschlangenbildung unterstützt LBQ folgende Funktionen: z Priorisieren von Warteschlangen z Statussichtbarkeit z Protokollierung z Mehrere Warteschlangen z Bearbeiten von Aufträgen in Warteschlangen Clients interagieren mit LBQ über eine RESTful API. RESTful API-Aufrufe werden über eine URL-Anfrage durchgeführt. Nach Ausführen einer Anfrage wird eine XML-Antwort zurückgegeben. LBQ unterstützt folgende Vorgänge: z EnqueueJob z ModifyJob z CancelJob z StartQueue z StopQueue z ReinitializeQueue z GetVersion z JobStatus z QueueStatus z IDSStatus Genaue Beschreibungen dieser Vorgänge sowie hilfreiche Informationen zur Arbeit mit LBQ finden Sie im Dokument „Working With Load Balancing and Queueing For Adobe InDesign CS5 Server“. Einführung in Adobe InDesign CS5 Server 29 Einführung in Adobe InDesign CS5 Server Handhabung von Fehlermeldungen Handhabung von Fehlermeldungen InDesign Server protokolliert seine Meldungen und Fehler in „stderr“ und „stdout“. Diese Fehler und Meldungen können erfasst oder umgeleitet werden. Zugreifen auf Fehler und Meldungen Von einem Zusatzmodul aus können Sie die C++-APIs „MessageLog“ und/oder „IErrorList“ verwenden. Dies wird im Dokument Adobe InDesign CS5 Server Plug-in Techniques erklärt. Verwenden Sie von der Java-API aus die ErrorListError-Objekte, die im Anwendungsobjekt enthalten sind. Umleiten von Fehlern und Meldungen Wenn Sie InDesign Server aus einer Anwendung heraus ausführen, können Sie „stdout“ und „stderr“ so konfigurieren, dass Meldungen von InDesign Server an Ihre Anwendung übertragen werden. Unter Windows können InDesign Server-Meldungen in das Anwendungsprotokoll der Windows-Ereignisanzeige umgeleitet werden, indem InDesign Server mit dem Argument „-LogToApplicationEventLog“ gestartet wird. Wenn Sie InDesign Server vom InDesign Server Windows-Dienst aus ausführen, werden protokollierte Meldungen automatisch in das Anwendungsprotokoll der Windows-Ereignisanzeige umgeleitet. Das Ereignisprotokoll kann in der standardmäßigen Ereignisanzeige der Computerverwaltung angezeigt werden. Unter Mac OS können Sie Meldungen in die Systemkonsole umleiten, indem Sie InDesign Server mit dem Argument „-LogToApplicationEventLog“ starten. Das Protokoll kann über das Dienstprogramm Konsole“ eingesehen werden. Nächste Schritte Nachdem Sie sich mit der Vorgehensweise zum Ausführen von InDesign Server und der Verwendung von SOAP oder Java beim Ausführen von Beispielen aus dem SDK vertraut gemacht haben, möchten Sie u.U. die Funktionen von InDesign Server erweitern. Schreiben Sie dazu Skripten, Zusatzmodule oder sogar Anwendungen, die InDesign in einen SatzdateiWorkflow integrieren. InDesign Server-Skripterstellung, Zusatzmodule und Java Um Informationen zum Schreiben von Skripten, Zusatzmodulen und Java-Komponenten für InDesign und InDesign Server zu erhalten, installieren Sie das SDK der InDesign-Produkte und das InDesign Server-SDK und lesen Sie folgende Dokumente: z Adobe InDesign CS5 Server Performance and Scalability – Bietet Benchmarks und Informationen zum Konfigurieren des Systems, um Leistung und Skalierbarkeit von InDesign Server zu optimieren. z 30 Adobe InDesign CS5 Programming Guide – Bietet Informationen zum Erstellen von C++Zusatzmodulen für InDesign Server. Einführung in Adobe InDesign CS5 Server Nächste Schritte z Adobe InDesign CS5 Scripting Guide – Bietet grundlegende Informationen und zahlreiche Beispiele zum Erstellen von Skripten in InDesign. Es gibt drei Versionen dieses Dokuments: für AppleScript, JavaScript und VBScript. z Adobe InDesign CS5 Server Java API Reference – Eine Javadoc-Referenz der InDesign Server-Java-API. z Adobe InDesign CS5 Server Plug-in Techniques. z Regenerating the Adobe InDesign CS5 Server Java API. z Working with Adobe CS5 InDesign Server Java. z Working with Adobe CS5 InDesign Server SOAP. z Adobe Scripting von Chandler McWilliams. New York: Wiley Publishing Inc., 2003. ISBN 0-7645-2455-0. JavaScript Dokumentation zur JavaScript-Sprache und Beschreibungen zur Verwendung finden Sie hier: z JavaScript: The Definitive Guide, 4th Edition von David Flanagan. O’Reilly, 2001. ISBN 0-596-00048-0. z JavaScript Bible. 5th Edition von Danny Goodman und Michael Morrison. John Wiley and Sons, 1998. ISBN 0-7645-57432. z JavaScript Programmer's Reference von Cliff Wooton. Wrox, 2001. ISBN 1-861004-59-1. SOAP Informationen zur Kommunikation mit SOAP finden Sie im SOAP Primer von W3C unter http://www.w3.org/TR/soap12-part0/. Java Dokumentation zur Java-Sprache und Beschreibungen zur Verwendung finden Sie hier: z Java in a Nutshell, 5th edition von David Flanagan. O’Reilly Media, 2005. ISBN 0-596-00773-6 z http://java.sun.com CORBA Dokumentation zu CORBA und Beschreibungen zur Verwendung finden Sie hier: z http://www.omg.org/gettingstarted/corbafaq.htm z http://omniorb.sourceforge.net/ – Bietet Informationen zur von InDesign verwendeten ORB-Implementierung, OmniORB. Einführung in Adobe InDesign CS5 Server 31 Einführung in Adobe InDesign CS5 Server Häufig gestellte Fragen Häufig gestellte Fragen Kann ich sowohl einen SOAP-Anschluss als auch eine IOR-Datei festlegen, wenn ich den Server starte? Ja. InDesign Server kann SOAP- und CORBA-Befehle gleichzeitig verarbeiten. Allerdings kann dadurch die Systemleistung beeinträchtigt werden. Gibt es ein Verzeichnis aller Objekte und Methoden in der InDesign ServerJava-API? Ja. Eine Java-API-Referenz ist im InDesign Server-SDK enthalten. Gibt es ein Verzeichnis aller Klassen und Methoden in der Skript-DOM von InDesign Server? Ja. Eine Object Model Reference für InDesign Server ist über das Hilfe-Menü in Adobe ExtendScript Toolkit CS5 verfügbar. Wie rufe ich mein eigenes Zusatzmodul von der InDesign Server-Java-API aus auf? Dazu müssen Sie die Datei „InDesignServerAPI.jar“ und das InDesign Server-Corba SupportZusatzmodul neu generieren. Informationen hierzu finden Sie im Dokument Regenerating the Adobe InDesign CS5 Server Java API im InDesign Server-SDK. Kann ich mit InDesign Server kommunizieren, wenn ich es weder für SOAP noch für CORBA starte? Ja. Sie können über AppleScript, VBScript oder COM mit InDesign Server kommunizieren, ohne SOAP oder CORBA zu verwenden. 32 Einführung in Adobe InDesign CS5 Server Häufig gestellte Fragen Wie gebe ich einen Wert von meinem Skript an den SOAP-Client zurück? In JavaScript und AppleScript ist der Rückgabewert eines Skripts der letzte im Skript angetroffene Wert. In VBScript definieren Sie eine Variable mit der Bezeichnung „returnValue“, um einen Rückgabewert für das Skript festzulegen. Jedes der folgenden Beispiele gibt den Namen des Dokuments am ersten Index zurück. JavaScript: var documentName = app.documents.item(0).name; documentName; AppleScript: tell application "InDesignServer" set documentName to name of document 1 end tell documentName VBScript: Set myApp = CreateObject("InDesignServer.Application.CS5") documentName = myApp.Documents.Item(1).Name returnValue = documentName Einführung in Adobe InDesign CS5 Server 33 Einführung in Adobe InDesign CS5 Server Häufig gestellte Fragen 34