1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu lập trình iPhone và xây dựng ứng dụng “Sổ tay nấu ăn”

79 173 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 79
Dung lượng 14,11 MB

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

Nội dung

Định hướng nghiên cứu Nhằm mục đích nghiên cứu, tìm hiểu về công nghệ lập trình di động,webservice và một số công nghệ khác,chúng tôi đã xây dựng ứng dụng sổ tay nấu ăntrên iphone với mo

Trang 1

DANH SÁCH HÌNH SỬ DỤNG TRONG ĐỒ ÁN

Hình 1: Kế hoạch nghiên cứu đề tài 7

Hình 2: Hệ điều hành MAC OS 12

Hình 3: Kiến trúc iOS 14

Hình 4 : Công cụ lập trình Xcode 17

Hình 5: Giao diện chính của Xcode 3.2.5 17

Hình 6: Interface Builder 18

Hình 7: Instrument Memory Leak 18

Hình 8: SQLite Manager 19

Hình 9: iPhone Simulator 19

Hình 10: Mô hình MCV trong lập trình iOS 20

Hình 11: Tạo một project mới từ Xcode 21

Hình 12: Tạo giao diện 22

Hình 13: Liên kết đối tượng và Outlet 23

Hình 14: Gán sự kiện vào button 23

Hình 15: Kết nối một sự kiện của đối tượng với một phương thức 25

Hình 16: Nền tảng Web Service 28

Hình 17: Chồng giao thức của dịch vụ Web 28

Hình 18: Mô hình client – server của Web Service 29

Hình 19: Client truy suất nhiều Web Service cùng lúc 30

Hình 20: Tạo một Web Service với Visual Studio 2008 (1) 33

Hình 21: Tạo một Web Service với Visual Studio 2008 (2) 33

Hình 22: Tạo một Web Service với Visual Studio 2008 (3) 34

Hình 23: Tạo một Web Service với Visual Studio 2008 (4) 34

Hình 24: Tạo một Web Service với Visual Studio 2008 (5) 34

Hình 25: Cách gọi một Web Service từ Client (1) 35

Hình 26: Cách gọi một Web Service từ Client (2) 35

Hình 27: Cách gọi một Web Service từ Client (3) 36

Hình 28 : Mô hình ứng dụng 41

Hình 29: Sơ đồ mô tả chức năng trên Web Server 42

Hình 30: Sơ đồ chức năng trên iPhone 43

Hình 31: Use-case chức năng tại trang chính 44

Hình 32: Use-case chức năng sổ tay 44

Hình 33: Use-case chức năng xem Mẹo vặt 45

Hình 34: Use-case chức năng xem Tin tức 45

Hình 35: Use-case chức năng Setting 45

Hình 36: Mô hình quan hệ dữ liệu phía client 51

Hình 37: Mô hình quan hệ dữ liệu của dữ liệu trên Server 56

Hình 38: Prototypem Screen Follow cho mô đun “Trang chủ” 57

Hình 39: Prototypem Screen Follow cho mô đun “Thực đơn” 58

Hình 40: Prototypem Screen Follow cho mô đun “Mẹo vặt” 59

Hình 41: Prototypem Screen Follow cho mô đun “Tin tức” 59

Hình 42: Prototypem Screen Follow cho mô đun “Cài đặt” 60

Hình 43: Thuật toán tìm kiếm 61

Hình 44: Mô hình hóa các package trong iPhone 62

Hình 45: Mô hình Web Server 64

Hình 46: Mô hình Web Service 64

Trang 2

Hình 51: Kết quả mô đun "Cài đặt" 68

Hình 52: Giao diện của Web Server 69

Hình 53: Danh sách các phương thức mà Web Service cung cấp 69

Hình 54: Chi tiết một phương thức mà Web Service cung cấp 70

Trang 3

Bảng 1: Các lệnh sử dụng để khai báo trong Objective-C 11

Bảng 2: Các lệnh xác định khả năng truy cập trong Objective-C 11

Bảng 3: Các lệnh sử dụng để xử lý ngoại lệ trong Objective-C 12

Bảng 4: Ràng buộc về thiết kế và thực thi 37

Bảng 5: Yêu cầu phi chức năng 38

Bảng 6: Yêu cầu chức năng 41

Trang 4

TỔNG QUAN VỀ ĐỀ TÀI 4

I Giới thiệu chung 4

II Định hướng về công nghệ 4

III Định hướng và kế hoạch nghiên cứu 5

III.1 Định hướng nghiên cứu 5

III.2 Kế hoạch nghiên cứu 6

CƠ SỞ LÝ THUYẾT 8

I Giới thiệu các nền tảng mobile 8

II Objective-C và lập trình iPhone 9

II.1 Giới thiệu về Objective-C 9

II.1.1 Giới thiệu chung 9

II.1.2 Lý do sử dụng Objective-C 10

II.1.3 Các từ khóa trong Objective-C 11

II.2 Lập trình iPhone 12

II.2.1 Giới thiệu chung 12

II.2.1.1 Mac-OS 12

II.2.1.2 iPhone-OS 13

II.2.1.3 Hệ quản trị cơ sở dữ liệu SQlite 16

II.2.1.4 Các công cụ và môi trường lập trình iPhone 16

II.2.1.5 Môi trường yêu cầu 16

II.2.2 Các tool cần thiết 17

II.2.2.1 Xcode 17

II.2.2.2 Interface Builder 18

II.2.2.3 Instrument Memory Leak 18

II.2.2.4 SQlite Manager 19

II.2.2.5 iPhone Simulator 19

II.2.3 Các bước xây dựng một ứng dụng cho iPhone 20

II.2.3.1 Mô hình MVC 20

II.2.3.2 Xây dựng giao diện người dùng với Interface Builder 21

II.2.3.3 Xử lý sự kiện trên iPhone 23

II.2.3.4 Làm việc với SQLite 25

III Webservice 27

III.1 Giới thiệu 27

III.1.1 Đặc điểm 27

III.1.2 Đặc điểm 27

III.2 Nền tảng của Webservice 28

III.3 Kiến trúc của Webservice 28

III.4 Các hoạt động của Webservice 29

III.5 Các thành phần của Webservice 31

III.5.1 SOAP (Simple Object Acccess Protocol) 31

III.5.2 WSDL (Web Service Definition Language) 31

III.6 Webservice và Visual Studio 2008 32

III.6.1 Các bước xây dựng Webservice với Visual Studio 2008 32

III.6.2 Cách tạo một Web Service với Visual Studio 2008 33

III.6.3 Cách gọi và thực thi một Webservice từ Client 35

Trang 5

I.1 Phân tích yêu cầu đề tài 37

I.1.1 Môi trường vận hành 37

I.1.2 Ràng buộc về thiết kế và thực thi 37

I.1.3 Yêu cầu phi chức năng 38

I.1.4 Yêu cầu chức năng 39

I.2 Giải pháp cho đề tài 41

I.2.1 Mô hình ứng dụng 41

I.2.2 Giải pháp công nghệ 41

