To assess the benefit of providing a tightly integrated Java ME subsys-
tem, we need to take into consideration various factors.
Java strategy: As a guideline, Symbian has chosen to favor the option
of providing tightly integrated JSRs in order to ensure unified behavior
and functionality across Java and native applications. This is an
important guideline (although it is not a rule).
Strictly mandatory: Integration is strictly mandatory if there is no way to
provide the functionality without using the native APIs (e.g., the native
Symbian OS services are fundamental for providing TCP support).
Customizability: Integration may require extra effort from Symbian
OS licensees to customize or extend the JSR implementation, while
integrating Symbian OS onto their UI platform.
Consistency: A non-integrated JSR may break the consistent behavior
and functionality of the Symbian OS system and have an impact on
the end-user experience.
Performance: An integrated JSR implementation may provide bet-
ter performance. If it does, you must consider the scale of the
improvement and whether the improved performance justifies the
If there is no equivalent native API for a given JSR or the cost of
integration was deemed to exceed the benefit, the JSR can still adhere to
considerations of consistency and the general Java strategy: a pure Java
JSR implementation could be a fit-for-purpose solution. We discuss one
such case in Section 11.5.2.
If consistency and customizability by Symbian OS licensees is critical
and performance is of high importance, a tightly integrated JSR may be
chosen even if the cost of integration effort is very high. We discuss such
a case in Section 11.5.3.
The question then becomes, which integration approach best addresses
each of the above criteria?
11.4 Determining the Right Integration Style
What makes for good JSR functionality integration? If the integration
needs of Java ME JSR functionality were the same, we could have used
a single style of integration for each JSR. But, in reality, JSR functionality
integration involves a vast range of considerations and impacts that should
be weighed before adding each JSR into the Java ME subsystem.
The trick is not to choose one integration approach to use always,
but to choose the best approach for a particular JSR integration after
considering its advantages and disadvantages.