4.1.3 Cấu trúc cài đặt :
Hình 4-4:Cấu trúc cài đặt hệ thống
Hệ thống gồm có hai thành phần chính là Web Portal trên nền tảng Google app engine, được đặt trên cloud và kho ứng dụng trên Android. Web portal ngồi kiến trúc 3 tầng gồm DataAccess, Bussiness,Presentation thì cịn gồm có Web service để phục vụ lời gọi từ phía client trên Android. Trên Android, gồm có các module GUI là giao diện người dùng trên điện thoại, cịn có module XML Parse để phân tích dữ liệu từ web service và thư viện MPL, thư viện của Paypal trên Android để thanh toán trực tuyến.
4.1.4 Cấu trúc dữ liệu
Lưu trữ dữ liệu trên cloud
Vấn đề: Phương án lưu trữ dữ liệu trên cloud. Hướng giải quyết: sử dụng google app engine
Vấn đề lưu trữ trên cloud là một khái niệm trưu tượng, khó hình dung , do đó các hãng công nghệ lớn đã bắt tay vào lĩnh vực này để xây dựng các PAAS phục vụ cho nhà phát triển, trong đó, google app engine l à dịch vụ cho phép sử dụng miễn phí một số lượng nhất định (500MB lưu trữ) và cho phép số lượng truy cập là 5 triệu lượt/ s. Tuy nhiên, cùng với lợi thế đó là sự phụ thuộc vào chuẩn dữ liệu mà google đưa ra, được gọi là GQL.. Các thuộc tính chính của GQL:
Hình 4-5: Cấu trúc dữ liệu của DataStore
Trong GQL khơng có khái niệm bảng, tất cả đều là các Entities (thực thể). Khi khởi tạo một thực thể, sẽ tự tạo thêm trường key, ID, keyname. Cách khởi tạo một entities:
class User(db.Model):
UserName = db.UserProperty()
FullName = db.StringProperty(required = True) Email = db.StringProperty(required = True) Mobile = db.StringProperty(required = True)
RoleID = db.ReferenceProperty(Role, required=True)
Trong GQL khơng có khái niệm join giữa các thực thể mà được thay thế bởi các
trường ReferenceProperty.
class Role(db.Model):
RoleName = db.StringProperty(required=True) class User(db.Model):
UserName = db.UserProperty()
Email = db.StringProperty(required = True) Mobile = db.StringProperty(required = True)
RoleID = db.ReferenceProperty(Role, required=True) Trong đó RoleID
là thuộc tính reference trong thực thể User, chỉ đến class Role.
4.1.5 Giải thuật
4.1.5.1 Viết webservice trên cloud:
Hướng giải quyết: sử dụng phương thức truyền theo kiểu XML-RPC.
XML-RPC là một giao thức gọi từ xa qua internet. XML-RPC là mọt dạng của HTTP-POST. Giá trị truyền đi là một xâu XML. XML-RPC có thể truyền dữ liệu dạng string, date, array, list.
Hình 4-6: Cấu trúc của XML-RPC.
Hình 4-7:Định dạng của XML- RPC
Trong đó trong <methodCall> </methodCall> là tên hàm cần gọi. <name></name> là tên đối tượng trả về
<value></value> là giá trị trả về ứng với từng đối tượng.
Sử dụng ngôn ngữ python trong google appengine, kết hợp với thư viện xmlrpcserver.py, để thực hiện hàm web service
4.1.5.2 Kết nối và thực thi web service với Android:
Để liên lạc qua web service qua giao thức XML-RPC, ta thực hiện các bước như sau :
- Sử dụng thư viện org.xmlrpc.android để nhận được giá trị trả về từ web service.
Hình 4-8: Cài đặt phân tích chuỗi XML nhận được
4.1.5.3 Tích hợp Paypal vào ứng dụng Android
Để tích hợp thanh toán trên paypal cho Android, ta sử dụng thư viện MPL (Paypal Mobile Payments Library) bằng cách sử dụng file thư viện PayPal_MPL.jar được tải trực tiếp trên trang X.com và được thêm vào ứng dụng Android.
MPL cung cấp một cách dễ dàng để tích hợp thanh tốn vào trong ứng dụng Android. Khi người mua tạo ra một thanh toán, thư viện sẽ thực hiện logging vào trong hệ thống service của Paypal và thực hiện reviewing, hồn tất q trình thanh tốn. Sau khi hồn tất q trình thanh tốn, thư viện sẽ trở lại ứng dụng của người mua đang thao tác.
Các bước tích hợp vào paypal vào ứng dụng Android : - Khai báo trong AndroidManifest.xml
- Add thư viện và import các class cần dùng
- Sử dụng các method được cung cấp dưới dạng API
Paypal có các hình thức thanh tốn là : Simple, Parallel và Chained Payments. Trong kho ứng dụng này, ta sẽ sử dụng hình thức thanh tốn song song ( Parallel Payments):
Hình 4-9:Sơ đồ Parallel Payment
Thanh tốn song song cho phép tạo thanh toán cho một số lượng người nhận nào đó. Một thanh tốn song song được tạo ra sẽ khơng có người nhận chính mà các người nhận có vai trị bình đẳng. Khi thanh tốn, trên giao diện người sử dụng sẽ có chi tiết từng người nhận .
Việc khởi tạo thư viện có thể thực hiện như sau :
Người mua thực hiện thanh toán song song như sau :
Khi khởi tạo được thư viện thành công và truyền vào Intent khi người mua thanh tốn, thì màn hình đăng nhập tài khoản paypal sẽ hiện trên chiếc điện thoại thông minh của người sử dụng. Người sử dụng chỉ cần điền tên tài khoản paypal, mật khẩu .Nó sẽ gọi đến service của Paypal để tiến hành thanh tốn
Hình 4 - 10:Màn hình hiển thị q trình thanh tốn bằng Paypal
4.2 Kết quả đạt được và thử nghiệm:
Trong phần này NV sẽ trình bày các kết quả đạt được sau quá trình cài đặt thành cơng. Người luận văn cũng sẽ trình bày một số kết quả thử nghiệm.
4.2.1 Các kết quả đạt được :
Hệ thống bao gồm Web Portal và BKStore được cài đặt trên các điện thoại Android.
a) Web Portal:
Web Portal đã được xây dựng thành công trên nền tảng Google App Engine dành cho Python. Web Portal cũng đã đáp ứng đầy đủ mục tiêu là cổng thông tin của hệ thống, giúp cho người dùng có thể tải về ứng dụng , các nhà phát triển có thể đăng ký và up ứng dụng của mình lên. Web Portal đã được lưu trữ trên hosting của Google với dữ liệu đặt trên trung tâm dữ liệu của Google và đã kích hoạt tính năng thanh tốn cho ứng dụng, vì vậy có thể sử dụng khơng hạn chế các tính năng của GAE, đặc biệt là lưu trữ dạng blobstore. Có thể truy cập theo địa chỉ: http://androidstore2011.appspot.com
Giao diện Web Portal :
Giao diện đã được trình bày trong phần thiết kế giao diện,NV sẽ chỉ dưa ra hình ảnh trang chủ của Web Portal.
Hình 4-11: Trang chủ của Web Portal
b) BKStore :
BKStore là ứng dụng được cài đặt trên điện thoại di động Android, hỗ trợ
Android từ phiên bản 2.2. BKStore có thể được tải trực tiếp từ Web Portal cả hệ thống
hoặc các diễn đàn chia sẻ khác. BKStore đã chạy thành công trên emulator và chạy trên mượt mà trên dòng điện thoại Galaxy Mini của SamSung với kích thước màn hình là 3 ich. Ứng dụng có trên BKStore sẽ được lấy từ việc gọi Web service, với dữ liệu đã được lưu trữ trên trung tâm dữ liệu của
Google. Giao diện cài đặt trên Emulator đã được NV đưa ra ở phần thiết kế giao diện của chương trước, sau đây là các hình ảnh của ứng dụng trên chiếc điện thoại Galaxy Mini của SamSung :
Hình 4 - 14:Chi tiết ứng dụng trên SamSung Galaxy Mini
BKStore đã được đưa lên một số diễn đàn về Android như vietandroid.com , g- android.com, tinhte.vn … để giới thiệu cho người dùng cũng như chờ đợi các ý kiến phản hồi, đóng góp cho kho ứng dụng. Trong thời gian tới, hi vọng sẽ thu hút được các cộng đồng phát triển ứng dụng cho Android tải ứng dụng lên Web Portal đồng thời thu hút được đóng góp của người dùng cho BKStore trước khi tiến hành thương mại hóa
4.2.2 Một số kết quả kiểm thử :
Kiểm thử ứng dụng là hoạt động khảo sát thực tiễn sản phẩm trong đúng môi trường chúng dự định sẽ được triển khai để có được những thơng tin về chất lượng của sản phẩm. Mục đích của kiểm thử ứng dụng là tìm ra các lỗi hay khiếm khuyết của ứng dụng nhằm đảm bảo hiệu quả hoạt động tối ưu của ứng dung trong quá trình triển khai, mang lại lợi ích lớn nhất cho tất cả các bên liên quan.
Trong phần này NV sẽ trình bày một số kết quả kiểm thử
a) Kiểm thử đơn vị : Yêu cầu giao diện :
STT Yêu cầu test Yêu cầu kết quả KQ
1 Tìm kiếm các ứng dụng phù hợp với
tên mà người dùng nhập vào Hiển thị ra một danh sách các ứng dụng thỏa mãn yêu cầu YES
2 Cho phép người dùng xem danh sách ứng dụng theo các tiêu chí khác nhau như hot, top, category
Hiển thị tất cả các ứng dụng theo đúng tiêu chí đã lựa chọn
YES
3 Cho phép người dùng xem thông tin chi tiết từng ứng dụng
Hiển thị đầy đủ thơng tin các ứng dụng ra màn hình phù hợp với kích thước màn hình, khơng thiếu chữ …
YES
Bảng 4 - 1 : Bảng Kiểm thử giao diện
Mô tả tình huống test
Tình huống Dữ liệu test Yêu cầu kết quả KQ
Nhập thiếu dữ liệu khi đăng ký user
Nhập thiếu một hoặc nhiều trường trên form đăng ký
Trên form phải thông báo lỗi cho người dùng biết các yêu cầu còn thiếu để nhập thêm
YES
Nhập thiếu dữ liệu khi up ứng dụng
Nhập thiếu một hoặc nhiều trường trên form đăng ký
Trên form phải thông báo lỗi cho nhà phát triển biết các u cầu cịn thiếu để nhập thêm
YES
Khơng nhập dữ liệu khi tìm kiếm ứng dụng
Khơng chuyển sang Activity khác YES
Đăng ký user thành công
Hiện lên thông báo đăng ký thành công, thông báo chuyển về trang chủ để có đủ quyền như đăng ký của nguwoif sử dụng
YES
Upload ứng dụng
thành công Hiện lên thông báo upload thành công, đồng thời chuyển về trang
theo dõi các app của nhà phát triển, đã cập nhật thêm app mới upload
YES
Tải ứng dụng về điện thoại với ứng dụng miễn phí
Ứng dụng được tải về điện thoại trực tiếp, có thơng báo đang tải ứng dụng về
YES
Mua ứng dụng thành công
Upload file nguồn ứng dụng không phải file dạng .apk, các file icon, screenshot không phải file ảnh
Hiển thị thông báo lỗi trên form, yêu cầu tải đúng dịnh dạng
NO
Download ứng dụng Tăng số lượt download cho ứng
dụng
YES
Bảng 4 - 2 :Bảng kiểm thử các tình huống test
b) Kiểm thử tích hợp Tính đầy đủ của hệ thống
Trường hợp Yêu cầu Kết quả
Quản lý user Thêm, xóa, sửa người dùng No
Quản lý app Thêm xóa , sửa application No
Bảng 4 - 3 : Bảng kiểm thử tính đầy đủ hệ thống
Quản trị cơ sở dữ liệu
Trường hợp Yêu cầu Kết quả
Thêm user khi dăng ký Add một record mới trong
bảng user đồng thời thêm vào bảng Developer hoặc bảng Customer
YES
Upload ứng dụng Thêm một record vào bảng
App
Yes
Download ứng dụng Update lại trường
DownloadNumber tăng thêm 1 lượt
Yes
Khi người dùng Comment Thêm một record vào bảng
AppComment
Yes
Kết chương 4:
Trong chương 4, NV đã trình bày tồn bộ các cài đặt cho hệ thống, đã bao gồm các bước giải quyết các vấn đề đặt ra khi tiến hành cài đặt. Chương này cũng trình bày các kết quả đạt được từ Web Portal đến BKStore, đưa ra một số kiểm thử và một số đánh giá cho hệ thống. Chương 4 cũng là chương cuối cùng của báo cáo đồ án và hồn thành các bước trong q trình xây dựng hệ thống . NV xin dừng nội dung chính của báo cáo tại đây và sẽ trình bày phần kết luận, tổng kết tồn bộ báo cáo ở phần sau.
Kết luận và hướng phát triển
Tóm lại có thể thấy kho ứng dụng cho di động, đặc biệt là cho nền tảng mở, phân mảnh nhiều như Android có những tiềm năng phát triển và có rất nhiều cơ sở để thành công. Trong xu hướng phát triển mạnh mẽ của các thiết bị di động, các phần mềm cho di động thì kho ứng dụng ra đời vừa tạo điều kiện cho người sử dụng di động có thể tìm kiếm, mua các ứng dụng được dễ dàng, vừa có thể thúc đẩy ngành cơng nghệ phần mềm xây dựng ứng dụng cho di động, đem lại nhiều nguồn lợi cho nhà lập trình. Tuy nhiên xây dựng được kho ứng dụng lớn mạnh, thực sự thành công trên thị trường, đặc biệt là thị trường Việt Nam thì cũng đầy khó khăn, cần phải có những hướng thương mại hóa độc đáo cũng như tận dụng những cơng nghệ mới nhất để đem lại hiệu năng tốt nhất cho kho ứng dụng, đem lại sự thuận tiện cho các đối tượng sử dụng kho ứng dụng.
Trong đồ án tốt nghiệp này, NV đã trình bày cụ thể từ việc tiếp cận bài toán, các hướng giải quyết vấn đề, NV cũng đưa ra mơ hình bài tốn, kiến trúc tổng thể và các phân tích thiết kế để xây dựng ứng dụng, từ đó đưa ra các cài đặt cho hệ thống, đưa ra giải pháp cho những vấn đề xuất hiện trong cài đặt. Cuối cùng NV đã trình bày cụ thể các kết quả đạt được, một số kiểm thử cho hệ thống, Đây là các bước chung nhất trong quá trình xây dựng phần mềm địi hỏi một kỹ sư ngành cơng nghệ phần mềm, kỹ sư công nghệ thông tin phải nắm được và thực hiện đúng.
Với kho ứng dụng đã cài đặt thành cơng và đưa vào thử nghiệm, thì có thể thấy BKStore đã đáp ứng đầy đủ các mục tiêu đặt ra, với đầy đủ các chức năng mà một kho ứng dụng phải có. Ngồi ra kho ứng dụng cũng có những điểm nhấn như việc sử dụng điện toán đám mây, sử dụng thanh toán qua Paypal … Sau đây là một số kết quả đạt được của kho ứng dụng :
• Kho ứng dụng đã chạy và hoạt động tốt trên cả emulator và thiết bị di động chạy Android như SamSung Galaxy Mini, SamSung Galaxy Ace.
• Kho ứng dụng có giao diện đẹp , bố trí hợp lý và rất dễ sử dụng đối tất cả người sử dụng di động màn hình cảm ứng.
• Có Web Portal là nơi các nhà phát triển có thể đăng ký tài khoản, tải ứng dụng của mình lên kho ứng dụng để bán. Ngồi ra Web Portal còn là nơi người dùng xem một số thơng tin về các ứng dụng.
• Web Portal được xây dựng trên nền tảng PaaS Google App Engine, ứng dụng được lưu trữ trên trung tâm dữ liệu của Google.
• Kho ứng dụng hỗ trợ thanh toán quốc tế, thanh tốn trực tuyến . Trong đó đã cài đặt bằng thanh tốn Paypal, và có thể mở rộng ra các hình thức thanh tốn khác như Google Check Out, Ngân Lượng , Bảo Kim …
• Ứng dụng tải về và cài đặt thành cơng trên điện thoại.
Nhìn chung kho ứng dụng đã vận hành và đáp ứng các mục tiêu đặt ra, tuy nhiên có thể thấy kho ứng dụng cịn nhiều hạn chế và cịn phải có nhiều nâng cấp để có thể thương mại hóa và hướng phát triển của đề tài cũng chính là thương mại hóa và kinh doanh trên kho ứng dụng. Sau đây là một số hướng phát triển cho kho ứng dụng BKStore :
• Thêm chức năng truy cập ứng dụng từ Web Portal, và có thể tải về ứng dụng ngay trên Web Portal khi truy cập qua điện thoại. Ngoài ra, thêm chức năng tìm kiếm ứng dụng ngay trên Web Portal. Và một số chức năng thống kê cho ứng dụng phục vụ cho nhà phát triển theo dõi ứng dụng của mình.
• Tăng cường và phát triển các hình thức thanh toán quốc tế qua các trung tâm thanh toán khác như Google Check Out … hoặc của Việt Nam như Bảo Kim, Ngân Lượng, Payall. Ngồi ra có thể thêm các hình thức thanh tốn qua SMS kết hợp với các hãng viễn thơng, và tiến đến xây dựng hình thức thanh tốn cho riêng kho ứng dụng, kết nối trực tiếp với tài khoản thẻ ngân hàng giống Itunes của Apple.
• Hồn thiện các chức năng như quản lý App, kiểm tra App tự động khi người sử dụng tải lên kho ứng dụng thông qua Web Portal
• Xây dựng một số chiến lược kinh doanh sử dụng mơ hình SaaS như cho th ứng dụng, với hình thức thanh tốn đặc trưng của SaaS
• Có thể mở rộng ra các nền tảng khác như cung cấp ứng dụng cho Iphone, Windows Phone 7 … hoặc các sản phẩm phi ứng dụng khác như ebook, phim, truyện …