1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android

72 566 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 72
Dung lượng 1,66 MB

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

Nội dung

Mục tiêu của đề tài “Xây dựng hệ thống liên lạc điện tử giữa nhà trường vàgia đình trên các thiết bị sử dụng hệ điều hành Android” là nghiên cứu công nghệlập trình mới hiện nay, nghiên c

Trang 1

LỜI CẢM ƠN

Sau một thời gian nghiên cứu và thực hiện đề tài “Xây dựng hệ thống liênlạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hànhAndroid” đã cơ bản hoàn thành

Để đạt được kết quả này, em đã nỗ lực hết sức đồng thời cũng nhận được sựgiúp đỡ chỉ bảo tận tình của các thầy cô

Trước hết em xin gửi lời cảm ơn chân thành tới Bộ môn Mạng và TruyềnThông, Khoa Công Nghệ Thông Tin, Trường đại học Công Nghệ Thông Tin vàTruyền Thông và các thầy cô, đặc biệt là thầy giáo hướng dẫn Th.s: Đỗ VănToàn đã tận tình giúp đỡ, hướng dẫn em hoàn thành đồ án tốt nghiệp

Em cũng xin gửi lời cảm ơn tới các anh chị, các bạn trong cộng đồngAndroid Việt Nam đã đóng góp ý kiến, giúp đỡ em trong quá trình thực hiện đềtại

Đề tài đã hoàn thành với một kết quả nhất định, tuy nhiên vẫn không thểtránh khỏi sai sót Kính mong sự thông cảm và đóng góp ý kiến từ các thầy cô vàcác bạn

Em xin chân thành cảm ơn!

Thái Nguyên, tháng 6 năm 2012Sinh viên thực hiện

Triệu Anh Tú

Trang 2

LỜI CAM ĐOAN

Tôi cam đoan toàn bộ nội dung đồ án là do tôi nghiên cứu Những kết quả,các số liệu và chương trình trong bài báo cáo mà tôi thực hiện đồ án “Xây dựng

hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệđiều hành Android”, không sao chép bất kỳ nguồn nào khác Tôi hoàn toàn chịutrách nhiệm trước nhà trường về sự cam đoan này

Thái Nguyên, tháng 6 năm 2012 Người cam đoan

Triệu Anh Tú

Trang 3

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

MỤC LỤC 3

LỜI NÓI ĐẦU 8

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 10

1.1 Tìm hiểu về hệ điều hành Android 10

1.1.1 Android là gì? 10

1.1.2 Tính năng mở của hệ điều hành Android 10

1.1.3 Các ứng dụng có thể tạo ra cho Android 10

1.1.4 Kiến trúc Android 11

1.1.5 Ứng dụng Android 15

1.1.6 Giao diện người dùng trong Android 20

1.2 Giới thiệu các tool hỗ trợ 25

1.2.1 Khái niệm về Web Service 25

1.2.2 Giới thiệu về mã JSON 26

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 27

2.1 Lý do chọn đề tài 27

2.2 Đặc tả chương trình 27

2.2.1 Giới thiệu 27

2.2.2 Các chức năng chính 28

2.3 Tìm hiểu Web Service 29

2.3.1 Đặc điểm của Web Service 29

2.3.2 Ưu điểm và nhược điểm của Web Service 29

2.3.3 Kiến trúc Web Service 31

2.3.4 Hoạt động của Web Service 32

2.3.5 Các thành phần chính của Web Service 34

2.3.6 Sơ lược về mã JSON 40

2.4 Phân tích và thiết kế hệ thống 44

Trang 4

2.4.1 Mô tả bài toán 44

2.4.2 Giá trị sử dụng 44

2.34.3 Đặc tả sử dụng 44

2.4.4 Cấu trúc Use case 46

2.4.5 Biểu đồ trình tự 50

2.5 Phân tích và thiết kế cơ sở dữ liệu 52

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 56

3.1 Cài đặt ứng dụng 56

3.2 Giao diện chính 58

3.3 Các chức năng chính của ứng dụng 59

3.3.1 Đăng nhập 59

3.3.2 Lên lịch hoạt động 64

3.3.3 Nhận xét hoạt động 66

3.3.4 Gửi và nhận thông báo 67

KẾT LUẬN 70

TÀI LIỆU THAM KHẢO 71

Trang 5

MỤC LỤC HÌNH ẢNH

Hình 1.1 Các thành phần chính của hệ điều hành Android 11

Hình 1.2 Vòng đời của một ứng dụng 15

Hình 1.3 Vòng đời của Activity 17

Hình 1.4 Một số phương thức của Activity 20

Hình 1.5 Biểu đồ phân cấp của View và ViewGroup 21

Hình 2.1.Các thành phần của Web Service 31

Hình 2.2.Kiến trúc của Web Service 32

Hình 2.3 Hoạt động của Web Service 32

Hình 2.4 Một Client truy xuất đến nhiều Web Service cùng lúc 34

Hình 2.5 Một Web Service có thể triệu tập đến các Web Service khác 34

Hình 2.6 Web service Endpoint 39

Hình 2.7 Biểu đồ Use-case 46

Hình 2.8 Hoạt động của hệ thống 49

Hình 2.9 Biểu đồ trạng thái chức năng đăng nhập 50

Hình 2.10 Biểu đồtuần tự đăng nhập hệ thống 50

Hình 2.11 Biểu đồ tuần tự hoạt động chức năng lên lịch 51

Hình 2.12 Tuần tự hoạt động chức năng nhận xét và thông báo 52

Hình 2.13 Mô hình cơ sơ dữ liệu 55

Hình 3.1 File DTAN.apk dùng cài đặt ứng dụng trên thiết bị thật 56

Hình 3.2 Yêu cầu xác nhận cài đặt 57

Hình 3.3 Quá trình cài đặt ứng dụng 58

Hình 3.4 Màn hính chính của ứng dụng 59

Hình 3.5 Thông báo đăng nhập thành công 60

Hình 3.6 Đăng nhập thất bại 61

Hình 3.7 Yêu cầu lựa chọn giáo viên hoặc phụ huynh 62

Hình 3.8 Màn hình sau khi đăng nhập của giáo viên 63

Hình 3.9 Màn hình sau khi đăng nhập của phụ huynh 64

Hình 3.10 Lên lịch hoạt động 65

Trang 6

Hình 3.11 Giáo viên có thể xóa hoặc chỉnh sửa nội dung hoạt động 66

Hình 3.12 Nhận xét hoạt động 67

