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 best solutions below
Related Questions in ARCHITECTURE
- Is it recommended to use Node.js for an online room booking web application?
- Defining Callbacks for custom Javascript Functions
- iOS: app doesn't pass the upload for the architecture
- What is the value of multiple Hybris extensions?
- os kern error : "ld: symbol(s) not found for architecture x86_64"
- How to avoid context in business layer
- Libgdx: Objects creating other objects
- Do software engineers in general have no idea about Software Architecture Design?
- Java generic class that contains an instance of implementation of generic interface
- Web application architecture, N-tiers, 3 tiers or multi-layer
- Is having 3 layers Controller, BO and DAO a standard way? why not just Controller and DAO?
- Architecture for creating a JavaScript framework
- Symfony2 proper use for services
- Refactor some calls on each Zf2 controller action
- Architecture - Task Scheduling (Data File Processing) - Windows Service
Related Questions in OSGI
- Eclipse OSGI unsatisfied constraint
- How to run Master Server from Equinox OSGi console?
- How to start a clean publishing instance and sync everything including OSGi bundles?
- @Transactional with xml-defined bean not working. (OSGi)
- How can single instance of an OSGI factory configuration be read from Java in CQ
- OSGi Component's default configuration value contains escaped backslash
- Third party OSGi library dependency conflict
- Apache sling : org.apache.sling.api.resource.PersistenceException: Unable to create node at /var/discovery))
- OSGI compatible artifact for jaxb2-basics?
- Modules Integration and Security in spring
- How to set a system property for the log4j2 JUL adapter in an OSGi environment
- Avoid copying some packages to OSGi Bundle
- AEM as IDP( Identity Provider) for CRM using SAML
- OSGI+CDI: strange behaviour with system printers detecting
- Getting ClassNotFound for PaxExam Option class when running test
Related Questions in SERVER-APPLICATION
- how to receive msg from client app through TCPserver in WPF
- using javascript regexp to match log file tail
- 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
- Websphere instalation v 7 Error
- How to make sure that a PHP page is called from my mobile app
- Node.js app that runs without a user and stores data in a database
- Is there any point in supporting byte-range requests for VBR (variable bitrate) audio?
- Java application that updates itself?
- remove apple server app on osx 10.8
- enable disable option of console output in multithreaded applications
- Building 3rd party server app to connect GCM from Android over xmpp
- Web server script running continuosly
- server application wildfly(jboss)
- Obtain servlet response when using Cross-Context
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)
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?
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.