دنيا به سمت كوچك شدن پيش ميرود. دستگاههاي موبايل روز به روز فراگيرتر ميشوند و هر روز فناوريهاي جديد جاي خود را به جديدترها ميدهند. سان نيز با جاوا به ميدان آمده است. آنها قصد دارند حضور خود را در بازار موبايل پررنگ كنند و سهم بيشتري را در اختيار بگيرند. يك فريمورك مستقل از پلتفرم، تنها يكي از زيرمجموعههاي جاوا است. سان علاوه بر سيستمعامل دستگاههاي موبايل، كارتهاي هوشمند را نيز نشانه گرفته است. سان در آينده خورشيدي در جيب شما خواهد بود ... .
Java 2 Micro Edition چيست؟
زبان برنامهنويسي جاوا بيشتر با محيط برنامهنويسي تحت سرورش يا Java 2 Enterprise Edition شناخته ميشود؛ محيطي كه شامل فناوريهايي از قبيل Enterprise Java Beans) EJBS)، سِرولتها (servlets)، و JSPs
(Java Server Pages)ها است.
با اين حال جاوا در اصل به عنوان يك زبان برنامهنويسي سمت كلاينت و براي مصرفكنندگان طراحي شد؛ زباني كه با هدف استقلال نرمافزارها از پلتفرمي كه آن را اجرا ميكردند، توسعه يافت و به سرعت همهگير شد. اما اكنون جاوا به خصلت اجداد خويش بازگشته است.
Java 2 Micro Edition) J2ME) نيز پلتفرمي است كه براي دستگاههاي موبايل طراحي شده و هدف آن ارائه نرمافزارهايي است كه مستقل از سكوي كاري مقصد و سيستمعاملِ اجرا كننده آن (كه در دنياي دستگاههاي موبايل، تنوع بيشتري دارند)، به ارائه خدمات بپردازند.
پلتفرم Java2
چيزي كه اكنون به آن جاوا ميگوييم، در حقيقت پلتفرم Java2 از شركت سان مايكروسيستمز است كه در سه نسخه متفاوت عرضه ميشود:
Java 2 Standard Edition) J2SE)
Java 2 Enterprise Editon) J2EE)
Java 2 Micro Editon) J2ME)
هر نسخه از پلتفرم مذكور، يك محيط اجرايي كامل را كه از JVM يا ماشين مجازي جاوا يك سري و كلاسهاي كتابخانهاي تشكيل شده براي اجراي نرمافزارهاي مبتني بر جاوا فراهم ميكند.
هر يك از سه نسخه با هدف اجراي نرمافزارهاي متفاوت روي سكوهاي كاري متفاوت طراحي شده و توسعه يافتهاند. J2EE با هدف ايجاد و توسعه نرمافزارهاي دسكتاپ طراحي شد. اين پلتفرم كلاسهاي ضروري رابط كاربر را براي توليدكنندگان نرمافزار فراهم ميكند.
نرمافزارهاي با هدف استفاده در سرورها نيز توسط J2EE طراحي و توليد ميشوند و J2ME نيز در توليد نرمافزارهايي براي دستگاههاي موبايل كاربرد دارد. آنچه تفاوت بين اين نسخهها محسوب ميشود، كلاسهاي كتابخانهاي است كه در هر يك از نسخهها تعريف ميگردد. به بيان ساده، ميتوان J2ME را زيرمجموعهاي از J2SE و J2SE را زيرمجموعهاي از J2EE محسوب كرد.
زياد بودن حجم و تعداد كلاسهاي J2SE (كه چيزي حدود ده تا بيست مگابايت است و براي دستگاههاي موبايل امروزي، بزرگ و حجيم) باعث تولد J2ME شد. اين پلتفرم شامل كتابخانههاي كمتر و اختصاصيشده با حجمي قابل قبول براي دستگاههاي ضعيفتر (نسبت به دسكتاپها) است. مشخصههاي J2ME ،J2SE و J2EE به صورت مفصل در Java Communily Process) JCP) تعريف شده و قابل دسترس است. براي اطلاعات بيشتر ميتوانيد به www.jcp.org مراجعه كنيد.
Java 2 Micro Edition
در پلتفرم J2ME، محيط اجرايي جاوا براي دستگاههاي كوچك و با قابليتهاي محدود يعني دستگاههايي كه در مقايسه با دسكتاپها از حافظه خيلي كمتر و محدودتر، صفحهنمايش كوچكتر و پردازندههاي كندتر استفاده ميكنند، تنظيم شده است.
نكته اصلي اين است كه برنامهنويسي در اين محيط فرق چنداني با J2SE ندارد و تنها موارد موجود،دسترسي به منابع كتابخانهاي كمتر و البته حافظه اجرايي محدودتر است. مديريت حافظه يكي از مهمترين مسائلي است كه بايد به آن توجه كرد تا نرمافزار نهايي در پلتفرم مقصد، در حين اجرا با مشكلي مواجه نگردد.
البته J2ME اولين قدم براي تطبيق جاوا با محيطهاي اجرايي كوچك همچون دستگاههاي موبايل نيست. Personal Java و Embeded Java نيز تلاشهايي بودند تا نرمافزارهايي مبتني بر Java 1.1.x براي دستگاههاي موبايل توسعه يابند. اما امروزه، Personal Java و Embeded Java، از رده خارج شدهاند و جاي خود را به J2ME دادهاند.
لازم به ذكر است كه از 22 دسامبر سال 2006 ميلادي، سان مايكروسيستمز كه منبع J2ME يا قسمت مهمي از آن را تحت General Public License) GPL) در اختيار عموم قرار داده است كه گفته ميشود در طي پروژهاي با نام Phone ME انجام گرفته است.
نگاهي به معماري Java ME
J2ME مجموعهاي از كتابخانهها و فناوريهاي مختلف است كه در كنار هم، محيطي براي اجراي يك نرمافزار در يك دستگاه موبايل فراهم ميكنند. در كليترين بحث ميتوان گفت كه J2ME مبتني بر سه المان اصلي است:
پيكربندي: بسياري از كتابخانههاي پايه و قابليتهاي ماشين مجازي براي رِنج وسيعي از دستگاهها را شامل ميشود.
پروفايل: مجموعهاي از APIها براي پشتيباني از رِنج كمتري از دستگاهها است.
بستههاي انتخابي: مجموعهاي از APIهاي اختصاصي شده است.
پيكربندي ذكر شده در بالا به دو پيكربندي مختلف تقسيم ميشود:
يكي براي دستگاههاي همراه ضعيف، يعني Connected Limited Device Configurtion) CLDC) و ديگري، براي دستگاههايي با قابليت بيشتر و قدرتمندتر؛ يعني Connected Device Configuration) CDC) شكل 1 موقعيت J2ME و ارتباط آن با ديگر فناوريهاي جاوا را نشان ميدهد.
شکل 1 تفاوتهاي CLDC و CDC بهطور خلاصه اين است كه CDC براي دستگاههايي در نظر گرفته شده كه از نظر قابليتهاي سختافزاري و عملكردي در رده بالاتري قرار دارند.
شكل 2 رابطه CDC و CLDC را نشان ميدهد. لازم به ذكر است كه Midletها، به نرمافزارهاي كوچكي گفته ميشود كه توسط J2ME طراحي شده و توليد گرديدهاند.
اين نرمافزارها مشابه Appletها و Servletها در J2SE و J2EE هستند.
Java Card
جاوا كارت فناوري نسبتاً نوظهوري است كه براي استفاده از پلتفرم جاوا روي كارتهاي هوشمند مورد استفاده قرار ميگيرد.
كارتهاي هوشمند وسايلي هستند كه از نظر حافظه و محدوديتهاي ديگر، از دستگاههايي كه به وسيله J2ME پشتيباني ميشوند، ضعيفترند.
با اينكه كارتهاي هوشمند يا Smart Cardها چندان هم جديد نيستند، كاربرد وسيعي در حوزه امنيت شخصي دارند. اين كارتها در حدود دو دهه پيش در اروپا ابداع شده، گسترش يافتند و در مراحل اوليه، بيشتر حافظههاي همراهي بودند كه حاوي اطلاعات ذخيرهشدهاي بودند و براي جلوگيري از دزدي از تلفنهاي عمومي مورد استفاده قرار گرفتند.
امروزه نيز ميتوانيم نمونه اين كارتها را در تلفنهاي عمومي كشورمان ببينيم. اما فناوري SmartCard يك استاندارد صنعتي است كه توسط Joint Technical Committee 1) JTC1) از سازمان بينالمللي استانداردها يا ISO و به همراه IEC يا كميته بينالمللي الكترونيك تعريف و تدوين شده است.
استاندارد بينالمللي ISO/IEC 7816 كه در سال 1987 تدوين شد و آخرين بار در سال 2003 مورد بازبيني قرار گرفت، تعريفهاي كاملي از كارتهاي هوشمند ارائه ميدهد كه شامل خصوصيات ظاهري، اتصالات فيزيكي، سيگنالهاي الكترونيكي و پروتكلهاي ارسالي، دستورات، مدل امنيتي، شناسههاي كاربردي و المانهاي مشترك دادهاي ميشود.
كارتهاي هوشمند عموماً از يك قطعه پلاستيكي تشكيل شدهاند كه در داخل، داراي ICهاي مختلفي ميباشند. SIM كارتها هم به نوعي Smart كارت محسوب شده و از مدلهاي امنيتي پيچيدهاي استفاده ميكند.
اين كارتها از نظر طريقه دسترسي به دو دسته اتصالي و غيراتصالي تقسيم ميشوند. همانطور كه از نام آنها پيداست، انواع غيراتصالي از RFID يا شناسايي با موج راديويي براي برقراري ارتباط استفاده ميكنند. در حال حاضر يك دستگاه مبتني بر Java Card از يك CPU هشت بيتي يا شانزده بيتي با كلاك 7/3 مگاهرتز، 1KBرم و 61KB حافظه داخلي بهره ميجويد.
شکل 2 فناوري جاواكارت علاوه بر آنكه در كارتهاي هوشمند مورد استفاده قرار ميگيرد، در نمونههايي از دكمههاي هوشمند و گرههاي USB نيز كاربرد دارند.
با توجه به اين پتانسيل بالا و كاربرد وسيع چنين فناوريهايي در امروز و آينده بود كه سان به تعريف استاندارد جاوا كارت پرداخت و پلتفرمي را ارائه كرد كه از آن براي ايجاد JavaCard Appletها استفاده ميشد.
فناوري جاواكارت هم اكنون تحت نسخه 2.2 عرضه و پشتيباني ميشود و داراي سه زير مجموعه است:
- ماشين مجازي جاواكارت كه زبان برنامهنويسي و ماشين مجازي مورد نياز آن را تعريف ميكند.
- محيط اجراي جاواكارت كه طريقه عملكرد زمان اجراي كارتهاي هوشمند را تضمين ميكند.
- API جاواكارت كه حاوي كلاسها، بستههاي جاوا و چارچوب كاري بايد جاواكارت را تشكيل ميدهد.
همچنين سان با عرضه JavaCard Develophent Kit) JCDK) كه حاوي پيكربنديهاي مرجع ماشين مجازي جاواكارت، محيط اجرايي جاواكارت و ديگر ابزاري توسعه JC است، زمينه را براي توسعه هرچه بهتر و آسانتر JC فراهم آورده است.
Java FX Mobile؛ سيستمعاملي جديد
Java FX Mobile يك سيستمعامل جاوايي است كه در آغاز توسط شركت JavaJa براي دستگاههاي موبايل ايجاد شد و در آوريل 2007 توسط سانمايكروسيستمز خريداري گشت. اين سيستمعامل جزئي از خانواده محصولات Java FX است كه پلتفرمي جديد براي PDAها اسمارتفونها و دستگاههاي همراه محسوب خواهد شد.
Java FX Mobile از ساختارهاي Java ME و Java SE روي يك هسته لينوكس بهره خواهد برد. گفته ميشود سان، Java FX Mobile را به صورت باينري در اختيار توليدكنندگان دستگاههاي همراه خواهد داد كه قصد عرضه محصولي با رابطه كاربر و عملكردي متفاوت دارند.
طبق اعلام سان، Java FX Mobile يك محيط اجرايي كاملاً مبتني بر جاوا و فناوريهاي منبعبازِ لينوكس خواهد بود. اين سيستمعامل از Java ME و ديگر APIهاي استاندارد جاوا پشتيباني خواهد كرد تا قابليت اجراي رنج وسيعي از نرمافزاري جديد يا موجود را فراهم آورد.
سان اعتقاد دارد با پا گذاشتن در وادي سيستمعامل دستگاههاي موبايل نسل بعد، به منبعباز و رايگان ماندنِ چرخه نرمافزارهاي كاربردي موبايل كمك خواهد كرد.
Java FX Mobile نقش فناوريهاي جاوا را در توسعه نرمافزاري موبايل افزايش خواهد داد و يك محيط نرمافزاري كاملاً يكسان و مجتمع را در اختيار كاربران و توسعهدهندگان قرار خواهد داد. توليدكنندگان نيز ميتوانند با استفاده از ميانافزارها و برنامههاي كاربردي مقيم حافظه مبتني بر جاوا به صورت سفارشي و دلخواه قابل توليد هستند، هزينههاي توليد و زمان عرضه به بازار محصولات خود را كاهش دهند.
اكنون جاوا روي بيش از 8/1 ميليون تلفن همراه عرضه شده و اكثر توسعهدهندگان نرمافزارهاي موبايل، از آن براي عرضه نرمافزارهاي خود استفاده ميكنند. اما Java FX Mobile نقش جاوا را در توسعه نرمافزارهاي موبايل پررنگتر خواهد كرد.
اين مهم از طريق فراهم كردن ميانافزارها و API مبتني بر جاوا در اين سيستمعامل انجام خواهد پذيرفت. بهعلاوه، توليدكنندگان و اپراتورهاي موبايل نيز به راحتي و با هزينه كمتري ميتوانند نرمافزارهاي مورد نياز خود را سفارشيسازي كنند و در اختيار كاربران قرار دهند. مزاياي Java FX Mobile را ميتوان از سه منظر بررسي كرد: منظر توليدكنندگان، منظر توسعهدهندگان و منظر اپراتورها.
از منظر توليدكنندگان با استفاده از ميانافزارها APIهاي استاندارد جاوا، حذف و اضافه اجزاي تشكيلدهنده نرمافزارها براي سختافزارهاي جديد در حال عرضه يا ايجاد قابليتهاي جديد در نرمافزارهاي مربوطه، بسيار راحتتر و با هزينه كمتر انجام خواهد شد.
از ديد توسعهدهندگان طرف سوم، با استفاده از API استاندارد و بازِ جاوا،ايجاد و توليد يك نرمافزار فراگير كه نياز به تطبيق با سختافزاري مختلف نداشته باشد و مستقل از محيط اجرايي، عملكرد صحيحي داشته باشد بسيار سادهتر شده است و هزينههاي سرمايهگذاري كمتري را طلب ميكند.
اپراتورها نيز ميتوانند با استفاده از اين پلتفرم به آساني و با هزينههاي پايينتري به ارائه خدمات و نرمافزارهاي مخصوص خود بپردازند و از مزاياي عدم وابستگي اين نرمافزارهاي مبتني بر جاوا به سختافزار برخوردار گردند.
به هر حال، Java FX Mobile رقيبي سرسخت براي سيمبيان، ويندوز موبايل و Limo خواهد بود. سان با اهداف آرمانگرايانه خود پا به ميدان رقابت غولهايي گذاشته است كه آيندهاي هيجانانگيز را رقم خواهند زد. آيا سيمبيان و يار قديمي خود، نوكيا، برنده ميدان خواهند بود يا ويندوز موبايل؟
آيا موتورولا و متحدان بزرگش همچون NTTDoCoMo و NEC قادر خواهند بود لينوكس جديدشان را در مقابل سيمبيان تجهيز كنند يا Limo بايد آماده مبارزه با لينوكسي ديگر از جنس جاوا يا همان Java FX Mobile باشد؟ نتيجه اين رقابتهاي سخت هرچه باشد، به يك مقصد منتهي ميشود: زندگي بهتر و متفاوت از آنچه تاكنون تجربه كردهايم