Arsitektur penerapan aplikasi Chat

Bab ini membantu memandu Anda memilih arsitektur penerapan saat Anda mengembangkan aplikasi Google Chat.

Gaya arsitektur

Bagian ini menjelaskan beberapa pendekatan arsitektur paling umum yang digunakan untuk membuat aplikasi. Lihat Memilih arsitektur layanan untuk membantu memutuskan pendekatan mana yang terbaik untuk aplikasi Anda.

Arsitektur layanan

Google Chat mendukung integrasi dengan aplikasi, tetapi tidak menerapkan logika aplikasi. Logika ini perlu diimplementasikan dalam kode Anda, menggunakan library atau layanan apa pun yang sesuai dengan aplikasi Anda.

Tempat membuat instance kode dan cara berinteraksi dengan Google Chat akan membentuk arsitektur layanan. Cara yang paling umum digunakan adalah di bawah ini.

Layanan web

Salah satu cara paling umum yang digunakan untuk menerapkan aplikasi adalah menggunakan layanan web atau implementasi HTTP lainnya di server lokal. Dalam desain ini, Anda akan mengonfigurasi Google Chat untuk diintegrasikan dengan layanan jarak jauh melalui HTTP:

Arsitektur aplikasi menggunakan layanan web di server lokal.

Hal ini memungkinkan implementasi untuk menggunakan library dan komponen yang ada yang sudah ada pada sistem.

Cloud Pub/Sub

Jika implementasi aplikasi berada di belakang firewall, Google Chat mungkin tidak dapat melakukan panggilan HTTP ke firewall tersebut. Salah satu pendekatan untuk mengatasi hal ini adalah dengan menggunakan Google Cloud Pub/Sub—implementasi aplikasi berlangganan topik yang membawa pesan dari Google Chat:

Arsitektur aplikasi yang diterapkan dengan Cloud Pub/Sub.

Dalam pengaturan ini, implementasi aplikasi masih harus menggunakan HTTP untuk mengirim pesan ke Google Chat.

Apps Script

Anda dapat membuat logika aplikasi sepenuhnya di Apps Script. Hal ini sangat berguna untuk aplikasi yang juga terintegrasi dengan layanan Google Workspace. Aplikasi seperti ini dapat membaca dan menulis data menggunakan Google Spreadsheet, Slide, Kalender, Drive, dan sebagainya.

Arsitektur aplikasi yang diterapkan dengan Apps Script.

Pertimbangkan tampilan penerapan yang tidak di Apps Script. Bot HTTP yang terintegrasi dengan layanan Google Chat dan Google Workspace akan terlihat seperti ini:

Arsitektur aplikasi yang diterapkan dengan sistem lokal.

Dapat jauh lebih sederhana—terutama dalam hal autentikasi—untuk mengimplementasikan aplikasi tersebut menggunakan Apps Script, dengan layanan Google Workspace bawaan dan model autentikasi implisit.

Webhook masuk

Anda dapat membuat aplikasi yang hanya memasukkan pesan ke ruang chat menggunakan panggilan ke Google Chat API. Pendekatan ini "di-hardcode" ke ruang chat tertentu dan tidak mengizinkan interaksi pengguna, serta jenis aplikasi ini tidak dapat dibagikan atau dipublikasikan.

Webhook masuk paling cocok untuk aplikasi satu kali yang sederhana untuk melaporkan notifikasi atau status, atau untuk beberapa jenis pembuatan prototipe aplikasi.

Implementasi logika aplikasi

Google Chat tidak membatasi cara Anda menerapkan logika aplikasi. Anda dapat membuat parser perintah sintaksis tetap sederhana yang sederhana, menggunakan library atau layanan pemrosesan AI dan bahasa lanjutan, atau apa pun yang sesuai untuk sasaran tertentu Anda.

Parser perintah

Aplikasi berbasis perintah memeriksa konten pesan peristiwa yang berasal dari Google Chat, lalu mengekstrak perintah dan parameter dari konten ini.

Salah satu pendekatan yang mudah adalah membuat token pesan, mengekstrak perintah, lalu mereferensikan kamus yang memetakan perintah ke fungsi pengendali untuk setiap perintah.

