1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng 1 phần thành phần server trong hệ thống mobile portal

82 247 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 82
Dung lượng 3,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các nhiệm vụ cụ thể của ĐATN Từ các mục đích nội dụng, các nhiệm vụ cụ thể của đồ án sẽ thực hiện • Tim hiểu về lập trình trên điện thoại di động • Tìm hiểu về iPhone • Tìm hiểu về công

Trang 1

HÀ NỘI 05-2011

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1 Thông tin về sinh viên

Họ và tên sinh viên: Nguyễn Quốc Huy

Điện thoại liên lạc : 01692348486 Email: ongdo2004@gmail.com

Đồ án tốt nghiệp được thực hiện tại: Đại học Bách Khoa – Hà Nội

Thời gian làm ĐATN: Từ ngày 28 / 02 /2011 đến 28 / 05 /2011

2 Mục đích nội dung của ĐATN

• Tìm hiểu môi trường lập trình trên điện thoại iPhone

• Xây dựng ứng dụng cung cấp dịch vụ thông tin , hỗ trợ người dùng trên đi thoại di động iPhone (phía client)

• Xây dựng Server cung cấp cổng thông tin phục vụ ứng dụng phía client

3 Các nhiệm vụ cụ thể của ĐATN

Từ các mục đích nội dụng, các nhiệm vụ cụ thể của đồ án sẽ thực hiện

• Tim hiểu về lập trình trên điện thoại di động

• Tìm hiểu về iPhone

• Tìm hiểu về công cụ, ngôn ngữ , nền tảng lập trình cho điện thoại iPhone

• Tìm hiểu về thiết kế và lập trình Server , mô hình hệ thống Mobile Portal

• Thiết kế và xây dựng ứng dụng cung cấp dịch vụ thông tin trên điện thoại iPhone

4 Lời cam đoan của sinh viên:

Tôi – Nguyễn Quốc Huy - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của ThS Lương Mạnh Bá và ThS Nguyễn Tiến Thành

Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác

Hà Nội, ngày tháng năm

Tác giả ĐATN

Nguyễn Quốc Huy

Trang 2

5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ:

Hà Nội, ngày tháng năm

Giáo viên hướng dẫn

ThS Lương Mạnh Bá

Hà Nội, ngày tháng năm

Giáo viên hướng dẫn

ThS Nguyễn Tiến Thành

Trang 3

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Nhận thức được xu hướng phát triển của các ứng dụng di động hiện nay cũng như trong tương lai gần sẽ tiếp tục tăng và dựa trên những nền tảng di động của các năm trước Đặc biệt trong năm nay được dự đoán sẽ là sự bùng nổ của 1 loạt các ứng dụng di động được tung ra thị trường Các công ty phát triển phần mềm cũng như cá nhân các lập trình viên đang tìm kiếm cho mình 1 ứng dụng đáp ứng được hầu hết các tầng lớp khách hàng trong nhu cầu sử dụng riêng Từ đó hệ thống cổng thông tin di động Mobile Portal đã ra đời và đi vào hoạt động , với đặc tính “chỉ 1 kết nối” hay “tất cả trong 1” sẽ là đầu mối thông tin cho nhiều vấn đề , giúp người dùng định hướng trong hành trình khám phá kho báu internet rộng rãi

Trọng tâm của đồ án sinh viên xin trình bày việc xây dựng 1 phần server của hệ thống mobile portal – và xây dựng thành phần client - ứng dụng trên nền iPhone giao tiếp với server qua hệ thống mobile portal này Các phần chính của báo cáo :

Trang 4

Lời nói đầu

Đồ án tốt nghiệp này đã được hoàn thành sau một thời tìm hiểu, xây dựng tại Công ty

Cổ phần dịch vụ công nghệ thông tin Naiscorp Ngoài sự cố gắng và nỗ lực của bản

thân, còn có sự giúp đỡ của nhiều người để em có thể hoàn thành được đồ án như ngày nay

Trước hết, em xin được gửi lời cảm ơn sâu sắc đến ThS Lương Mạnh Bá và ThS

Nguyễn Tiến Thành - Bộ môn Công nghệ phần mềm, Viện Công nghệ Thông tin và

Truyền thông, trường Đại học Bách Khoa Hà Nội đã hết lòng giúp đỡ, định hướng và chỉ dạy tận tình giúp em vượt qua những khó khăn trong quá trình em làm đồ án tốt nghiệp

Em xin được gửi lời cảm ơn tới các thầy cô giáo trong trường Đại học Bách Khoa Hà

Nội nói chung và các thầy cô trong viện Công nghệ Thông tin và Truyền thông, Bộ môn

Công nghệ phần mềm nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức, những kinh nghiệm quý báu trong suốt 5 năm học tập và rèn luyện tại trường Đại học Bách Khoa Hà Nội

Ngoài ra, em cũng xin gửi lời cảm ơn đến chị An Thị Hồng , anh Mai Đình Thắng và

các anh chị em công ty Naiscorp đã tạo điều kiện để em có thể hoàn thành sản phẩm và cũng là đồ án của mình

Nguyễn Quốc Huy

Trang 5

Phần 1 : Nền tảng công nghệ

1 Chương 1 : Tìm hiểu môi trường lập trình trên iPhone

1.1 Tổng quan về lập trình trên di động

1.1.1 Thị trường lập trình trên di động :

Số lượng thiết bị di động ngày càng tăng ở Việt Nam, nhiều người đã coi điện thọai

di động như một vật không thể thiếu trong cuộc sống hằng ngày Cùng với sự phát triển mạnh mẽ của công nghệ thông tin trong thời đại mới, người sử dụng di động bắt đầu hướng tới những nhu cầu cao cấp hơn Không chỉ nghe-gọi, nhắn tin mà giờ đây họ còn muốn sở hữu một chiếc điện thoại có khả năng truy cập mạng và thực hiện mọi ứng dụng như một chiếc máy tính bỏ túi

Để có thể thực hiện được các tính năng cao cấp như đọc báo, tiểu thuyết, tra từ điển, bản đồ và nhất là thế giới giải trí với ca nhạc, xem phim, chơi game… thì ngoài nền tảng phần cứng do nhà sản xuất điện thoại cung cấp còn cân phải có các phần mềm chuyên dụng cài đặt trên di động để thực hiện các chức năng trên

Tuy nhiên, thị trường di động là một thị trường rất sôi động với đủ loại thiết bị di động của các nhà sản xuất có kiểu dáng, tính năng, tốc độ xử lý, bộ nhớ trong, màn hình giao diện… khác nhau Và cũng vì có nhiều nhà sản xuất mà lại không có một chuẩn công nghệ (về mặt phần mềm) nào được áp dụng chung cho tất cả các máy điện thoại di động nên công việc lập trình cho điện thoại di động đúng là một bài toán khó cho các lập trình viên

Việc lựa chọn một nền tảng phát triển cho điện thoại di động cũng là một vấn đề nan giải Hiện nay có thể kể tên các nền tảng di động phổ biến: iPhone, Window Mobile, Android, J2ME, Symbian Nhìn vào hình dưới đây có thể thấy được phần nào

sự phong phú của thị trường này

Trang 6

Hình 1.1 : Các nền tảng lập trình di động

1.1.2 Thị trường lập trình trên di động :

1 Những ưu điểm , thuận lợi :

Đi theo sự phát triển như vũ bão của mạng internet là nhu cầu truy cập thông tin của người sử dụng mọi lúc mọi nơi khiến cho các thiết bị mobile là một thiết bị lí tưởng để đáp ứng bởi sự nhỏ gọn cũng như tính năng di động của nó

