Android là tên một nền tảng mở cho thiết bị di động của Google dựa trên kernel Linux 2.6,gồm hệ điều hành,những phần mềm trung gian(middleware) và một số ứng dụng cơ bản mà người sử dụng cần đến.Bộ công cụ phát triển phần mềm Android SDK cung cấp các công cụ và các giao diện lập trình ứng dụng API cần thiết để xây dựng và phát triển các ứng dụng trên nền Android bằng ngôn ngữ lập trình Java.Androi là một tổ hợp với 3 thành phần cơ bản:Hệ điều hành mã nguồn mở và hoàn toàn miễn phí cho thiết bị di động.Nền tảng phát triền mã nguồn mở cho việc tạo ra các ứng dụng trên thiết bị di động Android.Các thiết bị,cụ thể là thiết bị di động chạy hệ điều hành Android và các ứng dụng của nó.
Trang 1Mục lục
Chương 1: Mở đầu 1
Chương 2: Lập trình ứng dụng trên nền Android 3
2.1 Android là gì ? 3
2.2 Lập trình ứng dụng Android: 6
2.2.1 Các thành phần cơ bản của 1 ứng dụng Android: 6
2.2.2 Chu trình sống của một ứng dụng Android: 7
2.2.3 Chu trình sống của một activity: 8
Chương 3: Vẽ đồ thị trên ứng dụng Android 11
3.1 Khảo sát một số thư viện vẽ đồ thị trên Android 11
3.1.1 AchartEngine: 11
3.1.2 GraphView: 12
3.1.3 aiCharts: 12
3.1.4 Flot: 13
3.1.5 droidcharts: 14
3.2 Lựa chọn: 15
Chương 4: Web service và giao tiếp giữa client và server 16
4.1 Web service 16
4.1.1 Giới thiệu về Web service: 16
4.1.1.1 Khái niệm: 16
4.1.1.2 Các đặc điểm của web service: 16
4.1.1.3 Các yếu tố nền tảng của web service: 16
4.1.1.3.1 XML: 16
Trang 24.1.1.3.2 WSDL: 17
4.1.1.3.3 UDDI: 17
4.1.1.3.4 SOAP: 17
4.1.1.4 Mô hình hoạt động của web service: 18
4.1.2 Tạo web service bằng Eclipse lấy dữ liệu từ cơ sở dữ liệu SQL 19
4.1.2.1 Thiết kế cơ sở dữ liệu 19
4.1.2.1.1 Bảng hose 20
4.1.2.1.2 Bảng company_list 21
4.1.2.2 Kết nối tới cơ sở dữ liệu SQL 23
4.1.2.3 Tạo web service bằng Eclipse 24
4.2 Giao tiếp giữa client và server 25
4.2.1 Ksoap2-Android là gì ? 25
4.2.2 Sử dụng ksoap2-Android để lấy dữ liệu từ server: 25
Chương 5: Xây dựng và triển khai ứng dụng 27
5.1 Xây dựng chương trình: 27
5.1.1 Các chức năng chính của chương trình: 27
5.1.2 Thiết kế server: 28
5.1.3 Thiết kế client: 30
5.1.4 Thiết kế chức năng: 31
5.1.4.1 Xem thông tin mã cổ phiếu: 32
5.1.4.2 Xóa mã cổ phiếu khỏi danh sách: 32
5.1.4.3 Vẽ biểu đồ cho mã cổ phiếu: 33
5.1.4.4 Cập nhật thông tin mã cổ phiếu: 34
Trang 35.1.4.5 Xóa toàn bộ mã cổ phiếu khỏi danh sách: 34
5.1.4.6 Tìm kiếm mã cổ phiếu: 34
5.1.4.7 Thêm mã cổ phiếu vào danh sách: 35
5.1.4.8 Xem tin tức: 36
5.2 Cài đặt: 36
5.3 Kiểm tra: 37
5.3.1 Kiểm tra chức năng tương tác giữa người dùng với các mã cổ phiếu mà người dùng quan tâm 37
5.3.2 Kiểm tra chức năng thể hiện các tin tức trên giao diện người dùng và việc tương tác với người dùng 37
5.3.3 Kiểm tra chức năng tìm kiếm các mã cổ phiếu có trên thị trường của chương trình 37
5.4 Thử nghiệm & Kết quả: 37
Chương 6: Tổng kết 42
6.1 Kết luận 42
6.2 Hướng phát triển 42
Trang 4CHƯƠNG 1: MỞ ĐẦUTrong những năm gần đây,cùng với sự phát triển mạnh mẽ,sự hội nhập nhanhchóng của nền kinh tế Việt Nam là sự phát triển vượt bậc của thị trường chứng khoántrong nước.Thị trường chứng khoán Việt Nam ngày càng phát triển và lớn mạnh,là môitrường đầu tư hấp dẫn đối với những người có vốn nhàn rỗi,những người kinh doanhchứng khoán.Nhu cầu cập nhật thông tin chứng khoán mọi lúc mọi nơi ngày càng trởthành một nhu cầu thiết yếu của nhiều người.
Bên cạnh đó,điện thoại di động ngày càng phổ biến,gần như là vật bất ly thân,đặcbiệt là ngày càng xuất hiện nhiều hệ điều hành dành cho di động với nhiều chức năng vàcải tiến.Trong đó,nổi bật lên là hệ điều hành Android do Google phát triển,Android tuy lànền tảng mới ra đời, nhưng số lượng người sử dụng điện thoại chạy hệ điều hành Androidngày càng trở nên đông đúc
Nhận thấy số lượng phần mềm về chứng khoán trên Android còn chưa nhiều,đặcbiệt là về chứng khoán trong nước,việc ra đời một phần mềm thông tin chứng khoán giúpngười sử dụng cập nhật thông tin chứng khoán mọi lúc mọi nơi,theo dõi các tin tức chứngkhoán một cách thuận tiện và nhanh chóng là hoàn toàn khả thi.Chương trình sẽ hoạtđộng trên các máy chạy Android như một client,các thông tin sẽ được gửi truy vấn đếnserver để lấy về,thông tin sẽ luôn được server tự động cập nhật
Phạm vi của khóa luận chỉ tập trung vào phần client,xây dựng chương trình vớichức năng chính cho phép người sử dụng tìm kiếm,theo dõi,cập nhật thông tin về các mã
cổ phiếu mà người dùng quan tâm,theo dõi các tin tức về thị trường chứng khóan trongnước,ở các sàn giao dịch lớn như hose,upcom,…
Khóa luận gồm các nội dung như sau:
Chương 1 Mở đầu: giới thiệu đề tài khóa luận,ý nghĩa và tính khả thi của đề tài Chương 2 Lập trình ứng dụng trên nền Android: trình bày các kiến thức cơ bản
về Androi và cách xây dựng 1 ứng dụng trên Android
Chương 3 Vẽ đồ thị trên ứng dụng Android: trình bày kiến thức và các tài liệu về
vẽ biểu đồ trên hệ điều hành Android
Trang 5Chương 4 Web service và giao tiếp client-server: trình bày kiến thức cách xây
dựng một web service đơn giản sử dụng dữ liệu từ cơ sở dữ liệu SQL và cách thức giaotiếp giữa client và server
Chương 5 Xây dựng và triển khai ứng dụng: trình bày các vấn đề liên quan đến
xây dựng và triển khai ứng dụng,một số kết quả đạt được khi chạy thử ứng dụng
Chương 6 Tổng kết: trình bày kết quả đạt được,hướng mở rộng phát triển chương
trình
Trang 6CHƯƠNG 2: LẬP TRÌNH ỨNG DỤNG TRÊN NỀN ANDROID
Chương này giới thiệu một cách sơ lược về hệ điều hành Android,các thành phầncấu tạo,cấu trúc tổng quát của Androi và các thành phần cơ bản của một ứng dụng đượcxây dựng trên nền Android.Nắm được một số hiểu biết nhất định về hệ điều hành Android
và định hình được hướng phát triển một ứng dụng Android trong quá trình thực hiện khóaluận
2.1 ANDROID LÀ GÌ ?
Android là tên một nền tảng mở cho thiết bị di động của Google dựa trên kernelLinux 2.6,gồm hệ điều hành,những phần mềm trung gian(middleware) và một số ứngdụng cơ bản mà người sử dụng cần đến.Bộ công cụ phát triển phần mềm Android SDKcung cấp các công cụ và các giao diện lập trình ứng dụng API cần thiết để xây dựng vàphát triển các ứng dụng trên nền Android bằng ngôn ngữ lập trình Java.Androi là một tổhợp với 3 thành phần cơ bản:
- Hệ điều hành mã nguồn mở và hoàn toàn miễn phí cho thiết bị di động.
- Nền tảng phát triền mã nguồn mở cho việc tạo ra các ứng dụng trên thiết bị di
- Nhân của hệ điều hành dựa trên kernel Linux cung cấp giao diện lập trình mức
thấp cùng với các tính năng cốt lõi quản lý bảo mật,quản lý tiến trình,quản lý bộnhớ,các trình điều khiển phần cứng…đã được tối ưu hóa cho thiết bị di động
- Thư viện nguồn mở cho việc phát triển ứng dụng,bao gồm
SQLite,Webkit,OpenGL
Trang 7- Mỗi tiến trình được dùng để chạy một ứng dụng Android,bao gồm máy ảo Dalvik
và các thư viện lõi cung cấp chức năng cụ thể.Các tiến trình được thiết kế để chạyhiệu quả trên các thiết bị di động
- Bộ công cụ phát triển phần mềm được dùng để tạo ra các ứng dụng,bao gồm các
công cụ,tài liệu,các plug-in
Một số đặc trưng của Android SDK:
- Hỗ trợ Wifi,EDGE,3G,Bluetooth(phụ thuộc thiết bị phần cứng).
- Công nghê GSM – GSM Telephony (phụ thuộc nền tảng phần cứng).
- Tích hợp trình duyệt web,cung cấp mã nguồn mở bộ phát triển trình duyệt web
HTML5 WebKit
- Tăng tốc đồ họa,cung cấp các thư viện đồ họa 2D,3D sử dụng OpenGL ES 2.0.
- Nền tảng ứng dụng giúp sử dụng lại hoặc thay thế các thành phần của ứng dụng
tích hợp sẵn trong thiết bị
- Cấu trúc dữ liệu lưu trữ SQLite.
- Sử dụng các widget,thư mục,hình ảnh để tùy chỉnh giao diện màn hình chủ.
- Kho lưu trữ các dữ liệu dùng để chia sẻ giữa các ứng dụng.
- Hỗ trợ Camera,GPS,compass,accelerometer(phụ thuộc thiết bị phần cứng).
- Hỗ trợ đa phương tiện: hỗ trợ phần lớn các định dạng âm thanh,hình ảnh,video
phổ biến như MP3,AAC,JPG,PNG,MPEG4,H.264
Ngoài một số những đặc tính trên,có một số đặc trưng mà chỉ có Android mới cónhư:
- Ứng dụng Google Map: Google Map trên điện thoại di động đã trở nên rất phổ
biến,Android đã tích hợp Google Map như một thành phần ứng dụng cho phépngười sử dụng dễ dàng trên điện thoại
Trang 8- Tất cả các ứng dụng được tạo ra đều ngang hàng,có vị trí như nhau,Android không
phân biệt giữa các ứng dụng được phát triển bởi chính Google và các bên thứba.Điều này mang lại cho người dùng khả năng thay đổi giao diện thiết bị mộtcách mạnh mẽ bằng cách các ứng dụng của bên thứ ba mà chưa từng có một hệđiều hành nào làm được trước đây
- Các widget giao diện màn hình chủ,các thư mục,hình nền,ô tìm kiếm nhanh.
- Giao tiếp chia sẽ dữ liệu và liên tiến trình: bằng cách sử dụng Intent và Content
Providers,Android cho phép các ứng dụng trao đổi thông tin,chia sẻ dữ liệu,thựcthi các tiến trình.Để giảm bớt rủi ro một cách hiệu quả,mỗi tiến trình ứng dụng,dữliệu lưu trữ đều được để private ngoại trừ những dữ liệu chia sẻ với các ứng dụngkhác
Cấu trúc của Google Android:
Hình 1.Cấu trúc tổng quát của Android
Trang 9Có 5 tầng cơ bản trong hệ điều hành Android: Application Framework,AndroidRuntime,Native Libraries,Linux Kernel mỗi tầng làm việc đều nhờ sự giúp đỡ của tầngdưới.
- Tầng Application: bao gồm tất cả các ứng dụng có trong thiết bị chạy Android
như: phone,contact,game,browser,… và một số ứng dụng chạy ngầm.Người dùng
có quyền gỡ bỏ hay cài đặt các ứng dụng tùy thích ở tầng này
- Tầng Application Framework: tầng Google xây dựng cho các nhà phát triển xây
dựng ứng dụng của họ trên Android,bằng cách gọi các API có sẵn mà Google đãviết để sử dụng các tính năng của phần cứng mà không cần hiểu cấu trúc bên dưới
- Tầng Native Libraries: bao gồm một số các thư viện C/C++ được sử dụng bởi các
thành phần khác nhau của hệ thống Android,một số thư viện cơ bản như: System
C Library,SQLite, Media Libraries,3D Libraries,…
- Tầng Runtime: mỗi ứng dụng Android chạy trên một tiến trình riêng của máy ảo
Dalvik(vitural machine).Dalvik được viết để chạy nhiều máy ảo cùng lúc mộ cáchhiệu quả trên thiết bị di động
- Tầng Linux Kernel: đây là nhân của hệ điều hành Android,mọi xử lý hệ thống đều
phải thông qua tầng này.Linux Kernel cung cấp các trình điều khiển thiết bị phầncứng như: camera,USB,bluetooth…Kernel hoạt động như một lớp trừu tượng giữaphần cứng và phần mềm còn lại của hệ thống
2.2 LẬP TRÌNH ỨNG DỤNG ANDROID:
Để lập trình ứng dụng Android cần phải có bộ Android SDK và JDK 5 hoặc6,ngoài ra phải phải có một IDE như Eclipse,Netbeans,…Khóa luận sử dụng Eclipse đểphát triển ứng dụng do đây là IDE phổ biến với nhiều tính năng hỗ trợ lập trình Android
2.2.1 CÁC THÀNH PHẦN CƠ BẢN CỦA 1 ỨNG DỤNG ANDROID:
Một ứng dụng Android được xây dựng từ các thành phần cơ bản sau:
- Activities: một activity đại diện cho 1 giao diện người dùng trực quan,ở đó người
dùng có thể thực hiện những gì họ muốn.Ví dụ một chương trình SMS có thể baogồm các activity như 1 activity thể hiện list các số liên lạc,1 activity thể hiện một
Trang 10trang dùng để viết tin nhắn và gửi đi,…Mặc dù tập hợp các activity lại mới tạo nênmột ứng dụng giao diện cho người sử dụng nhưng mỗi activity vẫn hoạt động độclập với những cái còn lại.Thông thường có 1 activity được đánh dấu là activity đầutiên và được gọi đầu tiên khi ứng dụng được khởi chạy.Mỗi activity có một cửa sổlàm việc để sử dụng,thường mỗi cửa sổ này lấp đầy màn hình,những nội dung trựcquan ở mỗi cửa sổ được cung cấp bởi một hệ thống các viewnhư:button,textfield,textview,radio button,checkbox,menu item,…
- Services: không có giao diện trực quan nhưng nó có thể chạy ngầm định trên thiết
bị và không bị giới hạn thời gian hoạt động.Ví dụ 1 service giúp thiết bị chơi nhạctrong khi người sử dụng làm công việc khác
- Broadcast receivers: các bộ thu phát là thành phần nhận và tương tác với các thông
báo được đưa ra.Ví dụ như thông báo pin yếu,thông báo người dùng vừa đổi ngônngữ hiển thị.Các bộ thu phát không có giao diện sử dụng,tuy nhiên chúng có khởiđộng 1 ứng dụng khi có phản hồi thông tin mà chúng nhận được
- Content providers: là 1 tập hợp các dữ liệu đặc biệt của ứng dụng này mà các ứng
dụng khác có thể dùng chung.Dữ liệu có thể lưu trữ ở file hệ thống,trong cơ sở dữliệu SQLite hay bất cứ chỗ nào lưu trữ được trên thiết bị
- Intent: nền tàng để truyền tải các thông báo.Intent được sử dụng để gửi các thông
báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc mong muốn.Ví
dụ như khi mở 1 trang web,phải gửi đi 1 intent để tạo 1 activity mới hiển thị trangweb đó
- Notification: đưa ra các cảnh báo mà không làm cho các activity ngừng hoạt động.
Activity,Broadcast receivers,content providers,services là những thành phần chínhcấu thành nên ứng dụng Android.Trong đó,activity là thành phần quan trọng nhất và đóngvai trò chính trong xây dựng ứng dụng Android
2.2.2 CHU TRÌNH SỐNG CỦA MỘT ỨNG DỤNG ANDROID:
Android có cơ chế quản lý các tiền trình theo chế độ ưu tiên,các tiến trình có độ ưutiên thấp sẽ bị Android giải phóng mà không hề cảnh báo trước nhằm đảm bảo tàinguyên.Các tiến trình với độ ưu tiên:
Trang 111 Foreground process: là tiến trình của ứng dụng hiện thời đang được người dùngtương tác.
2 Visible process: là tiến trình của ứng dụng mà activity đang hiển thị với ngườidùng
3 Service process: là tiến trình service đang thực thi
4 Background process: là tiến trình của ứng dụng mà các activity của nó không hiểnthị với người dùng
5 Empty process: tiến trình không có bất cứ một thành phần nào đang hoạt động
2.2.3 CHU TRÌNH SỐNG CỦA MỘT ACTIVITY:
Hệ điều hành Android quản lý các activity theo dạng stack: khi một activity mớiđược khởi tạo,nó sẽ được xếp lên đầu của stack và là activity được thực thi,các activitytrước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi activity mới này được giải phóng
Activity bao gồm 4 trạng thái:
- Active: activity đang được hiển thị trên màn hình.
- Paused: activity vẫn hiển thị nhưng không thể tương tác được.
- Stop: activity bị thay thế hoàn toàn bởi activity mới.
- Killed: khi hệ thống thiếu bộ nhớ,nó 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 hay paused cũng có thể bị giải phóng và khi cácactivity này được hiển thị lại thì được khởi động lại hoàn toàn và phục hồi lạitrạng thái trước đó
Trang 12Hình 2.Chu trình sống của 1 activity.Vòng đời của một activity bao gồm 3 vòng chính:
- Entire lifetime: từ phương thức onCreate() đến onDestroy()
- Visible lifetime: từ phương thức onStart() đến onStop()
Trang 13- Foreground lifetime: từ phương thức onResume() đến onPause().
Các phương thức của một activity:
- onCreate(): sẽ được gọi khi lần đầu activity được tạo.Đây là phương thức dùng để
khởi tạo activity.Khi gọi phương thức onCreate(),Android sẽ truyền một đối tượngchứa trạng thái hoạt động nào đó đã được lưu của activity khi được gọi trước đó
- onRestart(): được gọi sau khi activity đã bị stop trước đó,trước khi nó được bắt
đầu trở lại
- onStart(): được gọi trước khi activity xuất hiện trên màn hình.Khi phương thức
này hoàn thành,nếu activity được hiển thị trên màn hình,điều khiển sẽ đượcchuyển cho onResume(),nếu activity không hiển thị trên màn hình vì lý do nàođó,điều khiển sẽ được chuyển cho onStop()
- onResume(): được gọi ngay sau onStart() nếu activity được hiển thị trên màn
hình,onResume() cũng được gọi khi activity nhường quyền lại cho một activitykhác,khi activity đó kết thúc,lúc đó sẽ được hiển thị lại trên màn hình
- onPause(): được gọi khi hệ điều hành ưu tiên activity khác,để activity đó đươcj
hiển thị.Ở thời điểm này,activity sẽ không xuất hiện trên màn hình
- onStop(): được gọi khi activity không còn được hiển thị nữa,và đã bị destroy.
- onDestroy(): nơi activity có thể thực hiện bất kì việc gì trước khi bị destroy.
Khi xây dựng activity cần viết lại phương thức onCreate() để thực hiện quá trìnhkhởi tạo,các phương thức khác có cần viết lại hay không tùy theo yêu cầu lập trình
Trang 14CHƯƠNG 3: VẼ ĐỒ THỊ TRÊN ỨNG DỤNG ANDROID
Chương này tập trung khảo sát một số thư viện vẽ đồ thị trên hệ điều hànhAndroid.Qua đó tìm ra một thư viện thích hợp nhất cho chương trình,cụ thể phục vụ chochức năng vẽ biểu đồ cho mỗi mã cổ phiếu
3.1 KHẢO SÁT MỘT SỐ THƯ VIỆN VẼ ĐỒ THỊ TRÊN ANDROID.
3.1.1 ACHARTENGINE:
Thư viện biểu đồ cho các ứng dụng Android,hỗ trợ các loại biểu đồ: biểu đồ đườngthẳng,biểu đồ thời gian,biểu đồ tròn,biểu đồ cột,…với đồ họa tương đối đẹp và dễ càiđặt,sử dụng trong lập trình.Mỗi loại biểu đồ có nhiều tùy chỉnh như: biểu đồ cột có 2 loại
là default và stacked,biểu đồ đường thẳng cũng gồm 2 loại khác nhau….Tuy nhiên nhượcđiểm của thư viện này là biểu đồ được sinh ra gắn với một intent,không cho phép canthiệp tùy chỉnh giao diện như việc thêm các button,text view, vào giao diện biểu đồ đểthực hiện ý tưởng riêng của người lập trình.Ví dụ như thêm các radio button để thực hiệncác chức năng hiển thị biểu đồ theo tuần,tháng,năm
Hình 3.Hai loại biểu đồ cột AchartEngine
Trang 15Hình 4.Hai loại biểu đồ đường thẳng AchartEngine.
3.1.2 GRAPHVIEW:
Là một view tùy chỉnh dễ dàng tạo ra các biểu đồ bằng cách cung cấp một mảnggiá trị,biểu đồ tự động được hiển thị ra một cách đầy đủ.Tuy nhiên đồ họa không đượcđầu tư nhiều so với các thư viện biểu đồ khác,quá đơn giản,sơ sài,không đáp ứng đượcyêu cầu của ứng dụng hướng tới xây dựng biểu đồ có đồ họa dễ nhìn
Hình 5.Biểu đồ cột và đường thẳng GraphView
3.1.3 AICHARTS:
Trang 16Thư viện được thiết kể và tối ưu cho Android,hỗ trợ các môi trường phát triểnAndroid,dễ dàng cài đặt,cung cấp đầy đủ tài liệu cần thiết và có các ví dụ mẫu về cách sửdụng thư viện.Liên kết dữ liệu dễ dàng,nhanh chóng,cho phép lấy dữ liệu từ một số địnhdạng phổ biến như:XML,database,…Tuy nhiên,đây là thư viện có bản quyền với giá khácao nên khó có điều kiện để sử dụng thư viện này vào việc xây dựng ứng dụng.
Hình 6.Biểu đồ cột aiCharts
3.1.4 FLOT:
Là thư viện Javascript cho jQuery.Nó tạo ra biểu đồ dựa trên dữ liệu từ phía máykhách(client).Trọng tâm của thư viện là tính dễ sử dụng,tất cả các tùy chọn đều mởrộng,giao diện đẹp và có các tính năng tương tác với biểu đồ như zoom in,zoom out,theodõi chuột,…Do mọi công việc từ nhập dữ liệu đến vẽ biểu đồ đều được thực hiện trongfile html nên việc sử dụng rất dễ dàng,chỉ cần gọi 1 webview trong Android với đườnglink đến file html để hiển thị ra màn hình
Trang 17Hình 7.Biểu đồ Flot.
3.1.5 DROIDCHARTS:
Là một công cụ hỗ trợ vẽ biểu đồ cho điện thoại sử dụng hệ điều hành Android,sửdụng đồ họa của Android.Đây là một nhánh của thư viện biểu đồ Java JfreeChart đượcphát triển cho nền tảng Android.Việc cài đặt và sử dụng thư viện này khá dễ dàng tronglập trình.Việc thêm dữ liệu cho biểu đồ tương đối dễ dàng với các hàm được tích hợp sẵntrong thư viện,tuy nhiên đồ họa đơn giản,đặc biệt các nhãn hiển thị theo các trục x,ykhông tự động căn chỉnh khi dữ liệu hiển thị quá nhiều,ví dụ như khi hiển thị biểu đồ 1tuần,do dữ liệu ít nên các nhãn sẽ hiển thị ngày tháng năm đầy đủ,nhưng khi chuyển sang
Trang 18biểu đồ 1 tháng,hay 1 năm,dữ liệu sẽ nhiều,các nhãn do không tùy chỉnh được sẽ hiển thị
Trang 19CHƯƠNG 4: WEB SERVICE VÀ GIAO TIẾP GIỮA CLIENT VÀ SERVER
Chương này giới thiệu về web service,khái niệm,các đặc điểm,thành phần cấu tạocủa một web service,cách xây dựng một web service bằng Eclipse IDE,cách thức giaotiếp giữa client và server thông qua web service.Phục vụ cho việc xây dựng liên lạcclient-server của chương trình
và truyền dữ liệu với máy client.Khi phía máy client gửi yêu cầu truy vấn,phía serverkiểm tra yêu cầu và trả lời yêu cầu dữ liệu của client bằng cách truyền dữ liệu dựa trênchuẩn SOAP
4.1.1.2 Các đặc điểm của web service:
- Webservice cho phép client và server tương tác được với nhau trong những môitrường khác nhau
- Web service được xây dựng dựa trên mã nguồn mở và được phát triển từ cácchuẩn đã được công nhận
- Webservice bao gồm nhiều mô đun và có thể đưa lên mạng internet
- Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server
4.1.1.3 Các yếu tố nền tảng của web service:
4.1.1.3.1 XML:
Trang 20Là một chuẩn mở do W3C(World Wide Web Consortium) đưa ra cách thức mô tả
dữ liệu,được sử dụng định nghĩa các thành phần dữ liệu trên trang web.XML có cấu trúchoàn toàn giống HTML.Tất cả các dữ liệu giao tiếp sẽ được chuyển sang định dạng thẻXML
4.1.1.3.2 WSDL:
Định nghĩa cách mô tả dịch vụ web theo cú pháp 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 dùng khi gọi các hàm của dịch vụ Web
- Loại thông tin:tham số,những kiểu dữ liệu
Một WSDL gồm hai phần: phần giao diện mô tả giao diện và phương thức kết nối
và phần thi hành mô tả thông tin truy xuất CSDL đượ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ụ.WSDL được sử dụng kết hợpvới XML,SOAP để cung cấp dịch vụ web qua internet,client có thể đọc WSDL để xemcác chức năng có trên server và dùng SOAP để thực hiện các chức năng đó
4.1.1.3.3 UDDI:
UDDI được dùng để xác định các thông tin về các web service được cung cấp bởicác nhà cung cấp dịch vụ,cho phép client truy tìm và nhận thông tin được yêu cầu khi sửdụng dịch vụ web.UDDI cung cấp 3 loại thành phần khác nhau:
- White pages(trang trắng): chứa thông tin liên hệ và các định dạng chính yếu củadịch vụ web,như địa chỉ,tên giao dịch, cho phép các đối tượng khác xác định đượcdịch vụ
- Yellow pages(trang vàng): chứa thông tin mô tả dịch vụ web theo những loại khácnhau,cho phép các đối tượng thấy được web service theo từng loại
- Green pages(trang xanh): chứa thông tin kỹ thuật mô tả các hành vi chức năng củaweb service
4.1.1.3.4 SOAP:
Trang 21Giao thức truy xuất đối tượng đơn giản,trao đổi thông tin giữa các ứng dụng thôngqua mạng internet,thông thường sử dụng giao thức HTTP.SOAP được xây dựng bởiMicrosoft và phần mềm Userland,được thiết kế đơn giản và dễ mở rộng,không bị ràngbuộc bởi bất kỳ ngôn ngữ lập trình hoặc công nghệ nào,có cấu trúc như XML,sử dụngcác tài liệu XML như những thông điệp trao đổi,SOAP được xem như là cấu trúc xươngsống của các ứng dụng phân tán xây dựng từ nhiều ngôn ngữ,hệ điều hành khác nhau.Đặcbiệt,SOAP có thể dễ dàng vượt qua tường lửa giúp cho việc liên lạc trở nên dễ dàng hơn.
Cấu trúc một thông điệp SOAP:
Hình 9.Cấu trúc một thông điệp SOAP
- Phần tử gốc SOAP envelope: phần tử bao trùm nội dung thông điệp,khai báo vănbản XML như là một thông điệp SOAP
- Phần tử đầu trang SOAP header: chứa các thông tin tiêu đề cho trang,những đầumục có thể mang dữ liệu chứng thực,thông tin mã hóa,…
- Phần tử khai báo nội dung chính trong thông điệp SOAP body: chứa các thông tinyêu cầu và phản hồi
4.1.1.4 Mô hình hoạt động của web service:
Trang 22Hình 10.Mô hình hoạt động của web service.
Trong mô hình hoạt động của mỗi web service,bao gồm 3 thành phần:
- Các nhà cung cấp dịch vụ service provider,xây dựng và cài đặt đối tượng dịch vụlên một web server và cung cấp bản mô tả dịch vụ để hướng dẫn mọi người cáchkhai thác,ngôn ngữ sử dụng cho các bản mô tả dịch vụ là SDL với cấu trúc cúpháp của XML
- Các nhà khai thác dịch vụ service requester,xem xét các bản mô tả dịch vụ của nhàcung cấp,dựa vào đó xây dựng các lớp trung gian truy xuất đối tượng dịch vụ,thiết
kế giao diện cho ứng dụng
- Những người dùng cuối,truy cập trang web của nhà khai thác dịch vụ,sử dụng mộtcách gián tiếp dịch vụ web của các nhà cung cấp
4.1.2 TẠO WEB SERVICE BẰNG ECLIPSE LẤY DỮ LIỆU TỪ CƠ SỞ DỮ LIỆU
SQL.
4.1.2.1 Thiết kế cơ sở dữ liệu.
Mô hình dữ liệu tổng thể của cơ sở dữ liệu stock: