Effective OSGi
OSGi is the most complete and mature platform for developing modular software systems. With new tools and a simplified programming model, it is now much
more approachable than in the past. With this book, I will show how to quickly accelerate
your productivity using the latest techniques and tools.
The provisional title of the book is "Effective OSGi". It will not
be a massive tome, describing in detail all of the low-level APIs.
Rather, it will be a concise and opinionated guide to what you most need
to know.
About Me
I started using OSGi in 2003 and since then have become widely known as an expert and spokesperson for the technology.
Many years ago I started writing a book "OSGi in Practice". The early draft of this book was popular, but it took the wrong approach. By starting with the lowest level details it failed to convey the spirit and beauty of OSGi. It did however demonstrate that I can write, and explain complicated concepts in an accessible way.
I have long planned to rewrite "OSGi in Practice". The time is right now, but I am busy and I have a family to feed. I am running this campaign in order to allow me to take a break from my usual commitments in order to finish the new book.
Why Now?
There is a huge opportunity for developers who understand OSGi and are able to take advantage of it. The trends driving this are:
- The Internet of Things ("IoT"), which means that code must run on an increasingly wide range of devices, and must be easier to release, update and maintain. OSGi is very well suited to this new environment – this is where OSGi started, and it has always had a strong focus on scalability: both scaling up to massive deployments but also scaling down to small devices.
-
Cloud – Running your application in the cloud means you need to manage the delivery of the right software components to the right nodes. OSGi offers powerful infrastructure for managing this, in much more flexible ways than traditional script-heavy, push-based operations tools. Also the separate parts of your application need to discover and talk to each other – OSGi addresses this with its Remote Services specification.
-
Microservices – A recent trend that encourages fast, independent delivery of small units of code into production. This maps well onto the delivery model that OSGi has always supported, which together with Remote Services makes OSGi an excellent implementation technology for microservices.
-
OSGi Release 6 – The latest release of OSGi includes new specifications for web development, and improves and simplifies some existing specifications (such as Declarative Services). These make the development of OSGi applications significantly easier and faster.
What About...?
... Other OSGi Books
OSGi is mature and many books have been published about it. Some of them were good for their time, but are now out-of-date and confusing. There is a need for a new book that cuts through all the many possible ways to do things and shows the right and easy way.
... Java 9 Modules (Jigsaw)?
The Java 9 module system (commonly known as Jigsaw) does not present an existential threat to OSGi. In fact they are highly complementary technologies. In my book I will explain why it still makes sense to use OSGi for application modularity post-Jigsaw, and how to make them work together.
Risks & Challenges
Not every developer is cut out to be a writer. I can write – as shown by my previous book and my blog – and I know and care a lot about this technology. I really want to write this book to help people understand OSGi and use it to improve their code.
The main risk for the campaign is not reaching the funding goal. Since the purpose of the funding is to fund my time while writing, it will simply take a little longer to complete in this case.
Other Ways You Can Help
Please spread the word about this campaign, and please provide feedback:
- What topics should it cover?
- What kind of examples should be shown?
- Aside from the obvious (copies of the book), what kinds of perks should be offered?