Mụ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: 7
2.2.1 Các thành phần cơ bản của 1 ứng dụng Android: 7
2.2.2 Chu trình sống của một ứng dụng Android: 8
2.2.3 Chu trình sống của một activity: 9
Chương 3: Vẽ đồ thị trên ứng dụng Android 12
3.1 Khảo sát một số thư viện vẽ đồ thị trên Android. 12
3.1.1 AchartEngine: 12
3.1.2 GraphView: 13
3.1.3 aiCharts: 14
3.1.4 Flot: 14
3.1.5 droidcharts: 15
3.2 Lựa chọn: 16
Chương 4: Web service và giao tiếp giữa client và server 17
4.1 Web service. 17
4.1.1 Giới thiệu về Web service: 17
4.1.1.1 Khái niệm: 17
4.1.1.2 Các đặc điểm của web service: 17
4.1.1.3 Các yếu tố nền tảng của web service: 17
4.1.1.3.1 XML(eXtensible Markup Language): 17
4.1.1.3.2 WSDL(Web Service Description Language): 18
4.1.1.3.3 UDDI(Universal Description,Discovery,and Integration): 18
4.1.1.3.4 SOAP(Simple Object Access Protocol): 19
4.1.1.4 Mô hình hoạt động của web service: 19
4.1.2 Tạo web service bằng Eclipse lấy dữ liệu từ cơ sở dữ liệu SQL. 20
4.1.2.1 Thiết kế cơ sở dữ liệu. 20
4.1.2.1.1 Bảng hose. 21
4.1.2.1.2 Bảng company_list. 22
4.1.2.2 Kết nối tới cơ sở dữ liệu SQL. 24
4.1.2.3 Tạo web service bằng Eclipse. 25
4.2 Giao tiếp giữa client và server. 26
4.2.1 Ksoap2-Android là gì ? 26
4.2.2 Sử dụng ksoap2-Android để lấy dữ liệu từ server: 26
Chương 5: Xây dựng và triển khai ứng dụng 29
5.1 Xây dựng chương trình: 29
5.1.1 Các chức năng chính của chương trình: 29
5.1.2 Thiết kế server: 30
5.1.3 Thiết kế client: 32
5.1.4 Thiết kế chức năng: 33
5.1.4.1 Xem thông tin mã cổ phiếu: 34
5.1.4.2 Xóa mã cổ phiếu khỏi danh sách: 34
5.1.4.3 Vẽ biểu đồ cho mã cổ phiếu: 35
5.1.4.4 Cập nhật thông tin mã cổ phiếu: 36
5.1.4.5 Xóa toàn bộ mã cổ phiếu khỏi danh sách: 36
5.1.4.6 Tìm kiếm mã cổ phiếu: 36
5.1.4.7 Thêm mã cổ phiếu vào danh sách: 37
5.1.4.8 Xem tin tức: 38
5.2 Cài đặt: 38
5.3 Kiểm tra: 39
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. 39
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. 39
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. 39
5.4 Thử nghiệm & Kết quả: 40
Chương 6: Tổng kết 44
6.1 Kết luận. 44
6.2 Hướng phát triển. 44
54 trang |
Chia sẻ: netpro | Lượt xem: 3394 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Khóa luận Phần mềm thông tin chứng khoán trên nền Android (Client), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng cùng với các phần mềm của nó.
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
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ạy hiệ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ép người sử dụng dễ dàng trên điện thoại.
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ột cá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ực thi 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ụng khác.
Cấu trúc của Google Android:
Hình 1.Cấu trúc tổng quát của Android.
Có 5 tầng cơ bản trong hệ điều hành Android: Application Framework,Android Runtime,Native Libraries,Linux Kernel..mỗi tầng làm việc đều nhờ sự giúp đỡ của tầng dướ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ách hiệ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ần cứng như: camera,USB,bluetooth…Kernel hoạt động như một lớp trừu tượng giữa phầ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ặc 6,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ể bao gồ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 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ên một ứng dụng giao diện cho người sử dụng nhưng mỗi activity vẫn hoạt động độc lập với những cái còn lại.Thông thường có 1 activity được đánh dấu là activity đầu tiê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ực quan ở mỗi cửa sổ được cung cấp bởi một hệ thống các view như: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ạc trong 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ôn ngữ 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ị trang web đó.
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ính cấu thành nên ứng dụng Android.Trong đó,activity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng dụng Android.
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ó độ ưu tiê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ài nguyên.Các tiến trình với độ ưu tiên:
Foreground process: là tiến trình của ứng dụng hiện thời đang được người dùng tương tác.
Visible process: là tiến trình của ứng dụng mà activity đang hiển thị với người dùng.
Service process: là tiến trình service đang thực thi.
Background process: là tiến trình của ứng dụng mà các activity của nó không hiển thị với người dùng.
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 activity trướ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ác activity 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ại trạng thái trước đó.
Hì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().
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ượng chứ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ẽ được chuyể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 activity khá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ình khở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.
Chươ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ành Android.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ụ cho chứ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 đồ đường thẳ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 can thiệ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ện cá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.
Hì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ảng giá 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 được yê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:
Thư viện được thiết kể và tối ưu cho Android,hỗ trợ các môi trường phát triển Android,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ố định dạ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áy khá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,theo dõ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 trong file html nên việc sử dụng rất dễ dàng,chỉ cần gọi 1 webview trong Android với đường link đến file html để hiển thị ra màn hình.
Hì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 được phá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 trong lậ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ẵn trong 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,y khô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 đồ 1 tuầ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 biể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ị đè lên nhau.
Hình 8.Biểu đồ droidchart.
3.2 Lựa chọn:
Sau một thời gian tìm hiểu và cài đặt,sử dụng,khóa luận sử dụng thư viện Flot để phục vụ cho chức năng vẽ biểu đồ giá cả và khối lượng mỗi mã cổ phiếu do có nhiều ưu điểm vượt trội hơn các thư viện khác: đồ họa đẹp,dễ sử dụng,có khả năng tương tác người dùng cao,việc cài đặt và sử dụng dễ dàng với nhiều ví dụ mẫu có sẵn,tự động căn chỉnh các nhãn theo dữ liệu.
Chươ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ạo của một web service,cách xây dựng một web service bằng Eclipse IDE,cách thức giao tiếp giữa client và server thông qua web service.Phục vụ cho việc xây dựng liên lạc client-server của chương trình.
4.1 Web service.
4.1.1 Giới thiệu về Web service:
4.1.1.1 Khái niệm:
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 ứng dụ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.Web service có thể xác định bằng địa chỉ URL,thực hiện các chức năng và đưa ra thông tin mà người dùng yêu cầu.Web service được xây dựng dựa trên SOAP.Web service cho phép máy chủ cung cấp dịch vụ trao đổi 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 server kiể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ên chuẩ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ôi trườ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ác chuẩ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:
Là 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úc hoà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ợp với XML,SOAP để cung cấp dịch vụ web qua internet,client có thể đọc WSDL để xem cá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ởi cá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ủa dịch vụ web,như địa chỉ,tên giao dịch,..cho phép các đối tượng khác xác định được dịch vụ.
Yellow pages(trang vàng): chứa thông tin mô tả dịch vụ web theo những loại khác nhau,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ủa web service.
4.1.1.3.4 SOAP:
Giao thức truy xuất đối tượng đơn giản,trao đổi thông tin giữa các ứng dụng thông qua mạng internet,thông thường sử dụng giao thức HTTP.SOAP được xây dựng bởi Microsoft và phần mềm Userland,được thiết kế đơn giản và dễ mở rộng,không bị ràng buộ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ụng cá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ương số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.Đặc biệ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ăn bả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 đầu mụ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 tin yêu cầu và phản hồi.
4.1.1.4 Mô hình hoạt động của web service:
Hì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ách khai 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ột cá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:
company_list
-mack
-sanck
-giahientai
-giasosach
-pb
-caonhat52tuan
-thapnhat52tuan
-eps
-pe
-eps4quytruoc
-pe4quytruoc
-roa
-roe
-donbaytc
-beta
-khoiluongluuhanh
-khoiluongniemyet
-cophieuquy
-nuocngoaisohuu
-vonthitruong
-doanhthu
-lnst
-voncsh
-tongno
-tongtaisan
-tencongty
-tenquocte
-diachi
-dienthoai
-fax
-website
hose
-ticker
-date
-openprice
-highprice
-lowprice
-closeprice
-volume
Hình 11.Mô hình dữ liệu tổng thể CSDL stock.
4.1.2.1.1 Bảng hose.
Mô tả: lưu trữ thông tin của sàn chứng khoán hose.
Các thành phần: ticker,date,openprice,highprice,lowprice,closeprice,volume.
Bảng 1.hose – lưu trữ thông tin sàn hose.
Attribute
Tên trường
Key type
Null value
Data type
Max Data length
Remarks
ticker
varchar
9
Mã cổ phiếu
date
varchar
10
Ngày tháng năm
openprice
varchar
9
Giá mở cửa
highprice
varchar
9
Giá cao nhất
lowprice
varchar
9
Giá thấp nhất
closeprice
varchar
9
Giá đóng cửa
volume
varchar
9
Khối lượng
4.1.2.1.2 Bảng company_list.
Mô tả: lưu trữ thông tin của các công ty có cổ phiếu niêm yết trên các trung tâm giao dịch chứng khoán.
Các thành phần:
mack,sanck,giahientai,giasosach,pb,caonhat52tuan,thapnhat52tuan,eps,pe,eps4quytruoc,pe4quytruoc,roa,roe,donbaytc,beta,khoiluongluuhanh,khoiluongniemyet,cophieuquy,nuocngoaisohuu,vonthitruong,doanhthu,lnst,voncsh,tongno,tongtaisan,tencongty,tenquocte,diachi,dienthoai,fax,website.Khoá chính là mack.
Bảng 2.company_list – lưu trữ thông tin các công ty.
Attribute
Tên trường
Key type
Null value
Data type
Max Data length
Remarks
Mack
PK
varchar
9
Mã cổ khoán
sanck
varchar
10
Sàn chứng khoán
giasosach
varchar
9
Giá sổ sách
giahientai
varchar
9
Giá hiện tại
pb
varchar
9
Price-to-book ratio
caonhat52tuan
varchar
9
Cao nhất 52 tuần
thapnhat52tuan
varchar
9
Thấp nhất 52 tuần
eps
varchar
9
Earning per share
pe
varchar
9
Price/earning per share
eps4quytruoc
varchar
9
Eps 4 quý trước
pe4quytruoc
varchar
9
Pe 4 quý trước
roa
varchar
9
Return on total assets
roe
varchar
9
Return on common equyty
donbaytc
varchar
9
Đòn bẩy tài chính
beta
varchar
9
Beta
khoiluongluuhanh
varchar
30
Khối lượng lưu hành
khoiluongniemyet
varchar
30
Khối lượng niêm yết
cophieuquy
varchar
30
Cổ phiếu quý
nuocngoaisohuu
varchar
30
Nước ngoài sở hữu
vonthitruong
varchar
30
Vốn thị trường
doanhthu
varchar
30
Doanh thu
lnst
varchar
30
Lợi nhuận sau thuế
voncsh
varchar
30
Vốn chủ sở hữu
tongno
varchar
30
Tổng nợ
tongtaisan
varchar
30
Tổng tài sản
tencongty
varchar
100
Tên công ty
tenquocte
varchar
100
Tên quốc tế
diachi
varchar
200
Địa chỉ
dienthoai
varchar
30
Điện thoại
fax
varchar
30
Fax
website
varchar
100
Website
4.1.2.2 Kết nối tới cơ sở dữ liệu SQL.
Khóa luận dùng hệ quản trị cơ sở dữ liệu SQL Server với nhiều ưu điểm hơn các hệ cơ sở dữ liệu khác như mạnh hơn,tính bảo mật tốt hơn.Để kết nối tới cơ sở dữ liệu bằng ngôn ngữ lập trình Java,khóa luận sử dụng kết nối thông qua ODBC.Để ứng dụng client kết nối với cơ sở dữ liệu server dùng ODBC,ta phải cung cấp thông tin về nguồn dữ liệu ODBC.ODBC cung cấp thông tin này một tên đơn giản để ta có thể tham chiếu đến nó,thay vì phải thiết lập thông tin từ đầu mỗi lần ta cần đến nó.Tên này chính là tên nguồn dữ liệu hay DSN.
Hình 12.DSN stock của cơ sở dữ liệu SQL.
4.1.2.3 Tạo web service bằng Eclipse.
Để xây dựng web service trên Eclipse,cần phải chú ý 2 vấn đề chính là:
Eclipse phải là bản “Eclipse IDE for Java EE Developers”.
Web service runtime là Axis2.
Java EE(Java Enterprise Edition) là môi trường phát triển và triển khai các ứng dụng được phát triển bởi Sun,là cái nền cung cấp các dịch vụ,các hàm giao tiếp và các giao thức triển khai các ứng dụng đa tầng,là một nền tảng chuyên cho lập trình các ứng dụng web trên các web server,bao gồm nhiều công nghệ như JSP,Servlet,..Server J2EE cung cấp 2 container là web container và EJB container:
EJB container: quản lý và thực thi các thành phần enterprice bean.
Web container: quản lý và thực thi các thành phần JSP,Servlet.
Axis là một web service framework mã nguồn mở được phát triển bởi Apache Software Foundation.Phiên bản hiện nay Axis2 hoạt động linh hoạt,hiệu quả hơn so với phiên bản đầu tiên Axis1.Một số tính năng của Axis2:
Gửi các thông điệp SOAP.
Nhận và xử lý các thông điệp SOAP.
Tạo lớp cài đặt cho cả client và server sử dụng WSDL.
Hỗ trợ WSDL,cho phép dễ dàng khai thác,truy cập dịch vụ,tự động sinh ra các bản mô tả cho các dịch vụ được phát triển từ Axis2.
4.2 Giao tiếp giữa client và server.
Chương trình dùng thư viện mở ksoap2-Android để kết nối web service client và server.Đây là một thư viện SOAP khá hiệu quả cho nền tảng Android với nhiều tính năng cải tiến và đã được sửa nhiều lỗi hơn các phiên bản trước đấy.
4.2.1 Ksoap2-Android là gì ?
Ksoap là một thư viện mở cho các SOAP web service client trong môi trường Java như Applet hay ứng dụng J2ME.Ksoap2 được thiết kế lại hoàn toàn dựa trên những bài học từ phiên bản đầu tiên ksoap1.x.Ksoap2-Android là một nhánh trong thư viện ksoap2 được thêm vào để hỗ trợ cho nền tảng Android.
4.2.2 Sử dụng ksoap2-Android để lấy dữ liệu từ server:
Để thực hiện được các chức năng chính của chương trình,chương trình sẽ yêu cầu dữ liệu từ server trả về theo nhiều thông tin khác nhau,nhưng các bước cơ bản để gửi yêu cầu và nhận phản hồi từ server thì tương tự nhau:
Trước hết phải khởi tạo một SoapObject để gửi yêu cầu cho server với NAMESPACE và METHOD_NAME tùy theo yêu cầu.
Tùy theo từng phương thức khác nhau mà tham số cần truyền vào khác nhau bằng hàm addProperty có sẵn của đối tượng SoapObject.
Thiết lập Soap Envelope là thông điệp Soap dùng để trao đổi giữa các ứng dụng và gửi tới web service server.
Xử lý kết quả phản hồi từ server,lọc lấy thông tin cần thiết.
Ví dụ về yêu cầu thông tin của một mã cổ phiếu và xử lý phản hồi lại của chương trình:
Khởi tạo một SoapObject:
Hình 13.Khởi tạo 1 Soap object.
Truyền tham số cần thiết,ở ví dụ này phương thức getInfoByTicker có 2 tham số là: mack,date.
Hình 14.Thiết lập tham số.
Thiết lập Soap Envelope và gửi tới web service server.
Hình 15.Thiết lập Soap Envelope và gửi tới web service server.
Xử lý kết quả từ server trả về.
Hình 16.Kết quả từ server trả về.
Chương 5: Xây dựng và triển khai ứng dụng
Chương này giới thiệu các chức năng chính của chương trình,cấu trúc thiết kế của client,server và giao diện tương tác server-client,kết quả sau khi đưa chương trình vào hoạt động.
5.1 Xây dựng chương trình:
5.1.1 Các chức năng chính của chương trình:
Theo dõi,cập nhật thông tin các mã cổ phiếu mà người dùng quan tâm.Thông tin được server cập nhật theo từng ngày nên đảm bảo thông tin mà người dùng nhận được là mới nhất.Hiển thị các thông tin của mã cổ phiếu với giao diện chặt chẽ,bố cục hợp lý,logic.
Theo dõi các tin tức về tình hình chứng khoán trên các sàn giao dịch lớn trong nước và thị trường chứng khoán nước nhà.Thông tin được server cập nhật liên tục.
Tìm kiếm và thêm các mã cổ phiếu vào trong danh sách những mã cổ phiếu mà người dùng quan tâm.
Tự động vẽ biểu đồ thể hiện sự biến đổi của giá cả và khối lượng mỗi mã cổ phiếu mà người dùng quan tâm.Biểu đồ
Các file đính kèm theo tài liệu này:
- Phần mềm thông tin chứng khoán trên nền Android (Client).doc