During learn and experience

۵ مطلب در فروردين ۱۳۸۹ ثبت شده است

Java EE 6 - JAXB 2.2

XML is used in platforms for defining deployment descriptors, metadata information, and so on. XML is also used as an integration technology that solves the problem of data independence and interoperability.  Associated with these XML documents, schemas are used to validate exchanged data.
In Java, there are several low-level APIs to process XML documents and XML Schemas , from common APIs (javax.xml.stream.XmlStreamWriter and java.beans.XMLEncoder) to more complex and low-level models such as Simple API for XML (SAX), Document Object Model (DOM), or Java API for XML Processing (JAXP). JAXB provides a higher level of abstraction than SAX or DOM and is based on annotations.

JAXB defines a standard to bind Java representations to XML and vice versa. It manages XML documents and XML Schema Definitions (XSD) in a transparent, object-oriented way that hides the complexity of the XSD language.
Except for the @XmlRootElement annotation, The following code shows the code of a normal Java class.

package test.jaxb;

import javax.xml.bind.annotation.XmlRootElement;


/**
*
* @author Saeed Zarinfam
*/
@XmlRootElement

public class CreditCard {

private String number;
private String expiryDate;
private Integer controlNumber;
private String type;

public CreditCard(String number, String expiryDate, Integer controlNumber, String type) {
this.number = number;
this.expiryDate = expiryDate;
this.controlNumber = controlNumber;
this.type = type;
}

public CreditCard() {
}

public Integer getControlNumber() {
return controlNumber;
}

public void setControlNumber(Integer controlNumber) {
this.controlNumber = controlNumber;
}

public String getExpiryDate() {
return expiryDate;
}

public void setExpiryDate(String expiryDate) {
this.expiryDate = expiryDate;
}

public String getNumber() {
return number;
}

public void setNumber(String number) {
this.number = number;
}

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}
}

As shown in the following code ,With this annotation and a marshalling mechanism, JAXB is able to create an XML repreentation of a CreditCard instance :

package test.jaxb;

import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

/**
*
* @author Saeed Zarinfam

*/
public class Main {

public static void main(String[] args) {
try {
CreditCard creditCard = new CreditCard("1234", "12/09", 6398, "Visa");
StringWriter writer = new StringWriter();
JAXBContext context = JAXBContext.newInstance(CreditCard.class);
Marshaller m = context.createMarshaller();
m.marshal(creditCard, writer);
System.out.println(writer.toString());
} catch (JAXBException ex) {
ex.printStackTrace();
}
}
}
 
Reference : Beginning   Java™  EE 6 Platform  with GlassFish™  3 From Novice to Professional 

 
 
 
 
 
have a nice time.

۱۶ فروردين ۸۹ ، ۱۹:۴۲ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

جنگ سیستم عامل های موبایل (قسمت دوم)

جنگ سیستم عامل های موبایل (قسمت اول)

نقش Nokia و Symbian در جنگ سیستم عامل های موبایل
Nokia حتی قبل از تملک کامل سهام Symbian و سپس اپن سورس کردن آن ، بعنوان برترین حامی و استفاده کنند سیستم عامل Symbian شناخته می شد. پس از اپن سورس شدن کامل سیستم عامل Symbian آینده روشنی برای آن تصور می شود علاوه براین Nokia سرمایه گذاری شدیدی برروی توسعه و قدرتمند تر کردن این سیستم عامل کرده است. تقریبا تمامی تلفن های هوشمند Nokia  (بغیر از N900) از سیستم عامل Symbian استفاده می کنند. بطور حتم آینده فروش تلفن های هوشمند Nokia و سیستم عامل Symbian با یکدیگر گره خورده است.

شرکت های تولید کننده تلفن های هوشمند که از سیستم عامل Symbian استفاده می کنند
  • Nokia 
  • Sony Ericsson
  • Samsung
  • LG (بصورت محدود - آخرین گوشی تولید شده با سیستم عامل Symbian در فوریه سال 2009)
  • Motorola (بصورت محدود - آخرین گوشی تولید شده با سیستم عامل Symbian در سال 2008)