Hình 3.13 Gửi thông báo 68

Hình 3.14 Nhận được thông báo 69

Trang 7

MỤC LỤC BẢNG

Bảng 2.1 Chuẩn hóa cơ sở dữ liệu 53

Bảng 2.2 Bảng teacher_account 54

Bảng 2.3 Bảng parent_account 54

Bảng 2.4 Bảng class 54

Bảng 2.5 Bảng schedule 55

Trang 8

LỜI NÓI ĐẦU

Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu những năm 1990 vàtheo thời gian số lượng các thuê bao cũng như các nhà cung cấp dịch vụ đi độngtại Việt Nam ngày càng tăng Do nhu cầu trao đổi thông tin ngày càng tăng vànhu cầu sử dụng sản phẩm công nghệ cao nhiều tính năng, cấu hình cao, chấtlượng tốt, kiểu dáng mẫu mà đẹp, phong phú nên nhà cung cấp phải luôn luôn cảithiện, nâng cao những sản phẩm của mình Do đó việc xây dựng các ứng dụngcho điện thoại di động đang là một ngành công nghiệp mới đầy tiềm năng và hứahẹn nhiều sự phát triển vượt bậc của ngành khoa học kĩ thuật

Cùng với sự phát triển của thị trường điện thoại di động là sự phát triểnmạnh mẽ của xu hướng lập trình phần mềm ứng dụng cho các thiết bị di động.Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đa dạng và phong phútrên các hệ điều hành di động cũng phát triển mạnh mẽ và đang thay đổi từngngày Các hệ điều hành J2ME, Android, IOS, Hybrid, Web based MobileApplication đã có rất phát triển trên thị trường truyền thông di động, nhưng đáng

kể nhất chính là hệ điều hành Android ra đời với sự kế thừa những ưu việt củacác hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhấthiện nay, Android đã được phát triển bởi nhà phát triển công nghệ rất nổi tiếnghiện nay là Google Android đã nhanh chóng là đối thủ cạnh tranh mạnh mẽ vớicác hệ điều hành trước đó và đang là hệ điều hành di động của tương lai và đượcnhiều người ưa chuộng nhất

Mục tiêu của đề tài “Xây dựng hệ thống liên lạc điện tử giữa nhà trường vàgia đình trên các thiết bị sử dụng hệ điều hành Android” là nghiên cứu công nghệlập trình mới hiện nay, nghiên cứu về ngôn ngữ lập trình, môi trường làm việc,cách hoạt động và lập trình chương trình ứng dụng cho điện thoại di động

Để thực hiện điều đó em đã nghiên cứu về ngôn ngữ lập trình trên hệ điềuhành Android và em mong muốn sẽ xây dựng được một ứng dụng di động phục

vụ cho nhà trường và gia đình trao đổi thông tin thường xuyên của con em mìnhtrong quá trình học tập

Trang 9

Những nội dung đề tài của em bao gồm 3 chương:

Chương 1: Cơ sở lý thuyết.

Chương 2: Phân tích và thiết kế hệ thống.

Chương 3: Xây dựng chương trình ứng dụng.

Do kiến thức, khả năng còn hạn chế và thời gian tìm hiểu ngắn nên trongbài báo cáo của em còn nhiều thiếu sót, em mong nhận được sự góp ý của cácthầy cô và các bạn để đề tài của em được đầy đủ và phong phú hơn Em xin chânthành cảm ơn!

Trang 10

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Tìm hiểu về hệ điều hành Android

1.1.1 Android là gì?

Android là một hệ thống điều hành, middleware và các ứng dụng di độngchủ chốt Các Android Software Development Kit (SDK) bây giờ đã có

Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một

số đầu phát HD, HD player, TV) phát triển bơi Google và dựa trên nền tảngLinux Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự

ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liênminh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm

và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di động trongtương lai

1.1.2 Tính năng mở của hệ điều hành Android

Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứngdụng di động hấp dẫn tận dụng tất cả một chiếc điện thoại đã cung cấp Nó đượcxây dựng để được thực sự mở; ví dụ một ứng dụng có thể kêu gọi bất kỳ chứcnăng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản, hoặc bằngcách sử dụng máy ảnh, cho phép các nhà phát triển để tạo ra phong phú hơn vànhiều hơn nữa những kinh nghiệm cố kết cho mọi người Androi được xây dựngtrên Linux Kernel Hơn nữa, nó sử dụng một máy ảo tùy chỉnh được thiết kế đểtối ưu hóa bộ nhớ và tài nguyên phần cứng trong một môi trường di động.Android là mã nguồn mở, nó có thể được liberally mở rộng Nền tảng này sẽ tiếptục tiến triển như cộng đồng nhà phát triển công việc cùng nhau để xây dựng cácứng dụng di động sáng tạo

1.1.3 Các ứng dụng có thể tạo ra cho Android

Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứngdụng của bên thứ 3 Với các thiết bị xây dựng trên hệ điều hành Android, ngườidùng có thể hoàn toàn thích ứng với điện thoại đến lợi ích của họ Họ có thể traođổi trên màn hình của điện thoại, những phong cách của dialer, hoặc bất kỳ ứng

Trang 11

dụng Họ thậm chí có thể hướng dẫn điện thoại của họ để sử dụng hình ảnh ưathích của họ xem các ứng dụng để xử lý xem tất cả các hình ảnh.

Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như:

- Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọi điện(phone), quản lý danh bạ (Contacts), duyệt web (Browser), nhắn tin (SMS), lịchlàm việc (Calendar), đọc e-mail (Email-Client), bản đồ (Map), quay phim chụpảnh (camera)

- Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), cáctrò chơi (Game), từ điển

Các chương trình có các đặc điểm là:

- Viết bằng Java, phần mở rộng là apk

Trang 12

- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine đượcdựng lên để phục vụ cho nó Nó có thể là một Active Program: Chương trình cógiao diện với người sử dụng hoặc là một background: chương trình chạy nền hay

là dịch vụ

- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thờiđiểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứngdụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi Điều đó cótác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn

- Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyềnhạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống

- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành diđộng khác, Android cho phép một ứng dụng của bên thứ ba được phép chạy nền.Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dụng quá5~10% công suất CPU, điều đó nhằm để tránh độc quyền trong việc sử dụngCPU

- Ứng dụng không có điểm vào cố định, không có phương thức main để bắtđầu

Application Framework

Tầng này xây dựng bộ công cụ, các phần tử ở mức cao để các lập trình viên

có thể nhanh chóng xây dựng ứng dụng Nó được viết bằng Java, có khả năng sửdụng chung để tiết kiệm tài nguyên

Giới thiệu một số thành phần của phần này:

Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như

cung cấp công cụ điều khiển các Activity

Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi

điện thoại

XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực.

Location Manager: Cho phép xác định vị trí của điện thoại thoại dựa vào

hệ thống định vị toàn cầu GPS và Google Maps

Trang 13

Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người

dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng

Notication Manager: Quản lý việc hiển thị các thông báo (như báo có tin

nhắn, có e-mail mới…)

Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm

các file hình ảnh, âm thanh, layout, string (Những thành phần không được viếtbởi ngôn ngữ lập trình)

Libraries

Android bao gồm một bộ thư viện C/C++, được sử dụng bởi các thành phầnkhác nhau của hệ thống Android Những khả năng tiếp xúc với các nhà phát triểnthông qua các khuôn khổ ứng dụng Android Một số các thư viện lõi được liệt kêdưới đây:

System C library: một BSD-có nguồn gốc thực hiện các hệ thống thư viện

chuẩn C (LIBC), điều chỉnh cho nhúng dựa trên Linux các thiết bị

Media Libraries: dựa trên OpenCORE PacketVideo's, sự hỗ trợ các thư

viện phát lại và ghi âm của âm thanh và phổ biến nhiều định dạng video, cũngnhư các tập tin hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG,

và PNG

Surface Manager: Quản lý truy cập đến các hệ thống con hiển thị cũng

như các lớp đồ họa 2D, 3D từ tầng ứng dụng

LibWebCore: Thư viện được dùng để tạo nên thành phần webview trong

Android và có thể nhúng được vào nhiều ứng dụng

SGL: Thư viện hỗ trợ đồ hoạ 2D.

3D libraries: Thư viện đồ họa 3D.

SQLite: Một cơ sở dữ liệu nhỏ được dùng cho các thiết bị cầm tay có bộ

nhớ hạn chế SQLite không có quan hệ như các cơ sở dữ liệu khác

Android Runtime

Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp hầu hết cácchức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java Tất cả cácứng dụng Android đều chạy trong tiến trình riêng Máy ảo Dalvik đã được viết để

Trang 14

cho một thiết bị có thể chạy nhiều máy ảo hiệu quả Các VM Dalvik thực thi cáctập tin thực thi Dalvik (dex) Định dạng được tối ưu hóa cho bộ nhớ tối thiểu.

VM là dựa trên register-based, và chạy các lớp đã được biên dịch bởi một trìnhbiên dịch Java để chuyển đổi thành các định dạng dex Các VM Dalvik dựa vàonhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp

Linux Kernel

Hệ điều hành Android được phát trển dựa trên hạt nhân linux, cụ thể là hạtnhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọihoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấpthấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp vớiphần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình(process)

Tầng này có các thành phần chủ yếu:

Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận

những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng )

Camera Driver: Điều kiển hoạt động của camera, nhận luồng dữ liệu từ

camera trả về

Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth.

USB driver: Quản lý hoạt động của các cổng giao tiếp USB.

Keypad driver: Điều khiển bàn phím.

Wifi Driver: Chịu trách nhiệm về việc thu phát sóng wifi.

Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu

dạng audio thành tín hiệu số và ngược lại

Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng

vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyềnthông được thực hiện

M-System Driver: Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ SD,

flash

Power Madagement: Giám sát việc tiêu thụ điện năng.

Trang 15

1.1.5 Ứng dụng Android

a) Vòng đời của một ứng dụng Android

Android có cơ chế quản lý các process theo chế độ ưu tiên Các process có

độ ưu tiên (priority) thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằmđảm bảo tài nguyên

Foreground process: Là process của ứng dụng hiện thời đang được người

dùng tương tác

Visible process: Là process của ứng dụng mà activity đang hiển thị đối với

người dùng (onPaused() của activity được gọi)

Service process: Là Service đang running.

Background process: Là process của ứng dụng mà các activity của nó

không hiển thị với người dùng (onStoped() của activity được gọi)

Empty process: process không có bất cứ một thành phần nào active.

Theo chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process,trước tiên là các empty process

Trang 16

b) Các khái niệm trong ứng dụng Android.

Một ứng dụng Android được xây dựng nên từ nhiều thành phần(component), để có thể tiếp cận với Android bạn cần hiểu được các componentnày Các component để xây dựng nên một ứng dụng Android được chia thành 4component chính: Activity, Service, Content Provider, Broadcast Receiver cùngvới 2 component khác là: Intent và Notification

Activity:

Được dùng để hiển thị một màn hình trong ứng dụng cho phép người dùngtương tác với ứng dụng Khi khởi động một ứng dụng Android nào đó thì bao giờcũng có một mainActivity được gọi, hiển thị màn hình giao diện của ứng dụngcho phép người dùng tương tác để làm một hành động nào đó, chẳng hạn nhưquay số điện thoại, chụp anh, xem một bản đồ

Mỗi activity được cho một cửa sổ, trong đó cho vẽ giao diện người dùngcủa nó Một ứng dụng bao gồm nhiều activity, thông thường trong một ứng dụng

sẽ có những activity được quy định như các activity “chính”, tức là hiển thị chongười dùng khi ứng dụng khởi chạy Mỗi activity sau đó có thể gọi activity khác

để thực hiện hành động khác nhau Mỗi một activity mới bắt đầu, các activitytrước đó được dừng lại, Android quản lý activity theo cơ chế stack

- Các trạng thái (state) của Activity:

Active (running): Activity đang hiển thị trên màn hình (foregound).

Paused: Activity vẫn hiển thị nhưng không thể tương tác.

Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái

stop

Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo

nguyên tắc ưu tiên Các Activity ở trạng thái Stop hoặc Pause cũng có thể bị giảiphóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàntoàn và phục hồi lại trạng thái trước đó

Trang 17

- Vòng đời của Activity:

Hình 1.3 Vòng đời của Activity

Entire lifetime: từ phương thức onCreate() cho tới onDestroy().

Visible lifetime: từ phương thức onStart() cho tới onStop().

Foreground lifetime: từ phương thức onResume() cho tới onPause().

Khi xây dựng Activity cho ứng dụng cần phải viết lại (override) phươngthức onCreate() để thực hiện quá trình khởi tạo Còn các phương thức khác cócần viết lại hay không tùy thuộc vào yêu cầu lập trình của ứng dụng

Service:

