EPOKO.net Frank Schwichtenberg SourceTalk 2009 Göttingen, 1.10.2009 „Real SOA“ ­ Wenn Services (zusammen­)wachsen. 2 Historisches ● Der Wunsch nach Integration von Terminen in eine Webseite – ● Idee: Termine in XML, mit XSL transformieren – – ● XML­Format? Speicherung als XML­Datei Benutzer sollten Termine selbst einstellen können – 3 Ohne ein Content Management System zu installieren Transaktionen, Datenintegrität? Standards zur Lösung ● Jedem Benutzer seine eigene ICS­Datei – ● Einfache Konvertierung nach XML – ● Empfehlung: XML­Formate nie ohne Namespace entwickeln. :­( Termine im Web → ICS­Datei im Web – – 4 RFC 2445 WebDAV Kalenderprogramme können per HTTP lesen und schreiben Services 1 ● EPOKO.net Webseiten – – ● ● Termine editieren mit Sunbird (o.a.) Konvertierung ICS → XML – ● Serverbasiert, on request XSLT zur Transformation in HTML „Schnipsel“ – – – 5 Form zum Erstellen einer Kalenderdatei (ICS) im Web „EPOKO webfile“ Serverbasiert Adressierbar zur Einbindung in Webseiten URL des EPOKO webfile als Parameter PHP ● Alles in PHP – ● Kommandozeilen XSLT Prozessor – 6 „Das geht so schön schnell.“ xsltproc per System Call Nutzung ● ● ● ● ● ● 7 Das System wurde schnell angenommen: Ankündigung von Veranstaltungen Kinoprogramm SourceTalk Programm ( http://www.sourcetalk.de/2009/programm.php) Webseiten von Künstlern (http://www.InPanik.de) Kurse und Kongresse (http://www.java.de) Webviews einbinden ● ● ● EPOKO.net generiert HTML „Schnipsel“ mit Kalendereinträgen aus Webfile PHP­Code zum Einbinden des „Schnipsels“ in Webseiten auf EPOKO.net Einbindung mit JavaScript möglich – – ● 8 ! Cross Site Scripting Unterstützung von CORS Header HTML „Schnipsel“ enthalten Tabellen ohne <table></table> oder mit CCS Klassen ausgezeichnete <div>s Erste Probleme ● ● ● Sommerzeit Zeitzonen Performance – ● Resourcen – 9 vor allem bei Konvertierungen Arbeitsspeicher pro Thread Java ● java.util.Calendar – ● HttpServlet – ● 10 ICS Events etc. Ics2XmlConverter – ● GET, PUT u.v.m. :­) ICS StreamReader API – ● XMLGregorianCalendar inkl. Filter API EPOKO View Services 2 (EPOKO.core) ● core.EPOKO.net/view/... – ● ● ● Auswahl des Zeitraums per URL­Parameter Selektoren/Filter (Zeitspannen, Kategorie, Titel) Beliebige ICS­Quellen für Views – ● ● 11 list, month, week, todo, log, report Vorsicht Standard! http://frank.schwichtenberg.net/#EPOKO http://frank.schwichtenberg.net/epoko.php?subject=epo Tooling ? ● ● Shared Event Management Unterschiedliche Zugangspunkte – – – – ● ● 12 Zuhause Am Arbeitsplatz Unterwegs (Smartphone, Palm, Netbook) Internetcafe, bei Freunden etc. Views haben teilweise höhere ICS­Abdeckung als Kalenderprogramme Viele Standardprogramme sind nicht (mehr) in der Lage „einfaches“ HTTP zu verwenden. → Tooling ! ● Webbasierte und Standalone Clients ● Anforderungen – Nachnutzung der vorhandenen Darstellungsschicht → AJAX in Views – – Performance, Transaktionen, Sicherheit … CRUD Operationen für Kalender (Termine, Aufgaben ...) → REST 13 Services 3 (Repository) ● ● Datenmodel folgt ICS Entities (EJB3) – ● 14 neben ICS „Dateien“ nun Zugriff über Repositories auf Kalender auf einzelne Termine Webfiles als XML, JSON, RDF, Newsfeed und natürlich ICS RESTfull ● ● URIs für Kalender, Termin, Aufgaben, Notizen Auswahl von views über Content Negotiation – ● Vereinfachung der Cliententwicklung – – – – – 15 oder Dateierweiterungen (mit Einschränkungen) Thin­Clients AJAX JavaFX für Android … Darstellung ● Flexibilität durch XSLT – ● ● PDF des SourceTalk Programms Views zur Manipulation von Kalendereinträgen (Beta) – ● 16 Generierung verschiedener Formate Focus auf Spezialisierte (kein vollständiges Kalenderprogramm) RDFa Features ● Frei verfügbare Basisdienste – – ● ● Kostenlose Kalenderdatei im Netz Webviews – ● ● Updates in „Echtzeit“ Selektoren/Filter (Zeitspannen, Kategorie, Titel) Kalender Repository – – 17 In Zukunft auch kostenpflichtige Premiumdienste http://www.java.de/component/option,com_epoko/set,2/Item Custom Views Aggregation Konfigurierbare Zugriffsrechte (Public/Private) 18 Probleme ● SyncML – ● ● CalDAV Mime­Type für ICS Dateien – ● 19 Terminabgleich mit Handy copy or subscribe XML­Schema für „ICS­XML“ EPOKO.net sind: ● ● ● dr. schlüter: Marketing Agentur (www.drs13.de) Stefan Koospal Antonia Schwichtenberg und ich. ● 20 Besonderen Dank an Daniel van Ross Vielen Dank für's zuhören ● www.EPOKO.net ● frank.schwichtenberg.net/#EPOKO http://frank.schwichtenberg.net/epoko.php? subject=epoko&type=report ● Anregungen, Szenarien, Views? ● 21