II Thiết kế và triển khai giải pháp 42

II.1 Sơ đồ chức năng của hệ thống 42

II.1.1 Chức năng trên Web Server 42

II.1.2 Sơ đồ chức năng trên iPhone 43

II.2 Diagram của bài toán 44

II.2.1 User-case chức năng Home: 44

II.2.2 Use-case chức năng Sổ tay: 44

II.2.3 Use-case chức năng xem Mẹo vặt 45

II.2.4 Use-case chức năng xem Tin tức 45

II.2.5 Use-case chức năng Setting 45

II.3 Thiết kế cơ sở dữ liệu 46

II.3.1 Cơ sở dữ liệu ở Client 46

II.3.1.1 Các bảng dữ liệu 46

II.3.1.2 Mô hình quan hệ dữ liệu phía client 51

II.3.2 Cơ sở dữ liệu trên Server 52

II.3.2.1 Các bảng dữ liệu 52

II.3.2.2 Mô hình quan hệ dữ liệu 56

II.4 Thiết kế Prototype và Screen Follow cho hệ thống 57

II.4.1 Prototypem Screen Follow cho mô đun “Trang chủ” 57

II.4.2 Prototypem Screen Follow cho mô đun “Thực đơn” 58

II.4.3 Prototypem Screen Follow cho mô đun “Mẹo vặt” 59

II.4.4 Prototypem Screen Follow cho mô đun “Tin tức” 59

II.4.5 Prototypem Screen Follow cho mô đun “Cài đặt” 60

II.5 Các thuật toán chính của chương trình 61

II.5.1 Thuật toán sắp xếp 61

II.5.2 Thuật toán tìm kiếm 61

TRIỂN KHAI VÀ CÀI ĐẶT CÁC MÔ ĐUN 62

I Mô đun trên iPhone 62

I.1 Mô hình hóa các mô đun 62

I.2 Triển khai các chức năng 62

I.2.1 Gói “Home” 62

I.2.2 Gói “Manual” 62

I.2.3 Gói “Tips” 63

I.2.4 Gói “News” 63

I.2.5 Gói “Setting” 63

I.2.6 Gói “Images” 64

I.2.7 Gói “Process” 64

Trang 6

III Chạy demo trên môi trường thật 65

III.1 Chạy trên iPhone 65

III.2 Web Server và Web Service 69

III.2.1 Web Server 69

III.2.2 Web Service 69

KẾT LUẬN 71

I Nhật xét chung 71

II Ưu điểm và hạn chế 71

II.1 Ưu điểm 71

II.2 Hạn chế 72

III Hướng phát triển 72

TÀI LIỆU THAM KHẢO 73

Trang 7

MỞ ĐẦU

LỜI MỞ ĐẦ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ụ di độngtại Việt Nam ngày càng tăng Cùng với sự phát triển của số lượng thuê bao di động

là sự đa dạng hoá các dịch vụ hướng đến thiết bị di động Ngày nay điện thoại diđộng không chỉ còn mang chức năng gọi điện hay nhắn tin thông thường mà còn làmột thiết bị giải trí, tra cứu thông tin rất tiện lợi Do đó, xây dựng các ứng dụngcho điện thoại di động đang là một yêu cầu tất yếu trong xu thế hiện nay Ngànhcông nghiệp phần mềm cho các thiết bị di động được xem như một mảnh đất màu

mỡ và hứa hẹn đem lại nhiều tỉ đô la doanh thu

Những hướng phát triển ứng dụng trên điện thoại di động phổ biến hiện nay

là sử dụng ngôn ngữ C++ trên nền hệ điều hành Symbian, J2ME và Objective-Ctrên iPhone Trong luận văn của chúng tôi, chúng tôi chọn nghiên cứu iOS trêniPhone vì đây là lĩnh vực khá mới mẽ và đang được ưu chuộng trên thị trường

Objective-C là ngôn ngữ lập trình đã xuất hiện từ rất lâu, nó được thiết kế vàphát triển từ năm 1980 Hiện tại, Objective-C lại trở nên phổ biến vì nó được Applechọn làm ngôn ngữ lập trình cho hệ thống Mac và iPhone Objective-C được thiết

kế bởi Brad Cox khi ông làm việc cho công ty Stepstone vào đầu những năm 1980.Objective-C được thiết kế để phục vụ mục đích lập trình hướng đối tượng Nó hoạtđộng giống như là một tập hợp các thành phần mở rộng rất mạnh mẽ của ngôn ngữ

C Objective-C kết hợp các đặc điểm ưu tú nhất của C và ngôn ngữ SmallTalk.Objective-C khá đơn giản để học và có đầy đủ các khả năng của một ngôn ngữ lậptrình hướng đối tượng Objective-C đơn giản và nhỏ gọn nhưng lại là một thànhphần mở rộng rất mạnh của ngôn ngữ chuẩn ANSI C Hầu hết các ngôn ngữ lậptrình hướng đối tượng cung cấp:

Trang 8

1 Một thư viện các Objects.

2 Các công cụ phát triển cần thiết

3 Hỗ trợ hướng đối tượng và các thư viện liên quan

Objective-C cũng cung cấp đầy đủ các thành phần trên Bạn có thể sử dụngObjective-C để phát triển một phần mềm hoàn thiện Vì những đặc tính ưu việt củaObjective-C, và cùng với mong muốn học hỏi lập trình trên điện thoại, nên nhómsinh viên làm đồ án đã chọn nó đề làm luận văn tốt nghiệp

Về chương trình ứng dụng, tính khả thi và thực tế đang được đề cao Chúngtôi nhận thấy xu hướng mở rộng các ứng dụng từ máy tính sang điện thoại đangđược chú trọng Việc chuyển từ máy tính sang điện thoại sẽ khiến sự tiện dụngtăng, số người sử dụng chắc chắn sẽ tăng nhanh vì đối với nhiều người chiếc điệnthoại di động dễ sử dụng hơn rất nhiều so với chiếc máy tính "phức tạp và khóhiểu"

Ứng dụng mà chúng tôi chọn để bước vào lĩnh vực khá mới mẽ này là ứngdụng sổ tay nấu ăn “iCooking” Ăn là nhu cầu không thể thiếu được của mỗi ngườichúng ta Do vậy công việc nấu ăn chiếm một vị trí rất quan trọng trong đời sốngthường ngày Lịch sử dân tộc Việt nam có từ trên 4.000 năm, trải qua bao nhiêu thử

thách và biến cố lịch sử của dân tộc, sự tồn tại của bánh dầy và bánh chưng ở mộtmức độ nào đó cũng nói lên sức sinh tồn của dân tộc, nói lên tính chất cổ truyềncủa kỹ thuật nấu ăn Việt Nam Chính từ tính chất cổ truyền này nó tạo nên phongcách độc đáo trong ăn uống của dân tộc Việt Nam

Việt Nam nằm trong vành đai nhiệt đới, trải dài 15 vĩ tuyến với khí hậu nhiệtđới gió mùa, lại có nhiều cao nguyên và vùng núi cao như Sapa, Tam Đảo, Đà Lạt,