Service là một ứng dụng component có thể thực hiện các hoạt động running trong background và không cung cấp một giao diện người dùng Mộtứng dụng component có thể bắt đầu một service và nó sẽ tiếp tục chạy trongbackground thậm chí nếu người dùng chuyển cho ứng dụng khác Ngoài ra, một

Trang 18

long-dịch vụ có thể xử lý các giao long-dịch mạng, nghe nhạc, thực hiện các tập tin I/O,hoặc tương tác với một provider content, tất cả từ background.

Một service cơ bản có thể có hai hình thức:

- Started: service là “started” khi một component ứng dụng (như một

activity) bắt đầu bằng cách gọi startService() Khi bắt đầu, một service có thểchạy trên background vô thời hạn, ngay cả khi các thành phần đó bắt đầu bị pháhủy Thông thường, một service bắt đầu thực hiện một hoạt động đơn lẻ vàkhông trả lại kết quả cho người gọi

- Bound: service là “buond” khi một component ứng dụng liên kết cho nó

bằng cách gọi bindService() Một service ràng buộc cung cấp một giao diệnclient-server cho phép các component tương tác với các dịch vụ, gửi và các yêucầu, có được kết quả, và thậm chí làm như vậy qua quá trình giao tiếpInterProcess(IPC) Một service buond chỉ chạy miễn là ứng dụng componentkhác bị ràng buộc vào nó Nhiều thành phần có thể liên kết cho dịch vu cùng mộtlúc, nhưng khi tất cả chúng unbind, service này bị phá hủy

Tìm hiểu về Activity trong Android

Activity là một thành phần ứng dụng đó cung cấp một màn hình mà ngườidùng có thể tương tác để làm một cái gì đó, chẳng hạn như quay số điện thoại,chụp ảnh, gửi email, hoặc xem một bản đồ Mỗi activity được cho một cửa sổ,trong đó cho vẽ giao diện người dùng của nó Cửa sổ thường lấp đầy màn hình,nhưng có thể nhỏ hơn so với màn hình và nổi lên trên các cửa sổ khác

Một ứng dụng thường bao gồm nhiều activity được ràng buộc lỏng lẻo vớinhau Thông thường, một trong những activity trong một ứng dụng được quyđịnh như các activity "chính", được trình bày cho người dùng khi tung ra ứngdụng cho lần đầu tiên Mỗi activity sau đó có thể bắt đầu activity khác để thựchiện hành động khác nhau Mỗi lần một activity mới bắt đầu, các activity trước

đó được dừng lại, nhưng hệ thống các khu bảo vệ các activity trong một ngăn xếp(các "back stack") Khi một activity mới bắt đầu, nó được đẩy lên phía sau ngănxếp và việc chú trọng của người dùng Sự trở lại ngăn xếp tuân thủ các cơ bản

"last in, first out" cơ chế hàng đợi, do đó, khi người dùng được thực thi với các

Trang 19

activity hiện tại và nhấn phím BACK, nó là popped khỏi đống (và phá hủy) các

hồ sơ activity trước đó (Sự trở lại ngăn xếp được thảo luận nhiều hơn trong côngviệc và sắp xếp lại tài liệu)

Để tạo ra một activity, bạn phải tạo một sub class của Activity Trong subclass của bạn, bạn cần cho thực thi method gọi hệ thống các cuộc gọi khi chuyểnđổi activity giữa các state khác nhau cho vòng đời của nó, chẳng hạn như khiactivity đang được tạo ra, dừng lại, nối lại, hoặc bị phá hủy Hai phương pháp gọilại quan trọng nhất là:

Create Activity

Bạn phải triển khai method này Hệ thống các cuộc gọi này khi tạo activitycủa bạn Trong thời hạn triển khai thực hiện của bạn, bạn nên khởi tạo các thànhphần thiết yếu của activity của bạn Quan trọng nhất, đây là nơi bạn phải gọisetContentView() để xác định việc layout cho giao diện người dùng của activity

Start Activity

Khi làm việc trong ứng dụng của riêng bạn, bạn thường sẽ cần cho đơn giản

là khởi động một activity được biết đến Bạn có thể làm như vậy bằng cách tạo ramột intent đó rõ ràng xác định activity bạn muốn bắt đầu, sử dụng tên lớp Ví dụ,đây là cách một activity bắt đầu activity khác có tên SignInActivity:

Intent intent = new Intent(this, SignInActivity.class);

startActivity(intent);

Đóng một Activity

Bạn có thể đóng một activity bằng cách gọi methos finish() của nó Bạn

cũng có thể đóng cửa một activity riêng biệt trước đó bạn đã bắt đầu bằng cách

gọi finishActivity().Ngoài ra trong Activity còn nhiều method khác.

Trang 20

Hình 1.4 Một số phương thức của Activity

Quản lý vòng đời Activity

Quản lý vòng đời Activity của bạn bằng cách thực hiện gọi method là rấtquan trọng cho phát triển một ứng dụng mạnh mẽ và linh hoạt Vòng đời của mộtactivity trực tiếp bị ảnh hưởng bởi kết hợp nhiệm vụ của nó và back stack với cácactivity khác

Một hoạt động có thể tồn tại trong ba trạng thái cơ bản: Resumed, Paused

và Stopped

Một activity bị tạm dừng hoặc dừng lại, hệ thống có thể drop nó từ bộ nhớhoặc là bằng cách yêu cầu cho nó kết thúc (gọi method finish() của nó), hoặc đơngiản là giết chết quá trình của nó Khi hoạt động này được mở lại (sau khi đượcfinished hoặc chết), nó phải được tạo ra như trên

1.1.6 Giao diện người dùng trong Android

Trong một ứng dụng Android, giao diện người dùng được xây dựng bằngcách sử dụng View và ViewGroup đối tượng Có nhiều loại quan điểm và các

Trang 21

nhóm view, mỗi một trong số đó là hậu duệ của lớp View View objects là cácđơn vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android Cácclass xem như là cơ sở phục vụ cho class con được gọi là “widget”, trong đócung cấp đầy đủ các đối tượng thực hiện giao diện, giống như các lĩnh vực vănbản và nút Class ViewGroup phục vụ như là cơ sở cho lớp con được gọi là

“layouts”, cung cấp các loại khác nhau của kiến trúc bố trí, như linear, tabular vàrelative

- Một View object là một cấu trúc dữ liệu có đặc tính lưu trữ các thông số

bố trí và nội dung cho một khu vực cụ thể hình chữ nhật của màn hình

