We're working on a new architecture for the next version of the software that drives CAREO et al. One thing we want to do is rip some of the core data functionality into a separate framework (actually a set of frameworks) and have a server host application manage communication between core data and client apps (i.e., CAREO, ALOHA, etc...).
It would be nice if, in addition to web services (SOAP, XML-RPC), if we could use a higher performance messaging system for client applications residing on the same box (or at least on the LAN) than SOAP can provide (latency, marshalling, etc...)
Ideally, it would not be java-specific (so we could write funky C or Objective C apps that can communicate with Core Data), and at least be compatible with the SOAP implementation (so we don't have to duplicate everything underneath the communication layer).
The options I've come across are (with big thanks to Steve Zellers' WWDC2003 presentation):
- Mach Messaging
- POSIX pipes/sockets
- AppleEvents
- WebServices (SOAP/XML-RPC)
- JMS
Some of those are platform-specific (AppleEvents, Mach) or language-specific (JMS), others aren't exactly capable of running at native application speeds (WebServices).
I'll keep digging around looking for options. Any glaring omissions?