Ngày nay khi mà sự phát triển về phần cứng của các thiết bị di động đã đáp ứng được những xử lí phức tạp của các thiết bị di động , thì chức năng của chiếc điện thoại không còn bó hẹp trong việc nghe gọi và nhận các thông tin đơn giản nữa Chiếc điện thoại ngày nay gần giống với 1 chiếc PC , hỗ trợ người dùng trong các công việc hàng ngày , đáp ứng nhu cầu giải trí , thông tin

Người sử dụng sẵn sàng bỏ ra 1 khoản tiền để mua những ứng dụng đáp ứng nhu cầu của mình Nguồn lợi to lớn này là 1 trong những động lực thúc đẩy sự phát triển của các ứng dụng di động

Trang 7

Nhu cầu người dùng tăng cao , khiến cho sự phát triển của các nền tảng di động tăng trưởng 1 cách mạnh mẽ , đặc biệt được dự đoán sẽ bùng nổ trong năm 2011 , đã thu hút một lượng lớn các lập trình viên chuyển từ các lĩnh vực khác sang Nó gián tiếp tạo ra 1 cộng đồng lớn , mà trong đó có sự giúp đỡ , hỗ trợ lẫn nhau ; tạo ra 1 cộng đồng thư viện lập trình API rộng rãi khiến cho việc lập trình trở nên đơn giản hơn

Sự hỗ trở của các hãng lớn cho các nền tảng phát triển của mình tạo điều kiện thuận lợi cho các lập trình viên trong việc thiết kế, xây dựng cũng như quảng bá sản phẩm tới mọi đối tượng người dùng

2 Những ưu điểm , thuận lợi :

Tuy phần cứng di dộng ngày càng phát triển nhưng nó cũng không thể hoàn toàn thay thế được những chiêc PC bởi hạn chế về kích thước cũng như công nghệ phát triển So với chiếc máy tính để bàn hay laptop, chỉ với bộ nhớ trong vài GB, RAM cao nhất

là 256 MB, bộ nhớ của chiếc điện thoại di động quả là quá nhỏ Hơn nữa, một phần bộ nhớ này lại đã được sử dụng để chạy hệ điều hành, xử lý đồ họa… Do đó khi viết ứng dụng, lập trình viên phải chú ý nhiều đến bộ nhớ Có thể nói rằng lập trình cho di động giống như việc đẩy các lập trình viên về với thời kỳ đầu của lập trình cho máy tính cá nhân, phải tiết kiệm từng KB bộ nhớ một nếu không muốn xảy ra tình trạng tràn bộ nhớ

Người sử dụng ứng dụng trên di động đòi hỏi tốc độ phải nhanh, ví như mở một game, người ta không thể ngồi chờ cả chục phút để game load xong Do đó, quá trình đóng, mở ứng dụng phải diễn ra nhanh chóng Hơn nữa, dù có thông minh đến mấy, nhiều chức năng đến mấy, chiếc điện thoại di động cũng phải là “chiếc điện thoại” trước đã Vậy khi đang chạy ứng dụng, bất thình lình có một tin nhắn hay một cuộc gọi đến thì sao? Ứng dụng phải được đóng tạm thời một cách nhanh chóng, lưu trữ lại trạng thái trước khi đóng, cho người dùng nhận tin nhắn, cuộc gọi (nếu người dùng lựa chọn nhận), sau đó lại cho phép người dùng trở lại ứng dụng với trạng thái trước đó

Sức hấp dẫn của Internet là không thể chối cãi Người dùng muốn truy cập internet mọi lúc mọi nơi, người lập trình thì muốn tạo ra các ứng dụng có khả năng khai thác nguồn tài nguyên vô tận của internet Tuy nhiên không phải thiết bị di động nào cũng

có khả năng truy nhập internet Vì vậy, cần phải hiểu về các dịch vụ phần cứng của thiết bị đó hỗ trợ

Tư tưởng “code một chỗ, dùng ở mọi nơi” khó mà áp dụng được cho lĩnh vực lập trình di động Ví dụ như với các dòng máy cho phép cài đặt các ứng dụng viết bằng ngôn ngữ Java Về lý thuyết, chương trình Java được xây dựng xong có thể đem đi mọi nơi có máy ảo Java để chạy Nhưng các thiết bị di động của các hãng khác nhau lại có

bộ nhớ cùng với tốc độ xử lý khác nhau, phải hiểu rõ sự khác nhau này thì mới có thể

Trang 8

điều chỉnh cho ứng dụng có thể chạy trên các dòng máy khác nhau Hơn nữa, màn hình hiển thị của các thiết bị di động cũng “trăm hoa đua nở” với kích thước, độ phân giải màn hình… không theo một chuẩn nhất định nên chắc chắc sẽ không ra kết quả như mong muốn khi cài đặt cùng một ứng dụng lên các thiết bị khác nhau mà không có sự sửa đổi hiển thị đầu ra cho phù hợp Mặt khác, các thiết bị di động cũng tiếp nhận tương tác của người dùng rất khác nhau: qua bàn phím, chuột, bút, cảm ứng… nên lập trình viên cũng cần phải lưu ý đến điều này.

Màn hình của các thiết bị di động rất bé so với máy tính để bàn hay máy tính xách tay nên các ứng dụng cũng không thể có giao diện quá phức tạp bởi như thế sẽ làm rối mắt người sử dụng

Năm 2011 , tiếp tục chứng kiện sự phân mảnh của thị trường di động khi ứng dụng ngày càng được phát triển Điều này gián tiếp bắt người lập trình phải lựa chọn những nền tảng thích hợp cho ứng dụng của mình , khó khăn trong việc chuyển đổi giữa các nền tảng trong cùng một ứng dụng

1.1.3 Các nền tảng phát triển di động hứa hẹn trong năm 2011 :

Năm 2011 tiếp tục là cuộc cạnh tranh của các nền tảng di động cũ đã xuất hiện trước đó như iOS , Symbian , WindowsPhone , Blackberry và Android Đồng thời cộng đồng cũng đón chờ những nền tảng mới sắp được đưa ra hứa hẹn sẽ là đối thủ nặng kí cho các nền tảng trên bởi sự hậu thuẫn từ các hãng lớn như : WebOS ( do HP ) , MeeGo ( từ Nokia và các đồng mình ) , Blackberry OS7 ( phát triển hoàn toàn mới so với OS6 )

iPhone

Có thể nói iPhone là nền tảng đem lại lợi nhuận cao nhất cho lập trình viên cũng như các hãng cung cấp dịch vụ Sự thay đổi về đa nhiệm ở các phiên bản mới ( 4.x ) so với các phiên bản trước đó là sự cải tiến đáng kể nhất Sự thành công của iPhone không chỉ bởi nền tảng có giao diện đơn giản, những chiếc di động thiết kế đẹp, mà Apple đã xây dựng một "hệ sinh thái" với vô số ứng dụng trong App Store

Symbian

Sự thay đổi chậm chạp khiến cho nền tảng này của Nokia đang mất đi vị thế độc tôn vốn có trước đây của nó Sức thu hút lập trình viên cũng không còn được như trước Tuy nhiên nó vẫn giữ được thị phần trong mảng điện thoại phổ thông bởi tính đơn giản và nhẹ nhàng của nó

WindowsPhone 7

WindowsPhone 7 là sự thay đổi thực sự chứ không phải là 1 bản cải tiến của Windows Mobile 6.5 trước đó Microsoft hứa hẹn sẽ mang lại những trải nghiệm mới

Trang 9

cho người dùng và lập trình viên , đơn giản , dễ dùng Mới ra đời nên Microsoft cũng đang tích cực phát triển gian ứng dụng Market Place và hoàn thiện các công cụ lập trình liên quan Hi vọng đây cũng sẽ là nền tảng thành công giống như Windows 7 của Microsoft

Blackberry OS

Cho ra mắt liền 2 phiên bản OS 6 và 7 trong khoảng thời gian ngắn , RIM cho thấy vòng đời của các hệ điều hành ngày càng rút ngắn dần , điều này tích cực mang lại sự phong phú cho người dùng và lập trình viên Hệ điều hành này của RIM có khả năng tướng thích với HTML 5 và hỗ trợ đa điểm tốt hơn

Samsung Bada

Samsung từng sản xuất di động chạy Windows Mobile, Android Bada là nền tảng của hãng phát triển riêng, với giao diện có nhiều đường nét của TouchWiz Bada dành cho màn hình cảm ứng, nhấn mạnh vào các yếu tố như giải trí, kết nối Samsung Wave S8500 là model đầu tiên chạy nền tảng này, máy sẽ bán ra trong quý này

Hiện tại, Bada đang được Samsung hoàn thiện, hãng cũng đã giới thiệu công cụ lập trình, các nhà phát triển có thể viết các ứng dụng về giao diện Flash, điều khiển web, điều khiển chuyển động, nhận dạng khuôn mặt, thời tiết và các ứng dụng nhập vai, tương tác

1.2 Tổng quan về lập trình trên nền tảng iPhone

1.2.1 Giới thiệu về iPhone

1 Cuộc cách mạng về công nghệ trên di động mang tên iPhone

Tháng 6 năm 2007, chiếc iPhone thế hệ đầu tiên ra mắt và mở đầu cho cơn sốt iPhone trên toàn thế giới Không hổ danh là công ty luôn đi đầu về công nghệ, Apple

đã tạo ra thay đổi mang tính cách mạng với chiếc điện thoại di động khi giới thiệu một giao diện người dùng hoàn toàn mới trên nền tảng màn hình cảm ứng đa điểm và phần mềm mới có tính tiên phong Hệ điều hành của iPhone giúp người dùng có thể điều khiển chiếc điện thoại của họ chỉ bằng một thao tác nhấn, gảy hoặc chụm tay

Đến năm 2008, Apple lại cho ra mắt iPhone 3G cùng với App Store - một “cửa hàng” các ứng dụng cho iPhone

iPhone có màn hình cảm ứng đa điểm, bàn phím ảo hoàn toàn thay thế bàn phím thật và có một gia tốc kế bên trong Màn hình cảm ứng đa điểm tận dụng xúc giác tự

Trang 10

nhiên của khách hàng mà không thông qua bút stylus Các thao tác trên máy được thực hiện dễ dàng chỉ bằng cách đặt ngón tay lên màn hình nhấn, kéo, thả… iPhone loại bỏ hoàn toàn sự xuất hiện của bàn phím thật, thay vào đó là bàn phím thông minh hoạt động trên cơ sở phần mềm Bàn phím ảo này cho phép người dùng chuyển đổi qua lại giữa 40 dạng bàn phím quốc tế và có phần mềm nhận dạng ký tự cho phép người dùng viết các ký tự Trung Hoa bằng ngón tay rồi nhấn chọn kết quả thích hợp

iPhone phản ứng với các chuyển động bằng một gia tốc kế lắp bên trong Khi người dùng quay iPhone từ phương đứng sang phương ngang, gia tốc kế phát hiện ra chuyển động này và thay đổi màn hình, cho xem toàn bộ chiều rộng của trang web, hình ảnh, tin nhắn, hoặc bản ghi chú gia tốc kế cũng được sử dụng để kiểm soát việc chơi game hay đảo ngược hành động trước đó (như lệnh “Shake to Undo”)

Với iPhone 3GS, người dùng có thể tự điều chỉnh và sắp xếp các biểu tượng trên màn hình Chủ (Home screen), kể cả các biểu tượng trên Thanh Công Cụ theo ý muốn của mình

iPhone phân tích các cú gõ để đề nghị các từ mà người dùng gõ vào, và học được những từ người dùng thường hay gõ nhất – kể cả tên riêng và thông tin trong sổ liên lạc (contact list) của họ

Nhấn và giữ nút Home để mở chế độ Voice Control (Điều Khiển Bằng Khẩu Lệnh), rồi đọc vào tên hay số điện thoại của một người liên lạc để gọi điện iPhone cũng mở nhạc và tạo ra các danh mục mở (playlist), bằng cách chỉ việc dùng khẩu lệnh Đây là một trong các tính năng mới được thêm vào sau này của iPhone

iPhone 3GS được chuẩn hóa bằng các tính năng tiếp cận sử dụng (accessibility) hỗ trợ cho người khuyết tật

iPhone cung cấp các dữ liệu vị trí để tìm đến các ứng dụng cài đặt sẵn và Cửa Hàng Ứng Dụng (App Store) Khi chụp ảnh bằng camera iPhone có thể gắn thẻ địa lý (geotag), ghi các thông tin về địa điểm GPS (Hệ Thống Định Vị Toàn Cầu) cho nó Nhờ vậy, khi người dùng chia sẻ hình ảnh trên mạng, bạn bè và gia đình có thể biết được địa điểm của hình chụp

Trang 11

Màn hình nhỏ : màn hình của iPhone có độ phân giải 480 x 320 pixel Không có

nhiều không gian để làm việc cùng Kích thước màn hình nhỏ cũng dẫn tới việc chỉ có duy nhất 1 cửa sổ có thể hiển thị tại một thời điểm Tuy nhiên màn hình của iPhone vẫn được coi là có số điểm anh cao trong các thiết bị hiện nay

Bảo mật : chỉ có thể đọc và ghi vào thư mục là một phần của gói ứng dụng Vùng

có thể truy nhập trong một ứng dụng được gọi là sandbox Không thể đọc file được tạo bởi ứng dụng khác Không thể ghi vào bất cứ nơi nào ngoài sandbox của ứng dụng

Ứng dụng có vòng đời ngắn : các ứng dụng iPhone không thể thường trú trong bộ

nhớ Các ứng dụng thường trú trong bộ nhớ là ứng dụng có thể chạy ẩn trong khi người dùng chạy ứng dụng khác iPhone chỉ cho phép 1 chương trình chạy tại một thời điểm

đo đó cần lưu ý tới các trường hợp như đang chạy ứng dụng thì có tin nhắn, điện thoại… Tuy nhiên, hạn chế này sẽ sớm được khắc phục khi Apple đang dự kiến cho ra mắt iPhone 4.0 với hệ điều hành đa nhiệm trong năm nay

Người lập trình viên phải tự quản lý bộ nhớ do iPhone không có bộ gom rác

(garbage collection)

1.2.2 Yêu cầu tối thiểu của lập trình iPhone

Hệ điều hành MacOS các phiên bản từ 10.5 trở lên

Công cụ iPhone SDK iPhone SDK có thể download miễn phí từ trang

Trang 12

Hình 1.2 : thành phần Xcode

Các template sẵn có trong Xcode :

Trang 13

Template Ứng dụng

View - based application Áp dụng với những ứng dụng chỉ có một view (cảnh) Một

controller quản lý view chính của ứng dụng

OpenGL ES application Áp dụng với những ứng dụng sử dụng tới đồ họa, 3D game

Tab bar application Cung cấp một controller đặc biệt hiển thị một nút bên dưới

màn hình Đây là template thích hợp cho các ứng dụng kiểu cho iPod hay là Mobile Phone

Trang 14

Sự bố trí của 1 project trong Xcode :

Sau khi tạo một project mới, màn hình project sẽ mở ra:

Hình 1.4 : Xcode Editor

Một project đóng gói nguồn, framework và các tài nguyên của ứng dụng Trong một project bao gồm:

