Services / Serviceorientierung: Gefahr der Begriffsverwirrung !

Der Begriff „Service“ hat eine Vielzahl von Übersetzungen / Bedeutungen (siehe Abbildung unten aus dict.leo.org).

Dabei reicht die Bedeutung von Dienst oder Dienstleistung über Kundendienst / Wartung bis hin zum Gottesdienst, Aufschlag beim Tennis und Tischgedecken.

Selbst im IT-Kontext wird der Begriff „Service“ in einer Vielzahl von Bedeutungen benutzt:

  • Services in einer SOA (Serviceorientierte Architektur): Funktionalitäten, die von einer Softwarekomponente bereit gestellt werden (z.B. über SOAP / REST-Technologien).
  • IT-Services, wie sie z.B. in ITIL definiert werden.
  • XaaS: z.B. Nutzung von Software über das Internet (SaaS – Software-as-a-Service)
  • Service-Dienstleistungen, die z.B. ein Hardware-Anbieter zusätzlich erbringt.
  • … und einige mehr

Es gibt keine „richtige“ oder „falsche“ Definition … aber ich möchte an dieser Stelle nur nocheinmal darauf hinweisen, dass man sich immer über die Verwendung des Begriffs einig sein sollte, wenn man miteinander komuniziert.

Interessant ist, dass der Begriff i.d.R. positiv belegt ist, so dass man diese Mehrdeutigkeit durchaus auch vorteilhaft nutzen kann … jeder möchte „serviceorientiert“ sein, auch wenn man evtl. etwas anderes darunter versteht 🙂

Ich bin selbst schon einmal wegen eines derartigen Missverständnisses durch halb Deutschland gereist 🙂

Übersetzungen des Begriffs "Service"
Übersetzungen des Begriffs „Service“

Oliver Höß

Codenvy: Cloud-Entwicklungsumgebung unterstützt jetzt auch Rich-Client-Entwicklung (z.B. Android oder Java/Swing)

Die in einem früheren Artikel bereits vorgestellte Cloud-Entwicklungsumgebung Codenvy, die bisher vor allem die Entwicklung von Web-Anwendungen im Fokus hatte, unterstützt nun auch die Entwicklung von Rich-Client-Anwendungen bzw. Anwendungen, die eine eigene Rechnerumgebung benötigen.

Beispiele hierfür sind Android-Applikationen, die ein Android-Gerät bzw. einen entsprechenden Emulator benötigen oder Java/Swing-Anwendungen, die zusätzlich zur Java-VM noch eine Umgebung mit Bildschirmausgabe benötigen.

Ermöglicht wird dies durch das „Runner“-Konzept in Codenvy, das nun das automatische Starten einer VM (Virtuelle Maschine) mit einer geeigneten vordefiniertem Umgebung ermöglicht.
Auf diese VM kann man sich dann anschließend mit einem Remote-Tool (noVNC) verbinden.

In der kostenlosen Version bestehen noch einige Einschränkungen, insgesamt bin ich aber von dem Konzept sehr positiv angetan … insbesondere in Kollaborationsszenarios sowie in der Lehre ergeben sich interessante Potenziale.

Codenvy - Anwendungen in der Cloud entwickeln
Codenvy – Anwendungen in der Cloud entwickeln

Oliver Höß

Cloud IDEs – Entwicklungsumgebungen in der Cloud

Im Rahmen des Cloud-Trends sind bereits eine Reihe von Ablaufumgebungen, wie z.B. die Google App Engine (GAE) oder Amazon Elastic BeansTalk, nach dem PaaS-Paradigma (Platform-as-a-Service) in die Cloud gewandert. Daher ist es naheliegend, sich auch mit der Migration der IDEs in die Cloud zu beschäftigen, so dass die Softwareentwicklung von überall, insbesondere ohne eine lokale Entwicklungsinfrastruktur, erfolgen kann (DaaS, Development-as-a-Service).

In der letzten Zeit haben sich daher eine Reihe von Entwicklungsumgebungen in der Cloud entwickelt, die naturgemäß bereits Schnittstellen zu weit verbreiteten PaaS-Umgebungen und Cloud-basierten Sourcecode-Management-Systemen (z.B. auf GIT-Basis) besitzen und primär für die Web (HTML/CSS/JavaScript) bzw. Mobil-Entwicklung gedacht sind. Beispiele hierfür sind:

  • Codenvy (u.a. für Java, PHP, Python, Node.js, kostenlose Basis-Version)
  • Orion Hub (kostenlos, basiert auf Eclipse Orion, u.a. Java, erweiterbar über PlugIns)
  • Cloud9 (freie Einstiegsversion, u.a. PHP, Python, Ruby, Node.js, Collaboration-Features)
  • DevTable (freie Einstiegsversion, auch ausgefallene Features, z.B. LaTeX)

Im Internet gibt es eine Reihe von relativ ausführlichen Gegenüberstellungen (z.B. hier, hier und hier). Naturgemäß verändern sich diese Plattformen jedoch schnell, so dass eine Untersuchung immer nur einen aktuellen Stand darstellen kann.

In der folgenden Abbildung ist beispielhaft der Wizard für die Erstellung eines neuen Projekts in der Cloud IDE Codenvy dargestellt. Nach einer Auswahl der Technologie bzw. Entwicklungssprache (z.B. Java Web Application, Python, PHP, …) kann in einem zweiten Schritt eine passende PaaS-Umgebung (z.B. Google App Engine, Heroku, AWS Elastic Beanstalk, …) ausgewählt werden. Beispielsweise kann auch die in einem früheren Blog-Eintrag beschriebene Kombination PHP auf der Google App Engine gewählt werden, so dass sehr schnell ein Projekt zum Laufen gebracht werden kann.

Die Cloud IDE Codenvy - Neues Projekt anlegen
Die Cloud IDE Codenvy – Neues Projekt anlegen

Oliver Höß

Google App Engine unterstützt jetzt auch PHP

Die Google App Engine (GAE) unterstützt seit Oktober 2013 nun auch die beliebte Web-Entwicklungssprache PHP.

Die Google App Engine ist eine Plattform, die gemäß dem PaaS-Paradigma (Platform-as-a-Service) im Rahmen der Google Cloud Platform das Deployment von Anwendungen in der Cloud unterstützt. Eine geringfügige Nutzung ist kostenlos, für die volle Funktionalität fallen Kosten an. Neben den bereits seit längerem angebotenen Sprachen Java, Python und Go ist seit Oktober auch PHP verfügbar.

Es wurden bereits eine Reihe von PHP-basierten Anwendungspaketen, z.B. WordPress, auf der App Engine zum Laufen gebracht (ein Tutorial finden Sie hier). Ggf. sind kleinere Anpassungen, z.B. hinsichtlich der persistenten Speicherung von Daten mit Google Cloud SQL notwendig. Nach einer ersten Untersuchung scheint es so, dass bei Google Cloud SQL jedoch leider das Paradigma der kostenlosen Nutzung der Einstiegsvariante nicht mehr gilt.

PHP-Unterstützung in der Google App Engine
PHP-Unterstützung in der Google App Engine

Oliver Höß