Danny Gräf
IMO what is DeepaMehta?
- hypergraph with in-line schema support
- client / server environment with plugin support
IMO what is DigitalMemex??
- prototyping environment: UI binding with view model and template renderer that supports live editing
- http://codepen.io with live modelling
DM4 bottlenecks, todos, changes, …
- blueprints API compatible mehtagraph
- multi tenancy (brain)
- database independent
- large data sets (titan <-> casandra|hbase)
- remote graph access, especially in test environment
- websocket support (OSGi <-> ActiveMQ <-> camel <-> stomp <-> socket.io)
- webclient
- client interaction (repl)
- map and topic live collaboration (needs websocket)
- spreadsheet renderer (include dm4-webclient prototype)
- navigation and routing support (sammy)
- association type editor and customizable renderer
- svg map renderer
- browser interaction
- styling a unique topic
- mini- and uglify (require amd)
dmx DeepaMehta X Enterprise
verteilte asynchrone Server / Client Lösung mit beliebigen P2P Verbindungen
minimale Integration von Standardkomponenten
ANY Device Plattform mit APPs auf unterschiedlichsten Plattformen
Map-basierte individualisierbare generische UI
Server
kann von mehreren Anwendern genutzt (z.B. Teams, Büros, Firmen)
externe Graph DB über blueprints: Neo4j, Titan (hbase, Cassandra), OrientDB, ...
Load Balancing: Aufsplittung in Daten-, Worker-, Query-, Filter-, Web-, Message-, ...-knoten
AAA Authentication + Accounting: LDAP, OpenID Authorization: ACL Umsetzung
Polyglot Persistence
http://martinfowler.com/bliki/PolyglotPersistence.html
externe Datenquellen: SQL, Dateisystem, Java Content Repository JCR (Apache Jackrabbit)
externer Index und Suchservice: Solr
verteilte Transaktionen mit Java Transaction API JTA
Client
kann auf dem Desktop einfach gestartet und lokal genutzt werden
Web Application Archive WAR
kann einfach in einem Servlet Container gestartet werden
semantische Datenhaltung
kollaboratives verteiltes Content Management (shared editing, PGP signed)
zusätzliche Topic Informationen wie Geo Daten automatisch zuordnen
Traversierung API (Adaptierung von blueprints pipes?)
Query Cache, Result Paging, Sequence
Referenzierung von Textzeilen, -absätzen, -teilen
Versionierung
graph databases and revision history Alle Transaktionen als Commit Knoten in einer Sequenz ablegen (git nutzbar?)
generischer Webclient
Modellierungswerkzeug (Typen und Instanzen interaktiv ändern)
Association Type Editor (Richtung, Farben)
SVG Renderer mit Map Overlay / Layern und Hierarchie Beispiele:
- durchsichtige Rahmen die das Fenster der anderen User auf der Map anzeigen
- Polygone, Notiz Zettel
- Komponenten-, UML-Diagramme
HTTP Push Kommunikation zw. dezentralem Backend und Webclient über Messages (EIP, JMS, Stomp, ...)
generische Fehlerbehandlung! keine Nachrichten sind Gute!
Script Topic Editor
Mit dem Datentyp Skript können Renderer und andere Client Komponenten als Topics gespeichert und im Browser bearbeitet werden (AMD, reload mit processing.js)
simpler IFrame Preview mit CodeMirror
Framework
modulares App Framework (Plugin, Bundle, Module)
Rapid Application Development RAD
Feature basierte Orchestierung mit in-line Plugin Management und Repository
Client Bibliotheken mit nativer API in mehreren Sprachen: Java, PHP, JavaScript?, ...
Core Plugins in mindestens zwei Sprachen: Java, Jruby, Scala, ...
Hot Deploy and Development
Equinox OSGi runtime (in Eclipse live)
Dateibasierte Bearbeitung mit live sync, wie Vertices in vert.x oder wie Play!
Personal Information Management PIM
alle auf Smart Phone unterstützten PIM Daten synchronisieren: Kontakte, Termine, Bilder, Musik, ... wie iTunes, iGoogle, ...?
SMTP, IMAP, Active Sync, iCal, ...
Domain / Workspace
können im Peering synchronisiert (Kopie) und für live Zugriffe (Proxy) frei gegeben werden
Live Coding Environments
Recherche und kleiner geschichtlicher Rundblick, die meisten Projektseiten enthalten kurze Intro Videos
Mit Lisp und Scheme fing alles an und auf SmallTalk bauen nahezu alle Desktop Paradigmen seit den 80'er.
sehr aktiv ist durchgehend die musikalische und visuelle Künstlerszene, ein Portal mit aktuellen Entwicklungen und vielen Video Beispielen ist TOPLAP
Begriffsklärungen:
- Live Coding = in der laufenden Umgebung die Welt ändern
- Homoikonizität = Selbstabbildung
Lisp
eine aktuelle JVM basierte Implementierung ist Clojure
SmallTalk
es gibt einige kommerzielle Implementierungen
seit langem gibt es die Open Source Umsetzung Squeak und darauf basierend einige Kollaborationsplattformen OpenCobalt und OpenCroquet
eine Modularisierung von Squeak, mit der Bestrebung eine reproduzierbare und kontinuierlich testbare Umgebung zu schaffen, ist im Projekt Pharo realisiert
live im Browser kann SmallTalk auch:
- WebApp Framework Seaside
- jQuery AJAX integration Aida/Web
- JavaScript based SmallTalk implementation Amber
von !VMware supported gibt es mittlerweile GLASS (GemStone, Linux, Apache, Seaside, and !Smalltalk) Auszug aus dem Programming Guide
GemStone provides a wide range of services to help you build objects-based information systems. GemStone:
- is a multi-user object server
- is a programmable server object system
- manages a large-scale repository of objects
- supports partitioning of applications between client and server
- supports queries and indexes for large-scale object processing
- supports transactions and concurrency control in the object repository
- supports connections to outside data sources
- provides login security and account management
- provides services to manage the object repository
- provides comprehensive statistics and charting for performance tuning
REALLY NICE talk: http://www.youtube.com/watch?v=YX3iRjKj7C0
HyperCard
Vorgänger vieler dynamischer Oberflächen mit dem fast natürlichsprachlichen HyperTalk Eine Suche nach Videos zeigt wie weit die IT schon mal war...
Es gab auch Versuche die bestehenden Anwendungen ins Web zu bekommen, das Projekt TileStack ist dabei leider organisatorisch gescheitert
LiveCode
LiveCode ist eine kommerzielle Entwicklungsumgebung
multi Plattformen mit HyperTalk ähnlicher Sprache, trotz des Namens aber eher semi live ;-)
Lively Kernel
Lively Kernel JavaScript basierte Web IDE im SmallTalk Stil, aktuell weiter entwickelt am Hasso Plattner Institut (ist auch sehr aktiv in der Community, z.B. Seaside Guide und setzt SmallTalk in der Lehre ein)
spannende Entwicklung allerdings fehlt Kollaboration usw.
sehenswerte Videos
Text Interface
Acme
Plan 9 Editor der die Ausführung und Verlinkung von Text dynamisch ermöglicht.
Xiki
Xiki ist eine moderne Umsetzung von Acme auf Linux mit Erweiterungen u.a. für Datenbankzugriff und Browsersteuerung
Music Development
alle eine Videosuche wert, Wahnsinn was alles so geht ;-)
Attachments
-
dmx-architecture.png
(37.2 KB) -
added by Christiane 12 years ago.
DMX architecture