… với khí hậu mang sắc thái ôn đới Vì tính đa dạng của khí hậu và thổ nhưỡngnên thực vật nói chung và rau quả nói riêng của nước ta rất phong phú, nhiệt đới có,cận nhiệt đới có, ôn đới cũng có Rau quả nước ta có quanh năm, mùa nào thức nấy,rải rác khắp nơi hoặc tập trung thành các vùng chuyên canh để tiêu thụ tại chỗ Bêncạnh đó với bờ biển dài có nhiều sông, rạch, ngòi là nguồn cung cấp thủy sản vô

Trang 9

tận không những đủ dùng trong nước mà còn đóng hộp để xuất khẩu Khí hậu ởnước ta không những thuận lợi cho việc phát triển cây trồng mà còn thuận lợi choviệc phát triển chăn nuôi gia súc (chủ yếu là gà, vịt, lợn, trâu, bò, dê, thỏ đượcphát triển tùy theo từng vùng) Xuất phát từ đặc điểm đó, ngoài việc sinh sống bằngnghề cày cấy, người Việt Nam còn sinh sống bằng nghề chày lưới, cho nên hai thứ

đồ ăn chủ yếu là gạo và cá Gạo có thể dùng để nấu cơm, làm bánh như gạo tẻ xay

ra để làm bún, gạo nếp dùng nấu sôi hoặc làm bánh Cá có thể đem chế biến vớinhiều hình thức kho, rán, nấu hấp, nướng, thậm chí còn để làm mắm Chính từ đặcđiểm đó đã tạo nên phong cách độc đáo trong ăn uống của người Việt Nam

Và từ lâu để lưu lại những giá trị văn hóa, nhưng công thức chế biến độc đáongười ta đã viết thành sách Vào những năm trước, khoa học kĩ thuật phát triểnnhững công thức nấu ăn được lưu trữ và sử dụng thông qua máy tính Đến hômnay, với sự bức phá vượt bật của thiết bị cầm tay, mà điển hình là những chiếcsmartphone Những công thức nấu ăn đó nay sẽ được tích hợp trên iPhone để dễdàng quản lý, sử dụng, chia sẻ mọi lúc mọi nơi

Luận văn mà chúng em trình bày gồm 5 phần chính:

1 Tổng quan về đề tài: Giới thiệu chung, các định hướng và kế hoạchnghiêu cứu

2 Cơ sở lí thuyết : giới thiệu nền tảng về mobile, lập trình iPhone,webservice và lý thuyết về nghiệp vụ

3 Phân tích và thiết kế hệ thống: Phân tích yêu cầu thực tế từ ngườidùng để đưa ra hướng thiết kế thích hợp Từng bước thiết kế ứngdụng

4 Triển khai và cài đặt ứng dụng : cài đặt ứng dụng lên điện thoại, càiđặt server và chạy demo trên môi trường thật

5 Kết luận: Đánh giá, tổng kết các kết quả đạt được và hướng phát triểntrong tương lai

Trang 10

CHƯƠNG I

TỔNG QUAN VỀ ĐỀ TÀI

Cùng với sự phát triển của các thiết bị di động và với xu thế di động hóa củacon người thì lập trình di động đang là một mảng rất phát triển trên thế giới với cácnền tảng như Symbian, Rim, Window Mobile hay mới đây là Android và iOS

Một chiếc điện thoại bây giờ không chỉ là “Nghe – Gọi” mà nó cnf có thểlướt Web, Game 3D, Chat, Email, ứng dụng văn phòng, quản lý từ xa,… Có thể nóigần như tất cả các tiện ích trên máy tính điện tử đang dần tích hợp trên thiết bị diđộng

Và một tương lai không xa việc tìm ra sự khác biệt của một thiết bị di độngthong minh và chiếc máy tính thông thường sẽ trở nên không còn ý nghĩa

II Định hướng về công nghệ

Với bài toán đặt ra như trên, chúng tôi đã đưa ra được định hướng về công nghệ và từ đó lập ra kế hoạch nghiên cứu và giả pháp phát triển ứng dụng

 Về công nghệ :

 Tìm hiểu hệ điều hành MAC-OS và iOS

 Objective-C và lập trình iPhone

o Lý thuyết về nền tảng, kiến trúc

o Cài đặt môi trường

o Các bước xây dựng ứng dụng hoàn chỉnh

 Tìm hiểu SQLite

 Webservice, Aspx và LinQ trong Visual Studio 2008

o Lý thuyết về Webservice, Aspx

o Môi trường và công cụ

o Các bước xây dụng 1 Webservice

 Cách kết hợp giữa ứng dụng trong Iphone và Webservice

Trang 11

 Tìm hiểu XML

 SOAP và các phương thức truyền dữ liệu qua mạng

 Về hệ thống :

 Tìm hiểu và phân tích các nhu cầu của người dùng

 Phân tích và thiết kế hệ thống nghiệp vụ phù hợp

o Đáp ứng được yêu cầu quản lý cơ bản

o Đáp ứng được cách thức của một tài liệu về nấu ăn

o Có thể cập nhật, nâng cấp hệ thống

 Đánh giá khả năng ứng dụng và mở rộng cho sản phẩm

o Yêu cầu khi cài đặt

o Đánh giá tính khả thi

o Đánh giá khả năng mở rộng cho sản phẩm

 Về quy trình sản xuất và ứng dụng:

 Áp dụng quy trình sản xuất phần mềm theo chuẩn CMMi5

III Định hướng và kế hoạch nghiên cứu

III.1 Định hướng nghiên cứu

Nhằm mục đích nghiên cứu, tìm hiểu về công nghệ lập trình di động,webservice và một số công nghệ khác,chúng tôi đã xây dựng ứng dụng sổ tay nấu ăntrên iphone với mong muốn tạo ra một sản phẩm hoàn chỉnh từ những công nghệ

mà mình đã nghiên cứu được đem lại sự tiện lợi cho người sử dụng

Với mục tiêu hướng đến người dùng là những bạn trẻ, năng động, thích nấu

ăn, chúng tôi đã xây dựng giao diện ứng dụng thân thiện với người dùng với nhữngtính năng cơ bản và hữu ích nhất

 Quản lý món ăn theo từng danh mục, nhóm

Trang 12

 Các mẹo vặt, bí quyết khi nấu ăn.

 Giới thiệu các món đặc sản, nhà hàng

 Quảng cáo

III.2 Kế hoạch nghiên cứu

Với yêu cầu và mục đích như trên, chúng em triển khai nghiên cứu đề tàitheo kế hoạch sau:

Trang 13

Hình 1: Kế hoạch nghiên cứu đề tài.

Trang 14

Symbian

Symbian là hệ điều hành được viết và sử dụng cho một số điện thoại diđộng cao cấp của Nokia là chủ yếu

Android

Là ngôi sao mới nổi, được phát triển bởi Google theo hướng mã nguồn