- Một View object xử lý đo lường riêng của mình, bố trí, bản vẽ thay đổi tậptrung, di chuyển, và phím/tương tác cử chỉ cho khu vực hình chữ nhật của mànhình

Là một object trong giao diện người dùng, view cũng là một điểm tương táccho người sử dụng và nhận các sự kiện tương tác

a) Xem Hierarchy

Trên nền tảng Android, bạn xác định một hoạt động của giao diện ngườidùng bằng cách sử dụng một hệ thống phân cấp của View và ViewGroup, nhưtrong biểu đồ dưới đây:

Hình 1.5 Biểu đồ phân cấp của View và ViewGroup

Trang 22

Cây này có thể được phân cấp đơn giản hay phức tạp như bạn cần nó được,

và bạn có thể xây dựng nó lên bằng cách sử dụng thiết lập Android của widgets

và layouts định sẵn, hoặc với Views tùy chỉnh mà bạn tạo ra cho mình

Để đính kèm với cây phân cấp xem màn hình cho rendering, hoạt động củabạn phải gọi setContentView() phương pháp và thông qua một tham chiếu đếnđối tượng button gốc

Hệ thống Android nhận được tập tin này và sử dụng nó để làm mất hiệu lực,

đo lường và vẽ cây

Nút gốc của các yêu cầu phân cấp cho nó vẽ các nút con - lần lượt, mỗi nútview là nhóm chịu trách nhiệm kêu gọi mỗi lần view nút con riêng của mình để

vẽ có thể yêu cầu một kích thước và vị trí trong nút gốc Nhưng đối tượngviewgroup có quyết định cuối cùng về nơi làm thế nào, có thể được cho mỗi nútcon

Android parses các yếu tố của cách bố trí của người thiết kế (từ phía trêncùng của cây phân cấp), instantiating việc xem và them chúng và parent(s)

Bởi vì đây là những trích ra trong trật tự, nếu có các yếu tố đó chồng chéonhau các vị trí, một lần cuối để được rút ra sẽ nằm trên đầu trang của nhữngngười khác trước đây để rút ra những không gian đó

b) Giao diện

Cách phổ biến nhất để xác định bố trí của bạn và thể hiện sự phân cấp view

là với một tập tin XML layout XML cung cấp một cơ cấu có thể đọc được cho

bố trí, giống như HTML Mỗi phần tử trong XML là cả một View hoặc đối tượngViewGroup (hoặc hậu duệ đó) Các đối tượng View là lá trong cây, ViewGroupđối tượng là các nhánh trong cây Tên của một phần tử XML là tương tự với lớp

học Java mà nó đại diện Vì vậy một yếu tố <textview> tạo ra một TextView trong UI của bạn, và một phần tử <linearlayout> tạo ra một LinearLayout

viewgroup Khi bạn tải một layout resource, hệ thống Android khởi chạy thờigian các đối tượng, tương ứng với các yếu tố trong cách bố trí của bạn Ví dụ,một bố trí dọc đơn giản với một lần xem văn bản và một nút sẽ như thế này:

Trang 23

<? xml version = "1.0" encoding = "utf-8"?>

Widgets

Widget là một object View phục vụ như một giao diện để tương tác vớingười dùng Android cung cấp một tập các widgets thực hiện đầy đủ, giống nhưcác button, Checkbox, và text-entry, do đó bạn có thể nhanh chóng xây dựng

Trang 24

giao diện người dùng của bạn Một số widgets được cung cấp bởi Android phứctạp hơn, giống như một date picker, clock, và zoom controls Nhưng nó khônggiới hạn trong các loại widgets được cung cấp bởi các nền tảng Android.

Nếu bạn muốn làm một cái gì thêm cho tùy biến và tạo ra các yếu tố củahành động của bạn, bạn có thể bằng cách xác định object view của riêng bạnhoặc bằng cách mở rộng và kết hợp các Widget hiện có

Menus

Menu đơn có một phần quan trọng của giao diện người dùng trong một ứngdụng Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năngứng dụng và cài đặt Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bằng cáchbấm phím MENU trên thiết bị Tuy nhiên, bạn cũng có thể thêm Context Menus,

có thể hiển thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục Thựcđơn cũng được hệ thống phân cấp cấu trúc bằng cách sử dụng một view, nhưngbạn không xác định cấu trúc này cho mình Thay vào đó, bạn xác định

onCreateOptionsMenu() hoặc onCreateContextMenu() gọi method cho hoạt

động của bạn và tuyên bố các mục mà bạn muốn bao gồm trong menu của bạn.Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ thống View phâncấp cần thiết cho menu, và rút ra mỗi trong mỗi menu items đó

Menu cũng xử lý các sự kiện riêng của nó, do đó không cần phải đăng ký sựkiện listeners trên các item trong menu của bạn Khi một item trong menu củabạn được chọn, onoptionsItemSelected() hoặc onOptionsItemSelected()onContextItemSelected() method onContextItemSelected() sẽ được gọi bằngframework Và cũng giống layout của bạn, bạn có tùy chọn để khai báo các menuitem cho bạn trong một tệp tin XML

Adapters

Thỉnh thoảng ta sẽ muốn populate một view group với một số thông tin màkhông thể hard-coded được, thay vào đó, bạn muốn bind để xem một nguồn dữliệu bên ngoài Để làm điều này, ta sử dụng một AdapterView xem như là viewgroup của bạn và View con được khởi tạo và populated với dữ liệu từ Adapter.Các đối tượng AdapterView là một implementation của ViewGroup xác định

Trang 25

những view con của nó dựa trên một đối tượng Adapter nhất định Adapter cáchành vi như là chuyển phát nhanh giữa các nguồn dữ liệu của bạn (có lẽ là mộtmảng của chuỗi bên ngoài) và AdapterView, hiển thị nó trong đó Có một số hiệnthực của class Adapter, cho nhiệm vụ cụ thể, chẳng hạn như CursorAdapter việcđọc dữ liệu cơ sở dữ liệu từ một Cursor, hoặc một ArrayAdapter đọc từ mộtmảng tùy ý Để tìm hiểu thêm về cách sử dụng một adapter cho populate viewscủa bạn, hãy đọc đóng vào dữ liệu với AdapterView.

Styles and Themes

Nếu chúng ta không hài lòng với dáng vẻ của các widgets tiêu chuẩn Đểsửa đổi chúng, chúng ta có thể tạo một số style riêng và chủ đề