Classes : Chứa các lớp Objective-C mà ứng dụng cần sử dụng: đối tượng

delegate, view controller, và các đối tượng khác người dùng tạo ra Khi muốn thêm một lớp mới vào ứng dụng của mình, lập trình viên sẽ thêm lớp mới của mình vào đây

Other sources: các nguồn khác được biên dịch vào ứng dụng Mặc định,

Other sources sẽ chứa các header tiền biên dịch và hàm main

Resources: Các tài nguyên của ứng dụng mà không được biên dịch vào

trong source code nhưng được sao chép vào thư mục chương trình khi ứng dụng build lên Các tài nguyên này bao gồm: ảnh, âm thanh, game level hay các file quan trọng khác

Trang 15

Frameworks: chứa các framework mà ứng dụng có liên kết Các thư viện

này được liên kết lúc build

Products: build target cho ứng dụng

2 Thành phần Interface builder :

Cũng giống các SDK lập trình cao cấp hiện nay, nền tảng iPhone cũng hỗ trợ lập trình đơn giản trong thao tác thiết kế giao diện , cung cấp khả năng kéo thả và tùy biến tương đối mạnh mẽ

Tạo file Interface builder :

Khi tạo một project, Xcode sử dụng project template, trong project mới được tạo ra

sẽ chứa một tập file Interface Builder cơ bản Khi muốn tạo thêm các file Interface Builder, trong hộp thoại Xcode chọn New File, hoặc trong giao diện Builder chọn File> New Cửa sô “Choose a Template” được mở ra:

Hình 1.5 : Interface Builder – New file

Trang 16

Đối với mỗi một file mới được tạo ra, Interface Builder cho phép người dùng chọn một template bắt đầu Các template này xác định tập các đối tượng khởi tạo ban đầu sử dụng trong file giao diện mới được tạo ra Interface Builder cung cấp một số template khác nhau được liệt kê trong bảng sau Mỗi template hướng tới một mục tiêu khác nhau Người dùng cũng có thể sử dụng template rỗng nếu muốn tự thêm các đối tượng cho tài liệu của mình Đối với bất kỳ template có sẵn nào, người dùng cũng có thể loại

bỏ các đối tượng không muốn

Platform Sản phẩm Template Mô tả

iPhone

OS

iPhone Application Tạo một file giao diện sử dụng để thiết kế giao

diện cho ứng dụng Cocoa Touch File giao diện này chứa 1 cửa sổ

View Dùng để thiết kế một view trong ưng dụng

Cocoa Touch

Window Dùng để thiết kế một cửa sổ trong ứng dụng

Cocoa Touch

Empty Tạo một file rỗng mà người dùng có thể tùy ý

thêm các đối tượng

iPad Application Tạo ra file thích hợp để tạo ứng dụng cho

iPad, gồm một delegate và một cửa sổ của ứng dụng

View Tạo một file để thiết kế view cho ứng dụng

iPad

Window Dùng dể thiết kế một cửa sổ cho ứng dụng

iPad

Empty Mac OS

X

Cocoa Application Tạo một file giao diện sử dụng để thiết kế giao

diện cho ứng dụng Cocoa File giao diện này chứa 1 cửa sổ

Main Menu Tạo tài liệu để thiết kế thanh thực đơn cho ứng

Empty Tạo một file rỗng mà người dùng có thể tùy ý

thêm các đối tượng

Carrbon Application Tạo một file giao diện sử dụng để thiết kế giao

diện cho ứng dụng Carbon File giao diện này chứa 1 cửa sổ

Dialog Tạo tài liệu để thiết kế hộp thoại cho ứng dụng

Carbon

Main Menu Tạo tài liệu để thiết kế thanh thực đơn cho ứng

Trang 17

dụng Carbon

Window Dùng để thiết kế một cửa sổ trong ứng dụng

Carbon

Empty Tạo một file rỗng mà người dùng có thể tùy ý

thêm các đối tượng

- Library Dùng để thiết kế các phần tử thư viện cho

Interface Builder plug-in

Bảng 1.6 : Các template của interface builder

Cửa sổ tài liệu :

Interface Builder cung cấp một số cửa sổ cho phép người dùng hiển thị và chỉnh sửa các đối tượng trong giao diện sử dụng của ứng dụng: cửa sổ tài liệu, cửa sổ thư viện, cửa sổ Inspector, bảng kết nối

o Cửa sổ tài liệu: Mỗi tài liệu Interface Builder lưu trữ thông tin về một hoặc nhiều đối tượng người sử dụng muốn tạo ra tại thời gian chạy trong ứng dụng của mình Hầu hết các đối tượng tương ứng với các phần tử hiển thị trên màn hình, chẳng hạn như cửa sổ, view, điều khiển, và thực đơn Một số đối tượng không tương ứng với các phần

tử hiển thị, chẳng hạn như các đối tượng điều khiển được chương trình sử dụng để quản lý các cửa sổ và view của mình

Ví dụ một cửa sổ tài liệu:

Trang 18

Hình 1.7 : Cửa sổ tài liệu Interface Builder

o Cửa sổ thư viện: Cửa sổ thư viện chứa các đối tượng và các tài nguyên được thêm vào tài liệu Interface Builder Hình sau cho thấy cửa sổ thư viện với một tập các đối tượng nút Cocoa Người dùng có thể kéo một đối tượng nút lên mặt thiết kế như một cửa sổ hoặc view

Hình 1.8 : Cửa sổ thư viện Interface Builder

o Cửa sổ Inspector: Cửa sổ Inspector giúp dễ dàng hiển thị và điều chỉnh các cài đặt cho đối tượng hiện đang được chọn Sử dụng các biểu tượng chế độ dọc theo phía trên cửa sổ để lựa chọn một pane và hiển thị các cài đặt tương ứng Hình sau cho thấy cửa sổ thuộc tính cho một nút Cocoa

Trang 19

Hình 1.9 : cửa sổ thuộc tính Interface Builder

o Bảng điều khiển kết nối: Một kết nối là cách để các thành phần giao diện kết hợp với mã nguồn Đối với tài liệu được sử dụng nền tảng Cocoa và Cocoa Touch, bảng điều khiển kết nối là một cách nhanh chóng để tạo và quản lý các kết nối cho một đối tượng cụ thể

Trang 20

Hình 1.9 : Bảng kết nối của Interface Builder

Trang 21

3 Thành phần iPhone Simulator :

iPhone Simulator là giả lập của iPhone cho phép người dùng triền khai và kiểm thử các ứng dụng iPhone trên máy tính để bàn Simulator cung cấp môi trường giống với iPhone với tùy chọn menu để giả lập khóa, xoay màn hình… Tuy nhiên nó cũng có một

số giới hạn nhất định do desktop không có các phần cứng cần thiết để thực hiện các tác

vụ đó

Một số chức năng quan trọng không có trong simulator:

Không có API đo gia tốc

Chỉ giới hạn với một số cử chỉ tương tác với màn hình cảm ứng, và không hỗ trợ nhiều hơn 2 ngón tương tác lên màn hình cảm ứng

Ứng dụng sẽ không nhận điện thoại gọi đến

Không thể truy nhập mạng EDGE/3G

Không có chức năng ghi hình và ghi âm

Chỉ có sẵn một số ứng dụng của iPhone: Contacts, Safari, Photos và Settings

Không thể thấy tác động của ứng dụng lên CPU và bộ nhớ của iPhone bởi máy desktop có nhiều tài nguyên hơn để chạy ứng dụng Đồ họa chậm hay các vấn đề khác chỉ có thể phát hiện ra khi kiểm thử trên máy thật

Hình 1.10 : iPhone Simulator

Trang 22

