Smalltalk

GLOSS - A GLSP Model Server on the Smalltalk Platform

Can Smalltalk serve as a modern platform for graphical modelling tools — and what does implementing the GLSP protocol reveal about its strengths and limitations?

These slides accompany the paper: GLOSS - A GLSP Model Server on the Smalltalk Platform

The Graphical Language Server Protocol (GLSP) extends the widely adopted Language Server Protocol into the graphical modelling domain, enabling web-based modelling clients to communicate with back-end model servers in a loosely coupled, standardised way. Existing reference implementations exist in Java and TypeScript, but no Smalltalk implementation existed at the outset of this project. Graham McLeod and Gareth Cox set out to build one — christened GLOSS (Graphical Language Object Server in Smalltalk) — using Pharo, and to evaluate how well GLSP maps to the architecture of the authors' existing EVA graphical modelling environment.

The paper documents the design and implementation of GLOSS, tracing the decisions made and challenges encountered, and provides a detailed architectural comparison between the GLSP approach and the EVA/GM system developed over two decades at Inspired. The comparison is striking: the Smalltalk implementation of a multi-model-type server supporting the full GLSP protocol runs to under 4,000 lines of code, compared to over 58,000 lines for the Java reference implementation of a single model type. Beyond code volume, the paper identifies nine concrete limitations in the current GLSP protocol — including the absence of model type support, server-side symbol management, and item reuse across models — and proposes specific remedies for each.

For practitioners working on modelling tools, architecture repositories, or graphical language design, this paper offers both a working proof of concept and a substantive critique of an emerging standard.

Originally published as a conference paper by Graham McLeod and Gareth Cox at the International Workshop on Smalltalk Technologies (IWST 2024), Lille, France, 2024.

More Insights Without More Effort: Polymetric Modelling and Visual Intelligence in Enterprise Architecture

How can enterprise architects extract far more insight from their models without significantly increasing the effort required?

The effort required to collect, validate, analyse, and report on enterprise architecture information is itself one of the biggest obstacles to EA delivering value — and yet most approaches simply accept that effort as a given. This 2013 presentation by Graham McLeod challenges that assumption directly, arguing that the right combination of integrated meta models, inferencing, derived values, and visual techniques can dramatically increase the insight produced by an EA repository without requiring proportionally more effort to maintain it. A particularly compelling section introduces polymetric diagramming — a technique that modifies the visual properties of model symbols (size, colour, shape, border width, position) based on the actual data values of the objects they represent, turning what would otherwise be static structural diagrams into rich, information-dense pictures that exploit the human visual system's innate ability to detect patterns, movement, and anomalies. Worked examples show function models where symbol width reflects delay time, process models where width maps to duration, height to cost, and colour intensity to resource consumption, and application maps clustered and sized by investment or number of non-standard interfaces. The underlying architecture — a separation of logical model types from their visual representations, with polymetric specifications scripted in a flexible DSL — is implemented in Pharo Smalltalk using the Mondrian and Roassal graphics libraries and the EVA Graphical Modeler. For practitioners wrestling with the gap between the volume of data in their EA repositories and the quality of insight they can extract from it, this presentation offers both a compelling vision and a concrete technical path.

Originally presented by Graham McLeod at an Inspired event, September 2013.

Meta Meta Model Extensions for Managing Large-Scale Collaborative EA Modelling

How do you extend enterprise architecture meta models to keep large-scale collaborative modelling manageable?

When enterprise architecture modelling moves beyond a single expert working alone — across teams, organisations, time zones, and languages — the meta model that was perfectly adequate for small-scale work begins to break down. Ownership conflicts, information overload, incompatible versions, and variable data quality all emerge as serious practical obstacles. This 2008 presentation by Graham McLeod, delivered at EMMSAD 2008 (Exploring Modelling Methods for Systems Analysis and Design), addresses these challenges head-on with a set of formal but pragmatic extensions to EA meta models and meta meta models, developed through real-world experience building and operating the EVA collaborative repository. The core constructs introduced include context — a powerful, reusable mechanism that operates at the meta meta level and addresses domain, ownership, authority, timeframe, status, and language in a unified way; relationship typing, which brings precision to how model elements connect; and a model type abstraction that subsumes graphical models, documents, reports, and user interfaces under a single coherent concept. A three-layer object architecture — implemented in Smalltalk — is shown to be essential for the flexibility required, with filters implemented as a specialisation of model type and time, version, and baseline tracking unified through relationships. The resulting conceptual model is notably compact given the range of challenges it addresses, and the presentation is candid about both the expressiveness achieved and the performance challenges encountered in implementation. For practitioners building or evaluating EA repository tooling, this is a rare account of what the meta model level actually needs to look like in production.

Originally presented by Graham McLeod at EMMSAD 2008 (Exploring Modelling Methods for Systems Analysis and Design), Montpellier, France, June 2008.