Một Style là một tập hợp của một hay nhiều thuộc tính định dạng mà bạn cóthể áp dụng như một đơn vị đến các yếu tố cá nhân trong layout của bạn Ví dụ,bạn có thể xác định một Style chỉ định một văn bản kích thước và màu sắc nhấtđịnh, sau đó áp dụng nó để chỉ các yếu tố View cụ thể

Một Theme là một tập hợp của một hay nhiều thuộc tính định dạng mà bạn

có thể áp dụng như một đơn vị đến tất cả các hoạt động trong một ứng dụng,hoặc chỉ hoạt động đơn lẻ Ví dụ, bạn có thể định nghĩa một theme mà bộ màusắc cụ thể cho khung cửa sổ và nền bảng, và đặt kích cỡ chữ và màu sắc cho cácmenu Theme này sau đó có thể được áp dụng cho các hoạt động cụ thể hoặc ứngdụng toàn bộ Styles and themes là nguồn tài nguyên

Android cung cấp một số kiểu mặc định và style and themes mà bạn có thể

sử dụng, hoặc bạn có thể phát triển riêng tài nguyên style and theme của bạn.Tìm hiểu thêm về cách sử dụng phong cách và chủ đề trong các ứng dụng Styles

và tài liệu đề

1.2 Giới thiệu các tool hỗ trợ

1.2.1 Khái niệm về Web Service.

Theo định nghĩa của W3C (World Wide Web Consortium), Web Service làmột hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứngdụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và

sự gắn kết của nó được mô tả bằng XML Dịch vụ Web là tài nguyên phần mềm

Trang 26

có thể xác định bằng địạ chỉ URL, thực hiện các chức năng và đưa ra các thôngtin người dùng yêu cầu Một dịch vụ Web được tạo nên bằng cách lấy các chứcnăng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thểtruy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin

từ dịch vụ Web khác Nó bao gồm các module độc lập cho hoạt động của kháchhàng và doanh nghiệp và bản thân nó được thực thi trên server

1.2.2 Giới thiệu về mã JSON

JSON hay còn gọi là JavaScript Object Notation, là một chuẩn dùng đểtruyền tải dữ liệu

JSON là cú pháp để lưu trữ và trao đổi thông tin văn bản Cũng giống nhưXML

JSON là nhỏ hơn so với XML, và nhanh hơn và dễ dàng hơn để phân tích(parse)

JSON sử dụng cú pháp JavaScript để mô tả đối tượng dữ liệu, nhưng JSON

là ngôn ngữ và nền tảng độc lập Trình phân tích cú pháp (parsers) JSON và cácthư viện JSON tồn tại cho nhiều ngôn ngữ lập trình khác nhau

Trang 27

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

2.1 Lý do chọn đề tài.

Trong xu thế phát triển của công nghệ hiện nay, và cùng theo đó là sự pháttriển, ra đời của các thiết bị smartphone tân tiến Việc tốc độ xử lý nhanh, bộ nhớSDCard lớn trên các máy điện thoai smartphone cho phép thực hiện các nhiệm

vụ trong công việc hay giải trí dần dần thay thế cho máy tính Các ứng dụng trênmôi trường mạng dần thay thế các ứng dụng chạy trên máy đơn, cục bộ Với sựlớn mạnh và phát triển vượt bậc trong những năm gần đây, hệ điều hành Android

đã cho thấy được thế mạnh của mình trong các thiết bị smartphone Các ứngdụng, phần mềm phát triển trên Android OS ngày càng nhiều, và mục đích củacác ứng dụng ngày càng đáp ứng được yêu cầu của người dung

Đồng thời, xuất phát từ ý tưởng xây dựng một ứng dụng chạy trên nền hệđiều hành Android giúp cho nhà trường và gia đình có thể liên lạc thường xuyên.Thông qua ứng dụng, các thông tin của các học sinh tại trường lớp có thể đượccập nhật thường xuyên tới phụ huynh một cách nhanh nhất, và phụ huynh cũng

có đưa ra những ý kiến tới giáo viên Vì vậy, em đã chọn đề tài “Xây dựng hệthống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệđiều hành Android”

2.2 Đặc tả chương trình

2.2.1 Giới thiệu

Chương trình hỗ trợ các chức năng liên lạc giữa nhà trường và gia đìnhchạy trên các thiết bị sử dụng hệ điều hành Android Sau khi cài đặt chương trìnhlên thiết bị di động và đăng ký dịch vụ truy cập Internet từ thiết bị di động, ngườidung có thể sử dụng hầu hết các tiện ích tương tự hệ thống SMS mà không cần

có máy tính kết nối Internet Ngoài Android, chương trình còn sử dụng côngnghệ Web Service trong kết nối mạng để truy cập vào cơ sở dữ liệu Chươngtrình được thực hiện với mục tiêu mô phỏng lập trình trên thiết bị di độngAndroid, và có thể chạy tốt trên thiết bị di động Android thật sự Việc ứng dụng

Trang 28

thực tế trên cơ sở dữ liệu của hệ thống thật là hướng mở rộng trong tương lai củachương trình.

2.2.2 Các chức năng chính.

a) Đăng nhập

Đối tượng sử dụng ứng dụng là giáo viên và gia phụ huynh học sinh

Khi người dùng khởi động ứng dụng Client, chương trình yêu cầu ngườidùng đăng nhập với tài khoản, mật khẩu để đăng nhập hệ thống

Nếu đăng nhập không hợp lệ người dùng phải nhập lại tài khoản, mật khẩu

để đăng nhập lại Nếu đăng nhập hợp lệ, người dùng có thể truy cập hệ thống và

sử dụng các chức năng khác của chương trình

b) Lên lịch hoạt động

Sau khi đăng nhập thành công, giáo viên có thể thực hiện lên lịch hoạt độngcho các học sinh trong lớp, giáo viên có thể lên lịch hoạt động cho tất cả học sinhhoặc lên lịch hoạt động riêng cho từng học sinh

Phụ huynh học sinh sau khi đăng nhập cũng có thể lên lịch cho con em củaminh, nhưng chỉ mang tính chất tham khảo đối với giáo viên, hoặc đó là những

đề xuất với giáo viên về hoạt động của con em mình

c) Nhận xét hoạt động

Hàng ngày giáo viên có thể nhận xét về các học sinh và các hoạt động màhọc sinh đã tham gia, thông qua đó giúp cho phụ huynh có thể nắm bắt được tìnhhình con em thường xuyên hơn Phụ huynh cũng có đưa ra ý kiến và để xuất vớigiáo viên về các hoạt động của con em mình