1.2.4 Ngôn ngữ lập trình Objective - C :

1 Lịch sử ra đời của ngôn ngữ Objective – C :

Đầu những năm 70 của thế kỷ trước, Dennis Ritchie của phòng thí nghiệm AT&T Bell giới thiệu ngôn ngữ lập trình C Tuy nhiên phải đến cuối những năm 70, ngôn ngữ

C mới trở nên phổ biến do trước đó bộ biên dịch cho C chưa phải là sản phẩm thương mại bên ngoài phòng thí nghiệm Bell

Đến đầu những năm 80 của thế kỷ trước, Brad J.Cox thiết kế nên ngôn ngữ Objective-C Ngôn ngữ này dựa trên một ngôn ngữ tên là SmallTalk-80 Objective-C ở tầng trên của ngôn ngữ C với ý nghĩa là những phần mở rộng đã được bổ sung vào C

để tạo thành một ngôn ngữ lập trình mới có thể tạo ra và quản lý đối tượng

NeXT Software đăng ký ngôn ngữ Objective-C vào năm 1988 và phát triển thư viện và một môi trường phát triển cho nó tên là NEXTSTEP

Năm 1994, NeXT Computer và Sun Microsystem phát hành bản đặc tả kỹ thuật chuẩn của hệ thống NEXTSTEP gọi là OPENSTEP

20/12/1996, hãng máy tính Apple công bố đã giành được NeXT Software, và NEXTSTEP/OPENSTEP trở thành nền móng cơ bản cho OS X, hệ điều hành thế hệ tiếp theo của Apple Phiên bản môi trường phát triển này của Apple được gọi là Cocoa Nhiều hỗ trợ cho ngôn ngữ Objective-C được tích hợp sẵn, cùng với Xcode và Interface Builder, Apple đã tạo ra một môi trường phát triển rất mạnh cho phát triển ứng dụng trên hệ điều hành Mac OS X

Năm 2007, Apple phát hành bản cập nhật của Objective-C gọi là Objective-C 2.0

Năm 2007 cũng là năm Apple phát hành iPhone Ban đầu, Apple không cho phép các ứng dụng của bên thứ 3 chạy trên thiết bị này Nhưng sau một thời gian khi một số hacker bẻ khóa được iPhone và viết các phần mềm có thể chạy trên iPhone, Apple đã thay đổi chiến lược Apple đã thuê chính các hacker này để viết nên iPhone SDK cho phép các nhà phát triển có thể viết ứng dụng cho iPhone

2 Lớp , đối tượng và thông điệp :

Trang 23

một trình biên dịch, mà còn cần một runtime system để thực thi mã biên dịch Runtime system hoạt động như một loại hệ điều hành cho ngôn ngữ Objective-C vì nhờ nó mà ngôn ngữ này mới có thể làm việc Tuy nhiên, các lập trình viên không nhất thiết phải tương tác trực tiếp với runtime.

b) Đối tượng

Khái niệm đối tượng trong Objective-C không khác so với trong các ngôn ngữ lập trình hướng đối tượng khác như là Java , C++ hay C# Đối tượng bao gồm các thuộc tính và các phương thức

id: Trong Objective-C, định danh của đối tượng là một loại dữ liệu đặc biệt:

id Đây là kiểu chung cho bất kỳ loại đối tượng nào kể cả lớp (Nó có thể

được sử dụng cho cả thể hiện của lớp và chính bản thân đối tượng lớp) id

là con trỏ tới cấu trúc dữ liệu đối tượng:

typedef struct objc_object { Class isa;

} *id;

Do đó, tất cả các đối tượng đều chứa biến thành phần isa để xác định xem

nó là thể hiện của lớp nào

Giống như một hàm hay màng của C, một đối tượng được xác định bởi địa chỉ của nó Tất cả các đối tượng, bất kể biến và phương thức thành phần của

nó là gì, đều thuộc loại id

id anObject;

Xác định kiểu dữ liệu động: Kiểu dữ liệu id có thể đại diện cho tất cả các

đối tượng tuy nhiên bản thân nó lại không chứa bất kỳ thông tin nào về đối tượng, ngoài việc chỉ ra rằng đó là một đối tượng Nhưng các đối tượng không hề giống nhau Khi cần thiết, chương trình cần phải tìm thêm thông tin cụ thể về đối tượng: chứa các dữ liệu kiểu gì, có các phương thức nào

Bởi vì kiểu dữ liệu id không thể cung cấp thông tin này cho trình biên dịch

nên các đối tượng phải có khả năng cung cấp các thông tin này khi chạy

Thuộc tính isa xác định lớp của đối tượng nghĩa là xác định xem đối tượng

đó thuộc loại gì Các đối tượng có cùng các phương thức và các biến thành phần là thành viên của cùng một lớp

Do đó các đối tượng được xác định kiểu dữ liệu động khi chạy Bất cứ khi nào nó cần, runtime system có thể tìm thấy chính xác lớp của một đối

Trang 24

tượng Xác định kiểu dữ liệu động là nền tảng cho ràng buộc động (dynamic binding), được trình bày sau đây.

Biến isa cũng cho phép các đối tượng tự tìm hiểu về bản thân mình Trình

biên dịch ghi lại các thông tin về định nghĩa lớp trong cấu trúc dữ liệu được

dùng cho runtime system Các hàm của runtime system sử dụng isa để tìm

thông tin này khi chạy

Quản lý bộ nhớ: Trong một chương trình Objective-C, việc đảm bảo rằng

các đối tượng được giải phóng khỏi bộ nhớ khi không còn cần thiết nữa hết sức quan trọng nếu không bộ nhớ ứng dụng sẽ trở nên lớn hơn mức cần thiết Cũng quan trọng để đảm bảo rằng không giải phóng các đối tượng trong khi nó vẫn còn đang được sử dụng

Objective-C cung cấp hai môi trường quản lý bộ nhớ để đạt được các mục tiêu này:

- Reference counting

- Garabge collection (không có trên iPhone)

c) Thông điệp (Message)

Cú pháp: Để khiến một đối tượng làm gì, cần phải gửi cho nó một thông

điệp để nó thực hiện một phương thức nào đó của mình Trong Objective-C, biểu thức thông điệp được đặt trong dấu ngoặc vuông:

[đối_tượng_nhận thông_điệp]

Trong mã nguồn, thông điệp chính là tên của một phương thức và các tham

số được truyền vào cho nó Khi một thông điệp được gửi đi, runtime system lựa chọn phương thức thích hợp từ các phương thức của đối tượng nhận và chạy nó

Tên phương thức trong một thông điệp dùng để chọn phương thức thực thi

Vì lý do này, tên phương thức trong thông điệp còn được gọi là “selector”.Các phương thức có thể nhận số tham số truyền vào tùy ý, cách nhau bởi dấu “:” Và để tránh nhầm lẫn có thể đặt tên cho các tham số

Ví dụ:

[myRectangle setOriginX: 30.0 y: 50.0]

Một thông điệp có thể được lồng trong thông điệp khác Ví dụ :

[myRectangle setPrimaryColor:[otherRect primaryColor]];

Trang 25

Gửi thông điệp tới đối tượng nil: trong Objective-C, điều này hoàn toàn

hợp lệ, nó chỉ đơn giản không gây hiệu ứng gì trong khi chạy

Ràng buộc động (Dynamic Binding): Một khác biệt quan trọng giữa lời

gọi hàm và thông điệp là một hàm và các tham số của nó được liên kết với nhau trong mã biên dịch, nhưng thông điệp và đối tượng tiếp nhận không thống nhất cho đến khi chương trình đang chạy và tin nhắn được gửi đi Vì vậy, phương thức chính xác được gọi để trả lời một phương thức chỉ có thể được xác định tại thời gian chạy, không phải khi mã được biên dịch

