| How to configure mBS PE Framework? |
|
You can
configure the mBS Professional Edition framework and most bundles by
means of Java system properties specified in several manners:
- You can specify system properties in the default property files
common.prs (in <mBS>/bin/vms directory) and default.prs
(bin/vms/<vm_name> ). You can place JVM-independent system
properties in common.prs and those related to the JVM you are using -
in default.prs.
- Using the server script file provides a short way to configure
the system by means of environment variables and script options. The
server script file reads the values of the environment variables and
options, and sets the relevant system properties in the command line
for launching mBS.
For details on setting system properties in mBS, refer to the "System
Properties -> Setting System Properties" part of the User's Manual.
|
|
What are the benefits of mBS Professional Edition against mBS Equinox Edition? |
|
The
Professional Edition (PE) offers much broader operating system and JVM
compatibility, while Equinox supports Sun and IBM JDK on Linux and
these plus J9 for Windows only. The PE has full implementation of OSGi
Core and Compendium Specifications, Version 4, improved performance and
memory usage, JVM-specific tuning and support specific code formats. It
is highly optimized for embedded devices and has resource management
together with support for different storage models. It has a Flash
Manager, Crash protection of data files, Error protection, fault
management and Native integration with the operating system.
|
|
What are the benefits of mBS Professional Edition against the other OSGi implementations? |
|
Technical
comparisons between ProSyst's market leading OSGi R4 framework product
mBedded Server (mBS), an OSGi implementation of Eclipse - Equinox and
an OSGi implementation of Gatespace - Knopflerfish show that mBS
surpasses it's rivals by far in these areas: start- and runtime
performance, memory consumption, added features for OSGi Service
Compendium Specification and OSGi Mobile Specification, plus numerous
additional features and enhancements, some of which originated from
real-world mass product developments. Additional comparison results are
available upon request.
|
What is a service?
|
|
Services
are Java classes that perform certain functionality, usually written
with interface and its implementation separated. An OSGi application is
represented as a set of services and can request additional ones to
extend its functionality at runtime. Services realize different tasks
implementing various protocols and standards. They may perform tasks in
the field of communication, home automation, energy management, remote
home health care, entertainment etc.
Initially the service must be registered with the Framework. After that
some properties could be given to it. An already registered service
could be used by other services - for example a home automation service
can use communication service to allow management of home appliances
from office, over the network. The first service looks up for the other
service from the Framework with a search filter, and gets back the
matching service references. A service reference can then be used to
get a Java object that implements the desired service.
|
|
How to write my own bundle?
|
|
Briefly,
the process of bundle development comprises producing the program
source code as .java files, compiling them to .class files, preparing
the appropriate bundle manifest and finally packing the .class files
and manifest in a JAR. See the "Writing Bundles" guide for basic
details on developing OSGi-compliant bundles.
There is a whole section about writing bundles in mBS PE User's Manual.
|
How can I port the mBS binaries on a specific target platform?
|
|
These are briefly the steps:
- Determine your target system
- Install mBS and develop applications on the host system (in the form of bundles)
- Build an image
- Deploy and launch the image on the target system
Porting the mBS depends on the resources available on the target
system, JVM and OS. After a configuration of bundles for the target
system is prepared, an image must be built. The image can be simply
prepared by deleting the unneeded parts from the mBS installation - see
next question)
Then comes porting to the real device and launching. Every target
system configuration defines its own deployment mechanism. For example,
an image can be transferred to the target ROM (flash) over a network
file system, FTP, SSH/SCP, Microsoft HyperTerminal, etc., or can be
retrieved at target startup and written to a RAM file system. For more
information about deploying images on a particular board or device,
refer to its documentation.
See also 'Target Deployment Guide' and 'Platform Deployment Tips' from our mBS PE documentation.
|
|
The mBS installation is so huge. Do I need everything? |
|
Well, yes and no.
Typically mBS is installed on a personal computer with plenty of
capabilities and resources - called the 'Host system'. It holds the
framework installation and the applications (bundles) that you develop.
So you have it all there to start with. Then depending on the 'Target
System' - the device you want to deploy your server framework with
added applications (bundles) - you have to consider JVM,
OS, File system, RAM, CPU, etc.
Then you build an image with relevant functionality and optimal
configuration of bundles. First unnecessary parts must be deleted -
documentation, demos, startscript and property files for other
platforms, unneeded bundles and libraries, etc. You can even trim mBS
framework down for reduced memory consuption on the target device. For
choosing what you need for your scenario and for more information,
please see <Target Deployment Guide>.
|
|
Can ProSyst bundles run on other OSGi Frameworks? |
|
Yes, principally that is possible with OSGi.
It should be noted, though, that sometime a proficient user's
inspection may be needed to check for possible collisions or
overlapping with other system bundles that export/import the same
packages.
|
|
Can I run existing bundles on mBS for Android? How can I do it? |
|
Yes, this is possible.
Generally speaking, Android uses the DEX format (Dalvik Executable - Dalvik is the Google JVM)
not the JAR format. So all bundles should be translated into that format using the dx tool, part
of the SDK http://code.google.com/android/download_list.html. The dx tool lets you generate
Android bytecode from .class files and converts target files and/or directories to .dex files,
so that they can run in the Android environment. Type 'dx -help' for more details.
Be aware, that there are some problems with the generation of an already existing java code into
the DEX format. Click here for more »
If you have your bundles translated in the above manner, they can be installed and run using ProSyst
mConsole (which is a part of mBS). See the forum for more helpful tips.
Note: if your bundle is using - for example The Standard Widget Toolkit (SWT) - to create a UI,
it has to be modified to use android.widget package.
|
|
What should I know if I want to run the bundles I wrote for another OSGi Framework on mBS? |
|
OSGi allows for that so it should not be a problem.
mBS has full compliance with the OSGi Service Platform Core
Specification Release 4 - The framework implementation supports OSGi
Framework Specification 1.3. Just keep your bundles R4 compliant.
|
Is the mBS backward compatible? Can I run on the latest mBS bundles initially developed for earlier mBS versions?
|
|
Our
desire is to always maintain backward compatibility. But due to
pepetual development of the Specifications and technology it is not
always possible. So,please, check our product Release Notes and the
Javadoc in the User's Manual for
possible changes in any API/package/bundle that might influence your
existing bundles.
|
Which is the latest version of mBS and what is new there?
|
|
The latest version released can be always found here. For all changes, bugfixes and additions with every new release, please check the Release Notes.
|