From: "Stefano Fornari" <ste...@bi...>
>
> [...] In the sync.client package there is the following comment:
>
> "contains the classes for the standalone sync4j client application. The
> application is a SyncML client. The application is designed to run on
> the Java 2 Standard Edition (J2SE) platform. It requires JDK 1.3 or
> higher."
Correct.
The sync4j.client package contains the code for a standalone
SyncML client application. The application is designed for use
on the J2SE (Java 2 Standard Edition Platform,
http://java.sun.com/j2se/ ).
> This seems exclude a wide range of devices that can become the most
> natural destination of synchronization tasks: devices usually based on
> lighted VMs such as CLDC, Personal Java, Java Card etc. What about,
> instead, target the client library to low-resource and low-memory VM
> environments?
The sync4j.client is suitable for devices that support Sun's J2SE platform.
For devices that support only the J2ME platform, the sync4j.client
application is not appropriate.
Currently, the sync4j project encompasses 2 applications:
1) sync4j.server - a SyncML server. Runs on the J2EE platform.
2) sync4j.client - a SyncML client. Runs on the J2SE platform.
Here is the rationale:
The SyncML protocol is very complex. Some of the protocol's
features are required; other features of the protocol are optional.
It is my intent to build a server that supports all of the features of
the SyncML protocol. In order to build a full-featured server, we also
need to build a full-featured client. A full-featured client will be able
to exercise all aspects of the protocol and will assist in the development
of the full-featured server.
The sync4j.client application is intented to be a full-featured client
implementation of the SyncML protocol.
Due to the memory/CPU/storage constraints of J2ME devices, a
SyncML client for the J2ME platform would probably implement
only a subset of the SyncML protocol.
I've decided to focus my time and effort on building a J2SE client
application because:
1) I want to build a full-featured client that supports all aspects
of the SyncML protocol. This full-featured client will facilitate
more thorough testing of the sync4j.server application.
2) J2SE developer tools are more widely available than J2ME tools
3) The J2ME platform is immature. In contrast, the J2SE platform
is mature and stable.
4) There are few commercial J2ME devices. Nokia offers
J2ME devices; however, the majority of Nokia's phones are
not J2ME-enabled. Motorola offers some J2ME devices;
however, the majority of Motorola's phones are not J2ME-enabled.
5) For mobile devices, wouldn't C be a more suitable
implementation language for building a SyncML client?
6) In the near future, devices vendors (Nokia, Motorola, Ericsson)
are going to provide SyncML client implementations for their devices.
I'd rather not build a J2ME client when these devices will already
have SyncML built-in.
7) The J2SE platform has a mature set of XML parsers.
The J2ME platform does not.
8) There are far more computing devices (laptop computers) that can run
J2SE apps than there are devices than can run J2ME apps.
> As known, these requirements doesn't match very well with
> XML, therefore one of the first steps should be have a light XML
> processor. I did a research on SourceForge and I found a project that
> sounds pretty good. It is called XMLtp
> (http://sourceforge.net/projects/jxmltp/) and is available under the BSD
> license as well.
There are a number of "small" XML parsers:
kXML
http://kxml.enhydra.org/
NanoXML
http://nanoxml.sourceforge.net/
TinyXML
http://www.gibaradunn.srac.org/tiny/index.shtml
MinML
http://www.wilson.co.uk/xml/minml.htm
XMLtp
http://sourceforge.net/projects/jxmltp/
Al Sutton XML parser
http://sourceforge.net/projects/asxmlp/
One final note:
I've heard that Enhydra is planning to release source code for a J2ME
SyncML client:
http://ksync.enhydra.org/
They haven't released the code yet.
Apparently, the code was developed by a company in Seattle
called Reaxion:
http://www.reaxion.com
Reaxion's web site says:
"Reaxion will release its SyncML component for Java 2 Micro
Edition to open-source community as a part of kSync project. kSync
is a part Enhydra ME initiative me.enhydra.org "
Regards,
-Sean
|