Phương thức chính xác mà một thông điệp gọi sẽ phụ thuộc vào đối tượng nhận Các đối tượng khác nhau có thể có các phương thức khác nhau thực thi cùng một lời gọi hàm (tính đa hình) Đối với trình biên dịch, để tìm ra phương thức thực thi đúng thông điệp, nó cần phải biết đối tượng đó thuộc lớp nào Những thông tin này chỉ được đối tượng tiết lộ tại thời gian chạy khi nó nhận được thông điệp (xác định kiểu động)

Việc lựa chọn một phương thức thực hiện sẽ xảy ra khi chạy Khi một thông điệp được gửi, một runtime messaging rountine sẽ tìm kiếm đối tượng nhận

và phương thức có tên trong thông điệp

Tính ràng buộc động của phương thức (dynamic binding) với các thông điệp kết hợp chặt chẽ với tính đa hình đa hình tạo nên tính linh hoạt và sức mạnh của ngôn ngữ lập trình hướng đối tượng

bổ sung các biến và phương thức mới hay sửa các phương thức mà nó được kế thừa

Lớp NSObjects: NSObject là lớp gốc, nên nó không có lớp cha Nó định

nghĩa framework cơ bản cho các đối tượng và tương tác giữa các đối tượng của Objective-C Những lớp không cần kế thừa các phương thức đặc biệt từ lớp khác có thể là đặt là lớp con của lớp NSObject

Đối tượng lớp: Một định nghĩa lớp chứa nhiều thông loại thông tin, chủ

yếu là các thành phần của lớp:

Trang 26

o Tên của lớp và lớp cha của nó

o Tập các biến thành phần

o Khai báo các phương thức, kiểu trả về và tham số của phương thức đó

o Code thực thi các phương thức

Những thông tin này được biên dịch và ghi lại trong cấu trúc dữ liệu tạo sẵn cho runtime system Trình biên dịch sẽ chỉ tạo ra một đối tượng, đối tượng lớp, đại diện cho lớp Đối tượng lớp có quyền truy cập tất cả các thông tin

về lớp

Mặc dù một đối tượng lớp giữ các nguyên mẫu của thể hiện lớp, nó không phải là một thể hiện Nó không có các biến của riêng nó và nó không thể tự thực hiện phương thức dành cho thể hiện của lớp Tuy nhiên, một định nghĩa lớp có thể bao gồm các phương thức dành riêng cho các đối tượng lớp gọi là các phương thức tĩnh của lớp Trong mã nguồn, đối tượng lớp được biểu diễn bằng tên lớp

Tạo một thể hiện của lớp: Một chức năng chính của đối tượng lớp là tạo ra

các thể hiện mới của lớp đó Ví dụ đoạn code sau sẽ yêu cầu lớp Rectangle tạo ra một thể hiện Rectangle và gán nó cho biến myRectangle:

id myRectangle;

myRectangle = [Rectangle alloc];

Phương thức alloc cấp phát 1 vùng bộ nhớ động cho các biến thành phần của đối tượng mới và khởi tạo tất cả về 0 ngoại trừ biến isa thể hiện với

lớp của nó Để đối tượng có thể sử dụng được, nó thường cần phải được khởi tạo Đó là chức năng của hàm init thường được gọi ngay sau hàm alloc:

myRectangle = [[Rectangle alloc] init];

3 Định nghĩa 1 lớp :

Objective-C chia một lớp thành file giao diện (interface) và file thực thi (implementation) File giao diện khai báo các biến và phương thức thành phần Nó là một file header của C chuẩn và không chứa bất kỳ dòng code thực thi nào File thực thi chứa code thực thi của các phương thức của lớp File thực thi có phần đuôi mở rộng

là m

Trang 27

File giao diện: Simple.h

a) Chỉ thị biên dịch @interface và @implementation

Trong file Simple.h, lưu ý tới chỉ thị biên dịch @interface Trong file Simple.m, lưu

ý tới chỉ thị biên dịch @implementation Những chỉ thị này phân biệt giao diện của một lớp với phần thực thi của nó Phần code nằm giữa chỉ thị @interface và @end trong Simple.h chứa giao diện của lớp Simple, trong đoạn code nằm giữa

@implementation và @end trong file Simple.m chứa phần thực thi của lớp Simple.

b) Khai báo và định nghĩa phương thức :

Các biến và phương thức thành phần được khai báo trong file giao diện và được định nghĩa trong file thực thi của lớp Khai báo một phương thức nghĩa là thông báo cho trình biên dịch biết lớp có phương thức đó nhưng không cung cấp code thực sự cho phương thức đó Ví dụ một khai báo phương thức:

- (void) sayHello: (NSString *) name;

Phần khai báo chỉ ra cho trình biên dịch biết rằng có một phương thức có tên

sayHello có một tham số truyền vào có kiểu NSString và không trả lại gì cả (void)

Phần khai báo không nói gì đến nội dung của hàm

Trình biên dịch sẽ tìm thấy đoạn code thực thi của phương thức trong phần định nghĩa phương thức Ví dụ, phần định nghĩa của phương thức sayHello ở trên:

- (void) sayHello : (NSString *) name{

NSLog(@”Hello %@”, name);

}

Trang 28

c) Các phần tử trong file giao diện của lớp :

Giao diện của lớp bao gồm các câu lệnh import, khai báo lớp, khai báo biến và thuộc tính thành phần

Hình 1.11: Cấu trúc file giao diện của 1 lớp

d) Các phần tử trong file thực thi của lớp:

Giao diện chỉ là một nửa của lớp Thực thi của lớp cũng quan trọng như là giao diện của nó vậy

e) Các biến thành phần public, private, protected:

Các biến thành phần của lớp có thể là public, private hay protected Biến private là biến chỉ được sử dụng trong lớp đó mà thôi, các lớp con không kế thừa biến private của lớp cha, các lớp khác không thể truy nhập vào biến private của lớp khác Biến protected cho phép kế thừa nhưng không cho phép các lớp khác truy nhập vào Biến public cho phép tất cả các lớp khác đêu truy nhập được vào

Trang 29

Hình 1.12 : Cấu trúc file thực thi của 1 lớp

f) Sử dụng đối tượng self trong một thông điệp:

Thuật ngữ self ám chỉ bản thân đối tượng khi gửi một thông điệp đi và nó cũng

đồng thời là đối tượng nhận thông điệp đó Nó dùng để chỉ đối tượng hiện thời tương

tự như đối tượng this trong Java.

g) Quản lý bộ nhớ sử dụng retain và release :

Không giống như Java hay C#, khi lập trình cho iPhone, lập trình viên phải tự quản

lý bộ nhớ vì trong iPhone không có bộ gom rác (garbage collection) Mặc dù đến phiên bản OS X 10.5, Cocoa đã có tùy chọn sử dụng garbage collection tự động nhưng tùy chọn này vẫn chưa có trên iPhone

Hình 1.12 : Các phương thức quản lí bộ nhớ của Objective – C

h) Quản lý bộ nhớ sử dụng Autorelease

Trang 30

Việc tự quản lý retain count có thể nhiều lúc gây ra nhầm lẫn hay lỗi Phương thức

autorelease của đối tượng NSObject sẽ giúp quản lý retain count Phương thức autorelease sử dụng lời gọi release pool để quản lý tham chiếu của đối tượng

Ví dụ :

- (void) sayHelloTom { Simple *objSimple = [[[Simple alloc] init] autorelease];

[objSimple sayHello:@"Tom"];

}

Hàm sayHelloTom sẽ cấp phát một vùng bộ nhớ cho thể hiện của lớp Simple và sau