mở Android được xây dựng trên Linux Kernel, rất dễ phát triển và họclập trình khá nhanh Ngôn ngữ nền tảng là Java, Android được dự đoán

sẽ ngang với iOS và thâm chí hơn thế

Trang 15

.II Objective-C và lập trình iPhone

.II.1 Giới thiệu về Objective-C

.II.1.1. Giới thiệu chung

Objective-C là ngôn ngữ lập trình đã xuất hiện từ rất lâu, nó được thiết kế vàphát triển từ năm 1980 Hiện tại, Objective-C lại trở nên phổ biến vì nó được Applechọn làm ngôn ngữ lập trình cho hệ thống Mac và iPhone

Objective-C được thiết kế bởi Brad Cox khi ông làm việc cho công tyStepstone vào đầu những năm 1980 Objective-C được thiết kế để phục vụ mụcđích lập trình hướng đối tượng Nó hoạt động giống như là một tập hợp các thànhphần mở rộng rất mạnh mẽ của ngôn ngữ C Objective-C kết hợp các đặc điểm ưu

tú nhất của C và ngôn ngữ SmallTalk Objective-C khá đơn giản để học và có đầy

đủ các khả năng của một ngôn ngữ lập trình hướng đối tượng

Objective-C đơn giản và nhỏ gọn nhưng lại là một thành phần mở rộng rấtmạnh của ngôn ngữ chuẩn ANSI C Objective-C cung cấp đầy đủ các khả năng lậptrình hướng đối tượng nhưng lại được thực thi theo cách khá đơn giản và dễ dàng.Hầu hết các ngôn ngữ lập trình hướng đối tượng cung cấp:

- Một thư viện các đối tượng

- Các công cụ phát triển cần thiết

- Hỗ trợ hướng đối tượng và các thư viện liên quan

C cung cấp đầy đủ các thành phần trên Có thể sử dụng

Objective-C để phát triển một phần mềm hoàn thiện Apple đã chọn Objective-Objective-C làm ngônngữ lập trình chính cho hệ thống máy Mac và iphone

Là ngôn ngữ hướng đối tượng nên Objective-C giải quyết các vấn đề lậptrình dựa trên khái niệm các Object Nó bao gồm 3 phần:

- Interface: Interface của một lớp thông thường được định nghĩa trong fileheader với đuôi *.h Nó chính là phần khai báo của một lớp

- Implementation: Mã nguồn của chương trình được viết trong phầnimplementation của lớp và được định nghĩa trong một file có đuôi *.m Đây

là phần định nghĩa của lớp

- Instantiation: Sau khi khai báo và định nghĩa một lớp, chúng ta có thể thụcthể hóa lớp này bằng việc cấp phát bộ nhớ cho new object của lớp đó

Tóm lại: Objective là:

Trang 16

- Thành phần mở rộng của ngôn ngữ lập trình C.

- Là ngôn ngữ lập trình hướng đói tượng đơn giản nhưng mạnh mẽ

- Là ngôn ngữ được Apple sử dụng để phát triển các ứng dụng cho hệ thống máyMac và Iphone

- Nó là thành phần mở rộng của chuẩn ANSI C vì vậy các chương trình viếtbằng C của framework này sẽ không bị mất đi tính năng nào và người dùngđược hưởng các lợi thế của ngôn ngữ C Với ngôn ngữ này, người dùng cóthể lựa chọn cả lập trình hướng đối tượng và lập trình thủ tục khi cần thiết

- Nó đơn giản và dễ học bởi cú pháp khá ngắn gọn giúp cho lập trình viên đạtđược hiệu quả mong muốn mà không gặp nhiều khó khăn

- Nó rất năng động so với các ngôn ngữ mở rộng khác dựa trên C Trình biêndịch đóng vai trò rất quan trọng trong việc bảo vệ thông tin liên quan đếncác đối tượng để sử dụng lúc run time

- Nó là một ngôn ngữ mạnh bởi vì các quyết định có thể đưa ra lúc biên dịch

sẽ được trì hoãn cho tới khi chương trình chạy

- Sự năng động của Objective-C cũng có lợi thế đáng kể:

 Nó hỗ trợ ràng buộc đóng và mở tạo ra một cấu trúc đơn giản đối vớigiao diện tương tác người dùng

 Nó cho phép phát triển các công cụ phát triển phức tạp Một giao diệncho hệ thống run time tạo điều kiện cho việc tiếp cận các thông tin lúcrun time giúp cho việc monitor ứng dụng viết bằng Objective-C

.II.1.3. Các từ khóa trong Objective-C

Objective-C là ngôn ngữ mở rộng của ngôn ngữ lập trình C, do đó chươngtrình được viết bằng C hay C++ hoàn toàn có thể được biên dịch như Objective-C

Trang 17

Ngoài các từ khóa dùng trong C và C++, Objective-C cung cấp thêm một số từkhóa khác Để tránh xung đột với từ khóa của ngôn ngữ khác, Objective-C dùng

“@” đứng trước mỗi từ khóa Những từ khóa này được gọi là Compiler Directives.Các lệnh chỉ thị được sử dụng để khai báo, định nghĩa các lớp, các thể loại, các phươngthức:

@interface Sử dụng để khai báo một lớp (class) hay

một giao diện (interface)

@implementation Dùng để định nghĩa một lớp (class) hay

một thể loại (category)

thức (formal protocol)

(category) hoặc phương thức (protocol).Bảng 1: Các lệnh sử dụng để khai báo trong Objective-C

Các lệnh chỉ thị được sử dụng để xác định khả năng truy cập của các thực thể.

(Mặc định là @protected)

thực thể chỉ trong lớp mà nó được khaibáo

@protected Giới hạn phạm vi truy cập của một biến

thực thể chỉ trong lớp khai báo nó vàcác lớp khác kế thừa lớp này

biến này

Bảng 2: Các lệnh xác định khả năng truy cập trong Objective-C

Các lệnh chỉ thị liên quan đến việc xử lý ngoại lệ (Exception handling)

này có thể phát sinh ngoại lệ

Trang 18

@catch Bắt khối lệnh được thực thi nếu ngoại lệ phát

sinh (ngoại lệ bên trong khối mã lệnh @tryngay trước đó)

@finally Một khối mã lệnh sẽ được thực thi không cần

biết có ngoại lệ xảy ra trong @try hay khôngBảng 3: Các lệnh sử dụng để xử lý ngoại lệ trong Objective-C

.II.2 Lập trình iPhone

.II.2.1 Giới thiệu chung

.II.2.1.1. Mac-OS

Hình 2: Hệ điều hành MAC OS

