• Thứ Năm, 30/03/2006 07:59 (GMT+7)

    Thế giới di động: Miền đất hứa cho Java

    Triết lý 'Java khắp nơi' đang trở nên hiện thực cùng với sự phát triển nhanh chóng của các thiết bị di động.

    Triết lý 'Java khắp nơi' đang trở nên hiện thực cùng với sự phát triển nhanh chóng của các thiết bị di động

    Java, tên ban đầu là 'Oak', được Sun Microsystems khởi xướng vào năm 1991 với mục đích phát triển ứng dụng nhúng trong các thiết bị điện tử tiêu dùng (như hộp giải mã tín hiệu tivi - set top box). Tuy nhiên ý tưởng về các thiết bị tiêu dùng 'thông minh' đi quá sớm so với thời đại vào những năm đầu thập niên 90 của thế kỷ 20. Java chỉ thật sự 'cất cánh' khi Sun chuyển nó sang ứng dụng trên web (applet) vào năm 1994 và thành công lớn với môi trường server (servlet và Java 2 Platform, Enterprise Edition - J2EE). Tuy nhiên thị trường phần mềm client (phía người dùng cuối) khổng lồ đầy lợi nhuận lại 'lảng tránh' Java. Mặc dù ý tưởng 'Write Once, Run Anywhere' (viết một lần, chạy trên mọi nền tảng hệ thống) thật hấp dẫn nhưng những hạn chế về khả năng đồ hoạ và tốc độ, cùng với cuộc chiến bản quyền giữa Sun và Microsoft dẫn đến việc môi trường Windows 'xa rời' Java đã cản bước công nghệ này thâm nhập thị trường PC. Đế chế Windows chiếm hơn 90% thị trường PC và thật khó thuyết phục các nhà phát triển ứng dụng từ bỏ môi trường của Microsoft, bất chấp sự cải thiện gần đây của Java và sự hiện diện các công cụ phát triển Java mạnh chạy trên nhiều nền tảng hệ thống.

    Khi thị trường máy chủ ứng dụng phát triển dần đến mức bảo hoà và máy chủ J2EE không còn cho lợi nhuận cao nữa thì sự tăng trưởng của Java lâm vào tình trạng báo động. Thật may, thị trường client gần đây đã thay đổi, khi số lượng thiết bị di động xuất xưởng vượt qua số lượng PC trong năm nay, môi trường Windows trên PC không còn là nền tảng client chủ yếu. Cơ hội cho Java đồng hành cùng thế giới di động hiện diện khắp nơi đã đến.

    Bức tranh toàn cảnh
    Thiết bị di động(TBDĐ) hiện đang trở nên phổ biến và gắn liền với phong cách sống hiện đại. Đó có thể là chiếc PDA trong túi, chiếc điện thoại di động đeo ở

     

    thắt lưng hay thiết bị GPS (thiết bị định vị toàn cầu) gắn trong xe hơi, chúng hiện diện khắp nơi. TBDĐ đã phát triển phổ biến đến mức gần như mọi người trong chúng ta đều có ít nhất một cái, một số người 'sành điệu' thì trang bị nhiều hơn. Các công ty nghiên cứu thị trường đều dự báo thị trường TBDĐ sẽ phát triển rất mạnh, trong đó đặc biệt phân khúc thị trường TBDĐ hỗ trợ Java đầy hứa hẹn. Số lượng xuất xưởng điện thoại di động (ĐTDĐ) và các thiết bị cầm tay khác (như PDA, smartphone) có 'nhúng' Java để chạy ứng dụng đa phương tiện, như game, dự báo vượt qua con số 600 triệu đơn vị vào năm 2005 (nguồn: ARC Group). (hình 1)
    Nguyên nhân chính của sự tăng trưởng mạnh mẽ này là nhờ sự tiện lợi  'mọi lúc mọi nơi', nội dung phong phú có thể tải xuống từ mạng và nhiều dịch vụ khác.

    'Java khắp nơi' và  J2ME
    Java được đặt nền tảng trên năng lực tính toán mạng và ý tưởng cùng một phần mềm chạy trên nhiều chủng loại máy tính, thiết bị tiêu dùng và các thiết bị khác. Kể từ khi phiên bản thương mại được đưa ra đầu tiên vào năm 1995, công nghệ Java đã được phát triển và ứng dụng ngày càng rộng rãi.

    Chương trình được viết bằng ngôn ngữ lập trình Java có thể chạy trên nhiều hệ thống khác nhau nhờ thành phần được gọi là 'máy ảo Java' (JVM - Java Virtual Machine) - một dạng trình biên dịch chuyển đổi mã lệnh Java thành mã lệnh thích hợp theo nền tảng hệ thống để 'ra lệnh' cho thiết bị làm việc. 'Máy ảo' là công nghệ phần mềm cung cấp môi trường nhất quán cho ứng dụng, bất chấp phần cứng khác nhau. (hình 2)
    Về mặt kỹ thu ật, 'Java khắp nơi' là giải pháp toàn diện và nhất quán. Nền tảng Java phía sever (Java 2 Platform, Enterprise Edition, hay J2EE), phía client (Java 2 Platform, Standard Edition và Micro Edition, hay J2SE và J2ME), và thiết bị nhúng (J2ME và Java Card) đều có chung các tính năng cơ bản của ngôn ngữ, như thiết kế API, thư viện và cả công cụ phát triển.
    Kiến trúc J2SE và J2EE đã khá ổn định qua nhiều năm phát triển và sự trưởng thành của nền tảng PC. Nhưng đối với TBDĐ, nền tảng hệ thống vẫn còn đang phát triển nhanh chóng. Khả năng làm việc với thiết bị của nhiều hãng sản xuất và với nhiều nhà cung cấp dịch vụ di động khác nhau chính là mục tiêu của J2ME. (hình 3)

     
            Hình 3: Java khắp nơi: hiện thực công nghệ

    Kiến trúc nền tảng J2ME bao gồm nhiều Configuration (cấu hình môi trường thực thi cho từng loại thiết bị) và Profile (tập con hàm thư viện API của J2ME đi theo từng cấu hình, tập hàm API này được dùng để phát triển ứng dụng có khả năng chạy trên các thiết bị 'cùng họ' - thuộc cùng nhóm J2ME Profile).
    Ví dụ, môi trường thực thi J2ME và tập hàm API cho điện thoại di động được xác định với các đặc tả kỹ thuật Connected Limited Device Configuration (CLDC) và Mobile  Information Device Profile (MIDP). Các đặc tả này cung cấp các tính năng như giao tiếp người dùng, kết nối mạng... và cho phép phát triển các ứng dụng như SMS (Short Message Service, dịch vụ nhắn tin ngắn), nội dung đa phương tiện, kết nối Bluetooth (không dây), GPS (Global Positioning System, hệ thống định vị toàn cầu) và dịch vụ web SOAP (Simple Object Access Protocol, giao thức truy cập đối tượng đơn giản).
    Tuy nhiên, việc tồn tại nhiều tập hàm API khác nhau có thể gây rối rắm và cản trở khả năng 'Write Once, Run Anywhere'. Hiện đang có nhiều nỗ lực nhằm thống nhất các bộ hàm API cho TBDĐ. Một trong những nỗ lực quan trọng nhất là JSR185, đặc tả Java cho ngành công nghiệp di động. Nhóm chuyên gia JSR 185 được tập hợp từ các nhà sản xuất thiết bị di động và nhà cung cấp dịch vụ lớn.
    Cũng nằm trong nỗ lực trên, gần đây Sun Microsystems đưa ra chương trình Java Device Test Suite để kiểm tra và đánh giá các thiết bị hỗ trợ Java, và Java Content Testing (www.javaverified.com) để kiểm tra và chứng nhận các ứng dụng Java thoả mãn tiêu chuẩn công nghệ, chương trình này được xây dựng bởi hiệp hội Unified Testing Initiative bao gồm các thành viên 'danh giá': Motorola, Nokia, Siemens, Sony-Ericsson và Sun.

     

    THỊ TRƯỜNG GAME DI ĐỘNG TRỊ GIÁ 3 TỈ USD DÀNH PHẦN CHO JAVA?

     

     


    Sự phát triển của công nghệ 2,5G VÀ 3G đã tạo nên lực đẩy mạnh mẽ cho thị trường game di động. Theo hãng nghiên cứu thị trường Analys(www.analysys.com), game sẽ có vai trò then chốt trong việc phát triển nội dung và các dịch vụ giải trí di động trong vòng 3 năm tới, và dự báo mức tăng trưởng doanh số game di động hơn 10 lần từ 245 triệu USD của năm 2002 lên hơn 3 tỉ USD vào năm 2008. Trong đó, game tải về cho điện thoại di động được dự báo là sôi động nhất và trong thời gian tới sẽ 'qua mặt' nhạc chuông và logo.
    Khác với game truyền thống chơi trên máy tính hay thiết bị chơi game chuyên dụng(PlayStation hay Nintendo Game Boy) nhắm đến giới trẻ hay các 'tay chơi' thứ thiệt, game di động có đối tượng người dùng đông đảo, có thể truy cập ở bất kỳ đâu và bất kỳ lúc nào. Game di động có thể chơi 'on-line' trên mạng (tuỳ thuộc nhà cung cấp dịch vụ) hay tải về từ mạng để chơi 'off-line' mà không phải lo vấn đề băng thông. Một điều tuyệt vời là điện thoại di động (ĐTDĐ) giờ đây đã trở  thành đồ dùng thân thiết luôn theo bạn gần như khắp mọi nơi, ngay cả như bạn không

     


    nghĩ mình là 'gamer' thì cũng có thể bạn đang sở hữu một công cụ chơi game thực thụ. 
    Phần cứng ĐTDĐ ngày càng mạnh. Pin ĐTDĐ có thời gian sử dụng ngày càng dài, các phím được thiết kế ngày càng tiện lợi (hiện đã có game pad cho ĐTDĐ) và khả năng hiển thị hình ảnh và âm thanh cũng ngày càng tốt, điều này góp phần tạo nên mảnh đất màu mỡ cho game di động phát triển.
    Cùng với sự cải tiến phần cứng ĐTDĐ, game cho ĐTDĐ di động cũng phát triển. Những game đầy màu sắc và âm thanh sống động, và cả những game nổi tiếng trên PC và PlayStation như Tomb Raider hay Lord of the Rings đều đã hiện diện trên thế giới di động. Một số game di động còn khai thác tính năng rung có trên hầu hết ĐTDĐ để đem lại cảm giác cho người chơi.
    Hiện Java là môi trường phát triển và hỗ trợ chơi game di động phổ biến nhất. Theo số liệu của tập đoàn giải trí Electronic Arts, đã có 17,6 triệu khách viếng thăm trang web của hãng và 'đốt' 8,2 tỉ phút chơi game Java (trung bình 70 phút/người/ngày).
    Được sự ủng hộ của các hãng sản xuất điện thoại hàng đầu, ĐTDĐ có hỗ trợ Java ngày càng trở nên phổ biến, theo dự báo của ARC Group, trong vòng 3 năm tới có thể chiếm hơn 80% thị phần (con số này đã

     


    Gamepad cho ĐTDĐ Samsung

     


    hiện thực ở châu Á, đặc biệt ở Nhật con số này lớn hơn, còn ở Việt Nam hiện nay là khoảng 65%). Hiện tất cả các hãng ĐTDĐ lớn, có thể kể như Nokia, Motorola và Ericsson đã hoặc có kế hoạch hỗ trợ Java trên các ĐTDĐ của mình.
    Để tải về game di động, bạn có thể duyệt trang WAP của nhà cung cấp dịch vụ và tải trực tiếp xuống ĐTDĐ của mình. Một cách khác, bạn có thể tải từ Web xuống PC, sau đó kết nối ĐTDĐ với PC (dùng cáp hoặc kết nối hồng ngoại) và dùng phần mềm đặc biệt đi theo ĐTDĐ để tải game sang ĐTDĐ.
    Có rất nhiều nguồn tham khảo về game di động trên web. Một trong những site nổi tiếng nhất hiện nay là Wireless Game Review (www.wirelessgamingreview.com). Về game Java di động, bạn có thể tham khảo các site: MyPhoneGames.co.uk, PhoneGames4U.com, TheMobileGamer.co.uk, www.javajeff.com/download-free-game-home-java-page.shtml...

     



    Thách thức và vận hội
    Cũng như những công nghệ khác, Java không phải là 'liều thuốc vạn năng'. Ứng dụng Java được tải xuống TBDĐ và chạy không cần mạng, đây là ưu điểm của Java so với WAP nhưng đây cũng là vấn đề của Java do dung lượng bộ nhớ hạn chế của TBDĐ. Thật 'vô lý' nếu bạn chỉ cần kiểm tra một vài thông tin như tỉ giá mà phải mất thời gian tải về ứng dụng nhiều hơn là đọc thông tin. Đó là lý do tại sao J2ME cùng 'đồng hành' với WAP (Wireless Application Protocol) và trình duyệt (cũng có thể được viết bằng Java).
    Một hạn chế khác là sự độc quyền các ứng dụng Java của nhà sản xuất và cung cấp dịch vụ. Mỗi nhà cung cấp dịch vụ có cách thức thực hiện khác nhau cho các thiết bị khác nhau, và những 'thêm thắt' khác nhau với J2ME. Ví dụ, NTT Docomo có các ứng dụng iAppli dựa trên J2ME nhưng người dùng của các nhà cung cấp dịch vụ khác không thể truy cập được.
    'Sân chơi' di động không chỉ có một mình Java. Trong thị trường này Java phải đối mặt với nhiều đối thủ đáng gờm khác như BREW (Binary Runtime Environment) của Qualcomm (sở hữu công nghệ CDMA), Symbian OS được sự hậu thuẫn của nhiều 'đại gia' trên thị trường di động, OpenWave - nhà phát triển hàng đầu trình duyệt WAP và dịch vụ dữ liệu, và .NET Compact Framework của gã khổng lồ Microsoft.
    Kinh nghiệp từ WAP, chỉ có một phần nhỏ trong số điện thoại WAP xuất xưởng thường truy cập dữ liệu, điều này buộc phải có chút băn khoăn về dự báo số lượng 'hàng triệu và hàng tỉ' TBDĐ J2ME.
    Thách thức nhiều nhưng vận hội cũng lớn. Môi trường thực thi Java hiện được 'nhúng' vào hơn 120 triệu thiết bị với hơn 200 chủng loại. Theo khảo sát Evans Data Corp. vào năm 2001, gần 30% nhà phát triển ứng dụng di động được hỏi có kế hoạch nhắm đến Java/J2ME, một năm sau con số này vượt hơn 50%. Hiện có hơn 3 triệu lập trình viên sử dụng Java. Số lượng đông đảo các nhà phát triển làm việc với Java có nghĩa việc cung cấp ứng dụng sẽ tăng trưởng nhanh chóng. Các công cụ phát triển J2ME cũng đang rất phát triển. Tất cả các môi trường phát triển Java lớn hiện nay đều hỗ trợ phát triển J2ME như Borland JBuilder và IBM WebSphere Studio Device Developer. 
    Nhiều khả năng Java sẽ chiếm lĩnh thị trường trong 2 năm tới. Toa tàu Java di động đã rời ga, bạn hoặc là bước lên toa tàu đó hoặc là ở lại sân ga. Mỗi khi bạn chọn một thiết bị động, hãy nghĩ về những vận hội có thể cùng với Java.ÿ
    Từ khoá: Java, J2ME, mobile

     

    LÀM CHO ĐTDĐ THÔNG MINH HƠN: JAVA VÀ CÁC ĐỐI THỦ

     

     


    ĐIÊN THOẠI CHỈ DÙNG ĐỂ 'A-LÔ'? Không đúng! Thời chiếc điện thoại nằm chết dí bên trong nhà bạn và chỉ làm đúng mỗi công việc 'a-lô' đã xưa rồi. Giờ đây chiếc điện thoại di động (ĐTDĐ) tung tăng theo bạn khắp mọi nơi. Cùng với sự 'giải phóng' này, ĐTDĐ còn có sự 'lột xác' về tính năng. Phần cứng ĐTDĐ liên tục được nâng cấp ngày càng mạnh và đồng thời ĐTDĐ cũng ngày càng 'thông minh' hơn. ĐTDĐ giờ đây có khả năng chạy các chương trình hay ứng dụng giống như máy tính, mặc dù lập trình cho điện thoại không dễ như với các thiết bị PDA chạy Palm OS hay Pocket PC.
    Hiện có nhiều lựa chọn để viết ứng dụng cho ĐTDĐ, có thể kể 5 môi trường phát triển phổ biến: Java 2 Platform Micro Edidtion (J2ME), BREW, Symbian OS, Openwave và Microsoft Windows CE 3.0 for Smartphone 2003.
    J2ME hiện là nền tảng phát triển ứng dụng di động phổ biến nhất. Java được thiết kế từ đầu để chạy trên các thiết bị có bộ nhớ hạn chế và thách thức về năng lực xử lý. J2ME có khả năng kết hợp với các 'đối thủ' BREW, Symbian OS và Openwave. Thách thức lớn nhất của J2ME là  sự nhất quán cho nhiều loại thiết bị. Hầu hết các hãng sản xuất ĐTDĐ hàng đầu đều ủng hộ Java. Ngoài ra Java còn nhận được sự ủng hộ rộng rãi của các nhà cung cấp dịch vụ di động.
    BREW (Binary Runtime Environment for Wireless) là sản phẩm của Qualcomm, hãng thành công trong thế giới Code Division Multiple Access (CDMA), công nghệ được dùng cho mạng và ĐTDĐ thế hệ 3G và 4G. Việc ứng dụng BREW bị giới hạn trong thị phần của Qualcomm. Ứng dụng BREW được phát triển bằng C/C++, BREW SDK (Software Development Kit, bộ công cụ phát triển phần mềm) cung cấp trình trợ giúp phát triển ứng dụng chạy trên Microsoft Visual Studio. Thoạt đầu BREW được xem là nền tảng cạnh tranh với Java, nhưng hiện nay cả Sun và Qualcomm đều cho rằng BREW và J2ME có khả năng bổ sung cho nhau.
    Symbian OS là hệ điều hành được thiết kế đặc biệt cho ĐTDĐ có khả năng dữ liệu thuộc sở hữu của các hãng Ericsson, Nokia, Panasonic, Motorola, Psion, Siemens và Sony-Ericsson. Đây là những 'đại gia' trên thị trường di động, giúp cho Symbian OS nhanh chóng trở thành nền tảng chính thống trên thị trường. Symbian OS SDK  cung cấp các hàm API C++ và lựa chọn phát triển với Java (chạy trên máy ảo Java của Symbian), C++, Visual Basic, ngoài ra còn có trình mô phỏng ĐTDĐ. Symbian cho phép truy cập trực tiếp các hàm API của ĐTDĐ, ngay cả từ Java.
    Openwave là nhà phát triển hàng đầu trình duyệt WAP (Wireless Application Protocol) và các dịch vụ dữ liệu cho ĐTDĐ (như nhắn tin). Bạn có thể tìm thấy các trình duyệt của Openwave trên các ĐTDĐ thuộc hệ thống Symbian OS và J2ME và nhiều ĐTDĐ khác dùng HĐH riêng của nhà sản xuất. Openwave còn cung cấp Download Fun cho phép tải xuống ĐTDĐ thông qua kết nối di động những thứ như chuông và tiện ích tiết kiệm màn hình (screen saver) và cả chương trình J2ME.
    Và còn phải kể đến Microsoft. Bạn chỉ có thể tìm thấy phần mềm hệ thống của Microsoft trên các ĐTDĐ thuộc hệ thống Microsoft, vì vậy sẽ không có sẵn hỗ trợ J2ME, BREW cũng như trình duyệt Openwave khi bạn mua điện thoại - tuy nhiên bạn có thể bổ sung thêm sau này nếu nhà cung cấp dịch vụ cho phép. Nền tảng ĐTDĐ của Microsoft, Smartphone 2003, dựa trên Pocket PC. Các nhà sản xuất ĐTDĐ và cung cấp dịch vụ di động dường như do dự chấp nhận Smartphone vì ngán ngại chính sách độc quyền của Microsoft, rút kinh nghiệm từ bài học Windows trên PC. Hiện chỉ mới có một nhà cung cấp dịch vụ cho Smartphone 2003 - Orange ở châu Âu. Nền tảng Smartphone có điểm mạnh là cho phép lập trình với các công cụ phát triển hàng đầu của Microsoft như Visual Studio .NET và Smart Device.
    Một số trang web dành cho các nhà phát triển ứng dụng trên ĐTDĐ: www.forum.nokia.com/main/1,6566,030,00.html, www.motorola.com/java, www.sonyericsson.com/developer/, ...

     

     

     

    Môi trường phát triển  

                     Điện thoại di động 

                                Website

     

     

    J2ME 

    Motorola A388c, V295, T720, và  nhiều modle khác. LG 5350 và nhiều model khác Nokia, Siemens, Sony Ericsson, Toshiba, Samsung, Kyocera, ...   

         Micro Java Network
        
    http://www.microjava.com/devices

     

     

    Symbian OS  

    Nokia 7650, 3650, 9290
    Sony Ericsson P800, P900  

      Symbian
      
    http://www.symbian.com/phones/index.html

     

     

    BREW      

    LG VX4400 và nhiều model khác Samsung SPH8500 và nhiều model khác Motorola T720, Kyocera 3035E, Toshiba 9500 Sharp Z-800 

       Qualcomm
       
    http://www.qualcomm.com/brew/
       developerl/developing/phonetypes.htm

     

     

    Openwave 

    LG 5350Siemens S55 and A56 (có Download Fun) Motorola A388, T720, V70 Nokia 8270, Ericsson A1228c, Samsung A460
    Nhiều model và nhãn hiệu khác

        OpenwaveSystems Inc.
        http://developer.openwave.com
        /resources/phones.html

     

     

    Smartphone 2003     

        Orange Smartphone SPV (châu Âu)  

       Microsoft Mobile Devices
      
    http://www.microsoft.com/mobile
       /smartphone/

     

    Cái gì bên trong ĐTDĐ? Không dễ nhận biết môi trường thực thi nào hiện diện bên trong ĐTDĐ của bạn. 'Manh mối' có thể tìm thấy trên website của các nhà cung cấp môi trường phát triển ứng dụng cho ĐTDĐ và danh sách một số ĐTDĐ chạy J2ME, Symbian OS, BREW, Openwave và Smartphone 2003 được liệt kê ở đây.

     


    Phương Uyên

     

    ID: A0312_86