برتری ها Symbian  
یکی از برتری های بزرگ برای Symbian وجود نرم افزارهای فراوان برای این سیستم عامل است علاوه بر این حمایت بزرگترین شرکت تولید کننده تلفن های همراه یعنی Nokia از این سیستم عامل نیز می تواند برگ برنده ایت سیستم عامل باشد. 
از دیگر مزایای این سیستم عامل نیاز به منابع سخت افزاری پایین می باشد که باعث بالا رفتن کارایی تلفن های هوشمندی که از این سیستم عامل استفاده می کنند می شود. 

چالش های Symbian
چالش بزرگ برای Symbian افزایش محبوبیت Android در میان تولید کنندگان تلفن های هوشمند می باشد ( ممکن است با عرضه Windows Mobile 7 محبوبیت این سیستم عامل نیز افزایش یابد) که باعث کاهش سهم Symbian از بازار سیستم عامل های موبایل می شود.
رابط کاربری و امکانات سه بعدی از دیگر نقاط ضعف این سیستم عامل می باشد که در صورت بهبود پیدا نکردن مطمئنا باعث عقب افتادن Symbian از سایر رقبا می شود.

آینده Symbian 
به نظر بنده در آینده نزدیک با وجود رقبایی مانند: Android , Windows Mobile 7 , iPhone و توزیع های سیستم عامل Linux برای موبایل (مانند Maemo و Meego) مطمئنا سهم Symbian از بازار سیستم عامل های موبایل کاهش پیدا خواهد کرد اما این کاهش به اندازه ای نخواهد بود که صدر نشینی Symbian در بازار سیستم عامل های موبایل را به خطر بیاندازد.
البته با برنامه های خوبی که Nokia برای این سیستم عامل در نظر گرفته است (مانند : معماری جدید گرافیک دوبعدی و سه بعدی ، بهبود رابط کاربری و ...) در آینده دور نیز کار برای رقبا سخت خواهد شد.
به نظر بنده یکی از کلیدی ترین نکاتی که بنیاد Symbian و شرکت Nokia باید به آن توجه کنند از دست ندادن شرکت های تولید کنند تلفن همراه (Sony Ericsson و Samsung) است بدلیل اینکه مشارکت سایر شرکت ها در توسعه سیستم عامل Symbian باعث بهیود کیفیت این سیستم عامل می شود. البته تا به اینجا Nokia پس از تملک کامل Symbian تا حدود زیادی حسن نیت خود را با اپن سورس کردن کامل پلتفرم Symbian به شرکت های تولید کننده تلفن همراه ثابت کرده است.
و اما آخرین نکته ای که به نظر من از اهمیت بالایی برخودار است سرعت در توسعه امکانات جدید برای سیستم عامل Symbian است ، در جنگ سیستم عامل های موبایل هر کسی که سریعتر قابلیت های جدید سیستم عامل خود را عرضه کند موفق تر خواهد بود.
شاد باشد.
۱۳ فروردين ۸۹ ، ۰۱:۳۱ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

جنگ سیستم عامل های موبایل (قسمت اول)

در حال حاضر سیستم عامل های زیادی برای تلفن های همراه در بازار موبایل وجود دارد (Symbian ، Windows Mobile ، Android ، iPhone ، Linux ، Maemo ، Bada و ...) که هیچ کدام از این سیستم عامل ها تسلط کامل بر این بازار را در دست ندارند. طبق آمار اعلام شده در February 2010 سیستم عامل Symbian در صدر سیستم عامل های نصب شده برروی تلفن های  هوشمند قرار دارد:
  1. Symbian --- 47.2%
  2. RIM BlackBerry --- 20.8%
  3. iPhone --- 15.1%
  4.  Windows Mobile --- 8.8%
  5. Android --- 4.7%
همانطور که در رده بندی بالا مشاهده می کنید با اینکه سیستم عامل Symbian رتبه اول این رده بندی رادر اختیار دارد ولی طبق آمار ارائه شده در سه ماهه دوم سال 2009 سهم این سیستم عامل 3.1% کاهش پیدا کرده است. و با توجه به پیشرفت خوب سیستم عامل Android و همچنین عرضه Windows Mobile 7 تا پایان سال 2010 و عرضه سیستم عامل های جدید برپایه Linux (مانند : Meego و Maemo) این سهم از بازار برای سیستم عامل Symbian کماکان رو به کاهش می باشد.

در این سری از مطالب به بررسی آینده بازار سیستم عامل های موبایل و جنگ فعلی شرکت های بزرگ بر سر این بازار می پردازیم.
۱۰ فروردين ۸۹ ، ۰۹:۵۰ ۱ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