Mac OS X là một hệ điều hành có lõi là Unix, giao diện đồ họa được công tyApple tạo ra.Từ năm 2002 Mac OS X đựơc đính kèm trong tất cả các máy tínhMacintosh Nó thừa kế từ hệ điều hành Mac OS 9, hệ điều hành chính thức củaApple ra đời năm 1999 Mac OS X là một hệ điều hành Unix sử dụng giao diện đồhọa được xây dựng trên công nghệ phát triển bởi NeXT vào nửa cuối năm 1980,sau đó được Apple mua lại năm 1996 Từ phiên bản thứ 6 của Mac OS X Leopard10.6.5 trở đi mỗi phiên bản của Mac đều được chứng nhận tiêu chuẩn Unix 03 –chạy trên hệ thống phần cứng intel Phiên bản cho server đầu tiên Mac OS X Server1.0 được đưa ra năm 1999 cùng với phiên bản cho máy tính để bàn Mac OS X 10.0

“Cheetah” theo sau vào ngày 24 tháng 3 năm 2001 Bản phát hành của Mac OS Xđược đặt tên big-cats ( những họ mèo lớn) Ví dụ: Mac OS X 10.6 được đặt tên là

“Snow Leopard” Phiên bản cho server Mac OS X server có kiến trúc tuơng tự nhưmáy tính để bàn bao gồm các công cụ quản lý người dùng, cung cấp dịch vụ truycập mạng Các công cụ được nạp sẵn như thư điện tử, máy chủ Samba, máy chủ

Trang 19

LADP, tên miền máy chủ…, và những công cụ khác Nó có sẵn trong hệ thống phầncứng máy chủ XServer của Apple, tuy nhiên có thể hoạt động trong hầu hết cácmẫu đựợc bán trên thị trường của Apple.

Mac OS X xây dựng trên lõi Macintosh (Macintosh kernel), chứa các thànhphần của FreeBSD và NetBSD, là bổ sung của Unix được đưa vào NeXTSTEP tạonên cốt lõi của hệ điều hành Mac OS X NeXTSTEP làm hệ điều hành hướng đốitượng được Steve Jobs của công ty NeXTSTEP phát triển, sau đó ông rời Applenăm 1985 Trong khi Steve Jobs tạm rời Apple, Apple đã cố gắng tạo ra thế hệ OStiếp theo thông qua Taligent, Copland với dự án Gershwin với một chút thành công

Cuối cùng, NeXTSTEP được gọi là OPENSTEP được lựa chọn là nền tảngcho hệ điều hành tiếp theo của Apple, Apple đã mua đứt NeXT Steve Jobs trở lạiApple đảm nhiệm vị trí CEO tạm thời và chính thức sau này, ông theo dõi sựchuyển đổi lập trình thân thiện OPENSTEP vào trong một hệ thống có thể đượcchấp nhận bởi thị trường người dùng cá nhân và chuyên gia của Apple Dự án nàyđầu tiên được gọi là Rhapsody sau đó đổi tên thành Mac OS X

.II.2.1.2. iPhone-OS

a Giới thiệu về iPhone- OS

iOS là hệ điều hành cho thiết bị di động của Apple Ban đầu nó được phát

triển cho iPhone, về sau nó hỗ trợ hầu hết các thiết bị di động của Apple như: iPodTouch, iPad, Apple TV iOS được giới thiệu với iPhone vào 9/01/2007 tạiMacworld Conference & Expo Apple không bán bản quyền iOS cho bất kỳ nhàphát triển phần cứng nào khác

Tính đến 14/11/2010, kho ứng dụng của iOS trên Apple Store có khoảng300.000 ứng dụng và kho ứng dụng này luôn liên tục được cập nhật

Trang 20

b Kiến trúc iPhone-OS

Hình 3: Kiến trúc iOS

- Cocoa Touch

 Multi-Touch UI Framework: Gói thư viện xử lý việc tương tác giao

diện với người dùng

 Core Motion Framework: Gói thư viện xử lý việc và xử lý dữ liệu từ

các thiết bị

 View Hierarchy Framework: Gói thư viện xử lý việc lấy nội dung

văn bản

 Localization Framework: Gói thư viện dùng để xác định tên quốc gia

có sử dụng các thiết bị di động trên nền tản iOS

 Controls Framework: Gói thư viện quản lý các control trên iOS.

 Alets Framework: Gói thư viện xử lý các sự kiện cảnh báo cho iOS.

 Web View UI Framework: Gói thư viện xử lý các vấn đề về Web.

 Map kit Framework: Gói thư viện về bản đồ.

 Image Picker UI Framework: Gói thư viện hỗ trợ xử lý đối tượng

Picker

 Camera Framework: Gói thư viện hỗ trợ tương tác thiết bị camera và

iOS

- Media

 Core Audio Framework: Gói thư viện quản lý,cung cấp dịch vụ về

audio cho iOS

 OpenAL Framework: Gói thư viện audio cho game, website trên

iOS

 Audio Mixing Framework: Gói thư viện audio cho các ứng dụng xử

lý âm thanh trên iOS

Trang 21

 Audio Recording Framwork: Gói thư viện hỗ trợ việc ghi âm cho

iOS

 Video playback Framwork: Gói thư viện hỗ trợ chơi game, xem

film toàn trên iOS

 JPEG, PNG, TIFF: Các định dạng tập ảnh được hỗ trợ trên iOS.

 Address Book UI Framework: Hỗ trợ các thư viện để thiết kế ứng

dụng liên quan đến Address Book

 Networking Framework: Gói thư viện hỗ trợ xử lý mạng, lập trình

các ứng dụng về mạng trên iOS

 File Access Framework: Gói thư viện hỗ trợ xử lý tập tin trên iOS.

 SQLite Framework: Gói thư viện hỗ trợ, xử lý dữ liệu với SQLite.

 Net Services Framework: Gói thư viện hỗ trợ các dịch vụ mạng trên

iOS

 Threading Framework: Gói thư viện hỗ trợ xử lý luồng trên iOS.

 Message UI Framework: Gói thư viện hỗ trợ gởi thư điện tử.

 Power Management: Tiện ích hỗ trợ quản lý nguồn điện đối với các

thiết bị di động sử dụng công nghệ iOS

 Keychain Access: là một tiện ích cho phép người sử dụng xem các

mật khẩu, các giấy chứng nhận, các dữ liệu trong bộ chìa khóa họ tạo

Trang 22

.II.2.1.3 Hệ quản trị cơ sở dữ liệu SQlite

a Giới thiệu

SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) tương tự như Mysql,PostgreSQL Đặc điểm của SQLite là gọn, nhẹ, đơn giản Chương trình gồm 1 fileduy nhất vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởiđộng mà có thể sử dụng ngay Dữ liệu database cũng được lưu ở một file duy nhất.Không có khái niệm user, password hay quyền hạn trong SQLite database

SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thìSQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ Với cácđặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm v v và

là sự lưa chọn phù hợp cho những người bắt đầu học database

b Đặc điểm

- Cơ sở dữ liệu dạng quan hệ (RDBMS), hỗ trợ chuẩn SQL-92

- Sử dụng dưới dạng thư viện nhúng, không chạy ở theo kiểu server độc lập

- Hỗ trợ các ngôn ngữ phổ biến: C, C++, C#, Basic, Python, PHP, Java

