Domain Services

Apache Isis automatically injects domain services into entities. I tend to think of these services as either:

  • providing a bridge over to some other business system (eg payroll, general ledger etc)
  • providing a technical capability (eg email, SMS, PDF rendering, barcoding etc), or

The exact requirements for the former category "business" domain services are likely to vary from application to application, so there's probably little that extra that we could offer here.

The requirements for "technical" domain services are likely to be more standardized. When I think of the domain services that we've developed for the Irish benefit system, a lot of them could be used in any context.

Therefore I suggest that Apache Isis should provide a suite of domain service libraries that can be used "as is" by application developers. This page lists some of the ideas that I've had.

Ideas

In several of these technologies require fetching data from an object graph. A useful building block is Isis' xmlsnapshot capability. It's then quite easy to write a service that fetches out information from this xmlsnapshot using a set of xpath expressions.

In terms of ideas, some to get started:

  • email
    • send out an email, perhaps in different formats, with to:, cc:, bcc: lists
  • SMS
    • send out an SMS/text message
  • convert into PDF
    • we've used two technologies in Ireland. The first was using XSLFO (we used Altova Stylevision as the tool for generating the stylesheets). The second was Adobe FDF, which is basically the data overlaid onto a PDF form
  • convert into RTF
    • have used this using JFOR project on sourceforge. It did have a few flaws when I used it a couple years ago but may be another nice Domain Service providing Microsoft Word/Wordpad output.
  • barcoding
    • add a barcode onto a PDF
  • publish an XML message onto a messagebus
  • Calendar
    • Import/Export VCAL into *.applib.value.Date/DateTime (or which-ever appropriate)
      • Support repeating events
  • No labels