0

Apple's SMF includes, among others:

  • XPC (a form of inter-process communication, kind of service-oriented)
  • Integration with launchd (system-wide, OS-coupled lifecycle management of demons and services)
  • Queue Dispatch - async concurrency with multi-core support
  • Per-process security/privilege levels

AFAIK, it's a pretty consistent packaging of multi-tasked, service-oriented, OS-level demons and services.

I am looking for a Java lightweight equivalent, but I haven't been able to find a ready solution. My best bets so far are:

  • Apache Karaf or AIOLOS (providing the SOA bones)
  • Anyone of the Java-friendly IPC protocols (a replacement for XPC)
  • Java fork/join Executors (for the async concurrency and the load balancing)
  • Java Security (for the privilege levels)

But I am pretty sure there has to be something integrating at least three of the above in a nice Java-based framework. OSGI with out-of-the-box concurrency would already be something.

Any suggestions?

  • Here Apache Karaf is recommended with some add-ons. But I am not sure about the concurrency and load balancing requirement is fullfilled. https://stackoverflow.com/questions/24625030/java-open-source-framework-for-service-management?rq=1 – AmazingWouldBeGreatBut Sep 19 '17 at 07:00
  • What do you mean by "OSGi with out-of-the-box concurrency"? OSGi is a thread safe platform, and Java supports concurrency out of the box of course. – Neil Bartlett Sep 19 '17 at 10:37
  • Hi Neil! I feel it it a privilege to be talking to Neil Bartlett about OSGi! :) Well, I mean some ready-to-use solution that would manage OSGi services as concurrent work units - taking care of those issues for me. Something a framework that would implement OSGi services as Java Executors, would do it runtime-wide and would allow for declarative specifications of concurrencly policies, service-specifiic execution priorities, etc. But all of that pre-packaged on top of an OSGi runtime. – AmazingWouldBeGreatBut Sep 19 '17 at 11:06
  • You could look into OSGi Async Services -- see chapter 138 of the OSGi Release 6 specification. There is an implementation of this spec available in [Apache Aries](https://aries.apache.org/modules/async-svcs.html). For the rest of what you're looking for, those are things that can be built on top of OSGi but I'm not aware of a single product that packages them all up. – Neil Bartlett Sep 19 '17 at 11:55
  • Hm, Apache Aries was something I had had a look into, but not to deeply. My first impression was that it was far too much of what I was looking for and not lightweight to the extent I need it. But I will come back to it and make more of a serious examination. Frankly, I don't need much - basically bridging OSGi services into Java fork/join executors and some declarative configuration for concurrency policies and I'd be done. If Apache Aries turns to be too much bloated for this goal, I will follow your advice and implement it on my own. I just hate reinventing the wheel. – AmazingWouldBeGreatBut Sep 19 '17 at 12:50
  • I think you're looking at Apache Aries the wrong way. It's not a monolithic product, it's a collection of bundles. If some of those bundles help towards your goal then use them. If other bundles don't help you, don't use them. – Neil Bartlett Sep 19 '17 at 23:00
  • Incidentally I still don't understand what you mean by "bridging OSGi services into Java fork/join executors". Please can you clarify. – Neil Bartlett Sep 19 '17 at 23:01
  • You are right, I was looking wrongly at Aries - I can take whatever I need and just that. Thanks for the hint. About OSGi and fork/join: I'm sorry, my English lacks at times meaning. I basically mean services "enhanced for concurrency": each service is not only an OSGi service, but also a concurrent unit ot work (a thread) that can be scheduled by an Executor. In addition, a desired feature would be declarative configuration for managing concurrency priorities or job ("enhanced services") scheduling. – AmazingWouldBeGreatBut Sep 20 '17 at 07:27
  • @NeilBartlett - if you want, you may paste your comments about Aries as an answer and I will accept it. – AmazingWouldBeGreatBut Sep 20 '17 at 07:37

1 Answers1

0

Just writing @NeilBartlett's answer in the comments to my question:

Apache Aries. Then I could implement on top of it my own requirements without much effort.