- Không cần chỉ định kiểu dữ liệu (SQLite is typeless)

- Có các công cụ quản lý bằng đồ hoạ

- Download & sử dụng miễn phí

c Phiên bản

Hiện tại SQLite có 2 nhánh khác nhau là version 2.x và version 3.x, do cấu tạo

dữ liệu nội bộ khác nhau nên tên lệnh và tên thư viện của từng nhánh khác nhau.Lệnh sqlite làcủa version 2.x, sqlite3 là lệnh của version 3.x Địa chỉ trang chủhttp://sqlite.org.

.II.2.2. Các công cụ và môi trường lập trình iPhone

II.2.2.1 Môi trường yêu cầu

- Hệ điều hành Mac OS version 10.x

- iOS SDK version 3.x trở lên

Trang 23

- Các tool cần thiết khác như : Xcode,Interface Builder,Instrument MemoryLeak,iPhone Simulator,SQLite Manager.

II.2.2.2 Các tool cần thiết

Xcode

Hình 4 : Công cụ lập trình Xcode

Xcode là một tập hợp các công cụ để phát triển phần mềm trên Mac OS,xcode được phát triển bởi Apple Phiên bản mới nhất là 3.2, được đóng gói trongphiên bản Mac OS 10.6, tuy nhiên nó không mặc định cài sẵn mà có thể cài từDVD hoặc tải xuống từ trang chủ Apple Phiên bản hiện tại là 3.2.5 bao gồm iOSSDK 4.2.Bộ công cụ Xcode, giống như Mac OS X nó có nguồn gốc từ NeXT.Trước ngày 23 tháng 10 năm 2003 phát hành cho Mac OS 10.3, Apple đã giới thiệu

bộ công cụ này là công cụ phát triển

Các thành phần: Ứng dụng chính của bộ IDE này là Xcode, Xcode chứ hầu

hết các tài liệu phát triển của Apple, và Interface Builder một công cụ phát triểngiao diện đồ hoạ thân thiện Bộ Xcode bao gồm phiên bảo đã chỉnh sửa của phầnmềm miễn phí GCC xCode hỗ trợ các ngôn ngữ lập trình: C, C++, Objective-C,Java, AppleScript, Python và Ruby với một khối các mẫu lập trình Phần mềm củahãng thứ 3 được thêm vào có thể hỗ trợ GNU Pascal, Free Pascal, Ada, Per, C#,Haskell và D

Hình 5: Giao diện chính của Xcode 3.2.5

Trang 24

Interface Builder

Công cụ hỗ trợ thiết kế giao diện cho các ứng dụng iOS với các control trựcquan

Hình 6: Interface Builder

c Instrument Memory Leak

Công cụ kiểm soát và tối ưu hóa bộ nhớ khi phát triển một ứng dụng trên iphonetrước khi đưa lên sử dụng trên máy thật

Hình 7: Instrument Memory Leak

Trang 25

Hình 9: iPhone Simulator.

Trang 26

.I.1.1 Các bước xây dựng một ứng dụng cho iPhone

a Giới thiệu mô hình MVC

Phương pháp thiết kế MVC bắt nguồn từ việc phát triển giao diện ngườidùng trong ngôn ngữ lập trình Smalltalk, đây là một trong những phương pháp thiết

kế thành công nhất trong các phương pháp thiết kế hướng đối tượng Hiện nay,MVC được dùng rộng rãi trong nhiều hệ thống phần mềm hướng đối tượng, bất kểđược viết bằng ngôn ngữ hướng đối tượng nào

MVC là viết tắt của Model-View-Controller Phương pháp thiết kế MVC(MVC Design Pattern) là phương pháp chia nhỏ một ứng dụng nhiều lớp hoặc chianhỏ phần giao diện người dùng (user interface) của một ứng dụng thành ba thànhphần chính là Model, View và Controller

- Model : Là một đối tượng hoặc tập hợp các đối tượng biểu diễn cho phần

dữ liệu của chương trình, ví dụ các dữ liệu được lưu trong cơ sở dữ liệu (CSDL)hay từ các hệ thống ứng dụng khác (như mail )

- View : Là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn

hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa , để người dùng có thểthêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống

- Controller :Là phần điều khiển toàn bộ logic về hoạt động của giao diện,

tương tác với thao tác của người dùng (từ chuột, bàn phím và các thiết bị ngoại vikhác) và cập nhật, thao tác trên dữ liệu theo đầu vào nhận được và điều khiển việcchọn phần “Hiển thị” thích hợp để truyền dữ liệu tới người dùng

Với phương pháp thiết kế này, các chức năng hiển thị, chức năng logic điềukhiển và chức năng truy cập dữ liệu của chương trình được chia làm các phần táchbiệt

Ưu điểm của mô hình này là ứng dụng được phát triển một cách độc lập, không bị phụ thuộc giữa các thành phần, nên việc thêm hoặc xóa một module trong ứng dụng này khá dễ dàng và nhẹ nhàng hơn so với việc phát triển ứng dụng theo

mô hình cũ

b Mô hình MVC trong lập trình ứng dụng iPhone

Hình 10: Mô hình MCV trong lập trình iOS.

Mô hình MCV là mô hình chính được sử dụng trong lập trình iOS.Trong thực tế,một ứng dụng có thể bao gồm nhiều đối tượng Model,đối tượng View và

Trang 27

đối tượng Controller khác nhau.Một đối tượng controller sẽ tương tác với đối tượng Model thông qua các methods và properties giao tiếp của đối tượng

Model.Việc giao tiếp trong mô hình MVC được thực hiện thông qua

- Interface Builder tương tác với source code thông qua Outlet và Action

 Outlet: kết nối giữa các item trên View với source code tương ứng, đượckhai báo trong source code như sau:

@property(nonatomic, retain)IBOutlet id someElement;

 Action: liên kết item với hành động tương ứng được khai báo trong source code

-(Action)someAction:(id)sender;

b Các bước xây dựng giao diện

- Tạo một project mới từ Xcode

Mở Xcode và chọn File >> New Project và chọn View Based Project đặt tên

là SampleProject

Hình 11: Tạo một project mới từ Xcode

Sau khi tạo project sẽ có được 3 file mới SampleProject.h, SampleProject.m và

Trang 28

- Tạo Outlet và Action

Mở file SampleProject.h và sửa lại như sau:

- Tạo giao diện và liên kết với source code

Mở file SampleProject.xib sẽ hiển thị màn hình Interface Builder

Hình 12: Tạo giao diện

 Kéo thả vào 1 Button trên View và liên kết với Outlet với source code

Trang 29

Hình 13: Liên kết đối tượng và Outlet

 Gán sự kiện vào button

Hình 14: Gán sự kiện vào button

.I.1.1.3 Xử lý sự kiện trên iPhone

Trong lập trình iPhone,việc xử lý sự kiện được thực thi bởi lớp UIControl,nhờ