đó gọi hàm autorelease, gán đối tượng objSimple cho autorelease pool Khi phương thức được thực hiện xong, autorelease pool được giải phóng và do đó thể hiện của lớp Simple objSimple cũng được giải phóng

Sử dụng autorelease và chấp nhận autorelease pool ở chế độ mặc định làm cho việc quản lý bộ nhớ trở nên dễ dàng Tuy nhiên, có vấn đề nảy sinh: các đối tượng kéo thời gian tồn tại của release pool Chỉ có một cách giải quyết là tự quản lý đối tượng

NSAutoReleasePool

Ví dụ:

- (void) sayHelloTom { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

Simple *objSimple = [[[Simple alloc] autorelease] init];

mà không giữ lại (retain) hay giải phóng (release) thường gây ra lỗi

Quản lý bộ nhớ khi lấy ra hay gán một giá trị cho biến thành phần là một việc không dễ dàng.Objective-C 2.0 giúp cho việc này trở nên dễ dàng hơn sử dụng thuộc tính Thuộc tính là các “phím tắt” để tạo một phần tử truy nhập vào biến thành phần

Tạo thuộc tính bằng cách sử dụng chỉ thị biên dịch @property @property khai báo một thuộc tính, @synthesize nói cho trình biên dịch biết phải sinh ra một phần tử truy nhập và @dynamic thông báo cho trình biên dịch biết là người dùng sẽ cung cấp hàm

truy nhập Một chỉ thị thuộc tính cũng có một số thuộc tính được liệt kê trong bảng sau:

Trang 31

Property Attribute Description

assign Hàm setter sẽ gán biến thành phần cho đối tượng

copy Hàm setter sao chép đối tượng cho biến thành phần

nonatomic Trả lại gia trị mà không cần gọi retain hay autorelease trên đối

tượng

readonly biến thành phần chỉ được đọc, không thể thiết lập giá trị cho nó

readwrite biến thành phần có hàm getter và setter (mặc định)

retain Hàm setter sẽ gán biến thành phần cho một đối tượng và gọi hàm

retain

Bảng 1.13 : Property attribute

j) Điều khiển ngoại lệ:

Điều khiển ngoại lệ trong Objective-C tương tự như Java và C++ Objective-C có

khối @try - @catch- @finall để bắt các ngoại lệ.

Trang 32

2 Chương 2 : Tổng quan về hệ thống tìm kiếm Mobile Portal

Hệ thống được chia ra làm 3 tầng với những chức năng và nhiệm vụ cụ thể:

Tầng ứng dụng ( Cocoa Touch Application ) : thành phần client truy cập

thông tin

Tầng giao diện di động ( Mobile Interface )

Tầng máy chủ tìm kiếm , quản trị nội dung ( Search Engine và Content

Manager System )

Mô hình tổng quan hệ thống được biểu diễn dưới hình sau :

Hình 2.1 : Mô hình hệ thống Mobile Portal

• Quản trị nội dung trong database

Trang 33

Database • Chứa dữ liệu tìm kiếm , chỉ mục cũng như cache trên

máy chủ

My Service • Tầng cung cấp những dịch vụ truy xuất thông tin đã

được lưu trong database

• Các thành phần ngoài server muốn truy cậpdữ liệu đều phải qua tầng này

Mobile interface • Tầng hỗ trợ cho việc chuẩn hóa dữ liệu phục vụ cho

điện thoại di động

• Ngoài ra tầng này còn quản lí module giao tiếp cho phép lấy và trả dữ liệu từ máy chủ về cho ứng dụng khi nhận được yêu cầu từ ứng dụng

Trang 34

2.2 Máy tìm kiếm ( Search Engine ) :

Tầng này được đề cập trong đồ án chỉ mang tính chất giới thiệu vì lí do hạn chế nội dung của đồ án cũng như tính chất rộng lớn của nội dung này Thêm nữa , tầng này cũng không cần thiết phải thiết kế lại vì các mô hình máy chủ tìm kiếm hiện nay đề đã khá là hoàn thiện và tối ưu

Mô hình được đề cập sau đây dựa vào mô hình đầy đủ , quy mô và thuần Việt được phát triển hoàn thiện bởi công ty Naiscorp Mô hình máy tìm kiếm của socbay hiện nay đã có nhiều thay đổi và cải tiến tuy nhiên các thành phần chính của mô hình máy tìm kiếm vấn là: crawler, indexer

Hình 2.3 : Mô hình đơn giản của Socbay Search Engine

Crawler: Thành phần này của hệ thống làm nhiệm vụ thu thập các nguồn

dữ liệu dạng thô từ trên Internet, xử lí và lưu trữ vào Store server Dữ liệu có thể được lấy từ nhiều nguồn khác nhau

Indexer: Thành phần indexer làm công việc đánh chỉ mục dữ liệu, xử lí

dữ liệu phục vụ cho thành phần searcher

Trang 35

Searcher: Tìm kiếm kết quả cho câu truy vấn của người dùng dựa trên

dữ liệu đã được xử lí, và trong đó Ranking là vấn đề rất quan trọng phải được giải quyết

Tuy nhiên để dữ liệu có thể phục vụ cho các thiết bị di động, dữ liệu cần phải được tổ chức lại cho phù hợp Vai trò chính của máy tìm kiếm socbay trong hệ thống Mobile Portal:

o Thu thập dữ liệu cho các dịch vụ trong hệ thống

o Phân tích truy vấn ngắn dựa trên thói quen người dùng

2.2.1 Thu thập dữ liệu cho các dịch vụ :

Các dịch vụ đang được cung cấp tới người sử dụng của Mobile Portal bao gồm: MP3, hình ảnh, thông tin rao vặt, tin tức, thông tin địa điểm, và từ điển Các dữ liệu này được lấy từ nhiều nguồn khác nhau trên internet

Dịch vụ Mô tả

MP3 • Nguồn dữ liệu là từ các trang nghe nhạc, hosting

phổ biến hiện nay Số lượng lên tới hàng triệu bài

và liên tục được cập nhật

Tin tức • Được tổng hợp từ các báo điện tử phổ biến hiện

nay như vnexpress, vietnamnet, dantri, … Vấn

đề cập nhật thông tin liên tục và chống trùng lặp

dữ liệu được xử lí rất tốt

Ebook • Thu thập các Ebook rồi chuyển thành dạng hình

ảnh Các Ebook được phân chia thành mục rõ ràng và dễ tìm kiếm

2.2.2 Phân tích truy vấn ngắn dựa trên thói quen người dùng

Search engine cho Mobile Portal là kết quả của việc nghiên cứu thói quen của người dùng trên thiết bị di động Việc bị hạn chế về số lượng phím bấm và khả năng trình diễn thông tin dẫn tới việc phải có một cơ chế cho phép hiểu thông tin người dùng nhập vào một cách tốt nhất với query có độ dài ngắn nhất

Trang 36

Đây không phải chỉ là việc chuyển cách sử dụng search engine từ máy tính để bàn sang thiết bị di động, đó là cả vấn đề khác yêu cầu phải có nghiên cứu nghiêm túc.

Hệ thống đã ứng dụng thành công kết quả của việc nghiên cứu này, người dùng sẽ được hỗ trợ trong việc tìm kiếm thông tin với những câu truy vấn ngắn nhất như: iphone hn, hay atm hcm, …

2.4 Tầng giao diện di động (Mobile Interface )

Mobile Interface là thành phần giao diện trung gian giữa máy tìm kiếm Socbay và ứng dụng di động Vai trò của Mobile Interface trong hệ thống tìm kiếm Mobile Portal là:

• Chuẩn hóa dữ liệu cho thiết bị di động

• Quản lý các module kết nối

2.5 Ứng dụng client :

Ứng dụng được xây dựng trên nền tảng di động iPhone Ứng dụng được tích hợp nhiều dịch vụ như nghe nhạc , truyện , tin tức là những dịch vụ tiêu biểu nhất mà người dùng hay sử dụng Tương lai , nếu được phát triển sẽ mở rộng ra các dịch vụ có các giá trị gia tăng khác

Việc phát triển ứng dụng phía client chính là trọng tâm của đồ án và sẽ được giới thiệu, trình bày chi tiết hơn trong Phần 3 của đồ án này

Trang 37

3 Chương 3 : Xây dựng 1 phần thành phần Server trong hệ thống

• Database lưu trữ dữ liệu

• Dịch vụ Web (My Webservice)

• 1 phần của Mobile Interface

Trong đó thành phần Máy chủ tìm kiếm và quản trị nội dung ( Search Engine và

Content Manager System ) là thành phần sẽ chỉ được nhắc trong đồ án mang tính chất

giới thiệu bởi tính chất rộng lớn về nôi dung của thành phần này cũng như sự hạn chế

về nội dung của đồ án Hơn nữa , hiện nay thành phần này cũng được phát triển khá là hoàn thiện và tối ưu

Đồ án sẽ tập trung vào xây dưng các thành phần còn lại của hệ thống Mobile Portal

3.1 Xây dựng và thiết kế Database

3.1.1 Phát biểu bài toán :

Ban đầu khái niệm này được dùng để mô tả các trang web khổng lồ như là Yahoo, Lycos, Altavista, AOL… bởi mỗi ngày có hàng trăm triệu người sử dụng chúng như là điểm bắt đầu cho hành trình “lướt web” của họ Lợi ích lớn nhất mà portal đem lại là tính tiện lợi, dễ sử dụng Thay vì phải nhớ vô số các địa chỉ khác nhau cho các mục đích sử dụng khác nhau, thì với một web portal như Yahoo, người dùng chỉ cần nhớ yahoo.com, ở trong đó nhà cung cấp dịch vụ đã tích hợp mọi thứ mà khách hàng cần…

• Bạn bắt đầu hành trình “lướt web” của mình như thế nào?

• Yahoo

• Tại sao lại là Yahoo?

• Đó là một trang Web cho phép ta dễ dàng truy nhập tới mọi thứ ta cần: tìm kiếm thông tin, đọc tin tức, tán gẫu với bạn bè, gửi thiệp, gửi thư điện tử, xem giá chứng khoán, thậm chí mua sắm một thứ gì đó

• Đúng thế, có rất nhiều trang web như vậy trên mạng, người ta thường gọi chúng là các portal

Với các đặc tính như ‘chỉ một kết nối’ hay ‘tất cả trong một’ các web portal đã trở thành một đầu mối thông tin cho mọi vấn đề, một thứ la bàn định hướng cho người dùng trong hành trình khám phá kho báu internet rộng lớn

Trang 38

Các nhà cung cấp dịch vụ internet (ISP) xây dựng nên các portal để hỗ trợ khách hàng của mình trong việc sử dụng internet Các dịch vụ mà họ thường tích hợp vào trong portal của mình là công cụ tìm kiếm, danh mục các trang web được sắp xếp theo một tiêu chí nào đó, trang tin tức điện tử, dịch vụ nhắn tin, phòng chat, hòm thư điện tử hay trang web cá nhân miễn phí … Các portal này cố gắng để tạo ra một thế giới internet thu nhỏ cho các khách hàng, vì thế chúng thường được khuyến cáo như là điểm bắt đầu lý tưởng cho những người mới tìm hiểu về internet

Dựa trên những nhu cầu đó , đồ án đưa ra 1 thiết kế xây dựng 1 mô hình mobile portal đơn giản , đáp ứng được các nhu cầu truy cập thông tin thiết yếu nhất

3.1.2 Thiết kế Database :

Các đối tượng chính sẽ được lưu trong Database sẽ có nội dung chính như sau :

• Các tin tức (News) được phân cấp thành các mục giúp dễ dàng tìm kiếm cũng như tổ chức quản lí

• Các file nhạc ( MP3 , WAV … ) được tổ chức phân cấp thành các Album hoặc chủ đề

• Các Ebook ( đã được chuyển thành dạng hình ảnh ) được tổ chức phân cấp thành các chủ đề theo nội dung

1 Database liên quan tới nội dung tin tức :

NewsCategory

Tên trường Kiểu dữ liệu Null Ràng buộc Mô tả

Trang 39

Khóa ngoại quan hệ với bảng NewsCategory

News

Tên trường Kiểu dữ liệu Null Ràng buộc Mô tả

Trang 40

2 Database liên quan tới nội dung nghe nhạc :

MusicSinger

Tên trường Kiểu dữ liệu Null Ràng buộc Mô tả

Ngày đăng: 22/11/2014, 08:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. iPhone Developer: http://developer.apple.com/iphone/index.action của Apple Link
2. Dave Mark| Jeff LaMache, Beginning iPhone 3 Development - Exploring the iPhone SDK , Appress,2009 Khác
3. Dave Mark| Jeff LaMache, More iPhone 3 Development - Tackling iPhone SDK 3 , Appress,2009 Khác
4. Jonathan Zdziarski, iPhone SDK Application Development, 1 st Edition, O’Reilly Media, Inc, 2009 Khác
5. James A.Brannan, iPhone SDK Programming - A Beginning’s Guide, McGraw-Hill, 2010 Khác
6. Jiva DeVoe, Cocoa Touch for iPhone OS 3, Wiley Publishing, Inc, 2009 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1 : Các nền tảng lập trình di động - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.1 Các nền tảng lập trình di động (Trang 6)
Hình 1.2 : thành phần Xcode - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.2 thành phần Xcode (Trang 12)
Bảng 1.3 : các Template thường dùng - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Bảng 1.3 các Template thường dùng (Trang 13)
Hình 1.4 : Xcode Editor - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.4 Xcode Editor (Trang 14)
Hình 1.5 : Interface Builder – New file - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.5 Interface Builder – New file (Trang 15)
Bảng 1.6 : Các template của interface builder - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Bảng 1.6 Các template của interface builder (Trang 17)
Hình 1.7 : Cửa sổ tài liệu Interface Builder - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.7 Cửa sổ tài liệu Interface Builder (Trang 18)
Hình 1.9 : cửa sổ thuộc tính Interface Builder - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.9 cửa sổ thuộc tính Interface Builder (Trang 19)
Hình 1.10 : iPhone Simulator - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.10 iPhone Simulator (Trang 21)
Hình 1.11: Cấu trúc file giao diện của 1 lớp - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.11 Cấu trúc file giao diện của 1 lớp (Trang 28)
Hình 1.12 : Cấu trúc file thực thi của 1 lớp - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.12 Cấu trúc file thực thi của 1 lớp (Trang 29)
Hình 1.12 : Các phương thức quản lí bộ nhớ của Objective – C - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 1.12 Các phương thức quản lí bộ nhớ của Objective – C (Trang 29)
Bảng 2.2 : Chi tiết từng thành phần trong hệ thống Mobile Portal - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Bảng 2.2 Chi tiết từng thành phần trong hệ thống Mobile Portal (Trang 33)
Hình 2.3 : Mô hình đơn giản của Socbay Search Engine - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 2.3 Mô hình đơn giản của Socbay Search Engine (Trang 34)
Hình 3.2 : Các class Entity liên quan tới News - xây dựng 1 phần thành phần server trong hệ thống mobile portal
Hình 3.2 Các class Entity liên quan tới News (Trang 47)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w