The Source for Java Technology Collaboration
User: Password:



Bruno Ghisi

Bruno Ghisi's Blog

Thanks MSA! ...No more OBEX (Bluetooth) Self-Made Implementations!

Posted by brunogh on May 21, 2007 at 09:24 PM | Comments (6)

Fragmentation in Java mobile environment is something well known by developers. It is caused most of because the variety that exists between devices characteristics and its implementations.

Trying to help in this way, in middle of 2003, the JTWI (Java Technology for Wireless Industry) was launched, defined by the JSR 185. The objective of JTWI was trying to make things more standardized and compatible, specifying technologies that must be included in all JTWI-compliant devices. But since that, the number of mobiles have increased a lot, as well as the number of JSRs. So, in the end of last year, the final release of MSA (Mobile Service Architecture) was published, in order to advance one more step in this natural evolution.

MSA is for CLDC and it is defined by the JSR 248 (take a look in MSA Advanced, defined by JSR 249, if you want to know about CDC). It can be compared as a kind of JTWI evolution, made in order to maximize the number of applications that can run on a handset, because it will make available a set of JSRs (familiar, updated and new ones). MSA specifies two plataforms that a MSA-compliant device can support: MSA or MSA subset, the subset was made for devices with less power. The both contains mandatory and conditionally mandatory JSRs. The mandatories should always be implemented in MSA-compliant devices, although the conditional mandatories would depends on the availability of the technology in the respective device such as, for example, Bluetooth (for JSR 82) and, maybe, GPS (for JSR 179).

The figure below shows the MSA structure:




MSA helps the set of its JSRs, because it makes some clarifications on them (reducing ambiguities, so manufacturers will make less misunderstood too!). In addition, it obligates an umbrella of APIs and technologies, so this can minimize the fragmentation problem as well and then, consequently, helps the whole mobile technology! But you are probably thinking that we are almost in the end of this entry and you have not understood why the name OBEX (Object exchange) is in the title, let me explain (I swear it will be the last paragraph)!

The JSR 82 (Java APIs for Bluetooth) is divided in two main packages: the core Bluetooth API and the APIs for OBEX. OBEX is a communication protocol based on request/response - to simplify, try to imagine something more elaborated, like HTTP - that allows to exchange objects, such as files, images, calendar entries (vCalendar), business cards (vCard), among other things. It can runs over Infrared, TCP or RFCOMM, which the last type is used for Bluetooth. The fact is that there are still a lot of devices with Bluetooth that did not implement the OBEX package, because it used to be optional in JSR 82. In these past conditions, if you would like to make an application that uses OBEX and runs in a lot of devices, you certainly would implement it by yourself using RFCOMM, manipulating bit by bit or trying to find an open source implementation to use. So, a directly benefit of MSA in JSR 82 - if the device supports the Bluetooth wireless technology, because this JSR is conditional mandatory in MSA - is that it will be mandatory to implement OBEX package as well. Got it? That means that you will be able to easily build applications that exchange cards, send images to printings, among other ones that use complex communication stuff, without having to care about low level implementations! Java ME plataform is so cool! We are growing! ;)


See you,

