Latest newsTiếng Việt
Back to feedCông nghệNewsMeld Editorial

Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было

Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было

{"text": "{\n \"title\": \"Odin MaxCode thay vì nhiều khóa: cách PushMeld thêm thông báo nơi chưa có\",\n \"slug\": \"odin-maxcode-vmesto-desyatka-klyuchey-kak-pushmeld-dobavlyaet-uvedomleniya-tuda-gde-ih-ne-bylo\",\n \"excerpt\": \"Cách MaxCode chuyển quản lý thông báo đẩy và email từ các trang web, máy chủ, script và thiết bị sang PushMeld.\",\n \"body_markdown\": \"

Hãy tưởng tượng một máy tính để bàn tạo sao lưu các tệp quan trọng mỗi đêm. Kết quả được ghi vào nhật ký hệ thống: thao tác thành công hoặc có lỗi xảy ra.

Về mặt kỹ thuật, mọi thứ hoạt động. Sự bất tiện là vào sáng hôm sau: người dùng phải tự mở nhật ký và kiểm tra kết quả. Chương trình không có ứng dụng di động, không có chức năng gửi thông báo từ phía nhà phát triển, và sẽ không ai xây dựng hạ tầng riêng chỉ để phục vụ một chức năng.

Với PushMeld, quá trình này có thể được bổ sung bằng một yêu cầu đơn giản. Sau khi sao lưu hoàn tất, điện thoại sẽ nhận được thông báo: bản sao đã được tạo hoặc thao tác kết thúc với lỗi. Nếu cần thiết, cùng một thông báo có thể gửi qua email.

Ý tưởng cốt lõi dựa trên MaxCode — mã bảo vệ duy nhất, qua đó PushMeld nhận toàn bộ thông tin cần thiết để gửi thông báo tiếp theo.

Khi tôi làm quen với dự án, chính MaxCode đã gây ấn tượng nhất với tôi. Thông báo đẩy và email đã không còn mới mẻ. Điều quan trọng hơn là chương trình nguyên gốc không còn kiểm soát việc gửi chúng nữa. Nó chỉ thông báo cho PushMeld về sự kiện, còn mọi thứ khác đã nằm ngoài phạm vi điều khiển của nó.

Trước tiên, tôi muốn làm rõ: PushMeld thuộc hệ thống MELD®, còn DigiMeld UG là công ty phát triển nó.

Nguồn chỉ biết về sự kiện

Việc tích hợp thông báo thông thường nhanh chóng trở nên phức tạp về mặt kỹ thuật. Cần xác định dự án, cấu hình quyền truy cập, lưu trữ khóa, quản lý token thiết bị, cấu hình gửi email và xử lý yêu cầu từ các nền tảng di động khác nhau.

PushMeld chuyển tất cả những điều này khỏi hệ thống gốc vào một vòng kiểm soát riêng biệt.

Chương trình sao lưu chỉ biết duy nhất một điều: thao tác đã thành công hoặc bị lỗi. Nó gửi MaxCode, tiêu đề và nội dung thông báo.

Chương trình không cần biết:

  • Có bao nhiêu thiết bị đã được kết nối với dự án;

  • Điện thoại nào đang hoạt động hiện tại;

  • Qua nhà cung cấp nào push sẽ được gửi;

  • Chế độ gửi email có bật không;

  • Người dùng có điện thoại thông minh mới không;

  • Thiết bị cũ đã bị tắt chưa;

  • Ai là người nhận cụ thể của thông báo.

Tất cả những điều này đã được PushMeld xử lý từ bên trong.

Xem đây, chính tại điểm này, ý tưởng kiến trúc chính của dự án xuất hiện: MaxCode chuyển quản lý thông báo từ chương trình, nơi xảy ra sự kiện, sang hệ thống xử lý việc gửi đi.

O nhất MaxCode thay cho nhiều khóa

Thông thường, khi kết nối dịch vụ bên ngoài, bạn phải làm việc với nhiều thực thể cùng lúc. Một số đã dùng mã dự án, một số khác là khóa truy cập, thêm vào đó là bí mật, tokens, cấu hình của nhà cung cấp.

MaxCode tích hợp tất cả những yếu tố cần thiết cho việc gửi trong một mã bảo vệ duy nhất.

Với mỗi dự án, sẽ có một MaxCode riêng. Trong đó, liên kết các thông tin xác thực dự án, quyền gửi và dữ liệu để PushMeld áp dụng cấu hình gửi phù hợp.

Hệ thống gửi không cần phải lưu trữ riêng:

  • Thể hiện dự án;

  • API-keys và bí mật bổ sung;

  • Tokens của thiết bị đã đăng ký;

  • Thông số của từng người nhận;

  • Khóa của các nhà cung cấp push khác nhau;

  • Cấu hình riêng cho push và email.

Chỉ cần thêm một MaxCode vào chương trình, website hoặc script. Khi nhận được MaxCode cùng với thông báo, PushMeld sẽ tự nhận diện dự án, kiểm tra yêu cầu, tìm các thiết bị đã kết nối và chọn kênh phù hợp.

Vì vậy, MaxCode không đơn thuần là một khóa nữa, mà thay thế toàn bộ sự rời rạc của các khóa, token và id bằng một mã duy nhất.

Thông báo từ nơi không dự kiến

MaxCode có thể sử dụng trong bất kỳ hệ thống nào đủ khả năng thực hiện yêu cầu HTTP tự hoặc thông qua một script nhỏ.

Chẳng hạn, PushMeld có thể gửi thông báo khi:

  • Máy chủ gia đình không phản hồi;

  • Sao lưu kết thúc hoặc thất bại;

  • Script của chính hệ thống thực hiện một tác vụ dài;

  • Máy in 3D hoàn tất in;

  • Cảm biến phát hiện rò rỉ;

  • Cửa mở hoặc báo động kích hoạt;

  • Thông tin mới xuất hiện trên website;

  • Giá cả hàng hóa biến động;

  • Chỗ trống lưu trữ đã đầy;

  • Chương trình cũ xử lý file lớn xong;

  • Cửa hàng online có đơn hàng mới.

Mỗi nguồn này có thể không có ứng dụng riêng của mình. Một số thiết bị chỉ truy cập vào một đích cố định, thiết bị khác có thể chạy lệnh tùy biến, hoặc thêm các đoạn script tự động hóa ngắn.

Chỉ cần một yêu cầu gửi về PushMeld để thông báo được truyền đi.

Trong khi đó, nguồn này không biến thành một dịch vụ thông báo riêng biệt mà chỉ ghi nhận sự kiện và gửi MaxCode. Mọi phần còn lại — người nhận, thiết bị, kênh và lộ trình kỹ thuật — đều do PushMeld xử lý.

Không chỉ push, còn email

Tên PushMeld thường liên tưởng tới thông báo đẩy trên điện thoại, nhưng khả năng của dự án không chỉ dừng lại ở đó.

Hệ thống gửi có thể dùng push, email hoặc cả hai kênh — tùy thuộc cấu hình dự án và khả năng của hệ thống.

Chẳng hạn, thông báo thành công của sao lưu có thể hiển thị trên điện thoại. Thông báo lỗi quan trọng có thể gửi thêm qua email.

Chương trình gốc trong cả hai trường hợp chỉ thực hiện một yêu cầu duy nhất với MaxCode. Nó không cần phải cấu hình riêng cho máy chủ email hay script riêng biệt.

Quyết định chọn kênh gửi nằm trong PushMeld. Nếu sau này người dùng thêm email vào dự án đã có, không cần phải chỉnh sửa chương trình sao lưu.

Trong đó, email không chỉ dùng để gửi hàng loạt mà còn như một phương pháp bổ sung để thông báo về sự kiện từ dự án đã kết nối.

Một dự án — một nguồn sự kiện

Dự án giúp phân biệt các thông báo dựa trên mục đích của chúng.

Người dùng có thể tạo ví dụ:

  • HomeServer — trạng thái máy chủ gia đình;

  • Backups — kết quả sao lưu;

  • SmartHome — cảm biến và tự động hóa gia đình;

  • PriceMonitor — thay đổi giá;

  • Website — thông tin mới từ trang cá nhân.

Mỗi dự án có MaxCode riêng. Nhờ đó, tự động hóa gia đình không dùng mã của website, còn theo dõi giá không trộn lẫn với sao lưu dự phòng.

Trong ứng dụng, rõ ràng nguồn gửi là từ đâu và liên quan đến nhiệm vụ nào.

Phân chia như vậy rất hữu ích khi có nhiều nguồn hơn. Thay vì một luồng chung, người dùng có thể có nhiều kênh độc lập, mỗi kênh cấu hình riêng về cách gửi.

Điện thoại mới không cần thay đổi chương trình

Token push bình thường liên kết với một cài đặt app cụ thể trên thiết bị đó.

Nếu người dùng có hai điện thoại và một tablet, sẽ có nhiều token hơn. Khi cài lại app hoặc thay thiết bị, token này có thể thay đổi hoặc không hoạt động.

MaxCode vượt trên mức đó. Nó thuộc về dự án chứ không phải một thiết bị riêng lẻ nào.

Người dùng tự quyết định thiết bị nào liên kết với dự án và sẽ nhận thông báo. Ví dụ, thông báo máy chủ gia đình có thể gửi tới điện thoại cá nhân và tablet, còn các thông báo công việc chỉ tới điện thoại công ty.

Nếu người dùng mua điện thoại mới hoặc tắt thiết bị cũ, script gốc vẫn dùng cùng MaxCode. Danh sách người nhận cập nhật trong PushMeld.

Tương tự, khi thêm email hoặc thay đổi các tùy chọn gửi khác, MaxCode vẫn giữ nguyên.

Chính vì vậy, MaxCode không chỉ là một cách rút gọn các khóa. Nó tạo ra ranh giới giữa sự kiện và tuyến đường gửi tiếp theo. Mọi thứ phía sau ranh giới này có thể thay đổi mà không cần chỉnh sửa nguồn ban đầu.

Miễn phí cho các nhiệm vụ phổ thông

Sản phẩm hạ tầng thường được mô tả qua các hệ thống doanh nghiệp, lệnh từ server và dữ liệu lớn. Vì thế, người ta có thể nghĩ PushMeld chỉ dành cho các nhà phát triển chuyên nghiệp hoặc doanh nghiệp.

Thực tế, bạn có thể bắt đầu với một nhiệm vụ gia đình đơn giản.

Chính ứng dụng là miễn phí. Những khả năng chính của MaxCode cũng hoạt động không mất phí trong phạm vi giới hạn miễn phí. Người dùng có thể tạo dự án, kết nối thiết bị và nhận thông báo từ máy chủ, trang web, script hoặc tự động hóa gia đình.

Không phải chế độ demo tạm thời, rồi hết hạn. Trong các kịch bản hàng ngày, các khả năng miễn phí có thể đủ dùng.

Các gói trả phí sẽ phù hợp khi số yêu cầu tăng lên, cần chức năng bổ sung hoặc dùng trong quy mô lớn hơn.

Nguyên tắc chung cho cá nhân và doanh nghiệp

Cơ chế MaxCode không đổi theo quy mô nhiệm vụ.

Người dùng nhận thông báo hoàn tất sao lưu. Xưởng nhỏ biết máy in 3D đã hoàn thành in lâu dài. Cửa hàng online có đơn mới. Nhân viên kỹ thuật nhận được thông báo lỗi máy chủ.

Các dự án khác nhau về số lượng và quy mô, nhưng nguyên tắc vẫn như cũ.

Ví dụ một tổ chức với ba nguồn sự kiện:

  • Orders — đơn hàng mới;

  • Payments — thanh toán và hoàn tiền;

  • ServerStatus — lỗi kỹ thuật.

Mỗi nguồn có dự án riêng, mỗi dự án có MaxCode riêng và cấu hình thiết bị riêng. Đơn hàng sẽ gửi tới chủ và quản lý, sự kiện tài chính sẽ gửi tới nhân viên tài chính, lỗi kỹ thuật sẽ tới chuyên viên quản lý máy chủ.

Hệ thống doanh nghiệp đều thực hiện một quy trình giống nhau: gửi nội dung sự kiện và MaxCode của dự án tương ứng.

Nếu nhân viên thay đổi, thiết bị mới hoặc phương thức gửi tin, hệ thống gốc không cần phải cập nhật lại. Quản lý vẫn nằm trong PushMeld.

APNs, FCM và HMS vẫn thuộc về bên ngoài phần mềm

Để gửi push trên các thiết bị khác nhau, có thể dùng APNs, FCM hoặc HMS. Mỗi nhà cung cấp có quy tắc, token và đặc điểm kỹ thuật riêng.

Thông thường, các khác biệt này phải được xử lý trong phần mềm gửi. Còn PushMeld, chúng nằm sau MaxCode.

Máy chủ gia đình, trang web hoặc script không cần xác định rõ cách thiết bị của người nhận hoạt động hoặc qua hạ tầng nào thông điệp phải đi. Chúng chỉ gửi một yêu cầu, còn PushMeld chọn tuyến đường phù hợp.

MaxCode không thay thế hạ tầng của Apple, Google hay Huawei. Nó tạo ra một đầu vào chung trước các nhà cung cấp này.

Nhờ đó, hệ thống gốc không cần thay đổi mỗi khi thiết bị của người dùng thay đổi. Hôm nay, gửi qua FCM, ngày mai qua APNs, hôm sau có thể thêm một điện thoại hoặc email mới cho dự án. Đối với hệ thống biết sự kiện, không có gì thay đổi.

MaxCode và API-KEY thông thường không giống nhau

API-KEY thường chỉ cho phép truy cập dịch vụ. Sau khi xác thực, hệ thống vẫn cần biết dự án, người nhận và phương thức gửi.

MaxCode gom tất cả vào một mã duy nhất.

Nó giúp PushMeld nhận diện dự án, xác minh yêu cầu và áp dụng cấu hình phù hợp. Hệ thống ngoài chỉ gửi MaxCode cùng nội dung, còn việc gửi tiếp theo nằm trong PushMeld.

Khác biệt thực tiễn là: API-KEY mở truy cập chức năng, còn MaxCode xác định rõ bối cảnh thực thi chức năng đó.

Thông báo như chức năng tích hợp

Sau khi làm quen PushMeld, tôi sẽ không gọi đơn giản đó là ứng dụng gửi thông báo đẩy.

Chính xác hơn, đây là cách để thêm các thông báo nơi chưa từng có, rồi kiểm soát chúng độc lập với chương trình gốc.

Nguồn có thể là máy chủ gia đình, cảm biến, app cũ, cửa hàng online, script nội bộ hoặc hệ thống của công ty. Nếu đủ khả năng thực hiện yêu cầu HTTP tự hoặc qua một adapter nhỏ, sự kiện có thể gửi tới PushMeld.

Sau đó, MaxCode tạo ranh giới giữa sự kiện và việc gửi đi. Bên này là chương trình thông báo rằng đã xảy ra sự kiện. Bên kia là PushMeld, xác định dự án, thiết bị, kênh và tuyến đường kỹ thuật.

Vì vậy, khả năng quan trọng nhất của MaxCode chính là không chỉ thay thế các khóa bằng một mã, mà còn mang quản lý thông báo ra khỏi hệ thống gốc.

Điện thoại có thể đổi, email có thể thêm, thiết bị cũ có thể tắt, tuyến đường gửi có thể thay đổi. Chương trình vẫn chỉ làm đúng nhiệm vụ của nó: báo sự kiện.

\n \"seo_title\": \"MaxCode thay vì nhiều khóa: cách PushMeld quản lý thông báo\",\n \"seo_description\": \"PushMeld sử dụng MaxCode để đơn giản hóa việc truyền thông báo đến thiết bị và email, tách quản lý ra khỏi hệ thống gốc và mở rộng khả năng.\",\n \"og_title\": \"Odin MaxCode thay vì nhiều khóa: cách PushMeld thêm thông báo nơi chưa có\",\n \"og_description\": \"Cách MaxCode chuyển quản lý thông báo đẩy và email từ các trang web, máy chủ, script và thiết bị sang PushMeld.\"\n}"}