Đặt vấn đề Hiện tại có khá nhiều hình thức giải trí như xem phim, nghe nhạc, du lịch… đọc truyện tranh là một hình thức khá phổ biến trong số đó. Đọc truyện tranh không còn dừng lại hình thức đọc trên giấy nữa, hiện đang phát triển rất nhiều ứng dụng cho phép đọc truyện trên các thiết bị di động đặc biệt là điện thoại di động. Mặc dù điện thoại di động hiện nay được cải tiến rất nhiều nhưng những cải tiến này vẫn không làm mất hoàn toàn những nhược điểm vốn là bản chất của các thiết bị di động đó là kích thước màn hình và bộ nhớ. Hiện nay có một số smartphone có màn hình kích thước thuộc loại lớn trong các thiết bị di động như Nokia series 80, 90 nhưng chúng cũng chỉ dừng ở mức độ rộng màn hình 320 pixel.
Như vậy để hiển thị được cả 1 trang truyện thông thường với kích thước trung bình trong khoảng từ 600->800 pixel sẽ là một vấn đề cần phải giải quyết. Đặt giả thiết sẽ xây dựng một bộ thư viện truyện với kích thước tương ứng với kích thước màn hình di động chúng ta sẽ nhận thấy ngay đây là giải pháp bất khả thi. Vậy nếu không thể xây dựng mới nghĩa là phải dùng lại các bộ truyện đã có sẵn, tuy nhiên để sử dụng lại được thì cũng có những vấn đề đặt ra mà chúng ta cần giải quyết Thứ nhất: mặc dù các bộ truyện được cung cấp miễn phí trên rất nhiều website nhưng làm thế nào chúng ta có thể thu thập các bộ truyện này về một cách đơn giản mà nhanh chóng Thứ hai: nếu thu thập truyện được về rồi nhưng cũng không thể hiển thị chúng ngay trên di động được vì tương quan kích thước màn hình di động và kích thước trang truyện Cuối cùng: như chúng ta biết hiện nay có rất nhiều các loại điện thoại, phát triển trên các nền tảng khác nhau vậy xử lý như thế nào để phát triển ứng dụng cho nhiều loại di động mà làm tối thiểu chi phí sản xuất, quản lý và bảo trì 2 Định hướng giải pháp Giải pháp đề xuất dịch vụ truyện tranh trên di động ở đây là xây dựng theo mô hình kiến trúc hướng dịch vụ, nội dung tiếp theo sẽ đi vào định hướng giải pháp chi tiết cho các vấn đề mà dịch vụ truyện tranh trên di động cần giải quyết. Dịch vụ bao gồm các thành phần tương ứng với các vấn đề cần giải quyết như sau Thành phần quản trị việc thu thập dữ liệu: giải quyết cụ thể các vấn đề sau - Tạo ra nguồn truyện cho chương trình: có chức năng thu thập truyện tự động từ các trang cung cấp truyện tranh miễn phí như truyentranh.
Nguồn truyện được tự động thu thập thông qua phương pháp phân tích nội dung html của các trang cung cấp truyện trên để lấy các đường link, dùng đường link này dịch vụ sẽ tự động tải truyện về. - Chuẩn hóa dữ liệu: kích thước màn hình của các thiết bị di động thường không đồng nhất, để có thể hỗ trợ tốt nhất cho việc đọc truyện tranh trên các thiết bị này, chức năng này sẽ cho phép lựa chọn loại màn hình để tách dữ liệu và chuẩn hóa. SinhViệc táchhiện: viên thực dữNguyễn liệu này sẽ thực Thị Thuyên hiện SHSV trên cơ 20063122 sở51giải Khóa thuật Lớp CNPM 11 biến thiên gradient để tách 1 trang truyện thành nhiều khung có kích thước nhỏ hơn. Tùy thuộc vào kích thước màn hình mà số lượng khung được tách sẽ khác nhau.
Đối với các kiểu màn hình khác nhau cũng sẽ có kiểu chuẩn hóa dữ liệu tương ứng. Sau khi tách và chuẩn hóa kích thước mỗi khung hình phải đảm bảo: chiểu rộng khung wK, chiều dài khung hK, (w,h là kích thước rộng, dài của trang truyện chưa tách- thường w=600->800 pixel, h=1000- >1200pixel) o Màn hình cỡ nhỏ (độ rộng < 180 pixel): wK<=w/2, hK<=h/3 o Màn hình cỡ trung bình (180<độ rộng <240pixel)w/4<= wK<=3*w/4,hK<=h/2 o Màn hình cở lớn( độ rộng>240): wK<=w, h/2<=hK<=2*h/3 (Cách phân chia này chỉ mang tính tương đối) Thành phần dịch vụ web: thực hiện các thao tác để thực thi các chức năng phía di động Thành phần ứng dụng phía di động: di động luôn có những hạn chế nhất định về mặt kích thước cũng như bộ nhớ, để khắc phục những hạn chế này(tuy không hoàn toàn triệt để nhưng có thể giảm ảnh hưởng của nó ở một mức độ nhất định) ứng dụng phía di động sẽ được xây dựng theo một số tiêu chí trong chuẩn xây dựng web cho di động( mwbp 1.0) Sau khi có những định hướng cụ thể để giải quyết các vấn đề đặt ra, phần tiếp theo chúng ta sẽ giới thiệu các kiến thức nền tảng sẽ sử dụng để xây dựng dịch vụ truyện tranh trên di động này 3 Kiến thức nền tảng 3.1 Kiến trúc hướng dịch vụ và dịch vụ web (Tài liệu [1], [7], [10]) 3.1 Kiến trúc hướng dịch vụ(SOA-Service oriented architecture) (Tài liệu [1], [7]) Tổng quan kiến trúc hướng dịch vụ SOA là tập hợp các dịch vụ kết nối 'mềm dẻo' với nhau (nghĩa là một ứng dụng có thể 'nói chuyện' với một ứng dụng khác mà không cần biết các chi tiết kỹ thuật bên trong), có giao tiếp (dùng để gọi hàm dịch vụ) được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng. SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến qui trình nghiệp vụ và dùng giao tiếp chuẩn để che đi sự phức tạp kỹ thuật bên dưới. SOA cũng thường cung cấp phương thức để người sử dụng các dịch vụ, ví dụ như các ứng dụng dựa trên web, nhận thứcđược các dịch vụ sẵn có.
Ví dụ, một số phòng ban khác nhau trong công ty có thể phát triển và triển khai các dịch vụ SOA bằng các ngôn ngữ khác nhau, nhờ đó khách hàng của họ sẽ hiểu và truy cập một cách dễ dàng các thông tin phòng ban này. SOA định nghĩa cách để tích hợp một cách rộng rãi cho các ứng dụng khác nhau trên môi trường web và thực thi trên nhiều nền tảng. Thay vì định nghĩa một API, SOA định nghĩa các giaoSinh diện viênvề giao thực hiện:thức và Thị Nguyễn chức năng. Thuyên SHSV 20063122 Khóa 51 Lớp CNPM 12 Hướng dịch vụ yêu cầu sự kết nối nối lỏng lẻo các dịch vụ với các hệ thống điều hành và các công nghệ khác làm nền tảng ứng dụng.
SOA tách chức năng thành các khối riêng biệt, hoặc các dịch vụ, thông qua truy cập mạng cho phép người dùng kết hợp, và sử dụng lại các dịch vụ này trong ứng dụng cảu mình. Những dịch vụ này và những người sử dụng dịch vụ giao tiếp với nhau bằng cách truyền dữ liệu theo một định dạng được xác định trước, hoặc bằng cách phối hợp hoạt động giữa hai hay nhiều dịch vụ. Thành phần trong SOA Hình 1-Thành phần trong SOA Hình vẽ trên mô tả các thành phần có trong một ứng dụng xây dựng theo kiến trúc hướng dịch vụ: gồm Service Provider sẽ đăng kí thông tin về service mà mình có thể cung cấp (các chức năng có thể cung cấp, khả năng của hệ thống (resource, performance), giá cả dịch vụ, .) vào Service Registry. Service Consumer khi có nhu cầu về một service nào đó sẽ tìm kiếm thông tin trên Service Registry.
Khi đã xác định được Service Provider mong muốn, Service Consumer thiết lập kênh giao tiếp trực tiếp với Service Provider nhằm sử dụng service hoặc tiến hành thương lượng thêm (về mặt giá cả, resource sử dụng, .) Service Registry hỗ trợ tìm kiếm, xếp hạng các Service Provider dựa trên các tiêu chí về chất lượng dịch vụ, bầu chọn từ các khách hàng đã sử dụng service,. Những thông tin này sẽ hỗ trợ thêm cho quá trình tìm kiếm của Service Consumer.2 Dịch vụ web (Webservice) (Tài liệu [10]) Định nghĩa Dịch vụ web (WebService) đượ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. Dịch vụ web cung cấp chuẩn kếtthực Sinh viên nốihiện: choNguyễn các phần mềmSHSV Thị Thuyên chạy20063122 trên các nền51tảng Khóa khác Lớp CNPM 13 nhau. Kiến trúc Hình 2- Kiến trúc trong webservice Hình trên mô tả tập các giao thức có liên quan đến nhau sử dụng để định nghĩa, phát hiện và triển khai dịch vụ web – tập giao thức này được bao gồm các tầng (layer) Service Discovery: tầng này chịu trách nhiệm trong việc công bố (publish) và tìm kiếm các dịch vụ web – UDDI Service Description: tầng này đóng vai trò trong việc mô tả đặc điểm các dịch vụ web – gồm WSDL Messaging: tầng này chịu trách nhiệm việc mã hóa các thông điệp thành dạng xml – gồm SOAP,XML Thành phần Tương tự với SOA, có 3 thành phần chính trong Web service.
Service Provider: Dùng Web Services Description Language (WSDL) để mô tả dịch vụ mà mình có thể cung cấp cho Service Broker (tương tự với Service Registry trong SOA). Service Broker: Lưu trữ thông tin về các service được cung cấp bởi các Service Provider. Cung cấp chức năng tìm kiếm hỗ trợ Service Requester (Service Consumer trong SOA) trong việc xác định Service Provider phù hợp. Thành phần chính của Service Broker là Universal Discovery, Description, and Integration (UDDI) repositories.
Service Requester: Dùng WSDL để đặc tả nhu cầu sử dụng (loại service, thời gian sử dụng, resource cần thiết, mức giá .) và gởi cho Service Broker. Bằng việc sử dụng UDDI và chức năng tìm kiếm của Service Broker, Service Requester có thể tìm thấy Service Provider thích hợp. Ngay sau đó, giữa Service Requester và Service Provider thiết lập kênh giao tiếp sử dụng SOAP để thương lượng giá cả và các yếu tố khác trong việc sử dụng service. Sinh viên thực hiện: Nguyễn Thị Thuyên SHSV 20063122 Khóa 51 Lớp CNPM 14 Hình 3-Thành phần trong webservice So sánh SOA và webservice Theo định nghĩa thì dịch vụ web là đặc tả công nghệ còn SOA là nguyên lý thiết kế phần mềm.
Dịch vụ web đưa ra giải pháp kỹ thuật để thực hiện SOA, nhưng SOA cũng có thể thực hiện với các giải pháp kỹ thuật khác không phải dịch vụ web (và không phải tất cả dịch vụ web đều có kiến trúc SOA). Tuy vậy, SOA và dịch vụ web có mối quan hệ tương hỗ: sự phổ biến của dịch vụ web giúp thúc đẩy sự phát triển của SOA, và kiến trúc tốt của SOA sẽ giúp dịch vụ web thành công.3 Quy trình phát triển phần mềm hướng dịch vụ (Tài liệu [1]) Các khái niệm liên quan thiết kế phần mềm theo kiến trúc hướng dịch vụ a. Simple Object Access Protocol – SOAP SOAP là một giao thức giao tiếp dùng trong dịch vụ được xây dựng dựa trên XML.