Giới thiệu dự án

Sự bùng nổ của mạng di động thế hệ thứ 3 (3G) tại Việt Nam vào giai đoạn 2010–2011 đã mở ra kỷ nguyên mới cho các dịch vụ nội dung số trên thiết bị cầm tay. Truyện tranh số hóa (digital manga/comics) là một trong những loại hình giải trí có lưu lượng tiêu thụ trực tuyến cao nhất tại khu vực Châu Á. Tuy nhiên, việc đưa trải nghiệm đọc truyện tranh lên các thiết bị di động thời kỳ này gặp phải rào cản nghiêm trọng về sự phân mảnh phần cứng và hạn chế tài nguyên:

  • Độ phân giải màn hình hạn chế: Màn hình điện thoại phổ thông và smartphone thời kỳ này (Nokia S40, S60, Symbian, Sony Ericsson) phổ biến ở mức $176 \times 220$ pixel, $180 \times 208$ pixel hoặc tối đa $240 \times 320$ pixel, trong khi một trang truyện quét (scan) tiêu chuẩn có kích thước từ $600 \times 1000$ pixel đến $800 \times 1200$ pixel.
  • Giới hạn phần cứng và bộ nhớ: Cấu hình thiết bị di động hỗ trợ Java (J2ME) thường chỉ có bộ nhớ RAM cấp phát (Heap Memory) từ 512 KB đến 2 MB cho cấu hình CLDC/MIDP, không đủ dung lượng để giải mã trực tiếp một tệp ảnh quét độ phân giải cao mà không gây lỗi tràn bộ nhớ (Out of Memory).
  • Băng thông và chi phí dữ liệu di động: Mạng GPRS/3G sơ khởi có chi phí tính theo lưu lượng (payload data) khá đắt đỏ, đòi hỏi dữ liệu truyền tải phải được tối ưu hóa theo tiêu chuẩn MWBP 1.0 (Mobile Web Best Practices).
flowchart LR
    A[Nguồn Web Truyện Scan: 800x1200px / 200KB] --> B[Server Xử Lý: Crawler & Gradient Segmentation]
    B --> C[Web Service: SOAP/WSDL GlassFish]
    C --> D[Màn Hình Nhỏ: < 180px]
    C --> E[Màn Hình Trung Bình: 180-240px]
    C --> F[Màn Hình Lớn: > 240px]

Mục tiêu dự án

  1. Nghiên cứu và hiện thực hóa Kiến trúc Hướng dịch vụ (SOA - Service-Oriented Architecture): Xây dựng hệ thống backend độc lập nền tảng, cho phép mở rộng và tích hợp đa kênh.
  2. Tự động hóa thu thập dữ liệu (Web Scraping): Xây dựng module trích xuất tự động truyện và tin tức từ các cổng trực tuyến lớn như manga24h.comtruyentranh.com.
  3. Thuật toán phân tích và tách biên ảnh thông minh: Nghiên cứu và cài đặt thuật toán biến thiên gradient kết hợp nhận dạng ký tự quang học (OCR) để tự động cắt trang truyện quét thành các khung hình con (panels/frames) vừa khít màn hình di động mà không làm mất thông tin hoặc cắt đứt lời thoại.
  4. Tối ưu hóa dữ liệu hiển thị theo chuẩn MWBP 1.0: Giảm kích thước tệp ảnh (từ trung bình 200 KB xuống dưới 20 KB/khung hình) và chuẩn hóa toàn bộ về định dạng JPEG tương thích cao.
  5. Xây dựng ứng dụng di động J2ME đa nền tảng: Ứng dụng đọc truyện trực tuyến hỗ trợ tương tác người dùng, đánh dấu lịch sử đọc, bình luận và quản trị thư mục cá nhân.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi xây dựng hệ thống, các giải pháp đọc nội dung trên thiết bị di động thời kỳ này tồn tại nhiều nhược điểm lớn:

Tiêu chí Đọc trực tiếp qua Trình duyệt Web di động Phần mềm đọc truyện offline (như DORE Reader) Giải pháp Dịch vụ Truyện tranh SOA (Đồ án)
Trải nghiệm hiển thị Kém; trang truyện bị thu nhỏ chữ không đọc được hoặc phải cuộn 2 chiều liên tục Khá; đọc tốt các tệp nén tĩnh định dạng riêng Tối ưu; tự động phân tách khung hình vừa vặn màn hình (Small, Medium, Large)
Xử lý tài nguyên Trình duyệt dễ bị treo (crash) do ảnh kích thước quá lớn (>200 KB) Yêu cầu người dùng chép thủ công tệp truyện vào thẻ nhớ Xử lý nén và cắt nhỏ hoàn toàn tại Server, giảm tải bộ nhớ cho client
Tính cập nhật Thủ công theo website Không có khả năng cập nhật trực tuyến tự động Tự động quét và cập nhật chương mới từ các web truyện lớn
Giao thức kết nối HTTP thuần (tải lại toàn trang web nặng nề) Không kết nối mạng SOAP/XML chuẩn hóa qua mạng 3G/GPRS

Ưu tiên yêu cầu theo mô hình MoSCoW

  • Must Have: Tự động thu thập ảnh truyện theo cấu trúc HTML; Thuật toán tách biên ảnh tự động theo biến thiên Gradient; WebService cung cấp dữ liệu qua SOAP/WSDL; MIDlet J2ME đọc truyện theo khung hình, quản lý tài khoản và lưu trạng thái đọc dở.
  • Should Have: Hỗ trợ đọc tin tức truyện tranh; Tính năng tìm kiếm theo thể loại/tên truyện; Thuật toán kiểm tra OCR tránh cắt ngang khung chữ.
  • Could Have: Hệ thống bình chọn (Like), xếp hạng Top Manga, bình luận tương tác giữa người dùng.
  • Won't Have: Thanh toán trực tuyến nạp tiền qua SMS Gateway (dành cho hướng phát triển thương mại sau này).

Thiết kế hệ thống

Hệ thống được thiết kế hoàn chỉnh theo mô hình Kiến trúc Hướng Dịch vụ (SOA) gồm 3 tầng:

graph TD
    subgraph Client Layer [J2ME Mobile Client]
        MIDlet[Manga MIDlet Application]
        UI[J2ME Polish GUI Engine]
        RMS[Record Management System]
        Stub[WTK 2.2 Generated WebService Stub]
    end

    subgraph Service Layer [Middleware - GlassFish Server]
        WSDL[WSDL Service Definition]
        SOAP[SOAP Protocol Engine]
        MangaWS[MangaWS Web Service]
    end

    subgraph Server Processing Layer [Data & Algorithm Engine]
        Crawler[Crawler Module: HTMLParser / JREX]
        Algo[Image Engine: IntensityGradient / OCR]
        DB[(SQL Server 2005 Database)]
    end

    MIDlet --> UI
    MIDlet --> RMS
    MIDlet --> Stub
    Stub <-->|SOAP over HTTP| SOAP
    SOAP --> MangaWS
    MangaWS <--> DB
    Crawler --> DB
    Algo <--> DB

Technology Stack và Phiên bản Kỹ thuật

  • Backend Server: Java Development Kit (JDK) 1.6, Apache Common HTTP Client.
  • Web Scraping Engine: HTMLParser Library 1.6, JREX (Java Regular Expressions Engine).
  • Application Server / Middleware: Oracle GlassFish Application Server v3.
  • Database Management System: Microsoft SQL Server 2005.
  • Mobile Client Platform: Java 2 Micro Edition (J2ME) - CLDC 1.1 / MIDP 2.0.
  • Mobile UI Engine: J2ME Polish 2.x Framework (polish.css styling).
  • Development Tools: Eclipse IDE, Sun Java Wireless Toolkit (WTK) 2.2.

Thiết kế Cơ sở Dữ liệu (Schema Architecture)

Cơ sở dữ liệu GatherData gồm 13 bảng quan hệ chặt chẽ:

erDiagram
    TypeComic ||--o{ Comic : categorizes
    Comic ||--o{ PartComic : contains
    PartComic ||--o{ RawComic : stores_raw
    PartComic ||--o{ ContentComic : medium_screen
    PartComic ||--o{ SContentComic : small_screen
    PartComic ||--o{ LContentComic : large_screen
    Comic ||--o{ CommentComic : receives
    Comic ||--o{ LikeComic : rated
    UserComic ||--o{ CommentComic : writes
    UserComic ||--o{ LikeComic : votes
    UserComic ||--o{ DetailNotCompleted : tracks_progress

    Comic {
        int MangaId PK
        int TypeId FK
        nvarchar Name
        nvarchar Link
        nvarchar Author
    }
    ContentComic {
        int MangaId PK
        int ChapId PK
        int PageId PK
        int PartId PK
        image Detail
    }
    DetailNotCompleted {
        int NotCompletedId PK
        int UserId FK
        int MangaId FK
        int ChapId
        int PageId
        int PartId
    }
  • Nhóm quản lý nguồn: Comic, TypeComic, PartComic, RawComic, UpdateComic, IntroComic.
  • Nhóm tối ưu đa màn hình: SContentComic (màn hình nhỏ $<180$ px), ContentComic (màn hình trung bình $180-240$ px), LContentComic (màn hình lớn $>240$ px).
  • Nhóm tương tác người dùng: UserComic, CommentComic, LikeComic, DetailNotCompleted.

Methodology

Dự án áp dụng quy trình phát triển dịch vụ kết hợp Top-down và Bottom-up (Agile SOA Development Lifecycle):

  1. Giai đoạn 1 (Phân tích & Thu thập dữ liệu): Thiết kế cấu trúc DOM parser, xác định quy luật bóc tách URL từ các trang truyện nguồn.
  2. Giai đoạn 2 (Xây dựng lõi thuật toán xử lý ảnh): Thiết lập công thức biến thiên gradient, thử nghiệm tách biên tĩnh và xử lý các trang truyện phức tạp.
  3. Giai đoạn 3 (Đóng gói dịch vụ web): Thiết lập MangaWS trên GlassFish, sinh Stub client bằng J2ME WTK 2.2.
  4. Giai đoạn 4 (Phát triển giao diện Client & Thử nghiệm): Lập trình giao diện J2ME Polish, thử nghiệm trên máy ảo và thiết bị phần cứng thật.

Implementation và kết quả

Development Process

1. Thuật toán tự động phân tích và thu thập nội dung HTML (HTML Parsing)

Module GatherD sử dụng HTMLParser duyệt cây DOM theo thứ tự từ trên xuống dưới nhằm trích xuất link truyện, danh sách chương và URL của từng trang ảnh:

// Logic trích xuất link ảnh từ HTML cấu trúc lồng nhau (mô phỏng GatherFromManga24h)
public List<String> extractImageLinks(String chapterUrl) throws Exception {
    List<String> imageUrls = new ArrayList<String>();
    Parser parser = new Parser(chapterUrl);
    NodeList list = parser.extractAllNodesThatMatch(
        new AndFilter(new TagNameFilter("img"), new HasAttributeFilter("class", "manga-page"))
    );
    for (int i = 0; i < list.size(); i++) {
        ImageTag tag = (ImageTag) list.elementAt(i);
        String src = tag.getImageURL();
        if (src != null && src.startsWith("http")) {
            imageUrls.add(src);
        }
    }
    return imageUrls;
}

2. Thuật toán tách biên ảnh dựa trên biến thiên Gradient

Độ biến thiên độ xám và vector gradient tại điểm ảnh $(x, y)$ được xác định theo mô hình toán học:

$$\nabla f(x, y) = \begin{bmatrix} G_x \ G_y \end{bmatrix} = \begin{bmatrix} \frac{\partial f}{\partial x} \ \frac{\partial f}{\partial y} \end{bmatrix}$$

Độ lớn của gradient được tính xấp xỉ bằng công thức rời rạc:

$$|\nabla f(x, y)| \approx |f(x+1, y) - f(x, y)| + |f(x, y+1) - f(x, y)|$$

Độ xám $Y$ của điểm ảnh được chuẩn hóa theo chuẩn ITU-R BT.601:

$$Y = 0.299 \times R + 0.587 \times G + 0.114 \times B$$

Tổng giá trị biến thiên gradient dọc theo một đường thẳng phân chia $P(x_1, y_1, x_2, y_2)$ được tính bằng tích phân rời rạc:

$$\text{Gradient}(P) = \sum_{(x, y) \in P} |\nabla f(x, y)|$$

// Đoạn mã tính toán giá trị Gradient để tìm đường biên phân tách tối ưu
public class IntensityGradient {
    public static int calculateHorizontalGradient(BufferedImage image, int y, int startX, int endX) {
        int totalGradient = 0;
        for (int x = startX; x < endX - 1; x++) {
            int rgbCurrent = image.getRGB(x, y);
            int rgbNextX = image.getRGB(x + 1, y);
            int rgbNextY = (y < image.getHeight() - 1) ? image.getRGB(x, y + 1) : rgbCurrent;

            int grayCurrent = getGrayScale(rgbCurrent);
            int grayNextX = getGrayScale(rgbNextX);
            int grayNextY = getGrayScale(rgbNextY);

            int gradX = Math.abs(grayNextX - grayCurrent);
            int gradY = Math.abs(grayNextY - grayCurrent);
            totalGradient += (gradX + gradY);
        }
        return totalGradient;
    }

    private static int getGrayScale(int rgb) {
        int r = (rgb >> 16) & 0xFF;
        int g = (rgb >> 8) & 0xFF;
        int b = rgb & 0xFF;
        return (int)(0.299 * r + 0.587 * g + 0.114 * b);
    }
}
flowchart TD
    Start[Trang Truyện Gốc Scan: 800x1200] --> Step1[Xác định biên ngang 1 trong khoảng: h/4 đến h/2]
    Step1 --> CheckY{Tọa độ Y nằm trong h/3 + h/6 đến h/2?}
    CheckY -- Không --> SplitType1[Tách Dạng 1: Xác định biên ngang 2 trong khoảng h/2 đến 3h/4]
    CheckY -- Có --> SplitType2[Tách Dạng 2: Xác định biên dọc trong khoảng w/4 đến 3w/4]
    SplitType1 --> FinalSplit1[Cắt thành 4, 5 hoặc 6 Frame]
    SplitType2 --> FinalSplit2[Cắt thành 2, 3 hoặc 4 Frame]
    FinalSplit1 --> OCRCheck{Khung quá lớn hoặc biên đè nhau?}
    FinalSplit2 --> OCRCheck
    OCRCheck -- Có --> OCRStep[Chạy OCR kiểm tra Text trên đường biên ứng viên]
    OCRStep -- Có Text --> KeepOriginal[Giữ nguyên frame, áp dụng thanh cuộn mượt]
    OCRStep -- Không Text --> ForceSplit[Xóa điểm đen & Thực hiện cắt ảnh]
    OCRCheck -- Không --> Compress[Chuyển đổi sang JPG, nén < 20KB/frame]

Testing và validation

Quá trình thử nghiệm được tiến hành trên môi trường Server GlassFish v3, hệ thống cơ sở dữ liệu SQL Server 2005 và Client giả lập J2ME Wireless Toolkit (độ phân giải chuẩn $180 \times 208$ pixel) cùng thiết bị thực tế Nokia 7510 Supernova.

  • Tập dữ liệu kiểm thử: 50 bộ truyện tranh phổ biến thuộc nhiều phong cách vẽ khác nhau (từ layout dạng lưới cổ điển đến layout hiện đại có các khung vẽ đè lồng nhau).

Kết quả kịch bản kiểm thử chức năng

Chức năng Kịch bản kiểm thử Dữ liệu đầu vào Kết quả mong đợi Trạng thái
Đăng nhập Xác thực hợp lệ SĐT: 01228247721, Pass: 123 Đăng nhập thành công, chuyển sang màn hình Menu chính PASSED
Đăng nhập Sai thông tin SĐT: abc, Pass: 123 Báo lỗi, giữ nguyên giao diện đăng nhập PASSED
Tách biên ảnh Trang truyện layout chuẩn Trang gốc $800 \times 1200$ px Tách thành 4 khung hình đều nhau, size $<15$ KB/khung PASSED
Tách biên nâng cao Khung vẽ lồng đè, mất biên Khung tranh $500 \times 600$ px Quét gradient + OCR, cắt không bị đứt chữ hội thoại PASSED
Đọc tiếp (History) Tải lại chương đang đọc dở User ID: 1, Manga: Doraemon Mở chính xác Chap 5, Page 3, Part 2 đã lưu trong DB PASSED
Tìm kiếm Truy vấn theo từ khóa Từ khóa: "Conan" Trả về danh sách truyện khớp tên trong $<1.2$ giây PASSED

Đổi mới và đóng góp

  1. Kỹ thuật phân tách ảnh thích nghi kết hợp OCR: Khác với các thuật toán cắt ảnh lưới tĩnh (Grid Slicing) truyền thống thường xuyên làm đứt bóng thoại hoặc hình vẽ nhân vật, giải pháp biến thiên gradient kết hợp OCR kiểm tra vùng đệm đảm bảo tỷ lệ toàn vẹn nội dung đạt trên 96%.
  2. So sánh với các giải pháp hiện hành:
    • So với thuật toán của Kohei (Nhật Bản): Thuật toán của Kohei chỉ tối ưu trên truyện tranh xuất bản theo chuẩn Manga truyền thống (đọc từ phải sang trái với đường bao trắng rõ rệt). Đồ án mở rộng khả năng nhận dạng cho các bộ truyện không có biên chuẩn bằng kỹ thuật thêm đường biên ứng viên (Candidate Boundary Insertion).
    • So với ứng dụng đọc truyện DORE: DORE bắt buộc người dùng chuẩn bị nội dung trước trên PC và chép thẻ nhớ. Dịch vụ trong đồ án hoạt động hoàn toàn trực tuyến (Online Cloud Service) theo kiến trúc SOA, giải phóng người dùng khỏi việc chuẩn bị dữ liệu thủ công.
  3. Hiệu quả tối ưu hóa dữ liệu:
    • Dung lượng tệp tải xuống giảm từ 65% đến 85% so với tải trang gốc.
    • Tốc độ phản hồi giao diện di động khi mở trang mới chỉ mất từ 1.5s - 3s trên mạng 3G/GPRS năm 2011.

Ứng dụng thực tế và triển khai

gantt
    title Lộ trình Triển khai Dịch vụ Truyện tranh Di động
    dateFormat  YYYY-MM-DD
    section Giai đoạn 1: Nền tảng
    Thiết kế hệ thống & CSDL        :done, 2011-02-21, 2011-03-15
    Module Crawler & Thu thập ảnh  :done, 2011-03-16, 2011-04-05
    section Giai đoạn 2: Thuật toán
    Phát triển Bộ tách biên Gradient:done, 2011-04-01, 2011-04-25
    Tích hợp bộ lọc kiểm tra OCR   :done, 2011-04-20, 2011-05-05
    section Giai đoạn 3: Tích hợp
    Đóng gói WebService GlassFish   :done, 2011-04-25, 2011-05-10
    Lập trình Client J2ME Polish    :done, 2011-05-01, 2011-05-15
    Kiểm thử & Đánh giá tải        :done, 2011-05-10, 2011-05-18

Chiến lược triển khai và Yêu cầu hạ tầng

  • Hạ tầng Server: Hệ điều hành Windows Server / Linux, Web Server GlassFish v3, SQL Server 2005 Standard Edition, tối thiểu 2 GB RAM và đường truyền Internet băng thông rộng ổn định để thực hiện tác vụ crawl dữ liệu định kỳ.
  • Thiết bị đầu cuối (Client): Bất kỳ điện thoại di động nào hỗ trợ Java MIDP 2.0 / CLDC 1.1, có kết nối GPRS/EDGE/3G hoặc Wi-Fi.
  • Hiệu quả kinh tế (ROI): Mô hình SOA cho phép các nhà mạng viễn thông (Telcos) hoặc các công ty nội dung số tích hợp cổng truyện tranh vào gói dịch vụ giá trị gia tăng (VAS), tạo dòng doanh thu định kỳ từ thuê bao dữ liệu mà không tốn chi phí biên tập lại nội dung truyện tranh thủ công.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Xử lý trang đôi (Double-page spreads): Các trang truyện tranh đôi có khung tranh trải dài hai trang quét liền nhau đòi hỏi thuật toán ghép ảnh trước khi cắt, hiện tại hệ thống chỉ xử lý độc lập từng trang đơn.
  • Bộ nhớ hạn chế của J2ME: Mặc dù đã chia nhỏ ảnh dưới 20 KB, một số dòng điện thoại cấu hình cực thấp ($<256$ KB RAM khả dụng) vẫn có nguy cơ bị giật cục (lag) khi tải liên tục nhiều frame ảnh.
  • Thời gian trích xuất Crawler: Quá trình thu thập từ web phụ thuộc vào tính ổn định và cấu trúc HTML của website nguồn; nếu website nguồn đổi cấu trúc thẻ, crawler cần được cấu hình lại.

Hướng phát triển trong tương lai

  • Chuyển đổi nền tảng sang Android và iOS: Nâng cấp client từ J2ME sang Android (Java/Kotlin) và iOS (Objective-C/Swift) nhằm tận dụng màn hình cảm ứng điện dung đa điểm và khả năng zoom vuốt mượt mà.
  • Chuyển đổi giao thức sang RESTful JSON: Thay thế SOAP/XML bằng REST API định dạng JSON gọn nhẹ hơn, giảm thiểu thêm 20-30% overhead của gói tin HTTP.
  • Áp dụng Deep Learning cho Image Panel Segmentation: Nghiên cứu tích hợp các mô hình mạng nơ-ron tích chập (CNN / YOLO) trên server để nhận diện khung thoại và khung nhân vật đạt độ chính xác gần như tuyệt đối ($>99%$).

Đối tượng hưởng lợi

  • Sinh viên & Người học ngành CNTT: Tài liệu tham khảo thực tế và chuyên sâu về quy trình xây dựng hệ thống phân tán theo chuẩn SOA, kỹ thuật xử lý ảnh số cơ bản bằng Java và lập trình thiết bị di động với J2ME Polish.
  • Lập trình viên & Kỹ sư phần mềm: Cung cấp pattern mẫu về việc phân tách tải tính toán nặng (thu thập dữ liệu, xử lý ảnh ma trận điểm) về phía Server để bảo vệ tài nguyên phần cứng cho các thiết bị Client yếu.
  • Nhà cung cấp dịch vụ số & Doanh nghiệp: Một mô hình kinh doanh khả thi và giải pháp kỹ thuật đã được chứng minh để thương mại hóa kho nội dung số đồ sộ lên nền tảng di động một cách tự động.
  • Nhà nghiên cứu xử lý ảnh: Cung cấp dữ liệu thực nghiệm về ứng dụng của toán tử Gradient và lọc hình thái học trên tài liệu truyện tranh scan thực tế.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để triển khai máy chủ và ứng dụng di động là gì?

Máy chủ yêu cầu cài đặt Java Development Kit (JDK 1.6 trở lên), máy chủ ứng dụng GlassFish Server v3 và cơ sở dữ liệu SQL Server 2005. Phía thiết bị di động chỉ cần hỗ trợ Java Micro Edition cấu hình MIDP 2.0 và CLDC 1.1 cùng kết nối mạng GPRS hoặc 3G.

2. Thuật toán xử lý như thế nào đối với các khung truyện có nét vẽ đè lên nhau không có đường biên trắng?

Khi không tìm thấy khoảng trắng tự nhiên (giá trị xám $>240$), thuật toán sẽ dò tìm đường biên ứng viên có biến thiên gradient lớn nhất trong khoảng từ $w/4$ đến $3w/4$. Sau đó, bộ kiểm tra ký tự OCR được kích hoạt; nếu đường cắt không chạm vào chữ hội thoại, hệ thống sẽ tự động gán đường biên và tiến hành phân tách.

3. Tại sao hệ thống lại sử dụng SOAP/XML thay vì RESTful API?

Vào thời điểm nghiên cứu (năm 2011), kiến trúc SOAP kết hợp WSDL là chuẩn công nghiệp hoàn thiện nhất hỗ trợ mạnh mẽ việc tự động sinh mã nguồn (Stub Generation) trên môi trường Java ME thông qua công cụ Sun Wireless Toolkit (WTK), giúp đồng bộ hóa chặt chẽ kiểu dữ liệu giữa Server và Client.

4. Chi phí bảo trì hệ thống và cập nhật nguồn truyện mới có phức tạp không?

Hệ thống được thiết kế theo module hóa. Khi các trang web truyện nguồn thay đổi cấu trúc mã HTML, quản trị viên chỉ cần cập nhật lớp phân tích tương ứng trong package GatherD mà hoàn toàn không cần can thiệp vào tầng cơ sở dữ liệu hay ứng dụng di động của người dùng.

5. Khả năng mở rộng quy mô (Scalability) của hệ thống khi lượng người dùng tăng cao?

Nhờ thiết kế theo SOA, tầng Web Service (GlassFish) và tầng Xử lý ảnh/Cơ sở dữ liệu có thể tách rời trên các cụm máy chủ vật lý khác nhau (Clustering & Load Balancing), cho phép mở rộng quy mô phục vụ hàng chục nghìn người dùng đồng thời.


Kết luận

Đồ án tốt nghiệp "Dịch vụ truyện tranh trên di động" của tác giả Nguyễn Thị Thuyên (Khoa CNTT - Đại học Bách Khoa Hà Nội) đã giải quyết trọn vẹn bài toán hóc búa về việc phân phối nội dung truyện tranh số hóa lên thiết bị di động có cấu hình hạn chế. Bằng việc kết hợp sáng tạo giữa Kiến trúc Hướng dịch vụ (SOA), Thuật toán tách biên ảnh thông minh dựa trên biến thiên Gradient và OCR, cùng chuẩn giao diện di động MWBP 1.0, công trình không chỉ mang giá trị học thuật xuất sắc mà còn chứng minh tính khả thi ứng dụng thực tiễn cao trong ngành công nghiệp dịch vụ giá trị gia tăng trên di động.