đó chúng ta có thể sử dụng nhiều phương thức quan trọng trong iOS SDK thôngqua lớp này UIControl là lớp con của UIView,chứa các đối tượng User interfacecontrol quan trọng như UIButton,UISlider,UISwitch,UISegmentedControl…và cácthuộc tính cơ bản của nó như: enabled,hightlighted,selected…

Ngoài ra khi sử dụng lớp UIControl chúng ta có thể truy cập trực tiếp đến các

sự kiện touch events thông qua các phương thức :

beginTrackingWithTouch:withEvent:, continueTrackingWithTouch:withEvent, endTrackingWithTouch:withEvent…và xử lý các sự kiện khác bằng cách gọi các phương thức Action hoặc Target

- Sử dụng phương thức addTarget:Action:forControlEvents:

Trang 30

Phương thức này được sử dụng khi khai báo và khởi tạo một đối tượng trong Xcode bằng code hoặc bằng cách sử dụng Interface Builder nhưng muốn thay đổi

xử lý trong quá trình chạy ứng dụng.Việc sử dụng các phương thức [init] hoặc [itemWithType] sẽ cho phép khởi tạo và tùy chỉnh một đối tượng mà không cần sử dụng Interface Builder và khai báo Outlet cho đối tượng đó

Bên cạnh đó việc gắn kết xử lý sự kiện cho đối tượng được thực hiện đơn giảnqua code mà không cần phải khai báo (IBAction) cho mỗi hàm và thực hiện tham chiếu từ Interface Builder.Cách sử dụng phương thức

addTarget:Action:forControlEvents: khá đơn giản và thuận tiện cho việc chỉnh

sửa,bổ sung sau này

- Sử dụng một IBAction

Đây là phương pháp được sử dụng một khi đối tượng đã được tạo trong

Interface Builder và theo đó chúng ta không thể thay đổi phương thức xử lý trong quá trình chạy ứng dụng.Việc kết nối giữa sự kiện của một đối tượng với một phương thức xử lý được thực hiện trên giao diện trực quan của Interface Builder Đối với một đối tượng ngoài việc phải tạo trên Interface Builder thì cần phải khai báo Outlet cho đối tượng đó trong source code

Ví dụ :

UIButton *sampleButton;

@propertise (nonatomic, retain) IBOutlet UIButton *sampleButton;

Việc khai báo IBOutlet là rất quan trọng,giúp Interface Builder có thể nhận diện được đối tượng được khai báo trong source code

Để liên kết một sự kiện của đối tượng với một hàm xử lý trong source thì phải khai báo IBAction cho hàm tương ứng

Ví dụ : -(IBAction) sampleButtonPressed: (id)sender;

Trang 31

Từ Interface Builder chúng ta có thể tùy chọn kết nối sự kiện của đối tượng với một IBAction bằng cách kéo thả trực quan.

Hình 15: Kết nối một sự kiện của đối tượng với một phương thức

.I.1.1.4 Làm việc với SQLite

SQLite là một hệ quản trị cơ sở dữ liệu không lệ thuộc máy chủ.Cơ sở dữ liệu SQLite được chứa trong một tập tin *.sqlite Với tính chất gọn nhẹ này, SQLite rất phù hợp với các chương trình vừa hoặc nhỏ,những chương trình chạy trên thiết bị đòi hỏi sự tối ưu về bộ nhớ như điện thoại di động,máy tính bảng,Pocket PC… Khiphân phối sản phẩm, nhà phát triển không cần phải cài đặt hệ quản trị cơ sở dữ liệu lên máy người sử dụng, mà chỉ việc đóng gói tập tin *.sqlite kèm theo chương trình

Việc cài đặt SQLite được thực hiện một cách đơn giản,chỉ cần cài đặt plug-inSqlite Manager của Firefox.Tạo một database mới,cách thao tác giống như trong các hệ quản trị cơ sở dữ liệu khác

Cách sử dụng Sqlite trong lập trình iphone

- Add thư viện Sqlite từ <SDK Folder>/usr/lib vào thư mục framework của project

- Import <sqlite3.h> vào lớp thao tác trực tiếp với database

- Kết nối với sqlite

sqlite3 *database;

NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *path = [documentsDirectory

stringByAppendingPathComponent:@"database.sqlite"];

//kết nối database

sqlite3_open([path UTF8String], &database) == SQLITE_OK)

Trang 32

- Tạo đối tượng

Giả sử có 1 một table tb_Area

@property (nonatomic, retain) NSString *areaName;

@property (nonatomic) NSInteger areaID;

- Khởi tạo đối tượng

AreaObject *areaObj = [[AreaObject alloc] init];

- Thực thi câu lệnh sql

if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) ==