Bruno Ghisi


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • The subject of a very wonderful and distinct
    I thank you for continuing excellence
    Thank you

    =========================================================================

    ليبيا
    شباب ليبيا
    libya
    منتديات
    منتديات ليبية
    غرائب وحقائق
    أحاديث شريفة
    برامج اسلامية للجوال
    مفاتيح الديجيتل
    الشيرنج
    الرسيفرات
    كتب إسلامية
    خلفيات للموبيل
    الشعر الشعبي
    الصحة والطب
    طب اسنان
    كتب طب اسنان مجانية
    برامج طبية
    تعلم الإنكليزية
    اللغة الفرنسية
    طب الإعشاب
    الخواطرالادبية
    الازياء والمكياج
    تعليم الطبخ
    الاثاث الحديث
    مقاطع كرة قدم
    المصارعه الحرة
    اهداف كوره
    الفوتوشوب
    اروع البرامج
    الدوري الليبي
    خلفيات رياضية
    المصارعة
    كورة عربية
    كرة قدم عالمية
    الدوري الإيطالي
    الدوري الاسباني
    الدوري الإنجليزي
    صور المشاهير
    انواع الحلويات
    افلام كوميدية
    احدث الافلام
    افلام
    التقنية
    تحميل افلام
    برامج
    اخر برامج الجوال
    kaspersky
    أفلام كرتون عربية
    برامج برامج كمبيوتر
    برامج حماية
    برامج اختراق
    برامج صوت
    برامج تحميل برامج احدث البرامج
    محادثة
    خلفيات الطبيعة
    برامج مبايل للتحميل
    اخبار الفن
    احدث الافلام للتحميل
    تحميل افلام رعب
    ترجمةأفلام
    الكامات
    برامج جوال
    برامج محاسبة
    برامج
    kasper
    games
    برامج
    برامج
    انترنت
    برامج صوتية
    شبكات الحاسوب
    خلفيات للويندوز
    تطويرالمواقع
    العاب
    العاب الفيديو
    games
    شفرات
    برامج مسنجر
    خلفيات شاشة
    صور ترحيبيه
    الفوتوشوب
    خلفيات طبيعة
    تطويرالمواقع
    الفوتوشوب
    مقاطع البلوتوت
    مسجات ليبية
    خلفيات
    الفلاش
    التصميم الثلاثي
    برامج الجوال
    العاب الجوال
    فيديو كليب
    مسجات
    ترددات ستالايت
    نغمات

    Posted by: libyan on May 30, 2008 at 01:42 PM

  • Hi Gregory, I got your point!

    Let me explain my view... optional packages were a good way to make Java ME technology grows in a kind. While devices were so different, they had to create a way of make them compatible with the market growing (better devices with more stuff, with less, expensive, cheap ones, ... for all kinds!) , as well as providing a technology evolution with new JSRs. But, as you know, this context of differences brings a lot of problems, it is so difficult for developers create an application that runs in a lot of devices.
    The idea of MSA is standarize things, so it will reduce some of its problems and Java ME will get strong! It was mostly created because of the market demmand as well (we have to improve our applications and make they run in everywhere! Mobility is the future!), making an interest intersection between consumers, operators, manufacturers and developers.
    MSA also defines a configuration (CDC or CLDC) and a profile (MIDP 2.1 and, for example, any later version that is compatible, like MIDP 3.0) in the bottom. So in the top, we will get all the JSRs that will help us during the development. All that ones that will make things easier with less worry! But do not forget, MSA will keep evolving with new releases, always growing!
    MIDP is a fundamental component of MSA. MIDP is something indepedent, probably it will be able to run in other small devices, after mobile starts running CDC. That is why I think it is more interesting to have an independent specification in order to standarize stuff, like MSA. Imagine MSA like an application environment, where devices will come with a label MSA-compliant! Take a look in a JavaOne session about MSA, it is a cool pdf!

    I liked your comment! Really good point! We have to discuss for the best of Java ME!

    All the best!
    Bruno

    Posted by: brunogh on May 26, 2007 at 04:39 PM

  • To be honest, I'm not entirely sure why the people who are standardizing MSA didn't simply mandate MSA as the 100% requirement for MIDP3.0. While I like the idea of optional APIs, the seeming flood of optional APIs makes life very difficult for application developers. I think that now is the time for us to pick a core set of functionality for MIDP3.0 that makes our lives easier and make them absolutely required in order to be MIDP3.0 compliant. Sometimes I wonder if the people who choose to make some of these things optional actually write code for the JavaME platform.

    Posted by: gregorypierce on May 25, 2007 at 04:27 PM

  • In my opinion Java ME future depends of initiatives like MSA, today is very hard to implement professional systems in Java ME due to the differences between each mobile phone java support. And of course, with the JSR 82 support, Marge can be everywhere!

    Posted by: phmichels on May 24, 2007 at 07:33 PM

  • You are! ;-)

    I want a mobile device in the top of the JSR 238 floor in that first MSA structure tower!

    Posted by: anielson on May 24, 2007 at 07:12 PM

  • We hope industry makes it devices MSA compliant.

    Posted by: lucastorri on May 22, 2007 at 08:57 PM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds