TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ────── * ────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐA PHƯƠNG TIỆN CH
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
────── * ──────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐA PHƯƠNG TIỆN CHO MOBILE SỬ DỤNG
HỆ ĐIỀU HÀNH ANDROID (MODULE
Trang 2PHIẾ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 Thế Trung
Điện thoại liên lạc 0942345996 Email: thetrungbk@gmail.com
Lớp: CNPM Hệ đào tạo: Đại học chính quy
Đồ á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/ 2/ 2011 đến 28/ 5/ 2011
2 Mục đích nội dung của ĐATN
• Tìm hiểu các thông tin, cấu trúc hệ điều hành Android
• Tìm hiểu môi trường phát triển ứng dụng bằng Java phục vụ cho Mobile Android
• Tìm hiểu quy trình phát triển ứng dụng bằng Java phục vụ cho Mobile Android
3 Các nhiệm vụ cụ thể của ĐATN
• Tìm kiếm và tổng hợp thông tin
• Cài đặt môi trường phát triển
• Viết chương trình thử nghiệm và tích hợp với các Module Client, CMS để xây dựng hệ thống
4 Lời cam đoan của sinh viên:
Tôi – Nguyễn Thế Trung - 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 thạc sỹ Lương Mạnh Bá
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 5 năm 2011
Tác giả ĐATN
Nguyễn Thế Trung
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 24 tháng 5 năm 2011
Giáo viên hướng dẫn
Thạc sỹ Lương Mạnh Bá
Trang 3TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Trong báo cáo này, em xin trình bày những kiến thức mà em đã tìm hiểu đượctrong thời gian thực hiện đồ án tốt nghiệp vừa qua về hệ điều hành Android cũng như môitrường để phát triển ứng dụng đa phương tiện cho hệ điều hành này bằng Java
Nội dung chính của đồ án được chia thành các phần sau:
Phần mở đầu: Tóm tắt nội dung, đề tài được giao trong khuôn khổ đồ án tốt nghiệp.Trình bày các thông tin về môi trường thực hiện đồ án và giới thiệu tóm tắt bố cụccủa đồ án
Phần nội dung chính của đồ án được chia thành 4 chương:
• Chương I: Đặt vấn đề và định hướng giải pháp
Trình bày cụ thể về nhiệm vụ, mô tả bài toán, các vấn đề cần giải quyết
Định hướng giải pháp giải quyết các vấn đề đặt ra
Chương II: Công cụ và môi trường phát triển
Giới thiệu tóm tắt về cơ sở lý thuyết và các công cụ được lựa chọn để giải quyết cácvấn đề
Giới thiệu về quy trình phát triển một ứng dụng cho thiết bị di động
• Chương III: Phân tích hệ thống
Chương này sẽ trình bày những phân tích cụ thể về hệ thống bao gồm:
- Mục đích thiết kế
- Kiến trúc hệ thống
- Thiết kế tổng quan
- Thiết kế chi tiết
- Thiết kế chuẩn giao tiếp giữa Server và Client
• Chương IV: Cài đặt và triển khai ứng dụng - xây dựng các module của server vàtích hợp
Chương này sẽ trình bày những hướng dẫn cho việc cài đặt và những kết quả trongviệc triển khai ứng dụng, những đánh giá về hệ thống
Trang 4MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 3
MỤC LỤC 4
DANH MỤC HÌNH 6
DANH MỤC TỪ VIẾT TẮT 7
MỞ ĐẦU 8
1 Giới thiệu 8
2 Nhiệm vụ được giao trong đề tài 8
3 Bố cục đồ án tốt nghiệp 9
CHƯƠNG I: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 10
I Đặt vấn đề 10
II Định hướng giải quyết 13
CHƯƠNG II: CÔNG CỤ VÀ MÔI TRƯỜNG PHÁT TRIỂN 15
I Hệ điều hành Android và ngôn ngữ Java 15
1 Định nghĩa về Android 15
2 Kiến trúc Android OS 16
3 Vòng đời của một ứng dụng Android 20
4 Giới thiệu về Java 21
5 Môi trường phát triển 24
II Giao thức kết nối 25
III Quy trình phát triển ứng dụng cho thiết bị di động 26
1 Quy trình phát triển một ứng dụng 27
2 Phát hành sản phẩm (cho hệ điều hành Android) 27
CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 30
I Mục đích 30
II Kiến trúc hệ thống 31
2 Tầng ứng dụng 31
3 Tầng lưu trữ 32
III Thiết kế tổng quan 32
2 Biểu đồ mức vật lý 33
IV Thiết kế chi tiết 33
5 Biểu đồ trạng thái 41
Trang 5V Thiết kế giao diện 42
1 Khảo sát và phân tích yêu cầu người dùng 42
2 Thiết kế hệ thống giao tiếp 43
2.1 Giới thiệu mô hình GOMS 43
2.2 Thiết kế giao tiếp người dùng 44
3 Xây dựng chuẩn kết nối cho giao thức Socket 47
3.1 Định dạng gói tin chuyên mục do server trả về 48
CHƯƠNG IV: CÀI ĐẶT VÀ TRIỂN KHAI 49
I Cài đặt Server 49
II Triển khai thử nghiệm 52
1 Môi trường thử nghiệm 52
KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 60
Trang 6DANH MỤC HÌNH
Hình 1: Mô hình bài toán 10
Hình 2: Mô hình sản phẩm iMedia 11
Hình 3: Mô hình hệ thống 12
Hình 4: Kiến trúc tổng thể Android 17
Hình 5: Vòng đời của ứng dụng Android 20
Activity bao gồm 4 state: 20
Hình 6: Kiến trúc Java 22
Hình 7: Mô hình biên dịch 23
Hình 8: Mô hình Socket TCP 26
Hình 9: Quy trình phát triển ứng dụng cho thiết bị di động 27
Hình 10: Kiến trúc hệ thống 31
Hình 11: Biểu đồ mức khái niệm 32
Hình 12: Biểu đồ mức vật lý 33
Hình 13: Biểu đồ Use case 34
Hình 14: Biểu đồ Activity 39
Hình 15: Biểu đồ tuần tự 40
Hình 16: Biểu đồ cộng tác 41
Hình 17: Biểu đồ trạng thái 41
Hình 18: Mô hình cài đặt 49
Hình 19: Khởi động SQL server 50
Hình 20: Run server mobile client 50
Bước 3: Chạy database Rock Mongo: 50
51
Hình 21: Run database Mongo 51
Bước 4: Start Apache server: 51
Hình 22: Run apache server 51
Bước 5: Đăng nhập Database Mongo: 51
Hình 23: Đăng nhập Database Mongo 52
Hình 24: Crawler Index trên Netbean và kết quả trong CSDL Rock Mongo 53
Hình 25: Crawler Item trên Netbean và kết quả trong CSDL Rock Mongo 54
Hình 26: Đổ dữ liệu vào SQL Server 55
Hình 27: Giao diện Mobile Client và giao tiếp với Server 57
Trang 7DANH MỤC TỪ VIẾT TẮT
STT Từ viết tắt Ý nghĩa
1 ĐATN Đồ án tốt nghiệp
3 SDK Software Development Toolkit
4 DVM Dalvik Virtual Machine
5 API Application Programming Interface
6 CMS Content Management System
7 SQL Structured Query Language
8 RDMS Relational Database Management System
9 GOMS Goals – Operator – Method – Selection
10 GPRS General Packet Radio Service
11 VGA Video graphics array
Trang 8MỞ ĐẦU
1 Giới thiệu
Công nghệ trên thế giới đang phát triển từng ngày với tốc độ vũ bão Xuhướng hiện nay của ngành công nghệ thông tin không chỉ gói gọn trong việc làmviệc với các ứng dụng trên máy tính mà đang chuyển dịch dần thành công nghệthông tin và truyền thông Cụ thể hơn, từ những chiếc máy tính để bàn cố định, conngười phát triển nên chiếc laptop cơ động hơn Nhưng những chiếc laptop đó vẫnchưa thể thỏa mãn được nhu cầu ngày càng cao của con người Con người lại kếthợp máy tính với chiếc điện thoại di động để cho ra những thiết bị di động thế hệmới, có sức mạnh của chiếc máy tính lại nhỏ gọn, cơ động như những chiếc điệnthoại di động, không chỉ giúp con người liên lạc, trao đổi thông tin mà còn trợ giúptrong những công việc hàng ngày
Đi kèm với sự phát triển của phần cứng như vậy, phần mềm cũng đang pháttriển nhanh chóng để phù hợp với các thiết bị thế hệ mới Quan trọng nhất đó chính
là các hệ điều hành cho các thiết bị di động Nổi bật nhất gần đây là hệ điều hànhhành Android của Google Nó được đánh giá là một hệ điều hành tốt, nhiều tiềmnăng phát triển và sẽ có những bước nhảy vọt trong thời gian tới Trong kỳ thực tập
và làm đồ án tốt nghiệp em được tìm hiểu về hệ điều hành này
Cùng với sự phát triển của công nghệ, nhu cầu của con người đối với cácthiết bị di động cũng không còn giới hạn trong việc nghe gọi và nhắn tin như trước,
mà vươn cao hơn tới các nhu cầu giải trí, thu thập thông tin Xuất phát từ nhu cầu
đó mà nhóm em có mong muốn xây dựng một hệ thống đa phương tiện cho phépngười sử dụng điện thoại di động có thể có được các thông tin mới nhất cũng nhưviệc người dùng có thể có các giây phút giải trí thú vị ngay chỉ với chiếc điện thoại
nhỏ bé của mình Đó cũng chính là lý do mà nhóm em đã lựa chọn đề tài “Xây dựng ứng dụng đa phương tiện cho Mobile sử dụng hệ điều hành Android” để
làm đồ án tốt nghiệp
2 Nhiệm vụ được giao trong đề tài
Đề tài “Xây dựng ứng dụng đa phương tiện cho Mobile sử dụng hệ điều hànhAndroid” do nhóm em thực hiện trong thời gian làm đồ án Về cơ bản đề tài đượcchia ra thành ba phần với từng nhiệm vụ cụ thể cho từng thành viên trong nhóm Cụthể như sau:
Phan Thanh Tuấn: xây dựng các module phía client
Nguyễn Thế Trung: xây dựng các module phía Server
Nguyễn Mạnh Hùng: xây dựng các module CMS và thiết kế cơ sở dữ liệu
Trang 9Với nhiệm vụ xây dựng các module phía client, các công việc của em trong
đồ án cụ thể gồm hai công việc chính:
• Tìm hiểu về hệ điều hành cho di động, cụ thể là hệ điều hành Android (cơ sở
lý thuyết, kiến trúc tổng thể )
• Xây dựng các module phía Server phục vụ cho các dòng máy chạy hệ điềuhành Android
3 Bố cục đồ án tốt nghiệp
Đồ án của em trình bày bốn phần chính Cụ thể như sau:
Phần mở đầu: giới thiệu tổng quan về đồ án, các thông tin về nhóm cũng nhưmôi trường thực hiện đồ án và công nghệ sử dụng
Phần 2: Đặt vấn đề và định hướng giải pháp, nêu các phương hướng pháttriển cho đồ án, môi trường và công cụ được lựa chọn Phần này được trình bày cụthể trong chương I, II của đồ án
Phần 3: là các kết quả đạt được trong đồ án bao gồm kết quả phân tích thiết
kế hệ thống, kết quả thực hiện cài đặt và thử nghiệm ứng dụng, đánh giá ưu nhượcđiểm và khả năng sử dụng của dịch vụ Phần này được trình bày cụ thể trongchương III và chương IV của đồ án
Phần 4: Phần kết luận bao gồm kết luận đánh giá các công việc đã làm vàchưa làm được và định hướng nhằm hoàn thiện kết quả đạt được của ĐATN
Trang 10CHƯƠNG I: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
I Đặt vấn đề
Thị trường di động Việt Nam được đánh giá là một trong những thị trườngthông tin di động có tốc độ phát triển nhanh nhất châu Á, tới 40% - 50% một năm,Việt Nam đang trở thành một điểm đến hấp dẫn của các tập đoàn viễn thông nướcngoài
Mới đây, 2/4/2009 Bộ Thông tin và truyền thông đã tổ chức thi tuyển và cấpgiấy phép 3G cho 4 đơn vị trúng tuyển với tổng số tiền cam kết đầu tư triển khaitrong ba năm đầu lên đến 33.800 tỷ đồng (tương đương khoảng gần 2 tỷ USD) đãđưa thị trường di động Việt Nam bước vào kỷ nguyên mới 3G sẽ tạo ra băng thôngrộng, giống như một xa lộ, tạo cơ sở hạ tầng mạng để phát triển các dịch vụ giá trịgia tăng hiện đại như các dịch vụ thoại truyền hình, dịch vụ thoại hình ảnh, đặc biệt
là các dịch vụ nội dung giải trí như xem phim, nghe nhạc trực tuyến…
Với việc phát triển nhanh chóng của thị trường di động ở nước ta, việc sửdụng chiếc điện thoại cá nhân để tiếp cận với những thông tin khổng lồ trên internet
là một yêu cầu cấp thiết và được người sử dụng điện thoại di động mong đợi Đápứng nhu cầu đó một số phần mềm đa phương tiện dành cho Mobile ra đời giúp chongười sử dụng điện thoại di động có thể sử dụng chiếc điện thoại của mình tiếp cậnvới những thông tin khổng lồ trên internet tương tự như trên PC Tiêu biểu trongcác phần mềm đó là sản phẩm iMedia do công ty Naiscorp xây dựng
Hình 1: Mô hình bài toán
Trang 11Sản phẩm iMedia là một sản phẩm tiêu biểu về cổng thông tin điện tử chothiết bị di động trong quá trình thực tập tại công ty Naiscorp nhóm em đã có điềukiện tìm hiểu kĩ hơn về mô hình của sản phẩm từ đó có những giải pháp cho việcxây dựng ứng dụng trong đồ án tốt nghiệp.
Hệ thống iMedia được được chia thành 3 tầng với những chức năng vànhiệm vụ cụ thể:
• Tầng ứng dụng (Java Application)
• Tầng giao diện (Mobile Interface)
• Tầng dưới cùng là tầng máy tìm kiếm socbay (Socbay SearchEngine)
Việc mô hình hóa hệ thống được biểu diễn như hình dưới:
Hình 2: Mô hình sản phẩm iMedia
Trong đó:
dữ liệu từ các nguồn khác nhau trên internet Dữ liệu được đánh chỉ mục vàlưu trữ trong cơ sở dữ liệu của socbay
đông Ngoài ra Mobile Interface còn quản lý module giao tiếp cho phép lấy
và trả dữ liệu về cho ứng dụng Java khi nhận được yêu cầu từ ứng dụng
tương tác với người sử dụng thông qua các thành phần đồ họa
Trong khoảng ba tháng làm đồ án ngắn ngủi đồng thời vừa phải tìm hiểu vàxây dựng chương trình việc xây dựng nên một ứng dụng giống như iMedia chonhiều hệ điều hành , dòng điện thoại với đầy đủ chức năng là khó thành công do đónhóm em đã quyết định xây dựng một chương trình cho dòng máy chạy hệ điều
Trang 12hành Android mô phỏng lại một số chức năng cơ bản như đọc báo, xem tranh, đọctruyện
Mô hình hệ thống mà nhóm em xây dựng nhìn chung khá giống với mô hìnhcủa sản phẩm iMedia tuy nhiên cũng có một số khác biệt sau:
• iMedia có một hệ thống Search Engine khá nổi tiếng và tầm cỡ có nhiệm vụthu thập thông tin trên Internet Trong khi đó nhóm em xây dựng một Server
có nhiệm vụ Crawler thông tin về cơ sở dữ liệu, dĩ nhiên là dữ liệu thu thập
về ít hơn và cũng không được phân loại, sàng lọc kĩ như Socbay SearchEngine
• Sản phẩm iMedia được xây dựng cho các dòng máy có hỗ trợ Java trong khi
đó sản phẩm của nhóm được xây dựng cho dòng máy chạy hệ điều hànhAndroid
Hình 3: Mô hình hệ thống
Tuy vậy ứng dụng vẫn có khả năng cung cấp cho người dùng những thôngtin đã được sàng lọc, tổng hợp và chuẩn hóa riêng phù hợp cho thiết bị di động Sảnphẩm tuy được phát triển trong thời gian ngắn nhưng hy vọng sẽ mang lại tính độtphá, đa dạng và phù hợp với văn hóa của người Việt Ứng dụng cung cấp cho ngườidùng những chức năng chính sau:
• Chức năng đọc tin tức
• Chức năng xem kết quả xổ số
Trang 13• Chức năng xem hình ảnh
• Chức năng đọc truyện
• Chức năng nghe nhạc
Ở trên em chỉ nêu mô tả bài toán với các chức năng cơ bản Việc phân tích
và thiết kế tương ứng cho từng chức năng sẽ được trình bày kỹ hơn ở chương IIIcủa báo cáo
II Định hướng giải quyết
Để giải quyết các vấn đề đã được nêu ra trong phần trên nhóm em đưa rađịnh hướng để giải quyết các vấn đề của bài toán
Từ bài toán cụ thể trên chúng em đã tiến hành xây dựng mô hình chung của
SQL Server 2005 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệurất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụcùng lúc cho hàng ngàn User SQL Server 2005 có thể kết hợp ăn ý với các serverkhác nhau
Trên đây là một số giới thiệu về SQL Server 2005 với nhiều điểm ấn tượng,ngoài ra trong quá trình học tập chúng em đã có thời gian tìm hiểu về hệ quản trị cơ
sở dữ liệu này do đó việc lựa chọn nó cũng là một ưu thế so với các hệ quản trị cơ
Không thể không kể đến một số điểm mạnh của ngôn ngữ Java như khả năngthông dịch, lập trình hướng đối tượng, đa nhiệm, đa luồng, tính khả chuyển và khảnăng hỗ trợ mạnh cho việc phát triển ứng dụng
Chúng em đã lựa chọn ngôn ngữ Java và môi trường phát triển là Netbeanstrên hệ điều hành Windows Netbean IDE là một công cụ dành cho lập trình viên để
Trang 14viết, biên dịch, gỡ lỗi (debug) và triển khai (deploy) chương trình, giao diện thânthiện, được coi là phổ biến và hiệu quả nhất Một sản phẩm miễn phí và không cógiới hạn nào trong việc sử dụng nó thì NetBean IDE có lẽ là lựa chon tối ưu nhất đểviết Java.
Phần xây dựng các module kết nối được xây dựng bằng việc sử dụng giaothức Socket Cùng với giao thức HTTP là hai giao thức truyền thống, rất dễ sửdụng Song mỗi giao thức có những ưu, nhược điểm riêng Nhưng trong khuôn khổ
có phần hạn chế của đồ án em xin lựa chọn giao thức Socket để xây dựng cácmodule kết nối
Với việc lựa chọn nhiệm vụ cho mình là xây dựng các module phía server,trong phần tiếp theo của đồ án xem xin trình bày những cơ sở lý thuyết và các công
cụ được lựa chọn để giải quyết vấn đề của bài toán
Trang 15CHƯƠNG II: CÔNG CỤ VÀ MÔI TRƯỜNG PHÁT TRIỂN
I Hệ điều hành Android và ngôn ngữ Java
Android được đánh giá là có triển vọng rất lớn và có tốc độ tăng trưởngnhanh trong những năm tới Dưới đây là những ưu điểm tạo nên sức cạnh tranh củaAndroid
Những điểm mạnh của Android
• Tính mở: Android được xây dựng dựa trên nhân là hệ điều hành Linux Đây
là một nền tảng hoàn toàn mở (mã nguồn mở – open source), do đó nhữngchiếc điện thoại chạy Android sẽ không mất phí cho hệ điều hành, kéo theogiá thành của những chiếc điện thoại này sẽ giảm xuống Đó chính là mộtyếu tố cạnh tranh rất lớn của Android Bên cạnh đó, do có một nền tảng mở
và bản thân cũng là phần mềm mở nên các nhà phát triển ứng dụng có thểthoải mái làm mọi thứ trên Android Các ứng dụng có thể gọi đến bất kì ứngdụng lõi nào của Android như tạo cuộc gọi, gửi tin nhắn, sử dụng camera
Họ cũng có thể tạo ra một hệ điều hành mới mang bản sắc riêng dựa trên mãnguồn mở của Android Tính mở còn giúp Android ngày càng được mở rộngkhi cộng đồng phát triển tiếp tục làm việc cùng nhau để tạo ra các ứng dụngmới
• Các ứng dụng tạo ra ngang bằng nhau: Android không phân biệt các ứngdụng lõi của điện thoại và các ứng dụng của bên thứ ba Tất cả đều có quyềntruy nhập như nhau đến các khả năng của điện thoại cung cấp cho người
Trang 16dùng với các ứng dụng và dịch vụ rất rộng rãi Vì thế các ứng dụng có thểphát huy mọi điểm mạnh của mình mà không gặp trở ngại nào.
• Phá vỡ những ranh giới ứng dụng: Android phá vỡ các rào cản trong việcxây dựng các ứng dụng mới Ví dụ như nhà phát triển có thể kết hợp thôngtin từ web và các thông tin cá nhân trong điện thoại di động như user contact,calendar để cung cấp cho người dùng những thông tin phù hợp hơn, tượng
tự như các dịch vụ hiện có của Google Và không chỉ phá vỡ rào cản về mặt
kỹ thuật mà còn cả rào cản về mặt địa lý, với Android một nhà phát triển cóthể xây dựng ứng dụng cho phép người dùng thấy được vị trí của bạn bè của
họ, thông báo khi họ ở gần nhau và tạo cơ hội để họ kết nối với nhau
• Phát triển ứng dụng nhanh và dễ dàng: Android cho phép truy nhập phạm virất rộng các công cụ và thư viện hữu ích được sử dụng để xây dựng các ứngdụng Ví dụ Android cho phép các nhà phát triển lấy về vị trí của thiết bị vàcho phép các thiết bị kết nối với nhau Thêm nữa Android còn chứa một tậpđầy đủ các công cụ được xây dựng rất sát với nền tảng giúp cho các ứngdụng được tạo ra có hiệu suất cao
2 Kiến trúc Android OS
Kiến trúc Android bao gồm một loạt tính năng ấn tượng cho các ứng dụng diđộng Trong thực tế, khi nhìn vào kiến trúc đơn lẻ, nếu không xem xét Android làmột nền tảng thiết kế cho các môi trường điện thoại di động, thì rất dễ dàng nhầmlẫn kiến trúc Android với một kiến trúc máy tính nói chung Tất cả các thành phầnchính của nền tảng máy tính đều tồn tại trong Android Sau đây là mô tả về cácthành phần trong kiến trúc của nó
Kiến trúc Android gồm 4 tầng: Applications, FrameWork Application,Libraries, Linux Kernel Dưới đây là hình vẽ minh họa kiến trúc tổng thể củaAndroid:
Trang 17Hình 4: Kiến trúc tổng thể Android
a Applications
Đây là các ứng dụng tương tác trực tiếp với người dùng bao gồm các ứngdựng lõi và những ứng dụng của bên thứ ba Ngoài việc cung cấp đầy đủ các ứngdụng cơ bản của một chiếc điện thoại thông thường như: tạo cuộc gọi, nhắn tin Android còn có những dịch vụ rất hữu ích khác: trình duyệt web, google maps, cácứng dụng media, camera, games Hơn nữa Google còn cung cấp kho ứng dụng choAndroid tai địa chỉ http://www.android.com/market/ khá phong phú giúp ngườidùng có thể thoải mái download để sử dụng
b Application Framework
Đây là nơi chứa các dịch vụ và hệ thống quản lí ứng dụng bao gồm:
• Activity Manager: quản lí vòng đời của ứng dụng
• Window Manager: quản lí các cửa sổ trong ứng dụng như trạng thái, cách bốtrí
• Content Providers: cho phép ứng dụng có thể truy nhập dữ liệu của ứng dụngkhác hoặc chia sẻ dữ liệu của nó cho các ứng dụng
• View System: cung cấp các thành phần giao diện như list, text, button, thậmchí cả trình duyệt web được nhúng vào trong ứng dụng
Trang 18• Package Manager: chứa các công cụ quản lí việc cài đặt, nâng cấp, cấu hìnhhoặc gỡ bỏ các gói ứng dụng.
• Telephony Manager: quản lí các dịch vụ thoại như thông tin, trạng thái cáccuộc gọi, tin nhắn
• Resource Manager: cung cấp quyền truy nhập đến các tài nguyên không nằmtrong code như các chuỗi, icon, các file layout, các đối tượng graphics được
• Surface Manager: quản lí việc truy nhập đến các hệ thống con dùng cho việcthể hiện đồ họa, kết hợp các lớp đồ họa 2D, 3D từ nhiều ứng dụng
• LibWebCore: một cơ chế trình duyệ Web hiện đại bao gồm khả năng củatrình duyệt Web Android và trình duyệt Web nhúng
• SGL (Skia Graphics Library): cơ chế đồ họa 2D cơ sở
• Thư viện 3D: thư viện đồ họa 3D phát triển dựa trên OpenGL ES 1.0 APIs
• FreeType: render các ảnh bitmap và font vectơ
• SQLite: hệ quản trị cơ sở dữ liệu quan hệ nhẹ và mạnh mẽ có hiệu lực với tất
cả các ứng dụng
d Dalvik Virtual Machine (DVM)
Máy ảo Dalvik một thành phần rất quan trọng trong Android Nó thực hiệncác ứng dụng trên nền Java và đã được đóng gói dưới dạng file dex (DalvikExecutable - dạng file thực thi của máy ảo Dalvik) phù hợp với các thiết bị mobile
bị hạn chế về bộ nhớ và tốc độ xử lí chậm Không giống như hầu hết các máy ảodựa trên ngăn xếp, Dalvik là một máy ảo dựa thanh ghi Với các máy ảo dựa ngănxếp, do phải nạp dữ liệu vào ngăn xếp rồi mới thực hiện trên các dữ liệu đó nênchúng thường cần nhiều lệnh hơn so với những máy ảo dựa thanh ghi Tuy nhiêncác máy ảo dựa thanh ghi do phải mã hóa thanh ghi nguồn và đích nên các lệnhthường sẽ lớn hơn Dalvik sử dụng một loại bytecode riêng không phải Javabytecode Android SDK cung cấp công cụ cho phép chuyển các file Java class saukhi biên dịch sang dạng file .dex, tức là dịch từ Java bytecode sang Dalvikbytecode Nhiều file class có thể được đóng gói vào một file dex Dalvik có cơ chế
Trang 19mã hóa đặc biệt khiến cho các file dex có kích thước nhỏ hơn file jar nhằm tối ưuhóa việc sử dụng bộ nhớ Mỗi ứng dụng chạy trên một tiến trình của riêng nó tươngứng mỗi tiến trình lại có riêng nó một DVM, như vậy các tiến trình sẽ không gâyảnh hưởng lẫn nhau Cũng theo đó, Android cũng hỗ trợ nhiều thực thể DVM chạysong song với nhau cho phép chạy cùng lúc nhiều ứng dụng.
e Linux kernel
Android dựa trên nhân Linux version 2.6 đối với các dịch vụ lõi của hệ thốngnhư bảo mật, quản lí bộ nhớ, quản lí tiến trình, mạng, trình điều khiển Nhân Linuxnhư là một lớp trừu tượng giữa phần cứng và phần còn lại của hệ thống Android.Nhưng Linux không làm việc trực tiếp với các ứng dụng mà thông qua máy ảoDVM Nhân Linux được Google sử dụng không hoàn toàn là nhân Linux được sửdụng cho các phiên bản hệ điều hành cho máy tính để bàn, trong đó Google đã loại
bỏ đi hệ thống quản lý cửa sổ ứng dụng X Window System cũng như bỏ bớt một sốthư viện trong bộ thư viện chuẩn GNU Do đó việc sử dụng lại code cũng như thưviện của các chương trình ứng dụng của các hệ điều hành Linux cho máy tính đểbàn là rất khó khăn
f Các thành phần cơ bản của ứng dụng Android:
Ứng dụng Android bao gồm 6 thành phần:
• Activity: Activity là nền của một ứng dụng Khi khởi động một ứng dụngAndroid nào đó thì bao giờ cũng có một main Activity được gọi, hiển thịmàn hình giao diện của ứng dụng cho phép người dùng tương tácMột ứng dụng Android có thể chứa một hoặc nhiều activity Mỗi một activityđược cung cấp một cửa sổ để thao tác trên đó
• Service: Một service không có một giao diện trực quan Nó chạy ở nền trongmột thời gian không xác định Mỗi một service thừa kế từ lớp cơ sở Service.Một ví dụ để có thể hiểu về service là ứng dụng music player
• Broadcast Receiver: Broadcast Receiver là một thành phần không làm gìngoài việc nhận và hưởng ứng lại những thông báo (broadcasts) được ban ra
• Content Provider: Content Provider là thành phần làm cho tập dữ liệu củaứng dụng có thể được sử dụng bởi một ứng dụng khác
• Intent: nền tảng để truyền tải các thông báo Intent được sử dụng để gửi cácthông báo đi nhằm khởi tạo một Activity hay Service để thực hiện công việc
mà người dùng mong muốn Ví dụ khi mở một trang web, tức là người dùnggửi một intent đi để tạo một activity mới hiển thị trang web đó
• Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừnghoạt động
Activity, Service, Broadcast Receiver và Content Provider mới là những
Trang 20thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báotrong AndroidManifest.
3 Vòng đời của một ứng dụng Android
Như đã giới thiệu ở trên , Actitvity là thành phần quan trọng nhất và đóng vai tròchính trong xây dựng ứng dụng Android Hệ điều hành Android quản lý Activitytheo dạng stack: khi một Activity mới được khởi tạo, nó sẽ được xếp lên đầu củastack và trở thành running activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạtđộng trở lại khi Activity mới được giải phóng
Hình 5: Vòng đời của ứng dụng Android
Activity bao gồm 4 state:
• active (running): Activity đang hiển thị trên màn hình (foreground)
• paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lostfocus) VD: một activity mới xuất hiện hiển thị giao diện đè lên trên activity
cũ, nhưng giao diện này nhỏ hơn giao diện của activity cũ, do đó ta vẫn thấyđược 1 phần giao diện của activity cũ nhưng lại không thể tương tác với nó
• stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạngthái stop
• killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theonguyên tắc ưu tiên Các Activity ở trạng thái stop hoặc paused cũng có thể bịgiải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lạihoàn toàn và phục hồi lại trạng thái trước đó
Trang 214 Giới thiệu về Java
a Giới thiệu Java:
Java là một công nghệ được hãng Sun Microsystems xây dựng từ cuối năm
1990 với cái tên Oak và hiện nay đang phát triển vượt bậc với sự đóng góp của hàngvạn lập trình viên trên thế giới Sau một chuyến du lịch tới đảo Java của Indonesia,nhóm phát triển Oak đã đổi tên Oak thành Java
Java được xây dựng chủ yếu dựa trên bộ công cụ phát triển (JavaDevelopment Kit - JDK) như là bộ thư viện chuẩn trong đó chưa trình biên dịch,trình thông dịch, trình đóng gói, tài liệu,… Đây chính là nền tảng cho việc phát triểncác ứng dụng Java Hiện nay, cộng đồng Java trên thế giới mà đi đầu là hãng SunMicrosystems đã xây dựng nhiều nhánh mới cho Java như: JavaMail (thư điện tử),Java TAPI (viễn thông), Java3D (đồ họa 3 chiều), J2ME (ứng dụng cho thiết bị diđộng),…
b Phân loại Java:
Hiện nay Java có các phiên bản sau:
• J2SETM (Java 2 Platform, Standart Edition): Phiên bản chuẩn gồm bộ công
cụ thông dụng dùng để chạy trên các máy PC hoặc các mạng máy tính nhỏ
• J2EETM (Java 2 Platform, Enterprise Edition): Phiên bản dành cho các máychủ với bộ nhớ lớn Bao gồm các kiến trúc nâng cao như Web, EJB,Transaction,… dùng để xây dựng các ứng dụng có quy mô lớn
• J2METM (Java 2 Platform, Micro Edition): Bao gồm môi trường và thư việnJava dùng để phát triển các ứng dụng trên các thiết bị có bộ nhớ nhỏ nhưđiện thoại di động, PDA, các đồ gia dụng,…
• Ngoài ra SUN còn đang nghiên cứu và phát triển các ứng dụng khác nhưJavaFX
Trang 22Hình 6: Kiến trúc Java
c Chi tiết về J2SE TM (Java 2 Platform, Standart Edition):
J2SE hay Java 2 Standard Edition vừa là một đặc tả, cũng vừa là một nền
tảng thực thi (bao gồm cả phát triển và triển khai) cho các ứng dụng Java Nó cungcấp các API, các kiến trúc chuẩn, các thư viện lớp và các công cụ cốt lõi nhất đểxây các ứng dụng Java Mặc dù J2SE là nền tảng thiên về phát triển các sản phẩmchạy trên máy tính để bàn nhưng những tính năng của nó, bao gồm phần triển khaingôn ngữ Java lớp gốc, các công nghệ nền như JDBC để truy vấn dữ liệu chính làchỗ dựa để Java tiếp tục mở rộng và hỗ trợ các thành phần mạnh mẽ hơn dùng chocác ứng dụng hệ thống quy mô xí nghiệp và các thiết bị nhỏ
J2SE gồm 2 bộ phận chính là:
• Java 2 Runtime Environment, Standard Edition ( JRE )
Môi trường thực thi hay JRE cung cấp các Java API, máy ảo Java (Java VirtualMachine hay JVM) và các thành phần cần thiết khác để chạy các applet và ứngdụng viết bằng ngôn ngữ lập trình Java Môi trường thực thi Java không có cáccông cụ và tiện ích như là các trình biên dịch hay các trình gỡ lỗi để phát triển cácapplet và các ứng dụng
• Java 2 Software Development Kit, Standard Edition ( SDK )
Java 2 SDK là một tập mẹ của JRE, và chứa mọi thứ nằm trong JRE, bổ sung thêmcác công cụ như là trình biên dịch (compiler) và các trình gỡ lỗi (debugger) cần đểphát triển applet và các ứng dụng
Trang 23Đối với mõi hệ điều hành khác nhau, ta sẽ có 1 JVM khác nhau và được cung cấp
Trang 245 Môi trường phát triển
a Hệ điều hành:
Về hệ điều hành để cài đặt các công cụ hỗ trợ, hiện Java có thể chạy trên hầuhết các hệ điều hành phổ dụng như:
• Microsoft Windows: các phiên bản XP 32 bits, Vista 32 và 64 bits, Windows
7 32bits và 64bits, (và các phiên bản cũ hơn)
Ở trong đồ án của em (phần server ) có sử dụng 1 số thư viện cơ bản sau:
• Sqljdbc4.jar: Dùng để kết nối với CSDL SQL Server lư các thông tin đểngười dùng xem
• Mongo-2.3.jar: Dùng để kết nối với CSDL Rock Mongo để lưu các thông tindạng thô khi crawler data về
• JDK 1.6: Thư viện chuẩn của SUN
c Cài đặt môi trường lập trình:
Các bước để cài đặt các công cụ hỗ trợ phát triển ứng dụng Android:
• Cài đặt Java Virtual Machine hay JVM
• Cài đặt Java IDE: (cụ thể là Netbean 7.0)
• Cài đặt SQL server và SQL Manager Studio 2005 Express
• Cài đặt CSDL Rock Mongo
Cụ thể các bước cài đặt khá đơn giản tuy nhiên trong khuôn khổ có hạn củanội dung đồ án em không trình bày cụ thể ở đây Chi tiết về việc cài đặt có thể thamkhảo tại địa chỉ
http://netbeans.org/kb/index.html
http://www.oracle.com/technetwork/java/javase/downloads/index.html http://www.microsoft.com/downloads/en/details.aspx?
familyid=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796&displaylang=en http://www.mongodb.org/downloads
Trang 25II Giao thức kết nối
Giao thức kết nối Socket cùng với giao thức HTTP là hai giao thức truyềnthống, rất dễ sử dụng Trong hai giao thức kết nối trên mỗi giao thức lại có những
ưu, nhược điểm riêng mà tùy trong mỗi chương trình mà ta có thể lựa chọn phươngthức kết nối thích hợp
Giao thức HTTP:
Trong giao thức HTTP, client truyền thông điệp cho server thông qua haiphương thức là POST và GET Với phương thức POST, lập trình viên có thể giấucác tham số truyền lên server, điều này sẽ giúp bảo mật hơn cho server, tuy nhiên sẽgây khó khăn hơn cho lập trình viên phía client Với phương thức GET, lập trìnhviên sẽ gửi tất cả các tham số yêu cầu qua url, điều này sẽ dễ dàng hơn cho lập trìnhviên phía client tuy nhiên sẽ rất khó để giấu url cho server
Việc sử dụng kết nối HTTP có ưu điểm là dễ dàng cho lập trình viên nhưng
nó lại có một số điểm bất lợi sau :
• HTTP khiến cho kết nối giữa Client-Server không được liên tục Hệ thốngchỉ thực hiện kết nối khi có yêu cầu, và đóng lại sau khi nhận được dữ liệu
Do đó, việc request sẽ tốn một khoảng thời gian để thiết lập kết nối, điều màkết nối socket không mắc phải
• Ngoài ra do việc sử dụng giao thức kết nối HTTP thực hiện truy vấn trực tiếplên service không đảm bảo được tính bảo mật và trong suốt của hệ thống do
có thể dễ dàng phát hiện các câu truy vấn
Giao thức Socket TCP:
Chính từ những nhược điểm trên của HTTP, yêu cầu đặt ra là xây dựng thêmmột module kết nối nằm giữa client và các service, nhằm làm trong suốt giữa haitầng này, nâng cao tính bảo mật đối với server chứa service Module này sẽ thiết lậpmột kết nối TCP socket với các client, giữ các kêt nối, lấy các dữ liệu từ service vàtrả lại cho client
Module kết nối tại client có nhiệm vụ quản lý các gói tin gửi đi, nhận và xử lí
các gói tin gửi về từ server và hiển thị kết quả lên form
Module kết nối tại Server sẽ tạo một socket, lắng nghe những packet từ client
gửi lên, xử lý,sau đó dựa vào mã gửi lên để gọi các dịch vụ được cung cấp bởiSearch Engine của trang Socbay.com để trả về các dữ liệu đã được chuẩn hoá tươngứng
Trang 26Hình 8: Mô hình Socket TCP
Một số đặc điểm của giao thức Socket:
- Socket có cơ chế keep alive ,kết nối không bị mất sau mỗi lần nhận được dữliệu.=> khắc phục được so với http.Thời gian kết nối client-server sẽ không
bị mất
- Tuy nhiên chính điều này dẫn đến 1 vấn đề là khi mà Socket keep alive vớicác request của client.Trong trường hợp hàng nghìn request gửi cùng 1 lúc
và nó vẫn keep thì server có thể sẽ bị quá tải
Trong khuôn khổ đồ án em đã chọn giao thức Socket làm giao thức kết nốicho chương trình của mình Tuy mỗi giao thức đều có những lợi ích riêng nhưngviệc lựa chọn một phần cũng do khuôn khổ làm đồ án có hạn và cũng một phần lợithế là em đã nghiên cứu giao thức này trong thời gian thực tập vừa qua
III Quy trình phát triển ứng dụng cho thiết bị di động
Quy trình phát triển một ứng dụng cho thiết bị di động thông thường khágiống nhau tuy nhiên trong khuôn khổ có hạn của đồ án tốt nghiệp em chỉ xin trìnhbày quy trình cho Android Quy trình phát triển ứng dụng cho Android bao gồm cácbước cơ bản sau:
Trang 271 Quy trình phát triển một ứng dụng
Hình 9: Quy trình phát triển ứng dụng cho thiết bị di động
Quy trình phát triển một ứng dụng bao gồm các bước chính sau:
• Tạo một project: Sau khi tìm hiểu yêu cầu và cài đặt môi trường chúng ta sẽtiến hành tạo một project cho dự án
• Modify application code: Quá trình này sẽ có những sửa chữa, phát triển dựán
• Maintain the project: Quá trình duy trì và phát triển dự án diễn ra song songvới công việc bước 2
• Bước tiếp theo sẽ tiến hành build và biên dịch code (cho một hay nhiều phiênbản cho các dòng điện thoại)
2 Phát hành sản phẩm (cho hệ điều hành Android)
Chương trình sau khi phát triển để có thể đóng gói thành tệp apk và cải đặtlên máy thật cần trải qua một số bước sau đây
a Xác thực cho gói chương trình:
Như đã trình bày trong phần bảo mật, mỗi gói chương trình để cài đặt lênAndroid cần có một mã xác thực do chính người viết tạo nên Khi chạy trên máy ảo,
Trang 28các công cụ hỗ trợ đã tự động tạo cho gói cài đặt một mã xác thực dùng cho máy ảo,tuy nhiên mã này không được sử dụng cho chương trình trên máy thật.
Mã xác thực cần hội tụ các đặc điểm sau:
• Thuộc sở hữu của người viết (không trùng lặp với người khác)
• Đại diện được cho thông tin cá nhân, cơ quan, tổ chức của người viết phầnmềm
• Có thời gian hết hạn phù hợp với tuổi thọ của chương trình
• Không phải là mã xác thực trong chế độ chạy thử trên máy ảo
Để tạo mã xác thực và gắn vào gói cài đặt của chương trình ta có hai bộ công
cụ Bộ thứ nhất là các công cụ Keytool để sinh mã và Jarsigner để gắn mã với góicài đặt chương trình trong bộ SDK của Android Bộ thứ hai được tích hợp trongplugin ADT cho Elipse với trình Export Wizard
Thông thường tất cả chương trình của cùng một tác giả nên cùng được gắnbởi một khóa xác thực duy nhất, bởi khóa xác thực này có tác dụng xác định tác giảcủa phần mềm cũng như quan hệ giữa các phần mềm với nhau Khi cập nhật phiênbản mới cho phần mềm sẽ xảy ra hai trường hợp Trường hợp thứ nhất ta sử dụnglại mã xác thực đã gán cho phiên bản trước đó, nếu tất cả xác thực gán cho phiênbản mới đều phù hợp với các xác thực của phiên bản cũ thì hệ thống cho phép tathay đổi các phần mới Ngược lại nếu ta gán mã xác thực mới, để có thể cài đặt taphải đổi tên gói chương trình, và khi cài đặt là cài đặt một chương trình mới và táchbiệt với chương trình cũ Một vấn đề nữa là Android cho phép các chương trìnhkhác nhau có cùng mã xác nhận sẽ cùng được chạy trong một tiến trình và được coinhư một chương trình Vì vậy chương trình nên chia thành các module dùng chungxác thực để tiện cập nhật cũng như chia sẻ dữ liệu và mã Một điểm nữa trong khóaxác thực, đó là chia sẻ dữ liệu và chức năng thông qua phân quyền dựa trên mã xácthực Một ứng dụng có thể chia sẻ dữ liệu cũng như các chức năng mà nó thực hiệncho các ứng dụng khác có mã xác thực nhất định Vì vậy khi gán chung một mã xácthực cho nhiều ứng dụng, đồng thời kết hợp với việc phân quyền dựa trên mã xácthực, mã và dữ liệu của chương trình có thể được sử dụng một cách hiệu quả hơn
Một điều lưu ý với mã xác thực là thời gian hết hạn của nó Ta cần xác địnhthời gian hết hạn của mã phù hợp với tuổi thọ của các chương trình được gán mãxác thực đó Khi mã hết hạn thì người dùng không thể cập nhật phiên bản mới hơncho chương trình Thông thường thời hạn cho mã xác thực này là 12 năm Cácchương trình được phát hành trên Android Market của Google cần có thời hạn cho
mã xác thực nằm sau ngày 22/10/2033
b Gán phiên bản:
Chương trình cần được gán phiên bản do một số yêu cầu như sau:
• Yêu cầu từ chính người dùng muốn biết rõ phiên bản phần mềm nào họ đang
Trang 29sử dụng, từ đó họ biết các đặc điểm của chương trình do ta đã cung cấptrước.
• Các chương trình khác, đặc biết các chương trình có liên quan đến chươngtrình của ta cần biết phiên bản của chương trình để xác định tính tương thích
• Các dịch vụ phát hành chương trình của ta cần biết phiên bản của phần mềm
để quảng bá sản phẩm cho phù hợp
Tuy nhiên Android không quan tâm đến phiên bản của phần mềm cũng nhưđưa ra các thông báo cập nhật hay tương thích Việc cập nhật phần mềm sẽ dongười dùng tự quyết định Android cũng không cung cấp cho các ứng dụng phiênbản của mình, mà các ứng dụng sẽ phải khai báo phiên bản API tối thiểu của hệthống tương thích với chương trình, từ đó Android có cho phép cài đặt hay không
Phiên bản của chương trình được thiết lập trong tệp cấu hìnhAndroidManifest.xml tại các thuộc tính của thẻ <manifest> Có hai loại mã phiênbản và ta nên thiết lập cho cả hai Loại thứ nhất là một số nguyên, thường bắt đầu từ
1 và tăng dần qua các phiên bản Loại mã phiên bản này thích hợp cho chương trình
dễ dàng xử lý Loại mã phiên bản thứ hai sử dụng để hiển thị cho người sử dụng,khó xử lý trong chương trình hơn nhưng dễ hiểu với người dùng Đây là một chuỗivăn bản theo quy ước nào đó, thường là theo khuôn dạng hay gặp là
<major>.<minor>.<point>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.package.name"
c Một số chuẩn bị khác trước khi phát hành sản phẩm:
• Kiểm tra lại phần mềm
• Tạo giấy phép bản quyền
• Tạo tên gọi cũng như biểu tượng cho chương trình
• Tắt chức năng cho phép gỡ rỗi cũng như loại bỏ các đoạn mã nguồn gỡ rốikhác, và loại bỏ các tệp tin dữ liệu thử nghiệm, rác
Trang 30CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
I Mục đích
Sản phẩm mà nhóm em xây dựng nhằm mục đích giúp người sử dụng điệnthoại di động chạy hệ điều hành Android có thể tra cứu, tiếp cận với nguồn thôngtin khổng lồ trên internet với việc luồng thông tin đã được sàng lọc, chắt lọc, phânloại cho phù hợp với thiết bị di động, tránh lãng phí tài nguyên và thời gian
Để dễ theo dõi một cách tổng thể hệ thống, phần này trình bày kiến trúcchung hệ thống, sau đó sẽ trình bày chi tiết phần module Server mà em chịu tráchnhiệm chính
Sản phẩm được xây dựng gồm có 6 chức năng chính:
• Chức năng Crawler dữ liệu phục vụ cho tất cả chức năng trên
Mục tiêu của chương trình:
Mục tiêu chung:
- Có khả năng khai thác giá trị thực tế cao
- Có tính cộng đồng cao
- Dễ sử dụng, thân thiện với người dùng
Mục tiêu theo chức năng:
- Chức năng đọc phục vụ đọc tin tức online: Đọc tin tức mới nhất hoặcđọc tin theo chủ đề
- Chức năng phục vụ xem ảnh onlien: Xem ảnh theo chủ đề
- Chức năng phục vụ tra cứu kết quả xổ số: Tra cứu kết quả xổ số theongày
- Chức năng phục vụ đọc truyện: Đọc truyện theo chủ đề
- Chức năng phục vụ nghe nhạc: Nghe nhạc theo chủ đề
- Chức năng Crawler dữ liệu: phục vụ các chức năng trên
Client sẽ các là điện thoại di động của người sử dụng , nó sẽ gửi các request
là các yêu cầu lên server ,ví dụ : gửi request yêu cầu đọc báo tin mới nhất, hoặc tracứu kết quả xổ số
Server sẽ nhận request yêu cầu từ Client, sau đó xử lý: lấy dữ liệu từdatabase, xử lý rồi truyền response về cho Client.Với các yêu cầu lấy dữ liệu khácnhau : Tin Tức, Xổ Số, Truyện thì server có các cơ chế xử lý khác nhau