Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle Stefan Hornburg Perlworkshop 2008.

Ähnliche Präsentationen


Präsentation zum Thema: "Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle Stefan Hornburg Perlworkshop 2008."—  Präsentation transkript:

1 Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle Stefan Hornburg Perlworkshop 2008

2 split() ● Request Tracker ● REST-Schnittstelle ● Automatisierung ● Integration

3 Kunden ● Deutschland: ecoservice.de, Wegatrade ● Schweiz: cobolt.net ● Österreich: Embassy Vienna ● USA: WebHostNY, L&D Computer Consulting ●...

4 Organisation ● Projekte ● Aufgaben ● Arbeitszeit ● Übersicht ● Abrechnung ● History

5 Request Tracker ● Trouble Ticket System ● Erweiterbarkeit ● Schnittstellen ● Perl

6 Verteilte RT-Installation ● WebHostNY ● Embassy Vienna ● LinuXia: Hosting + Kunden ● L & D Computer ● ICDEVGROUP

7 Problemstellung ● fehlende Übersicht wegen verteilter Installation ● verschiedene Policys (Prioritäten)

8 Integration und Automatisierung ● Zusammenführung und Bewertung ● Automatisierung durch Schnittstellen

9 Request Tracker: Schnittstellen ● Web ● Email ● RT API ● REST

10 Representational State Transfer ● Ressourcen ● Adressierbarkeit ● Zustandslosigkeit ● Operationen – GET, POST, PUT, DELETE

11 Request Tracker: Ressourcen ● Tickets ● Queues ● Benutzer ● Benutzergruppen

12 Ressourcen und Aktionen ● list: Auflistung/Suche ● show: Anzeige von Eigenschaften ● create: Anlegen von Objekten ● edit: Bearbeitung von Objekten ● correspond ● comment

13 Realisierung ● Dokumentation Fehlanzeige => RTSL ● Kommandozeilentool /usr/bin/rt ● RTDEBUG=3 /usr/bin/rt ● LWP::UserAgent ● eigene Routinen zum Parsen

14 Kommandozeile I Neue Queue: $ rt create -t queue set name='Perl-Workshop' # Queue 4 created. Neues Ticket: $ rt create -t ticket set subject='Ausarbeitung des Vortrags' \ set queue='Perl-Workshop' # Ticket 11 created.

15 Kommandozeile II Ticket anzeigen: $ rt show ticket/11 -f id,subject,queue,requestors,owner id: ticket/11 Subject: Ausarbeitung des Vortrags Queue: Perl-Workshop Requestors: racke@linuxia.de Owner: Nobody

16 Kommandozeile III Ticket bearbeiten: $ rt correspond -m 'Ausarbeitung ist fast fertig, siehe Anhang.' \ -a article_racke.tex ticket/11 # Message recorded

17 Aufbau der URI my ($uri, $user, $password); # URL der RT-Instanz $uri = 'http://support.linuxia.de/rt'; $uri.= '/REST/1.0'; # Ressource $uri.= '/search/ticket'; # Authentifizierung $user = 'racke'; $password = 'nevairbe';

18 LWP::UserAgent use LWP::UserAgent; my ($ua, $req, $res, @data); $ua = new LWP::UserAgent(agent => 'Perlworkshop/10.0', env_proxy => 1); push @data, user => $username; push @data, pass => $password; $req = POST($uri, \@data, Content_Type => 'form- data'); $res = $ua->request($req)

19 Auswertung der Antwort ● HTTP-Header ● HTTP/1.1 200 OK ● HTTP-Body ● RT-Header ● RT/3.6.6 200 OK ● RT-Body

20 Beispiel RT-Antwort RT/3.6.6 200 Ok id: user/22 Name: racke EmailAddress: racke@linuxia.de RealName: Stefan Hornburg NickName: Racke

21 Verarbeitung RT-Antwort ● Kommentare ● Fortsetzungszeilen ● Listen von Objekten ● Attachments ● History

22 Integration mit Interchange ● Bugtracker für Interchange ● Businesstool

23 Interchange ● eCommerce- und Applikationsserver ● Perl ● Templatesprache ITL [total-cost] ● eingebettetes Perl [perl]..[/perl] ● Erweiterungen durch UserTags und Module

24 ITL: Usertags I UserTag rt Order function type id UserTag rt Routine <<EOR sub {.... return $content; } [rt show user racke] [perl] $Tag->rt('show', 'user', 'racke'); [/perl]

25 ITL: Usertags II UserTag rt AddAttr [rt function=list type=ticket queue=Perl- Workshop] UserTag rt HasEndTag [rt function=correspond id=12] Der Vortrag ist bald zu Ende. [/rt] [perl] $Tag->rt({function => 'correspond', id => 12, body => 'Der Vortrag ist bald zu Ende'}); [/perl]

26 Einbindung von Modulen require module Vend::RT UserTag rt MapRoutine Vend::RT::rt

27 Vend::RT package Vend::RT; use LWP; use HTTP::Request::Common; use Vend::Config; use Vend::Tags; Vend::Config::parse_tag('UserTag', 'rt Order function type id'); Vend::Config::parse_tag('UserTag', 'rt AddAttr'); Vend::Config::parse_tag('UserTag', 'rt MapRoutine Vend::RT::rt'); Vend::Config::parse_tag('UserTag', 'rt HasEndTag'); sub rt { my ($function, $type, $id, $opts, $body) = @_;

28 REST-Konformität Zitat von Jesse Vincent: In my defense, when the REST interface got designed, everyone else on the planet was just starting to use SOAP and Roy Fielding barely published his definitions of what REST was. It wasn't well understood by anybody.

29 Ausblick ● Suche für alle Ressourcen ● strengere Einhaltung der REST-Kriterien ● Caching ● Einbindung anderer Ticketsysteme

30 Abspann http://www.linuxia.de/talks/pws2008/ racke@linuxia.de Thanks !


Herunterladen ppt "Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle Stefan Hornburg Perlworkshop 2008."

Ähnliche Präsentationen


Google-Anzeigen