[Article] Safe, IDE-Friendly, Extensible, XML Schema
I show how to make schema for XML documents that are safe, IDE-friendly, and extensible. This is particularly used for defining Domain Specific Languages for Java configuration via Spring 2.0, but the approach is general.
There is nothing particularly new here, but I couldn't find suitable documentation when I needed this information - I hope this helps others in the future.
[Article] Spring, Mule, Maven: Lightweight SOA with Java (2)
This replaces our 2006 paper and includes a description of the POrqi library.
We show how Spring and Mule can help implement services within a Java--based SOA (Service Oriented Architecture). The presentation has a practical emphasis, based on our own experience.
The approach is minimal and incremental, building around `core' business logic implemented in `plain' Java (POJOs). We show how careful design and choice of technology can extend this, focusing on messaging.
[Technical Note] A Simple, Lazy, Expression Evaluator
I explain the motivation for, design of, and experience using a simple domain-specific language in Java.
[Technical Note] A Tiny Workflow in Spring
I define a simple workflow within Spring, give some examples, and discuss its use. While is works well for prototyping and structuring simple flow-based processes, it doesn't scale well if the control becomes complex.
[Presentation] FITS Files and Regular Grammars: A DMaSS Design Case Study
[Article] FITS Files and Regular Grammars: A DMaSS Design Case Study
The NOAO DMaSS (Data Management and Science Solutions) Platform has already passed through several development iterations and includes a Database (DB) Loader service. Experience using that service has been mixed.
Recent discussion of the proposed Metadata service focused on `vocabularies'. We realised that we could treat FITS headers as a formal language and that this language was described by a regular grammar. It then became clear that part of the DB Loader's configuration was, in fact, a regular expression (expressed in several files of rather verbose Spring XML!) Furthermore, a separate (and equally confusing) configuration was now clearly related. And we could extend things further: the same data structures can help detect `almost duplicate' data reliably.Reviewing our results in terms of the system architecture, we suggest moving newly identified responsibilities to appropriate services. The end result is a cleaner design, better integrated within our architecture, and in which we have much more confidence. What started as an idle `theoretical' curiousity yielded very practical results. We think this is a fascinating case study.
[Collection] CTIO / DPPS / Archive - Recent Work
[Article] Lightweight ESOA with Java
La arquitectura SOA utiliza servicios para integrar sistemas heterogéneos. Enterprise SOA (ESOA) extiende este enfoque a la estructura interna de sistemas, lo que ha introducido nuevos desafios. La industria de software ha respondido con los ESBs — herramientas bastante complejas. Al mismo tiempo ha habido un movimiento hacia el desarrollo `lightweight', con su énfasis en objetos simples de Java (POJOs) y la injección de dependencias.
Este paper presenta un enfoque `lightweight' al desarollo con ESBs.
Service Oriented Architecture (SOA) integrates heterogneous systems via services. Enterprise SOA (ESOA) extends this approach to internal development. This has introduced new challenges and vendors have responded with complex Enterprise Service Bus (ESB) technologies. At the same time, there has been a movement towards `lightweight' development, with an emphasis on Plain Old Java Objects (POJOs) and Dependency Injection.
This paper brings a `lightweight' approach to development with ESBs.
The papers here were, generally, written on my own time and express my own personal views (and those of my co-authors). They also, necessarily, discuss my work - that does not mean that they describe official policies or viewpoints (mistakes, in particular, are my own).