SQLITE_OK) {

//thực thi câu lệnh query

while (sqlite3_step(statement) == SQLITE_ROW) {

//kiểm tra row có tồn tại hay không

if (sqlite3_column_text(statement, 1) != NULL) {

//Thực hiện xử lý set giá trị cho Object

[areaObj setAreaName:[NSString stringWithUTF8String:(char

Trang 33

.II Webservice

.II.1 Giới thiệu

.II.1.1 Định nghĩa

Một Web service được định nghĩa là một tập các phương thức có thể được định

vị thông qua địa chỉ URL, các phương thức này được công bố trên hệ thống mạng

và được dùng như những khối cơ bản để xây dựng một ứng dụng phân tán (Trích sách: Developing XML Web service using Microsoft Visual Studio NET) Nói một cách đơn giản hơn, web service là tập hợp các phương thức có thể được các ứng dụng khác triệu gọi từ xa (RPC- Remote Procedure Call) để hình thành nên một hệứng dụng phân tán

.II.1.2 Đặc điểm

- Dịch vụ Web 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 Ví dụ, đặt Web server cho ứng dụng trênmột máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máytính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bìnhthường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điềuhành này

- Phần lớn kĩ thuật của Dịch vụ Web được xây dựng dựa trên mã nguồn mở vàđược phát triển từ các chuẩn đã được công nhận, ví dụ như XML

- Một Dịch vụ Web bao gồm có nhiều mô-đun và có thể công bố lên mạngInternet

- 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ững lĩnhvự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 khi được triển khai sẽ hoạt động theo mô hình client-server

Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ nhưPHP, Oracle Application server hay Microsoft.Net…

- Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống

có thể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc

và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếmcác thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé,thông tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thươngmại như giá cả, tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịchtrực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe…

- Các ứng dụng có tích hợp dịch vụ Web đã không còn là xa lạ, đặc biệt trongđiều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùngvới sự lớn mạnh của Internet Bất kì một lĩnh vực nào trong cuộc sống cũng

Trang 34

có thể tích hợp với dịch vụ Web, đây là cách thức kinh doanh và làm việc cóhiệu quả bởi thời đại ngày nay là thời đại của truyền thông và trao đổi thôngtin qua mạng Do vậy, việc phát triển và tích hợp các ứng dụng với dịch vụWeb đang được quan tâm phát triển là điều hoàn toàn dễ hiểu.

.II.2 Nền tảng của Webservice

Webservice được phát triển trên cơ sở của HTTP, SOAP, XML

Hình 16: Nền tảng Web Service

.II.3 Kiến trúc của Webservice

Dịch vụ Web gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol),WSDL (Web Service Description Language) và UDDI (Universal Description,Discovery, and Integration) Hình 1 mô tả chồng giao thức của dịch vụ Web, trong

đó UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả cụthể trong WSDL Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server,sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web Các thông điệp SOAP đượcgửi đi chính xác bởi HTTP và TCP/IP

Hình 17: Chồng giao thức của dịch vụ Web

Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính được sửdụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác vớinhững ứng dụng hay dịch vụ khác Chồng giao thức này có 4 thành phần chính:

Trang 35

- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữacá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ạng XML

để 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ộtngôn ngữ 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 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ệncông việc này

.II.4 Các hoạt động của Webservice

Hình 18: Mô hình client – server của Web Service

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ọihàm đến server thông qua các gói tin HTTP request và kết quả 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

(Simple Object Access Protocol) Đây thực chất cũng chỉ là một ngôn ngữđược định nghĩa bên trên ngôn ngữ XML có sẵn

- WSDL (Web Service Definition Language): Đây là file XML chứa các

Trang 36

dụng sẽ phải dựa vào nội dung file này để biết Web service hỗ trợ nhữnghàm này và nhận những tham số tương ứng, kết quả trả về như thế nào Nếuchúng ta phát triển Web service trong môi trường J2ME thì không nhất thiếtphải hiểu rõ cấu trúc về file WSDL, vì trong bộ công cụ Wireless Toolkit củaSun đã cung cấp sẵn công cụ Stub Generator Chức năng của bộ công cụ này

là đọc file WSDL và phát sinh thành những lớp java tương ứng cho nhà pháttriển ứng dụng

- UDDI(Universal 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ững thông tin về webservice của mình cho cộng đồng các nhà phát triển ứng dụng Người dùng

sẽ dựa vào những thông tin này để sử dụng web service trong ứng dụngriê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ại một nơi nào đó trên hệ thống mạng Trước tiên, client sẽ truyvấn đến các mẫu tin UDDI, có thể theo tên, loại hay một thông tin riêng biệtnào đó Khi đã xác định được web service cần tìm, client có thể lấy thôngtin về địa chỉ của tài liệu WSDL của web service này dựa trên mẫu tinUDDI Tài liệu WSDL sẽ mô tả cách thức liên lạc với web service, địnhdạng của gói tin truy vấn và phản hồi theo cũng được mô tả bằng XMLschema Dựa vào những thông tin này client có thể tạo những gói tin SOAPtương ứng để liên lạc với server

Ứ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 19: Client truy suất nhiều Web Service cùng lúc

.II.5 Các thành phần của Webservice

.II.5.1. SOAP (Simple Object Acccess Protocol)

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

Trang 37

- Một “bì thư” (envelope) để quản lý các thông tin mở rộng và mang tính điềukhiển.

- Một chuẩn mã hóa quy định cách thể hiện thông tin trong envelope

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,FTP… Tuy nhiên hiện nay chỉ mới có HTTP/HTTPS đượcxem như giao thức chuẩn để trao đổi gói tin SOAP Việc sử dụng SOAP như mộtgiao thức trao đổi dữ liệu chuẩn khiến web service có khả năng hoạt động trênnhiều môi trường lập trình khác nhau như Java, NET,…

.II.5.2. WSDL (Web Service Definition Language)

WSDL định nghĩa cách mô tả Web service theo cú pháp tổng quát của XML,bao gồm các thông tin:

- Tên dịch vụ

- Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của Web service

- Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện củaWeb service cộng với tên cho giao diện này)

- Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phươngthức kết nối) và phần thi hành mô tả thông tin truy xuất CSDL Cả hai phầnnày sẽ được lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ

và tập tin thi hành dịch vụ Giao diện của một Web service được miêu tảtrong phần này đưa ra cách thức làm thế nào để giao tiếp qua Web service.Tên, giao thức liên kết và định dạng thông điệp yêu cầu để tương tác vớiWeb service được đưa vào thư mục của WSDL

WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp Web service qua Internet Một client khi kết nối tới Web service có thể đọc WSDL để xác định những chức năng sẵn có trên server Sau đó, client có thể sử dụng SOAP để lấy ra chức năng chính xác có trong WSDL

.II.6 Webservice và Visual Studio 2008

.II.6.1 Các bước xây dựng Webservice với Visual Studio 2008

Có 4 giai đoạn chính để xây dựng một web service là xây dựng, triển khai, tiến hành và quản lý:

- Giai đoạn xây dựng bao gồm phát triển và chạy thử ứng dụng web service,

Trang 38

- Giai đoạn triển khai bao gồm công bố định nghĩa service, xây dựng WSDL,

và triển khai mã thực thi của web service

- Giai đoạn tiến hành bao gồm tìm kiếm và gọi thực thi web service

- Giai đoạn quản lý bao gồm quản lý và quản trị ứng dụng web service

Để xây dựng một dịch vụ Web, chúng ta cần hiểu được những việc phải làm vànên bắt đầu từ đâu Có 3 cách tiếp cận chủ yếu để xây dựng nên một dịch vụ Web,

có thể từ một ứng dụng đã có (bottom-up); từ một định nghĩa dịch vụ, WSDL đểphát sinh một ứng dụng mới (top-down) hoặc có thể từ một nhóm các dịch vụ Webhiện có, kết hợp lại với nhau để tạo nên các chức năng mới hoặc mở rộng thêmchức năng Những hướng tiếp cận này dựa trên những gì mà chúng ta đã có, tùythuộc vào yêu cầu của hệ thống, trong đó tối đa việc sử dụng lại các chức năng, cácthành phần, môđun đã được xây dựng

Qui trình xây dựng một dịch vụ Web bao gồm các bước sau:

1 Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ cungcấp (sử dụng ngôn ngữ Java chẳng hạn)

2 Tạo WSDL cho dịch vụ

3 Xây dựng SOAP server

4 Đăng ký WSDL với UDDI registry để cho phép các client có thể tìmthấy và truy xuất

5 Client nhận file WSDL và từ đó xây dựng SOAP client để có thể kết nốivới SOAP server

6 Xây dựng ứng dụng phía client (chẳng hạn sử dụng Java) và sau đó gọithực hiện dịch vụ thông qua việc kết nối tới SOAP server

Lựa chọn một ngôn ngữ, xây dựng các tiến trình nghiệp vụ và chúng ta bắt đầutạo nên một dịch vụ Web như ý muốn Sau đó là cung cấp dịch vụ Web này trênInternet

.II.6.2. Cách tạo một Web Service với Visual Studio 2008

- Bước 1:

Trang 39

Hình 20: Tạo một Web Service với Visual Studio 2008 (1)

- Bước 2:

Hình 21: Tạo một Web Service với Visual Studio 2008 (2)

- Chạy chương trình ta được

Ngày đăng: 19/03/2019, 21:51

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

w