Product Ercato

Ercatons

Ercatons sind die Bausteine in unserer Referenzimplementierung des Organic Programming.
Diese Referenzimplementierung ist Product Ercato: Eine virtuelle Maschine (VM) auf Basis von Java EE (einem Enterprise Application Server). Sie bildet die Laufzeitumgebung für Ercatons.

Ein Ercaton ist dabei die Synthese eines Objektes (klassischer objektorientierter Sprachen) und eines Dokumentes (wie einer Webseite bzw. einer XML-, JSON-Datei etc.). Es ist grob-granularer als ein typisches OO-Objekt und verkörpert ein Ding der realen Welt dabei so perfekt wie nur theoretisch möglich.


Microservices

Da Ercatons einzeln oder im Verbund u.a. die vollständigen Eigenschaften eines Microservice umfassen, lässt sich Product Ercato auch als Framework oder Anregung begreifen, mit Microservice-basierten Patterns zu entwickeln.

Wir setzen Produkt Ercato erfolgreich in eigenen Projekten ein und können so kosteneffektiv und agil Vorgaben umsetzen. Ferner steht es als Instrument in gemeinsamen Projekten mit dem Kunden bereit.

Organic Programming

Living Pages Research GmbH wurde 1999 aus der Erfahrung mit Enterprise-IT Projekten gegründet. Wir mussten (und müssen) beobachten, dass der Aufwand mit steigender Projektgröße oft geradezu explodiert; und zwar ohne Pendant in der realen Welt, die die IT ja "nur" abbilden muss.

Wir sind ein kleines Team aus Programmierern und Theoretischen Physikern und haben uns gefragt, ob es nicht besser geht. Heraus kommt fast "zwangsläufig" (so kommt es uns nun vor) eine Softwareentwicklungsmethode, die sich an der natürlich vorkommenden Komplexität von Systemen orientiert: Organic Programming.

Der Begriff beschreibt das organische Wachstum von komplexen Systemen. Engl. auch "Thing-oriented Programming" genannt, da "engl. organic" als "biologisch" verstanden wird. Der Ansatz ist auch Teil der "Organic Computing Initiative" der Gesellschaft für Informatik (GI e.V.).

Das Ergebnis erlaubt es Softwaresystemen tatsächlich, analog zu realen Systemen in Natur und Technik organisch zu wachsen und aufeinander aufzubauen. Dies umfasst aber nicht nur die Eigenschaften von Microservices, die sehr auf Deployment, Testen & Fehlertoleranz, und Anpassungsfähigkeit abzielen. Sondern auch die Abstraktion von Systemen, Wiederverwendbarkeit, Abbilden von Ähnlichkeiten und Ausnahmen, Robustheit, Self-X, u.a. Selbst-Beschreibung und Autonomie etc. Sowie die Reduktion des Programmierens auf den algorithmischen Teil eines Systems. 


Verfügbarkeit

Seit den ersten Veröffentlichungen, u.a. OOPSLA 2005, hat sich der Mainstream der Softwaretechnologie stark in die von uns vorgeschlagene Richtung entwickelt: REST-APIs, prototyp-basierte Programmiersprachen wie mit Node.js, Microservices etc. Allerdings bleibt der aktuelle Stand der Technik noch weit hinter unserer ursprünglichen Vision, oder unserer eigenen Implementierung (Produkt Ercato) zurück.

Ercato ist bei Großkunden im langjährigen missionskritischen Einsatz und basiert auf dem Java-EE Framework und weiteren Programmiersprachen wie Javascript und XML. Es ist auch Basis von Diplom- und Doktorarbeiten.

Wir bieten, sofern gewünscht, Produkt Ercato z.Zt. nur ausgewählten Projektkunden an. Allerdings arbeiten wir daran, die Spezifikation in der Open Source zu veröffentlichen und so weitere Implementierungen zu ermöglichen. Ferner sind die Entwurfsmuster (u.a. eben Microservices), die das Arbeiten mit Ercatons erlauben, frei verwendbar. Noch ist nicht entschieden, ob wir eine Version unserer Referenzimplementierung unter eine Open Source Lizenz stellen werden.


Weitere Literatur & Links