Archive for: ‘März 2016’
EntwicklerCamp 2016: Wir sind dabei
Track 4 - Session 3: REST Services in Domino
Bernd Hort
Dienstag, 12.04.2016, 9:00-10:30 Uhr
Jede moderne Web-Anwendung verwendet REST Services zur Kommunikation. REST wurde zum Quasistandard für die Kommunikation zwischen Systemen.
Seit der Einführung von XPages in Domino gibt es eine Reihe von Möglichkeiten REST Services in Domino zur Verfügung zu stellen.
Nach einer kurzen Einführung in REST werfen wir einen Blick auf die IBM Domino Access Services. Anschließend beschäftigen wir uns mit den Custom Web Services aus der Extension Library.
Zu guter Letzt implementieren wir einen REST Service mit JAS-RX direkt in Java.
Kenntnisse in XPages und Java sind mehr als vorteilhaft. Die Techniken werden jeweils an Code-Beispielen gezeigt.
Track 2 - Session 4: Javascript für Fortgeschrittene
Thomas Bahn
Dienstag, 12.04.2016, 11:00-12:30 Uhr
Mit den XPages hat JavaScript auch Einzug gehalten auf dem Server (Server-Side JavaScript = SSJS), in allen interaktiven Web-Anwendungen wird es auch im Browser genutzt - egal ob diese auf der "klassischen" Web-Entwicklung oder auf XPages-Technologie basieren (Client-Side JavaScript = CSJS).
Die JavaScript-Programmierung geht dann schnell darüber heraus, was man in den typischen Einführungen lernt, und muss Aufgaben abdecken, die bisher mit LotusScript und Java realisiert wurden. Die Komplexität der JavaScript-Programmierung steigt damit zwangsläufig und deutlich an.
Daher ist ein tiefgehendes Verständnis von JavaScript als Programmiersprache jetzt wichtiger denn je. Die Sprache ist sehr flexibel und hat einige eher ungewöhnliche, neue Konzepte (zumindest für LotusScript- und Java-Programmierer), die richtig verstanden werden müssen, um das Beste aus ihr heraus zu holen.
In dieser Session lernst du diese Konzepte (u.a. Kontexte, objekt-orientierte Programmierung mit JavaScript), ich erkläre ich die besonderen Stärken dieser Sprache (z. B. Guard- und Default-Operatoren, "Verbesserungen" existierender Objekte wie Object und Function), zeige typische Stolperfallen in JavaScript (wie With und Semikolon-Einfügung) und wie man sie vermeidet.
Der Vortrag ist konzipiert für Entwickler, die bereits Erfahrungen in JavaScript gesammelt haben.
Track 4 - Session 7: Angular JS und Domino
Bernd Hort
Mittwoch, 13.04.2016, 9:00-10:30 Uhr
Bei Thema Web-Entwicklung gibt es die verschiedensten Ansätze. Bei diesem Vortrag geht es darum zu zeigen, wie neben XPages ein mehr Front-End-zentrierter Ansatz mit einem Domino-Server realisiert werden kann. Ein sehr populärer Framework für Front-End-zentrierter Web-Entwicklung ist Agular JS. Das nach dem Model-View-Controller-Prinzip aufgebaute Framework wird komplett nur in HTML und JavaScript geschrieben. Die gesamte Anwendungslogik wird im Browser realisiert. Mit dem Server wird nur kommuniziert, um Daten abzurufen bzw. Services aufzurufen.
Dieser Vortrag hat zwei Ziele. Zum einen geht es um eine Einführung in Angular JS. Zum anderen soll aufgezeigt werden, dass die Erweiterungen der letzten Jahre den Domino Server noch zu mehr befähigen als XPages.
HTML, CSS und JavaScript-Kenntnisse sind vorteilhaft.
Track 2 - Session 8: LotusScript für Könner
Thomas Bahn
Mittwoch, 13.04.2016, 11:00-12:30 Uhr
Egal ob du LotusScript gerade erst gelernt hast oder die Programmiersprache schon seit Jahren erfolgreich einsetzt - jetzt ist die richtige Zeit für das nächste Level!
Profitiere von kleinen Tricks und Abkürzungen genauso wie von modernen Konzepten und bewährten Lösungen, Best Practices und Entwurfsmustern.
Erleichtere dir dein Entwicklerleben und besuche diese Session!
Cisco ASA Software IKE1 und IKE2 Sicherheitslücke
Zusammenfassung
Die Sicherheitslücke in der Cisco ASA Software ermöglicht es, dass ein nicht authentifizierter Angreifer über eine Remoteverbindung beliebigen Code ausführen kann und somit die volle Kontrolle über das System erhält. Die Schwachstelle entsteht durch einen Pufferüberlauf im betroffenen IKEv1 und IKEv2 Code.
Von Cisco wurden Software Updates herausgegeben, die diese Sicherheitslücke schließen.
Betroffene Produkte
Folgende Produkte können von dieser Sicherheitslücke betroffen sein:
- Cisco ASA 5500 Series Adaptive Security Appliances
- Cisco ASA 5500-X Series Next-Generation Firewalls
- Cisco ASA Services Module for Cisco Catalyst 6500 Series Switches and Cisco 7600 Series Routers
- Cisco ASA 1000V Cloud Firewall
- Cisco Adaptive Security Virtual Appliance (ASAv)
- Cisco Firepower 9300 ASA Security Module
- Cisco ISA 3000 Industrial Security Appliance
Außerdem sind folgende Cisco ASA Software Module von dieser Sicherheitslücke betroffen, sofern diese IKEv1 oder IKEv2 -VPN-Verbindungen herstellen:
- LAN-to-LAN IPsec VPN
- Remote access VPN using the IPsec VPN client
- Layer 2 Tunneling Protocol (L2TP)-over-IPsec VPN connections
- IKEv2 AnyConnect
Sofern die o.g. Produkte nur Clientless- bzw. AnyConnect-SSL VPN-Verbindungen initiieren, sind sie nicht von der Sicherheitslücke betroffen.
Cisco Security Advisory unter:
http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20160210-asa-ik
Der Beitrag Cisco ASA Software IKE1 und IKE2 Sicherheitslücke erschien zuerst auf n-komm GmbH.
IBM auf der Hannover Messe 2016: Auf dem Weg zur lernenden Fabrik
Die Tugenden der digitalen Transformation
Ein Plädoyer für Lotus Notes (Teil 2): Das Lego Prinzip
…oder wie ich Java und Web Services durch Lotus Notes zu lieben gelernt habe.
Einige meiner Kollegen arbeiten schon seit längerem mit Webservices und haben unter anderem schon ein komplettes User Management für Domino und eine Kalender Schnittstelle für SAP entwickelt. Ich selbst fand das schon immer sehr interessant und zukunftsweisend, habe selbst aber noch nicht damit gearbeitet.
In den letzten Tagen habe ich mich jetzt endlich mal etwas intensiver mit dem Thema beschäftigt. Es ist faszinierend was man mit diesem Lego Prinzip alles erreichen und vereinfachen kann, wenn man es konsequent einsetzt.
Konkretes Fall Beispiel
Es geht um einen relativ großen Kunden, den ich hier nicht nennen möchte. Dieser Kunde migriert seit längerem weg von Lotus Notes. Mail wurde relativ schnell migriert und jetzt fehlt noch der ganze Rest.
Anfang des Monats haben wir dort die bereits erwähnten User Management Webservices live genommen um die Userverwaltung zu vereinfachen. Es werden also jetzt im Self Service Prinzip alle Notes IDs von den Anwendern selbst beantragt, weitere Daten aus dem internen Identity Management System nachgeladen und voll automatisch angelegt. Ein ähnlicher Prozess existiert für die Anlage von Outlook Accounts und Mailboxen, das ganze läuft aber parallel und wurde nicht in einen Prozess integriert. Soweit so gut, alles läuft nahezu perfekt, wir haben bis heute schon fast 200 User accounts in knapp 2 1/2 Wochen über den Prozess angelegt.
Das Problem
Über ein Problem sind wir jedoch gestolpert: Wir erzeugen die Notes IDs, legen sie in den ID-Vault und vergeben dabei ein Initial Passwort. Dieses Passwort senden wir dem User per Mail zu. Das sollte eigentlich kein Problem sein, da das Mail System ja Outlook ist und die User damit an die Passwörter ran kommen (sollte). Jedoch hat sich herausgestellt, dass das Anlegen der Outlook Postfächer in einzelnen Fällen durchaus etwas länger dauern kann und wir deshalb die Passwörter nicht einfach verschicken können sobald wir fertig sind. Ein einfacher Zeitversatz von x Stunden war auch wenig hilfreich, da es nicht nachvollziehbar war, wie lange das Anlegen auf Exchange Seite dauert.
Der Lösungsansatz
Im Laufe des Migrationsprojektes habe ich schon für verschiedene Applikationen per Java Code Verbindungen in Richtung Active Directory und Exchange programmiert. Deshalb wollte ich in unseren User Anlage Prozess einen Workflow Schritt einbauen, der überprüft ob das Outlook Postfach erfolgreich angelegt wurde und wir das Passwort verschicken können. Ich hätte das jetzt natürlich wieder per Java direkt in die Notes Applikation bauen können, es ist aber abzusehen dass wir diese und ähnliche Funktionen in Zukunft noch an vielen Stellen benötigen werden. Deshalb war es eine gute Gelegenheit das Ganze über einen Webservice zu implementieren um es auch für zukünftige Anwendungsfälle ohne große Programmierarbeit zur Verfügung zu stellen.
Was macht den Webservice Ansatz in diesem Beispiel besser?
Natürlich kann ich meinen Code soweit wiederverwendbar machen, dass ich ihn recht einfach in unterschiedliche Applikationen integrieren kann. Es ist aber immer nur Code, den ich wieder verwende. Webservices gehen hier einen Schritt weiter, ich verwende wirklich einen Service, der sehr viel mehr als nur Code zur Verfügung stellt. In unserem konkreten Beispiel greifen wir nicht auf das interne AD, sondern auf das des externen Betreibers der Exchange Umgebung zu. Hierfür benötigen wir Zugangsdaten, Firewall Freischaltungen und weitere Details wie die richtige Searchbase um die User Accounts zu finden. Für jede Applikation muss ich also die Firewall ändern lassen und die Möglichkeit schaffen Zugangsdaten und Optionen sicher zu hinterlegen. Das ist nicht wirklich praktikabel.
Der Webservice Ansatz bietet eine Möglichkeit diesen Zugriff komplett als Service anzubieten. Ich muss also nichts wissen über die weiteren Abhängigkeiten wie Firewall, Zugangsdaten, welche Searchbase ich benötige, etc. Ich greife von meiner Applikation nur auf einen Webservice zu, übergebe als Parameter eine E-Mail Adresse und bekomme ein Ja oder Nein zurück, ob das Outlook Postfach angelegt ist oder eben nicht. Diesen Webservice kann ich dann wirklich sehr einfach in alle Applikationen integrieren, sei es nun eine Notes Applikation oder auch externe Applikationen. Den Zugriff auf meinen Webservice und damit auf die dahinter liegenden Daten kann ich schnell und einfach anhand der Domino ACL steuern und muss nicht die Zugangsdaten an x Stellen hinterlegen.
Ganz konkret sieht eine Integration des Webservices in meinen LotusScript Code genau so aus:
Dim webservice As New ActiveDirectoryWebservice Dim isExchangeEnabled As Boolean isExchangeEnabled = webservice.isExchangeEnabled("email@company.com")
Das ist sehr einfach in jeder beliebigen Applikation einzusetzen. Falls es Bug fixes oder Änderungen gibt, muss ich das nur im Webservice machen und nicht in jeder einzelnen Applikation die diesen nutzt.
Java und Webservices in Lotus Notes Applikationen
Ich arbeite schon länger mit Java in Notes Applikationen. Mir gefällt hier vor allem die optimale Nutzung der jeweiligen Vorteile. Java bietet eine Unmenge von Möglichkeiten um in Notes Applikationen sinnvoll zu arbeiten, aber vor allem auch recht einfach auf externe Systeme und Daten zuzugreifen. An Notes Applikationen gefällt mir die Verkapselung in eine NSF und die einfache Datenstruktur und das vorhandene Security Modell. Beides Zusammen bietet viele Vorteile. Ich entwickle komplexe Notes Applikationen und Java Code, aber trotzdem genügt es die NSF zu sichern oder auf einen anderen Server zu kopieren.
Das Manko das ich allerdings habe, ist die schlechte Verbindung von Java und LotusScript. Ja, ich kann Code der jeweils anderen Welt ausführen und integrieren, aber das ist immer sehr speziell und auch Fehler anfällig. Viel besser gefällt mir der Gedanke der Micro Services, also einzelne Teile der eigenen Applikation als Service anzubieten und diesen dann entweder innerhalb der Applikation oder auch von Außen zu verwenden. So kann ich z.B. einzelne Funktionen in Java oder LotusScript entwickeln und als Webservice miteinander verbinden.
Dadurch entsteht das eingangs erwähnte Lego Prinzip. Ich habe viele kleine Teile, die ich schnell und einfach zusammen fügen kann. Zunächst macht es natürlich etwas mehr Arbeit diesen Service Gedanken konsequent umzusetzen, aber langfristig bietet es enorme Vorteile. Die einzelnen Applikationen werden unabhängiger und einfacher zu pflegen und anpassbarer. Kommt man z.B. irgendwann an einen Punkt, an dem man für einzelne Applikationen die Plattform wechseln möchte (oder muss), bietet das enorme Vorteile. Einzelne Legosteine werden auf neue Systeme portiert und für die restlichen ist das nichts anderes als ein Wechsel der URL des Webservices, oder nichtmal das wenn man mit redirect URLs oder ähnlichem arbeitet.
Filed under: IBM Notes/Domino
Kundenorientierung: DOCHOUSE ist auf neustem Stand
Kundenorientierung: DOCHOUSE ist auf neustem Stand
E-Mails kosten uns zu viel
Strings of Hope Update!
Kurzfilm über die Augsburger Puppenkiste ist bald fertig.
Doch mal wieder 3D-gedruckt
Totgesagte leben länger
Super ehrliches #Panel: @PeterGeissler1 @WinfriedFelser @alecmcint @yolante @olewin @alecmcint #cebiteda #cebit2016 pic.twitter.com/ftefUXQTa2
— Harald Schirmer (@haraldschirmer) 16. März 2016
Das CeBIT Bashing ist gerade groß in Mode. Der coole Nerd und wahre Kenner fährt natürlich zur SXSW. Aber ich kann nur sagen: Ich war noch nie in meiner mehr als 20 jährigen Hassliebe zur CeBIT so zufrieden heimgekehrt. Das lag vor allem an der toll organisierten und gut besuchten CeBIT Enterprise Digital Arena, an deren Teilnehmern und Sprechern und dem Austausch auf diversen Veranstaltungen. Extrem überrascht war ich auch über die Zahl der Teilnehmer. Ich kenne aktuell keine offiziellen Besucherzahlen. Aber gefühlt waren wesentlich mehr Fachbesucher in den Veranstaltungen als im letzten Jahr.
Drei Tage habe ich zwischen Halle 2 und Halle 4 verbracht und eine Menge mitgenommen von #IBMCebit, #DNUG, #CeBITeda, #SBCDACH und vielen Veranstaltungen mehr.
Noch eine erstaunliche Entwicklung: Facebook stirbt ja bekanntermaßen schon lange, weil es nur noch aus Werbung und Katzenvideos besteht und unser aller Gedächtnis kontrollieren will. Twitter stirbt eh, weil es irgendwann den Stream filtert und eigentlich auch schon auf die Seite der bösen Mächte wechselt. Im Rahmen der CeBIT habe ich das Gegenteil erlebt. Auf Konferenzen geht Twitter immer, die Geschwindigkeit des Austausches macht schnelle Reaktionen und Diskussionen noch während der Sessions spannend. Aber Facebook hat sich als sehr lebendige und hochwertige Plattform für den Austausch bei der CeBIT Enterprise Digital Arena erwiesen über das Ende der Veranstaltung hinaus. Lange, intensive Diskussionen, quasi die Fortsetzung der Dialoge auf den Bühnen ohne 140 Zeichen Begrenzung und breitem Publikum.
Besser als Harald kann man die Cebit Enterprise Digital Arena nicht zusammenfassen, hier der -> Link zu seinem digitalen Tagebuch.
Viele Projekte und Vorhaben sind in den 3 Tagen entstanden. Wenn nur ein paar von diesen Pflanzen austreiben, dann hat es sich noch mehr gelohnt.