Pemrosesan natural language

Banyak penerapan aplikasi menggunakan natural language processing (NLP) untuk menentukan apa yang diminta pengguna. Ada banyak cara untuk menerapkan NLP, dan Google Chat tidak peduli cara mana yang Anda gunakan.

Salah satu layanan andal dan populer yang dapat Anda gunakan dalam penerapan aplikasi adalah Dialogflow, yang memungkinkan Anda membuat agen cerdas menggunakan model intent/tindakan.

Memilih arsitektur layanan

Bagian ini akan membantu memandu Anda saat memutuskan arsitektur layanan untuk aplikasi Anda.

Pertimbangan umum

Ada sejumlah faktor yang harus dipertimbangkan saat memutuskan arsitektur layanan. Masing-masing dijelaskan di bagian berikut. Bagian Membuat pilihan membantu Anda memilih arsitektur berdasarkan aspek tersebut.

  • Untuk siapa aplikasi ini dibuat?
  • Resource apa saja yang akan diakses oleh aplikasi?
  • Pola percakapan apa yang akan Anda terapkan?

Masing-masing metode dijelaskan di bagian berikut. Bagian Membuat pilihan membantu Anda memilih arsitektur berdasarkan aspek tersebut.

Audiens aplikasi

Ada sejumlah calon audiens yang dapat dimiliki aplikasi. Berikut beberapa contohnya:

  • Aplikasi pribadi Anda
  • Hanya beberapa orang dalam kelompok kerja Anda, bukan orang lain
  • Instal semuanya di seluruh organisasi Anda
  • Distribusikan di Marketplace

Akses ke resource

Anda harus menentukan resource yang perlu diakses oleh aplikasi; resource ini dapat mencakup:

  • Referensi Google Workspace
  • Google API dan sistem lainnya
  • Referensi eksternal (non-Google)

Pola percakapan

Anda juga harus mempertimbangkan bagaimana Anda ingin aplikasi berinteraksi dengan orang lain. Paragraf berikut menjelaskan beberapa pola percakapan yang mungkin diimplementasikan oleh aplikasi Anda.

Panggilan dan respons (sinkron)

Dalam pola ini, aplikasi merespons pesan dari pengguna satu per satu. Satu pesan pengguna ke aplikasi menghasilkan satu respons dari aplikasi.

Arsitektur pesan sinkron.

Beberapa respons (asinkron)

Pola ini ditandai dengan komunikasi dua arah antara pengguna dan aplikasi, dengan aplikasi yang menghasilkan sejumlah pesan tambahan. Misalnya, pengguna mungkin meminta sesuatu dari aplikasi—aplikasi harus mengirim balasan awal untuk mengonfirmasi permintaan—lalu aplikasi tersebut mengirim satu atau beberapa pesan kembali ke ruang tempat permintaan berasal.

Arsitektur pesan asinkron.

Satu arah dari aplikasi

Terkadang, ada baiknya membuat aplikasi yang memasukkan pesan ke dalam ruang, tetapi tidak pernah menerima peristiwa apa pun dari pengguna. Ini tidak benar-benar percakapan, tetapi dapat berguna untuk hal-hal seperti pelaporan alarm.

Arsitektur aplikasi satu arah.

Satu arah ke aplikasi

Meskipun Anda dapat membuat aplikasi yang hanya menerima dan memproses pesan tanpa memberikan respons atau pesan apa pun kepada orang yang menggunakannya, hal ini akan mengakibatkan pengalaman pengguna yang buruk dan kami sangat tidak menyarankan praktik ini.

Menentukan pilihan

Jadi, arsitektur layanan mana yang harus Anda pilih untuk implementasi aplikasi? Tentu saja, jika Anda sudah memiliki aplikasi yang ingin diintegrasikan ke Google Chat, sebaiknya gunakan atau sesuaikan implementasi yang ada.

Jika Anda mengembangkan aplikasi baru, diagram berikut menunjukkan pilihan arsitektur yang disarankan untuk berbagai kasus penggunaan.

Pilih arsitektur berdasarkan kasus penggunaan Anda.