آیا واقعا سیستم عامل Google Android از جاوا پشتیبانی می کند ؟

در حال حاضر Java ME بعنوان اصلی ترین گزینه برای توسعه برنامه های موبایل در دنیای تلفن های همراه شناخته می شود. بدلیل اینکه تقریبا بالای 90% تلفن های همراه (از گوشی های ساده گرفته تا گوشی های هوشمند) قابلیت اجرای برنامه های Java ME که در قالب فایلهایی با پسوند jar عرضه می شوند را دارند.
در دنیای گوشی های هوشمند (smart phones) اکثر سیستم عامل های شناخته شده (Symbian , Windows Mobile , Linux) برروی خود بصورت پیش فرض JVM دارند که از یکی از نسخه های استاندارد MIDP پشتیبانی می کند. این امر سبب می شود که چندین هزار برنامه Java ME موجود در بازار قابلیت اجرا بروی این سیستم عامل ها را داشته باشند.
متسفانه سیستم عامل جدید شرکت گوگل با نام Android ، قابلیت اجرای برنامه های جاوا براساس استاندارد Java ME را ندارد. این در حالی است که این سیستم عامل زبان برنامه نویسی جاوا را برای توسعه برنامه های Third Party برروی Android انتخاب کرده است و استفاده از جاوا فقط در سطح زبان برنامه نویسی می باشد و گوگل برای سایر اجزای پلتفرم Java ME جایگزین معرفی کرده است:

استفاده از Dalvik virtual machine بجای Java virtual machine.
استفاده از byte code مخصوص به Dalvik virtual machine بجای استفاده از byte code استاندارد.
جایگزینی کتابخانه های مخصوص به خود بجای کتابخانه های استاندارد Java ME.

جدا از دلایل فنی استفاده از Dalvik virtual machine بجای Java virtual machine توسط گوگل به نظر من گوگل با این کار یک ویرایش (Edition) جدید برای زبان برنامه نویسی جاوا عرضه کرده است (Java Android Edition = Java AE).
این اقدام گوگل در صورت جا افتادن سیستم عامل Android باعث چند دستگی در برنامه های تولید شده با استفاده از زبان برنامه نویسی می شود امیدوارم همان بلایی که برسر C++ آمد برسر زبان برنامه نویسی جاوا نیاید.

شاد باشید.
۰۵ فروردين ۸۹ ، ۲۳:۰۹ ۲ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

LWUIT = Lightweight UI Toolkit

شاید یکی از بزرگترین برتری های برنامه نویسی برروی پلتفرم جاوا قابلیت اجرای برنامه های جاوا برروی  mobile devices (مانند: تلفن های همراه) می باشد. 
امروزه تقریبا تمامی تلفن های همراه قابلیت اجرای برنامه های جاوا را دارند و Java ME بعنوان یک استاندارد برای تلفن های همراه و توسعه برنامه برای تلفن های همراه تبدیل شده است. 
LWUIT یک ابزار برای تولید رابط کاربری برای برنامه های Java ME می باشد. که توسط شرکت Sun Microsystems توسعه داده شده است. هدف اصلی این ابزار تولید راحت تر ، سریعتر و زیباتر رابط کاربری برای برنامه های Java ME می باشد.
API های LWUIT شبیه به API های کتابخانه Swing طراحی شده اند و تولید برنامه های LWUIT شبیه به تولید برنامه های Swing می باشد که این امر باعث استفاده مجدد از تجریبات توسعه دهندگان آشنا با کتابخانه Swing می شود.
از نکات قابل توجه این ابزار (بخصوص برای توسعه دهندگان برنامه های موبایل در ایران) پشتیبانی کامل از راست به چپ می باشد. بدلیل اینکه ابتدا این ابزار توسط مرکز توسعه شرکت  Sun Microsystems در اسرائیل ایجاد شده بود پشتیبانی از راست به چپ در کامپوننت های رابط کاربری آن دیده شده بود.
LWUIT علاوه بر قابلیت هایی که در Swing وجود دارد (نظیر: مدیریت رویدادها ، سلسه مراتب کامپوننت ها و container ها و...) قابلیت هایی نظیر themeing ، painters ، انیمیشن و ... را نیز در خود جای داده است.

شاد باشید. 
۰۱ فروردين ۸۹ ، ۱۳:۱۳ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام