I am going to implement a server application that should update client software remotely. Clients mostly use pull mechanism for receiving updated software.
As a beginner I am looking for architectures to implement this application. And I know that Life Cycle layer of OSGi would give such service.
I want to know is there any other architectures that give similar service to clients?
Comparable Architectures With OSGi?
219 views Asked by Reza At
1
There are 1 answers
Related Questions in ARCHITECTURE
- Where to store secret token for an embeddable web widget?
- Separation of Students and Users in NestJS Microservice architecture
- What's the right ZMQ architecture for my scenario?
- Javers in microservice architecture
- How to prevent users from creating custom client apps?
- How to manage different repositories for different clients with the same project?
- Adding users file storage feature to my application
- Transform Load pipeline for a logs system: Apache Airflow or Kafka Connect?
- Shoulld I decode JWT only on auth server?
- How to stored last ~1500 events in Sorted Set in Redis
- Should data be standardized on the backend or the client (front-end, mobile app)?
- Can I treat CNN channels separately to make placement predictions?
- How to handle sync distributed transaction in microservices?
- Database design, authentication and authorization in a microservices ticketing system
- Is there any example or design of a queue system in microservices?
Related Questions in OSGI
- Singleton to OSGi Declarative Services: Seeking Guidance
- How to use ExecutorService in Kubernetes PODs
- Liferay DXP Service builder @BeanReference field is null
- cant start bundle on apache felix
- Java OSGi implementation for the project
- How to update the resource property using the valuemap in the Sling servlet?
- Drools 8 OSGi support
- OSGi: missing requirement osgi.wiring.package with local bundle
- How to find correct AEM constant class names?
- KieServices are not injecting with guice
- Unknown OSGi execution environment: 'JavaSE-21'
- Java on AWS/EKS fails with resolving correct version of org.osgi.framework.launch.FrameworkFactory
- osgi.extender; (osgi.extender=osgi.serviceloader.registrar) in Jenkins
- How can i get the service ref after i changed org.apache.felix.scr.annotations to org.osgi.service.component.annotations
- Install feature webconsole in karaf 4.3.10 error needs osgi.http (not sure which jar package)
Related Questions in SERVER-APPLICATION
- How to clear all the sessions using ProtectedSessionStorage in blazor server app?
- How to customize the button responsive based on the size of the browser-window?
- Google OAuth2: perform token refreshing server-side while refresh token or authorization code acquired via mobile app
- how to receive msg from client app through TCPserver in WPF
- How can I migrate my JSF 1.2 project from WAS 7 to 9
- Node.js app that runs without a user and stores data in a database
- server application wildfly(jboss)
- Websphere instalation v 7 Error
- Is there any point in supporting byte-range requests for VBR (variable bitrate) audio?
- Java server that queries mysql database
- Creation of a client-server desktop application
- How to make sure that a PHP page is called from my mobile app
- Obtain servlet response when using Cross-Context
- Ability to rollback changes when insert data using a server API
- Building 3rd party server app to connect GCM from Android over xmpp
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
If you're writing an Eclipse based application then p2 is the probably the simplest way to go. But if your application is either maven built or you're intending to run more generically on other OSGi containers (Karaf, Felix etc) then you should consider an OSGi Bundle Repository (see standard spec) such as the Felix implementation. If the OBR doesn't quite do what you want, then is API is exposed so you can manipulate it.
The OSGi lifecycle you refer to will give you true hot-deploy (as well as other "perks" of modularity) but the automatic update functionality is much more high level and not part of the framework core (container don't have to implement a remote update mechanism to be compliant).
Where I work we're using Karaf XML features (sets of versioned bundles constituting functionality or an entire application) which are created as part of maven build. From the OSGi shell we can use commands to instruct the OSGi container to find and install these features. This is really neat from a controlled deploy point of view, but if you want fully automatic updates then an OBR is what you want.
If your question refers to alternatives to OSGi as the basis for an update mechanism, then you're looking at things like webstart (JNLP) etc - which will only give you updates at start up time.
IMO OSGi is worth investigating as it's very pleasant to code with and deploy to. As an update/plugin mechanism it cannot really be beaten and you can embed the framework or customize it easily.