d) Gửi và nhận thông báo

Giáo viên và phụ huynh có thể liên lạc với nhau bằng cách gửi các thôngbáo Các thông báo này sẽ được tự động xóa sau khi được đọc và được phản hồilại

Trang 29

2.3 Tìm hiểu Web Service

2.3.1 Đặc điểm của Web Service.

- Web Service cho phép client và server tương tác được với nhau ngay cảtrong những môi trường khác nhau

- Phần lớn kỹ thuật của web service được xây dựng dựa trên mã nguồn mở

và được phát triển theo các chuẩn đã được công nhận

- Là sự kết hợp của việc phát triển theo hướng từng thành phần với nhữnglĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp,khách hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạngInternet

- Một ứng dụng được triển khai đều hoạt động theo mô hình client-server

- Web service có ứng dụng thực tế rộng rãi trong các lĩnh vực dịch vụ chọnlọc và phân loại tin tức, ứng dụng cho các dịch vụ du lịch, bán hang qua mạng, tỉgiá, chứng khoán, các dịch vụ giao dịch trực truyến như đặt vé máy bay, tàu xe

2.3.2 Ưu điểm và nhược điểm của Web Service

a) Ưu điểm:

Web service có nhiều ưu điểm hơn những mô hình ứng dụng phân tán rađời trước nó Ưu điểm này được cấu thành bởi chính những thành phần tạo nênweb service

- Khả năng vượt firewall:

Web service hoạt động trên nền giao thức HTTP nên cũng sử dụng luôncổng 80 dành cho web Đây là một ưu thế rất lớn của web service đối với cácphương thức gọi hàm từ xa (RPC) khác, với các hình thức cũ hơn, thường phảidung các port tự quy định dẫn đến không thể hoạt động ở một số tổ chức vì quảntrị mạng không cho phép vượt qua firewall Web service sử dụng port “well-known” 80, đây là port hầu như tất cả các firewall đều cho phép đi qua nên webservice có thể hoạt động ở mọi nơi

- Hoạt động trên đa môi trường:

Web service dựa trên nền công nghệ XML, tài liệu XML hiện nay được hỗtrở bởi tất cả các hệ điều hành, kể cả trên môi trường di động Do đó web service

Trang 30

có thể hoạt động trên mọi môi trường, được hỗ trợ bởi hầu như mọi ngôn ngữ lậptrình Tuy nhiên, do truyền dữ liệu dưới dạng text nên độ trễ của web service sẽcao và chiếm dụng băng thông cũng nhiều hơn so với các hình thức tryền dữ liệunhị phân.

- Nâng cao khả năng tái sử dụng

- Thúc đẩy đầu tư các hệ thống phần mềm đa tồn tại bằng cách cho phép các tiếntrình/ chức năng nghiệp vụ đóng gói trong giao diện web service

- Tạo mối tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễdàng cho việc phát triển các hệ thống phân tán

- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống

b) Nhược điểm

- Có quá nhiều chuẩn cho dịch vụ web khiến người dùng khó nắm bắt

- Cần quan tâm hơn nhiều về vấn đề bảo mật

- Các giao thức được thay đổi và nâng cấp, đòi hỏi ứng dụng của client phảiđược nâng cấp, thay đổi

Trang 31

2.3.3 Kiến trúc Web Service

Hình 2.1 Các thành phần của Web Service

Có 4 thành phần chính:

- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệpgiữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP,JSM và gần đây nhất là giao thức thay đổi khối mở rộng (Blocks ExtensibleExchange Protocol- BEEP)

- Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạngXML để có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiện tại,những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST

- Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch

vụ Web cụ thể WSDL thường được sử dụng cho mục đích này, nó là một ngônngữ mô tả giao tiếp và thực thi dựa trên XML Dịch vụ Web sẽ sử dụng ngôn ngữnày để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà dịch

vụ Web cung cấp

- Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ

đó giúp một dịch vụ Web có thể dễ dàng khám phá ra những dịch vụ nào đã cótrên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác Một

Trang 32

dịch vụ Web cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập vàgiao tiếp Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này.

Hình 2.2 Kiến trúc của Web Service

Trong đó, tầng giao thức tương tác dịch vụ (Service CommunicationProtocol) với công nghệ chuẩn là SOAP SOAP là giao thức nằm giữa tầng vậnchuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi mộtdịch vụ từ xa thông qua một thông điệp XML Ngoài ra, để các dịch vụ có tính antoàn, toàn vẹn và bảo mật thông tin, trong kiến trúc dịch vụ Web, chúng ta cóthêm các tầng Policy, Security, Transaction, Management

2.3.4 Hoạt động của Web Service

Hình 2.3 Hoạt động của Web Service

Trang 33

Một ứng dụng web service thường gồm 2 phần: client và server.

Client và server sẽ giao tiếp với nhau theo giao thức HTTP: ứng dụng client

sẽ gửi những lời gọi hàm đến server thông qua các gói tin HTTP request và kếtquả thực thi hàm sẽ được server hồi đáp thông qua các gói tin HTTP response

SOAP:

Các thông điệp sẽ được định dạng theo chuẩn giao thức SOAP (SimpleObject Access Protocol) Đây thực chất cũng chỉ là một ngôn ngữ được địnhnghĩa bên trên ngôn ngữ XML có sẵn

WSDL (Web Service Definaition Language):

Đây là file XML chứa các định nghĩa về các hàm trong Web Service tươngứng Các nhà phát triển ứng dụng sẽ phải dựa vào nội dung file này để biết WebService hỗ trợ những hàm này và nhận những tham số tương ứng, kết quả trả vềnhư thế nào

UDDI (Univeral Description Discovery and Integration):

Đây là công cụ giúp cho những nhà phát triển Web Service công bố nhữngthông tin về Web Service của mình cho cộng đồng các nhà phát triển ứng dụng.Người dung sẽ dựa vào những thông tin này để sử dụng Web Service trong ứngdụng riêng của mình tạo thành một hệ ứng dụng phân tán

Mối quan hệ giữa các thành phần SOAP,WSDL, UDDI có thể được mô tảnhư sau:

