DZone (https://dzone.com/), one of the world’s largest online communities and leading publisher of knowledge resources for software developers, recently published my article: “Data Streaming in OSGi R7 applications With OSGi R7 Push Stream and Server Sent Events” (https://dzone.com/articles/data-streaming-in-osgi-r7-applications-with-osgi-r)
#DZone #OSGi #Java #Data-Streaming #Push-Stream #SSE
JAXenter (https://jaxenter.com/), a major professional information portal for enterprise technologies, recently published my article: “Automated build and deployment of Docker containerized OSGi applications on Kubernetes” (https://jaxenter.com/osgi-applications-on-kubernetes-159310.html)
#JAXenter #Docker #Kubernetes #OSGi #automation
Let’s move on to automating Kubernetes deployments now, having automated building of Docker images containing latest versions of our applications and pushing them to registry, as described in my most recent article “Painless Monolith breakup or how automation and efficient design enables smooth transitions“.
This is the last article in this series, explaining in more detail the technologies used in the Automated Linguistic Analysis application https://github.com/ideas-into-software/automated-linguistic-analysis; you can clone, configure and deploy the application yourself–all steps are documented.
Having our code modularized, select modules already communicating asynchronously via a messaging solution of our choice, transitioning the Monolith application to work in a cluster is simply a matter of deciding which of those modules should comprise separate containers.
With automation tools used in this complete application https://github.com/ideas-into-software/automated-linguistic-analysis available for cloning and deploying yourself, some of which I will describe in more detail in this article, much of the mundane, repetitive tasks can be configured once and executed in a matter of seconds during Maven’s install and deploy phases.
1. Let’s say we decide that our automated transcription https://github.com/ideas-into-software/automated-linguistic-analysis/tree/master/service-transcription-impl…
Continuing on the GUI thread, it’s a good time to provide more information regarding the single page application tying together all the user-facing functionality, briefly touched upon in the previous article “Implementing efficient monitoring of long running operations with OSGi R7 Push Stream and Server Sent Events”. As a reminder, all of the code is available in public repository https://github.com/ideas-into-software/automated-linguistic-analysis; you can clone, configure and deploy the application yourself–all steps are documented.
Supplemented with OSGi R7 Promises, which I talked about in my most recent article “Implementing asynchronous processing with OSGi R7 Promises”, your users will not only be able to use your application in a…
One of the 12+ implementations of OSGi R7 specifications utilized in the Automated Linguistic Analysis application I put together https://github.com/ideas-into-software/automated-linguistic-analysis is OSGi R7 Promises. You can read the spec, but examples of actual applications utilizing this technology are literally non-existent in public repositories.
In my previous article “Using Camel and RabbitMQ in an OSGi R7 application, including custom message types” I provided background information regarding technologies used in this application https://github.com/ideas-into-software/automated-linguistic-analysis. In this article, I would like to fill this hole of lack of examples, and provide an overview of how I implemented asynchronous processing with OSGi R7 Promises…
One of the many good practices OSGi frameworks impose is properly modularizing your code. Having your app modularized, you have quite a few choices when it comes to communication between those modules. You can build your applications as “MonolithFirst”, but you can decide up-front to choose a communication style which will not hinder breaking them down into separate containers so e.g. they can be deployed in a cluster.
With OSGi, of course, a direct communication style such as declarative services could be your first choice. But what if some of the operations are long running and therefore an asynchronous…