Một ứng dụng web service client cần sử dụng một Web Service được đặt tạimột nơi nào đó trên hệ thống mạng Trước tiên, client sẽ truy vấn đến các mẫu tinUDDI, có thể theo tên, loại hay một thông tin riêng biệt nào đó Khi xác địnhđược web service cần tìm, client có thể lấy thông tin về địa chỉ của tài liệu vớiWSDL của Web Service này dựa trên mẫu tin UDDI Tài liệu WSDL sẽ mô tảcách thức liên lạc với web service, định dạng của gói tin truy vấn và phản hồitheo cũng được mô tả bằng XML schema Dựa vào những thông tin này client cóthể tạo ra những gói tin SOAP tương ứng để liên lạc với server

Trang 34

Ứng dụng Web Service có thể được cài đặt ở những mức độ cao hơn nhưnhững mô hình sau:

Hình 2.4 Một Client truy xuất đến nhiều Web Service cùng lúc

Hình 2.5 Một Web Service có thể triệu tập đến các Web Service khác

2.3.5 Các thành phần chính của Web Service

Web service dựa vào khá nhiều công nghệ bên dưới như HTTP, XML,SOAP… Mỗi công nghệ nêu trên đầu có phạm vi ứng dụng khá sâu rộng và đòihỏi nhiều thời gian tìm hiểu cũng như trình bày

SOAP (Simple Object Access Protocol)

SOAP là một giao thức đơn giản nhằm mục đích trao đổi thông tin trongmôi trường ứng dụng phân tán SOAP dựa trên nền công nghệ XML và bao gồm

Trang 35

SOAP có thể được sử dụng kết hợp với các giao thức chuẩn khác nhưSMTP, HTTP/HTTPS, FPT… Tuy nhiên hiện nay chỉ mới có HTTP/HTTPSđược xem như giao thức chuẩn để trao đổi gói tin SOAP Việc sử dụng SOAPnhư một giao thức trao đổi dữ liệu chuẩn khiên web service có khả năng hoạtđộng trên nhiều môi trường lập trình khác nhau như Java, NET…

Gói tin SOAP:

Gói tin SOAP được gửi bên trong một gói tin HTTP request hoặc gói tinHTTP response

Gói tin SOAP gồm 4 phần chính:

+ Phần bì thư SOAP envelope: định nghĩa thông điệp chứa những gì, ai nên

xử lý thông điệp, thông điệp này bắt buộc phải xử lý hay mang tính tùy chọn.+ Luật mã hóa: quy định cách thức chuyển đổi thông tin, các kiểu dữ liệutrong ứng dụng

+ Phần SOAP PRC: mô tả những quy luật về cách thức gọi hàm từ xa cũngnhư cách thức phản hồi

+ Quy luật mô tả cách thức sử dụng gói tin SOAP với các protocol tầngdưới

Cấu trúc gói tin SOAP: một gói tin SOAP gồm một Envelope như một node

gốc trong văn bản XML, nút gốc này sẽ chứa node con Body và có thể có hoặckhông chứ node con Header

- SOAP Envelope:

Phần Envelope là node gốc của gói tin SOAP dưới dạng tài liệu XML.Phần Envelope có thể có hoặc không có phần Header nhưng chắc chắn phải chứaphần Body

Trong các gói tin SOAP thông thường, phần Envelope không mang nhiều ýnghĩa Nó chỉ đơn thuần báo hiệu sự bắt đầu của một gói tin và định nghĩa cácNameSpace cần thiết sẽ được sử dụng ở các phần sau

- SOAP Header:

Phần SOAP Header sẽ là node con đầu tiên của SOAP Header sẽ là nodecon đầu tiên của SOAP Envelope Phần Header thường là nơi được dùng để thêm

Trang 36

các thông tin bổ sung phục vụ cho mục đích riêng của chương trình Các thôngtin thường được thêm vào phần Hearder là authentication, authorization, quản lýtransaction… Phần Header không bắt buộc phải có trong mọi gói tin SOAP.

Đây là một ví dụ hoàn chỉnh và đơn giản về việc sử dụng SOAP để gọi hàmGetAccount (int accNumber) với tham số truyền vào acc/number=1234 Gói tinSOAP được đặt trong gói tin HTTP Request có dạng như sau:

<?xml version= “1.0” encoding= “utf-8”?>

<soap:Envelope xmlns:xsi= http://www.w3.org/2001/XMLSchema-instancexmlns:xsd= http://www.w3.org/2001/XMLSchema

Ngày đăng: 20/04/2017, 22:25

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Vòng đời của một ứng dụng - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 1.2. Vòng đời của một ứng dụng (Trang 15)
Hình 1.3. Vòng đời của Activity - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 1.3. Vòng đời của Activity (Trang 17)
Hình 2.1. Các thành phần của Web Service - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 2.1. Các thành phần của Web Service (Trang 31)
Hình 2.4. Một Client truy xuất đến nhiều Web Service cùng lúc - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 2.4. Một Client truy xuất đến nhiều Web Service cùng lúc (Trang 34)
Hình 2.11. Biểu đồ tuần tự hoạt động chức năng lên lịch - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 2.11. Biểu đồ tuần tự hoạt động chức năng lên lịch (Trang 51)
Hình 3.1. File DTAN.apk dùng cài đặt ứng dụng trên thiết bị thật - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.1. File DTAN.apk dùng cài đặt ứng dụng trên thiết bị thật (Trang 57)
Hình 3.3. Quá trình cài đặt ứng dụng - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.3. Quá trình cài đặt ứng dụng (Trang 59)
Hình 3.4. Màn hính chính của ứng dụng - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.4. Màn hính chính của ứng dụng (Trang 60)
Hình 3.5. Thông báo đăng nhập thành công - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.5. Thông báo đăng nhập thành công (Trang 61)
Hình 3.6. Đăng nhập thất bại - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.6. Đăng nhập thất bại (Trang 62)
Hình 3.7. Yêu cầu lựa chọn giáo viên hoặc phụ huynh - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.7. Yêu cầu lựa chọn giáo viên hoặc phụ huynh (Trang 63)
Hình 3.10. Lên lịch hoạt động - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.10. Lên lịch hoạt động (Trang 66)
Hình 3.11. Giáo viên có thể xóa hoặc chỉnh sửa nội dung hoạt động - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.11. Giáo viên có thể xóa hoặc chỉnh sửa nội dung hoạt động (Trang 67)
Hình 3.12. Nhận xét hoạt động - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.12. Nhận xét hoạt động (Trang 68)
Hình 3.13. Gửi thông báo - Xây dựng hệ thống liên lạc điện tử giữa nhà trường và gia đình trên các thiết bị sử dụng hệ điều hành android
Hình 3.13. Gửi thông báo (Trang 69)

TỪ KHÓA LIÊN QUAN

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